; LLVM IR from aws/s2n-tls :: tests/unit (s2n_self_talk_alerts_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.alert_ctx = type { i32, i32, i32, i8, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_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
@.str = external hidden unnamed_addr constant [9 x i8], align 1
@stderr = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [84 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
@stdout = external global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [54 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 [8 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare ptr @s2n_config_new() #2

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

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

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

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, 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) #5

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

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

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

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

declare i32 @s2n_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

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

declare i32 @s2n_connection_free(ptr noundef) #2

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

declare i32 @s2n_cleanup() #2

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

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

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

106:                                              ; preds = %2
  br label %107

107:                                              ; preds = %106
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %108 = load ptr, ptr @stdout, align 8, !tbaa !9
  %109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef @.str.7, ptr noundef @.str.3) #9
  %110 = load ptr, ptr @stdout, align 8, !tbaa !9
  %111 = call i32 @fflush(ptr noundef %110)
  br label %112

112:                                              ; preds = %107
  %113 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %114 = icmp eq i32 %113, -1
  br i1 %114, label %115, label %168

115:                                              ; preds = %112
  br label %116

116:                                              ; preds = %115
  br label %117

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %118 = call ptr @__errno_location() #10
  %119 = load i32, ptr %118, align 4, !tbaa !5
  store i32 %119, ptr %14, align 4, !tbaa !5
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = call i32 @s2n_print_stacktrace(ptr noundef %120)
  %122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %123 = trunc i8 %122 to i1
  br i1 %123, label %124, label %146

124:                                              ; preds = %117
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = call i32 @fileno(ptr noundef %125) #9
  %127 = call i32 @isatty(i32 noundef %126) #9
  %128 = icmp ne i32 %127, 0
  br i1 %128, label %129, label %146

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

146:                                              ; preds = %124, %117
  %147 = load i32, ptr %14, align 4, !tbaa !5
  %148 = call ptr @__errno_location() #10
  store i32 %147, ptr %148, align 4, !tbaa !5
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = call ptr @s2n_strerror(i32 noundef %152, ptr noundef @.str.4)
  %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_debug(i32 noundef %155, ptr noundef @.str.4)
  %157 = call ptr @__errno_location() #10
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = call ptr @strerror(i32 noundef %158) #9
  %160 = call ptr @__errno_location() #10
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef @.str.5, i32 noundef %150, ptr noundef @.str.8, ptr noundef @.str.3, i32 noundef 150, ptr noundef %153, ptr noundef %156, ptr noundef %159, i32 noundef %161) #9
  br label %163

163:                                              ; preds = %146, %129
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %164

164:                                              ; preds = %163
  br label %165

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

166:                                              ; No predecessors!
  br label %167

167:                                              ; preds = %166
  br label %168

168:                                              ; preds = %167, %112
  br label %169

169:                                              ; preds = %168
  br label %170

170:                                              ; preds = %169
  br label %171

171:                                              ; preds = %170
  %172 = load i32, ptr @test_count, align 4, !tbaa !5
  %173 = add nsw i32 %172, 1
  store i32 %173, ptr @test_count, align 4, !tbaa !5
  %174 = call i32 @s2n_enable_atexit()
  %175 = icmp eq i32 %174, -1
  br i1 %175, label %176, label %229

176:                                              ; preds = %171
  br label %177

177:                                              ; preds = %176
  br label %178

178:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %179 = call ptr @__errno_location() #10
  %180 = load i32, ptr %179, align 4, !tbaa !5
  store i32 %180, ptr %15, align 4, !tbaa !5
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = call i32 @s2n_print_stacktrace(ptr noundef %181)
  %183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %184 = trunc i8 %183 to i1
  br i1 %184, label %185, label %207

185:                                              ; preds = %178
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = call i32 @fileno(ptr noundef %186) #9
  %188 = call i32 @isatty(i32 noundef %187) #9
  %189 = icmp ne i32 %188, 0
  br i1 %189, label %190, label %207

190:                                              ; preds = %185
  %191 = load i32, ptr %15, align 4, !tbaa !5
  %192 = call ptr @__errno_location() #10
  store i32 %191, ptr %192, align 4, !tbaa !5
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = load i32, ptr @test_count, align 4, !tbaa !5
  %195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = call ptr @s2n_strerror(i32 noundef %196, ptr noundef @.str.4)
  %198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %199 = load i32, ptr %198, align 4, !tbaa !5
  %200 = call ptr @s2n_strerror_debug(i32 noundef %199, ptr noundef @.str.4)
  %201 = call ptr @__errno_location() #10
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = call ptr @strerror(i32 noundef %202) #9
  %204 = call ptr @__errno_location() #10
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %193, ptr noundef @.str.1, i32 noundef %194, ptr noundef @.str.9, ptr noundef @.str.3, i32 noundef 150, ptr noundef %197, ptr noundef %200, ptr noundef %203, i32 noundef %205) #9
  br label %224

207:                                              ; preds = %185, %178
  %208 = load i32, ptr %15, align 4, !tbaa !5
  %209 = call ptr @__errno_location() #10
  store i32 %208, ptr %209, align 4, !tbaa !5
  %210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %211 = load i32, ptr @test_count, align 4, !tbaa !5
  %212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = call ptr @s2n_strerror(i32 noundef %213, ptr noundef @.str.4)
  %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_debug(i32 noundef %216, ptr noundef @.str.4)
  %218 = call ptr @__errno_location() #10
  %219 = load i32, ptr %218, align 4, !tbaa !5
  %220 = call ptr @strerror(i32 noundef %219) #9
  %221 = call ptr @__errno_location() #10
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %210, ptr noundef @.str.5, i32 noundef %211, ptr noundef @.str.9, ptr noundef @.str.3, i32 noundef 150, ptr noundef %214, ptr noundef %217, ptr noundef %220, i32 noundef %222) #9
  br label %224

224:                                              ; preds = %207, %190
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %225

225:                                              ; preds = %224
  br label %226

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

227:                                              ; No predecessors!
  br label %228

228:                                              ; preds = %227
  br label %229

229:                                              ; preds = %228, %171
  br label %230

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %230
  br label %232

232:                                              ; preds = %231
  br label %233

233:                                              ; preds = %232
  br label %234

234:                                              ; preds = %233
  %235 = call i32 @s2n_init()
  %236 = icmp eq i32 %235, -1
  br i1 %236, label %237, label %290

237:                                              ; preds = %234
  br label %238

238:                                              ; preds = %237
  br label %239

239:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %240 = call ptr @__errno_location() #10
  %241 = load i32, ptr %240, align 4, !tbaa !5
  store i32 %241, ptr %16, align 4, !tbaa !5
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = call i32 @s2n_print_stacktrace(ptr noundef %242)
  %244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %245 = trunc i8 %244 to i1
  br i1 %245, label %246, label %268

246:                                              ; preds = %239
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = call i32 @fileno(ptr noundef %247) #9
  %249 = call i32 @isatty(i32 noundef %248) #9
  %250 = icmp ne i32 %249, 0
  br i1 %250, label %251, label %268

251:                                              ; preds = %246
  %252 = load i32, ptr %16, align 4, !tbaa !5
  %253 = call ptr @__errno_location() #10
  store i32 %252, ptr %253, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @s2n_strerror(i32 noundef %257, ptr noundef @.str.4)
  %259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call ptr @s2n_strerror_debug(i32 noundef %260, ptr noundef @.str.4)
  %262 = call ptr @__errno_location() #10
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = call ptr @strerror(i32 noundef %263) #9
  %265 = call ptr @__errno_location() #10
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef @.str.1, i32 noundef %255, ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 150, ptr noundef %258, ptr noundef %261, ptr noundef %264, i32 noundef %266) #9
  br label %285

268:                                              ; preds = %246, %239
  %269 = load i32, ptr %16, align 4, !tbaa !5
  %270 = call ptr @__errno_location() #10
  store i32 %269, ptr %270, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call ptr @s2n_strerror(i32 noundef %274, ptr noundef @.str.4)
  %276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror_debug(i32 noundef %277, ptr noundef @.str.4)
  %279 = call ptr @__errno_location() #10
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = call ptr @strerror(i32 noundef %280) #9
  %282 = call ptr @__errno_location() #10
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef @.str.5, i32 noundef %272, ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 150, ptr noundef %275, ptr noundef %278, ptr noundef %281, i32 noundef %283) #9
  br label %285

285:                                              ; preds = %268, %251
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %286

286:                                              ; preds = %285
  br label %287

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

288:                                              ; No predecessors!
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289, %234
  br label %291

291:                                              ; preds = %290
  br label %292

292:                                              ; preds = %291
  br label %293

293:                                              ; preds = %292
  br label %294

294:                                              ; preds = %293
  %295 = call ptr @signal(i32 noundef 13, ptr noundef inttoptr (i64 1 to ptr)) #9
  br label %296

296:                                              ; preds = %294
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = add nsw i32 %297, 1
  store i32 %298, ptr @test_count, align 4, !tbaa !5
  %299 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %299, ptr %11, align 8, !tbaa !9
  %300 = icmp eq ptr %299, null
  br i1 %300, label %301, label %354

301:                                              ; preds = %296
  br label %302

302:                                              ; preds = %301
  br label %303

303:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %304 = call ptr @__errno_location() #10
  %305 = load i32, ptr %304, align 4, !tbaa !5
  store i32 %305, ptr %17, align 4, !tbaa !5
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = call i32 @s2n_print_stacktrace(ptr noundef %306)
  %308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %309 = trunc i8 %308 to i1
  br i1 %309, label %310, label %332

310:                                              ; preds = %303
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = call i32 @fileno(ptr noundef %311) #9
  %313 = call i32 @isatty(i32 noundef %312) #9
  %314 = icmp ne i32 %313, 0
  br i1 %314, label %315, label %332

315:                                              ; preds = %310
  %316 = load i32, ptr %17, align 4, !tbaa !5
  %317 = call ptr @__errno_location() #10
  store i32 %316, ptr %317, align 4, !tbaa !5
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = load i32, ptr @test_count, align 4, !tbaa !5
  %320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = call ptr @s2n_strerror(i32 noundef %321, ptr noundef @.str.4)
  %323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %324 = load i32, ptr %323, align 4, !tbaa !5
  %325 = call ptr @s2n_strerror_debug(i32 noundef %324, ptr noundef @.str.4)
  %326 = call ptr @__errno_location() #10
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = call ptr @strerror(i32 noundef %327) #9
  %329 = call ptr @__errno_location() #10
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %318, ptr noundef @.str.1, i32 noundef %319, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 155, ptr noundef %322, ptr noundef %325, ptr noundef %328, i32 noundef %330) #9
  br label %349

332:                                              ; preds = %310, %303
  %333 = load i32, ptr %17, align 4, !tbaa !5
  %334 = call ptr @__errno_location() #10
  store i32 %333, ptr %334, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = call ptr @s2n_strerror(i32 noundef %338, ptr noundef @.str.4)
  %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_debug(i32 noundef %341, ptr noundef @.str.4)
  %343 = call ptr @__errno_location() #10
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @strerror(i32 noundef %344) #9
  %346 = call ptr @__errno_location() #10
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %335, ptr noundef @.str.5, i32 noundef %336, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 155, ptr noundef %339, ptr noundef %342, ptr noundef %345, i32 noundef %347) #9
  br label %349

349:                                              ; preds = %332, %315
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %350

350:                                              ; preds = %349
  br label %351

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

352:                                              ; No predecessors!
  br label %353

353:                                              ; preds = %352
  br label %354

354:                                              ; preds = %353, %296
  br label %355

355:                                              ; preds = %354
  br label %356

356:                                              ; preds = %355
  br label %357

357:                                              ; preds = %356
  %358 = load i32, ptr @test_count, align 4, !tbaa !5
  %359 = add nsw i32 %358, 1
  store i32 %359, ptr @test_count, align 4, !tbaa !5
  %360 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %360, ptr %12, align 8, !tbaa !9
  %361 = icmp eq ptr %360, null
  br i1 %361, label %362, label %415

362:                                              ; preds = %357
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %365 = call ptr @__errno_location() #10
  %366 = load i32, ptr %365, align 4, !tbaa !5
  store i32 %366, ptr %18, align 4, !tbaa !5
  %367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %368 = call i32 @s2n_print_stacktrace(ptr noundef %367)
  %369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %370 = trunc i8 %369 to i1
  br i1 %370, label %371, label %393

371:                                              ; preds = %364
  %372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %373 = call i32 @fileno(ptr noundef %372) #9
  %374 = call i32 @isatty(i32 noundef %373) #9
  %375 = icmp ne i32 %374, 0
  br i1 %375, label %376, label %393

376:                                              ; preds = %371
  %377 = load i32, ptr %18, align 4, !tbaa !5
  %378 = call ptr @__errno_location() #10
  store i32 %377, ptr %378, align 4, !tbaa !5
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = load i32, ptr @test_count, align 4, !tbaa !5
  %381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %382 = load i32, ptr %381, align 4, !tbaa !5
  %383 = call ptr @s2n_strerror(i32 noundef %382, ptr noundef @.str.4)
  %384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror_debug(i32 noundef %385, ptr noundef @.str.4)
  %387 = call ptr @__errno_location() #10
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #9
  %390 = call ptr @__errno_location() #10
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %379, ptr noundef @.str.1, i32 noundef %380, ptr noundef @.str.12, ptr noundef @.str.3, i32 noundef 156, ptr noundef %383, ptr noundef %386, ptr noundef %389, i32 noundef %391) #9
  br label %410

393:                                              ; preds = %371, %364
  %394 = load i32, ptr %18, align 4, !tbaa !5
  %395 = call ptr @__errno_location() #10
  store i32 %394, ptr %395, align 4, !tbaa !5
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror(i32 noundef %399, ptr noundef @.str.4)
  %401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef @.str.4)
  %404 = call ptr @__errno_location() #10
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @strerror(i32 noundef %405) #9
  %407 = call ptr @__errno_location() #10
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %396, ptr noundef @.str.5, i32 noundef %397, ptr noundef @.str.12, ptr noundef @.str.3, i32 noundef 156, ptr noundef %400, ptr noundef %403, ptr noundef %406, i32 noundef %408) #9
  br label %410

410:                                              ; preds = %393, %376
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %411

411:                                              ; preds = %410
  br label %412

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

413:                                              ; No predecessors!
  br label %414

414:                                              ; preds = %413
  br label %415

415:                                              ; preds = %414, %357
  br label %416

416:                                              ; preds = %415
  br label %417

417:                                              ; preds = %416
  br label %418

418:                                              ; preds = %417
  %419 = load i32, ptr @test_count, align 4, !tbaa !5
  %420 = add nsw i32 %419, 1
  store i32 %420, ptr @test_count, align 4, !tbaa !5
  %421 = load ptr, ptr %11, align 8, !tbaa !9
  %422 = call i32 @s2n_read_test_pem(ptr noundef @.str.13, ptr noundef %421, i64 noundef 12000)
  %423 = icmp eq i32 %422, -1
  br i1 %423, label %424, label %477

424:                                              ; preds = %418
  br label %425

425:                                              ; preds = %424
  br label %426

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

433:                                              ; preds = %426
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @fileno(ptr noundef %434) #9
  %436 = call i32 @isatty(i32 noundef %435) #9
  %437 = icmp ne i32 %436, 0
  br i1 %437, label %438, label %455

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

455:                                              ; preds = %433, %426
  %456 = load i32, ptr %19, align 4, !tbaa !5
  %457 = call ptr @__errno_location() #10
  store i32 %456, ptr %457, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @s2n_strerror(i32 noundef %461, ptr noundef @.str.4)
  %463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror_debug(i32 noundef %464, ptr noundef @.str.4)
  %466 = call ptr @__errno_location() #10
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = call ptr @strerror(i32 noundef %467) #9
  %469 = call ptr @__errno_location() #10
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef @.str.5, i32 noundef %459, ptr noundef @.str.14, ptr noundef @.str.3, i32 noundef 157, ptr noundef %462, ptr noundef %465, ptr noundef %468, i32 noundef %470) #9
  br label %472

472:                                              ; preds = %455, %438
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %473

473:                                              ; preds = %472
  br label %474

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

475:                                              ; No predecessors!
  br label %476

476:                                              ; preds = %475
  br label %477

477:                                              ; preds = %476, %418
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  br label %480

480:                                              ; preds = %479
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr @test_count, align 4, !tbaa !5
  %483 = load ptr, ptr %12, align 8, !tbaa !9
  %484 = call i32 @s2n_read_test_pem(ptr noundef @.str.15, ptr noundef %483, i64 noundef 12000)
  %485 = icmp eq i32 %484, -1
  br i1 %485, label %486, label %539

486:                                              ; preds = %480
  br label %487

487:                                              ; preds = %486
  br label %488

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

495:                                              ; preds = %488
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = call i32 @fileno(ptr noundef %496) #9
  %498 = call i32 @isatty(i32 noundef %497) #9
  %499 = icmp ne i32 %498, 0
  br i1 %499, label %500, label %517

500:                                              ; preds = %495
  %501 = load i32, ptr %20, align 4, !tbaa !5
  %502 = call ptr @__errno_location() #10
  store i32 %501, ptr %502, align 4, !tbaa !5
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror(i32 noundef %506, ptr noundef @.str.4)
  %508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call ptr @s2n_strerror_debug(i32 noundef %509, ptr noundef @.str.4)
  %511 = call ptr @__errno_location() #10
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @strerror(i32 noundef %512) #9
  %514 = call ptr @__errno_location() #10
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %503, ptr noundef @.str.1, i32 noundef %504, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 158, ptr noundef %507, ptr noundef %510, ptr noundef %513, i32 noundef %515) #9
  br label %534

517:                                              ; preds = %495, %488
  %518 = load i32, ptr %20, align 4, !tbaa !5
  %519 = call ptr @__errno_location() #10
  store i32 %518, ptr %519, align 4, !tbaa !5
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror(i32 noundef %523, ptr noundef @.str.4)
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror_debug(i32 noundef %526, ptr noundef @.str.4)
  %528 = call ptr @__errno_location() #10
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @strerror(i32 noundef %529) #9
  %531 = call ptr @__errno_location() #10
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %520, ptr noundef @.str.5, i32 noundef %521, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 158, ptr noundef %524, ptr noundef %527, ptr noundef %530, i32 noundef %532) #9
  br label %534

534:                                              ; preds = %517, %500
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %535

535:                                              ; preds = %534
  br label %536

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

537:                                              ; No predecessors!
  br label %538

538:                                              ; preds = %537
  br label %539

539:                                              ; preds = %538, %480
  br label %540

540:                                              ; preds = %539
  br label %541

541:                                              ; preds = %540
  br label %542

542:                                              ; preds = %541
  %543 = load i32, ptr @test_count, align 4, !tbaa !5
  %544 = add nsw i32 %543, 1
  store i32 %544, ptr @test_count, align 4, !tbaa !5
  %545 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %545, ptr %13, align 8, !tbaa !9
  %546 = icmp eq ptr %545, null
  br i1 %546, label %547, label %600

547:                                              ; preds = %542
  br label %548

548:                                              ; preds = %547
  br label %549

549:                                              ; preds = %548
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %550 = call ptr @__errno_location() #10
  %551 = load i32, ptr %550, align 4, !tbaa !5
  store i32 %551, ptr %21, align 4, !tbaa !5
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @s2n_print_stacktrace(ptr noundef %552)
  %554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %555 = trunc i8 %554 to i1
  br i1 %555, label %556, label %578

556:                                              ; preds = %549
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = call i32 @fileno(ptr noundef %557) #9
  %559 = call i32 @isatty(i32 noundef %558) #9
  %560 = icmp ne i32 %559, 0
  br i1 %560, label %561, label %578

561:                                              ; preds = %556
  %562 = load i32, ptr %21, align 4, !tbaa !5
  %563 = call ptr @__errno_location() #10
  store i32 %562, ptr %563, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror(i32 noundef %567, ptr noundef @.str.4)
  %569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %570 = load i32, ptr %569, align 4, !tbaa !5
  %571 = call ptr @s2n_strerror_debug(i32 noundef %570, ptr noundef @.str.4)
  %572 = call ptr @__errno_location() #10
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @strerror(i32 noundef %573) #9
  %575 = call ptr @__errno_location() #10
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %564, ptr noundef @.str.1, i32 noundef %565, ptr noundef @.str.17, ptr noundef @.str.3, i32 noundef 159, ptr noundef %568, ptr noundef %571, ptr noundef %574, i32 noundef %576) #9
  br label %595

578:                                              ; preds = %556, %549
  %579 = load i32, ptr %21, align 4, !tbaa !5
  %580 = call ptr @__errno_location() #10
  store i32 %579, ptr %580, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %584 = load i32, ptr %583, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror(i32 noundef %584, ptr noundef @.str.4)
  %586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %587 = load i32, ptr %586, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror_debug(i32 noundef %587, ptr noundef @.str.4)
  %589 = call ptr @__errno_location() #10
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = call ptr @strerror(i32 noundef %590) #9
  %592 = call ptr @__errno_location() #10
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %581, ptr noundef @.str.5, i32 noundef %582, ptr noundef @.str.17, ptr noundef @.str.3, i32 noundef 159, ptr noundef %585, ptr noundef %588, ptr noundef %591, i32 noundef %593) #9
  br label %595

595:                                              ; preds = %578, %561
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %596

596:                                              ; preds = %595
  br label %597

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

598:                                              ; No predecessors!
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599, %542
  br label %601

601:                                              ; preds = %600
  br label %602

602:                                              ; preds = %601
  br label %603

603:                                              ; preds = %602
  %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 %13, align 8, !tbaa !9
  %607 = load ptr, ptr %11, align 8, !tbaa !9
  %608 = load ptr, ptr %12, align 8, !tbaa !9
  %609 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %606, ptr noundef %607, ptr noundef %608)
  %610 = icmp eq i32 %609, -1
  br i1 %610, label %611, label %664

611:                                              ; preds = %603
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %614 = call ptr @__errno_location() #10
  %615 = load i32, ptr %614, align 4, !tbaa !5
  store i32 %615, ptr %22, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = call i32 @s2n_print_stacktrace(ptr noundef %616)
  %618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %619 = trunc i8 %618 to i1
  br i1 %619, label %620, label %642

620:                                              ; preds = %613
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = call i32 @fileno(ptr noundef %621) #9
  %623 = call i32 @isatty(i32 noundef %622) #9
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %625, label %642

625:                                              ; preds = %620
  %626 = load i32, ptr %22, align 4, !tbaa !5
  %627 = call ptr @__errno_location() #10
  store i32 %626, ptr %627, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef @.str.4)
  %633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror_debug(i32 noundef %634, ptr noundef @.str.4)
  %636 = call ptr @__errno_location() #10
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call ptr @strerror(i32 noundef %637) #9
  %639 = call ptr @__errno_location() #10
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef @.str.1, i32 noundef %629, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 160, ptr noundef %632, ptr noundef %635, ptr noundef %638, i32 noundef %640) #9
  br label %659

642:                                              ; preds = %620, %613
  %643 = load i32, ptr %22, align 4, !tbaa !5
  %644 = call ptr @__errno_location() #10
  store i32 %643, ptr %644, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror(i32 noundef %648, ptr noundef @.str.4)
  %650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call ptr @s2n_strerror_debug(i32 noundef %651, ptr noundef @.str.4)
  %653 = call ptr @__errno_location() #10
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call ptr @strerror(i32 noundef %654) #9
  %656 = call ptr @__errno_location() #10
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %645, ptr noundef @.str.5, i32 noundef %646, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 160, ptr noundef %649, ptr noundef %652, ptr noundef %655, i32 noundef %657) #9
  br label %659

659:                                              ; preds = %642, %625
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %660

660:                                              ; preds = %659
  br label %661

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

662:                                              ; No predecessors!
  br label %663

663:                                              ; preds = %662
  br label %664

664:                                              ; preds = %663, %603
  br label %665

665:                                              ; preds = %664
  br label %666

666:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  br label %667

667:                                              ; preds = %666
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = call i32 @s2n_io_pair_init(ptr noundef %23)
  %671 = icmp eq i32 %670, -1
  br i1 %671, label %672, label %725

672:                                              ; preds = %667
  br label %673

673:                                              ; preds = %672
  br label %674

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

681:                                              ; preds = %674
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = call i32 @fileno(ptr noundef %682) #9
  %684 = call i32 @isatty(i32 noundef %683) #9
  %685 = icmp ne i32 %684, 0
  br i1 %685, label %686, label %703

686:                                              ; preds = %681
  %687 = load i32, ptr %24, align 4, !tbaa !5
  %688 = call ptr @__errno_location() #10
  store i32 %687, ptr %688, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef @.str.4)
  %694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef @.str.4)
  %697 = call ptr @__errno_location() #10
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #9
  %700 = call ptr @__errno_location() #10
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef @.str.1, i32 noundef %690, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 166, ptr noundef %693, ptr noundef %696, ptr noundef %699, i32 noundef %701) #9
  br label %720

703:                                              ; preds = %681, %674
  %704 = load i32, ptr %24, align 4, !tbaa !5
  %705 = call ptr @__errno_location() #10
  store i32 %704, ptr %705, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef @.str.4)
  %711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror_debug(i32 noundef %712, ptr noundef @.str.4)
  %714 = call ptr @__errno_location() #10
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call ptr @strerror(i32 noundef %715) #9
  %717 = call ptr @__errno_location() #10
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef @.str.5, i32 noundef %707, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 166, ptr noundef %710, ptr noundef %713, ptr noundef %716, i32 noundef %718) #9
  br label %720

720:                                              ; preds = %703, %686
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %721

721:                                              ; preds = %720
  br label %722

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

723:                                              ; No predecessors!
  br label %724

724:                                              ; preds = %723
  br label %725

725:                                              ; preds = %724, %667
  br label %726

726:                                              ; preds = %725
  br label %727

727:                                              ; preds = %726
  %728 = call i32 @fork() #9
  store i32 %728, ptr %10, align 4, !tbaa !5
  %729 = load i32, ptr %10, align 4, !tbaa !5
  %730 = icmp eq i32 %729, 0
  br i1 %730, label %731, label %858

731:                                              ; preds = %727
  br label %732

732:                                              ; preds = %731
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = add nsw i32 %733, 1
  store i32 %734, ptr @test_count, align 4, !tbaa !5
  %735 = call i32 @s2n_io_pair_close_one_end(ptr noundef %23, i32 noundef 0)
  %736 = icmp eq i32 %735, -1
  br i1 %736, label %737, label %790

737:                                              ; preds = %732
  br label %738

738:                                              ; preds = %737
  br label %739

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

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

751:                                              ; preds = %746
  %752 = load i32, ptr %25, align 4, !tbaa !5
  %753 = call ptr @__errno_location() #10
  store i32 %752, ptr %753, align 4, !tbaa !5
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = load i32, ptr @test_count, align 4, !tbaa !5
  %756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror(i32 noundef %757, ptr noundef @.str.4)
  %759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror_debug(i32 noundef %760, ptr noundef @.str.4)
  %762 = call ptr @__errno_location() #10
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call ptr @strerror(i32 noundef %763) #9
  %765 = call ptr @__errno_location() #10
  %766 = load i32, ptr %765, align 4, !tbaa !5
  %767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %754, ptr noundef @.str.1, i32 noundef %755, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 172, ptr noundef %758, ptr noundef %761, ptr noundef %764, i32 noundef %766) #9
  br label %785

768:                                              ; preds = %746, %739
  %769 = load i32, ptr %25, align 4, !tbaa !5
  %770 = call ptr @__errno_location() #10
  store i32 %769, ptr %770, align 4, !tbaa !5
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror(i32 noundef %774, ptr noundef @.str.4)
  %776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef @.str.4)
  %779 = call ptr @__errno_location() #10
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @strerror(i32 noundef %780) #9
  %782 = call ptr @__errno_location() #10
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %771, ptr noundef @.str.5, i32 noundef %772, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 172, ptr noundef %775, ptr noundef %778, ptr noundef %781, i32 noundef %783) #9
  br label %785

785:                                              ; preds = %768, %751
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %786

786:                                              ; preds = %785
  br label %787

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

788:                                              ; No predecessors!
  br label %789

789:                                              ; preds = %788
  br label %790

790:                                              ; preds = %789, %732
  br label %791

791:                                              ; preds = %790
  br label %792

792:                                              ; preds = %791
  br label %793

793:                                              ; preds = %792
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = add nsw i32 %794, 1
  store i32 %795, ptr @test_count, align 4, !tbaa !5
  %796 = call i32 @cleanup(ptr noundef %11, ptr noundef %12, ptr noundef %13)
  %797 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  store i32 %796, ptr %797, align 4
  %798 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  %799 = load i32, ptr %798, align 4
  %800 = call zeroext i1 @s2n_result_is_ok(i32 %799)
  br i1 %800, label %854, label %801

801:                                              ; preds = %793
  br label %802

802:                                              ; preds = %801
  br label %803

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

810:                                              ; preds = %803
  %811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %812 = call i32 @fileno(ptr noundef %811) #9
  %813 = call i32 @isatty(i32 noundef %812) #9
  %814 = icmp ne i32 %813, 0
  br i1 %814, label %815, label %832

815:                                              ; preds = %810
  %816 = load i32, ptr %27, align 4, !tbaa !5
  %817 = call ptr @__errno_location() #10
  store i32 %816, ptr %817, align 4, !tbaa !5
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = load i32, ptr @test_count, align 4, !tbaa !5
  %820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call ptr @s2n_strerror(i32 noundef %821, ptr noundef @.str.4)
  %823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror_debug(i32 noundef %824, ptr noundef @.str.4)
  %826 = call ptr @__errno_location() #10
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call ptr @strerror(i32 noundef %827) #9
  %829 = call ptr @__errno_location() #10
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %818, ptr noundef @.str.1, i32 noundef %819, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 174, ptr noundef %822, ptr noundef %825, ptr noundef %828, i32 noundef %830) #9
  br label %849

832:                                              ; preds = %810, %803
  %833 = load i32, ptr %27, align 4, !tbaa !5
  %834 = call ptr @__errno_location() #10
  store i32 %833, ptr %834, align 4, !tbaa !5
  %835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %836 = load i32, ptr @test_count, align 4, !tbaa !5
  %837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @s2n_strerror(i32 noundef %838, ptr noundef @.str.4)
  %840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror_debug(i32 noundef %841, ptr noundef @.str.4)
  %843 = call ptr @__errno_location() #10
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @strerror(i32 noundef %844) #9
  %846 = call ptr @__errno_location() #10
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %835, ptr noundef @.str.5, i32 noundef %836, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 174, ptr noundef %839, ptr noundef %842, ptr noundef %845, i32 noundef %847) #9
  br label %849

849:                                              ; preds = %832, %815
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %850

850:                                              ; preds = %849
  br label %851

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

852:                                              ; No predecessors!
  br label %853

853:                                              ; preds = %852
  br label %854

854:                                              ; preds = %853, %793
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855
  %857 = call i32 @mock_client(ptr noundef %23, i32 noundef 1, i32 noundef 0)
  br label %858

858:                                              ; preds = %856, %727
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %859 = call ptr @s2n_config_new()
  store ptr %859, ptr %28, align 8, !tbaa !9
  br label %860

860:                                              ; preds = %858
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = add nsw i32 %861, 1
  store i32 %862, ptr @test_count, align 4, !tbaa !5
  %863 = load ptr, ptr %28, align 8, !tbaa !9
  %864 = load ptr, ptr %13, align 8, !tbaa !9
  %865 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %863, ptr noundef %864)
  %866 = icmp eq i32 %865, -1
  br i1 %866, label %867, label %920

867:                                              ; preds = %860
  br label %868

868:                                              ; preds = %867
  br label %869

869:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %870 = call ptr @__errno_location() #10
  %871 = load i32, ptr %870, align 4, !tbaa !5
  store i32 %871, ptr %29, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = call i32 @s2n_print_stacktrace(ptr noundef %872)
  %874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %875 = trunc i8 %874 to i1
  br i1 %875, label %876, label %898

876:                                              ; preds = %869
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @fileno(ptr noundef %877) #9
  %879 = call i32 @isatty(i32 noundef %878) #9
  %880 = icmp ne i32 %879, 0
  br i1 %880, label %881, label %898

881:                                              ; preds = %876
  %882 = load i32, ptr %29, align 4, !tbaa !5
  %883 = call ptr @__errno_location() #10
  store i32 %882, ptr %883, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @s2n_strerror(i32 noundef %887, ptr noundef @.str.4)
  %889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call ptr @s2n_strerror_debug(i32 noundef %890, ptr noundef @.str.4)
  %892 = call ptr @__errno_location() #10
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #9
  %895 = call ptr @__errno_location() #10
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %884, ptr noundef @.str.1, i32 noundef %885, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 180, ptr noundef %888, ptr noundef %891, ptr noundef %894, i32 noundef %896) #9
  br label %915

898:                                              ; preds = %876, %869
  %899 = load i32, ptr %29, align 4, !tbaa !5
  %900 = call ptr @__errno_location() #10
  store i32 %899, ptr %900, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror(i32 noundef %904, ptr noundef @.str.4)
  %906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror_debug(i32 noundef %907, ptr noundef @.str.4)
  %909 = call ptr @__errno_location() #10
  %910 = load i32, ptr %909, align 4, !tbaa !5
  %911 = call ptr @strerror(i32 noundef %910) #9
  %912 = call ptr @__errno_location() #10
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %901, ptr noundef @.str.5, i32 noundef %902, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 180, ptr noundef %905, ptr noundef %908, ptr noundef %911, i32 noundef %913) #9
  br label %915

915:                                              ; preds = %898, %881
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %916

916:                                              ; preds = %915
  br label %917

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

918:                                              ; No predecessors!
  br label %919

919:                                              ; preds = %918
  br label %920

920:                                              ; preds = %919, %860
  br label %921

921:                                              ; preds = %920
  br label %922

922:                                              ; preds = %921
  br label %923

923:                                              ; preds = %922
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr @test_count, align 4, !tbaa !5
  %926 = load ptr, ptr %28, align 8, !tbaa !9
  %927 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %926, ptr noundef @.str)
  %928 = icmp eq i32 %927, -1
  br i1 %928, label %929, label %982

929:                                              ; preds = %923
  br label %930

930:                                              ; preds = %929
  br label %931

931:                                              ; preds = %930
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %932 = call ptr @__errno_location() #10
  %933 = load i32, ptr %932, align 4, !tbaa !5
  store i32 %933, ptr %30, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @s2n_print_stacktrace(ptr noundef %934)
  %936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %937 = trunc i8 %936 to i1
  br i1 %937, label %938, label %960

938:                                              ; preds = %931
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = call i32 @fileno(ptr noundef %939) #9
  %941 = call i32 @isatty(i32 noundef %940) #9
  %942 = icmp ne i32 %941, 0
  br i1 %942, label %943, label %960

943:                                              ; preds = %938
  %944 = load i32, ptr %30, align 4, !tbaa !5
  %945 = call ptr @__errno_location() #10
  store i32 %944, ptr %945, align 4, !tbaa !5
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = load i32, ptr @test_count, align 4, !tbaa !5
  %948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call ptr @s2n_strerror(i32 noundef %949, ptr noundef @.str.4)
  %951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror_debug(i32 noundef %952, ptr noundef @.str.4)
  %954 = call ptr @__errno_location() #10
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = call ptr @strerror(i32 noundef %955) #9
  %957 = call ptr @__errno_location() #10
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %946, ptr noundef @.str.1, i32 noundef %947, ptr noundef @.str.2, ptr noundef @.str.3, i32 noundef 181, ptr noundef %950, ptr noundef %953, ptr noundef %956, i32 noundef %958) #9
  br label %977

960:                                              ; preds = %938, %931
  %961 = load i32, ptr %30, align 4, !tbaa !5
  %962 = call ptr @__errno_location() #10
  store i32 %961, ptr %962, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror(i32 noundef %966, ptr noundef @.str.4)
  %968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror_debug(i32 noundef %969, ptr noundef @.str.4)
  %971 = call ptr @__errno_location() #10
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call ptr @strerror(i32 noundef %972) #9
  %974 = call ptr @__errno_location() #10
  %975 = load i32, ptr %974, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %963, ptr noundef @.str.5, i32 noundef %964, ptr noundef @.str.2, ptr noundef @.str.3, i32 noundef 181, ptr noundef %967, ptr noundef %970, ptr noundef %973, i32 noundef %975) #9
  br label %977

977:                                              ; preds = %960, %943
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %978

978:                                              ; preds = %977
  br label %979

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

980:                                              ; No predecessors!
  br label %981

981:                                              ; preds = %980
  br label %982

982:                                              ; preds = %981, %923
  br label %983

983:                                              ; preds = %982
  br label %984

984:                                              ; preds = %983
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #9
  %985 = getelementptr inbounds %struct.alert_ctx, ptr %31, i32 0, i32 0
  %986 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %23, i32 0, i32 1
  %987 = load i32, ptr %986, align 4, !tbaa !15
  store i32 %987, ptr %985, align 4, !tbaa !17
  %988 = getelementptr inbounds %struct.alert_ctx, ptr %31, i32 0, i32 1
  store i32 0, ptr %988, align 4, !tbaa !19
  %989 = getelementptr inbounds %struct.alert_ctx, ptr %31, i32 0, i32 2
  store i32 2, ptr %989, align 4, !tbaa !20
  %990 = getelementptr inbounds %struct.alert_ctx, ptr %31, i32 0, i32 3
  store i8 1, ptr %990, align 4, !tbaa !21
  %991 = getelementptr inbounds %struct.alert_ctx, ptr %31, i32 0, i32 4
  store i8 122, ptr %991, align 1, !tbaa !22
  br label %992

992:                                              ; preds = %984
  %993 = load i32, ptr @test_count, align 4, !tbaa !5
  %994 = add nsw i32 %993, 1
  store i32 %994, ptr @test_count, align 4, !tbaa !5
  %995 = load ptr, ptr %28, align 8, !tbaa !9
  %996 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %995, ptr noundef @client_hello_send_alerts, ptr noundef %31)
  %997 = icmp eq i32 %996, -1
  br i1 %997, label %998, label %1051

998:                                              ; preds = %992
  br label %999

999:                                              ; preds = %998
  br label %1000

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

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

1012:                                             ; preds = %1007
  %1013 = load i32, ptr %32, align 4, !tbaa !5
  %1014 = call ptr @__errno_location() #10
  store i32 %1013, ptr %1014, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = load i32, ptr @test_count, align 4, !tbaa !5
  %1017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror(i32 noundef %1018, ptr noundef @.str.4)
  %1020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror_debug(i32 noundef %1021, ptr noundef @.str.4)
  %1023 = call ptr @__errno_location() #10
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #9
  %1026 = call ptr @__errno_location() #10
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1015, ptr noundef @.str.1, i32 noundef %1016, ptr noundef @.str.23, ptr noundef @.str.3, i32 noundef 185, ptr noundef %1019, ptr noundef %1022, ptr noundef %1025, i32 noundef %1027) #9
  br label %1046

1029:                                             ; preds = %1007, %1000
  %1030 = load i32, ptr %32, align 4, !tbaa !5
  %1031 = call ptr @__errno_location() #10
  store i32 %1030, ptr %1031, align 4, !tbaa !5
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = load i32, ptr @test_count, align 4, !tbaa !5
  %1034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call ptr @s2n_strerror(i32 noundef %1035, ptr noundef @.str.4)
  %1037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1038 = load i32, ptr %1037, align 4, !tbaa !5
  %1039 = call ptr @s2n_strerror_debug(i32 noundef %1038, ptr noundef @.str.4)
  %1040 = call ptr @__errno_location() #10
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call ptr @strerror(i32 noundef %1041) #9
  %1043 = call ptr @__errno_location() #10
  %1044 = load i32, ptr %1043, align 4, !tbaa !5
  %1045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1032, ptr noundef @.str.5, i32 noundef %1033, ptr noundef @.str.23, ptr noundef @.str.3, i32 noundef 185, ptr noundef %1036, ptr noundef %1039, ptr noundef %1042, i32 noundef %1044) #9
  br label %1046

1046:                                             ; preds = %1029, %1012
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1047

1047:                                             ; preds = %1046
  br label %1048

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

1049:                                             ; No predecessors!
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050, %992
  br label %1052

1052:                                             ; preds = %1051
  br label %1053

1053:                                             ; preds = %1052
  br label %1054

1054:                                             ; preds = %1053
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = add nsw i32 %1055, 1
  store i32 %1056, ptr @test_count, align 4, !tbaa !5
  %1057 = call i32 @s2n_io_pair_close_one_end(ptr noundef %23, i32 noundef 1)
  %1058 = icmp eq i32 %1057, -1
  br i1 %1058, label %1059, label %1112

1059:                                             ; preds = %1054
  br label %1060

1060:                                             ; preds = %1059
  br label %1061

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

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

1073:                                             ; preds = %1068
  %1074 = load i32, ptr %33, align 4, !tbaa !5
  %1075 = call ptr @__errno_location() #10
  store i32 %1074, ptr %1075, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = load i32, ptr @test_count, align 4, !tbaa !5
  %1078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror(i32 noundef %1079, ptr noundef @.str.4)
  %1081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef @.str.4)
  %1084 = call ptr @__errno_location() #10
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call ptr @strerror(i32 noundef %1085) #9
  %1087 = call ptr @__errno_location() #10
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1076, ptr noundef @.str.1, i32 noundef %1077, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 189, ptr noundef %1080, ptr noundef %1083, ptr noundef %1086, i32 noundef %1088) #9
  br label %1107

1090:                                             ; preds = %1068, %1061
  %1091 = load i32, ptr %33, align 4, !tbaa !5
  %1092 = call ptr @__errno_location() #10
  store i32 %1091, ptr %1092, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror(i32 noundef %1096, ptr noundef @.str.4)
  %1098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef @.str.4)
  %1101 = call ptr @__errno_location() #10
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @strerror(i32 noundef %1102) #9
  %1104 = call ptr @__errno_location() #10
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1093, ptr noundef @.str.5, i32 noundef %1094, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 189, ptr noundef %1097, ptr noundef %1100, ptr noundef %1103, i32 noundef %1105) #9
  br label %1107

1107:                                             ; preds = %1090, %1073
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

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

1110:                                             ; No predecessors!
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

1112:                                             ; preds = %1111, %1054
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

1114:                                             ; preds = %1113
  br label %1115

1115:                                             ; preds = %1114
  %1116 = load i32, ptr @test_count, align 4, !tbaa !5
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr @test_count, align 4, !tbaa !5
  %1118 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1118, ptr %7, align 8, !tbaa !9
  %1119 = icmp eq ptr %1118, null
  br i1 %1119, label %1120, label %1173

1120:                                             ; preds = %1115
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

1122:                                             ; preds = %1121
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1123 = call ptr @__errno_location() #10
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  store i32 %1124, ptr %34, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @s2n_print_stacktrace(ptr noundef %1125)
  %1127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1128 = trunc i8 %1127 to i1
  br i1 %1128, label %1129, label %1151

1129:                                             ; preds = %1122
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @fileno(ptr noundef %1130) #9
  %1132 = call i32 @isatty(i32 noundef %1131) #9
  %1133 = icmp ne i32 %1132, 0
  br i1 %1133, label %1134, label %1151

1134:                                             ; preds = %1129
  %1135 = load i32, ptr %34, align 4, !tbaa !5
  %1136 = call ptr @__errno_location() #10
  store i32 %1135, ptr %1136, align 4, !tbaa !5
  %1137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1138 = load i32, ptr @test_count, align 4, !tbaa !5
  %1139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror(i32 noundef %1140, ptr noundef @.str.4)
  %1142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror_debug(i32 noundef %1143, ptr noundef @.str.4)
  %1145 = call ptr @__errno_location() #10
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @strerror(i32 noundef %1146) #9
  %1148 = call ptr @__errno_location() #10
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1137, ptr noundef @.str.1, i32 noundef %1138, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 191, ptr noundef %1141, ptr noundef %1144, ptr noundef %1147, i32 noundef %1149) #9
  br label %1168

1151:                                             ; preds = %1129, %1122
  %1152 = load i32, ptr %34, align 4, !tbaa !5
  %1153 = call ptr @__errno_location() #10
  store i32 %1152, ptr %1153, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror(i32 noundef %1157, ptr noundef @.str.4)
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror_debug(i32 noundef %1160, ptr noundef @.str.4)
  %1162 = call ptr @__errno_location() #10
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @strerror(i32 noundef %1163) #9
  %1165 = call ptr @__errno_location() #10
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1154, ptr noundef @.str.5, i32 noundef %1155, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 191, ptr noundef %1158, ptr noundef %1161, ptr noundef %1164, i32 noundef %1166) #9
  br label %1168

1168:                                             ; preds = %1151, %1134
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

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

1171:                                             ; No predecessors!
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

1173:                                             ; preds = %1172, %1115
  br label %1174

1174:                                             ; preds = %1173
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175
  %1177 = load i32, ptr @test_count, align 4, !tbaa !5
  %1178 = add nsw i32 %1177, 1
  store i32 %1178, ptr @test_count, align 4, !tbaa !5
  %1179 = load ptr, ptr %7, align 8, !tbaa !9
  %1180 = load ptr, ptr %28, align 8, !tbaa !9
  %1181 = call i32 @s2n_connection_set_config(ptr noundef %1179, ptr noundef %1180)
  %1182 = icmp eq i32 %1181, -1
  br i1 %1182, label %1183, label %1236

1183:                                             ; preds = %1176
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

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

1192:                                             ; preds = %1185
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = call i32 @fileno(ptr noundef %1193) #9
  %1195 = call i32 @isatty(i32 noundef %1194) #9
  %1196 = icmp ne i32 %1195, 0
  br i1 %1196, label %1197, label %1214

1197:                                             ; preds = %1192
  %1198 = load i32, ptr %35, align 4, !tbaa !5
  %1199 = call ptr @__errno_location() #10
  store i32 %1198, ptr %1199, align 4, !tbaa !5
  %1200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror(i32 noundef %1203, ptr noundef @.str.4)
  %1205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1206 = load i32, ptr %1205, align 4, !tbaa !5
  %1207 = call ptr @s2n_strerror_debug(i32 noundef %1206, ptr noundef @.str.4)
  %1208 = call ptr @__errno_location() #10
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = call ptr @strerror(i32 noundef %1209) #9
  %1211 = call ptr @__errno_location() #10
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1200, ptr noundef @.str.1, i32 noundef %1201, ptr noundef @.str.26, ptr noundef @.str.3, i32 noundef 192, ptr noundef %1204, ptr noundef %1207, ptr noundef %1210, i32 noundef %1212) #9
  br label %1231

1214:                                             ; preds = %1192, %1185
  %1215 = load i32, ptr %35, align 4, !tbaa !5
  %1216 = call ptr @__errno_location() #10
  store i32 %1215, ptr %1216, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = load i32, ptr @test_count, align 4, !tbaa !5
  %1219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef @.str.4)
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror_debug(i32 noundef %1223, ptr noundef @.str.4)
  %1225 = call ptr @__errno_location() #10
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call ptr @strerror(i32 noundef %1226) #9
  %1228 = call ptr @__errno_location() #10
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1217, ptr noundef @.str.5, i32 noundef %1218, ptr noundef @.str.26, ptr noundef @.str.3, i32 noundef 192, ptr noundef %1221, ptr noundef %1224, ptr noundef %1227, i32 noundef %1229) #9
  br label %1231

1231:                                             ; preds = %1214, %1197
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1232

1232:                                             ; preds = %1231
  br label %1233

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

1234:                                             ; No predecessors!
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

1236:                                             ; preds = %1235, %1176
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = add nsw i32 %1240, 1
  store i32 %1241, ptr @test_count, align 4, !tbaa !5
  %1242 = load ptr, ptr %7, align 8, !tbaa !9
  %1243 = call i32 @s2n_connection_set_io_pair(ptr noundef %1242, ptr noundef %23)
  %1244 = icmp eq i32 %1243, -1
  br i1 %1244, label %1245, label %1298

1245:                                             ; preds = %1239
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1248 = call ptr @__errno_location() #10
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  store i32 %1249, ptr %36, align 4, !tbaa !5
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = call i32 @s2n_print_stacktrace(ptr noundef %1250)
  %1252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1253 = trunc i8 %1252 to i1
  br i1 %1253, label %1254, label %1276

1254:                                             ; preds = %1247
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = call i32 @fileno(ptr noundef %1255) #9
  %1257 = call i32 @isatty(i32 noundef %1256) #9
  %1258 = icmp ne i32 %1257, 0
  br i1 %1258, label %1259, label %1276

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

1276:                                             ; preds = %1254, %1247
  %1277 = load i32, ptr %36, align 4, !tbaa !5
  %1278 = call ptr @__errno_location() #10
  store i32 %1277, ptr %1278, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror(i32 noundef %1282, ptr noundef @.str.4)
  %1284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror_debug(i32 noundef %1285, ptr noundef @.str.4)
  %1287 = call ptr @__errno_location() #10
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @strerror(i32 noundef %1288) #9
  %1290 = call ptr @__errno_location() #10
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1279, ptr noundef @.str.5, i32 noundef %1280, ptr noundef @.str.27, ptr noundef @.str.3, i32 noundef 195, ptr noundef %1283, ptr noundef %1286, ptr noundef %1289, i32 noundef %1291) #9
  br label %1293

1293:                                             ; preds = %1276, %1259
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1294

1294:                                             ; preds = %1293
  br label %1295

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

1296:                                             ; No predecessors!
  br label %1297

1297:                                             ; preds = %1296
  br label %1298

1298:                                             ; preds = %1297, %1239
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

1300:                                             ; preds = %1299
  br label %1301

1301:                                             ; preds = %1300
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = add nsw i32 %1302, 1
  store i32 %1303, ptr @test_count, align 4, !tbaa !5
  %1304 = load ptr, ptr %7, align 8, !tbaa !9
  %1305 = call i32 @s2n_negotiate(ptr noundef %1304, ptr noundef %8)
  %1306 = icmp eq i32 %1305, -1
  br i1 %1306, label %1307, label %1360

1307:                                             ; preds = %1301
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

1309:                                             ; preds = %1308
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1310 = call ptr @__errno_location() #10
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  store i32 %1311, ptr %37, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @s2n_print_stacktrace(ptr noundef %1312)
  %1314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1315 = trunc i8 %1314 to i1
  br i1 %1315, label %1316, label %1338

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

1321:                                             ; preds = %1316
  %1322 = load i32, ptr %37, align 4, !tbaa !5
  %1323 = call ptr @__errno_location() #10
  store i32 %1322, ptr %1323, align 4, !tbaa !5
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = load i32, ptr @test_count, align 4, !tbaa !5
  %1326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  %1328 = call ptr @s2n_strerror(i32 noundef %1327, ptr noundef @.str.4)
  %1329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1330 = load i32, ptr %1329, align 4, !tbaa !5
  %1331 = call ptr @s2n_strerror_debug(i32 noundef %1330, ptr noundef @.str.4)
  %1332 = call ptr @__errno_location() #10
  %1333 = load i32, ptr %1332, align 4, !tbaa !5
  %1334 = call ptr @strerror(i32 noundef %1333) #9
  %1335 = call ptr @__errno_location() #10
  %1336 = load i32, ptr %1335, align 4, !tbaa !5
  %1337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1324, ptr noundef @.str.1, i32 noundef %1325, ptr noundef @.str.28, ptr noundef @.str.3, i32 noundef 198, ptr noundef %1328, ptr noundef %1331, ptr noundef %1334, i32 noundef %1336) #9
  br label %1355

1338:                                             ; preds = %1316, %1309
  %1339 = load i32, ptr %37, align 4, !tbaa !5
  %1340 = call ptr @__errno_location() #10
  store i32 %1339, ptr %1340, align 4, !tbaa !5
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = load i32, ptr @test_count, align 4, !tbaa !5
  %1343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror(i32 noundef %1344, ptr noundef @.str.4)
  %1346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = call ptr @s2n_strerror_debug(i32 noundef %1347, ptr noundef @.str.4)
  %1349 = call ptr @__errno_location() #10
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = call ptr @strerror(i32 noundef %1350) #9
  %1352 = call ptr @__errno_location() #10
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1341, ptr noundef @.str.5, i32 noundef %1342, ptr noundef @.str.28, ptr noundef @.str.3, i32 noundef 198, ptr noundef %1345, ptr noundef %1348, ptr noundef %1351, i32 noundef %1353) #9
  br label %1355

1355:                                             ; preds = %1338, %1321
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

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

1358:                                             ; No predecessors!
  br label %1359

1359:                                             ; preds = %1358
  br label %1360

1360:                                             ; preds = %1359, %1301
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361
  br label %1363

1363:                                             ; preds = %1362
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = add nsw i32 %1364, 1
  store i32 %1365, ptr @test_count, align 4, !tbaa !5
  %1366 = load ptr, ptr %7, align 8, !tbaa !9
  %1367 = getelementptr inbounds %struct.s2n_connection, ptr %1366, i32 0, i32 23
  %1368 = load i8, ptr %1367, align 4, !tbaa !23
  %1369 = zext i8 %1368 to i32
  %1370 = icmp eq i32 %1369, 33
  br i1 %1370, label %1424, label %1371

1371:                                             ; preds = %1363
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

1373:                                             ; preds = %1372
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1374 = call ptr @__errno_location() #10
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  store i32 %1375, ptr %38, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = call i32 @s2n_print_stacktrace(ptr noundef %1376)
  %1378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1379 = trunc i8 %1378 to i1
  br i1 %1379, label %1380, label %1402

1380:                                             ; preds = %1373
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = call i32 @fileno(ptr noundef %1381) #9
  %1383 = call i32 @isatty(i32 noundef %1382) #9
  %1384 = icmp ne i32 %1383, 0
  br i1 %1384, label %1385, label %1402

1385:                                             ; preds = %1380
  %1386 = load i32, ptr %38, align 4, !tbaa !5
  %1387 = call ptr @__errno_location() #10
  store i32 %1386, ptr %1387, align 4, !tbaa !5
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = load i32, ptr @test_count, align 4, !tbaa !5
  %1390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call ptr @s2n_strerror(i32 noundef %1391, ptr noundef @.str.4)
  %1393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror_debug(i32 noundef %1394, ptr noundef @.str.4)
  %1396 = call ptr @__errno_location() #10
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call ptr @strerror(i32 noundef %1397) #9
  %1399 = call ptr @__errno_location() #10
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1388, ptr noundef @.str.1, i32 noundef %1389, ptr noundef @.str.29, ptr noundef @.str.3, i32 noundef 199, ptr noundef %1392, ptr noundef %1395, ptr noundef %1398, i32 noundef %1400) #9
  br label %1419

1402:                                             ; preds = %1380, %1373
  %1403 = load i32, ptr %38, align 4, !tbaa !5
  %1404 = call ptr @__errno_location() #10
  store i32 %1403, ptr %1404, align 4, !tbaa !5
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror(i32 noundef %1408, ptr noundef @.str.4)
  %1410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror_debug(i32 noundef %1411, ptr noundef @.str.4)
  %1413 = call ptr @__errno_location() #10
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call ptr @strerror(i32 noundef %1414) #9
  %1416 = call ptr @__errno_location() #10
  %1417 = load i32, ptr %1416, align 4, !tbaa !5
  %1418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1405, ptr noundef @.str.5, i32 noundef %1406, ptr noundef @.str.29, ptr noundef @.str.3, i32 noundef 199, ptr noundef %1409, ptr noundef %1412, ptr noundef %1415, i32 noundef %1417) #9
  br label %1419

1419:                                             ; preds = %1402, %1385
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1420

1420:                                             ; preds = %1419
  br label %1421

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

1422:                                             ; No predecessors!
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1423, %1363
  br label %1425

1425:                                             ; preds = %1424
  br label %1426

1426:                                             ; preds = %1425
  br label %1427

1427:                                             ; preds = %1426
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = add nsw i32 %1428, 1
  store i32 %1429, ptr @test_count, align 4, !tbaa !5
  %1430 = getelementptr inbounds %struct.alert_ctx, ptr %31, i32 0, i32 1
  %1431 = load i32, ptr %1430, align 4, !tbaa !19
  %1432 = icmp eq i32 %1431, 2
  br i1 %1432, label %1486, label %1433

1433:                                             ; preds = %1427
  br label %1434

1434:                                             ; preds = %1433
  br label %1435

1435:                                             ; preds = %1434
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1436 = call ptr @__errno_location() #10
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  store i32 %1437, ptr %39, align 4, !tbaa !5
  %1438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1439 = call i32 @s2n_print_stacktrace(ptr noundef %1438)
  %1440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1441 = trunc i8 %1440 to i1
  br i1 %1441, label %1442, label %1464

1442:                                             ; preds = %1435
  %1443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1444 = call i32 @fileno(ptr noundef %1443) #9
  %1445 = call i32 @isatty(i32 noundef %1444) #9
  %1446 = icmp ne i32 %1445, 0
  br i1 %1446, label %1447, label %1464

1447:                                             ; preds = %1442
  %1448 = load i32, ptr %39, align 4, !tbaa !5
  %1449 = call ptr @__errno_location() #10
  store i32 %1448, ptr %1449, align 4, !tbaa !5
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = load i32, ptr @test_count, align 4, !tbaa !5
  %1452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @s2n_strerror(i32 noundef %1453, ptr noundef @.str.4)
  %1455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror_debug(i32 noundef %1456, ptr noundef @.str.4)
  %1458 = call ptr @__errno_location() #10
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call ptr @strerror(i32 noundef %1459) #9
  %1461 = call ptr @__errno_location() #10
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1450, ptr noundef @.str.1, i32 noundef %1451, ptr noundef @.str.30, ptr noundef @.str.3, i32 noundef 202, ptr noundef %1454, ptr noundef %1457, ptr noundef %1460, i32 noundef %1462) #9
  br label %1481

1464:                                             ; preds = %1442, %1435
  %1465 = load i32, ptr %39, align 4, !tbaa !5
  %1466 = call ptr @__errno_location() #10
  store i32 %1465, ptr %1466, align 4, !tbaa !5
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror(i32 noundef %1470, ptr noundef @.str.4)
  %1472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror_debug(i32 noundef %1473, ptr noundef @.str.4)
  %1475 = call ptr @__errno_location() #10
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call ptr @strerror(i32 noundef %1476) #9
  %1478 = call ptr @__errno_location() #10
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1467, ptr noundef @.str.5, i32 noundef %1468, ptr noundef @.str.30, ptr noundef @.str.3, i32 noundef 202, ptr noundef %1471, ptr noundef %1474, ptr noundef %1477, i32 noundef %1479) #9
  br label %1481

1481:                                             ; preds = %1464, %1447
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1482

1482:                                             ; preds = %1481
  br label %1483

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

1484:                                             ; No predecessors!
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485, %1427
  br label %1487

1487:                                             ; preds = %1486
  br label %1488

1488:                                             ; preds = %1487
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  store i64 1, ptr %40, align 8, !tbaa !50
  br label %1489

1489:                                             ; preds = %1651, %1488
  %1490 = load i64, ptr %40, align 8, !tbaa !50
  %1491 = icmp ult i64 %1490, 65535
  br i1 %1491, label %1493, label %1492

1492:                                             ; preds = %1489
  store i32 138, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  br label %1654

1493:                                             ; preds = %1489
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %1494 = getelementptr inbounds [65535 x i8], ptr %6, i64 0, i64 0
  store ptr %1494, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1495 = load i64, ptr %40, align 8, !tbaa !50
  %1496 = trunc i64 %1495 to i32
  store i32 %1496, ptr %43, align 4, !tbaa !5
  br label %1497

1497:                                             ; preds = %1571, %1493
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1498

1498:                                             ; preds = %1497
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = add nsw i32 %1499, 1
  store i32 %1500, ptr @test_count, align 4, !tbaa !5
  %1501 = load ptr, ptr %7, align 8, !tbaa !9
  %1502 = load ptr, ptr %42, align 8, !tbaa !9
  %1503 = load i32, ptr %43, align 4, !tbaa !5
  %1504 = sext i32 %1503 to i64
  %1505 = call i64 @s2n_recv(ptr noundef %1501, ptr noundef %1502, i64 noundef %1504, ptr noundef %8)
  %1506 = trunc i64 %1505 to i32
  store i32 %1506, ptr %44, align 4, !tbaa !5
  %1507 = icmp eq i32 %1506, -1
  br i1 %1507, label %1508, label %1561

1508:                                             ; preds = %1498
  br label %1509

1509:                                             ; preds = %1508
  br label %1510

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

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

1522:                                             ; preds = %1517
  %1523 = load i32, ptr %45, align 4, !tbaa !5
  %1524 = call ptr @__errno_location() #10
  store i32 %1523, ptr %1524, align 4, !tbaa !5
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = load i32, ptr @test_count, align 4, !tbaa !5
  %1527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call ptr @s2n_strerror(i32 noundef %1528, ptr noundef @.str.4)
  %1530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call ptr @s2n_strerror_debug(i32 noundef %1531, ptr noundef @.str.4)
  %1533 = call ptr @__errno_location() #10
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = call ptr @strerror(i32 noundef %1534) #9
  %1536 = call ptr @__errno_location() #10
  %1537 = load i32, ptr %1536, align 4, !tbaa !5
  %1538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1525, ptr noundef @.str.1, i32 noundef %1526, ptr noundef @.str.31, ptr noundef @.str.3, i32 noundef 210, ptr noundef %1529, ptr noundef %1532, ptr noundef %1535, i32 noundef %1537) #9
  br label %1556

1539:                                             ; preds = %1517, %1510
  %1540 = load i32, ptr %45, align 4, !tbaa !5
  %1541 = call ptr @__errno_location() #10
  store i32 %1540, ptr %1541, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = load i32, ptr @test_count, align 4, !tbaa !5
  %1544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror(i32 noundef %1545, ptr noundef @.str.4)
  %1547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror_debug(i32 noundef %1548, ptr noundef @.str.4)
  %1550 = call ptr @__errno_location() #10
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call ptr @strerror(i32 noundef %1551) #9
  %1553 = call ptr @__errno_location() #10
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1542, ptr noundef @.str.5, i32 noundef %1543, ptr noundef @.str.31, ptr noundef @.str.3, i32 noundef 210, ptr noundef %1546, ptr noundef %1549, ptr noundef %1552, i32 noundef %1554) #9
  br label %1556

1556:                                             ; preds = %1539, %1522
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

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

1559:                                             ; No predecessors!
  br label %1560

1560:                                             ; preds = %1559
  br label %1561

1561:                                             ; preds = %1560, %1498
  br label %1562

1562:                                             ; preds = %1561
  br label %1563

1563:                                             ; preds = %1562
  %1564 = load i32, ptr %44, align 4, !tbaa !5
  %1565 = load i32, ptr %43, align 4, !tbaa !5
  %1566 = sub nsw i32 %1565, %1564
  store i32 %1566, ptr %43, align 4, !tbaa !5
  %1567 = load i32, ptr %44, align 4, !tbaa !5
  %1568 = load ptr, ptr %42, align 8, !tbaa !9
  %1569 = sext i32 %1567 to i64
  %1570 = getelementptr inbounds i8, ptr %1568, i64 %1569
  store ptr %1570, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1571

1571:                                             ; preds = %1563
  %1572 = load i32, ptr %43, align 4, !tbaa !5
  %1573 = icmp ne i32 %1572, 0
  br i1 %1573, label %1497, label %1574, !llvm.loop !51

1574:                                             ; preds = %1571
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  store i32 0, ptr %46, align 4, !tbaa !5
  br label %1575

1575:                                             ; preds = %1647, %1574
  %1576 = load i32, ptr %46, align 4, !tbaa !5
  %1577 = sext i32 %1576 to i64
  %1578 = load i64, ptr %40, align 8, !tbaa !50
  %1579 = icmp ult i64 %1577, %1578
  br i1 %1579, label %1581, label %1580

1580:                                             ; preds = %1575
  store i32 149, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %1650

1581:                                             ; preds = %1575
  br label %1582

1582:                                             ; preds = %1581
  %1583 = load i32, ptr @test_count, align 4, !tbaa !5
  %1584 = add nsw i32 %1583, 1
  store i32 %1584, ptr @test_count, align 4, !tbaa !5
  %1585 = load i32, ptr %46, align 4, !tbaa !5
  %1586 = sext i32 %1585 to i64
  %1587 = getelementptr inbounds [65535 x i8], ptr %6, i64 0, i64 %1586
  %1588 = load i8, ptr %1587, align 1, !tbaa !53
  %1589 = sext i8 %1588 to i32
  %1590 = icmp eq i32 %1589, 33
  br i1 %1590, label %1644, label %1591

1591:                                             ; preds = %1582
  br label %1592

1592:                                             ; preds = %1591
  br label %1593

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

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

1605:                                             ; preds = %1600
  %1606 = load i32, ptr %47, align 4, !tbaa !5
  %1607 = call ptr @__errno_location() #10
  store i32 %1606, ptr %1607, align 4, !tbaa !5
  %1608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = call ptr @s2n_strerror(i32 noundef %1611, ptr noundef @.str.4)
  %1613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror_debug(i32 noundef %1614, ptr noundef @.str.4)
  %1616 = call ptr @__errno_location() #10
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @strerror(i32 noundef %1617) #9
  %1619 = call ptr @__errno_location() #10
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1608, ptr noundef @.str.1, i32 noundef %1609, ptr noundef @.str.32, ptr noundef @.str.3, i32 noundef 217, ptr noundef %1612, ptr noundef %1615, ptr noundef %1618, i32 noundef %1620) #9
  br label %1639

1622:                                             ; preds = %1600, %1593
  %1623 = load i32, ptr %47, align 4, !tbaa !5
  %1624 = call ptr @__errno_location() #10
  store i32 %1623, ptr %1624, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror(i32 noundef %1628, ptr noundef @.str.4)
  %1630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror_debug(i32 noundef %1631, ptr noundef @.str.4)
  %1633 = call ptr @__errno_location() #10
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @strerror(i32 noundef %1634) #9
  %1636 = call ptr @__errno_location() #10
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef @.str.5, i32 noundef %1626, ptr noundef @.str.32, ptr noundef @.str.3, i32 noundef 217, ptr noundef %1629, ptr noundef %1632, ptr noundef %1635, i32 noundef %1637) #9
  br label %1639

1639:                                             ; preds = %1622, %1605
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %1640

1640:                                             ; preds = %1639
  br label %1641

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

1642:                                             ; No predecessors!
  br label %1643

1643:                                             ; preds = %1642
  br label %1644

1644:                                             ; preds = %1643, %1582
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

1647:                                             ; preds = %1646
  %1648 = load i32, ptr %46, align 4, !tbaa !5
  %1649 = add nsw i32 %1648, 1
  store i32 %1649, ptr %46, align 4, !tbaa !5
  br label %1575, !llvm.loop !54

1650:                                             ; preds = %1580
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  br label %1651

1651:                                             ; preds = %1650
  %1652 = load i64, ptr %40, align 8, !tbaa !50
  %1653 = add i64 %1652, 100
  store i64 %1653, ptr %40, align 8, !tbaa !50
  br label %1489, !llvm.loop !55

1654:                                             ; preds = %1492
  br label %1655

1655:                                             ; preds = %1654
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = add nsw i32 %1656, 1
  store i32 %1657, ptr @test_count, align 4, !tbaa !5
  %1658 = load ptr, ptr %7, align 8, !tbaa !9
  %1659 = call i32 @s2n_shutdown(ptr noundef %1658, ptr noundef %8)
  %1660 = icmp eq i32 %1659, -1
  br i1 %1660, label %1661, label %1714

1661:                                             ; preds = %1655
  br label %1662

1662:                                             ; preds = %1661
  br label %1663

1663:                                             ; preds = %1662
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %1664 = call ptr @__errno_location() #10
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  store i32 %1665, ptr %48, align 4, !tbaa !5
  %1666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1667 = call i32 @s2n_print_stacktrace(ptr noundef %1666)
  %1668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1669 = trunc i8 %1668 to i1
  br i1 %1669, label %1670, label %1692

1670:                                             ; preds = %1663
  %1671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1672 = call i32 @fileno(ptr noundef %1671) #9
  %1673 = call i32 @isatty(i32 noundef %1672) #9
  %1674 = icmp ne i32 %1673, 0
  br i1 %1674, label %1675, label %1692

1675:                                             ; preds = %1670
  %1676 = load i32, ptr %48, align 4, !tbaa !5
  %1677 = call ptr @__errno_location() #10
  store i32 %1676, ptr %1677, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror(i32 noundef %1681, ptr noundef @.str.4)
  %1683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror_debug(i32 noundef %1684, ptr noundef @.str.4)
  %1686 = call ptr @__errno_location() #10
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @strerror(i32 noundef %1687) #9
  %1689 = call ptr @__errno_location() #10
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1678, ptr noundef @.str.1, i32 noundef %1679, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 221, ptr noundef %1682, ptr noundef %1685, ptr noundef %1688, i32 noundef %1690) #9
  br label %1709

1692:                                             ; preds = %1670, %1663
  %1693 = load i32, ptr %48, align 4, !tbaa !5
  %1694 = call ptr @__errno_location() #10
  store i32 %1693, ptr %1694, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call ptr @s2n_strerror(i32 noundef %1698, ptr noundef @.str.4)
  %1700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror_debug(i32 noundef %1701, ptr noundef @.str.4)
  %1703 = call ptr @__errno_location() #10
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call ptr @strerror(i32 noundef %1704) #9
  %1706 = call ptr @__errno_location() #10
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1695, ptr noundef @.str.5, i32 noundef %1696, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 221, ptr noundef %1699, ptr noundef %1702, ptr noundef %1705, i32 noundef %1707) #9
  br label %1709

1709:                                             ; preds = %1692, %1675
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %1710

1710:                                             ; preds = %1709
  br label %1711

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

1712:                                             ; No predecessors!
  br label %1713

1713:                                             ; preds = %1712
  br label %1714

1714:                                             ; preds = %1713, %1655
  br label %1715

1715:                                             ; preds = %1714
  br label %1716

1716:                                             ; preds = %1715
  br label %1717

1717:                                             ; preds = %1716
  %1718 = load i32, ptr @test_count, align 4, !tbaa !5
  %1719 = add nsw i32 %1718, 1
  store i32 %1719, ptr @test_count, align 4, !tbaa !5
  %1720 = load ptr, ptr %7, align 8, !tbaa !9
  %1721 = call i32 @s2n_connection_free(ptr noundef %1720)
  %1722 = icmp eq i32 %1721, -1
  br i1 %1722, label %1723, label %1776

1723:                                             ; preds = %1717
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %1726 = call ptr @__errno_location() #10
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  store i32 %1727, ptr %49, align 4, !tbaa !5
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = call i32 @s2n_print_stacktrace(ptr noundef %1728)
  %1730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1731 = trunc i8 %1730 to i1
  br i1 %1731, label %1732, label %1754

1732:                                             ; preds = %1725
  %1733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1734 = call i32 @fileno(ptr noundef %1733) #9
  %1735 = call i32 @isatty(i32 noundef %1734) #9
  %1736 = icmp ne i32 %1735, 0
  br i1 %1736, label %1737, label %1754

1737:                                             ; preds = %1732
  %1738 = load i32, ptr %49, align 4, !tbaa !5
  %1739 = call ptr @__errno_location() #10
  store i32 %1738, ptr %1739, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1743, ptr noundef @.str.4)
  %1745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror_debug(i32 noundef %1746, ptr noundef @.str.4)
  %1748 = call ptr @__errno_location() #10
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call ptr @strerror(i32 noundef %1749) #9
  %1751 = call ptr @__errno_location() #10
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef @.str.1, i32 noundef %1741, ptr noundef @.str.34, ptr noundef @.str.3, i32 noundef 222, ptr noundef %1744, ptr noundef %1747, ptr noundef %1750, i32 noundef %1752) #9
  br label %1771

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

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

1772:                                             ; preds = %1771
  br label %1773

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

1774:                                             ; No predecessors!
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

1776:                                             ; preds = %1775, %1717
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  br label %1779

1779:                                             ; preds = %1778
  %1780 = load i32, ptr @test_count, align 4, !tbaa !5
  %1781 = add nsw i32 %1780, 1
  store i32 %1781, ptr @test_count, align 4, !tbaa !5
  %1782 = call i32 @s2n_io_pair_close_one_end(ptr noundef %23, i32 noundef 0)
  %1783 = icmp eq i32 %1782, -1
  br i1 %1783, label %1784, label %1837

1784:                                             ; preds = %1779
  br label %1785

1785:                                             ; preds = %1784
  br label %1786

1786:                                             ; preds = %1785
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %1787 = call ptr @__errno_location() #10
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  store i32 %1788, ptr %50, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = call i32 @s2n_print_stacktrace(ptr noundef %1789)
  %1791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1792 = trunc i8 %1791 to i1
  br i1 %1792, label %1793, label %1815

1793:                                             ; preds = %1786
  %1794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1795 = call i32 @fileno(ptr noundef %1794) #9
  %1796 = call i32 @isatty(i32 noundef %1795) #9
  %1797 = icmp ne i32 %1796, 0
  br i1 %1797, label %1798, label %1815

1798:                                             ; preds = %1793
  %1799 = load i32, ptr %50, align 4, !tbaa !5
  %1800 = call ptr @__errno_location() #10
  store i32 %1799, ptr %1800, align 4, !tbaa !5
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror(i32 noundef %1804, ptr noundef @.str.4)
  %1806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @s2n_strerror_debug(i32 noundef %1807, ptr noundef @.str.4)
  %1809 = call ptr @__errno_location() #10
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @strerror(i32 noundef %1810) #9
  %1812 = call ptr @__errno_location() #10
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1801, ptr noundef @.str.1, i32 noundef %1802, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 223, ptr noundef %1805, ptr noundef %1808, ptr noundef %1811, i32 noundef %1813) #9
  br label %1832

1815:                                             ; preds = %1793, %1786
  %1816 = load i32, ptr %50, align 4, !tbaa !5
  %1817 = call ptr @__errno_location() #10
  store i32 %1816, ptr %1817, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = load i32, ptr @test_count, align 4, !tbaa !5
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror(i32 noundef %1821, ptr noundef @.str.4)
  %1823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror_debug(i32 noundef %1824, ptr noundef @.str.4)
  %1826 = call ptr @__errno_location() #10
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call ptr @strerror(i32 noundef %1827) #9
  %1829 = call ptr @__errno_location() #10
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1818, ptr noundef @.str.5, i32 noundef %1819, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 223, ptr noundef %1822, ptr noundef %1825, ptr noundef %1828, i32 noundef %1830) #9
  br label %1832

1832:                                             ; preds = %1815, %1798
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %1833

1833:                                             ; preds = %1832
  br label %1834

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

1835:                                             ; No predecessors!
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

1837:                                             ; preds = %1836, %1779
  br label %1838

1838:                                             ; preds = %1837
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

1840:                                             ; preds = %1839
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = add nsw i32 %1841, 1
  store i32 %1842, ptr @test_count, align 4, !tbaa !5
  %1843 = call i32 @waitpid(i32 noundef -1, ptr noundef %9, i32 noundef 0)
  %1844 = load i32, ptr %10, align 4, !tbaa !5
  %1845 = icmp eq i32 %1843, %1844
  br i1 %1845, label %1899, label %1846

1846:                                             ; preds = %1840
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

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

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

1860:                                             ; preds = %1855
  %1861 = load i32, ptr %51, align 4, !tbaa !5
  %1862 = call ptr @__errno_location() #10
  store i32 %1861, ptr %1862, align 4, !tbaa !5
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call ptr @s2n_strerror(i32 noundef %1866, ptr noundef @.str.4)
  %1868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror_debug(i32 noundef %1869, ptr noundef @.str.4)
  %1871 = call ptr @__errno_location() #10
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @strerror(i32 noundef %1872) #9
  %1874 = call ptr @__errno_location() #10
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1863, ptr noundef @.str.1, i32 noundef %1864, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 226, ptr noundef %1867, ptr noundef %1870, ptr noundef %1873, i32 noundef %1875) #9
  br label %1894

1877:                                             ; preds = %1855, %1848
  %1878 = load i32, ptr %51, align 4, !tbaa !5
  %1879 = call ptr @__errno_location() #10
  store i32 %1878, ptr %1879, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror(i32 noundef %1883, ptr noundef @.str.4)
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @s2n_strerror_debug(i32 noundef %1886, ptr noundef @.str.4)
  %1888 = call ptr @__errno_location() #10
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #9
  %1891 = call ptr @__errno_location() #10
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1880, ptr noundef @.str.5, i32 noundef %1881, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 226, ptr noundef %1884, ptr noundef %1887, ptr noundef %1890, i32 noundef %1892) #9
  br label %1894

1894:                                             ; preds = %1877, %1860
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %1895

1895:                                             ; preds = %1894
  br label %1896

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

1897:                                             ; No predecessors!
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

1899:                                             ; preds = %1898, %1840
  br label %1900

1900:                                             ; preds = %1899
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

1902:                                             ; preds = %1901
  %1903 = load i32, ptr @test_count, align 4, !tbaa !5
  %1904 = add nsw i32 %1903, 1
  store i32 %1904, ptr @test_count, align 4, !tbaa !5
  %1905 = load i32, ptr %9, align 4, !tbaa !5
  %1906 = icmp eq i32 %1905, 0
  br i1 %1906, label %1960, label %1907

1907:                                             ; preds = %1902
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

1909:                                             ; preds = %1908
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  %1910 = call ptr @__errno_location() #10
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  store i32 %1911, ptr %52, align 4, !tbaa !5
  %1912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1913 = call i32 @s2n_print_stacktrace(ptr noundef %1912)
  %1914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1915 = trunc i8 %1914 to i1
  br i1 %1915, label %1916, label %1938

1916:                                             ; preds = %1909
  %1917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1918 = call i32 @fileno(ptr noundef %1917) #9
  %1919 = call i32 @isatty(i32 noundef %1918) #9
  %1920 = icmp ne i32 %1919, 0
  br i1 %1920, label %1921, label %1938

1921:                                             ; preds = %1916
  %1922 = load i32, ptr %52, align 4, !tbaa !5
  %1923 = call ptr @__errno_location() #10
  store i32 %1922, ptr %1923, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = load i32, ptr @test_count, align 4, !tbaa !5
  %1926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror(i32 noundef %1927, ptr noundef @.str.4)
  %1929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror_debug(i32 noundef %1930, ptr noundef @.str.4)
  %1932 = call ptr @__errno_location() #10
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @strerror(i32 noundef %1933) #9
  %1935 = call ptr @__errno_location() #10
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1924, ptr noundef @.str.1, i32 noundef %1925, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 227, ptr noundef %1928, ptr noundef %1931, ptr noundef %1934, i32 noundef %1936) #9
  br label %1955

1938:                                             ; preds = %1916, %1909
  %1939 = load i32, ptr %52, align 4, !tbaa !5
  %1940 = call ptr @__errno_location() #10
  store i32 %1939, ptr %1940, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = load i32, ptr @test_count, align 4, !tbaa !5
  %1943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror(i32 noundef %1944, ptr noundef @.str.4)
  %1946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror_debug(i32 noundef %1947, ptr noundef @.str.4)
  %1949 = call ptr @__errno_location() #10
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call ptr @strerror(i32 noundef %1950) #9
  %1952 = call ptr @__errno_location() #10
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1941, ptr noundef @.str.5, i32 noundef %1942, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 227, ptr noundef %1945, ptr noundef %1948, ptr noundef %1951, i32 noundef %1953) #9
  br label %1955

1955:                                             ; preds = %1938, %1921
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

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

1958:                                             ; No predecessors!
  br label %1959

1959:                                             ; preds = %1958
  br label %1960

1960:                                             ; preds = %1959, %1902
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

1962:                                             ; preds = %1961
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #9
  %1963 = call i32 @s2n_config_ptr_free(ptr noundef %28)
  %1964 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  store i32 %1963, ptr %1964, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  br label %1965

1965:                                             ; preds = %1962
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = add nsw i32 %1966, 1
  store i32 %1967, ptr @test_count, align 4, !tbaa !5
  %1968 = call i32 @s2n_io_pair_init(ptr noundef %54)
  %1969 = icmp eq i32 %1968, -1
  br i1 %1969, label %1970, label %2023

1970:                                             ; preds = %1965
  br label %1971

1971:                                             ; preds = %1970
  br label %1972

1972:                                             ; preds = %1971
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %1973 = call ptr @__errno_location() #10
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  store i32 %1974, ptr %55, align 4, !tbaa !5
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = call i32 @s2n_print_stacktrace(ptr noundef %1975)
  %1977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1978 = trunc i8 %1977 to i1
  br i1 %1978, label %1979, label %2001

1979:                                             ; preds = %1972
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = call i32 @fileno(ptr noundef %1980) #9
  %1982 = call i32 @isatty(i32 noundef %1981) #9
  %1983 = icmp ne i32 %1982, 0
  br i1 %1983, label %1984, label %2001

1984:                                             ; preds = %1979
  %1985 = load i32, ptr %55, align 4, !tbaa !5
  %1986 = call ptr @__errno_location() #10
  store i32 %1985, ptr %1986, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  %1991 = call ptr @s2n_strerror(i32 noundef %1990, ptr noundef @.str.4)
  %1992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1993 = load i32, ptr %1992, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror_debug(i32 noundef %1993, ptr noundef @.str.4)
  %1995 = call ptr @__errno_location() #10
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = call ptr @strerror(i32 noundef %1996) #9
  %1998 = call ptr @__errno_location() #10
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1987, ptr noundef @.str.1, i32 noundef %1988, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 234, ptr noundef %1991, ptr noundef %1994, ptr noundef %1997, i32 noundef %1999) #9
  br label %2018

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

2018:                                             ; preds = %2001, %1984
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

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

2021:                                             ; No predecessors!
  br label %2022

2022:                                             ; preds = %2021
  br label %2023

2023:                                             ; preds = %2022, %1965
  br label %2024

2024:                                             ; preds = %2023
  br label %2025

2025:                                             ; preds = %2024
  %2026 = call i32 @fork() #9
  store i32 %2026, ptr %10, align 4, !tbaa !5
  %2027 = load i32, ptr %10, align 4, !tbaa !5
  %2028 = icmp eq i32 %2027, 0
  br i1 %2028, label %2029, label %2156

2029:                                             ; preds = %2025
  br label %2030

2030:                                             ; preds = %2029
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = add nsw i32 %2031, 1
  store i32 %2032, ptr @test_count, align 4, !tbaa !5
  %2033 = call i32 @s2n_io_pair_close_one_end(ptr noundef %54, i32 noundef 0)
  %2034 = icmp eq i32 %2033, -1
  br i1 %2034, label %2035, label %2088

2035:                                             ; preds = %2030
  br label %2036

2036:                                             ; preds = %2035
  br label %2037

2037:                                             ; preds = %2036
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2038 = call ptr @__errno_location() #10
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  store i32 %2039, ptr %56, align 4, !tbaa !5
  %2040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2041 = call i32 @s2n_print_stacktrace(ptr noundef %2040)
  %2042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2043 = trunc i8 %2042 to i1
  br i1 %2043, label %2044, label %2066

2044:                                             ; preds = %2037
  %2045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2046 = call i32 @fileno(ptr noundef %2045) #9
  %2047 = call i32 @isatty(i32 noundef %2046) #9
  %2048 = icmp ne i32 %2047, 0
  br i1 %2048, label %2049, label %2066

2049:                                             ; preds = %2044
  %2050 = load i32, ptr %56, align 4, !tbaa !5
  %2051 = call ptr @__errno_location() #10
  store i32 %2050, ptr %2051, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror(i32 noundef %2055, ptr noundef @.str.4)
  %2057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef @.str.4)
  %2060 = call ptr @__errno_location() #10
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @strerror(i32 noundef %2061) #9
  %2063 = call ptr @__errno_location() #10
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2052, ptr noundef @.str.1, i32 noundef %2053, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 240, ptr noundef %2056, ptr noundef %2059, ptr noundef %2062, i32 noundef %2064) #9
  br label %2083

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

2083:                                             ; preds = %2066, %2049
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2084

2084:                                             ; preds = %2083
  br label %2085

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

2086:                                             ; No predecessors!
  br label %2087

2087:                                             ; preds = %2086
  br label %2088

2088:                                             ; preds = %2087, %2030
  br label %2089

2089:                                             ; preds = %2088
  br label %2090

2090:                                             ; preds = %2089
  br label %2091

2091:                                             ; preds = %2090
  %2092 = load i32, ptr @test_count, align 4, !tbaa !5
  %2093 = add nsw i32 %2092, 1
  store i32 %2093, ptr @test_count, align 4, !tbaa !5
  %2094 = call i32 @cleanup(ptr noundef %11, ptr noundef %12, ptr noundef %13)
  %2095 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  store i32 %2094, ptr %2095, align 4
  %2096 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  %2097 = load i32, ptr %2096, align 4
  %2098 = call zeroext i1 @s2n_result_is_ok(i32 %2097)
  br i1 %2098, label %2152, label %2099

2099:                                             ; preds = %2091
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

2101:                                             ; preds = %2100
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %2102 = call ptr @__errno_location() #10
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  store i32 %2103, ptr %58, align 4, !tbaa !5
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = call i32 @s2n_print_stacktrace(ptr noundef %2104)
  %2106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2107 = trunc i8 %2106 to i1
  br i1 %2107, label %2108, label %2130

2108:                                             ; preds = %2101
  %2109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2110 = call i32 @fileno(ptr noundef %2109) #9
  %2111 = call i32 @isatty(i32 noundef %2110) #9
  %2112 = icmp ne i32 %2111, 0
  br i1 %2112, label %2113, label %2130

2113:                                             ; preds = %2108
  %2114 = load i32, ptr %58, align 4, !tbaa !5
  %2115 = call ptr @__errno_location() #10
  store i32 %2114, ptr %2115, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror(i32 noundef %2119, ptr noundef @.str.4)
  %2121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror_debug(i32 noundef %2122, ptr noundef @.str.4)
  %2124 = call ptr @__errno_location() #10
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @strerror(i32 noundef %2125) #9
  %2127 = call ptr @__errno_location() #10
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2116, ptr noundef @.str.1, i32 noundef %2117, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 242, ptr noundef %2120, ptr noundef %2123, ptr noundef %2126, i32 noundef %2128) #9
  br label %2147

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

2147:                                             ; preds = %2130, %2113
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2148

2148:                                             ; preds = %2147
  br label %2149

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

2150:                                             ; No predecessors!
  br label %2151

2151:                                             ; preds = %2150
  br label %2152

2152:                                             ; preds = %2151, %2091
  br label %2153

2153:                                             ; preds = %2152
  br label %2154

2154:                                             ; preds = %2153
  %2155 = call i32 @mock_client(ptr noundef %54, i32 noundef 1, i32 noundef 1)
  br label %2156

2156:                                             ; preds = %2154, %2025
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  %2157 = call ptr @s2n_config_new()
  store ptr %2157, ptr %59, align 8, !tbaa !9
  br label %2158

2158:                                             ; preds = %2156
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = add nsw i32 %2159, 1
  store i32 %2160, ptr @test_count, align 4, !tbaa !5
  %2161 = load ptr, ptr %59, align 8, !tbaa !9
  %2162 = load ptr, ptr %13, align 8, !tbaa !9
  %2163 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2161, ptr noundef %2162)
  %2164 = icmp eq i32 %2163, -1
  br i1 %2164, label %2165, label %2218

2165:                                             ; preds = %2158
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %2168 = call ptr @__errno_location() #10
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  store i32 %2169, ptr %60, align 4, !tbaa !5
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = call i32 @s2n_print_stacktrace(ptr noundef %2170)
  %2172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2173 = trunc i8 %2172 to i1
  br i1 %2173, label %2174, label %2196

2174:                                             ; preds = %2167
  %2175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2176 = call i32 @fileno(ptr noundef %2175) #9
  %2177 = call i32 @isatty(i32 noundef %2176) #9
  %2178 = icmp ne i32 %2177, 0
  br i1 %2178, label %2179, label %2196

2179:                                             ; preds = %2174
  %2180 = load i32, ptr %60, align 4, !tbaa !5
  %2181 = call ptr @__errno_location() #10
  store i32 %2180, ptr %2181, align 4, !tbaa !5
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = load i32, ptr @test_count, align 4, !tbaa !5
  %2184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror(i32 noundef %2185, ptr noundef @.str.4)
  %2187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call ptr @s2n_strerror_debug(i32 noundef %2188, ptr noundef @.str.4)
  %2190 = call ptr @__errno_location() #10
  %2191 = load i32, ptr %2190, align 4, !tbaa !5
  %2192 = call ptr @strerror(i32 noundef %2191) #9
  %2193 = call ptr @__errno_location() #10
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2182, ptr noundef @.str.1, i32 noundef %2183, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 248, ptr noundef %2186, ptr noundef %2189, ptr noundef %2192, i32 noundef %2194) #9
  br label %2213

2196:                                             ; preds = %2174, %2167
  %2197 = load i32, ptr %60, align 4, !tbaa !5
  %2198 = call ptr @__errno_location() #10
  store i32 %2197, ptr %2198, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = load i32, ptr @test_count, align 4, !tbaa !5
  %2201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror(i32 noundef %2202, ptr noundef @.str.4)
  %2204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror_debug(i32 noundef %2205, ptr noundef @.str.4)
  %2207 = call ptr @__errno_location() #10
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call ptr @strerror(i32 noundef %2208) #9
  %2210 = call ptr @__errno_location() #10
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  %2212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2199, ptr noundef @.str.5, i32 noundef %2200, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 248, ptr noundef %2203, ptr noundef %2206, ptr noundef %2209, i32 noundef %2211) #9
  br label %2213

2213:                                             ; preds = %2196, %2179
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2214

2214:                                             ; preds = %2213
  br label %2215

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

2216:                                             ; No predecessors!
  br label %2217

2217:                                             ; preds = %2216
  br label %2218

2218:                                             ; preds = %2217, %2158
  br label %2219

2219:                                             ; preds = %2218
  br label %2220

2220:                                             ; preds = %2219
  br label %2221

2221:                                             ; preds = %2220
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = add nsw i32 %2222, 1
  store i32 %2223, ptr @test_count, align 4, !tbaa !5
  %2224 = load ptr, ptr %59, align 8, !tbaa !9
  %2225 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2224, ptr noundef @.str.37)
  %2226 = icmp eq i32 %2225, -1
  br i1 %2226, label %2227, label %2280

2227:                                             ; preds = %2221
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %2230 = call ptr @__errno_location() #10
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  store i32 %2231, ptr %61, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @s2n_print_stacktrace(ptr noundef %2232)
  %2234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2235 = trunc i8 %2234 to i1
  br i1 %2235, label %2236, label %2258

2236:                                             ; preds = %2229
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = call i32 @fileno(ptr noundef %2237) #9
  %2239 = call i32 @isatty(i32 noundef %2238) #9
  %2240 = icmp ne i32 %2239, 0
  br i1 %2240, label %2241, label %2258

2241:                                             ; preds = %2236
  %2242 = load i32, ptr %61, align 4, !tbaa !5
  %2243 = call ptr @__errno_location() #10
  store i32 %2242, ptr %2243, align 4, !tbaa !5
  %2244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2245 = load i32, ptr @test_count, align 4, !tbaa !5
  %2246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror(i32 noundef %2247, ptr noundef @.str.4)
  %2249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call ptr @s2n_strerror_debug(i32 noundef %2250, ptr noundef @.str.4)
  %2252 = call ptr @__errno_location() #10
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call ptr @strerror(i32 noundef %2253) #9
  %2255 = call ptr @__errno_location() #10
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2244, ptr noundef @.str.1, i32 noundef %2245, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 249, ptr noundef %2248, ptr noundef %2251, ptr noundef %2254, i32 noundef %2256) #9
  br label %2275

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

2275:                                             ; preds = %2258, %2241
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

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

2278:                                             ; No predecessors!
  br label %2279

2279:                                             ; preds = %2278
  br label %2280

2280:                                             ; preds = %2279, %2221
  br label %2281

2281:                                             ; preds = %2280
  br label %2282

2282:                                             ; preds = %2281
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #9
  %2283 = getelementptr inbounds %struct.alert_ctx, ptr %62, i32 0, i32 0
  %2284 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %54, i32 0, i32 1
  %2285 = load i32, ptr %2284, align 4, !tbaa !15
  store i32 %2285, ptr %2283, align 4, !tbaa !17
  %2286 = getelementptr inbounds %struct.alert_ctx, ptr %62, i32 0, i32 1
  store i32 0, ptr %2286, align 4, !tbaa !19
  %2287 = getelementptr inbounds %struct.alert_ctx, ptr %62, i32 0, i32 2
  store i32 1, ptr %2287, align 4, !tbaa !20
  %2288 = getelementptr inbounds %struct.alert_ctx, ptr %62, i32 0, i32 3
  store i8 2, ptr %2288, align 4, !tbaa !21
  %2289 = getelementptr inbounds %struct.alert_ctx, ptr %62, i32 0, i32 4
  store i8 122, ptr %2289, align 1, !tbaa !22
  br label %2290

2290:                                             ; preds = %2282
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = add nsw i32 %2291, 1
  store i32 %2292, ptr @test_count, align 4, !tbaa !5
  %2293 = load ptr, ptr %59, align 8, !tbaa !9
  %2294 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %2293, ptr noundef @client_hello_send_alerts, ptr noundef %62)
  %2295 = icmp eq i32 %2294, -1
  br i1 %2295, label %2296, label %2349

2296:                                             ; preds = %2290
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

2298:                                             ; preds = %2297
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %2299 = call ptr @__errno_location() #10
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  store i32 %2300, ptr %63, align 4, !tbaa !5
  %2301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2302 = call i32 @s2n_print_stacktrace(ptr noundef %2301)
  %2303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2304 = trunc i8 %2303 to i1
  br i1 %2304, label %2305, label %2327

2305:                                             ; preds = %2298
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = call i32 @fileno(ptr noundef %2306) #9
  %2308 = call i32 @isatty(i32 noundef %2307) #9
  %2309 = icmp ne i32 %2308, 0
  br i1 %2309, label %2310, label %2327

2310:                                             ; preds = %2305
  %2311 = load i32, ptr %63, align 4, !tbaa !5
  %2312 = call ptr @__errno_location() #10
  store i32 %2311, ptr %2312, align 4, !tbaa !5
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = load i32, ptr @test_count, align 4, !tbaa !5
  %2315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = call ptr @s2n_strerror(i32 noundef %2316, ptr noundef @.str.4)
  %2318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror_debug(i32 noundef %2319, ptr noundef @.str.4)
  %2321 = call ptr @__errno_location() #10
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call ptr @strerror(i32 noundef %2322) #9
  %2324 = call ptr @__errno_location() #10
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2313, ptr noundef @.str.1, i32 noundef %2314, ptr noundef @.str.39, ptr noundef @.str.3, i32 noundef 253, ptr noundef %2317, ptr noundef %2320, ptr noundef %2323, i32 noundef %2325) #9
  br label %2344

2327:                                             ; preds = %2305, %2298
  %2328 = load i32, ptr %63, align 4, !tbaa !5
  %2329 = call ptr @__errno_location() #10
  store i32 %2328, ptr %2329, align 4, !tbaa !5
  %2330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2331 = load i32, ptr @test_count, align 4, !tbaa !5
  %2332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = call ptr @s2n_strerror(i32 noundef %2333, ptr noundef @.str.4)
  %2335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2336 = load i32, ptr %2335, align 4, !tbaa !5
  %2337 = call ptr @s2n_strerror_debug(i32 noundef %2336, ptr noundef @.str.4)
  %2338 = call ptr @__errno_location() #10
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call ptr @strerror(i32 noundef %2339) #9
  %2341 = call ptr @__errno_location() #10
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2330, ptr noundef @.str.5, i32 noundef %2331, ptr noundef @.str.39, ptr noundef @.str.3, i32 noundef 253, ptr noundef %2334, ptr noundef %2337, ptr noundef %2340, i32 noundef %2342) #9
  br label %2344

2344:                                             ; preds = %2327, %2310
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2345

2345:                                             ; preds = %2344
  br label %2346

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

2347:                                             ; No predecessors!
  br label %2348

2348:                                             ; preds = %2347
  br label %2349

2349:                                             ; preds = %2348, %2290
  br label %2350

2350:                                             ; preds = %2349
  br label %2351

2351:                                             ; preds = %2350
  br label %2352

2352:                                             ; preds = %2351
  %2353 = load i32, ptr @test_count, align 4, !tbaa !5
  %2354 = add nsw i32 %2353, 1
  store i32 %2354, ptr @test_count, align 4, !tbaa !5
  %2355 = call i32 @s2n_io_pair_close_one_end(ptr noundef %54, i32 noundef 1)
  %2356 = icmp eq i32 %2355, -1
  br i1 %2356, label %2357, label %2410

2357:                                             ; preds = %2352
  br label %2358

2358:                                             ; preds = %2357
  br label %2359

2359:                                             ; preds = %2358
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %2360 = call ptr @__errno_location() #10
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  store i32 %2361, ptr %64, align 4, !tbaa !5
  %2362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2363 = call i32 @s2n_print_stacktrace(ptr noundef %2362)
  %2364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2365 = trunc i8 %2364 to i1
  br i1 %2365, label %2366, label %2388

2366:                                             ; preds = %2359
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = call i32 @fileno(ptr noundef %2367) #9
  %2369 = call i32 @isatty(i32 noundef %2368) #9
  %2370 = icmp ne i32 %2369, 0
  br i1 %2370, label %2371, label %2388

2371:                                             ; preds = %2366
  %2372 = load i32, ptr %64, align 4, !tbaa !5
  %2373 = call ptr @__errno_location() #10
  store i32 %2372, ptr %2373, align 4, !tbaa !5
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @s2n_strerror(i32 noundef %2377, ptr noundef @.str.4)
  %2379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef @.str.4)
  %2382 = call ptr @__errno_location() #10
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call ptr @strerror(i32 noundef %2383) #9
  %2385 = call ptr @__errno_location() #10
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2374, ptr noundef @.str.1, i32 noundef %2375, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 256, ptr noundef %2378, ptr noundef %2381, ptr noundef %2384, i32 noundef %2386) #9
  br label %2405

2388:                                             ; preds = %2366, %2359
  %2389 = load i32, ptr %64, align 4, !tbaa !5
  %2390 = call ptr @__errno_location() #10
  store i32 %2389, ptr %2390, align 4, !tbaa !5
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = load i32, ptr @test_count, align 4, !tbaa !5
  %2393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = call ptr @s2n_strerror(i32 noundef %2394, ptr noundef @.str.4)
  %2396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call ptr @s2n_strerror_debug(i32 noundef %2397, ptr noundef @.str.4)
  %2399 = call ptr @__errno_location() #10
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @strerror(i32 noundef %2400) #9
  %2402 = call ptr @__errno_location() #10
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2391, ptr noundef @.str.5, i32 noundef %2392, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 256, ptr noundef %2395, ptr noundef %2398, ptr noundef %2401, i32 noundef %2403) #9
  br label %2405

2405:                                             ; preds = %2388, %2371
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2406

2406:                                             ; preds = %2405
  br label %2407

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

2408:                                             ; No predecessors!
  br label %2409

2409:                                             ; preds = %2408
  br label %2410

2410:                                             ; preds = %2409, %2352
  br label %2411

2411:                                             ; preds = %2410
  br label %2412

2412:                                             ; preds = %2411
  br label %2413

2413:                                             ; preds = %2412
  %2414 = load i32, ptr @test_count, align 4, !tbaa !5
  %2415 = add nsw i32 %2414, 1
  store i32 %2415, ptr @test_count, align 4, !tbaa !5
  %2416 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2416, ptr %7, align 8, !tbaa !9
  %2417 = icmp eq ptr %2416, null
  br i1 %2417, label %2418, label %2471

2418:                                             ; preds = %2413
  br label %2419

2419:                                             ; preds = %2418
  br label %2420

2420:                                             ; preds = %2419
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %2421 = call ptr @__errno_location() #10
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  store i32 %2422, ptr %65, align 4, !tbaa !5
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = call i32 @s2n_print_stacktrace(ptr noundef %2423)
  %2425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2426 = trunc i8 %2425 to i1
  br i1 %2426, label %2427, label %2449

2427:                                             ; preds = %2420
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = call i32 @fileno(ptr noundef %2428) #9
  %2430 = call i32 @isatty(i32 noundef %2429) #9
  %2431 = icmp ne i32 %2430, 0
  br i1 %2431, label %2432, label %2449

2432:                                             ; preds = %2427
  %2433 = load i32, ptr %65, align 4, !tbaa !5
  %2434 = call ptr @__errno_location() #10
  store i32 %2433, ptr %2434, align 4, !tbaa !5
  %2435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2436 = load i32, ptr @test_count, align 4, !tbaa !5
  %2437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  %2439 = call ptr @s2n_strerror(i32 noundef %2438, ptr noundef @.str.4)
  %2440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  %2442 = call ptr @s2n_strerror_debug(i32 noundef %2441, ptr noundef @.str.4)
  %2443 = call ptr @__errno_location() #10
  %2444 = load i32, ptr %2443, align 4, !tbaa !5
  %2445 = call ptr @strerror(i32 noundef %2444) #9
  %2446 = call ptr @__errno_location() #10
  %2447 = load i32, ptr %2446, align 4, !tbaa !5
  %2448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2435, ptr noundef @.str.1, i32 noundef %2436, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 258, ptr noundef %2439, ptr noundef %2442, ptr noundef %2445, i32 noundef %2447) #9
  br label %2466

2449:                                             ; preds = %2427, %2420
  %2450 = load i32, ptr %65, align 4, !tbaa !5
  %2451 = call ptr @__errno_location() #10
  store i32 %2450, ptr %2451, align 4, !tbaa !5
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call ptr @s2n_strerror(i32 noundef %2455, ptr noundef @.str.4)
  %2457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2458 = load i32, ptr %2457, align 4, !tbaa !5
  %2459 = call ptr @s2n_strerror_debug(i32 noundef %2458, ptr noundef @.str.4)
  %2460 = call ptr @__errno_location() #10
  %2461 = load i32, ptr %2460, align 4, !tbaa !5
  %2462 = call ptr @strerror(i32 noundef %2461) #9
  %2463 = call ptr @__errno_location() #10
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2452, ptr noundef @.str.5, i32 noundef %2453, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 258, ptr noundef %2456, ptr noundef %2459, ptr noundef %2462, i32 noundef %2464) #9
  br label %2466

2466:                                             ; preds = %2449, %2432
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %2467

2467:                                             ; preds = %2466
  br label %2468

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

2469:                                             ; No predecessors!
  br label %2470

2470:                                             ; preds = %2469
  br label %2471

2471:                                             ; preds = %2470, %2413
  br label %2472

2472:                                             ; preds = %2471
  br label %2473

2473:                                             ; preds = %2472
  br label %2474

2474:                                             ; preds = %2473
  %2475 = load i32, ptr @test_count, align 4, !tbaa !5
  %2476 = add nsw i32 %2475, 1
  store i32 %2476, ptr @test_count, align 4, !tbaa !5
  %2477 = load ptr, ptr %7, align 8, !tbaa !9
  %2478 = load ptr, ptr %59, align 8, !tbaa !9
  %2479 = call i32 @s2n_connection_set_config(ptr noundef %2477, ptr noundef %2478)
  %2480 = icmp eq i32 %2479, -1
  br i1 %2480, label %2481, label %2534

2481:                                             ; preds = %2474
  br label %2482

2482:                                             ; preds = %2481
  br label %2483

2483:                                             ; preds = %2482
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %2484 = call ptr @__errno_location() #10
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  store i32 %2485, ptr %66, align 4, !tbaa !5
  %2486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2487 = call i32 @s2n_print_stacktrace(ptr noundef %2486)
  %2488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2489 = trunc i8 %2488 to i1
  br i1 %2489, label %2490, label %2512

2490:                                             ; preds = %2483
  %2491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2492 = call i32 @fileno(ptr noundef %2491) #9
  %2493 = call i32 @isatty(i32 noundef %2492) #9
  %2494 = icmp ne i32 %2493, 0
  br i1 %2494, label %2495, label %2512

2495:                                             ; preds = %2490
  %2496 = load i32, ptr %66, align 4, !tbaa !5
  %2497 = call ptr @__errno_location() #10
  store i32 %2496, ptr %2497, align 4, !tbaa !5
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = load i32, ptr @test_count, align 4, !tbaa !5
  %2500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2501 = load i32, ptr %2500, align 4, !tbaa !5
  %2502 = call ptr @s2n_strerror(i32 noundef %2501, ptr noundef @.str.4)
  %2503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2504 = load i32, ptr %2503, align 4, !tbaa !5
  %2505 = call ptr @s2n_strerror_debug(i32 noundef %2504, ptr noundef @.str.4)
  %2506 = call ptr @__errno_location() #10
  %2507 = load i32, ptr %2506, align 4, !tbaa !5
  %2508 = call ptr @strerror(i32 noundef %2507) #9
  %2509 = call ptr @__errno_location() #10
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  %2511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2498, ptr noundef @.str.1, i32 noundef %2499, ptr noundef @.str.26, ptr noundef @.str.3, i32 noundef 259, ptr noundef %2502, ptr noundef %2505, ptr noundef %2508, i32 noundef %2510) #9
  br label %2529

2512:                                             ; preds = %2490, %2483
  %2513 = load i32, ptr %66, align 4, !tbaa !5
  %2514 = call ptr @__errno_location() #10
  store i32 %2513, ptr %2514, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2518 = load i32, ptr %2517, align 4, !tbaa !5
  %2519 = call ptr @s2n_strerror(i32 noundef %2518, ptr noundef @.str.4)
  %2520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2521 = load i32, ptr %2520, align 4, !tbaa !5
  %2522 = call ptr @s2n_strerror_debug(i32 noundef %2521, ptr noundef @.str.4)
  %2523 = call ptr @__errno_location() #10
  %2524 = load i32, ptr %2523, align 4, !tbaa !5
  %2525 = call ptr @strerror(i32 noundef %2524) #9
  %2526 = call ptr @__errno_location() #10
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2515, ptr noundef @.str.5, i32 noundef %2516, ptr noundef @.str.26, ptr noundef @.str.3, i32 noundef 259, ptr noundef %2519, ptr noundef %2522, ptr noundef %2525, i32 noundef %2527) #9
  br label %2529

2529:                                             ; preds = %2512, %2495
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %2530

2530:                                             ; preds = %2529
  br label %2531

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

2532:                                             ; No predecessors!
  br label %2533

2533:                                             ; preds = %2532
  br label %2534

2534:                                             ; preds = %2533, %2474
  br label %2535

2535:                                             ; preds = %2534
  br label %2536

2536:                                             ; preds = %2535
  br label %2537

2537:                                             ; preds = %2536
  %2538 = load i32, ptr @test_count, align 4, !tbaa !5
  %2539 = add nsw i32 %2538, 1
  store i32 %2539, ptr @test_count, align 4, !tbaa !5
  %2540 = load ptr, ptr %7, align 8, !tbaa !9
  %2541 = call i32 @s2n_connection_set_io_pair(ptr noundef %2540, ptr noundef %54)
  %2542 = icmp eq i32 %2541, -1
  br i1 %2542, label %2543, label %2596

2543:                                             ; preds = %2537
  br label %2544

2544:                                             ; preds = %2543
  br label %2545

2545:                                             ; preds = %2544
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %2546 = call ptr @__errno_location() #10
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  store i32 %2547, ptr %67, align 4, !tbaa !5
  %2548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2549 = call i32 @s2n_print_stacktrace(ptr noundef %2548)
  %2550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2551 = trunc i8 %2550 to i1
  br i1 %2551, label %2552, label %2574

2552:                                             ; preds = %2545
  %2553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2554 = call i32 @fileno(ptr noundef %2553) #9
  %2555 = call i32 @isatty(i32 noundef %2554) #9
  %2556 = icmp ne i32 %2555, 0
  br i1 %2556, label %2557, label %2574

2557:                                             ; preds = %2552
  %2558 = load i32, ptr %67, align 4, !tbaa !5
  %2559 = call ptr @__errno_location() #10
  store i32 %2558, ptr %2559, align 4, !tbaa !5
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  %2564 = call ptr @s2n_strerror(i32 noundef %2563, ptr noundef @.str.4)
  %2565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  %2567 = call ptr @s2n_strerror_debug(i32 noundef %2566, ptr noundef @.str.4)
  %2568 = call ptr @__errno_location() #10
  %2569 = load i32, ptr %2568, align 4, !tbaa !5
  %2570 = call ptr @strerror(i32 noundef %2569) #9
  %2571 = call ptr @__errno_location() #10
  %2572 = load i32, ptr %2571, align 4, !tbaa !5
  %2573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2560, ptr noundef @.str.1, i32 noundef %2561, ptr noundef @.str.27, ptr noundef @.str.3, i32 noundef 262, ptr noundef %2564, ptr noundef %2567, ptr noundef %2570, i32 noundef %2572) #9
  br label %2591

2574:                                             ; preds = %2552, %2545
  %2575 = load i32, ptr %67, align 4, !tbaa !5
  %2576 = call ptr @__errno_location() #10
  store i32 %2575, ptr %2576, align 4, !tbaa !5
  %2577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2578 = load i32, ptr @test_count, align 4, !tbaa !5
  %2579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2580 = load i32, ptr %2579, align 4, !tbaa !5
  %2581 = call ptr @s2n_strerror(i32 noundef %2580, ptr noundef @.str.4)
  %2582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2583 = load i32, ptr %2582, align 4, !tbaa !5
  %2584 = call ptr @s2n_strerror_debug(i32 noundef %2583, ptr noundef @.str.4)
  %2585 = call ptr @__errno_location() #10
  %2586 = load i32, ptr %2585, align 4, !tbaa !5
  %2587 = call ptr @strerror(i32 noundef %2586) #9
  %2588 = call ptr @__errno_location() #10
  %2589 = load i32, ptr %2588, align 4, !tbaa !5
  %2590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2577, ptr noundef @.str.5, i32 noundef %2578, ptr noundef @.str.27, ptr noundef @.str.3, i32 noundef 262, ptr noundef %2581, ptr noundef %2584, ptr noundef %2587, i32 noundef %2589) #9
  br label %2591

2591:                                             ; preds = %2574, %2557
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %2592

2592:                                             ; preds = %2591
  br label %2593

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

2594:                                             ; No predecessors!
  br label %2595

2595:                                             ; preds = %2594
  br label %2596

2596:                                             ; preds = %2595, %2537
  br label %2597

2597:                                             ; preds = %2596
  br label %2598

2598:                                             ; preds = %2597
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599
  %2601 = load i32, ptr @test_count, align 4, !tbaa !5
  %2602 = add nsw i32 %2601, 1
  store i32 %2602, ptr @test_count, align 4, !tbaa !5
  %2603 = load ptr, ptr %7, align 8, !tbaa !9
  %2604 = call i32 @s2n_negotiate(ptr noundef %2603, ptr noundef %8)
  %2605 = icmp eq i32 %2604, -1
  br i1 %2605, label %2659, label %2606

2606:                                             ; preds = %2600
  br label %2607

2607:                                             ; preds = %2606
  br label %2608

2608:                                             ; preds = %2607
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %2609 = call ptr @__errno_location() #10
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  store i32 %2610, ptr %68, align 4, !tbaa !5
  %2611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2612 = call i32 @s2n_print_stacktrace(ptr noundef %2611)
  %2613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2614 = trunc i8 %2613 to i1
  br i1 %2614, label %2615, label %2637

2615:                                             ; preds = %2608
  %2616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2617 = call i32 @fileno(ptr noundef %2616) #9
  %2618 = call i32 @isatty(i32 noundef %2617) #9
  %2619 = icmp ne i32 %2618, 0
  br i1 %2619, label %2620, label %2637

2620:                                             ; preds = %2615
  %2621 = load i32, ptr %68, align 4, !tbaa !5
  %2622 = call ptr @__errno_location() #10
  store i32 %2621, ptr %2622, align 4, !tbaa !5
  %2623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror(i32 noundef %2626, ptr noundef @.str.4)
  %2628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror_debug(i32 noundef %2629, ptr noundef @.str.4)
  %2631 = call ptr @__errno_location() #10
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call ptr @strerror(i32 noundef %2632) #9
  %2634 = call ptr @__errno_location() #10
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2623, ptr noundef @.str.1, i32 noundef %2624, ptr noundef @.str.40, ptr noundef @.str.3, i32 noundef 265, ptr noundef %2627, ptr noundef %2630, ptr noundef %2633, i32 noundef %2635) #9
  br label %2654

2637:                                             ; preds = %2615, %2608
  %2638 = load i32, ptr %68, align 4, !tbaa !5
  %2639 = call ptr @__errno_location() #10
  store i32 %2638, ptr %2639, align 4, !tbaa !5
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror(i32 noundef %2643, ptr noundef @.str.4)
  %2645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call ptr @s2n_strerror_debug(i32 noundef %2646, ptr noundef @.str.4)
  %2648 = call ptr @__errno_location() #10
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call ptr @strerror(i32 noundef %2649) #9
  %2651 = call ptr @__errno_location() #10
  %2652 = load i32, ptr %2651, align 4, !tbaa !5
  %2653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2640, ptr noundef @.str.5, i32 noundef %2641, ptr noundef @.str.40, ptr noundef @.str.3, i32 noundef 265, ptr noundef %2644, ptr noundef %2647, ptr noundef %2650, i32 noundef %2652) #9
  br label %2654

2654:                                             ; preds = %2637, %2620
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

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

2657:                                             ; No predecessors!
  br label %2658

2658:                                             ; preds = %2657
  br label %2659

2659:                                             ; preds = %2658, %2600
  br label %2660

2660:                                             ; preds = %2659
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661
  %2663 = load i32, ptr @test_count, align 4, !tbaa !5
  %2664 = add nsw i32 %2663, 1
  store i32 %2664, ptr @test_count, align 4, !tbaa !5
  %2665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = icmp eq i32 %2666, 0
  br i1 %2667, label %2668, label %2721

2668:                                             ; preds = %2662
  br label %2669

2669:                                             ; preds = %2668
  br label %2670

2670:                                             ; preds = %2669
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %2671 = call ptr @__errno_location() #10
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  store i32 %2672, ptr %69, align 4, !tbaa !5
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = call i32 @s2n_print_stacktrace(ptr noundef %2673)
  %2675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2676 = trunc i8 %2675 to i1
  br i1 %2676, label %2677, label %2699

2677:                                             ; preds = %2670
  %2678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2679 = call i32 @fileno(ptr noundef %2678) #9
  %2680 = call i32 @isatty(i32 noundef %2679) #9
  %2681 = icmp ne i32 %2680, 0
  br i1 %2681, label %2682, label %2699

2682:                                             ; preds = %2677
  %2683 = load i32, ptr %69, align 4, !tbaa !5
  %2684 = call ptr @__errno_location() #10
  store i32 %2683, ptr %2684, align 4, !tbaa !5
  %2685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2686 = load i32, ptr @test_count, align 4, !tbaa !5
  %2687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2688 = load i32, ptr %2687, align 4, !tbaa !5
  %2689 = call ptr @s2n_strerror(i32 noundef %2688, ptr noundef @.str.4)
  %2690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2691 = load i32, ptr %2690, align 4, !tbaa !5
  %2692 = call ptr @s2n_strerror_debug(i32 noundef %2691, ptr noundef @.str.4)
  %2693 = call ptr @__errno_location() #10
  %2694 = load i32, ptr %2693, align 4, !tbaa !5
  %2695 = call ptr @strerror(i32 noundef %2694) #9
  %2696 = call ptr @__errno_location() #10
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2685, ptr noundef @.str.1, i32 noundef %2686, ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 265, ptr noundef %2689, ptr noundef %2692, ptr noundef %2695, i32 noundef %2697) #9
  br label %2716

2699:                                             ; preds = %2677, %2670
  %2700 = load i32, ptr %69, align 4, !tbaa !5
  %2701 = call ptr @__errno_location() #10
  store i32 %2700, ptr %2701, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror(i32 noundef %2705, ptr noundef @.str.4)
  %2707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  %2709 = call ptr @s2n_strerror_debug(i32 noundef %2708, ptr noundef @.str.4)
  %2710 = call ptr @__errno_location() #10
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  %2712 = call ptr @strerror(i32 noundef %2711) #9
  %2713 = call ptr @__errno_location() #10
  %2714 = load i32, ptr %2713, align 4, !tbaa !5
  %2715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2702, ptr noundef @.str.5, i32 noundef %2703, ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 265, ptr noundef %2706, ptr noundef %2709, ptr noundef %2712, i32 noundef %2714) #9
  br label %2716

2716:                                             ; preds = %2699, %2682
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %2717

2717:                                             ; preds = %2716
  br label %2718

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

2719:                                             ; No predecessors!
  br label %2720

2720:                                             ; preds = %2719
  br label %2721

2721:                                             ; preds = %2720, %2662
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

2723:                                             ; preds = %2722
  br label %2724

2724:                                             ; preds = %2723
  %2725 = load i32, ptr @test_count, align 4, !tbaa !5
  %2726 = add nsw i32 %2725, 1
  store i32 %2726, ptr @test_count, align 4, !tbaa !5
  %2727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call ptr @s2n_strerror_debug(i32 noundef %2728, ptr noundef @.str.4)
  %2730 = icmp eq ptr %2729, null
  br i1 %2730, label %2731, label %2784

2731:                                             ; preds = %2724
  br label %2732

2732:                                             ; preds = %2731
  br label %2733

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

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

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

2762:                                             ; preds = %2740, %2733
  %2763 = load i32, ptr %70, align 4, !tbaa !5
  %2764 = call ptr @__errno_location() #10
  store i32 %2763, ptr %2764, align 4, !tbaa !5
  %2765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2766 = load i32, ptr @test_count, align 4, !tbaa !5
  %2767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call ptr @s2n_strerror(i32 noundef %2768, ptr noundef @.str.4)
  %2770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2771 = load i32, ptr %2770, align 4, !tbaa !5
  %2772 = call ptr @s2n_strerror_debug(i32 noundef %2771, ptr noundef @.str.4)
  %2773 = call ptr @__errno_location() #10
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  %2775 = call ptr @strerror(i32 noundef %2774) #9
  %2776 = call ptr @__errno_location() #10
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2765, ptr noundef @.str.5, i32 noundef %2766, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 265, ptr noundef %2769, ptr noundef %2772, ptr noundef %2775, i32 noundef %2777) #9
  br label %2779

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

2780:                                             ; preds = %2779
  br label %2781

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

2782:                                             ; No predecessors!
  br label %2783

2783:                                             ; preds = %2782
  br label %2784

2784:                                             ; preds = %2783, %2724
  br label %2785

2785:                                             ; preds = %2784
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

2787:                                             ; preds = %2786
  %2788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2788, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2789 = call ptr @__errno_location() #10
  store i32 0, ptr %2789, align 4, !tbaa !5
  br label %2790

2790:                                             ; preds = %2787
  br label %2791

2791:                                             ; preds = %2790
  br label %2792

2792:                                             ; preds = %2791
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

2794:                                             ; preds = %2793
  %2795 = load i32, ptr @test_count, align 4, !tbaa !5
  %2796 = add nsw i32 %2795, 1
  store i32 %2796, ptr @test_count, align 4, !tbaa !5
  %2797 = load ptr, ptr %7, align 8, !tbaa !9
  %2798 = getelementptr inbounds %struct.s2n_connection, ptr %2797, i32 0, i32 23
  %2799 = load i8, ptr %2798, align 4, !tbaa !23
  %2800 = zext i8 %2799 to i32
  %2801 = icmp eq i32 %2800, 33
  br i1 %2801, label %2855, label %2802

2802:                                             ; preds = %2794
  br label %2803

2803:                                             ; preds = %2802
  br label %2804

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

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

2816:                                             ; preds = %2811
  %2817 = load i32, ptr %71, align 4, !tbaa !5
  %2818 = call ptr @__errno_location() #10
  store i32 %2817, ptr %2818, align 4, !tbaa !5
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = load i32, ptr @test_count, align 4, !tbaa !5
  %2821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = call ptr @s2n_strerror(i32 noundef %2822, ptr noundef @.str.4)
  %2824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror_debug(i32 noundef %2825, ptr noundef @.str.4)
  %2827 = call ptr @__errno_location() #10
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call ptr @strerror(i32 noundef %2828) #9
  %2830 = call ptr @__errno_location() #10
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2819, ptr noundef @.str.1, i32 noundef %2820, ptr noundef @.str.29, ptr noundef @.str.3, i32 noundef 266, ptr noundef %2823, ptr noundef %2826, ptr noundef %2829, i32 noundef %2831) #9
  br label %2850

2833:                                             ; preds = %2811, %2804
  %2834 = load i32, ptr %71, align 4, !tbaa !5
  %2835 = call ptr @__errno_location() #10
  store i32 %2834, ptr %2835, align 4, !tbaa !5
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = load i32, ptr @test_count, align 4, !tbaa !5
  %2838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2839 = load i32, ptr %2838, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror(i32 noundef %2839, ptr noundef @.str.4)
  %2841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = call ptr @s2n_strerror_debug(i32 noundef %2842, ptr noundef @.str.4)
  %2844 = call ptr @__errno_location() #10
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call ptr @strerror(i32 noundef %2845) #9
  %2847 = call ptr @__errno_location() #10
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2836, ptr noundef @.str.5, i32 noundef %2837, ptr noundef @.str.29, ptr noundef @.str.3, i32 noundef 266, ptr noundef %2840, ptr noundef %2843, ptr noundef %2846, i32 noundef %2848) #9
  br label %2850

2850:                                             ; preds = %2833, %2816
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %2851

2851:                                             ; preds = %2850
  br label %2852

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

2853:                                             ; No predecessors!
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

2855:                                             ; preds = %2854, %2794
  br label %2856

2856:                                             ; preds = %2855
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  %2859 = load i32, ptr @test_count, align 4, !tbaa !5
  %2860 = add nsw i32 %2859, 1
  store i32 %2860, ptr @test_count, align 4, !tbaa !5
  %2861 = getelementptr inbounds %struct.alert_ctx, ptr %62, i32 0, i32 1
  %2862 = load i32, ptr %2861, align 4, !tbaa !19
  %2863 = icmp eq i32 %2862, 1
  br i1 %2863, label %2917, label %2864

2864:                                             ; preds = %2858
  br label %2865

2865:                                             ; preds = %2864
  br label %2866

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

2873:                                             ; preds = %2866
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = call i32 @fileno(ptr noundef %2874) #9
  %2876 = call i32 @isatty(i32 noundef %2875) #9
  %2877 = icmp ne i32 %2876, 0
  br i1 %2877, label %2878, label %2895

2878:                                             ; preds = %2873
  %2879 = load i32, ptr %72, align 4, !tbaa !5
  %2880 = call ptr @__errno_location() #10
  store i32 %2879, ptr %2880, align 4, !tbaa !5
  %2881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2882 = load i32, ptr @test_count, align 4, !tbaa !5
  %2883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @s2n_strerror(i32 noundef %2884, ptr noundef @.str.4)
  %2886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @s2n_strerror_debug(i32 noundef %2887, ptr noundef @.str.4)
  %2889 = call ptr @__errno_location() #10
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call ptr @strerror(i32 noundef %2890) #9
  %2892 = call ptr @__errno_location() #10
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  %2894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2881, ptr noundef @.str.1, i32 noundef %2882, ptr noundef @.str.43, ptr noundef @.str.3, i32 noundef 269, ptr noundef %2885, ptr noundef %2888, ptr noundef %2891, i32 noundef %2893) #9
  br label %2912

2895:                                             ; preds = %2873, %2866
  %2896 = load i32, ptr %72, align 4, !tbaa !5
  %2897 = call ptr @__errno_location() #10
  store i32 %2896, ptr %2897, align 4, !tbaa !5
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = load i32, ptr @test_count, align 4, !tbaa !5
  %2900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2901 = load i32, ptr %2900, align 4, !tbaa !5
  %2902 = call ptr @s2n_strerror(i32 noundef %2901, ptr noundef @.str.4)
  %2903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = call ptr @s2n_strerror_debug(i32 noundef %2904, ptr noundef @.str.4)
  %2906 = call ptr @__errno_location() #10
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call ptr @strerror(i32 noundef %2907) #9
  %2909 = call ptr @__errno_location() #10
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2898, ptr noundef @.str.5, i32 noundef %2899, ptr noundef @.str.43, ptr noundef @.str.3, i32 noundef 269, ptr noundef %2902, ptr noundef %2905, ptr noundef %2908, i32 noundef %2910) #9
  br label %2912

2912:                                             ; preds = %2895, %2878
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %2913

2913:                                             ; preds = %2912
  br label %2914

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

2915:                                             ; No predecessors!
  br label %2916

2916:                                             ; preds = %2915
  br label %2917

2917:                                             ; preds = %2916, %2858
  br label %2918

2918:                                             ; preds = %2917
  br label %2919

2919:                                             ; preds = %2918
  br label %2920

2920:                                             ; preds = %2919
  %2921 = load i32, ptr @test_count, align 4, !tbaa !5
  %2922 = add nsw i32 %2921, 1
  store i32 %2922, ptr @test_count, align 4, !tbaa !5
  %2923 = load ptr, ptr %7, align 8, !tbaa !9
  %2924 = call i32 @s2n_connection_free(ptr noundef %2923)
  %2925 = icmp eq i32 %2924, -1
  br i1 %2925, label %2926, label %2979

2926:                                             ; preds = %2920
  br label %2927

2927:                                             ; preds = %2926
  br label %2928

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

2935:                                             ; preds = %2928
  %2936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2937 = call i32 @fileno(ptr noundef %2936) #9
  %2938 = call i32 @isatty(i32 noundef %2937) #9
  %2939 = icmp ne i32 %2938, 0
  br i1 %2939, label %2940, label %2957

2940:                                             ; preds = %2935
  %2941 = load i32, ptr %73, align 4, !tbaa !5
  %2942 = call ptr @__errno_location() #10
  store i32 %2941, ptr %2942, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef @.str.4)
  %2948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror_debug(i32 noundef %2949, ptr noundef @.str.4)
  %2951 = call ptr @__errno_location() #10
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @strerror(i32 noundef %2952) #9
  %2954 = call ptr @__errno_location() #10
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef @.str.1, i32 noundef %2944, ptr noundef @.str.34, ptr noundef @.str.3, i32 noundef 271, ptr noundef %2947, ptr noundef %2950, ptr noundef %2953, i32 noundef %2955) #9
  br label %2974

2957:                                             ; preds = %2935, %2928
  %2958 = load i32, ptr %73, align 4, !tbaa !5
  %2959 = call ptr @__errno_location() #10
  store i32 %2958, ptr %2959, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror(i32 noundef %2963, ptr noundef @.str.4)
  %2965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror_debug(i32 noundef %2966, ptr noundef @.str.4)
  %2968 = call ptr @__errno_location() #10
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @strerror(i32 noundef %2969) #9
  %2971 = call ptr @__errno_location() #10
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2960, ptr noundef @.str.5, i32 noundef %2961, ptr noundef @.str.34, ptr noundef @.str.3, i32 noundef 271, ptr noundef %2964, ptr noundef %2967, ptr noundef %2970, i32 noundef %2972) #9
  br label %2974

2974:                                             ; preds = %2957, %2940
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %2975

2975:                                             ; preds = %2974
  br label %2976

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

2977:                                             ; No predecessors!
  br label %2978

2978:                                             ; preds = %2977
  br label %2979

2979:                                             ; preds = %2978, %2920
  br label %2980

2980:                                             ; preds = %2979
  br label %2981

2981:                                             ; preds = %2980
  br label %2982

2982:                                             ; preds = %2981
  %2983 = load i32, ptr @test_count, align 4, !tbaa !5
  %2984 = add nsw i32 %2983, 1
  store i32 %2984, ptr @test_count, align 4, !tbaa !5
  %2985 = call i32 @s2n_io_pair_close_one_end(ptr noundef %54, i32 noundef 0)
  %2986 = icmp eq i32 %2985, -1
  br i1 %2986, label %2987, label %3040

2987:                                             ; preds = %2982
  br label %2988

2988:                                             ; preds = %2987
  br label %2989

2989:                                             ; preds = %2988
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %2990 = call ptr @__errno_location() #10
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  store i32 %2991, ptr %74, align 4, !tbaa !5
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = call i32 @s2n_print_stacktrace(ptr noundef %2992)
  %2994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2995 = trunc i8 %2994 to i1
  br i1 %2995, label %2996, label %3018

2996:                                             ; preds = %2989
  %2997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2998 = call i32 @fileno(ptr noundef %2997) #9
  %2999 = call i32 @isatty(i32 noundef %2998) #9
  %3000 = icmp ne i32 %2999, 0
  br i1 %3000, label %3001, label %3018

3001:                                             ; preds = %2996
  %3002 = load i32, ptr %74, align 4, !tbaa !5
  %3003 = call ptr @__errno_location() #10
  store i32 %3002, ptr %3003, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = load i32, ptr @test_count, align 4, !tbaa !5
  %3006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror(i32 noundef %3007, ptr noundef @.str.4)
  %3009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = call ptr @s2n_strerror_debug(i32 noundef %3010, ptr noundef @.str.4)
  %3012 = call ptr @__errno_location() #10
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @strerror(i32 noundef %3013) #9
  %3015 = call ptr @__errno_location() #10
  %3016 = load i32, ptr %3015, align 4, !tbaa !5
  %3017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3004, ptr noundef @.str.1, i32 noundef %3005, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 272, ptr noundef %3008, ptr noundef %3011, ptr noundef %3014, i32 noundef %3016) #9
  br label %3035

3018:                                             ; preds = %2996, %2989
  %3019 = load i32, ptr %74, align 4, !tbaa !5
  %3020 = call ptr @__errno_location() #10
  store i32 %3019, ptr %3020, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %3023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3024 = load i32, ptr %3023, align 4, !tbaa !5
  %3025 = call ptr @s2n_strerror(i32 noundef %3024, ptr noundef @.str.4)
  %3026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror_debug(i32 noundef %3027, ptr noundef @.str.4)
  %3029 = call ptr @__errno_location() #10
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @strerror(i32 noundef %3030) #9
  %3032 = call ptr @__errno_location() #10
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3021, ptr noundef @.str.5, i32 noundef %3022, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 272, ptr noundef %3025, ptr noundef %3028, ptr noundef %3031, i32 noundef %3033) #9
  br label %3035

3035:                                             ; preds = %3018, %3001
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3036

3036:                                             ; preds = %3035
  br label %3037

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

3038:                                             ; No predecessors!
  br label %3039

3039:                                             ; preds = %3038
  br label %3040

3040:                                             ; preds = %3039, %2982
  br label %3041

3041:                                             ; preds = %3040
  br label %3042

3042:                                             ; preds = %3041
  br label %3043

3043:                                             ; preds = %3042
  %3044 = load i32, ptr @test_count, align 4, !tbaa !5
  %3045 = add nsw i32 %3044, 1
  store i32 %3045, ptr @test_count, align 4, !tbaa !5
  %3046 = call i32 @waitpid(i32 noundef -1, ptr noundef %9, i32 noundef 0)
  %3047 = load i32, ptr %10, align 4, !tbaa !5
  %3048 = icmp eq i32 %3046, %3047
  br i1 %3048, label %3102, label %3049

3049:                                             ; preds = %3043
  br label %3050

3050:                                             ; preds = %3049
  br label %3051

3051:                                             ; preds = %3050
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %3052 = call ptr @__errno_location() #10
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  store i32 %3053, ptr %75, align 4, !tbaa !5
  %3054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3055 = call i32 @s2n_print_stacktrace(ptr noundef %3054)
  %3056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3057 = trunc i8 %3056 to i1
  br i1 %3057, label %3058, label %3080

3058:                                             ; preds = %3051
  %3059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3060 = call i32 @fileno(ptr noundef %3059) #9
  %3061 = call i32 @isatty(i32 noundef %3060) #9
  %3062 = icmp ne i32 %3061, 0
  br i1 %3062, label %3063, label %3080

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

3080:                                             ; preds = %3058, %3051
  %3081 = load i32, ptr %75, align 4, !tbaa !5
  %3082 = call ptr @__errno_location() #10
  store i32 %3081, ptr %3082, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = load i32, ptr @test_count, align 4, !tbaa !5
  %3085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3086 = load i32, ptr %3085, align 4, !tbaa !5
  %3087 = call ptr @s2n_strerror(i32 noundef %3086, ptr noundef @.str.4)
  %3088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3089 = load i32, ptr %3088, align 4, !tbaa !5
  %3090 = call ptr @s2n_strerror_debug(i32 noundef %3089, ptr noundef @.str.4)
  %3091 = call ptr @__errno_location() #10
  %3092 = load i32, ptr %3091, align 4, !tbaa !5
  %3093 = call ptr @strerror(i32 noundef %3092) #9
  %3094 = call ptr @__errno_location() #10
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3083, ptr noundef @.str.5, i32 noundef %3084, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 275, ptr noundef %3087, ptr noundef %3090, ptr noundef %3093, i32 noundef %3095) #9
  br label %3097

3097:                                             ; preds = %3080, %3063
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %3098

3098:                                             ; preds = %3097
  br label %3099

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

3100:                                             ; No predecessors!
  br label %3101

3101:                                             ; preds = %3100
  br label %3102

3102:                                             ; preds = %3101, %3043
  br label %3103

3103:                                             ; preds = %3102
  br label %3104

3104:                                             ; preds = %3103
  br label %3105

3105:                                             ; preds = %3104
  %3106 = load i32, ptr @test_count, align 4, !tbaa !5
  %3107 = add nsw i32 %3106, 1
  store i32 %3107, ptr @test_count, align 4, !tbaa !5
  %3108 = load i32, ptr %9, align 4, !tbaa !5
  %3109 = icmp eq i32 %3108, 0
  br i1 %3109, label %3163, label %3110

3110:                                             ; preds = %3105
  br label %3111

3111:                                             ; preds = %3110
  br label %3112

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

3119:                                             ; preds = %3112
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = call i32 @fileno(ptr noundef %3120) #9
  %3122 = call i32 @isatty(i32 noundef %3121) #9
  %3123 = icmp ne i32 %3122, 0
  br i1 %3123, label %3124, label %3141

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

3141:                                             ; preds = %3119, %3112
  %3142 = load i32, ptr %76, align 4, !tbaa !5
  %3143 = call ptr @__errno_location() #10
  store i32 %3142, ptr %3143, align 4, !tbaa !5
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = load i32, ptr @test_count, align 4, !tbaa !5
  %3146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  %3148 = call ptr @s2n_strerror(i32 noundef %3147, ptr noundef @.str.4)
  %3149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call ptr @s2n_strerror_debug(i32 noundef %3150, ptr noundef @.str.4)
  %3152 = call ptr @__errno_location() #10
  %3153 = load i32, ptr %3152, align 4, !tbaa !5
  %3154 = call ptr @strerror(i32 noundef %3153) #9
  %3155 = call ptr @__errno_location() #10
  %3156 = load i32, ptr %3155, align 4, !tbaa !5
  %3157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3144, ptr noundef @.str.5, i32 noundef %3145, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 276, ptr noundef %3148, ptr noundef %3151, ptr noundef %3154, i32 noundef %3156) #9
  br label %3158

3158:                                             ; preds = %3141, %3124
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

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

3161:                                             ; No predecessors!
  br label %3162

3162:                                             ; preds = %3161
  br label %3163

3163:                                             ; preds = %3162, %3105
  br label %3164

3164:                                             ; preds = %3163
  br label %3165

3165:                                             ; preds = %3164
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #9
  %3166 = call i32 @s2n_config_ptr_free(ptr noundef %59)
  %3167 = getelementptr inbounds %struct.s2n_result, ptr %77, i32 0, i32 0
  store i32 %3166, ptr %3167, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  br label %3168

3168:                                             ; preds = %3165
  %3169 = load i32, ptr @test_count, align 4, !tbaa !5
  %3170 = add nsw i32 %3169, 1
  store i32 %3170, ptr @test_count, align 4, !tbaa !5
  %3171 = call i32 @s2n_io_pair_init(ptr noundef %78)
  %3172 = icmp eq i32 %3171, -1
  br i1 %3172, label %3173, label %3226

3173:                                             ; preds = %3168
  br label %3174

3174:                                             ; preds = %3173
  br label %3175

3175:                                             ; preds = %3174
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %3176 = call ptr @__errno_location() #10
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  store i32 %3177, ptr %79, align 4, !tbaa !5
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = call i32 @s2n_print_stacktrace(ptr noundef %3178)
  %3180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3181 = trunc i8 %3180 to i1
  br i1 %3181, label %3182, label %3204

3182:                                             ; preds = %3175
  %3183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3184 = call i32 @fileno(ptr noundef %3183) #9
  %3185 = call i32 @isatty(i32 noundef %3184) #9
  %3186 = icmp ne i32 %3185, 0
  br i1 %3186, label %3187, label %3204

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

3204:                                             ; preds = %3182, %3175
  %3205 = load i32, ptr %79, align 4, !tbaa !5
  %3206 = call ptr @__errno_location() #10
  store i32 %3205, ptr %3206, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = load i32, ptr @test_count, align 4, !tbaa !5
  %3209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror(i32 noundef %3210, ptr noundef @.str.4)
  %3212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3213 = load i32, ptr %3212, align 4, !tbaa !5
  %3214 = call ptr @s2n_strerror_debug(i32 noundef %3213, ptr noundef @.str.4)
  %3215 = call ptr @__errno_location() #10
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = call ptr @strerror(i32 noundef %3216) #9
  %3218 = call ptr @__errno_location() #10
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3207, ptr noundef @.str.5, i32 noundef %3208, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 283, ptr noundef %3211, ptr noundef %3214, ptr noundef %3217, i32 noundef %3219) #9
  br label %3221

3221:                                             ; preds = %3204, %3187
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

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

3224:                                             ; No predecessors!
  br label %3225

3225:                                             ; preds = %3224
  br label %3226

3226:                                             ; preds = %3225, %3168
  br label %3227

3227:                                             ; preds = %3226
  br label %3228

3228:                                             ; preds = %3227
  %3229 = call i32 @fork() #9
  store i32 %3229, ptr %10, align 4, !tbaa !5
  %3230 = load i32, ptr %10, align 4, !tbaa !5
  %3231 = icmp eq i32 %3230, 0
  br i1 %3231, label %3232, label %3359

3232:                                             ; preds = %3228
  br label %3233

3233:                                             ; preds = %3232
  %3234 = load i32, ptr @test_count, align 4, !tbaa !5
  %3235 = add nsw i32 %3234, 1
  store i32 %3235, ptr @test_count, align 4, !tbaa !5
  %3236 = call i32 @s2n_io_pair_close_one_end(ptr noundef %78, i32 noundef 0)
  %3237 = icmp eq i32 %3236, -1
  br i1 %3237, label %3238, label %3291

3238:                                             ; preds = %3233
  br label %3239

3239:                                             ; preds = %3238
  br label %3240

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

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

3252:                                             ; preds = %3247
  %3253 = load i32, ptr %80, align 4, !tbaa !5
  %3254 = call ptr @__errno_location() #10
  store i32 %3253, ptr %3254, align 4, !tbaa !5
  %3255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3256 = load i32, ptr @test_count, align 4, !tbaa !5
  %3257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @s2n_strerror(i32 noundef %3258, ptr noundef @.str.4)
  %3260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call ptr @s2n_strerror_debug(i32 noundef %3261, ptr noundef @.str.4)
  %3263 = call ptr @__errno_location() #10
  %3264 = load i32, ptr %3263, align 4, !tbaa !5
  %3265 = call ptr @strerror(i32 noundef %3264) #9
  %3266 = call ptr @__errno_location() #10
  %3267 = load i32, ptr %3266, align 4, !tbaa !5
  %3268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3255, ptr noundef @.str.1, i32 noundef %3256, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 289, ptr noundef %3259, ptr noundef %3262, ptr noundef %3265, i32 noundef %3267) #9
  br label %3286

3269:                                             ; preds = %3247, %3240
  %3270 = load i32, ptr %80, align 4, !tbaa !5
  %3271 = call ptr @__errno_location() #10
  store i32 %3270, ptr %3271, align 4, !tbaa !5
  %3272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3273 = load i32, ptr @test_count, align 4, !tbaa !5
  %3274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = call ptr @s2n_strerror(i32 noundef %3275, ptr noundef @.str.4)
  %3277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call ptr @s2n_strerror_debug(i32 noundef %3278, ptr noundef @.str.4)
  %3280 = call ptr @__errno_location() #10
  %3281 = load i32, ptr %3280, align 4, !tbaa !5
  %3282 = call ptr @strerror(i32 noundef %3281) #9
  %3283 = call ptr @__errno_location() #10
  %3284 = load i32, ptr %3283, align 4, !tbaa !5
  %3285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3272, ptr noundef @.str.5, i32 noundef %3273, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 289, ptr noundef %3276, ptr noundef %3279, ptr noundef %3282, i32 noundef %3284) #9
  br label %3286

3286:                                             ; preds = %3269, %3252
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

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

3289:                                             ; No predecessors!
  br label %3290

3290:                                             ; preds = %3289
  br label %3291

3291:                                             ; preds = %3290, %3233
  br label %3292

3292:                                             ; preds = %3291
  br label %3293

3293:                                             ; preds = %3292
  br label %3294

3294:                                             ; preds = %3293
  %3295 = load i32, ptr @test_count, align 4, !tbaa !5
  %3296 = add nsw i32 %3295, 1
  store i32 %3296, ptr @test_count, align 4, !tbaa !5
  %3297 = call i32 @cleanup(ptr noundef %11, ptr noundef %12, ptr noundef %13)
  %3298 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3297, ptr %3298, align 4
  %3299 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  %3300 = load i32, ptr %3299, align 4
  %3301 = call zeroext i1 @s2n_result_is_ok(i32 %3300)
  br i1 %3301, label %3355, label %3302

3302:                                             ; preds = %3294
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

3304:                                             ; preds = %3303
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %3305 = call ptr @__errno_location() #10
  %3306 = load i32, ptr %3305, align 4, !tbaa !5
  store i32 %3306, ptr %82, align 4, !tbaa !5
  %3307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3308 = call i32 @s2n_print_stacktrace(ptr noundef %3307)
  %3309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3310 = trunc i8 %3309 to i1
  br i1 %3310, label %3311, label %3333

3311:                                             ; preds = %3304
  %3312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3313 = call i32 @fileno(ptr noundef %3312) #9
  %3314 = call i32 @isatty(i32 noundef %3313) #9
  %3315 = icmp ne i32 %3314, 0
  br i1 %3315, label %3316, label %3333

3316:                                             ; preds = %3311
  %3317 = load i32, ptr %82, align 4, !tbaa !5
  %3318 = call ptr @__errno_location() #10
  store i32 %3317, ptr %3318, align 4, !tbaa !5
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = load i32, ptr @test_count, align 4, !tbaa !5
  %3321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call ptr @s2n_strerror(i32 noundef %3322, ptr noundef @.str.4)
  %3324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  %3326 = call ptr @s2n_strerror_debug(i32 noundef %3325, ptr noundef @.str.4)
  %3327 = call ptr @__errno_location() #10
  %3328 = load i32, ptr %3327, align 4, !tbaa !5
  %3329 = call ptr @strerror(i32 noundef %3328) #9
  %3330 = call ptr @__errno_location() #10
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  %3332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3319, ptr noundef @.str.1, i32 noundef %3320, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 291, ptr noundef %3323, ptr noundef %3326, ptr noundef %3329, i32 noundef %3331) #9
  br label %3350

3333:                                             ; preds = %3311, %3304
  %3334 = load i32, ptr %82, align 4, !tbaa !5
  %3335 = call ptr @__errno_location() #10
  store i32 %3334, ptr %3335, align 4, !tbaa !5
  %3336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3337 = load i32, ptr @test_count, align 4, !tbaa !5
  %3338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror(i32 noundef %3339, ptr noundef @.str.4)
  %3341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  %3343 = call ptr @s2n_strerror_debug(i32 noundef %3342, ptr noundef @.str.4)
  %3344 = call ptr @__errno_location() #10
  %3345 = load i32, ptr %3344, align 4, !tbaa !5
  %3346 = call ptr @strerror(i32 noundef %3345) #9
  %3347 = call ptr @__errno_location() #10
  %3348 = load i32, ptr %3347, align 4, !tbaa !5
  %3349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3336, ptr noundef @.str.5, i32 noundef %3337, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 291, ptr noundef %3340, ptr noundef %3343, ptr noundef %3346, i32 noundef %3348) #9
  br label %3350

3350:                                             ; preds = %3333, %3316
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %3351

3351:                                             ; preds = %3350
  br label %3352

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

3353:                                             ; No predecessors!
  br label %3354

3354:                                             ; preds = %3353
  br label %3355

3355:                                             ; preds = %3354, %3294
  br label %3356

3356:                                             ; preds = %3355
  br label %3357

3357:                                             ; preds = %3356
  %3358 = call i32 @mock_client(ptr noundef %78, i32 noundef 0, i32 noundef 1)
  br label %3359

3359:                                             ; preds = %3357, %3228
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  %3360 = call ptr @s2n_config_new()
  store ptr %3360, ptr %83, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #9
  %3361 = getelementptr inbounds %struct.alert_ctx, ptr %84, i32 0, i32 0
  %3362 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %78, i32 0, i32 1
  %3363 = load i32, ptr %3362, align 4, !tbaa !15
  store i32 %3363, ptr %3361, align 4, !tbaa !17
  %3364 = getelementptr inbounds %struct.alert_ctx, ptr %84, i32 0, i32 1
  store i32 0, ptr %3364, align 4, !tbaa !19
  %3365 = getelementptr inbounds %struct.alert_ctx, ptr %84, i32 0, i32 2
  store i32 1, ptr %3365, align 4, !tbaa !20
  %3366 = getelementptr inbounds %struct.alert_ctx, ptr %84, i32 0, i32 3
  store i8 1, ptr %3366, align 4, !tbaa !21
  %3367 = getelementptr inbounds %struct.alert_ctx, ptr %84, i32 0, i32 4
  store i8 122, ptr %3367, align 1, !tbaa !22
  br label %3368

3368:                                             ; preds = %3359
  %3369 = load i32, ptr @test_count, align 4, !tbaa !5
  %3370 = add nsw i32 %3369, 1
  store i32 %3370, ptr @test_count, align 4, !tbaa !5
  %3371 = load ptr, ptr %83, align 8, !tbaa !9
  %3372 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %3371, ptr noundef @client_hello_send_alerts, ptr noundef %84)
  %3373 = icmp eq i32 %3372, -1
  br i1 %3373, label %3374, label %3427

3374:                                             ; preds = %3368
  br label %3375

3375:                                             ; preds = %3374
  br label %3376

3376:                                             ; preds = %3375
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %3377 = call ptr @__errno_location() #10
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  store i32 %3378, ptr %85, align 4, !tbaa !5
  %3379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3380 = call i32 @s2n_print_stacktrace(ptr noundef %3379)
  %3381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3382 = trunc i8 %3381 to i1
  br i1 %3382, label %3383, label %3405

3383:                                             ; preds = %3376
  %3384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3385 = call i32 @fileno(ptr noundef %3384) #9
  %3386 = call i32 @isatty(i32 noundef %3385) #9
  %3387 = icmp ne i32 %3386, 0
  br i1 %3387, label %3388, label %3405

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

3405:                                             ; preds = %3383, %3376
  %3406 = load i32, ptr %85, align 4, !tbaa !5
  %3407 = call ptr @__errno_location() #10
  store i32 %3406, ptr %3407, align 4, !tbaa !5
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = load i32, ptr @test_count, align 4, !tbaa !5
  %3410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call ptr @s2n_strerror(i32 noundef %3411, ptr noundef @.str.4)
  %3413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror_debug(i32 noundef %3414, ptr noundef @.str.4)
  %3416 = call ptr @__errno_location() #10
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call ptr @strerror(i32 noundef %3417) #9
  %3419 = call ptr @__errno_location() #10
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3408, ptr noundef @.str.5, i32 noundef %3409, ptr noundef @.str.23, ptr noundef @.str.3, i32 noundef 300, ptr noundef %3412, ptr noundef %3415, ptr noundef %3418, i32 noundef %3420) #9
  br label %3422

3422:                                             ; preds = %3405, %3388
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %3423

3423:                                             ; preds = %3422
  br label %3424

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

3425:                                             ; No predecessors!
  br label %3426

3426:                                             ; preds = %3425
  br label %3427

3427:                                             ; preds = %3426, %3368
  br label %3428

3428:                                             ; preds = %3427
  br label %3429

3429:                                             ; preds = %3428
  br label %3430

3430:                                             ; preds = %3429
  %3431 = load i32, ptr @test_count, align 4, !tbaa !5
  %3432 = add nsw i32 %3431, 1
  store i32 %3432, ptr @test_count, align 4, !tbaa !5
  %3433 = load ptr, ptr %83, align 8, !tbaa !9
  %3434 = load ptr, ptr %13, align 8, !tbaa !9
  %3435 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3433, ptr noundef %3434)
  %3436 = icmp eq i32 %3435, -1
  br i1 %3436, label %3437, label %3490

3437:                                             ; preds = %3430
  br label %3438

3438:                                             ; preds = %3437
  br label %3439

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

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

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

3468:                                             ; preds = %3446, %3439
  %3469 = load i32, ptr %86, align 4, !tbaa !5
  %3470 = call ptr @__errno_location() #10
  store i32 %3469, ptr %3470, align 4, !tbaa !5
  %3471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3472 = load i32, ptr @test_count, align 4, !tbaa !5
  %3473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  %3475 = call ptr @s2n_strerror(i32 noundef %3474, ptr noundef @.str.4)
  %3476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror_debug(i32 noundef %3477, ptr noundef @.str.4)
  %3479 = call ptr @__errno_location() #10
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call ptr @strerror(i32 noundef %3480) #9
  %3482 = call ptr @__errno_location() #10
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3471, ptr noundef @.str.5, i32 noundef %3472, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 302, ptr noundef %3475, ptr noundef %3478, ptr noundef %3481, i32 noundef %3483) #9
  br label %3485

3485:                                             ; preds = %3468, %3451
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

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

3488:                                             ; No predecessors!
  br label %3489

3489:                                             ; preds = %3488
  br label %3490

3490:                                             ; preds = %3489, %3430
  br label %3491

3491:                                             ; preds = %3490
  br label %3492

3492:                                             ; preds = %3491
  br label %3493

3493:                                             ; preds = %3492
  %3494 = load i32, ptr @test_count, align 4, !tbaa !5
  %3495 = add nsw i32 %3494, 1
  store i32 %3495, ptr @test_count, align 4, !tbaa !5
  %3496 = load ptr, ptr %83, align 8, !tbaa !9
  %3497 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3496, ptr noundef @.str.37)
  %3498 = icmp eq i32 %3497, -1
  br i1 %3498, label %3499, label %3552

3499:                                             ; preds = %3493
  br label %3500

3500:                                             ; preds = %3499
  br label %3501

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

3508:                                             ; preds = %3501
  %3509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3510 = call i32 @fileno(ptr noundef %3509) #9
  %3511 = call i32 @isatty(i32 noundef %3510) #9
  %3512 = icmp ne i32 %3511, 0
  br i1 %3512, label %3513, label %3530

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

3530:                                             ; preds = %3508, %3501
  %3531 = load i32, ptr %87, align 4, !tbaa !5
  %3532 = call ptr @__errno_location() #10
  store i32 %3531, ptr %3532, align 4, !tbaa !5
  %3533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call ptr @s2n_strerror(i32 noundef %3536, ptr noundef @.str.4)
  %3538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call ptr @s2n_strerror_debug(i32 noundef %3539, ptr noundef @.str.4)
  %3541 = call ptr @__errno_location() #10
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call ptr @strerror(i32 noundef %3542) #9
  %3544 = call ptr @__errno_location() #10
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3533, ptr noundef @.str.5, i32 noundef %3534, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 303, ptr noundef %3537, ptr noundef %3540, ptr noundef %3543, i32 noundef %3545) #9
  br label %3547

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

3548:                                             ; preds = %3547
  br label %3549

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

3550:                                             ; No predecessors!
  br label %3551

3551:                                             ; preds = %3550
  br label %3552

3552:                                             ; preds = %3551, %3493
  br label %3553

3553:                                             ; preds = %3552
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

3555:                                             ; preds = %3554
  %3556 = load i32, ptr @test_count, align 4, !tbaa !5
  %3557 = add nsw i32 %3556, 1
  store i32 %3557, ptr @test_count, align 4, !tbaa !5
  %3558 = call i32 @s2n_io_pair_close_one_end(ptr noundef %78, i32 noundef 1)
  %3559 = icmp eq i32 %3558, -1
  br i1 %3559, label %3560, label %3613

3560:                                             ; preds = %3555
  br label %3561

3561:                                             ; preds = %3560
  br label %3562

3562:                                             ; preds = %3561
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %3563 = call ptr @__errno_location() #10
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  store i32 %3564, ptr %88, align 4, !tbaa !5
  %3565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3566 = call i32 @s2n_print_stacktrace(ptr noundef %3565)
  %3567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3568 = trunc i8 %3567 to i1
  br i1 %3568, label %3569, label %3591

3569:                                             ; preds = %3562
  %3570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3571 = call i32 @fileno(ptr noundef %3570) #9
  %3572 = call i32 @isatty(i32 noundef %3571) #9
  %3573 = icmp ne i32 %3572, 0
  br i1 %3573, label %3574, label %3591

3574:                                             ; preds = %3569
  %3575 = load i32, ptr %88, align 4, !tbaa !5
  %3576 = call ptr @__errno_location() #10
  store i32 %3575, ptr %3576, align 4, !tbaa !5
  %3577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3578 = load i32, ptr @test_count, align 4, !tbaa !5
  %3579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror(i32 noundef %3580, ptr noundef @.str.4)
  %3582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3583 = load i32, ptr %3582, align 4, !tbaa !5
  %3584 = call ptr @s2n_strerror_debug(i32 noundef %3583, ptr noundef @.str.4)
  %3585 = call ptr @__errno_location() #10
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call ptr @strerror(i32 noundef %3586) #9
  %3588 = call ptr @__errno_location() #10
  %3589 = load i32, ptr %3588, align 4, !tbaa !5
  %3590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3577, ptr noundef @.str.1, i32 noundef %3578, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 306, ptr noundef %3581, ptr noundef %3584, ptr noundef %3587, i32 noundef %3589) #9
  br label %3608

3591:                                             ; preds = %3569, %3562
  %3592 = load i32, ptr %88, align 4, !tbaa !5
  %3593 = call ptr @__errno_location() #10
  store i32 %3592, ptr %3593, align 4, !tbaa !5
  %3594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3595 = load i32, ptr @test_count, align 4, !tbaa !5
  %3596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  %3598 = call ptr @s2n_strerror(i32 noundef %3597, ptr noundef @.str.4)
  %3599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = call ptr @s2n_strerror_debug(i32 noundef %3600, ptr noundef @.str.4)
  %3602 = call ptr @__errno_location() #10
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = call ptr @strerror(i32 noundef %3603) #9
  %3605 = call ptr @__errno_location() #10
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  %3607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3594, ptr noundef @.str.5, i32 noundef %3595, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 306, ptr noundef %3598, ptr noundef %3601, ptr noundef %3604, i32 noundef %3606) #9
  br label %3608

3608:                                             ; preds = %3591, %3574
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %3609

3609:                                             ; preds = %3608
  br label %3610

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

3611:                                             ; No predecessors!
  br label %3612

3612:                                             ; preds = %3611
  br label %3613

3613:                                             ; preds = %3612, %3555
  br label %3614

3614:                                             ; preds = %3613
  br label %3615

3615:                                             ; preds = %3614
  br label %3616

3616:                                             ; preds = %3615
  %3617 = load i32, ptr @test_count, align 4, !tbaa !5
  %3618 = add nsw i32 %3617, 1
  store i32 %3618, ptr @test_count, align 4, !tbaa !5
  %3619 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3619, ptr %7, align 8, !tbaa !9
  %3620 = icmp eq ptr %3619, null
  br i1 %3620, label %3621, label %3674

3621:                                             ; preds = %3616
  br label %3622

3622:                                             ; preds = %3621
  br label %3623

3623:                                             ; preds = %3622
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %3624 = call ptr @__errno_location() #10
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  store i32 %3625, ptr %89, align 4, !tbaa !5
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = call i32 @s2n_print_stacktrace(ptr noundef %3626)
  %3628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3629 = trunc i8 %3628 to i1
  br i1 %3629, label %3630, label %3652

3630:                                             ; preds = %3623
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = call i32 @fileno(ptr noundef %3631) #9
  %3633 = call i32 @isatty(i32 noundef %3632) #9
  %3634 = icmp ne i32 %3633, 0
  br i1 %3634, label %3635, label %3652

3635:                                             ; preds = %3630
  %3636 = load i32, ptr %89, align 4, !tbaa !5
  %3637 = call ptr @__errno_location() #10
  store i32 %3636, ptr %3637, align 4, !tbaa !5
  %3638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3639 = load i32, ptr @test_count, align 4, !tbaa !5
  %3640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = call ptr @s2n_strerror(i32 noundef %3641, ptr noundef @.str.4)
  %3643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3644 = load i32, ptr %3643, align 4, !tbaa !5
  %3645 = call ptr @s2n_strerror_debug(i32 noundef %3644, ptr noundef @.str.4)
  %3646 = call ptr @__errno_location() #10
  %3647 = load i32, ptr %3646, align 4, !tbaa !5
  %3648 = call ptr @strerror(i32 noundef %3647) #9
  %3649 = call ptr @__errno_location() #10
  %3650 = load i32, ptr %3649, align 4, !tbaa !5
  %3651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3638, ptr noundef @.str.1, i32 noundef %3639, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 308, ptr noundef %3642, ptr noundef %3645, ptr noundef %3648, i32 noundef %3650) #9
  br label %3669

3652:                                             ; preds = %3630, %3623
  %3653 = load i32, ptr %89, align 4, !tbaa !5
  %3654 = call ptr @__errno_location() #10
  store i32 %3653, ptr %3654, align 4, !tbaa !5
  %3655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3656 = load i32, ptr @test_count, align 4, !tbaa !5
  %3657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call ptr @s2n_strerror(i32 noundef %3658, ptr noundef @.str.4)
  %3660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3661 = load i32, ptr %3660, align 4, !tbaa !5
  %3662 = call ptr @s2n_strerror_debug(i32 noundef %3661, ptr noundef @.str.4)
  %3663 = call ptr @__errno_location() #10
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  %3665 = call ptr @strerror(i32 noundef %3664) #9
  %3666 = call ptr @__errno_location() #10
  %3667 = load i32, ptr %3666, align 4, !tbaa !5
  %3668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3655, ptr noundef @.str.5, i32 noundef %3656, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 308, ptr noundef %3659, ptr noundef %3662, ptr noundef %3665, i32 noundef %3667) #9
  br label %3669

3669:                                             ; preds = %3652, %3635
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %3670

3670:                                             ; preds = %3669
  br label %3671

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

3672:                                             ; No predecessors!
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673, %3616
  br label %3675

3675:                                             ; preds = %3674
  br label %3676

3676:                                             ; preds = %3675
  br label %3677

3677:                                             ; preds = %3676
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = add nsw i32 %3678, 1
  store i32 %3679, ptr @test_count, align 4, !tbaa !5
  %3680 = load ptr, ptr %7, align 8, !tbaa !9
  %3681 = load ptr, ptr %83, align 8, !tbaa !9
  %3682 = call i32 @s2n_connection_set_config(ptr noundef %3680, ptr noundef %3681)
  %3683 = icmp eq i32 %3682, -1
  br i1 %3683, label %3684, label %3737

3684:                                             ; preds = %3677
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

3686:                                             ; preds = %3685
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %3687 = call ptr @__errno_location() #10
  %3688 = load i32, ptr %3687, align 4, !tbaa !5
  store i32 %3688, ptr %90, align 4, !tbaa !5
  %3689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3690 = call i32 @s2n_print_stacktrace(ptr noundef %3689)
  %3691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3692 = trunc i8 %3691 to i1
  br i1 %3692, label %3693, label %3715

3693:                                             ; preds = %3686
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = call i32 @fileno(ptr noundef %3694) #9
  %3696 = call i32 @isatty(i32 noundef %3695) #9
  %3697 = icmp ne i32 %3696, 0
  br i1 %3697, label %3698, label %3715

3698:                                             ; preds = %3693
  %3699 = load i32, ptr %90, align 4, !tbaa !5
  %3700 = call ptr @__errno_location() #10
  store i32 %3699, ptr %3700, align 4, !tbaa !5
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = load i32, ptr @test_count, align 4, !tbaa !5
  %3703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror(i32 noundef %3704, ptr noundef @.str.4)
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror_debug(i32 noundef %3707, ptr noundef @.str.4)
  %3709 = call ptr @__errno_location() #10
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @strerror(i32 noundef %3710) #9
  %3712 = call ptr @__errno_location() #10
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3701, ptr noundef @.str.1, i32 noundef %3702, ptr noundef @.str.26, ptr noundef @.str.3, i32 noundef 309, ptr noundef %3705, ptr noundef %3708, ptr noundef %3711, i32 noundef %3713) #9
  br label %3732

3715:                                             ; preds = %3693, %3686
  %3716 = load i32, ptr %90, align 4, !tbaa !5
  %3717 = call ptr @__errno_location() #10
  store i32 %3716, ptr %3717, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = load i32, ptr @test_count, align 4, !tbaa !5
  %3720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror(i32 noundef %3721, ptr noundef @.str.4)
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef @.str.4)
  %3726 = call ptr @__errno_location() #10
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @strerror(i32 noundef %3727) #9
  %3729 = call ptr @__errno_location() #10
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3718, ptr noundef @.str.5, i32 noundef %3719, ptr noundef @.str.26, ptr noundef @.str.3, i32 noundef 309, ptr noundef %3722, ptr noundef %3725, ptr noundef %3728, i32 noundef %3730) #9
  br label %3732

3732:                                             ; preds = %3715, %3698
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %3733

3733:                                             ; preds = %3732
  br label %3734

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

3735:                                             ; No predecessors!
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

3737:                                             ; preds = %3736, %3677
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

3739:                                             ; preds = %3738
  br label %3740

3740:                                             ; preds = %3739
  %3741 = load i32, ptr @test_count, align 4, !tbaa !5
  %3742 = add nsw i32 %3741, 1
  store i32 %3742, ptr @test_count, align 4, !tbaa !5
  %3743 = load ptr, ptr %7, align 8, !tbaa !9
  %3744 = call i32 @s2n_connection_set_io_pair(ptr noundef %3743, ptr noundef %78)
  %3745 = icmp eq i32 %3744, -1
  br i1 %3745, label %3746, label %3799

3746:                                             ; preds = %3740
  br label %3747

3747:                                             ; preds = %3746
  br label %3748

3748:                                             ; preds = %3747
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %3749 = call ptr @__errno_location() #10
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  store i32 %3750, ptr %91, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = call i32 @s2n_print_stacktrace(ptr noundef %3751)
  %3753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3754 = trunc i8 %3753 to i1
  br i1 %3754, label %3755, label %3777

3755:                                             ; preds = %3748
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = call i32 @fileno(ptr noundef %3756) #9
  %3758 = call i32 @isatty(i32 noundef %3757) #9
  %3759 = icmp ne i32 %3758, 0
  br i1 %3759, label %3760, label %3777

3760:                                             ; preds = %3755
  %3761 = load i32, ptr %91, align 4, !tbaa !5
  %3762 = call ptr @__errno_location() #10
  store i32 %3761, ptr %3762, align 4, !tbaa !5
  %3763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3764 = load i32, ptr @test_count, align 4, !tbaa !5
  %3765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  %3767 = call ptr @s2n_strerror(i32 noundef %3766, ptr noundef @.str.4)
  %3768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror_debug(i32 noundef %3769, ptr noundef @.str.4)
  %3771 = call ptr @__errno_location() #10
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  %3773 = call ptr @strerror(i32 noundef %3772) #9
  %3774 = call ptr @__errno_location() #10
  %3775 = load i32, ptr %3774, align 4, !tbaa !5
  %3776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3763, ptr noundef @.str.1, i32 noundef %3764, ptr noundef @.str.27, ptr noundef @.str.3, i32 noundef 312, ptr noundef %3767, ptr noundef %3770, ptr noundef %3773, i32 noundef %3775) #9
  br label %3794

3777:                                             ; preds = %3755, %3748
  %3778 = load i32, ptr %91, align 4, !tbaa !5
  %3779 = call ptr @__errno_location() #10
  store i32 %3778, ptr %3779, align 4, !tbaa !5
  %3780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3781 = load i32, ptr @test_count, align 4, !tbaa !5
  %3782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  %3784 = call ptr @s2n_strerror(i32 noundef %3783, ptr noundef @.str.4)
  %3785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror_debug(i32 noundef %3786, ptr noundef @.str.4)
  %3788 = call ptr @__errno_location() #10
  %3789 = load i32, ptr %3788, align 4, !tbaa !5
  %3790 = call ptr @strerror(i32 noundef %3789) #9
  %3791 = call ptr @__errno_location() #10
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3780, ptr noundef @.str.5, i32 noundef %3781, ptr noundef @.str.27, ptr noundef @.str.3, i32 noundef 312, ptr noundef %3784, ptr noundef %3787, ptr noundef %3790, i32 noundef %3792) #9
  br label %3794

3794:                                             ; preds = %3777, %3760
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %3795

3795:                                             ; preds = %3794
  br label %3796

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

3797:                                             ; No predecessors!
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798, %3740
  br label %3800

3800:                                             ; preds = %3799
  br label %3801

3801:                                             ; preds = %3800
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

3803:                                             ; preds = %3802
  %3804 = load i32, ptr @test_count, align 4, !tbaa !5
  %3805 = add nsw i32 %3804, 1
  store i32 %3805, ptr @test_count, align 4, !tbaa !5
  %3806 = load ptr, ptr %7, align 8, !tbaa !9
  %3807 = call i32 @s2n_negotiate(ptr noundef %3806, ptr noundef %8)
  %3808 = icmp eq i32 %3807, -1
  br i1 %3808, label %3862, label %3809

3809:                                             ; preds = %3803
  br label %3810

3810:                                             ; preds = %3809
  br label %3811

3811:                                             ; preds = %3810
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %3812 = call ptr @__errno_location() #10
  %3813 = load i32, ptr %3812, align 4, !tbaa !5
  store i32 %3813, ptr %92, align 4, !tbaa !5
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3815 = call i32 @s2n_print_stacktrace(ptr noundef %3814)
  %3816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3817 = trunc i8 %3816 to i1
  br i1 %3817, label %3818, label %3840

3818:                                             ; preds = %3811
  %3819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3820 = call i32 @fileno(ptr noundef %3819) #9
  %3821 = call i32 @isatty(i32 noundef %3820) #9
  %3822 = icmp ne i32 %3821, 0
  br i1 %3822, label %3823, label %3840

3823:                                             ; preds = %3818
  %3824 = load i32, ptr %92, align 4, !tbaa !5
  %3825 = call ptr @__errno_location() #10
  store i32 %3824, ptr %3825, align 4, !tbaa !5
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = load i32, ptr @test_count, align 4, !tbaa !5
  %3828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror(i32 noundef %3829, ptr noundef @.str.4)
  %3831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @s2n_strerror_debug(i32 noundef %3832, ptr noundef @.str.4)
  %3834 = call ptr @__errno_location() #10
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call ptr @strerror(i32 noundef %3835) #9
  %3837 = call ptr @__errno_location() #10
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3826, ptr noundef @.str.1, i32 noundef %3827, ptr noundef @.str.40, ptr noundef @.str.3, i32 noundef 315, ptr noundef %3830, ptr noundef %3833, ptr noundef %3836, i32 noundef %3838) #9
  br label %3857

3840:                                             ; preds = %3818, %3811
  %3841 = load i32, ptr %92, align 4, !tbaa !5
  %3842 = call ptr @__errno_location() #10
  store i32 %3841, ptr %3842, align 4, !tbaa !5
  %3843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3844 = load i32, ptr @test_count, align 4, !tbaa !5
  %3845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call ptr @s2n_strerror(i32 noundef %3846, ptr noundef @.str.4)
  %3848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @s2n_strerror_debug(i32 noundef %3849, ptr noundef @.str.4)
  %3851 = call ptr @__errno_location() #10
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call ptr @strerror(i32 noundef %3852) #9
  %3854 = call ptr @__errno_location() #10
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3843, ptr noundef @.str.5, i32 noundef %3844, ptr noundef @.str.40, ptr noundef @.str.3, i32 noundef 315, ptr noundef %3847, ptr noundef %3850, ptr noundef %3853, i32 noundef %3855) #9
  br label %3857

3857:                                             ; preds = %3840, %3823
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

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

3860:                                             ; No predecessors!
  br label %3861

3861:                                             ; preds = %3860
  br label %3862

3862:                                             ; preds = %3861, %3803
  br label %3863

3863:                                             ; preds = %3862
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

3865:                                             ; preds = %3864
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = add nsw i32 %3866, 1
  store i32 %3867, ptr @test_count, align 4, !tbaa !5
  %3868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3869 = load i32, ptr %3868, align 4, !tbaa !5
  %3870 = icmp eq i32 %3869, 0
  br i1 %3870, label %3871, label %3924

3871:                                             ; preds = %3865
  br label %3872

3872:                                             ; preds = %3871
  br label %3873

3873:                                             ; preds = %3872
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %3874 = call ptr @__errno_location() #10
  %3875 = load i32, ptr %3874, align 4, !tbaa !5
  store i32 %3875, ptr %93, align 4, !tbaa !5
  %3876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3877 = call i32 @s2n_print_stacktrace(ptr noundef %3876)
  %3878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3879 = trunc i8 %3878 to i1
  br i1 %3879, label %3880, label %3902

3880:                                             ; preds = %3873
  %3881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3882 = call i32 @fileno(ptr noundef %3881) #9
  %3883 = call i32 @isatty(i32 noundef %3882) #9
  %3884 = icmp ne i32 %3883, 0
  br i1 %3884, label %3885, label %3902

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

3902:                                             ; preds = %3880, %3873
  %3903 = load i32, ptr %93, align 4, !tbaa !5
  %3904 = call ptr @__errno_location() #10
  store i32 %3903, ptr %3904, align 4, !tbaa !5
  %3905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3906 = load i32, ptr @test_count, align 4, !tbaa !5
  %3907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror(i32 noundef %3908, ptr noundef @.str.4)
  %3910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = call ptr @s2n_strerror_debug(i32 noundef %3911, ptr noundef @.str.4)
  %3913 = call ptr @__errno_location() #10
  %3914 = load i32, ptr %3913, align 4, !tbaa !5
  %3915 = call ptr @strerror(i32 noundef %3914) #9
  %3916 = call ptr @__errno_location() #10
  %3917 = load i32, ptr %3916, align 4, !tbaa !5
  %3918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3905, ptr noundef @.str.5, i32 noundef %3906, ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 315, ptr noundef %3909, ptr noundef %3912, ptr noundef %3915, i32 noundef %3917) #9
  br label %3919

3919:                                             ; preds = %3902, %3885
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %3920

3920:                                             ; preds = %3919
  br label %3921

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

3922:                                             ; No predecessors!
  br label %3923

3923:                                             ; preds = %3922
  br label %3924

3924:                                             ; preds = %3923, %3865
  br label %3925

3925:                                             ; preds = %3924
  br label %3926

3926:                                             ; preds = %3925
  br label %3927

3927:                                             ; preds = %3926
  %3928 = load i32, ptr @test_count, align 4, !tbaa !5
  %3929 = add nsw i32 %3928, 1
  store i32 %3929, ptr @test_count, align 4, !tbaa !5
  %3930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror_debug(i32 noundef %3931, ptr noundef @.str.4)
  %3933 = icmp eq ptr %3932, null
  br i1 %3933, label %3934, label %3987

3934:                                             ; preds = %3927
  br label %3935

3935:                                             ; preds = %3934
  br label %3936

3936:                                             ; preds = %3935
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %3937 = call ptr @__errno_location() #10
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  store i32 %3938, ptr %94, align 4, !tbaa !5
  %3939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3940 = call i32 @s2n_print_stacktrace(ptr noundef %3939)
  %3941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3942 = trunc i8 %3941 to i1
  br i1 %3942, label %3943, label %3965

3943:                                             ; preds = %3936
  %3944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3945 = call i32 @fileno(ptr noundef %3944) #9
  %3946 = call i32 @isatty(i32 noundef %3945) #9
  %3947 = icmp ne i32 %3946, 0
  br i1 %3947, label %3948, label %3965

3948:                                             ; preds = %3943
  %3949 = load i32, ptr %94, align 4, !tbaa !5
  %3950 = call ptr @__errno_location() #10
  store i32 %3949, ptr %3950, align 4, !tbaa !5
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = load i32, ptr @test_count, align 4, !tbaa !5
  %3953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = call ptr @s2n_strerror(i32 noundef %3954, ptr noundef @.str.4)
  %3956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call ptr @s2n_strerror_debug(i32 noundef %3957, ptr noundef @.str.4)
  %3959 = call ptr @__errno_location() #10
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  %3961 = call ptr @strerror(i32 noundef %3960) #9
  %3962 = call ptr @__errno_location() #10
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3951, ptr noundef @.str.1, i32 noundef %3952, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 315, ptr noundef %3955, ptr noundef %3958, ptr noundef %3961, i32 noundef %3963) #9
  br label %3982

3965:                                             ; preds = %3943, %3936
  %3966 = load i32, ptr %94, align 4, !tbaa !5
  %3967 = call ptr @__errno_location() #10
  store i32 %3966, ptr %3967, align 4, !tbaa !5
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = load i32, ptr @test_count, align 4, !tbaa !5
  %3970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3971 = load i32, ptr %3970, align 4, !tbaa !5
  %3972 = call ptr @s2n_strerror(i32 noundef %3971, ptr noundef @.str.4)
  %3973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @s2n_strerror_debug(i32 noundef %3974, ptr noundef @.str.4)
  %3976 = call ptr @__errno_location() #10
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call ptr @strerror(i32 noundef %3977) #9
  %3979 = call ptr @__errno_location() #10
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3968, ptr noundef @.str.5, i32 noundef %3969, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 315, ptr noundef %3972, ptr noundef %3975, ptr noundef %3978, i32 noundef %3980) #9
  br label %3982

3982:                                             ; preds = %3965, %3948
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %3983

3983:                                             ; preds = %3982
  br label %3984

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

3985:                                             ; No predecessors!
  br label %3986

3986:                                             ; preds = %3985
  br label %3987

3987:                                             ; preds = %3986, %3927
  br label %3988

3988:                                             ; preds = %3987
  br label %3989

3989:                                             ; preds = %3988
  br label %3990

3990:                                             ; preds = %3989
  %3991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3991, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3992 = call ptr @__errno_location() #10
  store i32 0, ptr %3992, align 4, !tbaa !5
  br label %3993

3993:                                             ; preds = %3990
  br label %3994

3994:                                             ; preds = %3993
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995
  br label %3997

3997:                                             ; preds = %3996
  %3998 = load i32, ptr @test_count, align 4, !tbaa !5
  %3999 = add nsw i32 %3998, 1
  store i32 %3999, ptr @test_count, align 4, !tbaa !5
  %4000 = load ptr, ptr %7, align 8, !tbaa !9
  %4001 = getelementptr inbounds %struct.s2n_connection, ptr %4000, i32 0, i32 23
  %4002 = load i8, ptr %4001, align 4, !tbaa !23
  %4003 = zext i8 %4002 to i32
  %4004 = icmp eq i32 %4003, 33
  br i1 %4004, label %4058, label %4005

4005:                                             ; preds = %3997
  br label %4006

4006:                                             ; preds = %4005
  br label %4007

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

4014:                                             ; preds = %4007
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = call i32 @fileno(ptr noundef %4015) #9
  %4017 = call i32 @isatty(i32 noundef %4016) #9
  %4018 = icmp ne i32 %4017, 0
  br i1 %4018, label %4019, label %4036

4019:                                             ; preds = %4014
  %4020 = load i32, ptr %95, align 4, !tbaa !5
  %4021 = call ptr @__errno_location() #10
  store i32 %4020, ptr %4021, align 4, !tbaa !5
  %4022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4023 = load i32, ptr @test_count, align 4, !tbaa !5
  %4024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4025 = load i32, ptr %4024, align 4, !tbaa !5
  %4026 = call ptr @s2n_strerror(i32 noundef %4025, ptr noundef @.str.4)
  %4027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4028 = load i32, ptr %4027, align 4, !tbaa !5
  %4029 = call ptr @s2n_strerror_debug(i32 noundef %4028, ptr noundef @.str.4)
  %4030 = call ptr @__errno_location() #10
  %4031 = load i32, ptr %4030, align 4, !tbaa !5
  %4032 = call ptr @strerror(i32 noundef %4031) #9
  %4033 = call ptr @__errno_location() #10
  %4034 = load i32, ptr %4033, align 4, !tbaa !5
  %4035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4022, ptr noundef @.str.1, i32 noundef %4023, ptr noundef @.str.29, ptr noundef @.str.3, i32 noundef 316, ptr noundef %4026, ptr noundef %4029, ptr noundef %4032, i32 noundef %4034) #9
  br label %4053

4036:                                             ; preds = %4014, %4007
  %4037 = load i32, ptr %95, align 4, !tbaa !5
  %4038 = call ptr @__errno_location() #10
  store i32 %4037, ptr %4038, align 4, !tbaa !5
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = load i32, ptr @test_count, align 4, !tbaa !5
  %4041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef @.str.4)
  %4044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4045 = load i32, ptr %4044, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror_debug(i32 noundef %4045, ptr noundef @.str.4)
  %4047 = call ptr @__errno_location() #10
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call ptr @strerror(i32 noundef %4048) #9
  %4050 = call ptr @__errno_location() #10
  %4051 = load i32, ptr %4050, align 4, !tbaa !5
  %4052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4039, ptr noundef @.str.5, i32 noundef %4040, ptr noundef @.str.29, ptr noundef @.str.3, i32 noundef 316, ptr noundef %4043, ptr noundef %4046, ptr noundef %4049, i32 noundef %4051) #9
  br label %4053

4053:                                             ; preds = %4036, %4019
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4054

4054:                                             ; preds = %4053
  br label %4055

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

4056:                                             ; No predecessors!
  br label %4057

4057:                                             ; preds = %4056
  br label %4058

4058:                                             ; preds = %4057, %3997
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059
  br label %4061

4061:                                             ; preds = %4060
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = add nsw i32 %4062, 1
  store i32 %4063, ptr @test_count, align 4, !tbaa !5
  %4064 = getelementptr inbounds %struct.alert_ctx, ptr %84, i32 0, i32 1
  %4065 = load i32, ptr %4064, align 4, !tbaa !19
  %4066 = icmp eq i32 %4065, 1
  br i1 %4066, label %4120, label %4067

4067:                                             ; preds = %4061
  br label %4068

4068:                                             ; preds = %4067
  br label %4069

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

4076:                                             ; preds = %4069
  %4077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4078 = call i32 @fileno(ptr noundef %4077) #9
  %4079 = call i32 @isatty(i32 noundef %4078) #9
  %4080 = icmp ne i32 %4079, 0
  br i1 %4080, label %4081, label %4098

4081:                                             ; preds = %4076
  %4082 = load i32, ptr %96, align 4, !tbaa !5
  %4083 = call ptr @__errno_location() #10
  store i32 %4082, ptr %4083, align 4, !tbaa !5
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = load i32, ptr @test_count, align 4, !tbaa !5
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror(i32 noundef %4087, ptr noundef @.str.4)
  %4089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @s2n_strerror_debug(i32 noundef %4090, ptr noundef @.str.4)
  %4092 = call ptr @__errno_location() #10
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call ptr @strerror(i32 noundef %4093) #9
  %4095 = call ptr @__errno_location() #10
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4084, ptr noundef @.str.1, i32 noundef %4085, ptr noundef @.str.44, ptr noundef @.str.3, i32 noundef 319, ptr noundef %4088, ptr noundef %4091, ptr noundef %4094, i32 noundef %4096) #9
  br label %4115

4098:                                             ; preds = %4076, %4069
  %4099 = load i32, ptr %96, align 4, !tbaa !5
  %4100 = call ptr @__errno_location() #10
  store i32 %4099, ptr %4100, align 4, !tbaa !5
  %4101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4102 = load i32, ptr @test_count, align 4, !tbaa !5
  %4103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror(i32 noundef %4104, ptr noundef @.str.4)
  %4106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror_debug(i32 noundef %4107, ptr noundef @.str.4)
  %4109 = call ptr @__errno_location() #10
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @strerror(i32 noundef %4110) #9
  %4112 = call ptr @__errno_location() #10
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4101, ptr noundef @.str.5, i32 noundef %4102, ptr noundef @.str.44, ptr noundef @.str.3, i32 noundef 319, ptr noundef %4105, ptr noundef %4108, ptr noundef %4111, i32 noundef %4113) #9
  br label %4115

4115:                                             ; preds = %4098, %4081
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

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

4118:                                             ; No predecessors!
  br label %4119

4119:                                             ; preds = %4118
  br label %4120

4120:                                             ; preds = %4119, %4061
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121
  br label %4123

4123:                                             ; preds = %4122
  %4124 = load i32, ptr @test_count, align 4, !tbaa !5
  %4125 = add nsw i32 %4124, 1
  store i32 %4125, ptr @test_count, align 4, !tbaa !5
  %4126 = load ptr, ptr %7, align 8, !tbaa !9
  %4127 = call i32 @s2n_connection_free(ptr noundef %4126)
  %4128 = icmp eq i32 %4127, -1
  br i1 %4128, label %4129, label %4182

4129:                                             ; preds = %4123
  br label %4130

4130:                                             ; preds = %4129
  br label %4131

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

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

4143:                                             ; preds = %4138
  %4144 = load i32, ptr %97, align 4, !tbaa !5
  %4145 = call ptr @__errno_location() #10
  store i32 %4144, ptr %4145, align 4, !tbaa !5
  %4146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4147 = load i32, ptr @test_count, align 4, !tbaa !5
  %4148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  %4150 = call ptr @s2n_strerror(i32 noundef %4149, ptr noundef @.str.4)
  %4151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call ptr @s2n_strerror_debug(i32 noundef %4152, ptr noundef @.str.4)
  %4154 = call ptr @__errno_location() #10
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  %4156 = call ptr @strerror(i32 noundef %4155) #9
  %4157 = call ptr @__errno_location() #10
  %4158 = load i32, ptr %4157, align 4, !tbaa !5
  %4159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4146, ptr noundef @.str.1, i32 noundef %4147, ptr noundef @.str.34, ptr noundef @.str.3, i32 noundef 321, ptr noundef %4150, ptr noundef %4153, ptr noundef %4156, i32 noundef %4158) #9
  br label %4177

4160:                                             ; preds = %4138, %4131
  %4161 = load i32, ptr %97, align 4, !tbaa !5
  %4162 = call ptr @__errno_location() #10
  store i32 %4161, ptr %4162, align 4, !tbaa !5
  %4163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4164 = load i32, ptr @test_count, align 4, !tbaa !5
  %4165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  %4167 = call ptr @s2n_strerror(i32 noundef %4166, ptr noundef @.str.4)
  %4168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4169 = load i32, ptr %4168, align 4, !tbaa !5
  %4170 = call ptr @s2n_strerror_debug(i32 noundef %4169, ptr noundef @.str.4)
  %4171 = call ptr @__errno_location() #10
  %4172 = load i32, ptr %4171, align 4, !tbaa !5
  %4173 = call ptr @strerror(i32 noundef %4172) #9
  %4174 = call ptr @__errno_location() #10
  %4175 = load i32, ptr %4174, align 4, !tbaa !5
  %4176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4163, ptr noundef @.str.5, i32 noundef %4164, ptr noundef @.str.34, ptr noundef @.str.3, i32 noundef 321, ptr noundef %4167, ptr noundef %4170, ptr noundef %4173, i32 noundef %4175) #9
  br label %4177

4177:                                             ; preds = %4160, %4143
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4178

4178:                                             ; preds = %4177
  br label %4179

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

4180:                                             ; No predecessors!
  br label %4181

4181:                                             ; preds = %4180
  br label %4182

4182:                                             ; preds = %4181, %4123
  br label %4183

4183:                                             ; preds = %4182
  br label %4184

4184:                                             ; preds = %4183
  br label %4185

4185:                                             ; preds = %4184
  %4186 = load i32, ptr @test_count, align 4, !tbaa !5
  %4187 = add nsw i32 %4186, 1
  store i32 %4187, ptr @test_count, align 4, !tbaa !5
  %4188 = call i32 @s2n_io_pair_close_one_end(ptr noundef %78, i32 noundef 0)
  %4189 = icmp eq i32 %4188, -1
  br i1 %4189, label %4190, label %4243

4190:                                             ; preds = %4185
  br label %4191

4191:                                             ; preds = %4190
  br label %4192

4192:                                             ; preds = %4191
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %4193 = call ptr @__errno_location() #10
  %4194 = load i32, ptr %4193, align 4, !tbaa !5
  store i32 %4194, ptr %98, align 4, !tbaa !5
  %4195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4196 = call i32 @s2n_print_stacktrace(ptr noundef %4195)
  %4197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4198 = trunc i8 %4197 to i1
  br i1 %4198, label %4199, label %4221

4199:                                             ; preds = %4192
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = call i32 @fileno(ptr noundef %4200) #9
  %4202 = call i32 @isatty(i32 noundef %4201) #9
  %4203 = icmp ne i32 %4202, 0
  br i1 %4203, label %4204, label %4221

4204:                                             ; preds = %4199
  %4205 = load i32, ptr %98, align 4, !tbaa !5
  %4206 = call ptr @__errno_location() #10
  store i32 %4205, ptr %4206, align 4, !tbaa !5
  %4207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4208 = load i32, ptr @test_count, align 4, !tbaa !5
  %4209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4210 = load i32, ptr %4209, align 4, !tbaa !5
  %4211 = call ptr @s2n_strerror(i32 noundef %4210, ptr noundef @.str.4)
  %4212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4213 = load i32, ptr %4212, align 4, !tbaa !5
  %4214 = call ptr @s2n_strerror_debug(i32 noundef %4213, ptr noundef @.str.4)
  %4215 = call ptr @__errno_location() #10
  %4216 = load i32, ptr %4215, align 4, !tbaa !5
  %4217 = call ptr @strerror(i32 noundef %4216) #9
  %4218 = call ptr @__errno_location() #10
  %4219 = load i32, ptr %4218, align 4, !tbaa !5
  %4220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4207, ptr noundef @.str.1, i32 noundef %4208, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 322, ptr noundef %4211, ptr noundef %4214, ptr noundef %4217, i32 noundef %4219) #9
  br label %4238

4221:                                             ; preds = %4199, %4192
  %4222 = load i32, ptr %98, align 4, !tbaa !5
  %4223 = call ptr @__errno_location() #10
  store i32 %4222, ptr %4223, align 4, !tbaa !5
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = load i32, ptr @test_count, align 4, !tbaa !5
  %4226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4227 = load i32, ptr %4226, align 4, !tbaa !5
  %4228 = call ptr @s2n_strerror(i32 noundef %4227, ptr noundef @.str.4)
  %4229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  %4231 = call ptr @s2n_strerror_debug(i32 noundef %4230, ptr noundef @.str.4)
  %4232 = call ptr @__errno_location() #10
  %4233 = load i32, ptr %4232, align 4, !tbaa !5
  %4234 = call ptr @strerror(i32 noundef %4233) #9
  %4235 = call ptr @__errno_location() #10
  %4236 = load i32, ptr %4235, align 4, !tbaa !5
  %4237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4224, ptr noundef @.str.5, i32 noundef %4225, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 322, ptr noundef %4228, ptr noundef %4231, ptr noundef %4234, i32 noundef %4236) #9
  br label %4238

4238:                                             ; preds = %4221, %4204
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4239

4239:                                             ; preds = %4238
  br label %4240

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

4241:                                             ; No predecessors!
  br label %4242

4242:                                             ; preds = %4241
  br label %4243

4243:                                             ; preds = %4242, %4185
  br label %4244

4244:                                             ; preds = %4243
  br label %4245

4245:                                             ; preds = %4244
  br label %4246

4246:                                             ; preds = %4245
  %4247 = load i32, ptr @test_count, align 4, !tbaa !5
  %4248 = add nsw i32 %4247, 1
  store i32 %4248, ptr @test_count, align 4, !tbaa !5
  %4249 = call i32 @waitpid(i32 noundef -1, ptr noundef %9, i32 noundef 0)
  %4250 = load i32, ptr %10, align 4, !tbaa !5
  %4251 = icmp eq i32 %4249, %4250
  br i1 %4251, label %4305, label %4252

4252:                                             ; preds = %4246
  br label %4253

4253:                                             ; preds = %4252
  br label %4254

4254:                                             ; preds = %4253
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %4255 = call ptr @__errno_location() #10
  %4256 = load i32, ptr %4255, align 4, !tbaa !5
  store i32 %4256, ptr %99, align 4, !tbaa !5
  %4257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4258 = call i32 @s2n_print_stacktrace(ptr noundef %4257)
  %4259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4260 = trunc i8 %4259 to i1
  br i1 %4260, label %4261, label %4283

4261:                                             ; preds = %4254
  %4262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4263 = call i32 @fileno(ptr noundef %4262) #9
  %4264 = call i32 @isatty(i32 noundef %4263) #9
  %4265 = icmp ne i32 %4264, 0
  br i1 %4265, label %4266, label %4283

4266:                                             ; preds = %4261
  %4267 = load i32, ptr %99, align 4, !tbaa !5
  %4268 = call ptr @__errno_location() #10
  store i32 %4267, ptr %4268, align 4, !tbaa !5
  %4269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4270 = load i32, ptr @test_count, align 4, !tbaa !5
  %4271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4272 = load i32, ptr %4271, align 4, !tbaa !5
  %4273 = call ptr @s2n_strerror(i32 noundef %4272, ptr noundef @.str.4)
  %4274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4275 = load i32, ptr %4274, align 4, !tbaa !5
  %4276 = call ptr @s2n_strerror_debug(i32 noundef %4275, ptr noundef @.str.4)
  %4277 = call ptr @__errno_location() #10
  %4278 = load i32, ptr %4277, align 4, !tbaa !5
  %4279 = call ptr @strerror(i32 noundef %4278) #9
  %4280 = call ptr @__errno_location() #10
  %4281 = load i32, ptr %4280, align 4, !tbaa !5
  %4282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4269, ptr noundef @.str.1, i32 noundef %4270, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 325, ptr noundef %4273, ptr noundef %4276, ptr noundef %4279, i32 noundef %4281) #9
  br label %4300

4283:                                             ; preds = %4261, %4254
  %4284 = load i32, ptr %99, align 4, !tbaa !5
  %4285 = call ptr @__errno_location() #10
  store i32 %4284, ptr %4285, align 4, !tbaa !5
  %4286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4287 = load i32, ptr @test_count, align 4, !tbaa !5
  %4288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4289 = load i32, ptr %4288, align 4, !tbaa !5
  %4290 = call ptr @s2n_strerror(i32 noundef %4289, ptr noundef @.str.4)
  %4291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4292 = load i32, ptr %4291, align 4, !tbaa !5
  %4293 = call ptr @s2n_strerror_debug(i32 noundef %4292, ptr noundef @.str.4)
  %4294 = call ptr @__errno_location() #10
  %4295 = load i32, ptr %4294, align 4, !tbaa !5
  %4296 = call ptr @strerror(i32 noundef %4295) #9
  %4297 = call ptr @__errno_location() #10
  %4298 = load i32, ptr %4297, align 4, !tbaa !5
  %4299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4286, ptr noundef @.str.5, i32 noundef %4287, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 325, ptr noundef %4290, ptr noundef %4293, ptr noundef %4296, i32 noundef %4298) #9
  br label %4300

4300:                                             ; preds = %4283, %4266
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %4301

4301:                                             ; preds = %4300
  br label %4302

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

4303:                                             ; No predecessors!
  br label %4304

4304:                                             ; preds = %4303
  br label %4305

4305:                                             ; preds = %4304, %4246
  br label %4306

4306:                                             ; preds = %4305
  br label %4307

4307:                                             ; preds = %4306
  br label %4308

4308:                                             ; preds = %4307
  %4309 = load i32, ptr @test_count, align 4, !tbaa !5
  %4310 = add nsw i32 %4309, 1
  store i32 %4310, ptr @test_count, align 4, !tbaa !5
  %4311 = load i32, ptr %9, align 4, !tbaa !5
  %4312 = icmp eq i32 %4311, 0
  br i1 %4312, label %4366, label %4313

4313:                                             ; preds = %4308
  br label %4314

4314:                                             ; preds = %4313
  br label %4315

4315:                                             ; preds = %4314
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %4316 = call ptr @__errno_location() #10
  %4317 = load i32, ptr %4316, align 4, !tbaa !5
  store i32 %4317, ptr %100, align 4, !tbaa !5
  %4318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4319 = call i32 @s2n_print_stacktrace(ptr noundef %4318)
  %4320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4321 = trunc i8 %4320 to i1
  br i1 %4321, label %4322, label %4344

4322:                                             ; preds = %4315
  %4323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4324 = call i32 @fileno(ptr noundef %4323) #9
  %4325 = call i32 @isatty(i32 noundef %4324) #9
  %4326 = icmp ne i32 %4325, 0
  br i1 %4326, label %4327, label %4344

4327:                                             ; preds = %4322
  %4328 = load i32, ptr %100, align 4, !tbaa !5
  %4329 = call ptr @__errno_location() #10
  store i32 %4328, ptr %4329, align 4, !tbaa !5
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = load i32, ptr @test_count, align 4, !tbaa !5
  %4332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call ptr @s2n_strerror(i32 noundef %4333, ptr noundef @.str.4)
  %4335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  %4337 = call ptr @s2n_strerror_debug(i32 noundef %4336, ptr noundef @.str.4)
  %4338 = call ptr @__errno_location() #10
  %4339 = load i32, ptr %4338, align 4, !tbaa !5
  %4340 = call ptr @strerror(i32 noundef %4339) #9
  %4341 = call ptr @__errno_location() #10
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  %4343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4330, ptr noundef @.str.1, i32 noundef %4331, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 326, ptr noundef %4334, ptr noundef %4337, ptr noundef %4340, i32 noundef %4342) #9
  br label %4361

4344:                                             ; preds = %4322, %4315
  %4345 = load i32, ptr %100, align 4, !tbaa !5
  %4346 = call ptr @__errno_location() #10
  store i32 %4345, ptr %4346, align 4, !tbaa !5
  %4347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4348 = load i32, ptr @test_count, align 4, !tbaa !5
  %4349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4350 = load i32, ptr %4349, align 4, !tbaa !5
  %4351 = call ptr @s2n_strerror(i32 noundef %4350, ptr noundef @.str.4)
  %4352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4353 = load i32, ptr %4352, align 4, !tbaa !5
  %4354 = call ptr @s2n_strerror_debug(i32 noundef %4353, ptr noundef @.str.4)
  %4355 = call ptr @__errno_location() #10
  %4356 = load i32, ptr %4355, align 4, !tbaa !5
  %4357 = call ptr @strerror(i32 noundef %4356) #9
  %4358 = call ptr @__errno_location() #10
  %4359 = load i32, ptr %4358, align 4, !tbaa !5
  %4360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4347, ptr noundef @.str.5, i32 noundef %4348, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 326, ptr noundef %4351, ptr noundef %4354, ptr noundef %4357, i32 noundef %4359) #9
  br label %4361

4361:                                             ; preds = %4344, %4327
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %4362

4362:                                             ; preds = %4361
  br label %4363

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

4364:                                             ; No predecessors!
  br label %4365

4365:                                             ; preds = %4364
  br label %4366

4366:                                             ; preds = %4365, %4308
  br label %4367

4367:                                             ; preds = %4366
  br label %4368

4368:                                             ; preds = %4367
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #9
  %4369 = call i32 @s2n_config_ptr_free(ptr noundef %83)
  %4370 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  store i32 %4369, ptr %4370, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  br label %4371

4371:                                             ; preds = %4368
  %4372 = load i32, ptr @test_count, align 4, !tbaa !5
  %4373 = add nsw i32 %4372, 1
  store i32 %4373, ptr @test_count, align 4, !tbaa !5
  %4374 = call i32 @cleanup(ptr noundef %11, ptr noundef %12, ptr noundef %13)
  %4375 = getelementptr inbounds %struct.s2n_result, ptr %102, i32 0, i32 0
  store i32 %4374, ptr %4375, align 4
  %4376 = getelementptr inbounds %struct.s2n_result, ptr %102, i32 0, i32 0
  %4377 = load i32, ptr %4376, align 4
  %4378 = call zeroext i1 @s2n_result_is_ok(i32 %4377)
  br i1 %4378, label %4432, label %4379

4379:                                             ; preds = %4371
  br label %4380

4380:                                             ; preds = %4379
  br label %4381

4381:                                             ; preds = %4380
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  %4382 = call ptr @__errno_location() #10
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  store i32 %4383, ptr %103, align 4, !tbaa !5
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4385 = call i32 @s2n_print_stacktrace(ptr noundef %4384)
  %4386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4387 = trunc i8 %4386 to i1
  br i1 %4387, label %4388, label %4410

4388:                                             ; preds = %4381
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = call i32 @fileno(ptr noundef %4389) #9
  %4391 = call i32 @isatty(i32 noundef %4390) #9
  %4392 = icmp ne i32 %4391, 0
  br i1 %4392, label %4393, label %4410

4393:                                             ; preds = %4388
  %4394 = load i32, ptr %103, align 4, !tbaa !5
  %4395 = call ptr @__errno_location() #10
  store i32 %4394, ptr %4395, align 4, !tbaa !5
  %4396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4397 = load i32, ptr @test_count, align 4, !tbaa !5
  %4398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4399 = load i32, ptr %4398, align 4, !tbaa !5
  %4400 = call ptr @s2n_strerror(i32 noundef %4399, ptr noundef @.str.4)
  %4401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4402 = load i32, ptr %4401, align 4, !tbaa !5
  %4403 = call ptr @s2n_strerror_debug(i32 noundef %4402, ptr noundef @.str.4)
  %4404 = call ptr @__errno_location() #10
  %4405 = load i32, ptr %4404, align 4, !tbaa !5
  %4406 = call ptr @strerror(i32 noundef %4405) #9
  %4407 = call ptr @__errno_location() #10
  %4408 = load i32, ptr %4407, align 4, !tbaa !5
  %4409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4396, ptr noundef @.str.1, i32 noundef %4397, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 330, ptr noundef %4400, ptr noundef %4403, ptr noundef %4406, i32 noundef %4408) #9
  br label %4427

4410:                                             ; preds = %4388, %4381
  %4411 = load i32, ptr %103, align 4, !tbaa !5
  %4412 = call ptr @__errno_location() #10
  store i32 %4411, ptr %4412, align 4, !tbaa !5
  %4413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4414 = load i32, ptr @test_count, align 4, !tbaa !5
  %4415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call ptr @s2n_strerror(i32 noundef %4416, ptr noundef @.str.4)
  %4418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call ptr @s2n_strerror_debug(i32 noundef %4419, ptr noundef @.str.4)
  %4421 = call ptr @__errno_location() #10
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call ptr @strerror(i32 noundef %4422) #9
  %4424 = call ptr @__errno_location() #10
  %4425 = load i32, ptr %4424, align 4, !tbaa !5
  %4426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4413, ptr noundef @.str.5, i32 noundef %4414, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 330, ptr noundef %4417, ptr noundef %4420, ptr noundef %4423, i32 noundef %4425) #9
  br label %4427

4427:                                             ; preds = %4410, %4393
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %4428

4428:                                             ; preds = %4427
  br label %4429

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

4430:                                             ; No predecessors!
  br label %4431

4431:                                             ; preds = %4430
  br label %4432

4432:                                             ; preds = %4431, %4371
  br label %4433

4433:                                             ; preds = %4432
  br label %4434

4434:                                             ; preds = %4433
  br label %4435

4435:                                             ; preds = %4434
  br label %4436

4436:                                             ; preds = %4435
  %4437 = call i32 @s2n_cleanup()
  %4438 = icmp eq i32 %4437, -1
  br i1 %4438, label %4439, label %4492

4439:                                             ; preds = %4436
  br label %4440

4440:                                             ; preds = %4439
  br label %4441

4441:                                             ; preds = %4440
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #9
  %4442 = call ptr @__errno_location() #10
  %4443 = load i32, ptr %4442, align 4, !tbaa !5
  store i32 %4443, ptr %104, align 4, !tbaa !5
  %4444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4445 = call i32 @s2n_print_stacktrace(ptr noundef %4444)
  %4446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4447 = trunc i8 %4446 to i1
  br i1 %4447, label %4448, label %4470

4448:                                             ; preds = %4441
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = call i32 @fileno(ptr noundef %4449) #9
  %4451 = call i32 @isatty(i32 noundef %4450) #9
  %4452 = icmp ne i32 %4451, 0
  br i1 %4452, label %4453, label %4470

4453:                                             ; preds = %4448
  %4454 = load i32, ptr %104, align 4, !tbaa !5
  %4455 = call ptr @__errno_location() #10
  store i32 %4454, ptr %4455, align 4, !tbaa !5
  %4456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4457 = load i32, ptr @test_count, align 4, !tbaa !5
  %4458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4459 = load i32, ptr %4458, align 4, !tbaa !5
  %4460 = call ptr @s2n_strerror(i32 noundef %4459, ptr noundef @.str.4)
  %4461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  %4463 = call ptr @s2n_strerror_debug(i32 noundef %4462, ptr noundef @.str.4)
  %4464 = call ptr @__errno_location() #10
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  %4466 = call ptr @strerror(i32 noundef %4465) #9
  %4467 = call ptr @__errno_location() #10
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  %4469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4456, ptr noundef @.str.1, i32 noundef %4457, ptr noundef @.str.45, ptr noundef @.str.3, i32 noundef 332, ptr noundef %4460, ptr noundef %4463, ptr noundef %4466, i32 noundef %4468) #9
  br label %4487

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

4487:                                             ; preds = %4470, %4453
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  br label %4488

4488:                                             ; preds = %4487
  br label %4489

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

4490:                                             ; No predecessors!
  br label %4491

4491:                                             ; preds = %4490
  br label %4492

4492:                                             ; preds = %4491, %4436
  br label %4493

4493:                                             ; preds = %4492
  br label %4494

4494:                                             ; preds = %4493
  br label %4495

4495:                                             ; preds = %4494
  br label %4496

4496:                                             ; preds = %4495
  %4497 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %4498 = icmp eq i32 %4497, -1
  br i1 %4498, label %4499, label %4552

4499:                                             ; preds = %4496
  br label %4500

4500:                                             ; preds = %4499
  br label %4501

4501:                                             ; preds = %4500
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #9
  %4502 = call ptr @__errno_location() #10
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  store i32 %4503, ptr %105, align 4, !tbaa !5
  %4504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4505 = call i32 @s2n_print_stacktrace(ptr noundef %4504)
  %4506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4507 = trunc i8 %4506 to i1
  br i1 %4507, label %4508, label %4530

4508:                                             ; preds = %4501
  %4509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4510 = call i32 @fileno(ptr noundef %4509) #9
  %4511 = call i32 @isatty(i32 noundef %4510) #9
  %4512 = icmp ne i32 %4511, 0
  br i1 %4512, label %4513, label %4530

4513:                                             ; preds = %4508
  %4514 = load i32, ptr %105, align 4, !tbaa !5
  %4515 = call ptr @__errno_location() #10
  store i32 %4514, ptr %4515, align 4, !tbaa !5
  %4516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4517 = load i32, ptr @test_count, align 4, !tbaa !5
  %4518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  %4520 = call ptr @s2n_strerror(i32 noundef %4519, ptr noundef @.str.4)
  %4521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4522 = load i32, ptr %4521, align 4, !tbaa !5
  %4523 = call ptr @s2n_strerror_debug(i32 noundef %4522, ptr noundef @.str.4)
  %4524 = call ptr @__errno_location() #10
  %4525 = load i32, ptr %4524, align 4, !tbaa !5
  %4526 = call ptr @strerror(i32 noundef %4525) #9
  %4527 = call ptr @__errno_location() #10
  %4528 = load i32, ptr %4527, align 4, !tbaa !5
  %4529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4516, ptr noundef @.str.1, i32 noundef %4517, ptr noundef @.str.46, ptr noundef @.str.3, i32 noundef 332, ptr noundef %4520, ptr noundef %4523, ptr noundef %4526, i32 noundef %4528) #9
  br label %4547

4530:                                             ; preds = %4508, %4501
  %4531 = load i32, ptr %105, align 4, !tbaa !5
  %4532 = call ptr @__errno_location() #10
  store i32 %4531, ptr %4532, align 4, !tbaa !5
  %4533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4534 = load i32, ptr @test_count, align 4, !tbaa !5
  %4535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4536 = load i32, ptr %4535, align 4, !tbaa !5
  %4537 = call ptr @s2n_strerror(i32 noundef %4536, ptr noundef @.str.4)
  %4538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4539 = load i32, ptr %4538, align 4, !tbaa !5
  %4540 = call ptr @s2n_strerror_debug(i32 noundef %4539, ptr noundef @.str.4)
  %4541 = call ptr @__errno_location() #10
  %4542 = load i32, ptr %4541, align 4, !tbaa !5
  %4543 = call ptr @strerror(i32 noundef %4542) #9
  %4544 = call ptr @__errno_location() #10
  %4545 = load i32, ptr %4544, align 4, !tbaa !5
  %4546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4533, ptr noundef @.str.5, i32 noundef %4534, ptr noundef @.str.46, ptr noundef @.str.3, i32 noundef 332, ptr noundef %4537, ptr noundef %4540, ptr noundef %4543, i32 noundef %4545) #9
  br label %4547

4547:                                             ; preds = %4530, %4513
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %4548

4548:                                             ; preds = %4547
  br label %4549

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

4550:                                             ; No predecessors!
  br label %4551

4551:                                             ; preds = %4550
  br label %4552

4552:                                             ; preds = %4551, %4496
  br label %4553

4553:                                             ; preds = %4552
  br label %4554

4554:                                             ; preds = %4553
  %4555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4556 = trunc i8 %4555 to i1
  br i1 %4556, label %4557, label %4573

4557:                                             ; preds = %4554
  %4558 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4559 = call i32 @fileno(ptr noundef %4558) #9
  %4560 = call i32 @isatty(i32 noundef %4559) #9
  %4561 = icmp ne i32 %4560, 0
  br i1 %4561, label %4562, label %4573

4562:                                             ; preds = %4557
  %4563 = load i32, ptr @test_count, align 4, !tbaa !5
  %4564 = icmp ne i32 %4563, 0
  br i1 %4564, label %4565, label %4569

4565:                                             ; preds = %4562
  %4566 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4567 = load i32, ptr @test_count, align 4, !tbaa !5
  %4568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4566, ptr noundef @.str.47, i32 noundef %4567) #9
  br label %4572

4569:                                             ; preds = %4562
  %4570 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4570, ptr noundef @.str.48) #9
  br label %4572

4572:                                             ; preds = %4569, %4565
  br label %4584

4573:                                             ; preds = %4557, %4554
  %4574 = load i32, ptr @test_count, align 4, !tbaa !5
  %4575 = icmp ne i32 %4574, 0
  br i1 %4575, label %4576, label %4580

4576:                                             ; preds = %4573
  %4577 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4578 = load i32, ptr @test_count, align 4, !tbaa !5
  %4579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4577, ptr noundef @.str.49, i32 noundef %4578) #9
  br label %4583

4580:                                             ; preds = %4573
  %4581 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4581, ptr noundef @.str.50) #9
  br label %4583

4583:                                             ; preds = %4580, %4576
  br label %4584

4584:                                             ; preds = %4583, %4572
  store i32 0, ptr %3, align 4
  store i32 1, ptr %41, align 4
  br label %4589

4585:                                             ; No predecessors!
  br label %4586

4586:                                             ; preds = %4585
  br label %4587

4587:                                             ; preds = %4586
  br label %4588

4588:                                             ; preds = %4587
  store i32 0, ptr %3, align 4
  store i32 1, ptr %41, align 4
  br label %4589

4589:                                             ; preds = %4588, %4584
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 65535, ptr %6) #9
  %4590 = load i32, ptr %3, align 4
  ret i32 %4590
}

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

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

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

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_io_pair_init(ptr noundef) #2

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

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

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

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

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

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

declare void @s2n_debug_info_reset() #2

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

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

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


; 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 }
%struct.alert_ctx = type { i32, i32, i32, i8, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@.str = external hidden unnamed_addr constant [9 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [84 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
@stdout = external local_unnamed_addr global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [54 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 [8 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

declare i32 @s2n_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

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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

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

31:                                               ; preds = %24
  %32 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33 = tail call i32 @fileno(ptr noundef %32) #10
  %34 = tail call i32 @isatty(i32 noundef %33) #10
  %.not266 = icmp eq i32 %34, 0
  br i1 %.not266, label %35, label %36

35:                                               ; preds = %31, %24
  br label %36

36:                                               ; preds = %31, %35
  %.str.5.sink = phi ptr [ @.str.5, %35 ], [ @.str.1, %31 ]
  store i32 %26, ptr %25, align 4, !tbaa !5
  %37 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38 = load i32, ptr @test_count, align 4, !tbaa !5
  %39 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %40 = load i32, ptr %39, align 4, !tbaa !5
  %41 = tail call ptr @s2n_strerror(i32 noundef %40, ptr noundef nonnull @.str.4) #10
  %42 = load i32, ptr %39, align 4, !tbaa !5
  %43 = tail call ptr @s2n_strerror_debug(i32 noundef %42, ptr noundef nonnull @.str.4) #10
  %44 = load i32, ptr %25, align 4, !tbaa !5
  %45 = tail call ptr @strerror(i32 noundef %44) #10
  %46 = load i32, ptr %25, align 4, !tbaa !5
  %47 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %37, ptr noundef nonnull %.str.5.sink, i32 noundef %38, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.3, i32 noundef 150, ptr noundef %41, ptr noundef %43, ptr noundef %45, i32 noundef %46) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

48:                                               ; preds = %2
  %49 = load i32, ptr @test_count, align 4, !tbaa !5
  %50 = add nsw i32 %49, 1
  store i32 %50, ptr @test_count, align 4, !tbaa !5
  %51 = tail call i32 @s2n_enable_atexit() #10
  %52 = icmp eq i32 %51, -1
  br i1 %52, label %53, label %77

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

60:                                               ; preds = %53
  %61 = load ptr, ptr @stderr, align 8, !tbaa !9
  %62 = tail call i32 @fileno(ptr noundef %61) #10
  %63 = tail call i32 @isatty(i32 noundef %62) #10
  %.not265 = icmp eq i32 %63, 0
  br i1 %.not265, label %64, label %65

64:                                               ; preds = %60, %53
  br label %65

65:                                               ; preds = %60, %64
  %.str.5.sink289 = phi ptr [ @.str.5, %64 ], [ @.str.1, %60 ]
  store i32 %55, ptr %54, align 4, !tbaa !5
  %66 = load ptr, ptr @stderr, align 8, !tbaa !9
  %67 = load i32, ptr @test_count, align 4, !tbaa !5
  %68 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %69 = load i32, ptr %68, align 4, !tbaa !5
  %70 = tail call ptr @s2n_strerror(i32 noundef %69, ptr noundef nonnull @.str.4) #10
  %71 = load i32, ptr %68, align 4, !tbaa !5
  %72 = tail call ptr @s2n_strerror_debug(i32 noundef %71, ptr noundef nonnull @.str.4) #10
  %73 = load i32, ptr %54, align 4, !tbaa !5
  %74 = tail call ptr @strerror(i32 noundef %73) #10
  %75 = load i32, ptr %54, align 4, !tbaa !5
  %76 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %66, ptr noundef nonnull %.str.5.sink289, i32 noundef %67, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.3, i32 noundef 150, ptr noundef %70, ptr noundef %72, ptr noundef %74, i32 noundef %75) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

77:                                               ; preds = %48
  %78 = tail call i32 @s2n_init() #10
  %79 = icmp eq i32 %78, -1
  br i1 %79, label %80, label %104

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

87:                                               ; preds = %80
  %88 = load ptr, ptr @stderr, align 8, !tbaa !9
  %89 = tail call i32 @fileno(ptr noundef %88) #10
  %90 = tail call i32 @isatty(i32 noundef %89) #10
  %.not264 = icmp eq i32 %90, 0
  br i1 %.not264, label %91, label %92

91:                                               ; preds = %87, %80
  br label %92

92:                                               ; preds = %87, %91
  %.str.5.sink300 = phi ptr [ @.str.5, %91 ], [ @.str.1, %87 ]
  store i32 %82, ptr %81, align 4, !tbaa !5
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = load i32, ptr @test_count, align 4, !tbaa !5
  %95 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %96 = load i32, ptr %95, align 4, !tbaa !5
  %97 = tail call ptr @s2n_strerror(i32 noundef %96, ptr noundef nonnull @.str.4) #10
  %98 = load i32, ptr %95, align 4, !tbaa !5
  %99 = tail call ptr @s2n_strerror_debug(i32 noundef %98, ptr noundef nonnull @.str.4) #10
  %100 = load i32, ptr %81, align 4, !tbaa !5
  %101 = tail call ptr @strerror(i32 noundef %100) #10
  %102 = load i32, ptr %81, align 4, !tbaa !5
  %103 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %93, ptr noundef nonnull %.str.5.sink300, i32 noundef %94, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.3, i32 noundef 150, ptr noundef %97, ptr noundef %99, ptr noundef %101, i32 noundef %102) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

104:                                              ; preds = %77
  %105 = tail call ptr @signal(i32 noundef 13, ptr noundef nonnull inttoptr (i64 1 to ptr)) #10
  %106 = load i32, ptr @test_count, align 4, !tbaa !5
  %107 = add nsw i32 %106, 1
  store i32 %107, ptr @test_count, align 4, !tbaa !5
  %108 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #14
  store ptr %108, ptr %6, align 8, !tbaa !9
  %109 = icmp eq ptr %108, null
  br i1 %109, label %110, label %134

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

117:                                              ; preds = %110
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = tail call i32 @fileno(ptr noundef %118) #10
  %120 = tail call i32 @isatty(i32 noundef %119) #10
  %.not263 = icmp eq i32 %120, 0
  br i1 %.not263, label %121, label %122

121:                                              ; preds = %117, %110
  br label %122

122:                                              ; preds = %117, %121
  %.str.5.sink311 = phi ptr [ @.str.5, %121 ], [ @.str.1, %117 ]
  store i32 %112, ptr %111, align 4, !tbaa !5
  %123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %124 = load i32, ptr @test_count, align 4, !tbaa !5
  %125 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %126 = load i32, ptr %125, align 4, !tbaa !5
  %127 = tail call ptr @s2n_strerror(i32 noundef %126, ptr noundef nonnull @.str.4) #10
  %128 = load i32, ptr %125, align 4, !tbaa !5
  %129 = tail call ptr @s2n_strerror_debug(i32 noundef %128, ptr noundef nonnull @.str.4) #10
  %130 = load i32, ptr %111, align 4, !tbaa !5
  %131 = tail call ptr @strerror(i32 noundef %130) #10
  %132 = load i32, ptr %111, align 4, !tbaa !5
  %133 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %123, ptr noundef nonnull %.str.5.sink311, i32 noundef %124, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.3, i32 noundef 155, ptr noundef %127, ptr noundef %129, ptr noundef %131, i32 noundef %132) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

134:                                              ; preds = %104
  %135 = add nsw i32 %106, 2
  store i32 %135, ptr @test_count, align 4, !tbaa !5
  %136 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #14
  store ptr %136, ptr %7, align 8, !tbaa !9
  %137 = icmp eq ptr %136, null
  br i1 %137, label %138, label %162

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

145:                                              ; preds = %138
  %146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %147 = tail call i32 @fileno(ptr noundef %146) #10
  %148 = tail call i32 @isatty(i32 noundef %147) #10
  %.not262 = icmp eq i32 %148, 0
  br i1 %.not262, label %149, label %150

149:                                              ; preds = %145, %138
  br label %150

150:                                              ; preds = %145, %149
  %.str.5.sink322 = phi ptr [ @.str.5, %149 ], [ @.str.1, %145 ]
  store i32 %140, ptr %139, align 4, !tbaa !5
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = tail call ptr @s2n_strerror(i32 noundef %154, ptr noundef nonnull @.str.4) #10
  %156 = load i32, ptr %153, align 4, !tbaa !5
  %157 = tail call ptr @s2n_strerror_debug(i32 noundef %156, ptr noundef nonnull @.str.4) #10
  %158 = load i32, ptr %139, align 4, !tbaa !5
  %159 = tail call ptr @strerror(i32 noundef %158) #10
  %160 = load i32, ptr %139, align 4, !tbaa !5
  %161 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %151, ptr noundef nonnull %.str.5.sink322, i32 noundef %152, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.3, i32 noundef 156, ptr noundef %155, ptr noundef %157, ptr noundef %159, i32 noundef %160) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

162:                                              ; preds = %134
  %163 = add nsw i32 %106, 3
  store i32 %163, ptr @test_count, align 4, !tbaa !5
  %164 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.13, ptr noundef nonnull %108, i64 noundef 12000) #10
  %165 = icmp eq i32 %164, -1
  br i1 %165, label %166, label %190

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

173:                                              ; preds = %166
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = tail call i32 @fileno(ptr noundef %174) #10
  %176 = tail call i32 @isatty(i32 noundef %175) #10
  %.not261 = icmp eq i32 %176, 0
  br i1 %.not261, label %177, label %178

177:                                              ; preds = %173, %166
  br label %178

178:                                              ; preds = %173, %177
  %.str.5.sink333 = phi ptr [ @.str.5, %177 ], [ @.str.1, %173 ]
  store i32 %168, ptr %167, align 4, !tbaa !5
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = load i32, ptr @test_count, align 4, !tbaa !5
  %181 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = tail call ptr @s2n_strerror(i32 noundef %182, ptr noundef nonnull @.str.4) #10
  %184 = load i32, ptr %181, align 4, !tbaa !5
  %185 = tail call ptr @s2n_strerror_debug(i32 noundef %184, ptr noundef nonnull @.str.4) #10
  %186 = load i32, ptr %167, align 4, !tbaa !5
  %187 = tail call ptr @strerror(i32 noundef %186) #10
  %188 = load i32, ptr %167, align 4, !tbaa !5
  %189 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %179, ptr noundef nonnull %.str.5.sink333, i32 noundef %180, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.3, i32 noundef 157, ptr noundef %183, ptr noundef %185, ptr noundef %187, i32 noundef %188) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

190:                                              ; preds = %162
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr @test_count, align 4, !tbaa !5
  %193 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.15, ptr noundef nonnull %136, i64 noundef 12000) #10
  %194 = icmp eq i32 %193, -1
  br i1 %194, label %195, label %219

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

202:                                              ; preds = %195
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = tail call i32 @fileno(ptr noundef %203) #10
  %205 = tail call i32 @isatty(i32 noundef %204) #10
  %.not260 = icmp eq i32 %205, 0
  br i1 %.not260, label %206, label %207

206:                                              ; preds = %202, %195
  br label %207

207:                                              ; preds = %202, %206
  %.str.5.sink344 = phi ptr [ @.str.5, %206 ], [ @.str.1, %202 ]
  store i32 %197, ptr %196, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = tail call ptr @s2n_strerror(i32 noundef %211, ptr noundef nonnull @.str.4) #10
  %213 = load i32, ptr %210, align 4, !tbaa !5
  %214 = tail call ptr @s2n_strerror_debug(i32 noundef %213, ptr noundef nonnull @.str.4) #10
  %215 = load i32, ptr %196, align 4, !tbaa !5
  %216 = tail call ptr @strerror(i32 noundef %215) #10
  %217 = load i32, ptr %196, align 4, !tbaa !5
  %218 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %208, ptr noundef nonnull %.str.5.sink344, i32 noundef %209, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.3, i32 noundef 158, ptr noundef %212, ptr noundef %214, ptr noundef %216, i32 noundef %217) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

219:                                              ; preds = %190
  %220 = load i32, ptr @test_count, align 4, !tbaa !5
  %221 = add nsw i32 %220, 1
  store i32 %221, ptr @test_count, align 4, !tbaa !5
  %222 = tail call ptr @s2n_cert_chain_and_key_new() #10
  store ptr %222, ptr %8, align 8, !tbaa !9
  %223 = icmp eq ptr %222, null
  br i1 %223, label %224, label %248

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

231:                                              ; preds = %224
  %232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %233 = tail call i32 @fileno(ptr noundef %232) #10
  %234 = tail call i32 @isatty(i32 noundef %233) #10
  %.not259 = icmp eq i32 %234, 0
  br i1 %.not259, label %235, label %236

235:                                              ; preds = %231, %224
  br label %236

236:                                              ; preds = %231, %235
  %.str.5.sink355 = phi ptr [ @.str.5, %235 ], [ @.str.1, %231 ]
  store i32 %226, ptr %225, align 4, !tbaa !5
  %237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %238 = load i32, ptr @test_count, align 4, !tbaa !5
  %239 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = tail call ptr @s2n_strerror(i32 noundef %240, ptr noundef nonnull @.str.4) #10
  %242 = load i32, ptr %239, align 4, !tbaa !5
  %243 = tail call ptr @s2n_strerror_debug(i32 noundef %242, ptr noundef nonnull @.str.4) #10
  %244 = load i32, ptr %225, align 4, !tbaa !5
  %245 = tail call ptr @strerror(i32 noundef %244) #10
  %246 = load i32, ptr %225, align 4, !tbaa !5
  %247 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %237, ptr noundef nonnull %.str.5.sink355, i32 noundef %238, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.3, i32 noundef 159, ptr noundef %241, ptr noundef %243, ptr noundef %245, i32 noundef %246) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

248:                                              ; preds = %219
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = add nsw i32 %249, 1
  store i32 %250, ptr @test_count, align 4, !tbaa !5
  %251 = tail call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %222, ptr noundef nonnull %108, ptr noundef nonnull %136) #10
  %252 = icmp eq i32 %251, -1
  br i1 %252, label %253, label %277

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

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

264:                                              ; preds = %260, %253
  br label %265

265:                                              ; preds = %260, %264
  %.str.5.sink366 = phi ptr [ @.str.5, %264 ], [ @.str.1, %260 ]
  store i32 %255, ptr %254, align 4, !tbaa !5
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = tail call ptr @s2n_strerror(i32 noundef %269, ptr noundef nonnull @.str.4) #10
  %271 = load i32, ptr %268, align 4, !tbaa !5
  %272 = tail call ptr @s2n_strerror_debug(i32 noundef %271, ptr noundef nonnull @.str.4) #10
  %273 = load i32, ptr %254, align 4, !tbaa !5
  %274 = tail call ptr @strerror(i32 noundef %273) #10
  %275 = load i32, ptr %254, align 4, !tbaa !5
  %276 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %266, ptr noundef nonnull %.str.5.sink366, i32 noundef %267, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 160, ptr noundef %270, ptr noundef %272, ptr noundef %274, i32 noundef %275) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

277:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr @test_count, align 4, !tbaa !5
  %280 = call i32 @s2n_io_pair_init(ptr noundef nonnull %9) #10
  %281 = icmp eq i32 %280, -1
  br i1 %281, label %282, label %306

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

289:                                              ; preds = %282
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = call i32 @fileno(ptr noundef %290) #10
  %292 = call i32 @isatty(i32 noundef %291) #10
  %.not257 = icmp eq i32 %292, 0
  br i1 %.not257, label %293, label %294

293:                                              ; preds = %289, %282
  br label %294

294:                                              ; preds = %289, %293
  %.str.5.sink377 = phi ptr [ @.str.5, %293 ], [ @.str.1, %289 ]
  store i32 %284, ptr %283, align 4, !tbaa !5
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = load i32, ptr @test_count, align 4, !tbaa !5
  %297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call ptr @s2n_strerror(i32 noundef %298, ptr noundef nonnull @.str.4) #10
  %300 = load i32, ptr %297, align 4, !tbaa !5
  %301 = call ptr @s2n_strerror_debug(i32 noundef %300, ptr noundef nonnull @.str.4) #10
  %302 = load i32, ptr %283, align 4, !tbaa !5
  %303 = call ptr @strerror(i32 noundef %302) #10
  %304 = load i32, ptr %283, align 4, !tbaa !5
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %295, ptr noundef nonnull %.str.5.sink377, i32 noundef %296, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 166, ptr noundef %299, ptr noundef %301, ptr noundef %303, i32 noundef %304) #12
  call void @exit(i32 noundef 1) #13
  unreachable

306:                                              ; preds = %277
  %307 = call i32 @fork() #10
  %308 = icmp eq i32 %307, 0
  br i1 %308, label %309, label %369

309:                                              ; preds = %306
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = add nsw i32 %310, 1
  store i32 %311, ptr @test_count, align 4, !tbaa !5
  %312 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %9, i32 noundef 0) #10
  %313 = icmp eq i32 %312, -1
  br i1 %313, label %314, label %338

314:                                              ; preds = %309
  %315 = tail call ptr @__errno_location() #11
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = call i32 @s2n_print_stacktrace(ptr noundef %317) #10
  %319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %320 = trunc nuw i8 %319 to i1
  br i1 %320, label %321, label %325

321:                                              ; preds = %314
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = call i32 @fileno(ptr noundef %322) #10
  %324 = call i32 @isatty(i32 noundef %323) #10
  %.not256 = icmp eq i32 %324, 0
  br i1 %.not256, label %325, label %326

325:                                              ; preds = %321, %314
  br label %326

326:                                              ; preds = %321, %325
  %.str.5.sink388 = phi ptr [ @.str.5, %325 ], [ @.str.1, %321 ]
  store i32 %316, ptr %315, align 4, !tbaa !5
  %327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %328 = load i32, ptr @test_count, align 4, !tbaa !5
  %329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = call ptr @s2n_strerror(i32 noundef %330, ptr noundef nonnull @.str.4) #10
  %332 = load i32, ptr %329, align 4, !tbaa !5
  %333 = call ptr @s2n_strerror_debug(i32 noundef %332, ptr noundef nonnull @.str.4) #10
  %334 = load i32, ptr %315, align 4, !tbaa !5
  %335 = call ptr @strerror(i32 noundef %334) #10
  %336 = load i32, ptr %315, align 4, !tbaa !5
  %337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %327, ptr noundef nonnull %.str.5.sink388, i32 noundef %328, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 172, ptr noundef %331, ptr noundef %333, ptr noundef %335, i32 noundef %336) #12
  call void @exit(i32 noundef 1) #13
  unreachable

338:                                              ; preds = %309
  %339 = load i32, ptr @test_count, align 4, !tbaa !5
  %340 = add nsw i32 %339, 1
  store i32 %340, ptr @test_count, align 4, !tbaa !5
  %341 = call i32 @cleanup(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8)
  %342 = call zeroext i1 @s2n_result_is_ok(i32 %341)
  br i1 %342, label %367, label %343

343:                                              ; preds = %338
  %344 = tail call ptr @__errno_location() #11
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 @s2n_print_stacktrace(ptr noundef %346) #10
  %348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %349 = trunc nuw i8 %348 to i1
  br i1 %349, label %350, label %354

350:                                              ; preds = %343
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = call i32 @fileno(ptr noundef %351) #10
  %353 = call i32 @isatty(i32 noundef %352) #10
  %.not = icmp eq i32 %353, 0
  br i1 %.not, label %354, label %355

354:                                              ; preds = %350, %343
  br label %355

355:                                              ; preds = %350, %354
  %.str.5.sink399 = phi ptr [ @.str.5, %354 ], [ @.str.1, %350 ]
  store i32 %345, ptr %344, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror(i32 noundef %359, ptr noundef nonnull @.str.4) #10
  %361 = load i32, ptr %358, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror_debug(i32 noundef %361, ptr noundef nonnull @.str.4) #10
  %363 = load i32, ptr %344, align 4, !tbaa !5
  %364 = call ptr @strerror(i32 noundef %363) #10
  %365 = load i32, ptr %344, align 4, !tbaa !5
  %366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef nonnull %.str.5.sink399, i32 noundef %357, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 174, ptr noundef %360, ptr noundef %362, ptr noundef %364, i32 noundef %365) #12
  call void @exit(i32 noundef 1) #13
  unreachable

367:                                              ; preds = %338
  %368 = call i32 @mock_client(ptr noundef nonnull %9, i32 noundef 1, i32 noundef 0)
  br label %369

369:                                              ; preds = %367, %306
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  %370 = call ptr @s2n_config_new() #10
  store ptr %370, ptr %10, align 8, !tbaa !9
  %371 = load i32, ptr @test_count, align 4, !tbaa !5
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr @test_count, align 4, !tbaa !5
  %373 = load ptr, ptr %8, align 8, !tbaa !9
  %374 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %370, ptr noundef %373) #10
  %375 = icmp eq i32 %374, -1
  br i1 %375, label %376, label %400

376:                                              ; preds = %369
  %377 = tail call ptr @__errno_location() #11
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = call i32 @s2n_print_stacktrace(ptr noundef %379) #10
  %381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %382 = trunc nuw i8 %381 to i1
  br i1 %382, label %383, label %387

383:                                              ; preds = %376
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = call i32 @fileno(ptr noundef %384) #10
  %386 = call i32 @isatty(i32 noundef %385) #10
  %.not255 = icmp eq i32 %386, 0
  br i1 %.not255, label %387, label %388

387:                                              ; preds = %383, %376
  br label %388

388:                                              ; preds = %383, %387
  %.str.5.sink410 = phi ptr [ @.str.5, %387 ], [ @.str.1, %383 ]
  store i32 %378, ptr %377, align 4, !tbaa !5
  %389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %390 = load i32, ptr @test_count, align 4, !tbaa !5
  %391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %392 = load i32, ptr %391, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror(i32 noundef %392, ptr noundef nonnull @.str.4) #10
  %394 = load i32, ptr %391, align 4, !tbaa !5
  %395 = call ptr @s2n_strerror_debug(i32 noundef %394, ptr noundef nonnull @.str.4) #10
  %396 = load i32, ptr %377, align 4, !tbaa !5
  %397 = call ptr @strerror(i32 noundef %396) #10
  %398 = load i32, ptr %377, align 4, !tbaa !5
  %399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %389, ptr noundef nonnull %.str.5.sink410, i32 noundef %390, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 180, ptr noundef %393, ptr noundef %395, ptr noundef %397, i32 noundef %398) #12
  call void @exit(i32 noundef 1) #13
  unreachable

400:                                              ; preds = %369
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = add nsw i32 %401, 1
  store i32 %402, ptr @test_count, align 4, !tbaa !5
  %403 = load ptr, ptr %10, align 8, !tbaa !9
  %404 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %403, ptr noundef nonnull @.str) #10
  %405 = icmp eq i32 %404, -1
  br i1 %405, label %406, label %430

406:                                              ; preds = %400
  %407 = tail call ptr @__errno_location() #11
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = call i32 @s2n_print_stacktrace(ptr noundef %409) #10
  %411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %412 = trunc nuw i8 %411 to i1
  br i1 %412, label %413, label %417

413:                                              ; preds = %406
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = call i32 @fileno(ptr noundef %414) #10
  %416 = call i32 @isatty(i32 noundef %415) #10
  %.not254 = icmp eq i32 %416, 0
  br i1 %.not254, label %417, label %418

417:                                              ; preds = %413, %406
  br label %418

418:                                              ; preds = %413, %417
  %.str.5.sink421 = phi ptr [ @.str.5, %417 ], [ @.str.1, %413 ]
  store i32 %408, ptr %407, align 4, !tbaa !5
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = load i32, ptr @test_count, align 4, !tbaa !5
  %421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror(i32 noundef %422, ptr noundef nonnull @.str.4) #10
  %424 = load i32, ptr %421, align 4, !tbaa !5
  %425 = call ptr @s2n_strerror_debug(i32 noundef %424, ptr noundef nonnull @.str.4) #10
  %426 = load i32, ptr %407, align 4, !tbaa !5
  %427 = call ptr @strerror(i32 noundef %426) #10
  %428 = load i32, ptr %407, align 4, !tbaa !5
  %429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %419, ptr noundef nonnull %.str.5.sink421, i32 noundef %420, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, i32 noundef 181, ptr noundef %423, ptr noundef %425, ptr noundef %427, i32 noundef %428) #12
  call void @exit(i32 noundef 1) #13
  unreachable

430:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #10
  %431 = getelementptr inbounds i8, ptr %9, i64 4
  %432 = load i32, ptr %431, align 4, !tbaa !15
  store i32 %432, ptr %11, align 4, !tbaa !17
  %433 = getelementptr inbounds i8, ptr %11, i64 4
  store i32 0, ptr %433, align 4, !tbaa !19
  %434 = getelementptr inbounds i8, ptr %11, i64 8
  store i32 2, ptr %434, align 4, !tbaa !20
  %435 = getelementptr inbounds i8, ptr %11, i64 12
  store i8 1, ptr %435, align 4, !tbaa !21
  %436 = getelementptr inbounds i8, ptr %11, i64 13
  store i8 122, ptr %436, align 1, !tbaa !22
  %437 = load i32, ptr @test_count, align 4, !tbaa !5
  %438 = add nsw i32 %437, 1
  store i32 %438, ptr @test_count, align 4, !tbaa !5
  %439 = load ptr, ptr %10, align 8, !tbaa !9
  %440 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %439, ptr noundef nonnull @client_hello_send_alerts, ptr noundef nonnull %11) #10
  %441 = icmp eq i32 %440, -1
  br i1 %441, label %442, label %466

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

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

453:                                              ; preds = %449, %442
  br label %454

454:                                              ; preds = %449, %453
  %.str.5.sink432 = phi ptr [ @.str.5, %453 ], [ @.str.1, %449 ]
  store i32 %444, ptr %443, align 4, !tbaa !5
  %455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %456 = load i32, ptr @test_count, align 4, !tbaa !5
  %457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror(i32 noundef %458, ptr noundef nonnull @.str.4) #10
  %460 = load i32, ptr %457, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror_debug(i32 noundef %460, ptr noundef nonnull @.str.4) #10
  %462 = load i32, ptr %443, align 4, !tbaa !5
  %463 = call ptr @strerror(i32 noundef %462) #10
  %464 = load i32, ptr %443, align 4, !tbaa !5
  %465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %455, ptr noundef nonnull %.str.5.sink432, i32 noundef %456, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.3, i32 noundef 185, ptr noundef %459, ptr noundef %461, ptr noundef %463, i32 noundef %464) #12
  call void @exit(i32 noundef 1) #13
  unreachable

466:                                              ; preds = %430
  %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 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %9, i32 noundef 1) #10
  %470 = icmp eq i32 %469, -1
  br i1 %470, label %471, label %495

471:                                              ; preds = %466
  %472 = tail call ptr @__errno_location() #11
  %473 = load i32, ptr %472, 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 = %471
  %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
  %.not252 = icmp eq i32 %481, 0
  br i1 %.not252, label %482, label %483

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

483:                                              ; preds = %478, %482
  %.str.5.sink443 = phi ptr [ @.str.5, %482 ], [ @.str.1, %478 ]
  store i32 %473, ptr %472, align 4, !tbaa !5
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call ptr @s2n_strerror(i32 noundef %487, ptr noundef nonnull @.str.4) #10
  %489 = load i32, ptr %486, align 4, !tbaa !5
  %490 = call ptr @s2n_strerror_debug(i32 noundef %489, ptr noundef nonnull @.str.4) #10
  %491 = load i32, ptr %472, align 4, !tbaa !5
  %492 = call ptr @strerror(i32 noundef %491) #10
  %493 = load i32, ptr %472, align 4, !tbaa !5
  %494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %484, ptr noundef nonnull %.str.5.sink443, i32 noundef %485, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.3, i32 noundef 189, ptr noundef %488, ptr noundef %490, ptr noundef %492, i32 noundef %493) #12
  call void @exit(i32 noundef 1) #13
  unreachable

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

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

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

511:                                              ; preds = %507, %500
  br label %512

512:                                              ; preds = %507, %511
  %.str.5.sink454 = phi ptr [ @.str.5, %511 ], [ @.str.1, %507 ]
  store i32 %502, ptr %501, align 4, !tbaa !5
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = load i32, ptr @test_count, align 4, !tbaa !5
  %515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror(i32 noundef %516, ptr noundef nonnull @.str.4) #10
  %518 = load i32, ptr %515, align 4, !tbaa !5
  %519 = call ptr @s2n_strerror_debug(i32 noundef %518, ptr noundef nonnull @.str.4) #10
  %520 = load i32, ptr %501, align 4, !tbaa !5
  %521 = call ptr @strerror(i32 noundef %520) #10
  %522 = load i32, ptr %501, align 4, !tbaa !5
  %523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %513, ptr noundef nonnull %.str.5.sink454, i32 noundef %514, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.3, i32 noundef 191, ptr noundef %517, ptr noundef %519, ptr noundef %521, i32 noundef %522) #12
  call void @exit(i32 noundef 1) #13
  unreachable

524:                                              ; preds = %495
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr @test_count, align 4, !tbaa !5
  %527 = load ptr, ptr %10, align 8, !tbaa !9
  %528 = call i32 @s2n_connection_set_config(ptr noundef nonnull %498, ptr noundef %527) #10
  %529 = icmp eq i32 %528, -1
  br i1 %529, label %530, label %554

530:                                              ; preds = %524
  %531 = tail call ptr @__errno_location() #11
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = call i32 @s2n_print_stacktrace(ptr noundef %533) #10
  %535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %536 = trunc nuw i8 %535 to i1
  br i1 %536, label %537, label %541

537:                                              ; preds = %530
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = call i32 @fileno(ptr noundef %538) #10
  %540 = call i32 @isatty(i32 noundef %539) #10
  %.not250 = icmp eq i32 %540, 0
  br i1 %.not250, label %541, label %542

541:                                              ; preds = %537, %530
  br label %542

542:                                              ; preds = %537, %541
  %.str.5.sink465 = phi ptr [ @.str.5, %541 ], [ @.str.1, %537 ]
  store i32 %532, ptr %531, align 4, !tbaa !5
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = load i32, ptr @test_count, align 4, !tbaa !5
  %545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror(i32 noundef %546, ptr noundef nonnull @.str.4) #10
  %548 = load i32, ptr %545, align 4, !tbaa !5
  %549 = call ptr @s2n_strerror_debug(i32 noundef %548, ptr noundef nonnull @.str.4) #10
  %550 = load i32, ptr %531, align 4, !tbaa !5
  %551 = call ptr @strerror(i32 noundef %550) #10
  %552 = load i32, ptr %531, align 4, !tbaa !5
  %553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %543, ptr noundef nonnull %.str.5.sink465, i32 noundef %544, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.3, i32 noundef 192, ptr noundef %547, ptr noundef %549, ptr noundef %551, i32 noundef %552) #12
  call void @exit(i32 noundef 1) #13
  unreachable

554:                                              ; preds = %524
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = add nsw i32 %555, 1
  store i32 %556, ptr @test_count, align 4, !tbaa !5
  %557 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %498, ptr noundef nonnull %9) #10
  %558 = icmp eq i32 %557, -1
  br i1 %558, label %559, label %583

559:                                              ; preds = %554
  %560 = tail call ptr @__errno_location() #11
  %561 = load i32, ptr %560, align 4, !tbaa !5
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = call i32 @s2n_print_stacktrace(ptr noundef %562) #10
  %564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %565 = trunc nuw i8 %564 to i1
  br i1 %565, label %566, label %570

566:                                              ; preds = %559
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @fileno(ptr noundef %567) #10
  %569 = call i32 @isatty(i32 noundef %568) #10
  %.not249 = icmp eq i32 %569, 0
  br i1 %.not249, label %570, label %571

570:                                              ; preds = %566, %559
  br label %571

571:                                              ; preds = %566, %570
  %.str.5.sink476 = phi ptr [ @.str.5, %570 ], [ @.str.1, %566 ]
  store i32 %561, ptr %560, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror(i32 noundef %575, ptr noundef nonnull @.str.4) #10
  %577 = load i32, ptr %574, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror_debug(i32 noundef %577, ptr noundef nonnull @.str.4) #10
  %579 = load i32, ptr %560, align 4, !tbaa !5
  %580 = call ptr @strerror(i32 noundef %579) #10
  %581 = load i32, ptr %560, align 4, !tbaa !5
  %582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %572, ptr noundef nonnull %.str.5.sink476, i32 noundef %573, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.3, i32 noundef 195, ptr noundef %576, ptr noundef %578, ptr noundef %580, i32 noundef %581) #12
  call void @exit(i32 noundef 1) #13
  unreachable

583:                                              ; preds = %554
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = call i32 @s2n_negotiate(ptr noundef nonnull %498, ptr noundef nonnull %4) #10
  %587 = icmp eq i32 %586, -1
  br i1 %587, label %588, label %612

588:                                              ; preds = %583
  %589 = tail call ptr @__errno_location() #11
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = call i32 @s2n_print_stacktrace(ptr noundef %591) #10
  %593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %594 = trunc nuw i8 %593 to i1
  br i1 %594, label %595, label %599

595:                                              ; preds = %588
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 @fileno(ptr noundef %596) #10
  %598 = call i32 @isatty(i32 noundef %597) #10
  %.not248 = icmp eq i32 %598, 0
  br i1 %.not248, label %599, label %600

599:                                              ; preds = %595, %588
  br label %600

600:                                              ; preds = %595, %599
  %.str.5.sink487 = phi ptr [ @.str.5, %599 ], [ @.str.1, %595 ]
  store i32 %590, ptr %589, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror(i32 noundef %604, ptr noundef nonnull @.str.4) #10
  %606 = load i32, ptr %603, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror_debug(i32 noundef %606, ptr noundef nonnull @.str.4) #10
  %608 = load i32, ptr %589, align 4, !tbaa !5
  %609 = call ptr @strerror(i32 noundef %608) #10
  %610 = load i32, ptr %589, align 4, !tbaa !5
  %611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef nonnull %.str.5.sink487, i32 noundef %602, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.3, i32 noundef 198, ptr noundef %605, ptr noundef %607, ptr noundef %609, i32 noundef %610) #12
  call void @exit(i32 noundef 1) #13
  unreachable

612:                                              ; preds = %583
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = add nsw i32 %613, 1
  store i32 %614, ptr @test_count, align 4, !tbaa !5
  %615 = getelementptr inbounds i8, ptr %498, i64 220
  %616 = load i8, ptr %615, align 4, !tbaa !23
  %617 = icmp eq i8 %616, 33
  br i1 %617, label %642, label %618

618:                                              ; preds = %612
  %619 = tail call ptr @__errno_location() #11
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = call i32 @s2n_print_stacktrace(ptr noundef %621) #10
  %623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %624 = trunc nuw i8 %623 to i1
  br i1 %624, label %625, label %629

625:                                              ; preds = %618
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = call i32 @fileno(ptr noundef %626) #10
  %628 = call i32 @isatty(i32 noundef %627) #10
  %.not194 = icmp eq i32 %628, 0
  br i1 %.not194, label %629, label %630

629:                                              ; preds = %625, %618
  br label %630

630:                                              ; preds = %625, %629
  %.str.5.sink498 = phi ptr [ @.str.5, %629 ], [ @.str.1, %625 ]
  store i32 %620, ptr %619, align 4, !tbaa !5
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = load i32, ptr @test_count, align 4, !tbaa !5
  %633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror(i32 noundef %634, ptr noundef nonnull @.str.4) #10
  %636 = load i32, ptr %633, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror_debug(i32 noundef %636, ptr noundef nonnull @.str.4) #10
  %638 = load i32, ptr %619, align 4, !tbaa !5
  %639 = call ptr @strerror(i32 noundef %638) #10
  %640 = load i32, ptr %619, align 4, !tbaa !5
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %631, ptr noundef nonnull %.str.5.sink498, i32 noundef %632, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.3, i32 noundef 199, ptr noundef %635, ptr noundef %637, ptr noundef %639, i32 noundef %640) #12
  call void @exit(i32 noundef 1) #13
  unreachable

642:                                              ; preds = %612
  %643 = add nsw i32 %613, 2
  store i32 %643, ptr @test_count, align 4, !tbaa !5
  %644 = load i32, ptr %433, align 4, !tbaa !19
  %645 = icmp eq i32 %644, 2
  br i1 %645, label %.preheader267, label %646

646:                                              ; preds = %642
  %647 = tail call ptr @__errno_location() #11
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = call i32 @s2n_print_stacktrace(ptr noundef %649) #10
  %651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %652 = trunc nuw i8 %651 to i1
  br i1 %652, label %653, label %657

653:                                              ; preds = %646
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = call i32 @fileno(ptr noundef %654) #10
  %656 = call i32 @isatty(i32 noundef %655) #10
  %.not195 = icmp eq i32 %656, 0
  br i1 %.not195, label %657, label %658

657:                                              ; preds = %653, %646
  br label %658

658:                                              ; preds = %653, %657
  %.str.5.sink509 = phi ptr [ @.str.5, %657 ], [ @.str.1, %653 ]
  store i32 %648, ptr %647, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = load i32, ptr @test_count, align 4, !tbaa !5
  %661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %662 = load i32, ptr %661, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror(i32 noundef %662, ptr noundef nonnull @.str.4) #10
  %664 = load i32, ptr %661, align 4, !tbaa !5
  %665 = call ptr @s2n_strerror_debug(i32 noundef %664, ptr noundef nonnull @.str.4) #10
  %666 = load i32, ptr %647, align 4, !tbaa !5
  %667 = call ptr @strerror(i32 noundef %666) #10
  %668 = load i32, ptr %647, align 4, !tbaa !5
  %669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %659, ptr noundef nonnull %.str.5.sink509, i32 noundef %660, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.3, i32 noundef 202, ptr noundef %663, ptr noundef %665, ptr noundef %667, i32 noundef %668) #12
  call void @exit(i32 noundef 1) #13
  unreachable

670:                                              ; preds = %711
  %671 = add nsw i32 %709, 1
  store i32 %671, ptr @test_count, align 4, !tbaa !5
  %672 = call i32 @s2n_shutdown(ptr noundef nonnull %498, ptr noundef nonnull %4) #10
  %673 = icmp eq i32 %672, -1
  br i1 %673, label %744, label %768

.preheader267:                                    ; preds = %642, %711
  %.0270 = phi i64 [ %712, %711 ], [ 1, %642 ]
  %indvars275 = trunc i64 %.0270 to i32
  br label %674

674:                                              ; preds = %705, %.preheader267
  %.0184 = phi i32 [ %indvars275, %.preheader267 ], [ %706, %705 ]
  %.0183 = phi ptr [ %3, %.preheader267 ], [ %708, %705 ]
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = sext i32 %.0184 to i64
  %678 = call i64 @s2n_recv(ptr noundef nonnull %498, ptr noundef %.0183, i64 noundef %677, ptr noundef nonnull %4) #10
  %679 = trunc i64 %678 to i32
  %680 = icmp eq i32 %679, -1
  br i1 %680, label %681, label %705

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

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

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

693:                                              ; preds = %688, %692
  %.str.5.sink520 = phi ptr [ @.str.5, %692 ], [ @.str.1, %688 ]
  store i32 %683, ptr %682, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef nonnull @.str.4) #10
  %699 = load i32, ptr %696, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror_debug(i32 noundef %699, ptr noundef nonnull @.str.4) #10
  %701 = load i32, ptr %682, align 4, !tbaa !5
  %702 = call ptr @strerror(i32 noundef %701) #10
  %703 = load i32, ptr %682, align 4, !tbaa !5
  %704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef nonnull %.str.5.sink520, i32 noundef %695, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.3, i32 noundef 210, ptr noundef %698, ptr noundef %700, ptr noundef %702, i32 noundef %703) #12
  call void @exit(i32 noundef 1) #13
  unreachable

705:                                              ; preds = %674
  %706 = sub nsw i32 %.0184, %679
  %sext = shl i64 %678, 32
  %707 = ashr exact i64 %sext, 32
  %708 = getelementptr inbounds i8, ptr %.0183, i64 %707
  %.not245 = icmp eq i32 %706, 0
  br i1 %.not245, label %.preheader, label %674, !llvm.loop !50

.preheader:                                       ; preds = %705
  %test_count.promoted = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add i32 %test_count.promoted, %indvars275
  br label %714

710:                                              ; preds = %714
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %.0270
  br i1 %exitcond.not, label %711, label %714, !llvm.loop !52

711:                                              ; preds = %710
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %712 = add nuw nsw i64 %.0270, 100
  %713 = icmp ult i64 %.0270, 65435
  br i1 %713, label %.preheader267, label %670, !llvm.loop !53

714:                                              ; preds = %.preheader, %710
  %indvars.iv = phi i64 [ 0, %.preheader ], [ %indvars.iv.next, %710 ]
  %715 = phi i32 [ %test_count.promoted, %.preheader ], [ %716, %710 ]
  %716 = add nsw i32 %715, 1
  %717 = getelementptr inbounds [65535 x i8], ptr %3, i64 0, i64 %indvars.iv
  %718 = load i8, ptr %717, align 1, !tbaa !54
  %719 = icmp eq i8 %718, 33
  br i1 %719, label %710, label %720

720:                                              ; preds = %714
  store i32 %716, ptr @test_count, align 4, !tbaa !5
  %721 = tail call ptr @__errno_location() #11
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @s2n_print_stacktrace(ptr noundef %723) #10
  %725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %731

727:                                              ; preds = %720
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @fileno(ptr noundef %728) #10
  %730 = call i32 @isatty(i32 noundef %729) #10
  %.not246 = icmp eq i32 %730, 0
  br i1 %.not246, label %731, label %732

731:                                              ; preds = %727, %720
  br label %732

732:                                              ; preds = %727, %731
  %.str.5.sink531 = phi ptr [ @.str.5, %731 ], [ @.str.1, %727 ]
  store i32 %722, ptr %721, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef nonnull @.str.4) #10
  %738 = load i32, ptr %735, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef nonnull @.str.4) #10
  %740 = load i32, ptr %721, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #10
  %742 = load i32, ptr %721, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull %.str.5.sink531, i32 noundef %734, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.3, i32 noundef 217, ptr noundef %737, ptr noundef %739, ptr noundef %741, i32 noundef %742) #12
  call void @exit(i32 noundef 1) #13
  unreachable

744:                                              ; preds = %670
  %745 = tail call ptr @__errno_location() #11
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = call i32 @s2n_print_stacktrace(ptr noundef %747) #10
  %749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %750 = trunc nuw i8 %749 to i1
  br i1 %750, label %751, label %755

751:                                              ; preds = %744
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @fileno(ptr noundef %752) #10
  %754 = call i32 @isatty(i32 noundef %753) #10
  %.not244 = icmp eq i32 %754, 0
  br i1 %.not244, label %755, label %756

755:                                              ; preds = %751, %744
  br label %756

756:                                              ; preds = %751, %755
  %.str.5.sink542 = phi ptr [ @.str.5, %755 ], [ @.str.1, %751 ]
  store i32 %746, ptr %745, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror(i32 noundef %760, ptr noundef nonnull @.str.4) #10
  %762 = load i32, ptr %759, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror_debug(i32 noundef %762, ptr noundef nonnull @.str.4) #10
  %764 = load i32, ptr %745, align 4, !tbaa !5
  %765 = call ptr @strerror(i32 noundef %764) #10
  %766 = load i32, ptr %745, align 4, !tbaa !5
  %767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %757, ptr noundef nonnull %.str.5.sink542, i32 noundef %758, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.3, i32 noundef 221, ptr noundef %761, ptr noundef %763, ptr noundef %765, i32 noundef %766) #12
  call void @exit(i32 noundef 1) #13
  unreachable

768:                                              ; preds = %670
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = add nsw i32 %769, 1
  store i32 %770, ptr @test_count, align 4, !tbaa !5
  %771 = call i32 @s2n_connection_free(ptr noundef nonnull %498) #10
  %772 = icmp eq i32 %771, -1
  br i1 %772, label %773, label %797

773:                                              ; preds = %768
  %774 = tail call ptr @__errno_location() #11
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %777 = call i32 @s2n_print_stacktrace(ptr noundef %776) #10
  %778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %779 = trunc nuw i8 %778 to i1
  br i1 %779, label %780, label %784

780:                                              ; preds = %773
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = call i32 @fileno(ptr noundef %781) #10
  %783 = call i32 @isatty(i32 noundef %782) #10
  %.not243 = icmp eq i32 %783, 0
  br i1 %.not243, label %784, label %785

784:                                              ; preds = %780, %773
  br label %785

785:                                              ; preds = %780, %784
  %.str.5.sink553 = phi ptr [ @.str.5, %784 ], [ @.str.1, %780 ]
  store i32 %775, ptr %774, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = load i32, ptr @test_count, align 4, !tbaa !5
  %788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror(i32 noundef %789, ptr noundef nonnull @.str.4) #10
  %791 = load i32, ptr %788, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror_debug(i32 noundef %791, ptr noundef nonnull @.str.4) #10
  %793 = load i32, ptr %774, align 4, !tbaa !5
  %794 = call ptr @strerror(i32 noundef %793) #10
  %795 = load i32, ptr %774, align 4, !tbaa !5
  %796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %786, ptr noundef nonnull %.str.5.sink553, i32 noundef %787, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.3, i32 noundef 222, ptr noundef %790, ptr noundef %792, ptr noundef %794, i32 noundef %795) #12
  call void @exit(i32 noundef 1) #13
  unreachable

797:                                              ; preds = %768
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = add nsw i32 %798, 1
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %9, i32 noundef 0) #10
  %801 = icmp eq i32 %800, -1
  br i1 %801, label %802, label %826

802:                                              ; preds = %797
  %803 = tail call ptr @__errno_location() #11
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @s2n_print_stacktrace(ptr noundef %805) #10
  %807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %808 = trunc nuw i8 %807 to i1
  br i1 %808, label %809, label %813

809:                                              ; preds = %802
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @fileno(ptr noundef %810) #10
  %812 = call i32 @isatty(i32 noundef %811) #10
  %.not242 = icmp eq i32 %812, 0
  br i1 %.not242, label %813, label %814

813:                                              ; preds = %809, %802
  br label %814

814:                                              ; preds = %809, %813
  %.str.5.sink564 = phi ptr [ @.str.5, %813 ], [ @.str.1, %809 ]
  store i32 %804, ptr %803, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror(i32 noundef %818, ptr noundef nonnull @.str.4) #10
  %820 = load i32, ptr %817, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef %820, ptr noundef nonnull @.str.4) #10
  %822 = load i32, ptr %803, align 4, !tbaa !5
  %823 = call ptr @strerror(i32 noundef %822) #10
  %824 = load i32, ptr %803, align 4, !tbaa !5
  %825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %815, ptr noundef nonnull %.str.5.sink564, i32 noundef %816, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 223, ptr noundef %819, ptr noundef %821, ptr noundef %823, i32 noundef %824) #12
  call void @exit(i32 noundef 1) #13
  unreachable

826:                                              ; preds = %797
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = add nsw i32 %827, 1
  store i32 %828, ptr @test_count, align 4, !tbaa !5
  %829 = call i32 @waitpid(i32 noundef -1, ptr noundef nonnull %5, i32 noundef 0) #10
  %830 = icmp eq i32 %829, %307
  br i1 %830, label %855, label %831

831:                                              ; preds = %826
  %832 = tail call ptr @__errno_location() #11
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = call i32 @s2n_print_stacktrace(ptr noundef %834) #10
  %836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %837 = trunc nuw i8 %836 to i1
  br i1 %837, label %838, label %842

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

842:                                              ; preds = %838, %831
  br label %843

843:                                              ; preds = %838, %842
  %.str.5.sink575 = phi ptr [ @.str.5, %842 ], [ @.str.1, %838 ]
  store i32 %833, ptr %832, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror(i32 noundef %847, ptr noundef nonnull @.str.4) #10
  %849 = load i32, ptr %846, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror_debug(i32 noundef %849, ptr noundef nonnull @.str.4) #10
  %851 = load i32, ptr %832, align 4, !tbaa !5
  %852 = call ptr @strerror(i32 noundef %851) #10
  %853 = load i32, ptr %832, align 4, !tbaa !5
  %854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %844, ptr noundef nonnull %.str.5.sink575, i32 noundef %845, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.3, i32 noundef 226, ptr noundef %848, ptr noundef %850, ptr noundef %852, i32 noundef %853) #12
  call void @exit(i32 noundef 1) #13
  unreachable

855:                                              ; preds = %826
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = add nsw i32 %856, 1
  store i32 %857, ptr @test_count, align 4, !tbaa !5
  %858 = load i32, ptr %5, align 4, !tbaa !5
  %859 = icmp eq i32 %858, 0
  br i1 %859, label %884, label %860

860:                                              ; preds = %855
  %861 = tail call ptr @__errno_location() #11
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = call i32 @s2n_print_stacktrace(ptr noundef %863) #10
  %865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %866 = trunc nuw i8 %865 to i1
  br i1 %866, label %867, label %871

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

871:                                              ; preds = %867, %860
  br label %872

872:                                              ; preds = %867, %871
  %.str.5.sink586 = phi ptr [ @.str.5, %871 ], [ @.str.1, %867 ]
  store i32 %862, ptr %861, align 4, !tbaa !5
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = load i32, ptr @test_count, align 4, !tbaa !5
  %875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror(i32 noundef %876, ptr noundef nonnull @.str.4) #10
  %878 = load i32, ptr %875, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror_debug(i32 noundef %878, ptr noundef nonnull @.str.4) #10
  %880 = load i32, ptr %861, align 4, !tbaa !5
  %881 = call ptr @strerror(i32 noundef %880) #10
  %882 = load i32, ptr %861, align 4, !tbaa !5
  %883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %873, ptr noundef nonnull %.str.5.sink586, i32 noundef %874, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.3, i32 noundef 227, ptr noundef %877, ptr noundef %879, ptr noundef %881, i32 noundef %882) #12
  call void @exit(i32 noundef 1) #13
  unreachable

884:                                              ; preds = %855
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #10
  %885 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  %886 = load i32, ptr @test_count, align 4, !tbaa !5
  %887 = add nsw i32 %886, 1
  store i32 %887, ptr @test_count, align 4, !tbaa !5
  %888 = call i32 @s2n_io_pair_init(ptr noundef nonnull %12) #10
  %889 = icmp eq i32 %888, -1
  br i1 %889, label %890, label %914

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

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

901:                                              ; preds = %897, %890
  br label %902

902:                                              ; preds = %897, %901
  %.str.5.sink597 = phi ptr [ @.str.5, %901 ], [ @.str.1, %897 ]
  store i32 %892, ptr %891, align 4, !tbaa !5
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = load i32, ptr @test_count, align 4, !tbaa !5
  %905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror(i32 noundef %906, ptr noundef nonnull @.str.4) #10
  %908 = load i32, ptr %905, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror_debug(i32 noundef %908, ptr noundef nonnull @.str.4) #10
  %910 = load i32, ptr %891, align 4, !tbaa !5
  %911 = call ptr @strerror(i32 noundef %910) #10
  %912 = load i32, ptr %891, align 4, !tbaa !5
  %913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %903, ptr noundef nonnull %.str.5.sink597, i32 noundef %904, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 234, ptr noundef %907, ptr noundef %909, ptr noundef %911, i32 noundef %912) #12
  call void @exit(i32 noundef 1) #13
  unreachable

914:                                              ; preds = %884
  %915 = call i32 @fork() #10
  %916 = icmp eq i32 %915, 0
  br i1 %916, label %917, label %977

917:                                              ; preds = %914
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr @test_count, align 4, !tbaa !5
  %920 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %12, i32 noundef 0) #10
  %921 = icmp eq i32 %920, -1
  br i1 %921, label %922, label %946

922:                                              ; preds = %917
  %923 = tail call ptr @__errno_location() #11
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = call i32 @s2n_print_stacktrace(ptr noundef %925) #10
  %927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %928 = trunc nuw i8 %927 to i1
  br i1 %928, label %929, label %933

929:                                              ; preds = %922
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = call i32 @fileno(ptr noundef %930) #10
  %932 = call i32 @isatty(i32 noundef %931) #10
  %.not240 = icmp eq i32 %932, 0
  br i1 %.not240, label %933, label %934

933:                                              ; preds = %929, %922
  br label %934

934:                                              ; preds = %929, %933
  %.str.5.sink608 = phi ptr [ @.str.5, %933 ], [ @.str.1, %929 ]
  store i32 %924, ptr %923, align 4, !tbaa !5
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror(i32 noundef %938, ptr noundef nonnull @.str.4) #10
  %940 = load i32, ptr %937, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror_debug(i32 noundef %940, ptr noundef nonnull @.str.4) #10
  %942 = load i32, ptr %923, align 4, !tbaa !5
  %943 = call ptr @strerror(i32 noundef %942) #10
  %944 = load i32, ptr %923, align 4, !tbaa !5
  %945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %935, ptr noundef nonnull %.str.5.sink608, i32 noundef %936, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 240, ptr noundef %939, ptr noundef %941, ptr noundef %943, i32 noundef %944) #12
  call void @exit(i32 noundef 1) #13
  unreachable

946:                                              ; preds = %917
  %947 = load i32, ptr @test_count, align 4, !tbaa !5
  %948 = add nsw i32 %947, 1
  store i32 %948, ptr @test_count, align 4, !tbaa !5
  %949 = call i32 @cleanup(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8)
  %950 = call zeroext i1 @s2n_result_is_ok(i32 %949)
  br i1 %950, label %975, label %951

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

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

962:                                              ; preds = %958, %951
  br label %963

963:                                              ; preds = %958, %962
  %.str.5.sink619 = phi ptr [ @.str.5, %962 ], [ @.str.1, %958 ]
  store i32 %953, ptr %952, align 4, !tbaa !5
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = load i32, ptr @test_count, align 4, !tbaa !5
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror(i32 noundef %967, ptr noundef nonnull @.str.4) #10
  %969 = load i32, ptr %966, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror_debug(i32 noundef %969, ptr noundef nonnull @.str.4) #10
  %971 = load i32, ptr %952, align 4, !tbaa !5
  %972 = call ptr @strerror(i32 noundef %971) #10
  %973 = load i32, ptr %952, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %964, ptr noundef nonnull %.str.5.sink619, i32 noundef %965, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 242, ptr noundef %968, ptr noundef %970, ptr noundef %972, i32 noundef %973) #12
  call void @exit(i32 noundef 1) #13
  unreachable

975:                                              ; preds = %946
  %976 = call i32 @mock_client(ptr noundef nonnull %12, i32 noundef 1, i32 noundef 1)
  br label %977

977:                                              ; preds = %975, %914
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  %978 = call ptr @s2n_config_new() #10
  store ptr %978, ptr %13, align 8, !tbaa !9
  %979 = load i32, ptr @test_count, align 4, !tbaa !5
  %980 = add nsw i32 %979, 1
  store i32 %980, ptr @test_count, align 4, !tbaa !5
  %981 = load ptr, ptr %8, align 8, !tbaa !9
  %982 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %978, ptr noundef %981) #10
  %983 = icmp eq i32 %982, -1
  br i1 %983, label %984, label %1008

984:                                              ; preds = %977
  %985 = tail call ptr @__errno_location() #11
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @s2n_print_stacktrace(ptr noundef %987) #10
  %989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %991, label %995

991:                                              ; preds = %984
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = call i32 @fileno(ptr noundef %992) #10
  %994 = call i32 @isatty(i32 noundef %993) #10
  %.not239 = icmp eq i32 %994, 0
  br i1 %.not239, label %995, label %996

995:                                              ; preds = %991, %984
  br label %996

996:                                              ; preds = %991, %995
  %.str.5.sink630 = phi ptr [ @.str.5, %995 ], [ @.str.1, %991 ]
  store i32 %986, ptr %985, align 4, !tbaa !5
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = load i32, ptr @test_count, align 4, !tbaa !5
  %999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror(i32 noundef %1000, ptr noundef nonnull @.str.4) #10
  %1002 = load i32, ptr %999, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror_debug(i32 noundef %1002, ptr noundef nonnull @.str.4) #10
  %1004 = load i32, ptr %985, align 4, !tbaa !5
  %1005 = call ptr @strerror(i32 noundef %1004) #10
  %1006 = load i32, ptr %985, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef nonnull %.str.5.sink630, i32 noundef %998, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 248, ptr noundef %1001, ptr noundef %1003, ptr noundef %1005, i32 noundef %1006) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1008:                                             ; preds = %977
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = add nsw i32 %1009, 1
  store i32 %1010, ptr @test_count, align 4, !tbaa !5
  %1011 = load ptr, ptr %13, align 8, !tbaa !9
  %1012 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1011, ptr noundef nonnull @.str.37) #10
  %1013 = icmp eq i32 %1012, -1
  br i1 %1013, label %1014, label %1038

1014:                                             ; preds = %1008
  %1015 = tail call ptr @__errno_location() #11
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @s2n_print_stacktrace(ptr noundef %1017) #10
  %1019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1020 = trunc nuw i8 %1019 to i1
  br i1 %1020, label %1021, label %1025

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

1025:                                             ; preds = %1021, %1014
  br label %1026

1026:                                             ; preds = %1021, %1025
  %.str.5.sink641 = phi ptr [ @.str.5, %1025 ], [ @.str.1, %1021 ]
  store i32 %1016, ptr %1015, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror(i32 noundef %1030, ptr noundef nonnull @.str.4) #10
  %1032 = load i32, ptr %1029, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror_debug(i32 noundef %1032, ptr noundef nonnull @.str.4) #10
  %1034 = load i32, ptr %1015, align 4, !tbaa !5
  %1035 = call ptr @strerror(i32 noundef %1034) #10
  %1036 = load i32, ptr %1015, align 4, !tbaa !5
  %1037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef nonnull %.str.5.sink641, i32 noundef %1028, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.3, i32 noundef 249, ptr noundef %1031, ptr noundef %1033, ptr noundef %1035, i32 noundef %1036) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1038:                                             ; preds = %1008
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #10
  %1039 = getelementptr inbounds i8, ptr %12, i64 4
  %1040 = load i32, ptr %1039, align 4, !tbaa !15
  store i32 %1040, ptr %14, align 4, !tbaa !17
  %1041 = getelementptr inbounds i8, ptr %14, i64 4
  store i32 0, ptr %1041, align 4, !tbaa !19
  %1042 = getelementptr inbounds i8, ptr %14, i64 8
  store i32 1, ptr %1042, align 4, !tbaa !20
  %1043 = getelementptr inbounds i8, ptr %14, i64 12
  store i8 2, ptr %1043, align 4, !tbaa !21
  %1044 = getelementptr inbounds i8, ptr %14, i64 13
  store i8 122, ptr %1044, align 1, !tbaa !22
  %1045 = load i32, ptr @test_count, align 4, !tbaa !5
  %1046 = add nsw i32 %1045, 1
  store i32 %1046, ptr @test_count, align 4, !tbaa !5
  %1047 = load ptr, ptr %13, align 8, !tbaa !9
  %1048 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %1047, ptr noundef nonnull @client_hello_send_alerts, ptr noundef nonnull %14) #10
  %1049 = icmp eq i32 %1048, -1
  br i1 %1049, label %1050, label %1074

1050:                                             ; preds = %1038
  %1051 = tail call ptr @__errno_location() #11
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = call i32 @s2n_print_stacktrace(ptr noundef %1053) #10
  %1055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1056 = trunc nuw i8 %1055 to i1
  br i1 %1056, label %1057, label %1061

1057:                                             ; preds = %1050
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = call i32 @fileno(ptr noundef %1058) #10
  %1060 = call i32 @isatty(i32 noundef %1059) #10
  %.not237 = icmp eq i32 %1060, 0
  br i1 %.not237, label %1061, label %1062

1061:                                             ; preds = %1057, %1050
  br label %1062

1062:                                             ; preds = %1057, %1061
  %.str.5.sink652 = phi ptr [ @.str.5, %1061 ], [ @.str.1, %1057 ]
  store i32 %1052, ptr %1051, align 4, !tbaa !5
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = load i32, ptr @test_count, align 4, !tbaa !5
  %1065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror(i32 noundef %1066, ptr noundef nonnull @.str.4) #10
  %1068 = load i32, ptr %1065, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror_debug(i32 noundef %1068, ptr noundef nonnull @.str.4) #10
  %1070 = load i32, ptr %1051, align 4, !tbaa !5
  %1071 = call ptr @strerror(i32 noundef %1070) #10
  %1072 = load i32, ptr %1051, align 4, !tbaa !5
  %1073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1063, ptr noundef nonnull %.str.5.sink652, i32 noundef %1064, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.3, i32 noundef 253, ptr noundef %1067, ptr noundef %1069, ptr noundef %1071, i32 noundef %1072) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1074:                                             ; preds = %1038
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = add nsw i32 %1075, 1
  store i32 %1076, ptr @test_count, align 4, !tbaa !5
  %1077 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %12, i32 noundef 1) #10
  %1078 = icmp eq i32 %1077, -1
  br i1 %1078, label %1079, label %1103

1079:                                             ; preds = %1074
  %1080 = tail call ptr @__errno_location() #11
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = call i32 @s2n_print_stacktrace(ptr noundef %1082) #10
  %1084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1085 = trunc nuw i8 %1084 to i1
  br i1 %1085, label %1086, label %1090

1086:                                             ; preds = %1079
  %1087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1088 = call i32 @fileno(ptr noundef %1087) #10
  %1089 = call i32 @isatty(i32 noundef %1088) #10
  %.not236 = icmp eq i32 %1089, 0
  br i1 %.not236, label %1090, label %1091

1090:                                             ; preds = %1086, %1079
  br label %1091

1091:                                             ; preds = %1086, %1090
  %.str.5.sink663 = phi ptr [ @.str.5, %1090 ], [ @.str.1, %1086 ]
  store i32 %1081, ptr %1080, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = load i32, ptr @test_count, align 4, !tbaa !5
  %1094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror(i32 noundef %1095, ptr noundef nonnull @.str.4) #10
  %1097 = load i32, ptr %1094, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror_debug(i32 noundef %1097, ptr noundef nonnull @.str.4) #10
  %1099 = load i32, ptr %1080, align 4, !tbaa !5
  %1100 = call ptr @strerror(i32 noundef %1099) #10
  %1101 = load i32, ptr %1080, align 4, !tbaa !5
  %1102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1092, ptr noundef nonnull %.str.5.sink663, i32 noundef %1093, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.3, i32 noundef 256, ptr noundef %1096, ptr noundef %1098, ptr noundef %1100, i32 noundef %1101) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1103:                                             ; preds = %1074
  %1104 = load i32, ptr @test_count, align 4, !tbaa !5
  %1105 = add nsw i32 %1104, 1
  store i32 %1105, ptr @test_count, align 4, !tbaa !5
  %1106 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1107 = icmp eq ptr %1106, null
  br i1 %1107, label %1108, label %1132

1108:                                             ; preds = %1103
  %1109 = tail call ptr @__errno_location() #11
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = call i32 @s2n_print_stacktrace(ptr noundef %1111) #10
  %1113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1114 = trunc nuw i8 %1113 to i1
  br i1 %1114, label %1115, label %1119

1115:                                             ; preds = %1108
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = call i32 @fileno(ptr noundef %1116) #10
  %1118 = call i32 @isatty(i32 noundef %1117) #10
  %.not235 = icmp eq i32 %1118, 0
  br i1 %.not235, label %1119, label %1120

1119:                                             ; preds = %1115, %1108
  br label %1120

1120:                                             ; preds = %1115, %1119
  %.str.5.sink674 = phi ptr [ @.str.5, %1119 ], [ @.str.1, %1115 ]
  store i32 %1110, ptr %1109, align 4, !tbaa !5
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror(i32 noundef %1124, ptr noundef nonnull @.str.4) #10
  %1126 = load i32, ptr %1123, align 4, !tbaa !5
  %1127 = call ptr @s2n_strerror_debug(i32 noundef %1126, ptr noundef nonnull @.str.4) #10
  %1128 = load i32, ptr %1109, align 4, !tbaa !5
  %1129 = call ptr @strerror(i32 noundef %1128) #10
  %1130 = load i32, ptr %1109, align 4, !tbaa !5
  %1131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1121, ptr noundef nonnull %.str.5.sink674, i32 noundef %1122, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.3, i32 noundef 258, ptr noundef %1125, ptr noundef %1127, ptr noundef %1129, i32 noundef %1130) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1132:                                             ; preds = %1103
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = add nsw i32 %1133, 1
  store i32 %1134, ptr @test_count, align 4, !tbaa !5
  %1135 = load ptr, ptr %13, align 8, !tbaa !9
  %1136 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1106, ptr noundef %1135) #10
  %1137 = icmp eq i32 %1136, -1
  br i1 %1137, label %1138, label %1162

1138:                                             ; preds = %1132
  %1139 = tail call ptr @__errno_location() #11
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = call i32 @s2n_print_stacktrace(ptr noundef %1141) #10
  %1143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1144 = trunc nuw i8 %1143 to i1
  br i1 %1144, label %1145, label %1149

1145:                                             ; preds = %1138
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = call i32 @fileno(ptr noundef %1146) #10
  %1148 = call i32 @isatty(i32 noundef %1147) #10
  %.not234 = icmp eq i32 %1148, 0
  br i1 %.not234, label %1149, label %1150

1149:                                             ; preds = %1145, %1138
  br label %1150

1150:                                             ; preds = %1145, %1149
  %.str.5.sink685 = phi ptr [ @.str.5, %1149 ], [ @.str.1, %1145 ]
  store i32 %1140, ptr %1139, align 4, !tbaa !5
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror(i32 noundef %1154, ptr noundef nonnull @.str.4) #10
  %1156 = load i32, ptr %1153, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror_debug(i32 noundef %1156, ptr noundef nonnull @.str.4) #10
  %1158 = load i32, ptr %1139, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #10
  %1160 = load i32, ptr %1139, align 4, !tbaa !5
  %1161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1151, ptr noundef nonnull %.str.5.sink685, i32 noundef %1152, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.3, i32 noundef 259, ptr noundef %1155, ptr noundef %1157, ptr noundef %1159, i32 noundef %1160) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1162:                                             ; preds = %1132
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = add nsw i32 %1163, 1
  store i32 %1164, ptr @test_count, align 4, !tbaa !5
  %1165 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1106, ptr noundef nonnull %12) #10
  %1166 = icmp eq i32 %1165, -1
  br i1 %1166, label %1167, label %1191

1167:                                             ; preds = %1162
  %1168 = tail call ptr @__errno_location() #11
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = call i32 @s2n_print_stacktrace(ptr noundef %1170) #10
  %1172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1173 = trunc nuw i8 %1172 to i1
  br i1 %1173, label %1174, label %1178

1174:                                             ; preds = %1167
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @fileno(ptr noundef %1175) #10
  %1177 = call i32 @isatty(i32 noundef %1176) #10
  %.not233 = icmp eq i32 %1177, 0
  br i1 %.not233, label %1178, label %1179

1178:                                             ; preds = %1174, %1167
  br label %1179

1179:                                             ; preds = %1174, %1178
  %.str.5.sink696 = phi ptr [ @.str.5, %1178 ], [ @.str.1, %1174 ]
  store i32 %1169, ptr %1168, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call ptr @s2n_strerror(i32 noundef %1183, ptr noundef nonnull @.str.4) #10
  %1185 = load i32, ptr %1182, align 4, !tbaa !5
  %1186 = call ptr @s2n_strerror_debug(i32 noundef %1185, ptr noundef nonnull @.str.4) #10
  %1187 = load i32, ptr %1168, align 4, !tbaa !5
  %1188 = call ptr @strerror(i32 noundef %1187) #10
  %1189 = load i32, ptr %1168, align 4, !tbaa !5
  %1190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1180, ptr noundef nonnull %.str.5.sink696, i32 noundef %1181, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.3, i32 noundef 262, ptr noundef %1184, ptr noundef %1186, ptr noundef %1188, i32 noundef %1189) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1191:                                             ; preds = %1162
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = add nsw i32 %1192, 1
  store i32 %1193, ptr @test_count, align 4, !tbaa !5
  %1194 = call i32 @s2n_negotiate(ptr noundef nonnull %1106, ptr noundef nonnull %4) #10
  %1195 = icmp eq i32 %1194, -1
  br i1 %1195, label %1220, label %1196

1196:                                             ; preds = %1191
  %1197 = tail call ptr @__errno_location() #11
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = call i32 @s2n_print_stacktrace(ptr noundef %1199) #10
  %1201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1202 = trunc nuw i8 %1201 to i1
  br i1 %1202, label %1203, label %1207

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #10
  %1206 = call i32 @isatty(i32 noundef %1205) #10
  %.not199 = icmp eq i32 %1206, 0
  br i1 %.not199, label %1207, label %1208

1207:                                             ; preds = %1203, %1196
  br label %1208

1208:                                             ; preds = %1203, %1207
  %.str.5.sink707 = phi ptr [ @.str.5, %1207 ], [ @.str.1, %1203 ]
  store i32 %1198, ptr %1197, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call ptr @s2n_strerror(i32 noundef %1212, ptr noundef nonnull @.str.4) #10
  %1214 = load i32, ptr %1211, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror_debug(i32 noundef %1214, ptr noundef nonnull @.str.4) #10
  %1216 = load i32, ptr %1197, align 4, !tbaa !5
  %1217 = call ptr @strerror(i32 noundef %1216) #10
  %1218 = load i32, ptr %1197, align 4, !tbaa !5
  %1219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef nonnull %.str.5.sink707, i32 noundef %1210, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.3, i32 noundef 265, ptr noundef %1213, ptr noundef %1215, ptr noundef %1217, i32 noundef %1218) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1220:                                             ; preds = %1191
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = add nsw i32 %1221, 1
  store i32 %1222, ptr @test_count, align 4, !tbaa !5
  %1223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = icmp eq i32 %1224, 0
  br i1 %1225, label %1226, label %1249

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

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

1237:                                             ; preds = %1233, %1226
  br label %1238

1238:                                             ; preds = %1233, %1237
  %.str.5.sink718 = phi ptr [ @.str.5, %1237 ], [ @.str.1, %1233 ]
  store i32 %1228, ptr %1227, align 4, !tbaa !5
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = load i32, ptr %1223, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror(i32 noundef %1241, ptr noundef nonnull @.str.4) #10
  %1243 = load i32, ptr %1223, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef nonnull @.str.4) #10
  %1245 = load i32, ptr %1227, align 4, !tbaa !5
  %1246 = call ptr @strerror(i32 noundef %1245) #10
  %1247 = load i32, ptr %1227, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1239, ptr noundef nonnull %.str.5.sink718, i32 noundef %1240, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.3, i32 noundef 265, ptr noundef %1242, ptr noundef %1244, ptr noundef %1246, i32 noundef %1247) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1249:                                             ; preds = %1220
  %1250 = add nsw i32 %1221, 2
  store i32 %1250, ptr @test_count, align 4, !tbaa !5
  %1251 = call ptr @s2n_strerror_debug(i32 noundef %1224, ptr noundef nonnull @.str.4) #10
  %1252 = icmp eq ptr %1251, null
  br i1 %1252, label %1253, label %1276

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

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

1264:                                             ; preds = %1260, %1253
  br label %1265

1265:                                             ; preds = %1260, %1264
  %.str.5.sink727 = phi ptr [ @.str.5, %1264 ], [ @.str.1, %1260 ]
  store i32 %1255, ptr %1254, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = load i32, ptr %1223, align 4, !tbaa !5
  %1269 = call ptr @s2n_strerror(i32 noundef %1268, ptr noundef nonnull @.str.4) #10
  %1270 = load i32, ptr %1223, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef nonnull @.str.4) #10
  %1272 = load i32, ptr %1254, align 4, !tbaa !5
  %1273 = call ptr @strerror(i32 noundef %1272) #10
  %1274 = load i32, ptr %1254, align 4, !tbaa !5
  %1275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1266, ptr noundef nonnull %.str.5.sink727, i32 noundef %1267, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.3, i32 noundef 265, ptr noundef %1269, ptr noundef %1271, ptr noundef %1273, i32 noundef %1274) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1276:                                             ; preds = %1249
  store i32 0, ptr %1223, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %1277 = tail call ptr @__errno_location() #11
  store i32 0, ptr %1277, align 4, !tbaa !5
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = add nsw i32 %1278, 1
  store i32 %1279, ptr @test_count, align 4, !tbaa !5
  %1280 = getelementptr inbounds i8, ptr %1106, i64 220
  %1281 = load i8, ptr %1280, align 4, !tbaa !23
  %1282 = icmp eq i8 %1281, 33
  br i1 %1282, label %1305, label %1283

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

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

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

1294:                                             ; preds = %1289, %1293
  %.str.5.sink736 = phi ptr [ @.str.5, %1293 ], [ @.str.1, %1289 ]
  store i32 %1284, ptr %1277, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = load i32, ptr %1223, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef nonnull @.str.4) #10
  %1299 = load i32, ptr %1223, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef nonnull @.str.4) #10
  %1301 = load i32, ptr %1277, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #10
  %1303 = load i32, ptr %1277, align 4, !tbaa !5
  %1304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef nonnull %.str.5.sink736, i32 noundef %1296, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.3, i32 noundef 266, ptr noundef %1298, ptr noundef %1300, ptr noundef %1302, i32 noundef %1303) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1305:                                             ; preds = %1276
  %1306 = add nsw i32 %1278, 2
  store i32 %1306, ptr @test_count, align 4, !tbaa !5
  %1307 = load i32, ptr %1041, align 4, !tbaa !19
  %1308 = icmp eq i32 %1307, 1
  br i1 %1308, label %1331, label %1309

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

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

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

1320:                                             ; preds = %1315, %1319
  %.str.5.sink745 = phi ptr [ @.str.5, %1319 ], [ @.str.1, %1315 ]
  store i32 %1310, ptr %1277, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = load i32, ptr @test_count, align 4, !tbaa !5
  %1323 = load i32, ptr %1223, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef nonnull @.str.4) #10
  %1325 = load i32, ptr %1223, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror_debug(i32 noundef %1325, ptr noundef nonnull @.str.4) #10
  %1327 = load i32, ptr %1277, align 4, !tbaa !5
  %1328 = call ptr @strerror(i32 noundef %1327) #10
  %1329 = load i32, ptr %1277, align 4, !tbaa !5
  %1330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1321, ptr noundef nonnull %.str.5.sink745, i32 noundef %1322, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.3, i32 noundef 269, ptr noundef %1324, ptr noundef %1326, ptr noundef %1328, i32 noundef %1329) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1331:                                             ; preds = %1305
  %1332 = add nsw i32 %1278, 3
  store i32 %1332, ptr @test_count, align 4, !tbaa !5
  %1333 = call i32 @s2n_connection_free(ptr noundef nonnull %1106) #10
  %1334 = icmp eq i32 %1333, -1
  br i1 %1334, label %1335, label %1357

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

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

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

1346:                                             ; preds = %1341, %1345
  %.str.5.sink754 = phi ptr [ @.str.5, %1345 ], [ @.str.1, %1341 ]
  store i32 %1336, ptr %1277, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = load i32, ptr %1223, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror(i32 noundef %1349, ptr noundef nonnull @.str.4) #10
  %1351 = load i32, ptr %1223, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror_debug(i32 noundef %1351, ptr noundef nonnull @.str.4) #10
  %1353 = load i32, ptr %1277, align 4, !tbaa !5
  %1354 = call ptr @strerror(i32 noundef %1353) #10
  %1355 = load i32, ptr %1277, align 4, !tbaa !5
  %1356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1347, ptr noundef nonnull %.str.5.sink754, i32 noundef %1348, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.3, i32 noundef 271, ptr noundef %1350, ptr noundef %1352, ptr noundef %1354, i32 noundef %1355) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1357:                                             ; preds = %1331
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = add nsw i32 %1358, 1
  store i32 %1359, ptr @test_count, align 4, !tbaa !5
  %1360 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %12, i32 noundef 0) #10
  %1361 = icmp eq i32 %1360, -1
  br i1 %1361, label %1362, label %1384

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

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

1372:                                             ; preds = %1368, %1362
  br label %1373

1373:                                             ; preds = %1368, %1372
  %.str.5.sink763 = phi ptr [ @.str.5, %1372 ], [ @.str.1, %1368 ]
  store i32 %1363, ptr %1277, align 4, !tbaa !5
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = load i32, ptr @test_count, align 4, !tbaa !5
  %1376 = load i32, ptr %1223, align 4, !tbaa !5
  %1377 = call ptr @s2n_strerror(i32 noundef %1376, ptr noundef nonnull @.str.4) #10
  %1378 = load i32, ptr %1223, align 4, !tbaa !5
  %1379 = call ptr @s2n_strerror_debug(i32 noundef %1378, ptr noundef nonnull @.str.4) #10
  %1380 = load i32, ptr %1277, align 4, !tbaa !5
  %1381 = call ptr @strerror(i32 noundef %1380) #10
  %1382 = load i32, ptr %1277, align 4, !tbaa !5
  %1383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1374, ptr noundef nonnull %.str.5.sink763, i32 noundef %1375, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 272, ptr noundef %1377, ptr noundef %1379, ptr noundef %1381, i32 noundef %1382) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1384:                                             ; preds = %1357
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %1386 = add nsw i32 %1385, 1
  store i32 %1386, ptr @test_count, align 4, !tbaa !5
  %1387 = call i32 @waitpid(i32 noundef -1, ptr noundef nonnull %5, i32 noundef 0) #10
  %1388 = icmp eq i32 %1387, %915
  br i1 %1388, label %1411, label %1389

1389:                                             ; preds = %1384
  %1390 = load i32, ptr %1277, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @s2n_print_stacktrace(ptr noundef %1391) #10
  %1393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1394 = trunc nuw i8 %1393 to i1
  br i1 %1394, label %1395, label %1399

1395:                                             ; preds = %1389
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = call i32 @fileno(ptr noundef %1396) #10
  %1398 = call i32 @isatty(i32 noundef %1397) #10
  %.not202 = icmp eq i32 %1398, 0
  br i1 %.not202, label %1399, label %1400

1399:                                             ; preds = %1395, %1389
  br label %1400

1400:                                             ; preds = %1395, %1399
  %.str.5.sink772 = phi ptr [ @.str.5, %1399 ], [ @.str.1, %1395 ]
  store i32 %1390, ptr %1277, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = load i32, ptr %1223, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror(i32 noundef %1403, ptr noundef nonnull @.str.4) #10
  %1405 = load i32, ptr %1223, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror_debug(i32 noundef %1405, ptr noundef nonnull @.str.4) #10
  %1407 = load i32, ptr %1277, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #10
  %1409 = load i32, ptr %1277, align 4, !tbaa !5
  %1410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef nonnull %.str.5.sink772, i32 noundef %1402, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.3, i32 noundef 275, ptr noundef %1404, ptr noundef %1406, ptr noundef %1408, i32 noundef %1409) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1411:                                             ; preds = %1384
  %1412 = load i32, ptr @test_count, align 4, !tbaa !5
  %1413 = add nsw i32 %1412, 1
  store i32 %1413, ptr @test_count, align 4, !tbaa !5
  %1414 = load i32, ptr %5, align 4, !tbaa !5
  %1415 = icmp eq i32 %1414, 0
  br i1 %1415, label %1438, label %1416

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

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

1426:                                             ; preds = %1422, %1416
  br label %1427

1427:                                             ; preds = %1422, %1426
  %.str.5.sink781 = phi ptr [ @.str.5, %1426 ], [ @.str.1, %1422 ]
  store i32 %1417, ptr %1277, align 4, !tbaa !5
  %1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = load i32, ptr %1223, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror(i32 noundef %1430, ptr noundef nonnull @.str.4) #10
  %1432 = load i32, ptr %1223, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror_debug(i32 noundef %1432, ptr noundef nonnull @.str.4) #10
  %1434 = load i32, ptr %1277, align 4, !tbaa !5
  %1435 = call ptr @strerror(i32 noundef %1434) #10
  %1436 = load i32, ptr %1277, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1428, ptr noundef nonnull %.str.5.sink781, i32 noundef %1429, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.3, i32 noundef 276, ptr noundef %1431, ptr noundef %1433, ptr noundef %1435, i32 noundef %1436) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1438:                                             ; preds = %1411
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #10
  %1439 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #10
  %1440 = load i32, ptr @test_count, align 4, !tbaa !5
  %1441 = add nsw i32 %1440, 1
  store i32 %1441, ptr @test_count, align 4, !tbaa !5
  %1442 = call i32 @s2n_io_pair_init(ptr noundef nonnull %15) #10
  %1443 = icmp eq i32 %1442, -1
  br i1 %1443, label %1444, label %1466

1444:                                             ; preds = %1438
  %1445 = load i32, ptr %1277, align 4, !tbaa !5
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = call i32 @s2n_print_stacktrace(ptr noundef %1446) #10
  %1448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1449 = trunc nuw i8 %1448 to i1
  br i1 %1449, label %1450, label %1454

1450:                                             ; preds = %1444
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = call i32 @fileno(ptr noundef %1451) #10
  %1453 = call i32 @isatty(i32 noundef %1452) #10
  %.not228 = icmp eq i32 %1453, 0
  br i1 %.not228, label %1454, label %1455

1454:                                             ; preds = %1450, %1444
  br label %1455

1455:                                             ; preds = %1450, %1454
  %.str.5.sink790 = phi ptr [ @.str.5, %1454 ], [ @.str.1, %1450 ]
  store i32 %1445, ptr %1277, align 4, !tbaa !5
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = load i32, ptr @test_count, align 4, !tbaa !5
  %1458 = load i32, ptr %1223, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror(i32 noundef %1458, ptr noundef nonnull @.str.4) #10
  %1460 = load i32, ptr %1223, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror_debug(i32 noundef %1460, ptr noundef nonnull @.str.4) #10
  %1462 = load i32, ptr %1277, align 4, !tbaa !5
  %1463 = call ptr @strerror(i32 noundef %1462) #10
  %1464 = load i32, ptr %1277, align 4, !tbaa !5
  %1465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1456, ptr noundef nonnull %.str.5.sink790, i32 noundef %1457, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 283, ptr noundef %1459, ptr noundef %1461, ptr noundef %1463, i32 noundef %1464) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1466:                                             ; preds = %1438
  %1467 = call i32 @fork() #10
  %1468 = icmp eq i32 %1467, 0
  br i1 %1468, label %1469, label %1525

1469:                                             ; preds = %1466
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = add nsw i32 %1470, 1
  store i32 %1471, ptr @test_count, align 4, !tbaa !5
  %1472 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %15, i32 noundef 0) #10
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1474, label %1496

1474:                                             ; preds = %1469
  %1475 = load i32, ptr %1277, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @s2n_print_stacktrace(ptr noundef %1476) #10
  %1478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1479 = trunc nuw i8 %1478 to i1
  br i1 %1479, label %1480, label %1484

1480:                                             ; preds = %1474
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = call i32 @fileno(ptr noundef %1481) #10
  %1483 = call i32 @isatty(i32 noundef %1482) #10
  %.not227 = icmp eq i32 %1483, 0
  br i1 %.not227, label %1484, label %1485

1484:                                             ; preds = %1480, %1474
  br label %1485

1485:                                             ; preds = %1480, %1484
  %.str.5.sink799 = phi ptr [ @.str.5, %1484 ], [ @.str.1, %1480 ]
  store i32 %1475, ptr %1277, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = load i32, ptr %1223, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef nonnull @.str.4) #10
  %1490 = load i32, ptr %1223, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef nonnull @.str.4) #10
  %1492 = load i32, ptr %1277, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #10
  %1494 = load i32, ptr %1277, align 4, !tbaa !5
  %1495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1486, ptr noundef nonnull %.str.5.sink799, i32 noundef %1487, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 289, ptr noundef %1489, ptr noundef %1491, ptr noundef %1493, i32 noundef %1494) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1496:                                             ; preds = %1469
  %1497 = load i32, ptr @test_count, align 4, !tbaa !5
  %1498 = add nsw i32 %1497, 1
  store i32 %1498, ptr @test_count, align 4, !tbaa !5
  %1499 = call i32 @cleanup(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8)
  %1500 = call zeroext i1 @s2n_result_is_ok(i32 %1499)
  br i1 %1500, label %1523, label %1501

1501:                                             ; preds = %1496
  %1502 = load i32, ptr %1277, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = call i32 @s2n_print_stacktrace(ptr noundef %1503) #10
  %1505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1506 = trunc nuw i8 %1505 to i1
  br i1 %1506, label %1507, label %1511

1507:                                             ; preds = %1501
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = call i32 @fileno(ptr noundef %1508) #10
  %1510 = call i32 @isatty(i32 noundef %1509) #10
  %.not204 = icmp eq i32 %1510, 0
  br i1 %.not204, label %1511, label %1512

1511:                                             ; preds = %1507, %1501
  br label %1512

1512:                                             ; preds = %1507, %1511
  %.str.5.sink808 = phi ptr [ @.str.5, %1511 ], [ @.str.1, %1507 ]
  store i32 %1502, ptr %1277, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = load i32, ptr %1223, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror(i32 noundef %1515, ptr noundef nonnull @.str.4) #10
  %1517 = load i32, ptr %1223, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef nonnull @.str.4) #10
  %1519 = load i32, ptr %1277, align 4, !tbaa !5
  %1520 = call ptr @strerror(i32 noundef %1519) #10
  %1521 = load i32, ptr %1277, align 4, !tbaa !5
  %1522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1513, ptr noundef nonnull %.str.5.sink808, i32 noundef %1514, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 291, ptr noundef %1516, ptr noundef %1518, ptr noundef %1520, i32 noundef %1521) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1523:                                             ; preds = %1496
  %1524 = call i32 @mock_client(ptr noundef nonnull %15, i32 noundef 0, i32 noundef 1)
  br label %1525

1525:                                             ; preds = %1523, %1466
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #10
  %1526 = call ptr @s2n_config_new() #10
  store ptr %1526, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #10
  %1527 = getelementptr inbounds i8, ptr %15, i64 4
  %1528 = load i32, ptr %1527, align 4, !tbaa !15
  store i32 %1528, ptr %17, align 4, !tbaa !17
  %1529 = getelementptr inbounds i8, ptr %17, i64 4
  store i32 0, ptr %1529, align 4, !tbaa !19
  %1530 = getelementptr inbounds i8, ptr %17, i64 8
  store i32 1, ptr %1530, align 4, !tbaa !20
  %1531 = getelementptr inbounds i8, ptr %17, i64 12
  store i8 1, ptr %1531, align 4, !tbaa !21
  %1532 = getelementptr inbounds i8, ptr %17, i64 13
  store i8 122, ptr %1532, align 1, !tbaa !22
  %1533 = load i32, ptr @test_count, align 4, !tbaa !5
  %1534 = add nsw i32 %1533, 1
  store i32 %1534, ptr @test_count, align 4, !tbaa !5
  %1535 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %1526, ptr noundef nonnull @client_hello_send_alerts, ptr noundef nonnull %17) #10
  %1536 = icmp eq i32 %1535, -1
  br i1 %1536, label %1537, label %1559

1537:                                             ; preds = %1525
  %1538 = load i32, ptr %1277, align 4, !tbaa !5
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @s2n_print_stacktrace(ptr noundef %1539) #10
  %1541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1542 = trunc nuw i8 %1541 to i1
  br i1 %1542, label %1543, label %1547

1543:                                             ; preds = %1537
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = call i32 @fileno(ptr noundef %1544) #10
  %1546 = call i32 @isatty(i32 noundef %1545) #10
  %.not226 = icmp eq i32 %1546, 0
  br i1 %.not226, label %1547, label %1548

1547:                                             ; preds = %1543, %1537
  br label %1548

1548:                                             ; preds = %1543, %1547
  %.str.5.sink817 = phi ptr [ @.str.5, %1547 ], [ @.str.1, %1543 ]
  store i32 %1538, ptr %1277, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = load i32, ptr %1223, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror(i32 noundef %1551, ptr noundef nonnull @.str.4) #10
  %1553 = load i32, ptr %1223, align 4, !tbaa !5
  %1554 = call ptr @s2n_strerror_debug(i32 noundef %1553, ptr noundef nonnull @.str.4) #10
  %1555 = load i32, ptr %1277, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #10
  %1557 = load i32, ptr %1277, align 4, !tbaa !5
  %1558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1549, ptr noundef nonnull %.str.5.sink817, i32 noundef %1550, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.3, i32 noundef 300, ptr noundef %1552, ptr noundef %1554, ptr noundef %1556, i32 noundef %1557) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1559:                                             ; preds = %1525
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = add nsw i32 %1560, 1
  store i32 %1561, ptr @test_count, align 4, !tbaa !5
  %1562 = load ptr, ptr %8, align 8, !tbaa !9
  %1563 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1526, ptr noundef %1562) #10
  %1564 = icmp eq i32 %1563, -1
  br i1 %1564, label %1565, label %1587

1565:                                             ; preds = %1559
  %1566 = load i32, ptr %1277, align 4, !tbaa !5
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = call i32 @s2n_print_stacktrace(ptr noundef %1567) #10
  %1569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1570 = trunc nuw i8 %1569 to i1
  br i1 %1570, label %1571, label %1575

1571:                                             ; preds = %1565
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @fileno(ptr noundef %1572) #10
  %1574 = call i32 @isatty(i32 noundef %1573) #10
  %.not225 = icmp eq i32 %1574, 0
  br i1 %.not225, label %1575, label %1576

1575:                                             ; preds = %1571, %1565
  br label %1576

1576:                                             ; preds = %1571, %1575
  %.str.5.sink826 = phi ptr [ @.str.5, %1575 ], [ @.str.1, %1571 ]
  store i32 %1566, ptr %1277, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = load i32, ptr @test_count, align 4, !tbaa !5
  %1579 = load i32, ptr %1223, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror(i32 noundef %1579, ptr noundef nonnull @.str.4) #10
  %1581 = load i32, ptr %1223, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror_debug(i32 noundef %1581, ptr noundef nonnull @.str.4) #10
  %1583 = load i32, ptr %1277, align 4, !tbaa !5
  %1584 = call ptr @strerror(i32 noundef %1583) #10
  %1585 = load i32, ptr %1277, align 4, !tbaa !5
  %1586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1577, ptr noundef nonnull %.str.5.sink826, i32 noundef %1578, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 302, ptr noundef %1580, ptr noundef %1582, ptr noundef %1584, i32 noundef %1585) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1587:                                             ; preds = %1559
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %1589 = add nsw i32 %1588, 1
  store i32 %1589, ptr @test_count, align 4, !tbaa !5
  %1590 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1526, ptr noundef nonnull @.str.37) #10
  %1591 = icmp eq i32 %1590, -1
  br i1 %1591, label %1592, label %1614

1592:                                             ; preds = %1587
  %1593 = load i32, ptr %1277, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @s2n_print_stacktrace(ptr noundef %1594) #10
  %1596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1597 = trunc nuw i8 %1596 to i1
  br i1 %1597, label %1598, label %1602

1598:                                             ; preds = %1592
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @fileno(ptr noundef %1599) #10
  %1601 = call i32 @isatty(i32 noundef %1600) #10
  %.not224 = icmp eq i32 %1601, 0
  br i1 %.not224, label %1602, label %1603

1602:                                             ; preds = %1598, %1592
  br label %1603

1603:                                             ; preds = %1598, %1602
  %.str.5.sink835 = phi ptr [ @.str.5, %1602 ], [ @.str.1, %1598 ]
  store i32 %1593, ptr %1277, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = load i32, ptr %1223, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror(i32 noundef %1606, ptr noundef nonnull @.str.4) #10
  %1608 = load i32, ptr %1223, align 4, !tbaa !5
  %1609 = call ptr @s2n_strerror_debug(i32 noundef %1608, ptr noundef nonnull @.str.4) #10
  %1610 = load i32, ptr %1277, align 4, !tbaa !5
  %1611 = call ptr @strerror(i32 noundef %1610) #10
  %1612 = load i32, ptr %1277, align 4, !tbaa !5
  %1613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1604, ptr noundef nonnull %.str.5.sink835, i32 noundef %1605, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.3, i32 noundef 303, ptr noundef %1607, ptr noundef %1609, ptr noundef %1611, i32 noundef %1612) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1614:                                             ; preds = %1587
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = add nsw i32 %1615, 1
  store i32 %1616, ptr @test_count, align 4, !tbaa !5
  %1617 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %15, i32 noundef 1) #10
  %1618 = icmp eq i32 %1617, -1
  br i1 %1618, label %1619, label %1641

1619:                                             ; preds = %1614
  %1620 = load i32, ptr %1277, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @s2n_print_stacktrace(ptr noundef %1621) #10
  %1623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1624 = trunc nuw i8 %1623 to i1
  br i1 %1624, label %1625, label %1629

1625:                                             ; preds = %1619
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = call i32 @fileno(ptr noundef %1626) #10
  %1628 = call i32 @isatty(i32 noundef %1627) #10
  %.not223 = icmp eq i32 %1628, 0
  br i1 %.not223, label %1629, label %1630

1629:                                             ; preds = %1625, %1619
  br label %1630

1630:                                             ; preds = %1625, %1629
  %.str.5.sink844 = phi ptr [ @.str.5, %1629 ], [ @.str.1, %1625 ]
  store i32 %1620, ptr %1277, align 4, !tbaa !5
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = load i32, ptr %1223, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror(i32 noundef %1633, ptr noundef nonnull @.str.4) #10
  %1635 = load i32, ptr %1223, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror_debug(i32 noundef %1635, ptr noundef nonnull @.str.4) #10
  %1637 = load i32, ptr %1277, align 4, !tbaa !5
  %1638 = call ptr @strerror(i32 noundef %1637) #10
  %1639 = load i32, ptr %1277, align 4, !tbaa !5
  %1640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1631, ptr noundef nonnull %.str.5.sink844, i32 noundef %1632, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.3, i32 noundef 306, ptr noundef %1634, ptr noundef %1636, ptr noundef %1638, i32 noundef %1639) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1641:                                             ; preds = %1614
  %1642 = load i32, ptr @test_count, align 4, !tbaa !5
  %1643 = add nsw i32 %1642, 1
  store i32 %1643, ptr @test_count, align 4, !tbaa !5
  %1644 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1645 = icmp eq ptr %1644, null
  br i1 %1645, label %1646, label %1668

1646:                                             ; preds = %1641
  %1647 = load i32, ptr %1277, align 4, !tbaa !5
  %1648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1649 = call i32 @s2n_print_stacktrace(ptr noundef %1648) #10
  %1650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1651 = trunc nuw i8 %1650 to i1
  br i1 %1651, label %1652, label %1656

1652:                                             ; preds = %1646
  %1653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1654 = call i32 @fileno(ptr noundef %1653) #10
  %1655 = call i32 @isatty(i32 noundef %1654) #10
  %.not222 = icmp eq i32 %1655, 0
  br i1 %.not222, label %1656, label %1657

1656:                                             ; preds = %1652, %1646
  br label %1657

1657:                                             ; preds = %1652, %1656
  %.str.5.sink853 = phi ptr [ @.str.5, %1656 ], [ @.str.1, %1652 ]
  store i32 %1647, ptr %1277, align 4, !tbaa !5
  %1658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = load i32, ptr %1223, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror(i32 noundef %1660, ptr noundef nonnull @.str.4) #10
  %1662 = load i32, ptr %1223, align 4, !tbaa !5
  %1663 = call ptr @s2n_strerror_debug(i32 noundef %1662, ptr noundef nonnull @.str.4) #10
  %1664 = load i32, ptr %1277, align 4, !tbaa !5
  %1665 = call ptr @strerror(i32 noundef %1664) #10
  %1666 = load i32, ptr %1277, align 4, !tbaa !5
  %1667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1658, ptr noundef nonnull %.str.5.sink853, i32 noundef %1659, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.3, i32 noundef 308, ptr noundef %1661, ptr noundef %1663, ptr noundef %1665, i32 noundef %1666) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1668:                                             ; preds = %1641
  %1669 = load i32, ptr @test_count, align 4, !tbaa !5
  %1670 = add nsw i32 %1669, 1
  store i32 %1670, ptr @test_count, align 4, !tbaa !5
  %1671 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1644, ptr noundef %1526) #10
  %1672 = icmp eq i32 %1671, -1
  br i1 %1672, label %1673, label %1695

1673:                                             ; preds = %1668
  %1674 = load i32, ptr %1277, align 4, !tbaa !5
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @s2n_print_stacktrace(ptr noundef %1675) #10
  %1677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1678 = trunc nuw i8 %1677 to i1
  br i1 %1678, label %1679, label %1683

1679:                                             ; preds = %1673
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = call i32 @fileno(ptr noundef %1680) #10
  %1682 = call i32 @isatty(i32 noundef %1681) #10
  %.not221 = icmp eq i32 %1682, 0
  br i1 %.not221, label %1683, label %1684

1683:                                             ; preds = %1679, %1673
  br label %1684

1684:                                             ; preds = %1679, %1683
  %.str.5.sink862 = phi ptr [ @.str.5, %1683 ], [ @.str.1, %1679 ]
  store i32 %1674, ptr %1277, align 4, !tbaa !5
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = load i32, ptr @test_count, align 4, !tbaa !5
  %1687 = load i32, ptr %1223, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror(i32 noundef %1687, ptr noundef nonnull @.str.4) #10
  %1689 = load i32, ptr %1223, align 4, !tbaa !5
  %1690 = call ptr @s2n_strerror_debug(i32 noundef %1689, ptr noundef nonnull @.str.4) #10
  %1691 = load i32, ptr %1277, align 4, !tbaa !5
  %1692 = call ptr @strerror(i32 noundef %1691) #10
  %1693 = load i32, ptr %1277, align 4, !tbaa !5
  %1694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1685, ptr noundef nonnull %.str.5.sink862, i32 noundef %1686, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.3, i32 noundef 309, ptr noundef %1688, ptr noundef %1690, ptr noundef %1692, i32 noundef %1693) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1695:                                             ; preds = %1668
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = add nsw i32 %1696, 1
  store i32 %1697, ptr @test_count, align 4, !tbaa !5
  %1698 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1644, ptr noundef nonnull %15) #10
  %1699 = icmp eq i32 %1698, -1
  br i1 %1699, label %1700, label %1722

1700:                                             ; preds = %1695
  %1701 = load i32, ptr %1277, align 4, !tbaa !5
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = call i32 @s2n_print_stacktrace(ptr noundef %1702) #10
  %1704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1705 = trunc nuw i8 %1704 to i1
  br i1 %1705, label %1706, label %1710

1706:                                             ; preds = %1700
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = call i32 @fileno(ptr noundef %1707) #10
  %1709 = call i32 @isatty(i32 noundef %1708) #10
  %.not220 = icmp eq i32 %1709, 0
  br i1 %.not220, label %1710, label %1711

1710:                                             ; preds = %1706, %1700
  br label %1711

1711:                                             ; preds = %1706, %1710
  %.str.5.sink871 = phi ptr [ @.str.5, %1710 ], [ @.str.1, %1706 ]
  store i32 %1701, ptr %1277, align 4, !tbaa !5
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = load i32, ptr @test_count, align 4, !tbaa !5
  %1714 = load i32, ptr %1223, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror(i32 noundef %1714, ptr noundef nonnull @.str.4) #10
  %1716 = load i32, ptr %1223, align 4, !tbaa !5
  %1717 = call ptr @s2n_strerror_debug(i32 noundef %1716, ptr noundef nonnull @.str.4) #10
  %1718 = load i32, ptr %1277, align 4, !tbaa !5
  %1719 = call ptr @strerror(i32 noundef %1718) #10
  %1720 = load i32, ptr %1277, align 4, !tbaa !5
  %1721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1712, ptr noundef nonnull %.str.5.sink871, i32 noundef %1713, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.3, i32 noundef 312, ptr noundef %1715, ptr noundef %1717, ptr noundef %1719, i32 noundef %1720) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1722:                                             ; preds = %1695
  %1723 = load i32, ptr @test_count, align 4, !tbaa !5
  %1724 = add nsw i32 %1723, 1
  store i32 %1724, ptr @test_count, align 4, !tbaa !5
  %1725 = call i32 @s2n_negotiate(ptr noundef nonnull %1644, ptr noundef nonnull %4) #10
  %1726 = icmp eq i32 %1725, -1
  br i1 %1726, label %1749, label %1727

1727:                                             ; preds = %1722
  %1728 = load i32, ptr %1277, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = call i32 @s2n_print_stacktrace(ptr noundef %1729) #10
  %1731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1732 = trunc nuw i8 %1731 to i1
  br i1 %1732, label %1733, label %1737

1733:                                             ; preds = %1727
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = call i32 @fileno(ptr noundef %1734) #10
  %1736 = call i32 @isatty(i32 noundef %1735) #10
  %.not205 = icmp eq i32 %1736, 0
  br i1 %.not205, label %1737, label %1738

1737:                                             ; preds = %1733, %1727
  br label %1738

1738:                                             ; preds = %1733, %1737
  %.str.5.sink880 = phi ptr [ @.str.5, %1737 ], [ @.str.1, %1733 ]
  store i32 %1728, ptr %1277, align 4, !tbaa !5
  %1739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1740 = load i32, ptr @test_count, align 4, !tbaa !5
  %1741 = load i32, ptr %1223, align 4, !tbaa !5
  %1742 = call ptr @s2n_strerror(i32 noundef %1741, ptr noundef nonnull @.str.4) #10
  %1743 = load i32, ptr %1223, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror_debug(i32 noundef %1743, ptr noundef nonnull @.str.4) #10
  %1745 = load i32, ptr %1277, align 4, !tbaa !5
  %1746 = call ptr @strerror(i32 noundef %1745) #10
  %1747 = load i32, ptr %1277, align 4, !tbaa !5
  %1748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1739, ptr noundef nonnull %.str.5.sink880, i32 noundef %1740, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.3, i32 noundef 315, ptr noundef %1742, ptr noundef %1744, ptr noundef %1746, i32 noundef %1747) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1749:                                             ; preds = %1722
  %1750 = load i32, ptr @test_count, align 4, !tbaa !5
  %1751 = add nsw i32 %1750, 1
  store i32 %1751, ptr @test_count, align 4, !tbaa !5
  %1752 = load i32, ptr %1223, align 4, !tbaa !5
  %1753 = icmp eq i32 %1752, 0
  br i1 %1753, label %1754, label %1776

1754:                                             ; preds = %1749
  %1755 = load i32, ptr %1277, align 4, !tbaa !5
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @s2n_print_stacktrace(ptr noundef %1756) #10
  %1758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1759 = trunc nuw i8 %1758 to i1
  br i1 %1759, label %1760, label %1764

1760:                                             ; preds = %1754
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = call i32 @fileno(ptr noundef %1761) #10
  %1763 = call i32 @isatty(i32 noundef %1762) #10
  %.not219 = icmp eq i32 %1763, 0
  br i1 %.not219, label %1764, label %1765

1764:                                             ; preds = %1760, %1754
  br label %1765

1765:                                             ; preds = %1760, %1764
  %.str.5.sink889 = phi ptr [ @.str.5, %1764 ], [ @.str.1, %1760 ]
  store i32 %1755, ptr %1277, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = load i32, ptr %1223, align 4, !tbaa !5
  %1769 = call ptr @s2n_strerror(i32 noundef %1768, ptr noundef nonnull @.str.4) #10
  %1770 = load i32, ptr %1223, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror_debug(i32 noundef %1770, ptr noundef nonnull @.str.4) #10
  %1772 = load i32, ptr %1277, align 4, !tbaa !5
  %1773 = call ptr @strerror(i32 noundef %1772) #10
  %1774 = load i32, ptr %1277, align 4, !tbaa !5
  %1775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1766, ptr noundef nonnull %.str.5.sink889, i32 noundef %1767, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.3, i32 noundef 315, ptr noundef %1769, ptr noundef %1771, ptr noundef %1773, i32 noundef %1774) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1776:                                             ; preds = %1749
  %1777 = add nsw i32 %1750, 2
  store i32 %1777, ptr @test_count, align 4, !tbaa !5
  %1778 = call ptr @s2n_strerror_debug(i32 noundef %1752, ptr noundef nonnull @.str.4) #10
  %1779 = icmp eq ptr %1778, null
  br i1 %1779, label %1780, label %1802

1780:                                             ; preds = %1776
  %1781 = load i32, ptr %1277, align 4, !tbaa !5
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = call i32 @s2n_print_stacktrace(ptr noundef %1782) #10
  %1784 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1785 = trunc nuw i8 %1784 to i1
  br i1 %1785, label %1786, label %1790

1786:                                             ; preds = %1780
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = call i32 @fileno(ptr noundef %1787) #10
  %1789 = call i32 @isatty(i32 noundef %1788) #10
  %.not218 = icmp eq i32 %1789, 0
  br i1 %.not218, label %1790, label %1791

1790:                                             ; preds = %1786, %1780
  br label %1791

1791:                                             ; preds = %1786, %1790
  %.str.5.sink898 = phi ptr [ @.str.5, %1790 ], [ @.str.1, %1786 ]
  store i32 %1781, ptr %1277, align 4, !tbaa !5
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = load i32, ptr @test_count, align 4, !tbaa !5
  %1794 = load i32, ptr %1223, align 4, !tbaa !5
  %1795 = call ptr @s2n_strerror(i32 noundef %1794, ptr noundef nonnull @.str.4) #10
  %1796 = load i32, ptr %1223, align 4, !tbaa !5
  %1797 = call ptr @s2n_strerror_debug(i32 noundef %1796, ptr noundef nonnull @.str.4) #10
  %1798 = load i32, ptr %1277, align 4, !tbaa !5
  %1799 = call ptr @strerror(i32 noundef %1798) #10
  %1800 = load i32, ptr %1277, align 4, !tbaa !5
  %1801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1792, ptr noundef nonnull %.str.5.sink898, i32 noundef %1793, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.3, i32 noundef 315, ptr noundef %1795, ptr noundef %1797, ptr noundef %1799, i32 noundef %1800) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1802:                                             ; preds = %1776
  store i32 0, ptr %1223, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %1277, align 4, !tbaa !5
  %1803 = load i32, ptr @test_count, align 4, !tbaa !5
  %1804 = add nsw i32 %1803, 1
  store i32 %1804, ptr @test_count, align 4, !tbaa !5
  %1805 = getelementptr inbounds i8, ptr %1644, i64 220
  %1806 = load i8, ptr %1805, align 4, !tbaa !23
  %1807 = icmp eq i8 %1806, 33
  br i1 %1807, label %1830, label %1808

1808:                                             ; preds = %1802
  %1809 = load i32, ptr %1277, align 4, !tbaa !5
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = call i32 @s2n_print_stacktrace(ptr noundef %1810) #10
  %1812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1813 = trunc nuw i8 %1812 to i1
  br i1 %1813, label %1814, label %1818

1814:                                             ; preds = %1808
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = call i32 @fileno(ptr noundef %1815) #10
  %1817 = call i32 @isatty(i32 noundef %1816) #10
  %.not206 = icmp eq i32 %1817, 0
  br i1 %.not206, label %1818, label %1819

1818:                                             ; preds = %1814, %1808
  br label %1819

1819:                                             ; preds = %1814, %1818
  %.str.5.sink907 = phi ptr [ @.str.5, %1818 ], [ @.str.1, %1814 ]
  store i32 %1809, ptr %1277, align 4, !tbaa !5
  %1820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1821 = load i32, ptr @test_count, align 4, !tbaa !5
  %1822 = load i32, ptr %1223, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror(i32 noundef %1822, ptr noundef nonnull @.str.4) #10
  %1824 = load i32, ptr %1223, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror_debug(i32 noundef %1824, ptr noundef nonnull @.str.4) #10
  %1826 = load i32, ptr %1277, align 4, !tbaa !5
  %1827 = call ptr @strerror(i32 noundef %1826) #10
  %1828 = load i32, ptr %1277, align 4, !tbaa !5
  %1829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1820, ptr noundef nonnull %.str.5.sink907, i32 noundef %1821, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.3, i32 noundef 316, ptr noundef %1823, ptr noundef %1825, ptr noundef %1827, i32 noundef %1828) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1830:                                             ; preds = %1802
  %1831 = add nsw i32 %1803, 2
  store i32 %1831, ptr @test_count, align 4, !tbaa !5
  %1832 = load i32, ptr %1529, align 4, !tbaa !19
  %1833 = icmp eq i32 %1832, 1
  br i1 %1833, label %1856, label %1834

1834:                                             ; preds = %1830
  %1835 = load i32, ptr %1277, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = call i32 @s2n_print_stacktrace(ptr noundef %1836) #10
  %1838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1839 = trunc nuw i8 %1838 to i1
  br i1 %1839, label %1840, label %1844

1840:                                             ; preds = %1834
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = call i32 @fileno(ptr noundef %1841) #10
  %1843 = call i32 @isatty(i32 noundef %1842) #10
  %.not207 = icmp eq i32 %1843, 0
  br i1 %.not207, label %1844, label %1845

1844:                                             ; preds = %1840, %1834
  br label %1845

1845:                                             ; preds = %1840, %1844
  %.str.5.sink916 = phi ptr [ @.str.5, %1844 ], [ @.str.1, %1840 ]
  store i32 %1835, ptr %1277, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = load i32, ptr %1223, align 4, !tbaa !5
  %1849 = call ptr @s2n_strerror(i32 noundef %1848, ptr noundef nonnull @.str.4) #10
  %1850 = load i32, ptr %1223, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror_debug(i32 noundef %1850, ptr noundef nonnull @.str.4) #10
  %1852 = load i32, ptr %1277, align 4, !tbaa !5
  %1853 = call ptr @strerror(i32 noundef %1852) #10
  %1854 = load i32, ptr %1277, align 4, !tbaa !5
  %1855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1846, ptr noundef nonnull %.str.5.sink916, i32 noundef %1847, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.3, i32 noundef 319, ptr noundef %1849, ptr noundef %1851, ptr noundef %1853, i32 noundef %1854) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1856:                                             ; preds = %1830
  %1857 = add nsw i32 %1803, 3
  store i32 %1857, ptr @test_count, align 4, !tbaa !5
  %1858 = call i32 @s2n_connection_free(ptr noundef nonnull %1644) #10
  %1859 = icmp eq i32 %1858, -1
  br i1 %1859, label %1860, label %1882

1860:                                             ; preds = %1856
  %1861 = load i32, ptr %1277, align 4, !tbaa !5
  %1862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1863 = call i32 @s2n_print_stacktrace(ptr noundef %1862) #10
  %1864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1865 = trunc nuw i8 %1864 to i1
  br i1 %1865, label %1866, label %1870

1866:                                             ; preds = %1860
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = call i32 @fileno(ptr noundef %1867) #10
  %1869 = call i32 @isatty(i32 noundef %1868) #10
  %.not217 = icmp eq i32 %1869, 0
  br i1 %.not217, label %1870, label %1871

1870:                                             ; preds = %1866, %1860
  br label %1871

1871:                                             ; preds = %1866, %1870
  %.str.5.sink925 = phi ptr [ @.str.5, %1870 ], [ @.str.1, %1866 ]
  store i32 %1861, ptr %1277, align 4, !tbaa !5
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = load i32, ptr %1223, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror(i32 noundef %1874, ptr noundef nonnull @.str.4) #10
  %1876 = load i32, ptr %1223, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror_debug(i32 noundef %1876, ptr noundef nonnull @.str.4) #10
  %1878 = load i32, ptr %1277, align 4, !tbaa !5
  %1879 = call ptr @strerror(i32 noundef %1878) #10
  %1880 = load i32, ptr %1277, align 4, !tbaa !5
  %1881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1872, ptr noundef nonnull %.str.5.sink925, i32 noundef %1873, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.3, i32 noundef 321, ptr noundef %1875, ptr noundef %1877, ptr noundef %1879, i32 noundef %1880) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1882:                                             ; preds = %1856
  %1883 = load i32, ptr @test_count, align 4, !tbaa !5
  %1884 = add nsw i32 %1883, 1
  store i32 %1884, ptr @test_count, align 4, !tbaa !5
  %1885 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %15, i32 noundef 0) #10
  %1886 = icmp eq i32 %1885, -1
  br i1 %1886, label %1887, label %1909

1887:                                             ; preds = %1882
  %1888 = load i32, ptr %1277, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = call i32 @s2n_print_stacktrace(ptr noundef %1889) #10
  %1891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1892 = trunc nuw i8 %1891 to i1
  br i1 %1892, label %1893, label %1897

1893:                                             ; preds = %1887
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = call i32 @fileno(ptr noundef %1894) #10
  %1896 = call i32 @isatty(i32 noundef %1895) #10
  %.not216 = icmp eq i32 %1896, 0
  br i1 %.not216, label %1897, label %1898

1897:                                             ; preds = %1893, %1887
  br label %1898

1898:                                             ; preds = %1893, %1897
  %.str.5.sink934 = phi ptr [ @.str.5, %1897 ], [ @.str.1, %1893 ]
  store i32 %1888, ptr %1277, align 4, !tbaa !5
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = load i32, ptr @test_count, align 4, !tbaa !5
  %1901 = load i32, ptr %1223, align 4, !tbaa !5
  %1902 = call ptr @s2n_strerror(i32 noundef %1901, ptr noundef nonnull @.str.4) #10
  %1903 = load i32, ptr %1223, align 4, !tbaa !5
  %1904 = call ptr @s2n_strerror_debug(i32 noundef %1903, ptr noundef nonnull @.str.4) #10
  %1905 = load i32, ptr %1277, align 4, !tbaa !5
  %1906 = call ptr @strerror(i32 noundef %1905) #10
  %1907 = load i32, ptr %1277, align 4, !tbaa !5
  %1908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1899, ptr noundef nonnull %.str.5.sink934, i32 noundef %1900, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 322, ptr noundef %1902, ptr noundef %1904, ptr noundef %1906, i32 noundef %1907) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1909:                                             ; preds = %1882
  %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 = call i32 @waitpid(i32 noundef -1, ptr noundef nonnull %5, i32 noundef 0) #10
  %1913 = icmp eq i32 %1912, %1467
  br i1 %1913, label %1936, label %1914

1914:                                             ; preds = %1909
  %1915 = load i32, ptr %1277, align 4, !tbaa !5
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = call i32 @s2n_print_stacktrace(ptr noundef %1916) #10
  %1918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1919 = trunc nuw i8 %1918 to i1
  br i1 %1919, label %1920, label %1924

1920:                                             ; preds = %1914
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = call i32 @fileno(ptr noundef %1921) #10
  %1923 = call i32 @isatty(i32 noundef %1922) #10
  %.not208 = icmp eq i32 %1923, 0
  br i1 %.not208, label %1924, label %1925

1924:                                             ; preds = %1920, %1914
  br label %1925

1925:                                             ; preds = %1920, %1924
  %.str.5.sink943 = phi ptr [ @.str.5, %1924 ], [ @.str.1, %1920 ]
  store i32 %1915, ptr %1277, align 4, !tbaa !5
  %1926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1927 = load i32, ptr @test_count, align 4, !tbaa !5
  %1928 = load i32, ptr %1223, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror(i32 noundef %1928, ptr noundef nonnull @.str.4) #10
  %1930 = load i32, ptr %1223, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror_debug(i32 noundef %1930, ptr noundef nonnull @.str.4) #10
  %1932 = load i32, ptr %1277, align 4, !tbaa !5
  %1933 = call ptr @strerror(i32 noundef %1932) #10
  %1934 = load i32, ptr %1277, align 4, !tbaa !5
  %1935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1926, ptr noundef nonnull %.str.5.sink943, i32 noundef %1927, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.3, i32 noundef 325, ptr noundef %1929, ptr noundef %1931, ptr noundef %1933, i32 noundef %1934) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1936:                                             ; preds = %1909
  %1937 = load i32, ptr @test_count, align 4, !tbaa !5
  %1938 = add nsw i32 %1937, 1
  store i32 %1938, ptr @test_count, align 4, !tbaa !5
  %1939 = load i32, ptr %5, align 4, !tbaa !5
  %1940 = icmp eq i32 %1939, 0
  br i1 %1940, label %1963, label %1941

1941:                                             ; preds = %1936
  %1942 = load i32, ptr %1277, align 4, !tbaa !5
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = call i32 @s2n_print_stacktrace(ptr noundef %1943) #10
  %1945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1946 = trunc nuw i8 %1945 to i1
  br i1 %1946, label %1947, label %1951

1947:                                             ; preds = %1941
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = call i32 @fileno(ptr noundef %1948) #10
  %1950 = call i32 @isatty(i32 noundef %1949) #10
  %.not209 = icmp eq i32 %1950, 0
  br i1 %.not209, label %1951, label %1952

1951:                                             ; preds = %1947, %1941
  br label %1952

1952:                                             ; preds = %1947, %1951
  %.str.5.sink952 = phi ptr [ @.str.5, %1951 ], [ @.str.1, %1947 ]
  store i32 %1942, ptr %1277, align 4, !tbaa !5
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = load i32, ptr %1223, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror(i32 noundef %1955, ptr noundef nonnull @.str.4) #10
  %1957 = load i32, ptr %1223, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror_debug(i32 noundef %1957, ptr noundef nonnull @.str.4) #10
  %1959 = load i32, ptr %1277, align 4, !tbaa !5
  %1960 = call ptr @strerror(i32 noundef %1959) #10
  %1961 = load i32, ptr %1277, align 4, !tbaa !5
  %1962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1953, ptr noundef nonnull %.str.5.sink952, i32 noundef %1954, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.3, i32 noundef 326, ptr noundef %1956, ptr noundef %1958, ptr noundef %1960, i32 noundef %1961) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1963:                                             ; preds = %1936
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #10
  %1964 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  %1965 = load i32, ptr @test_count, align 4, !tbaa !5
  %1966 = add nsw i32 %1965, 1
  store i32 %1966, ptr @test_count, align 4, !tbaa !5
  %1967 = call i32 @cleanup(ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8)
  %1968 = call zeroext i1 @s2n_result_is_ok(i32 %1967)
  br i1 %1968, label %1991, label %1969

1969:                                             ; preds = %1963
  %1970 = load i32, ptr %1277, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = call i32 @s2n_print_stacktrace(ptr noundef %1971) #10
  %1973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1974 = trunc nuw i8 %1973 to i1
  br i1 %1974, label %1975, label %1979

1975:                                             ; preds = %1969
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = call i32 @fileno(ptr noundef %1976) #10
  %1978 = call i32 @isatty(i32 noundef %1977) #10
  %.not210 = icmp eq i32 %1978, 0
  br i1 %.not210, label %1979, label %1980

1979:                                             ; preds = %1975, %1969
  br label %1980

1980:                                             ; preds = %1975, %1979
  %.str.5.sink961 = phi ptr [ @.str.5, %1979 ], [ @.str.1, %1975 ]
  store i32 %1970, ptr %1277, align 4, !tbaa !5
  %1981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1982 = load i32, ptr @test_count, align 4, !tbaa !5
  %1983 = load i32, ptr %1223, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror(i32 noundef %1983, ptr noundef nonnull @.str.4) #10
  %1985 = load i32, ptr %1223, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror_debug(i32 noundef %1985, ptr noundef nonnull @.str.4) #10
  %1987 = load i32, ptr %1277, align 4, !tbaa !5
  %1988 = call ptr @strerror(i32 noundef %1987) #10
  %1989 = load i32, ptr %1277, align 4, !tbaa !5
  %1990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1981, ptr noundef nonnull %.str.5.sink961, i32 noundef %1982, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 330, ptr noundef %1984, ptr noundef %1986, ptr noundef %1988, i32 noundef %1989) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1991:                                             ; preds = %1963
  %1992 = call i32 @s2n_cleanup() #10
  %1993 = icmp eq i32 %1992, -1
  br i1 %1993, label %1994, label %2016

1994:                                             ; preds = %1991
  %1995 = load i32, ptr %1277, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = call i32 @s2n_print_stacktrace(ptr noundef %1996) #10
  %1998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1999 = trunc nuw i8 %1998 to i1
  br i1 %1999, label %2000, label %2004

2000:                                             ; preds = %1994
  %2001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2002 = call i32 @fileno(ptr noundef %2001) #10
  %2003 = call i32 @isatty(i32 noundef %2002) #10
  %.not215 = icmp eq i32 %2003, 0
  br i1 %.not215, label %2004, label %2005

2004:                                             ; preds = %2000, %1994
  br label %2005

2005:                                             ; preds = %2000, %2004
  %.str.5.sink970 = phi ptr [ @.str.5, %2004 ], [ @.str.1, %2000 ]
  store i32 %1995, ptr %1277, align 4, !tbaa !5
  %2006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2007 = load i32, ptr @test_count, align 4, !tbaa !5
  %2008 = load i32, ptr %1223, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror(i32 noundef %2008, ptr noundef nonnull @.str.4) #10
  %2010 = load i32, ptr %1223, align 4, !tbaa !5
  %2011 = call ptr @s2n_strerror_debug(i32 noundef %2010, ptr noundef nonnull @.str.4) #10
  %2012 = load i32, ptr %1277, align 4, !tbaa !5
  %2013 = call ptr @strerror(i32 noundef %2012) #10
  %2014 = load i32, ptr %1277, align 4, !tbaa !5
  %2015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2006, ptr noundef nonnull %.str.5.sink970, i32 noundef %2007, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.3, i32 noundef 332, ptr noundef %2009, ptr noundef %2011, ptr noundef %2013, i32 noundef %2014) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2016:                                             ; preds = %1991
  %2017 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %2018 = icmp eq i32 %2017, -1
  br i1 %2018, label %2019, label %2041

2019:                                             ; preds = %2016
  %2020 = load i32, ptr %1277, align 4, !tbaa !5
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = call i32 @s2n_print_stacktrace(ptr noundef %2021) #10
  %2023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2024 = trunc nuw i8 %2023 to i1
  br i1 %2024, label %2025, label %2029

2025:                                             ; preds = %2019
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = call i32 @fileno(ptr noundef %2026) #10
  %2028 = call i32 @isatty(i32 noundef %2027) #10
  %.not214 = icmp eq i32 %2028, 0
  br i1 %.not214, label %2029, label %2030

2029:                                             ; preds = %2025, %2019
  br label %2030

2030:                                             ; preds = %2025, %2029
  %.str.5.sink979 = phi ptr [ @.str.5, %2029 ], [ @.str.1, %2025 ]
  store i32 %2020, ptr %1277, align 4, !tbaa !5
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = load i32, ptr @test_count, align 4, !tbaa !5
  %2033 = load i32, ptr %1223, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror(i32 noundef %2033, ptr noundef nonnull @.str.4) #10
  %2035 = load i32, ptr %1223, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror_debug(i32 noundef %2035, ptr noundef nonnull @.str.4) #10
  %2037 = load i32, ptr %1277, align 4, !tbaa !5
  %2038 = call ptr @strerror(i32 noundef %2037) #10
  %2039 = load i32, ptr %1277, align 4, !tbaa !5
  %2040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2031, ptr noundef nonnull %.str.5.sink979, i32 noundef %2032, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.3, i32 noundef 332, ptr noundef %2034, ptr noundef %2036, ptr noundef %2038, i32 noundef %2039) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2041:                                             ; preds = %2016
  %2042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2043 = trunc nuw i8 %2042 to i1
  br i1 %2043, label %2044, label %2055

2044:                                             ; preds = %2041
  %2045 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2046 = call i32 @fileno(ptr noundef %2045) #10
  %2047 = call i32 @isatty(i32 noundef %2046) #10
  %.not211 = icmp eq i32 %2047, 0
  br i1 %.not211, label %2055, label %2048

2048:                                             ; preds = %2044
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not213 = icmp eq i32 %2049, 0
  %2050 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not213, label %2053, label %2051

2051:                                             ; preds = %2048
  %2052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2050, ptr noundef nonnull @.str.47, i32 noundef %2049) #10
  br label %2062

2053:                                             ; preds = %2048
  %2054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2050, ptr noundef nonnull @.str.48) #10
  br label %2062

2055:                                             ; preds = %2044, %2041
  %2056 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not212 = icmp eq i32 %2056, 0
  %2057 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not212, label %2060, label %2058

2058:                                             ; preds = %2055
  %2059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2057, ptr noundef nonnull @.str.49, i32 noundef %2056) #10
  br label %2062

2060:                                             ; preds = %2055
  %2061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2057, ptr noundef nonnull @.str.50) #10
  br label %2062

2062:                                             ; preds = %2058, %2060, %2051, %2053
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 65535, ptr nonnull %3) #10
  ret i32 0
}

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @signal(i32 noundef, ptr noundef) 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_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_io_pair_init(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

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

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

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


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