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

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

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

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

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

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare ptr @s2n_config_new() #2

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

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

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

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

declare i32 @s2n_connection_release_buffers(ptr noundef) #2

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

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca [2 x ptr], align 16
  %20 = alloca %struct.s2n_test_io_pair, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca [65535 x i8], align 16
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  store ptr null, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  store i32 0, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  store ptr null, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %62

62:                                               ; preds = %2
  br label %63

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

68:                                               ; preds = %63
  %69 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %70 = icmp eq i32 %69, -1
  br i1 %70, label %71, label %124

71:                                               ; preds = %68
  br label %72

72:                                               ; preds = %71
  br label %73

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

80:                                               ; preds = %73
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = call i32 @fileno(ptr noundef %81) #8
  %83 = call i32 @isatty(i32 noundef %82) #8
  %84 = icmp ne i32 %83, 0
  br i1 %84, label %85, label %102

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

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

119:                                              ; preds = %102, %85
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %120

120:                                              ; preds = %119
  br label %121

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

122:                                              ; No predecessors!
  br label %123

123:                                              ; preds = %122
  br label %124

124:                                              ; preds = %123, %68
  br label %125

125:                                              ; preds = %124
  br label %126

126:                                              ; preds = %125
  br label %127

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

132:                                              ; preds = %127
  br label %133

133:                                              ; preds = %132
  br label %134

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

141:                                              ; preds = %134
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = call i32 @fileno(ptr noundef %142) #8
  %144 = call i32 @isatty(i32 noundef %143) #8
  %145 = icmp ne i32 %144, 0
  br i1 %145, label %146, label %163

146:                                              ; preds = %141
  %147 = load i32, ptr %14, align 4, !tbaa !5
  %148 = call ptr @__errno_location() #9
  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() #9
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = call ptr @strerror(i32 noundef %158) #8
  %160 = call ptr @__errno_location() #9
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef @.str.2, i32 noundef %150, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 109, ptr noundef %153, ptr noundef %156, ptr noundef %159, i32 noundef %161) #8
  br label %180

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

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

181:                                              ; preds = %180
  br label %182

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

183:                                              ; No predecessors!
  br label %184

184:                                              ; preds = %183
  br label %185

185:                                              ; preds = %184, %127
  br label %186

186:                                              ; preds = %185
  br label %187

187:                                              ; preds = %186
  br label %188

188:                                              ; preds = %187
  br label %189

189:                                              ; preds = %188
  br label %190

190:                                              ; preds = %189
  %191 = call i32 @s2n_init()
  %192 = icmp eq i32 %191, -1
  br i1 %192, label %193, label %246

193:                                              ; preds = %190
  br label %194

194:                                              ; preds = %193
  br label %195

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

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

207:                                              ; preds = %202
  %208 = load i32, ptr %15, align 4, !tbaa !5
  %209 = call ptr @__errno_location() #9
  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() #9
  %219 = load i32, ptr %218, align 4, !tbaa !5
  %220 = call ptr @strerror(i32 noundef %219) #8
  %221 = call ptr @__errno_location() #9
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %210, ptr noundef @.str.2, i32 noundef %211, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 109, ptr noundef %214, ptr noundef %217, ptr noundef %220, i32 noundef %222) #8
  br label %241

224:                                              ; preds = %202, %195
  %225 = load i32, ptr %15, align 4, !tbaa !5
  %226 = call ptr @__errno_location() #9
  store i32 %225, ptr %226, align 4, !tbaa !5
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = load i32, ptr @test_count, align 4, !tbaa !5
  %229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = call ptr @s2n_strerror(i32 noundef %230, ptr noundef @.str.4)
  %232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef @.str.4)
  %235 = call ptr @__errno_location() #9
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call ptr @strerror(i32 noundef %236) #8
  %238 = call ptr @__errno_location() #9
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %227, ptr noundef @.str.5, i32 noundef %228, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 109, ptr noundef %231, ptr noundef %234, ptr noundef %237, i32 noundef %239) #8
  br label %241

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

242:                                              ; preds = %241
  br label %243

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

244:                                              ; No predecessors!
  br label %245

245:                                              ; preds = %244
  br label %246

246:                                              ; preds = %245, %190
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  br label %250

250:                                              ; preds = %249
  br label %251

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

256:                                              ; preds = %251
  br label %257

257:                                              ; preds = %256
  br label %258

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

265:                                              ; preds = %258
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = call i32 @fileno(ptr noundef %266) #8
  %268 = call i32 @isatty(i32 noundef %267) #8
  %269 = icmp ne i32 %268, 0
  br i1 %269, label %270, label %287

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

287:                                              ; preds = %265, %258
  %288 = load i32, ptr %16, align 4, !tbaa !5
  %289 = call ptr @__errno_location() #9
  store i32 %288, ptr %289, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call ptr @s2n_strerror(i32 noundef %293, ptr noundef @.str.4)
  %295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror_debug(i32 noundef %296, ptr noundef @.str.4)
  %298 = call ptr @__errno_location() #9
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @strerror(i32 noundef %299) #8
  %301 = call ptr @__errno_location() #9
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef @.str.5, i32 noundef %291, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 110, ptr noundef %294, ptr noundef %297, ptr noundef %300, i32 noundef %302) #8
  br label %304

304:                                              ; preds = %287, %270
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %305

305:                                              ; preds = %304
  br label %306

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

307:                                              ; No predecessors!
  br label %308

308:                                              ; preds = %307
  br label %309

309:                                              ; preds = %308, %251
  br label %310

310:                                              ; preds = %309
  br label %311

311:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 0, ptr %17, align 4, !tbaa !5
  br label %312

312:                                              ; preds = %2214, %311
  %313 = load i32, ptr %17, align 4, !tbaa !5
  %314 = icmp sle i32 %313, 1
  br i1 %314, label %316, label %315

315:                                              ; preds = %312
  store i32 30, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %2217

316:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  br label %317

317:                                              ; preds = %316
  %318 = load i32, ptr @test_count, align 4, !tbaa !5
  %319 = add nsw i32 %318, 1
  store i32 %319, ptr @test_count, align 4, !tbaa !5
  %320 = call i32 @s2n_io_pair_init(ptr noundef %20)
  %321 = icmp eq i32 %320, -1
  br i1 %321, label %322, label %375

322:                                              ; preds = %317
  br label %323

323:                                              ; preds = %322
  br label %324

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

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

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

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

370:                                              ; preds = %353, %336
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %371

371:                                              ; preds = %370
  br label %372

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

373:                                              ; No predecessors!
  br label %374

374:                                              ; preds = %373
  br label %375

375:                                              ; preds = %374, %317
  br label %376

376:                                              ; preds = %375
  br label %377

377:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %378 = call i32 @fork() #8
  store i32 %378, ptr %22, align 4, !tbaa !5
  %379 = load i32, ptr %22, align 4, !tbaa !5
  %380 = icmp eq i32 %379, 0
  br i1 %380, label %381, label %443

381:                                              ; preds = %377
  br label %382

382:                                              ; preds = %381
  %383 = load i32, ptr @test_count, align 4, !tbaa !5
  %384 = add nsw i32 %383, 1
  store i32 %384, ptr @test_count, align 4, !tbaa !5
  %385 = call i32 @s2n_io_pair_close_one_end(ptr noundef %20, i32 noundef 0)
  %386 = icmp eq i32 %385, -1
  br i1 %386, label %387, label %440

387:                                              ; preds = %382
  br label %388

388:                                              ; preds = %387
  br label %389

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

396:                                              ; preds = %389
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = call i32 @fileno(ptr noundef %397) #8
  %399 = call i32 @isatty(i32 noundef %398) #8
  %400 = icmp ne i32 %399, 0
  br i1 %400, label %401, label %418

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

418:                                              ; preds = %396, %389
  %419 = load i32, ptr %23, align 4, !tbaa !5
  %420 = call ptr @__errno_location() #9
  store i32 %419, ptr %420, align 4, !tbaa !5
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = load i32, ptr @test_count, align 4, !tbaa !5
  %423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = call ptr @s2n_strerror(i32 noundef %424, ptr noundef @.str.4)
  %426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror_debug(i32 noundef %427, ptr noundef @.str.4)
  %429 = call ptr @__errno_location() #9
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = call ptr @strerror(i32 noundef %430) #8
  %432 = call ptr @__errno_location() #9
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %421, ptr noundef @.str.5, i32 noundef %422, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 122, ptr noundef %425, ptr noundef %428, ptr noundef %431, i32 noundef %433) #8
  br label %435

435:                                              ; preds = %418, %401
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %436

436:                                              ; preds = %435
  br label %437

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

438:                                              ; No predecessors!
  br label %439

439:                                              ; preds = %438
  br label %440

440:                                              ; preds = %439, %382
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  call void @mock_client(ptr noundef %20)
  br label %443

443:                                              ; preds = %442, %377
  br label %444

444:                                              ; preds = %443
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr @test_count, align 4, !tbaa !5
  %447 = call noalias ptr @malloc(i64 noundef 12000) #11
  store ptr %447, ptr %10, align 8, !tbaa !9
  %448 = icmp eq ptr %447, null
  br i1 %448, label %449, label %502

449:                                              ; preds = %444
  br label %450

450:                                              ; preds = %449
  br label %451

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

458:                                              ; preds = %451
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @fileno(ptr noundef %459) #8
  %461 = call i32 @isatty(i32 noundef %460) #8
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %480

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

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

497:                                              ; preds = %480, %463
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %498

498:                                              ; preds = %497
  br label %499

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

500:                                              ; No predecessors!
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501, %444
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr @test_count, align 4, !tbaa !5
  %508 = call noalias ptr @malloc(i64 noundef 12000) #11
  store ptr %508, ptr %11, align 8, !tbaa !9
  %509 = icmp eq ptr %508, null
  br i1 %509, label %510, label %563

510:                                              ; preds = %505
  br label %511

511:                                              ; preds = %510
  br label %512

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

519:                                              ; preds = %512
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = call i32 @fileno(ptr noundef %520) #8
  %522 = call i32 @isatty(i32 noundef %521) #8
  %523 = icmp ne i32 %522, 0
  br i1 %523, label %524, label %541

524:                                              ; preds = %519
  %525 = load i32, ptr %25, align 4, !tbaa !5
  %526 = call ptr @__errno_location() #9
  store i32 %525, ptr %526, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = load i32, ptr @test_count, align 4, !tbaa !5
  %529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror(i32 noundef %530, ptr noundef @.str.4)
  %532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call ptr @s2n_strerror_debug(i32 noundef %533, ptr noundef @.str.4)
  %535 = call ptr @__errno_location() #9
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @strerror(i32 noundef %536) #8
  %538 = call ptr @__errno_location() #9
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %527, ptr noundef @.str.2, i32 noundef %528, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 129, ptr noundef %531, ptr noundef %534, ptr noundef %537, i32 noundef %539) #8
  br label %558

541:                                              ; preds = %519, %512
  %542 = load i32, ptr %25, align 4, !tbaa !5
  %543 = call ptr @__errno_location() #9
  store i32 %542, ptr %543, align 4, !tbaa !5
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = load i32, ptr @test_count, align 4, !tbaa !5
  %546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror(i32 noundef %547, ptr noundef @.str.4)
  %549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror_debug(i32 noundef %550, ptr noundef @.str.4)
  %552 = call ptr @__errno_location() #9
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @strerror(i32 noundef %553) #8
  %555 = call ptr @__errno_location() #9
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %544, ptr noundef @.str.5, i32 noundef %545, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 129, ptr noundef %548, ptr noundef %551, ptr noundef %554, i32 noundef %556) #8
  br label %558

558:                                              ; preds = %541, %524
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %559

559:                                              ; preds = %558
  br label %560

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

561:                                              ; No predecessors!
  br label %562

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562, %505
  br label %564

564:                                              ; preds = %563
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = add nsw i32 %567, 1
  store i32 %568, ptr @test_count, align 4, !tbaa !5
  %569 = call noalias ptr @malloc(i64 noundef 12000) #11
  store ptr %569, ptr %12, align 8, !tbaa !9
  %570 = icmp eq ptr %569, null
  br i1 %570, label %571, label %624

571:                                              ; preds = %566
  br label %572

572:                                              ; preds = %571
  br label %573

573:                                              ; preds = %572
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %574 = call ptr @__errno_location() #9
  %575 = load i32, ptr %574, align 4, !tbaa !5
  store i32 %575, ptr %26, align 4, !tbaa !5
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = call i32 @s2n_print_stacktrace(ptr noundef %576)
  %578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %579 = trunc i8 %578 to i1
  br i1 %579, label %580, label %602

580:                                              ; preds = %573
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @fileno(ptr noundef %581) #8
  %583 = call i32 @isatty(i32 noundef %582) #8
  %584 = icmp ne i32 %583, 0
  br i1 %584, label %585, label %602

585:                                              ; preds = %580
  %586 = load i32, ptr %26, align 4, !tbaa !5
  %587 = call ptr @__errno_location() #9
  store i32 %586, ptr %587, align 4, !tbaa !5
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror(i32 noundef %591, ptr noundef @.str.4)
  %593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call ptr @s2n_strerror_debug(i32 noundef %594, ptr noundef @.str.4)
  %596 = call ptr @__errno_location() #9
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call ptr @strerror(i32 noundef %597) #8
  %599 = call ptr @__errno_location() #9
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %588, ptr noundef @.str.2, i32 noundef %589, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 130, ptr noundef %592, ptr noundef %595, ptr noundef %598, i32 noundef %600) #8
  br label %619

602:                                              ; preds = %580, %573
  %603 = load i32, ptr %26, align 4, !tbaa !5
  %604 = call ptr @__errno_location() #9
  store i32 %603, ptr %604, align 4, !tbaa !5
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror(i32 noundef %608, ptr noundef @.str.4)
  %610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call ptr @s2n_strerror_debug(i32 noundef %611, ptr noundef @.str.4)
  %613 = call ptr @__errno_location() #9
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call ptr @strerror(i32 noundef %614) #8
  %616 = call ptr @__errno_location() #9
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %605, ptr noundef @.str.5, i32 noundef %606, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 130, ptr noundef %609, ptr noundef %612, ptr noundef %615, i32 noundef %617) #8
  br label %619

619:                                              ; preds = %602, %585
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %620

620:                                              ; preds = %619
  br label %621

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

622:                                              ; No predecessors!
  br label %623

623:                                              ; preds = %622
  br label %624

624:                                              ; preds = %623, %566
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625
  br label %627

627:                                              ; preds = %626
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = add nsw i32 %628, 1
  store i32 %629, ptr @test_count, align 4, !tbaa !5
  %630 = call i32 @s2n_io_pair_close_one_end(ptr noundef %20, i32 noundef 1)
  %631 = icmp eq i32 %630, -1
  br i1 %631, label %632, label %685

632:                                              ; preds = %627
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %635 = call ptr @__errno_location() #9
  %636 = load i32, ptr %635, align 4, !tbaa !5
  store i32 %636, ptr %27, align 4, !tbaa !5
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = call i32 @s2n_print_stacktrace(ptr noundef %637)
  %639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %640 = trunc i8 %639 to i1
  br i1 %640, label %641, label %663

641:                                              ; preds = %634
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = call i32 @fileno(ptr noundef %642) #8
  %644 = call i32 @isatty(i32 noundef %643) #8
  %645 = icmp ne i32 %644, 0
  br i1 %645, label %646, label %663

646:                                              ; preds = %641
  %647 = load i32, ptr %27, align 4, !tbaa !5
  %648 = call ptr @__errno_location() #9
  store i32 %647, ptr %648, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror(i32 noundef %652, ptr noundef @.str.4)
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror_debug(i32 noundef %655, ptr noundef @.str.4)
  %657 = call ptr @__errno_location() #9
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @strerror(i32 noundef %658) #8
  %660 = call ptr @__errno_location() #9
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %649, ptr noundef @.str.2, i32 noundef %650, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 133, ptr noundef %653, ptr noundef %656, ptr noundef %659, i32 noundef %661) #8
  br label %680

663:                                              ; preds = %641, %634
  %664 = load i32, ptr %27, align 4, !tbaa !5
  %665 = call ptr @__errno_location() #9
  store i32 %664, ptr %665, align 4, !tbaa !5
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = load i32, ptr @test_count, align 4, !tbaa !5
  %668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror(i32 noundef %669, ptr noundef @.str.4)
  %671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror_debug(i32 noundef %672, ptr noundef @.str.4)
  %674 = call ptr @__errno_location() #9
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #8
  %677 = call ptr @__errno_location() #9
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %666, ptr noundef @.str.5, i32 noundef %667, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 133, ptr noundef %670, ptr noundef %673, ptr noundef %676, i32 noundef %678) #8
  br label %680

680:                                              ; preds = %663, %646
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %681

681:                                              ; preds = %680
  br label %682

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

683:                                              ; No predecessors!
  br label %684

684:                                              ; preds = %683
  br label %685

685:                                              ; preds = %684, %627
  br label %686

686:                                              ; preds = %685
  br label %687

687:                                              ; preds = %686
  br label %688

688:                                              ; preds = %687
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr @test_count, align 4, !tbaa !5
  %691 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %691, ptr %6, align 8, !tbaa !9
  %692 = icmp eq ptr %691, null
  br i1 %692, label %693, label %746

693:                                              ; preds = %688
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %696 = call ptr @__errno_location() #9
  %697 = load i32, ptr %696, align 4, !tbaa !5
  store i32 %697, ptr %28, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = call i32 @s2n_print_stacktrace(ptr noundef %698)
  %700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %701 = trunc i8 %700 to i1
  br i1 %701, label %702, label %724

702:                                              ; preds = %695
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = call i32 @fileno(ptr noundef %703) #8
  %705 = call i32 @isatty(i32 noundef %704) #8
  %706 = icmp ne i32 %705, 0
  br i1 %706, label %707, label %724

707:                                              ; preds = %702
  %708 = load i32, ptr %28, align 4, !tbaa !5
  %709 = call ptr @__errno_location() #9
  store i32 %708, ptr %709, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror(i32 noundef %713, ptr noundef @.str.4)
  %715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror_debug(i32 noundef %716, ptr noundef @.str.4)
  %718 = call ptr @__errno_location() #9
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @strerror(i32 noundef %719) #8
  %721 = call ptr @__errno_location() #9
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef @.str.2, i32 noundef %711, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 135, ptr noundef %714, ptr noundef %717, ptr noundef %720, i32 noundef %722) #8
  br label %741

724:                                              ; preds = %702, %695
  %725 = load i32, ptr %28, align 4, !tbaa !5
  %726 = call ptr @__errno_location() #9
  store i32 %725, ptr %726, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror(i32 noundef %730, ptr noundef @.str.4)
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror_debug(i32 noundef %733, ptr noundef @.str.4)
  %735 = call ptr @__errno_location() #9
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #8
  %738 = call ptr @__errno_location() #9
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef @.str.5, i32 noundef %728, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 135, ptr noundef %731, ptr noundef %734, ptr noundef %737, i32 noundef %739) #8
  br label %741

741:                                              ; preds = %724, %707
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %742

742:                                              ; preds = %741
  br label %743

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

744:                                              ; No predecessors!
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745, %688
  br label %747

747:                                              ; preds = %746
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = call ptr @s2n_config_new()
  store ptr %752, ptr %7, align 8, !tbaa !9
  %753 = icmp eq ptr %752, null
  br i1 %753, label %754, label %807

754:                                              ; preds = %749
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %757 = call ptr @__errno_location() #9
  %758 = load i32, ptr %757, align 4, !tbaa !5
  store i32 %758, ptr %29, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @s2n_print_stacktrace(ptr noundef %759)
  %761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %762 = trunc i8 %761 to i1
  br i1 %762, label %763, label %785

763:                                              ; preds = %756
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @fileno(ptr noundef %764) #8
  %766 = call i32 @isatty(i32 noundef %765) #8
  %767 = icmp ne i32 %766, 0
  br i1 %767, label %768, label %785

768:                                              ; preds = %763
  %769 = load i32, ptr %29, align 4, !tbaa !5
  %770 = call ptr @__errno_location() #9
  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() #9
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @strerror(i32 noundef %780) #8
  %782 = call ptr @__errno_location() #9
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %771, ptr noundef @.str.2, i32 noundef %772, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 137, ptr noundef %775, ptr noundef %778, ptr noundef %781, i32 noundef %783) #8
  br label %802

785:                                              ; preds = %763, %756
  %786 = load i32, ptr %29, align 4, !tbaa !5
  %787 = call ptr @__errno_location() #9
  store i32 %786, ptr %787, align 4, !tbaa !5
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = load i32, ptr @test_count, align 4, !tbaa !5
  %790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef @.str.4)
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror_debug(i32 noundef %794, ptr noundef @.str.4)
  %796 = call ptr @__errno_location() #9
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @strerror(i32 noundef %797) #8
  %799 = call ptr @__errno_location() #9
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %788, ptr noundef @.str.5, i32 noundef %789, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 137, ptr noundef %792, ptr noundef %795, ptr noundef %798, i32 noundef %800) #8
  br label %802

802:                                              ; preds = %785, %768
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %803

803:                                              ; preds = %802
  br label %804

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

805:                                              ; No predecessors!
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806, %749
  br label %808

808:                                              ; preds = %807
  br label %809

809:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %810

810:                                              ; preds = %1144, %809
  %811 = load i32, ptr %30, align 4, !tbaa !5
  %812 = icmp slt i32 %811, 2
  br i1 %812, label %814, label %813

813:                                              ; preds = %810
  store i32 81, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1147

814:                                              ; preds = %810
  br label %815

815:                                              ; preds = %814
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = add nsw i32 %816, 1
  store i32 %817, ptr @test_count, align 4, !tbaa !5
  %818 = load i32, ptr %30, align 4, !tbaa !5
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds [2 x ptr], ptr @certificate_paths, i64 0, i64 %819
  %821 = load ptr, ptr %820, align 8, !tbaa !9
  %822 = load ptr, ptr %10, align 8, !tbaa !9
  %823 = call i32 @s2n_read_test_pem(ptr noundef %821, ptr noundef %822, i64 noundef 12000)
  %824 = icmp eq i32 %823, -1
  br i1 %824, label %825, label %878

825:                                              ; preds = %815
  br label %826

826:                                              ; preds = %825
  br label %827

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

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

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

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

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

874:                                              ; preds = %873
  br label %875

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

876:                                              ; No predecessors!
  br label %877

877:                                              ; preds = %876
  br label %878

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

879:                                              ; preds = %878
  br label %880

880:                                              ; preds = %879
  br label %881

881:                                              ; preds = %880
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = add nsw i32 %882, 1
  store i32 %883, ptr @test_count, align 4, !tbaa !5
  %884 = load i32, ptr %30, align 4, !tbaa !5
  %885 = sext i32 %884 to i64
  %886 = getelementptr inbounds [2 x ptr], ptr @private_key_paths, i64 0, i64 %885
  %887 = load ptr, ptr %886, align 8, !tbaa !9
  %888 = load ptr, ptr %11, align 8, !tbaa !9
  %889 = call i32 @s2n_read_test_pem(ptr noundef %887, ptr noundef %888, i64 noundef 12000)
  %890 = icmp eq i32 %889, -1
  br i1 %890, label %891, label %944

891:                                              ; preds = %881
  br label %892

892:                                              ; preds = %891
  br label %893

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

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

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

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

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

940:                                              ; preds = %939
  br label %941

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

942:                                              ; No predecessors!
  br label %943

943:                                              ; preds = %942
  br label %944

944:                                              ; preds = %943, %881
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945
  br label %947

947:                                              ; preds = %946
  %948 = load i32, ptr @test_count, align 4, !tbaa !5
  %949 = add nsw i32 %948, 1
  store i32 %949, ptr @test_count, align 4, !tbaa !5
  %950 = call ptr @s2n_cert_chain_and_key_new()
  %951 = load i32, ptr %30, align 4, !tbaa !5
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds [2 x ptr], ptr %19, i64 0, i64 %952
  store ptr %950, ptr %953, align 8, !tbaa !9
  %954 = icmp eq ptr %950, null
  br i1 %954, label %955, label %1008

955:                                              ; preds = %947
  br label %956

956:                                              ; preds = %955
  br label %957

957:                                              ; preds = %956
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %958 = call ptr @__errno_location() #9
  %959 = load i32, ptr %958, align 4, !tbaa !5
  store i32 %959, ptr %33, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @s2n_print_stacktrace(ptr noundef %960)
  %962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %963 = trunc i8 %962 to i1
  br i1 %963, label %964, label %986

964:                                              ; preds = %957
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @fileno(ptr noundef %965) #8
  %967 = call i32 @isatty(i32 noundef %966) #8
  %968 = icmp ne i32 %967, 0
  br i1 %968, label %969, label %986

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

986:                                              ; preds = %964, %957
  %987 = load i32, ptr %33, align 4, !tbaa !5
  %988 = call ptr @__errno_location() #9
  store i32 %987, ptr %988, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = load i32, ptr @test_count, align 4, !tbaa !5
  %991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror(i32 noundef %992, ptr noundef @.str.4)
  %994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror_debug(i32 noundef %995, ptr noundef @.str.4)
  %997 = call ptr @__errno_location() #9
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = call ptr @strerror(i32 noundef %998) #8
  %1000 = call ptr @__errno_location() #9
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %989, ptr noundef @.str.5, i32 noundef %990, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 141, ptr noundef %993, ptr noundef %996, ptr noundef %999, i32 noundef %1001) #8
  br label %1003

1003:                                             ; preds = %986, %969
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

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

1006:                                             ; No predecessors!
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

1008:                                             ; preds = %1007, %947
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

1010:                                             ; preds = %1009
  br label %1011

1011:                                             ; preds = %1010
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = add nsw i32 %1012, 1
  store i32 %1013, ptr @test_count, align 4, !tbaa !5
  %1014 = load i32, ptr %30, align 4, !tbaa !5
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds [2 x ptr], ptr %19, i64 0, i64 %1015
  %1017 = load ptr, ptr %1016, align 8, !tbaa !9
  %1018 = load ptr, ptr %10, align 8, !tbaa !9
  %1019 = load ptr, ptr %11, align 8, !tbaa !9
  %1020 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1017, ptr noundef %1018, ptr noundef %1019)
  %1021 = icmp eq i32 %1020, -1
  br i1 %1021, label %1022, label %1075

1022:                                             ; preds = %1011
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %1025 = call ptr @__errno_location() #9
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  store i32 %1026, ptr %34, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = call i32 @s2n_print_stacktrace(ptr noundef %1027)
  %1029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1030 = trunc i8 %1029 to i1
  br i1 %1030, label %1031, label %1053

1031:                                             ; preds = %1024
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @fileno(ptr noundef %1032) #8
  %1034 = call i32 @isatty(i32 noundef %1033) #8
  %1035 = icmp ne i32 %1034, 0
  br i1 %1035, label %1036, label %1053

1036:                                             ; preds = %1031
  %1037 = load i32, ptr %34, align 4, !tbaa !5
  %1038 = call ptr @__errno_location() #9
  store i32 %1037, ptr %1038, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = load i32, ptr @test_count, align 4, !tbaa !5
  %1041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror(i32 noundef %1042, ptr noundef @.str.4)
  %1044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror_debug(i32 noundef %1045, ptr noundef @.str.4)
  %1047 = call ptr @__errno_location() #9
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @strerror(i32 noundef %1048) #8
  %1050 = call ptr @__errno_location() #9
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1039, ptr noundef @.str.2, i32 noundef %1040, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1043, ptr noundef %1046, ptr noundef %1049, i32 noundef %1051) #8
  br label %1070

1053:                                             ; preds = %1031, %1024
  %1054 = load i32, ptr %34, align 4, !tbaa !5
  %1055 = call ptr @__errno_location() #9
  store i32 %1054, ptr %1055, align 4, !tbaa !5
  %1056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1057 = load i32, ptr @test_count, align 4, !tbaa !5
  %1058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror(i32 noundef %1059, ptr noundef @.str.4)
  %1061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @s2n_strerror_debug(i32 noundef %1062, ptr noundef @.str.4)
  %1064 = call ptr @__errno_location() #9
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @strerror(i32 noundef %1065) #8
  %1067 = call ptr @__errno_location() #9
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1056, ptr noundef @.str.5, i32 noundef %1057, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1060, ptr noundef %1063, ptr noundef %1066, i32 noundef %1068) #8
  br label %1070

1070:                                             ; preds = %1053, %1036
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

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

1073:                                             ; No predecessors!
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074, %1011
  br label %1076

1076:                                             ; preds = %1075
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = add nsw i32 %1079, 1
  store i32 %1080, ptr @test_count, align 4, !tbaa !5
  %1081 = load ptr, ptr %7, align 8, !tbaa !9
  %1082 = load i32, ptr %30, align 4, !tbaa !5
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds [2 x ptr], ptr %19, i64 0, i64 %1083
  %1085 = load ptr, ptr %1084, align 8, !tbaa !9
  %1086 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1081, ptr noundef %1085)
  %1087 = icmp eq i32 %1086, -1
  br i1 %1087, label %1088, label %1141

1088:                                             ; preds = %1078
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1091 = call ptr @__errno_location() #9
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  store i32 %1092, ptr %35, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = call i32 @s2n_print_stacktrace(ptr noundef %1093)
  %1095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1096 = trunc i8 %1095 to i1
  br i1 %1096, label %1097, label %1119

1097:                                             ; preds = %1090
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @fileno(ptr noundef %1098) #8
  %1100 = call i32 @isatty(i32 noundef %1099) #8
  %1101 = icmp ne i32 %1100, 0
  br i1 %1101, label %1102, label %1119

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

1119:                                             ; preds = %1097, %1090
  %1120 = load i32, ptr %35, align 4, !tbaa !5
  %1121 = call ptr @__errno_location() #9
  store i32 %1120, ptr %1121, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef @.str.4)
  %1127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror_debug(i32 noundef %1128, ptr noundef @.str.4)
  %1130 = call ptr @__errno_location() #9
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @strerror(i32 noundef %1131) #8
  %1133 = call ptr @__errno_location() #9
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef @.str.5, i32 noundef %1123, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 143, ptr noundef %1126, ptr noundef %1129, ptr noundef %1132, i32 noundef %1134) #8
  br label %1136

1136:                                             ; preds = %1119, %1102
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

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

1139:                                             ; No predecessors!
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140, %1078
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

1144:                                             ; preds = %1143
  %1145 = load i32, ptr %30, align 4, !tbaa !5
  %1146 = add nsw i32 %1145, 1
  store i32 %1146, ptr %30, align 4, !tbaa !5
  br label %810, !llvm.loop !15

1147:                                             ; preds = %813
  %1148 = load i32, ptr %17, align 4, !tbaa !5
  %1149 = icmp ne i32 %1148, 0
  br i1 %1149, label %1150, label %1276

1150:                                             ; preds = %1147
  br label %1151

1151:                                             ; preds = %1150
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = add nsw i32 %1152, 1
  store i32 %1153, ptr @test_count, align 4, !tbaa !5
  %1154 = load ptr, ptr %12, align 8, !tbaa !9
  %1155 = call i32 @s2n_read_test_pem(ptr noundef @.str.22, ptr noundef %1154, i64 noundef 12000)
  %1156 = icmp eq i32 %1155, -1
  br i1 %1156, label %1157, label %1210

1157:                                             ; preds = %1151
  br label %1158

1158:                                             ; preds = %1157
  br label %1159

1159:                                             ; preds = %1158
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1160 = call ptr @__errno_location() #9
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  store i32 %1161, ptr %36, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @s2n_print_stacktrace(ptr noundef %1162)
  %1164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1165 = trunc i8 %1164 to i1
  br i1 %1165, label %1166, label %1188

1166:                                             ; preds = %1159
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @fileno(ptr noundef %1167) #8
  %1169 = call i32 @isatty(i32 noundef %1168) #8
  %1170 = icmp ne i32 %1169, 0
  br i1 %1170, label %1171, label %1188

1171:                                             ; preds = %1166
  %1172 = load i32, ptr %36, align 4, !tbaa !5
  %1173 = call ptr @__errno_location() #9
  store i32 %1172, ptr %1173, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror(i32 noundef %1177, ptr noundef @.str.4)
  %1179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call ptr @s2n_strerror_debug(i32 noundef %1180, ptr noundef @.str.4)
  %1182 = call ptr @__errno_location() #9
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call ptr @strerror(i32 noundef %1183) #8
  %1185 = call ptr @__errno_location() #9
  %1186 = load i32, ptr %1185, align 4, !tbaa !5
  %1187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1174, ptr noundef @.str.2, i32 noundef %1175, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 147, ptr noundef %1178, ptr noundef %1181, ptr noundef %1184, i32 noundef %1186) #8
  br label %1205

1188:                                             ; preds = %1166, %1159
  %1189 = load i32, ptr %36, align 4, !tbaa !5
  %1190 = call ptr @__errno_location() #9
  store i32 %1189, ptr %1190, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror(i32 noundef %1194, ptr noundef @.str.4)
  %1196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror_debug(i32 noundef %1197, ptr noundef @.str.4)
  %1199 = call ptr @__errno_location() #9
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call ptr @strerror(i32 noundef %1200) #8
  %1202 = call ptr @__errno_location() #9
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef @.str.5, i32 noundef %1192, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 147, ptr noundef %1195, ptr noundef %1198, ptr noundef %1201, i32 noundef %1203) #8
  br label %1205

1205:                                             ; preds = %1188, %1171
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1206

1206:                                             ; preds = %1205
  br label %1207

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

1208:                                             ; No predecessors!
  br label %1209

1209:                                             ; preds = %1208
  br label %1210

1210:                                             ; preds = %1209, %1151
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = add nsw i32 %1214, 1
  store i32 %1215, ptr @test_count, align 4, !tbaa !5
  %1216 = load ptr, ptr %7, align 8, !tbaa !9
  %1217 = load ptr, ptr %12, align 8, !tbaa !9
  %1218 = call i32 @s2n_config_add_dhparams(ptr noundef %1216, ptr noundef %1217)
  %1219 = icmp eq i32 %1218, -1
  br i1 %1219, label %1220, label %1273

1220:                                             ; preds = %1213
  br label %1221

1221:                                             ; preds = %1220
  br label %1222

1222:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1223 = call ptr @__errno_location() #9
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  store i32 %1224, ptr %37, align 4, !tbaa !5
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @s2n_print_stacktrace(ptr noundef %1225)
  %1227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1228 = trunc i8 %1227 to i1
  br i1 %1228, label %1229, label %1251

1229:                                             ; preds = %1222
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = call i32 @fileno(ptr noundef %1230) #8
  %1232 = call i32 @isatty(i32 noundef %1231) #8
  %1233 = icmp ne i32 %1232, 0
  br i1 %1233, label %1234, label %1251

1234:                                             ; preds = %1229
  %1235 = load i32, ptr %37, align 4, !tbaa !5
  %1236 = call ptr @__errno_location() #9
  store i32 %1235, ptr %1236, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror(i32 noundef %1240, ptr noundef @.str.4)
  %1242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef @.str.4)
  %1245 = call ptr @__errno_location() #9
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call ptr @strerror(i32 noundef %1246) #8
  %1248 = call ptr @__errno_location() #9
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1237, ptr noundef @.str.2, i32 noundef %1238, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 148, ptr noundef %1241, ptr noundef %1244, ptr noundef %1247, i32 noundef %1249) #8
  br label %1268

1251:                                             ; preds = %1229, %1222
  %1252 = load i32, ptr %37, align 4, !tbaa !5
  %1253 = call ptr @__errno_location() #9
  store i32 %1252, ptr %1253, align 4, !tbaa !5
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = load i32, ptr @test_count, align 4, !tbaa !5
  %1256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call ptr @s2n_strerror(i32 noundef %1257, ptr noundef @.str.4)
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror_debug(i32 noundef %1260, ptr noundef @.str.4)
  %1262 = call ptr @__errno_location() #9
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #8
  %1265 = call ptr @__errno_location() #9
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1254, ptr noundef @.str.5, i32 noundef %1255, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 148, ptr noundef %1258, ptr noundef %1261, ptr noundef %1264, i32 noundef %1266) #8
  br label %1268

1268:                                             ; preds = %1251, %1234
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

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

1271:                                             ; No predecessors!
  br label %1272

1272:                                             ; preds = %1271
  br label %1273

1273:                                             ; preds = %1272, %1213
  br label %1274

1274:                                             ; preds = %1273
  br label %1275

1275:                                             ; preds = %1274
  br label %1276

1276:                                             ; preds = %1275, %1147
  br label %1277

1277:                                             ; preds = %1276
  %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 = load ptr, ptr %6, align 8, !tbaa !9
  %1281 = load ptr, ptr %7, align 8, !tbaa !9
  %1282 = call i32 @s2n_connection_set_config(ptr noundef %1280, ptr noundef %1281)
  %1283 = icmp eq i32 %1282, -1
  br i1 %1283, label %1284, label %1337

1284:                                             ; preds = %1277
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

1286:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1287 = call ptr @__errno_location() #9
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  store i32 %1288, ptr %38, align 4, !tbaa !5
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = call i32 @s2n_print_stacktrace(ptr noundef %1289)
  %1291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1292 = trunc i8 %1291 to i1
  br i1 %1292, label %1293, label %1315

1293:                                             ; preds = %1286
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = call i32 @fileno(ptr noundef %1294) #8
  %1296 = call i32 @isatty(i32 noundef %1295) #8
  %1297 = icmp ne i32 %1296, 0
  br i1 %1297, label %1298, label %1315

1298:                                             ; preds = %1293
  %1299 = load i32, ptr %38, align 4, !tbaa !5
  %1300 = call ptr @__errno_location() #9
  store i32 %1299, ptr %1300, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror(i32 noundef %1304, ptr noundef @.str.4)
  %1306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror_debug(i32 noundef %1307, ptr noundef @.str.4)
  %1309 = call ptr @__errno_location() #9
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call ptr @strerror(i32 noundef %1310) #8
  %1312 = call ptr @__errno_location() #9
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1301, ptr noundef @.str.2, i32 noundef %1302, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 151, ptr noundef %1305, ptr noundef %1308, ptr noundef %1311, i32 noundef %1313) #8
  br label %1332

1315:                                             ; preds = %1293, %1286
  %1316 = load i32, ptr %38, align 4, !tbaa !5
  %1317 = call ptr @__errno_location() #9
  store i32 %1316, ptr %1317, align 4, !tbaa !5
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror(i32 noundef %1321, ptr noundef @.str.4)
  %1323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror_debug(i32 noundef %1324, ptr noundef @.str.4)
  %1326 = call ptr @__errno_location() #9
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  %1328 = call ptr @strerror(i32 noundef %1327) #8
  %1329 = call ptr @__errno_location() #9
  %1330 = load i32, ptr %1329, align 4, !tbaa !5
  %1331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1318, ptr noundef @.str.5, i32 noundef %1319, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 151, ptr noundef %1322, ptr noundef %1325, ptr noundef %1328, i32 noundef %1330) #8
  br label %1332

1332:                                             ; preds = %1315, %1298
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1333

1333:                                             ; preds = %1332
  br label %1334

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

1335:                                             ; No predecessors!
  br label %1336

1336:                                             ; preds = %1335
  br label %1337

1337:                                             ; preds = %1336, %1277
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

1339:                                             ; preds = %1338
  br label %1340

1340:                                             ; preds = %1339
  %1341 = load i32, ptr @test_count, align 4, !tbaa !5
  %1342 = add nsw i32 %1341, 1
  store i32 %1342, ptr @test_count, align 4, !tbaa !5
  %1343 = load ptr, ptr %6, align 8, !tbaa !9
  %1344 = call i32 @s2n_connection_set_io_pair(ptr noundef %1343, ptr noundef %20)
  %1345 = icmp eq i32 %1344, -1
  br i1 %1345, label %1346, label %1399

1346:                                             ; preds = %1340
  br label %1347

1347:                                             ; preds = %1346
  br label %1348

1348:                                             ; preds = %1347
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1349 = call ptr @__errno_location() #9
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  store i32 %1350, ptr %39, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @s2n_print_stacktrace(ptr noundef %1351)
  %1353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1354 = trunc i8 %1353 to i1
  br i1 %1354, label %1355, label %1377

1355:                                             ; preds = %1348
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = call i32 @fileno(ptr noundef %1356) #8
  %1358 = call i32 @isatty(i32 noundef %1357) #8
  %1359 = icmp ne i32 %1358, 0
  br i1 %1359, label %1360, label %1377

1360:                                             ; preds = %1355
  %1361 = load i32, ptr %39, align 4, !tbaa !5
  %1362 = call ptr @__errno_location() #9
  store i32 %1361, ptr %1362, align 4, !tbaa !5
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror(i32 noundef %1366, ptr noundef @.str.4)
  %1368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror_debug(i32 noundef %1369, ptr noundef @.str.4)
  %1371 = call ptr @__errno_location() #9
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = call ptr @strerror(i32 noundef %1372) #8
  %1374 = call ptr @__errno_location() #9
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1363, ptr noundef @.str.2, i32 noundef %1364, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 154, ptr noundef %1367, ptr noundef %1370, ptr noundef %1373, i32 noundef %1375) #8
  br label %1394

1377:                                             ; preds = %1355, %1348
  %1378 = load i32, ptr %39, align 4, !tbaa !5
  %1379 = call ptr @__errno_location() #9
  store i32 %1378, ptr %1379, align 4, !tbaa !5
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror(i32 noundef %1383, ptr noundef @.str.4)
  %1385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef @.str.4)
  %1388 = call ptr @__errno_location() #9
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @strerror(i32 noundef %1389) #8
  %1391 = call ptr @__errno_location() #9
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef @.str.5, i32 noundef %1381, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 154, ptr noundef %1384, ptr noundef %1387, ptr noundef %1390, i32 noundef %1392) #8
  br label %1394

1394:                                             ; preds = %1377, %1360
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

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

1397:                                             ; No predecessors!
  br label %1398

1398:                                             ; preds = %1397
  br label %1399

1399:                                             ; preds = %1398, %1340
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400
  br label %1402

1402:                                             ; preds = %1401
  %1403 = load i32, ptr @test_count, align 4, !tbaa !5
  %1404 = add nsw i32 %1403, 1
  store i32 %1404, ptr @test_count, align 4, !tbaa !5
  %1405 = load ptr, ptr %6, align 8, !tbaa !9
  %1406 = call i32 @s2n_negotiate(ptr noundef %1405, ptr noundef %8)
  %1407 = icmp eq i32 %1406, -1
  br i1 %1407, label %1408, label %1461

1408:                                             ; preds = %1402
  br label %1409

1409:                                             ; preds = %1408
  br label %1410

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

1417:                                             ; preds = %1410
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = call i32 @fileno(ptr noundef %1418) #8
  %1420 = call i32 @isatty(i32 noundef %1419) #8
  %1421 = icmp ne i32 %1420, 0
  br i1 %1421, label %1422, label %1439

1422:                                             ; preds = %1417
  %1423 = load i32, ptr %40, align 4, !tbaa !5
  %1424 = call ptr @__errno_location() #9
  store i32 %1423, ptr %1424, align 4, !tbaa !5
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror(i32 noundef %1428, ptr noundef @.str.4)
  %1430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef @.str.4)
  %1433 = call ptr @__errno_location() #9
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = call ptr @strerror(i32 noundef %1434) #8
  %1436 = call ptr @__errno_location() #9
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  %1438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1425, ptr noundef @.str.2, i32 noundef %1426, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 157, ptr noundef %1429, ptr noundef %1432, ptr noundef %1435, i32 noundef %1437) #8
  br label %1456

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

1456:                                             ; preds = %1439, %1422
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1457

1457:                                             ; preds = %1456
  br label %1458

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

1459:                                             ; No predecessors!
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

1461:                                             ; preds = %1460, %1402
  br label %1462

1462:                                             ; preds = %1461
  br label %1463

1463:                                             ; preds = %1462
  br label %1464

1464:                                             ; preds = %1463
  %1465 = load i32, ptr @test_count, align 4, !tbaa !5
  %1466 = add nsw i32 %1465, 1
  store i32 %1466, ptr @test_count, align 4, !tbaa !5
  %1467 = load ptr, ptr %6, align 8, !tbaa !9
  %1468 = getelementptr inbounds %struct.s2n_connection, ptr %1467, i32 0, i32 23
  %1469 = load i8, ptr %1468, align 4, !tbaa !17
  %1470 = zext i8 %1469 to i32
  %1471 = icmp eq i32 %1470, 33
  br i1 %1471, label %1525, label %1472

1472:                                             ; preds = %1464
  br label %1473

1473:                                             ; preds = %1472
  br label %1474

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

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

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

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

1520:                                             ; preds = %1503, %1486
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

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

1523:                                             ; No predecessors!
  br label %1524

1524:                                             ; preds = %1523
  br label %1525

1525:                                             ; preds = %1524, %1464
  br label %1526

1526:                                             ; preds = %1525
  br label %1527

1527:                                             ; preds = %1526
  call void @llvm.lifetime.start.p0(i64 65535, ptr %42) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  store i32 1, ptr %43, align 4, !tbaa !5
  br label %1528

1528:                                             ; preds = %1750, %1527
  %1529 = load i32, ptr %43, align 4, !tbaa !5
  %1530 = icmp slt i32 %1529, 65535
  br i1 %1530, label %1532, label %1531

1531:                                             ; preds = %1528
  store i32 150, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %1753

1532:                                             ; preds = %1528
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %1533 = getelementptr inbounds [65535 x i8], ptr %42, i64 0, i64 0
  store ptr %1533, ptr %44, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %1534 = load i32, ptr %43, align 4, !tbaa !5
  store i32 %1534, ptr %45, align 4, !tbaa !5
  br label %1535

1535:                                             ; preds = %1609, %1532
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  store i32 0, ptr %46, align 4, !tbaa !5
  br label %1536

1536:                                             ; preds = %1535
  %1537 = load i32, ptr @test_count, align 4, !tbaa !5
  %1538 = add nsw i32 %1537, 1
  store i32 %1538, ptr @test_count, align 4, !tbaa !5
  %1539 = load ptr, ptr %6, align 8, !tbaa !9
  %1540 = load ptr, ptr %44, align 8, !tbaa !9
  %1541 = load i32, ptr %45, align 4, !tbaa !5
  %1542 = sext i32 %1541 to i64
  %1543 = call i64 @s2n_recv(ptr noundef %1539, ptr noundef %1540, i64 noundef %1542, ptr noundef %8)
  %1544 = trunc i64 %1543 to i32
  store i32 %1544, ptr %46, align 4, !tbaa !5
  %1545 = icmp eq i32 %1544, -1
  br i1 %1545, label %1546, label %1599

1546:                                             ; preds = %1536
  br label %1547

1547:                                             ; preds = %1546
  br label %1548

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

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

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

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

1594:                                             ; preds = %1577, %1560
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %1595

1595:                                             ; preds = %1594
  br label %1596

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

1597:                                             ; No predecessors!
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598, %1536
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600
  %1602 = load i32, ptr %46, align 4, !tbaa !5
  %1603 = load i32, ptr %45, align 4, !tbaa !5
  %1604 = sub nsw i32 %1603, %1602
  store i32 %1604, ptr %45, align 4, !tbaa !5
  %1605 = load i32, ptr %46, align 4, !tbaa !5
  %1606 = load ptr, ptr %44, align 8, !tbaa !9
  %1607 = sext i32 %1605 to i64
  %1608 = getelementptr inbounds i8, ptr %1606, i64 %1607
  store ptr %1608, ptr %44, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %1609

1609:                                             ; preds = %1601
  %1610 = load i32, ptr %45, align 4, !tbaa !5
  %1611 = icmp ne i32 %1610, 0
  br i1 %1611, label %1535, label %1612, !llvm.loop !44

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

1613:                                             ; preds = %1684, %1612
  %1614 = load i32, ptr %48, align 4, !tbaa !5
  %1615 = load i32, ptr %43, align 4, !tbaa !5
  %1616 = icmp slt i32 %1614, %1615
  br i1 %1616, label %1618, label %1617

1617:                                             ; preds = %1613
  store i32 161, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %1687

1618:                                             ; preds = %1613
  br label %1619

1619:                                             ; preds = %1618
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = add nsw i32 %1620, 1
  store i32 %1621, ptr @test_count, align 4, !tbaa !5
  %1622 = load i32, ptr %48, align 4, !tbaa !5
  %1623 = sext i32 %1622 to i64
  %1624 = getelementptr inbounds [65535 x i8], ptr %42, i64 0, i64 %1623
  %1625 = load i8, ptr %1624, align 1, !tbaa !45
  %1626 = sext i8 %1625 to i32
  %1627 = icmp eq i32 %1626, 33
  br i1 %1627, label %1681, label %1628

1628:                                             ; preds = %1619
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

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

1637:                                             ; preds = %1630
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @fileno(ptr noundef %1638) #8
  %1640 = call i32 @isatty(i32 noundef %1639) #8
  %1641 = icmp ne i32 %1640, 0
  br i1 %1641, label %1642, label %1659

1642:                                             ; preds = %1637
  %1643 = load i32, ptr %49, align 4, !tbaa !5
  %1644 = call ptr @__errno_location() #9
  store i32 %1643, ptr %1644, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef @.str.4)
  %1650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef @.str.4)
  %1653 = call ptr @__errno_location() #9
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #8
  %1656 = call ptr @__errno_location() #9
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef @.str.2, i32 noundef %1646, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 174, ptr noundef %1649, ptr noundef %1652, ptr noundef %1655, i32 noundef %1657) #8
  br label %1676

1659:                                             ; preds = %1637, %1630
  %1660 = load i32, ptr %49, align 4, !tbaa !5
  %1661 = call ptr @__errno_location() #9
  store i32 %1660, ptr %1661, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror(i32 noundef %1665, ptr noundef @.str.4)
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef @.str.4)
  %1670 = call ptr @__errno_location() #9
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @strerror(i32 noundef %1671) #8
  %1673 = call ptr @__errno_location() #9
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef @.str.5, i32 noundef %1663, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 174, ptr noundef %1666, ptr noundef %1669, ptr noundef %1672, i32 noundef %1674) #8
  br label %1676

1676:                                             ; preds = %1659, %1642
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

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

1679:                                             ; No predecessors!
  br label %1680

1680:                                             ; preds = %1679
  br label %1681

1681:                                             ; preds = %1680, %1619
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  br label %1684

1684:                                             ; preds = %1683
  %1685 = load i32, ptr %48, align 4, !tbaa !5
  %1686 = add nsw i32 %1685, 1
  store i32 %1686, ptr %48, align 4, !tbaa !5
  br label %1613, !llvm.loop !46

1687:                                             ; preds = %1617
  br label %1688

1688:                                             ; preds = %1687
  %1689 = load i32, ptr @test_count, align 4, !tbaa !5
  %1690 = add nsw i32 %1689, 1
  store i32 %1690, ptr @test_count, align 4, !tbaa !5
  %1691 = load ptr, ptr %6, align 8, !tbaa !9
  %1692 = call i32 @s2n_connection_release_buffers(ptr noundef %1691)
  %1693 = icmp eq i32 %1692, -1
  br i1 %1693, label %1694, label %1747

1694:                                             ; preds = %1688
  br label %1695

1695:                                             ; preds = %1694
  br label %1696

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

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

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

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

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

1743:                                             ; preds = %1742
  br label %1744

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

1745:                                             ; No predecessors!
  br label %1746

1746:                                             ; preds = %1745
  br label %1747

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

1748:                                             ; preds = %1747
  br label %1749

1749:                                             ; preds = %1748
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %1750

1750:                                             ; preds = %1749
  %1751 = load i32, ptr %43, align 4, !tbaa !5
  %1752 = add nsw i32 %1751, 100
  store i32 %1752, ptr %43, align 4, !tbaa !5
  br label %1528, !llvm.loop !47

1753:                                             ; preds = %1531
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  store i32 -1, ptr %51, align 4, !tbaa !5
  br label %1754

1754:                                             ; preds = %1825, %1753
  %1755 = load ptr, ptr %6, align 8, !tbaa !9
  %1756 = call i32 @s2n_shutdown(ptr noundef %1755, ptr noundef %8)
  store i32 %1756, ptr %51, align 4, !tbaa !5
  br label %1757

1757:                                             ; preds = %1754
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = add nsw i32 %1758, 1
  store i32 %1759, ptr @test_count, align 4, !tbaa !5
  %1760 = load i32, ptr %51, align 4, !tbaa !5
  %1761 = icmp eq i32 %1760, 0
  br i1 %1761, label %1822, label %1762

1762:                                             ; preds = %1757
  %1763 = call ptr @__errno_location() #9
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = icmp eq i32 %1764, 11
  br i1 %1765, label %1766, label %1769

1766:                                             ; preds = %1762
  %1767 = load i32, ptr %8, align 4, !tbaa !5
  %1768 = icmp ne i32 %1767, 0
  br i1 %1768, label %1822, label %1769

1769:                                             ; preds = %1766, %1762
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

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

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

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

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

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

1818:                                             ; preds = %1817
  br label %1819

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

1820:                                             ; No predecessors!
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821, %1766, %1757
  br label %1823

1823:                                             ; preds = %1822
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

1825:                                             ; preds = %1824
  %1826 = load i32, ptr %51, align 4, !tbaa !5
  %1827 = icmp ne i32 %1826, 0
  br i1 %1827, label %1754, label %1828, !llvm.loop !48

1828:                                             ; preds = %1825
  br label %1829

1829:                                             ; preds = %1828
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = add nsw i32 %1830, 1
  store i32 %1831, ptr @test_count, align 4, !tbaa !5
  %1832 = load ptr, ptr %6, align 8, !tbaa !9
  %1833 = call i32 @s2n_connection_free(ptr noundef %1832)
  %1834 = icmp eq i32 %1833, -1
  br i1 %1834, label %1835, label %1888

1835:                                             ; preds = %1829
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

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

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

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

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

1883:                                             ; preds = %1866, %1849
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %1884

1884:                                             ; preds = %1883
  br label %1885

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

1886:                                             ; No predecessors!
  br label %1887

1887:                                             ; preds = %1886
  br label %1888

1888:                                             ; preds = %1887, %1829
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1889
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  store i32 0, ptr %54, align 4, !tbaa !5
  br label %1891

1891:                                             ; preds = %1961, %1890
  %1892 = load i32, ptr %54, align 4, !tbaa !5
  %1893 = icmp slt i32 %1892, 2
  br i1 %1893, label %1895, label %1894

1894:                                             ; preds = %1891
  store i32 190, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %1964

1895:                                             ; preds = %1891
  br label %1896

1896:                                             ; preds = %1895
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = add nsw i32 %1897, 1
  store i32 %1898, ptr @test_count, align 4, !tbaa !5
  %1899 = load i32, ptr %54, align 4, !tbaa !5
  %1900 = sext i32 %1899 to i64
  %1901 = getelementptr inbounds [2 x ptr], ptr %19, i64 0, i64 %1900
  %1902 = load ptr, ptr %1901, align 8, !tbaa !9
  %1903 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1902)
  %1904 = icmp eq i32 %1903, -1
  br i1 %1904, label %1905, label %1958

1905:                                             ; preds = %1896
  br label %1906

1906:                                             ; preds = %1905
  br label %1907

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

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

1919:                                             ; preds = %1914
  %1920 = load i32, ptr %55, align 4, !tbaa !5
  %1921 = call ptr @__errno_location() #9
  store i32 %1920, ptr %1921, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = load i32, ptr @test_count, align 4, !tbaa !5
  %1924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror(i32 noundef %1925, ptr noundef @.str.4)
  %1927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror_debug(i32 noundef %1928, ptr noundef @.str.4)
  %1930 = call ptr @__errno_location() #9
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = call ptr @strerror(i32 noundef %1931) #8
  %1933 = call ptr @__errno_location() #9
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1922, ptr noundef @.str.2, i32 noundef %1923, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1926, ptr noundef %1929, ptr noundef %1932, i32 noundef %1934) #8
  br label %1953

1936:                                             ; preds = %1914, %1907
  %1937 = load i32, ptr %55, align 4, !tbaa !5
  %1938 = call ptr @__errno_location() #9
  store i32 %1937, ptr %1938, align 4, !tbaa !5
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = load i32, ptr @test_count, align 4, !tbaa !5
  %1941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1942 = load i32, ptr %1941, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror(i32 noundef %1942, ptr noundef @.str.4)
  %1944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1945 = load i32, ptr %1944, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror_debug(i32 noundef %1945, ptr noundef @.str.4)
  %1947 = call ptr @__errno_location() #9
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @strerror(i32 noundef %1948) #8
  %1950 = call ptr @__errno_location() #9
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1939, ptr noundef @.str.5, i32 noundef %1940, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 189, ptr noundef %1943, ptr noundef %1946, ptr noundef %1949, i32 noundef %1951) #8
  br label %1953

1953:                                             ; preds = %1936, %1919
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %1954

1954:                                             ; preds = %1953
  br label %1955

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

1956:                                             ; No predecessors!
  br label %1957

1957:                                             ; preds = %1956
  br label %1958

1958:                                             ; preds = %1957, %1896
  br label %1959

1959:                                             ; preds = %1958
  br label %1960

1960:                                             ; preds = %1959
  br label %1961

1961:                                             ; preds = %1960
  %1962 = load i32, ptr %54, align 4, !tbaa !5
  %1963 = add nsw i32 %1962, 1
  store i32 %1963, ptr %54, align 4, !tbaa !5
  br label %1891, !llvm.loop !49

1964:                                             ; preds = %1894
  br label %1965

1965:                                             ; preds = %1964
  %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 = load ptr, ptr %7, align 8, !tbaa !9
  %1969 = call i32 @s2n_config_free(ptr noundef %1968)
  %1970 = icmp eq i32 %1969, -1
  br i1 %1970, label %1971, label %2024

1971:                                             ; preds = %1965
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

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

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

1985:                                             ; preds = %1980
  %1986 = load i32, ptr %56, align 4, !tbaa !5
  %1987 = call ptr @__errno_location() #9
  store i32 %1986, ptr %1987, align 4, !tbaa !5
  %1988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1989 = load i32, ptr @test_count, align 4, !tbaa !5
  %1990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call ptr @s2n_strerror(i32 noundef %1991, ptr noundef @.str.4)
  %1993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1994 = load i32, ptr %1993, align 4, !tbaa !5
  %1995 = call ptr @s2n_strerror_debug(i32 noundef %1994, ptr noundef @.str.4)
  %1996 = call ptr @__errno_location() #9
  %1997 = load i32, ptr %1996, align 4, !tbaa !5
  %1998 = call ptr @strerror(i32 noundef %1997) #8
  %1999 = call ptr @__errno_location() #9
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1988, ptr noundef @.str.2, i32 noundef %1989, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 191, ptr noundef %1992, ptr noundef %1995, ptr noundef %1998, i32 noundef %2000) #8
  br label %2019

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

2019:                                             ; preds = %2002, %1985
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %2020

2020:                                             ; preds = %2019
  br label %2021

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

2022:                                             ; No predecessors!
  br label %2023

2023:                                             ; preds = %2022
  br label %2024

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

2025:                                             ; preds = %2024
  br label %2026

2026:                                             ; preds = %2025
  br label %2027

2027:                                             ; preds = %2026
  %2028 = load i32, ptr @test_count, align 4, !tbaa !5
  %2029 = add nsw i32 %2028, 1
  store i32 %2029, ptr @test_count, align 4, !tbaa !5
  %2030 = call i32 @waitpid(i32 noundef -1, ptr noundef %9, i32 noundef 0)
  %2031 = load i32, ptr %22, align 4, !tbaa !5
  %2032 = icmp eq i32 %2030, %2031
  br i1 %2032, label %2086, label %2033

2033:                                             ; preds = %2027
  br label %2034

2034:                                             ; preds = %2033
  br label %2035

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

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

2047:                                             ; preds = %2042
  %2048 = load i32, ptr %57, align 4, !tbaa !5
  %2049 = call ptr @__errno_location() #9
  store i32 %2048, ptr %2049, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = load i32, ptr @test_count, align 4, !tbaa !5
  %2052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call ptr @s2n_strerror(i32 noundef %2053, ptr noundef @.str.4)
  %2055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror_debug(i32 noundef %2056, ptr noundef @.str.4)
  %2058 = call ptr @__errno_location() #9
  %2059 = load i32, ptr %2058, align 4, !tbaa !5
  %2060 = call ptr @strerror(i32 noundef %2059) #8
  %2061 = call ptr @__errno_location() #9
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2050, ptr noundef @.str.2, i32 noundef %2051, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 194, ptr noundef %2054, ptr noundef %2057, ptr noundef %2060, i32 noundef %2062) #8
  br label %2081

2064:                                             ; preds = %2042, %2035
  %2065 = load i32, ptr %57, align 4, !tbaa !5
  %2066 = call ptr @__errno_location() #9
  store i32 %2065, ptr %2066, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror(i32 noundef %2070, ptr noundef @.str.4)
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror_debug(i32 noundef %2073, ptr noundef @.str.4)
  %2075 = call ptr @__errno_location() #9
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #8
  %2078 = call ptr @__errno_location() #9
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2067, ptr noundef @.str.5, i32 noundef %2068, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 194, ptr noundef %2071, ptr noundef %2074, ptr noundef %2077, i32 noundef %2079) #8
  br label %2081

2081:                                             ; preds = %2064, %2047
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  br label %2082

2082:                                             ; preds = %2081
  br label %2083

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

2084:                                             ; No predecessors!
  br label %2085

2085:                                             ; preds = %2084
  br label %2086

2086:                                             ; preds = %2085, %2027
  br label %2087

2087:                                             ; preds = %2086
  br label %2088

2088:                                             ; preds = %2087
  br label %2089

2089:                                             ; preds = %2088
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = add nsw i32 %2090, 1
  store i32 %2091, ptr @test_count, align 4, !tbaa !5
  %2092 = load i32, ptr %9, align 4, !tbaa !5
  %2093 = icmp eq i32 %2092, 0
  br i1 %2093, label %2147, label %2094

2094:                                             ; preds = %2089
  br label %2095

2095:                                             ; preds = %2094
  br label %2096

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

2103:                                             ; preds = %2096
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = call i32 @fileno(ptr noundef %2104) #8
  %2106 = call i32 @isatty(i32 noundef %2105) #8
  %2107 = icmp ne i32 %2106, 0
  br i1 %2107, label %2108, label %2125

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

2125:                                             ; preds = %2103, %2096
  %2126 = load i32, ptr %58, align 4, !tbaa !5
  %2127 = call ptr @__errno_location() #9
  store i32 %2126, ptr %2127, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef @.str.4)
  %2133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @s2n_strerror_debug(i32 noundef %2134, ptr noundef @.str.4)
  %2136 = call ptr @__errno_location() #9
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @strerror(i32 noundef %2137) #8
  %2139 = call ptr @__errno_location() #9
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2128, ptr noundef @.str.5, i32 noundef %2129, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2132, ptr noundef %2135, ptr noundef %2138, i32 noundef %2140) #8
  br label %2142

2142:                                             ; preds = %2125, %2108
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  br label %2143

2143:                                             ; preds = %2142
  br label %2144

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

2145:                                             ; No predecessors!
  br label %2146

2146:                                             ; preds = %2145
  br label %2147

2147:                                             ; preds = %2146, %2089
  br label %2148

2148:                                             ; preds = %2147
  br label %2149

2149:                                             ; preds = %2148
  br label %2150

2150:                                             ; preds = %2149
  %2151 = load i32, ptr @test_count, align 4, !tbaa !5
  %2152 = add nsw i32 %2151, 1
  store i32 %2152, ptr @test_count, align 4, !tbaa !5
  %2153 = call i32 @s2n_io_pair_close_one_end(ptr noundef %20, i32 noundef 0)
  %2154 = icmp eq i32 %2153, -1
  br i1 %2154, label %2155, label %2208

2155:                                             ; preds = %2150
  br label %2156

2156:                                             ; preds = %2155
  br label %2157

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

2164:                                             ; preds = %2157
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = call i32 @fileno(ptr noundef %2165) #8
  %2167 = call i32 @isatty(i32 noundef %2166) #8
  %2168 = icmp ne i32 %2167, 0
  br i1 %2168, label %2169, label %2186

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

2186:                                             ; preds = %2164, %2157
  %2187 = load i32, ptr %59, align 4, !tbaa !5
  %2188 = call ptr @__errno_location() #9
  store i32 %2187, ptr %2188, align 4, !tbaa !5
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = load i32, ptr @test_count, align 4, !tbaa !5
  %2191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call ptr @s2n_strerror(i32 noundef %2192, ptr noundef @.str.4)
  %2194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror_debug(i32 noundef %2195, ptr noundef @.str.4)
  %2197 = call ptr @__errno_location() #9
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = call ptr @strerror(i32 noundef %2198) #8
  %2200 = call ptr @__errno_location() #9
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2189, ptr noundef @.str.5, i32 noundef %2190, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 196, ptr noundef %2193, ptr noundef %2196, ptr noundef %2199, i32 noundef %2201) #8
  br label %2203

2203:                                             ; preds = %2186, %2169
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %2204

2204:                                             ; preds = %2203
  br label %2205

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

2206:                                             ; No predecessors!
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207, %2150
  br label %2209

2209:                                             ; preds = %2208
  br label %2210

2210:                                             ; preds = %2209
  %2211 = load ptr, ptr %10, align 8, !tbaa !9
  call void @free(ptr noundef %2211) #8
  %2212 = load ptr, ptr %11, align 8, !tbaa !9
  call void @free(ptr noundef %2212) #8
  %2213 = load ptr, ptr %12, align 8, !tbaa !9
  call void @free(ptr noundef %2213) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 65535, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #8
  br label %2214

2214:                                             ; preds = %2210
  %2215 = load i32, ptr %17, align 4, !tbaa !5
  %2216 = add nsw i32 %2215, 1
  store i32 %2216, ptr %17, align 4, !tbaa !5
  br label %312, !llvm.loop !50

2217:                                             ; preds = %315
  br label %2218

2218:                                             ; preds = %2217
  br label %2219

2219:                                             ; preds = %2218
  %2220 = call i32 @s2n_cleanup()
  %2221 = icmp eq i32 %2220, -1
  br i1 %2221, label %2222, label %2275

2222:                                             ; preds = %2219
  br label %2223

2223:                                             ; preds = %2222
  br label %2224

2224:                                             ; preds = %2223
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #8
  %2225 = call ptr @__errno_location() #9
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  store i32 %2226, ptr %60, align 4, !tbaa !5
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = call i32 @s2n_print_stacktrace(ptr noundef %2227)
  %2229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2230 = trunc i8 %2229 to i1
  br i1 %2230, label %2231, label %2253

2231:                                             ; preds = %2224
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @fileno(ptr noundef %2232) #8
  %2234 = call i32 @isatty(i32 noundef %2233) #8
  %2235 = icmp ne i32 %2234, 0
  br i1 %2235, label %2236, label %2253

2236:                                             ; preds = %2231
  %2237 = load i32, ptr %60, align 4, !tbaa !5
  %2238 = call ptr @__errno_location() #9
  store i32 %2237, ptr %2238, align 4, !tbaa !5
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2242 = load i32, ptr %2241, align 4, !tbaa !5
  %2243 = call ptr @s2n_strerror(i32 noundef %2242, ptr noundef @.str.4)
  %2244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2245 = load i32, ptr %2244, align 4, !tbaa !5
  %2246 = call ptr @s2n_strerror_debug(i32 noundef %2245, ptr noundef @.str.4)
  %2247 = call ptr @__errno_location() #9
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = call ptr @strerror(i32 noundef %2248) #8
  %2250 = call ptr @__errno_location() #9
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  %2252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2239, ptr noundef @.str.2, i32 noundef %2240, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 203, ptr noundef %2243, ptr noundef %2246, ptr noundef %2249, i32 noundef %2251) #8
  br label %2270

2253:                                             ; preds = %2231, %2224
  %2254 = load i32, ptr %60, align 4, !tbaa !5
  %2255 = call ptr @__errno_location() #9
  store i32 %2254, ptr %2255, align 4, !tbaa !5
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = load i32, ptr @test_count, align 4, !tbaa !5
  %2258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror(i32 noundef %2259, ptr noundef @.str.4)
  %2261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2262 = load i32, ptr %2261, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror_debug(i32 noundef %2262, ptr noundef @.str.4)
  %2264 = call ptr @__errno_location() #9
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  %2266 = call ptr @strerror(i32 noundef %2265) #8
  %2267 = call ptr @__errno_location() #9
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2256, ptr noundef @.str.5, i32 noundef %2257, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 203, ptr noundef %2260, ptr noundef %2263, ptr noundef %2266, i32 noundef %2268) #8
  br label %2270

2270:                                             ; preds = %2253, %2236
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %2271

2271:                                             ; preds = %2270
  br label %2272

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

2273:                                             ; No predecessors!
  br label %2274

2274:                                             ; preds = %2273
  br label %2275

2275:                                             ; preds = %2274, %2219
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

2277:                                             ; preds = %2276
  br label %2278

2278:                                             ; preds = %2277
  br label %2279

2279:                                             ; preds = %2278
  %2280 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2281 = icmp eq i32 %2280, -1
  br i1 %2281, label %2282, label %2335

2282:                                             ; preds = %2279
  br label %2283

2283:                                             ; preds = %2282
  br label %2284

2284:                                             ; preds = %2283
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %2285 = call ptr @__errno_location() #9
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  store i32 %2286, ptr %61, align 4, !tbaa !5
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = call i32 @s2n_print_stacktrace(ptr noundef %2287)
  %2289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2290 = trunc i8 %2289 to i1
  br i1 %2290, label %2291, label %2313

2291:                                             ; preds = %2284
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = call i32 @fileno(ptr noundef %2292) #8
  %2294 = call i32 @isatty(i32 noundef %2293) #8
  %2295 = icmp ne i32 %2294, 0
  br i1 %2295, label %2296, label %2313

2296:                                             ; preds = %2291
  %2297 = load i32, ptr %61, align 4, !tbaa !5
  %2298 = call ptr @__errno_location() #9
  store i32 %2297, ptr %2298, align 4, !tbaa !5
  %2299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2300 = load i32, ptr @test_count, align 4, !tbaa !5
  %2301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror(i32 noundef %2302, ptr noundef @.str.4)
  %2304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @s2n_strerror_debug(i32 noundef %2305, ptr noundef @.str.4)
  %2307 = call ptr @__errno_location() #9
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call ptr @strerror(i32 noundef %2308) #8
  %2310 = call ptr @__errno_location() #9
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2299, ptr noundef @.str.2, i32 noundef %2300, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 203, ptr noundef %2303, ptr noundef %2306, ptr noundef %2309, i32 noundef %2311) #8
  br label %2330

2313:                                             ; preds = %2291, %2284
  %2314 = load i32, ptr %61, align 4, !tbaa !5
  %2315 = call ptr @__errno_location() #9
  store i32 %2314, ptr %2315, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2319, ptr noundef @.str.4)
  %2321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef @.str.4)
  %2324 = call ptr @__errno_location() #9
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call ptr @strerror(i32 noundef %2325) #8
  %2327 = call ptr @__errno_location() #9
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2316, ptr noundef @.str.5, i32 noundef %2317, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 203, ptr noundef %2320, ptr noundef %2323, ptr noundef %2326, i32 noundef %2328) #8
  br label %2330

2330:                                             ; preds = %2313, %2296
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %2331

2331:                                             ; preds = %2330
  br label %2332

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

2333:                                             ; No predecessors!
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

2335:                                             ; preds = %2334, %2279
  br label %2336

2336:                                             ; preds = %2335
  br label %2337

2337:                                             ; preds = %2336
  %2338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2339 = trunc i8 %2338 to i1
  br i1 %2339, label %2340, label %2356

2340:                                             ; preds = %2337
  %2341 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2342 = call i32 @fileno(ptr noundef %2341) #8
  %2343 = call i32 @isatty(i32 noundef %2342) #8
  %2344 = icmp ne i32 %2343, 0
  br i1 %2344, label %2345, label %2356

2345:                                             ; preds = %2340
  %2346 = load i32, ptr @test_count, align 4, !tbaa !5
  %2347 = icmp ne i32 %2346, 0
  br i1 %2347, label %2348, label %2352

2348:                                             ; preds = %2345
  %2349 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2350 = load i32, ptr @test_count, align 4, !tbaa !5
  %2351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2349, ptr noundef @.str.40, i32 noundef %2350) #8
  br label %2355

2352:                                             ; preds = %2345
  %2353 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2353, ptr noundef @.str.41) #8
  br label %2355

2355:                                             ; preds = %2352, %2348
  br label %2367

2356:                                             ; preds = %2340, %2337
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = icmp ne i32 %2357, 0
  br i1 %2358, label %2359, label %2363

2359:                                             ; preds = %2356
  %2360 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2361 = load i32, ptr @test_count, align 4, !tbaa !5
  %2362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2360, ptr noundef @.str.42, i32 noundef %2361) #8
  br label %2366

2363:                                             ; preds = %2356
  %2364 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2364, ptr noundef @.str.43) #8
  br label %2366

2366:                                             ; preds = %2363, %2359
  br label %2367

2367:                                             ; preds = %2366, %2355
  store i32 0, ptr %3, align 4
  store i32 1, ptr %18, align 4
  br label %2372

2368:                                             ; No predecessors!
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

2370:                                             ; preds = %2369
  br label %2371

2371:                                             ; preds = %2370
  store i32 0, ptr %18, align 4
  br label %2372

2372:                                             ; preds = %2371, %2367
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  %2373 = load i32, ptr %18, align 4
  switch i32 %2373, label %2376 [
    i32 0, label %2374
    i32 1, label %2374
  ]

2374:                                             ; preds = %2372, %2372
  %2375 = load i32, ptr %3, align 4
  ret i32 %2375

2376:                                             ; preds = %2372
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare i32 @s2n_io_pair_init(ptr noundef) #2

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

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

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

declare ptr @s2n_cert_chain_and_key_new() #2

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

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

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

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

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

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

declare i32 @s2n_cleanup() #2

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

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

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


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

%struct.s2n_test_io_pair = type { i32, i32 }

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

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

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

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

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

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

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

declare i32 @s2n_connection_release_buffers(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

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

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

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

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

24:                                               ; preds = %20, %13
  br label %25

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

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

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

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

53:                                               ; preds = %49, %42
  br label %54

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

66:                                               ; preds = %37
  %67 = tail call i32 @s2n_init() #10
  %68 = icmp eq i32 %67, -1
  br i1 %68, label %69, label %93

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

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

80:                                               ; preds = %76, %69
  br label %81

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

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

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

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

109:                                              ; preds = %105, %98
  br label %110

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

122:                                              ; preds = %1010
  %123 = call i32 @s2n_cleanup() #10
  %124 = icmp eq i32 %123, -1
  br i1 %124, label %1011, label %1035

.preheader182:                                    ; preds = %93, %1010
  %.not142 = phi i1 [ false, %1010 ], [ true, %93 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  %125 = load i32, ptr @test_count, align 4, !tbaa !5
  %126 = add nsw i32 %125, 1
  store i32 %126, ptr @test_count, align 4, !tbaa !5
  %127 = call i32 @s2n_io_pair_init(ptr noundef nonnull %5) #10
  %128 = icmp eq i32 %127, -1
  br i1 %128, label %129, label %153

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

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

140:                                              ; preds = %136, %129
  br label %141

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

153:                                              ; preds = %.preheader182
  %154 = call i32 @fork() #10
  %155 = icmp eq i32 %154, 0
  br i1 %155, label %156, label %186

156:                                              ; preds = %153
  %157 = load i32, ptr @test_count, align 4, !tbaa !5
  %158 = add nsw i32 %157, 1
  store i32 %158, ptr @test_count, align 4, !tbaa !5
  %159 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %5, i32 noundef 0) #10
  %160 = icmp eq i32 %159, -1
  br i1 %160, label %161, label %185

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

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

172:                                              ; preds = %168, %161
  br label %173

173:                                              ; preds = %168, %172
  %.str.5.sink269 = phi ptr [ @.str.5, %172 ], [ @.str.2, %168 ]
  store i32 %163, ptr %162, align 4, !tbaa !5
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = load i32, ptr @test_count, align 4, !tbaa !5
  %176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call ptr @s2n_strerror(i32 noundef %177, ptr noundef nonnull @.str.4) #10
  %179 = load i32, ptr %176, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror_debug(i32 noundef %179, ptr noundef nonnull @.str.4) #10
  %181 = load i32, ptr %162, align 4, !tbaa !5
  %182 = call ptr @strerror(i32 noundef %181) #10
  %183 = load i32, ptr %162, align 4, !tbaa !5
  %184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %174, ptr noundef nonnull %.str.5.sink269, i32 noundef %175, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %178, ptr noundef %180, ptr noundef %182, i32 noundef %183) #12
  call void @exit(i32 noundef 1) #13
  unreachable

185:                                              ; preds = %156
  call void @mock_client(ptr noundef nonnull %5)
  br label %186

186:                                              ; preds = %153, %185
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = add nsw i32 %187, 1
  store i32 %188, ptr @test_count, align 4, !tbaa !5
  %189 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #14
  %190 = icmp eq ptr %189, null
  br i1 %190, label %191, label %215

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

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

202:                                              ; preds = %198, %191
  br label %203

203:                                              ; preds = %198, %202
  %.str.5.sink280 = phi ptr [ @.str.5, %202 ], [ @.str.2, %198 ]
  store i32 %193, ptr %192, align 4, !tbaa !5
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = load i32, ptr @test_count, align 4, !tbaa !5
  %206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = call ptr @s2n_strerror(i32 noundef %207, ptr noundef nonnull @.str.4) #10
  %209 = load i32, ptr %206, align 4, !tbaa !5
  %210 = call ptr @s2n_strerror_debug(i32 noundef %209, ptr noundef nonnull @.str.4) #10
  %211 = load i32, ptr %192, align 4, !tbaa !5
  %212 = call ptr @strerror(i32 noundef %211) #10
  %213 = load i32, ptr %192, align 4, !tbaa !5
  %214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %204, ptr noundef nonnull %.str.5.sink280, i32 noundef %205, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %208, ptr noundef %210, ptr noundef %212, i32 noundef %213) #12
  call void @exit(i32 noundef 1) #13
  unreachable

215:                                              ; preds = %186
  %216 = add nsw i32 %187, 2
  store i32 %216, ptr @test_count, align 4, !tbaa !5
  %217 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #14
  %218 = icmp eq ptr %217, null
  br i1 %218, label %219, label %243

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

226:                                              ; preds = %219
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = call i32 @fileno(ptr noundef %227) #10
  %229 = call i32 @isatty(i32 noundef %228) #10
  %.not170 = icmp eq i32 %229, 0
  br i1 %.not170, label %230, label %231

230:                                              ; preds = %226, %219
  br label %231

231:                                              ; preds = %226, %230
  %.str.5.sink291 = phi ptr [ @.str.5, %230 ], [ @.str.2, %226 ]
  store i32 %221, ptr %220, align 4, !tbaa !5
  %232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %233 = load i32, ptr @test_count, align 4, !tbaa !5
  %234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call ptr @s2n_strerror(i32 noundef %235, ptr noundef nonnull @.str.4) #10
  %237 = load i32, ptr %234, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror_debug(i32 noundef %237, ptr noundef nonnull @.str.4) #10
  %239 = load i32, ptr %220, align 4, !tbaa !5
  %240 = call ptr @strerror(i32 noundef %239) #10
  %241 = load i32, ptr %220, align 4, !tbaa !5
  %242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %232, ptr noundef nonnull %.str.5.sink291, i32 noundef %233, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %236, ptr noundef %238, ptr noundef %240, i32 noundef %241) #12
  call void @exit(i32 noundef 1) #13
  unreachable

243:                                              ; preds = %215
  %244 = add nsw i32 %187, 3
  store i32 %244, ptr @test_count, align 4, !tbaa !5
  %245 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #14
  %246 = icmp eq ptr %245, null
  br i1 %246, label %247, label %271

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

254:                                              ; preds = %247
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = call i32 @fileno(ptr noundef %255) #10
  %257 = call i32 @isatty(i32 noundef %256) #10
  %.not169 = icmp eq i32 %257, 0
  br i1 %.not169, label %258, label %259

258:                                              ; preds = %254, %247
  br label %259

259:                                              ; preds = %254, %258
  %.str.5.sink302 = phi ptr [ @.str.5, %258 ], [ @.str.2, %254 ]
  store i32 %249, ptr %248, align 4, !tbaa !5
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = load i32, ptr @test_count, align 4, !tbaa !5
  %262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror(i32 noundef %263, ptr noundef nonnull @.str.4) #10
  %265 = load i32, ptr %262, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror_debug(i32 noundef %265, ptr noundef nonnull @.str.4) #10
  %267 = load i32, ptr %248, align 4, !tbaa !5
  %268 = call ptr @strerror(i32 noundef %267) #10
  %269 = load i32, ptr %248, align 4, !tbaa !5
  %270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %260, ptr noundef nonnull %.str.5.sink302, i32 noundef %261, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %264, ptr noundef %266, ptr noundef %268, i32 noundef %269) #12
  call void @exit(i32 noundef 1) #13
  unreachable

271:                                              ; preds = %243
  %272 = add nsw i32 %187, 4
  store i32 %272, ptr @test_count, align 4, !tbaa !5
  %273 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %5, i32 noundef 1) #10
  %274 = icmp eq i32 %273, -1
  br i1 %274, label %275, label %299

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

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

286:                                              ; preds = %282, %275
  br label %287

287:                                              ; preds = %282, %286
  %.str.5.sink313 = phi ptr [ @.str.5, %286 ], [ @.str.2, %282 ]
  store i32 %277, ptr %276, align 4, !tbaa !5
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = load i32, ptr @test_count, align 4, !tbaa !5
  %290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror(i32 noundef %291, ptr noundef nonnull @.str.4) #10
  %293 = load i32, ptr %290, align 4, !tbaa !5
  %294 = call ptr @s2n_strerror_debug(i32 noundef %293, ptr noundef nonnull @.str.4) #10
  %295 = load i32, ptr %276, align 4, !tbaa !5
  %296 = call ptr @strerror(i32 noundef %295) #10
  %297 = load i32, ptr %276, align 4, !tbaa !5
  %298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %288, ptr noundef nonnull %.str.5.sink313, i32 noundef %289, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %292, ptr noundef %294, ptr noundef %296, i32 noundef %297) #12
  call void @exit(i32 noundef 1) #13
  unreachable

299:                                              ; preds = %271
  %300 = load i32, ptr @test_count, align 4, !tbaa !5
  %301 = add nsw i32 %300, 1
  store i32 %301, ptr @test_count, align 4, !tbaa !5
  %302 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %303 = icmp eq ptr %302, null
  br i1 %303, label %304, label %328

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

311:                                              ; preds = %304
  %312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %313 = call i32 @fileno(ptr noundef %312) #10
  %314 = call i32 @isatty(i32 noundef %313) #10
  %.not167 = icmp eq i32 %314, 0
  br i1 %.not167, label %315, label %316

315:                                              ; preds = %311, %304
  br label %316

316:                                              ; preds = %311, %315
  %.str.5.sink324 = phi ptr [ @.str.5, %315 ], [ @.str.2, %311 ]
  store i32 %306, ptr %305, align 4, !tbaa !5
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = load i32, ptr @test_count, align 4, !tbaa !5
  %319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = call ptr @s2n_strerror(i32 noundef %320, ptr noundef nonnull @.str.4) #10
  %322 = load i32, ptr %319, align 4, !tbaa !5
  %323 = call ptr @s2n_strerror_debug(i32 noundef %322, ptr noundef nonnull @.str.4) #10
  %324 = load i32, ptr %305, align 4, !tbaa !5
  %325 = call ptr @strerror(i32 noundef %324) #10
  %326 = load i32, ptr %305, align 4, !tbaa !5
  %327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %317, ptr noundef nonnull %.str.5.sink324, i32 noundef %318, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %321, ptr noundef %323, ptr noundef %325, i32 noundef %326) #12
  call void @exit(i32 noundef 1) #13
  unreachable

328:                                              ; preds = %299
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = add nsw i32 %329, 1
  store i32 %330, ptr @test_count, align 4, !tbaa !5
  %331 = call ptr @s2n_config_new() #10
  %332 = icmp eq ptr %331, null
  br i1 %332, label %338, label %.preheader181.preheader

.preheader181.preheader:                          ; preds = %328
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = add nsw i32 %333, 1
  store i32 %334, ptr @test_count, align 4, !tbaa !5
  %335 = load ptr, ptr @certificate_paths, align 16, !tbaa !9
  %336 = call i32 @s2n_read_test_pem(ptr noundef %335, ptr noundef nonnull %189, i64 noundef 12000) #10
  %337 = icmp eq i32 %336, -1
  br i1 %337, label %389, label %413

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

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

349:                                              ; preds = %345, %338
  br label %350

350:                                              ; preds = %345, %349
  %.str.5.sink335 = phi ptr [ @.str.5, %349 ], [ @.str.2, %345 ]
  store i32 %340, ptr %339, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef nonnull @.str.4) #10
  %356 = load i32, ptr %353, align 4, !tbaa !5
  %357 = call ptr @s2n_strerror_debug(i32 noundef %356, ptr noundef nonnull @.str.4) #10
  %358 = load i32, ptr %339, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #10
  %360 = load i32, ptr %339, align 4, !tbaa !5
  %361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef nonnull %.str.5.sink335, i32 noundef %352, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %355, ptr noundef %357, ptr noundef %359, i32 noundef %360) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.preheader181.1:                                  ; preds = %501
  %362 = load i32, ptr @test_count, align 4, !tbaa !5
  %363 = add nsw i32 %362, 1
  store i32 %363, ptr @test_count, align 4, !tbaa !5
  %364 = load ptr, ptr getelementptr inbounds (i8, ptr @certificate_paths, i64 8), align 8, !tbaa !9
  %365 = call i32 @s2n_read_test_pem(ptr noundef %364, ptr noundef nonnull %189, i64 noundef 12000) #10
  %366 = icmp eq i32 %365, -1
  br i1 %366, label %389, label %367

367:                                              ; preds = %.preheader181.1
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr @test_count, align 4, !tbaa !5
  %370 = load ptr, ptr getelementptr inbounds (i8, ptr @private_key_paths, i64 8), align 8, !tbaa !9
  %371 = call i32 @s2n_read_test_pem(ptr noundef %370, ptr noundef nonnull %217, i64 noundef 12000) #10
  %372 = icmp eq i32 %371, -1
  br i1 %372, label %419, label %373

373:                                              ; preds = %367
  %374 = load i32, ptr @test_count, align 4, !tbaa !5
  %375 = add nsw i32 %374, 1
  store i32 %375, ptr @test_count, align 4, !tbaa !5
  %376 = call ptr @s2n_cert_chain_and_key_new() #10
  %377 = icmp eq ptr %376, null
  br i1 %377, label %448, label %378

378:                                              ; preds = %373
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr @test_count, align 4, !tbaa !5
  %381 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %376, ptr noundef nonnull %189, ptr noundef nonnull %217) #10
  %382 = icmp eq i32 %381, -1
  br i1 %382, label %477, label %383

383:                                              ; preds = %378
  %384 = load i32, ptr @test_count, align 4, !tbaa !5
  %385 = add nsw i32 %384, 1
  store i32 %385, ptr @test_count, align 4, !tbaa !5
  %386 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %331, ptr noundef nonnull %376) #10
  %387 = icmp eq i32 %386, -1
  br i1 %387, label %506, label %388

388:                                              ; preds = %383
  br i1 %.not142, label %588, label %530

389:                                              ; preds = %.preheader181.1, %.preheader181.preheader
  %390 = tail call ptr @__errno_location() #11
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = call i32 @s2n_print_stacktrace(ptr noundef %392) #10
  %394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %395 = trunc nuw i8 %394 to i1
  br i1 %395, label %396, label %400

396:                                              ; preds = %389
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = call i32 @fileno(ptr noundef %397) #10
  %399 = call i32 @isatty(i32 noundef %398) #10
  %.not165 = icmp eq i32 %399, 0
  br i1 %.not165, label %400, label %401

400:                                              ; preds = %396, %389
  br label %401

401:                                              ; preds = %396, %400
  %.str.5.sink346 = phi ptr [ @.str.5, %400 ], [ @.str.2, %396 ]
  store i32 %391, ptr %390, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror(i32 noundef %405, ptr noundef nonnull @.str.4) #10
  %407 = load i32, ptr %404, align 4, !tbaa !5
  %408 = call ptr @s2n_strerror_debug(i32 noundef %407, ptr noundef nonnull @.str.4) #10
  %409 = load i32, ptr %390, align 4, !tbaa !5
  %410 = call ptr @strerror(i32 noundef %409) #10
  %411 = load i32, ptr %390, align 4, !tbaa !5
  %412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %402, ptr noundef nonnull %.str.5.sink346, i32 noundef %403, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %406, ptr noundef %408, ptr noundef %410, i32 noundef %411) #12
  call void @exit(i32 noundef 1) #13
  unreachable

413:                                              ; preds = %.preheader181.preheader
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = add nsw i32 %414, 1
  store i32 %415, ptr @test_count, align 4, !tbaa !5
  %416 = load ptr, ptr @private_key_paths, align 16, !tbaa !9
  %417 = call i32 @s2n_read_test_pem(ptr noundef %416, ptr noundef nonnull %217, i64 noundef 12000) #10
  %418 = icmp eq i32 %417, -1
  br i1 %418, label %419, label %443

419:                                              ; preds = %367, %413
  %420 = tail call ptr @__errno_location() #11
  %421 = load i32, ptr %420, align 4, !tbaa !5
  %422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %423 = call i32 @s2n_print_stacktrace(ptr noundef %422) #10
  %424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %425 = trunc nuw i8 %424 to i1
  br i1 %425, label %426, label %430

426:                                              ; preds = %419
  %427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %428 = call i32 @fileno(ptr noundef %427) #10
  %429 = call i32 @isatty(i32 noundef %428) #10
  %.not164 = icmp eq i32 %429, 0
  br i1 %.not164, label %430, label %431

430:                                              ; preds = %426, %419
  br label %431

431:                                              ; preds = %426, %430
  %.str.5.sink357 = phi ptr [ @.str.5, %430 ], [ @.str.2, %426 ]
  store i32 %421, ptr %420, align 4, !tbaa !5
  %432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %433 = load i32, ptr @test_count, align 4, !tbaa !5
  %434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = call ptr @s2n_strerror(i32 noundef %435, ptr noundef nonnull @.str.4) #10
  %437 = load i32, ptr %434, align 4, !tbaa !5
  %438 = call ptr @s2n_strerror_debug(i32 noundef %437, ptr noundef nonnull @.str.4) #10
  %439 = load i32, ptr %420, align 4, !tbaa !5
  %440 = call ptr @strerror(i32 noundef %439) #10
  %441 = load i32, ptr %420, align 4, !tbaa !5
  %442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %432, ptr noundef nonnull %.str.5.sink357, i32 noundef %433, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %436, ptr noundef %438, ptr noundef %440, i32 noundef %441) #12
  call void @exit(i32 noundef 1) #13
  unreachable

443:                                              ; preds = %413
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr @test_count, align 4, !tbaa !5
  %446 = call ptr @s2n_cert_chain_and_key_new() #10
  %447 = icmp eq ptr %446, null
  br i1 %447, label %448, label %472

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

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

459:                                              ; preds = %455, %448
  br label %460

460:                                              ; preds = %455, %459
  %.str.5.sink368 = phi ptr [ @.str.5, %459 ], [ @.str.2, %455 ]
  store i32 %450, ptr %449, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %464, ptr noundef nonnull @.str.4) #10
  %466 = load i32, ptr %463, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef nonnull @.str.4) #10
  %468 = load i32, ptr %449, align 4, !tbaa !5
  %469 = call ptr @strerror(i32 noundef %468) #10
  %470 = load i32, ptr %449, align 4, !tbaa !5
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %461, ptr noundef nonnull %.str.5.sink368, i32 noundef %462, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %465, ptr noundef %467, ptr noundef %469, i32 noundef %470) #12
  call void @exit(i32 noundef 1) #13
  unreachable

472:                                              ; preds = %443
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = add nsw i32 %473, 1
  store i32 %474, ptr @test_count, align 4, !tbaa !5
  %475 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %446, ptr noundef nonnull %189, ptr noundef nonnull %217) #10
  %476 = icmp eq i32 %475, -1
  br i1 %476, label %477, label %501

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

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

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

489:                                              ; preds = %484, %488
  %.str.5.sink379 = phi ptr [ @.str.5, %488 ], [ @.str.2, %484 ]
  store i32 %479, ptr %478, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror(i32 noundef %493, ptr noundef nonnull @.str.4) #10
  %495 = load i32, ptr %492, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef nonnull @.str.4) #10
  %497 = load i32, ptr %478, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #10
  %499 = load i32, ptr %478, align 4, !tbaa !5
  %500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %490, ptr noundef nonnull %.str.5.sink379, i32 noundef %491, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %494, ptr noundef %496, ptr noundef %498, i32 noundef %499) #12
  call void @exit(i32 noundef 1) #13
  unreachable

501:                                              ; preds = %472
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %504 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %331, ptr noundef nonnull %446) #10
  %505 = icmp eq i32 %504, -1
  br i1 %505, label %506, label %.preheader181.1

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

513:                                              ; preds = %506
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = call i32 @fileno(ptr noundef %514) #10
  %516 = call i32 @isatty(i32 noundef %515) #10
  %.not161 = icmp eq i32 %516, 0
  br i1 %.not161, label %517, label %518

517:                                              ; preds = %513, %506
  br label %518

518:                                              ; preds = %513, %517
  %.str.5.sink390 = phi ptr [ @.str.5, %517 ], [ @.str.2, %513 ]
  store i32 %508, ptr %507, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror(i32 noundef %522, ptr noundef nonnull @.str.4) #10
  %524 = load i32, ptr %521, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror_debug(i32 noundef %524, ptr noundef nonnull @.str.4) #10
  %526 = load i32, ptr %507, align 4, !tbaa !5
  %527 = call ptr @strerror(i32 noundef %526) #10
  %528 = load i32, ptr %507, align 4, !tbaa !5
  %529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %519, ptr noundef nonnull %.str.5.sink390, i32 noundef %520, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %523, ptr noundef %525, ptr noundef %527, i32 noundef %528) #12
  call void @exit(i32 noundef 1) #13
  unreachable

530:                                              ; preds = %388
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %532 = add nsw i32 %531, 1
  store i32 %532, ptr @test_count, align 4, !tbaa !5
  %533 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.22, ptr noundef nonnull %245, i64 noundef 12000) #10
  %534 = icmp eq i32 %533, -1
  br i1 %534, label %535, label %559

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

542:                                              ; preds = %535
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = call i32 @fileno(ptr noundef %543) #10
  %545 = call i32 @isatty(i32 noundef %544) #10
  %.not160 = icmp eq i32 %545, 0
  br i1 %.not160, label %546, label %547

546:                                              ; preds = %542, %535
  br label %547

547:                                              ; preds = %542, %546
  %.str.5.sink401 = phi ptr [ @.str.5, %546 ], [ @.str.2, %542 ]
  store i32 %537, ptr %536, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror(i32 noundef %551, ptr noundef nonnull @.str.4) #10
  %553 = load i32, ptr %550, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef %553, ptr noundef nonnull @.str.4) #10
  %555 = load i32, ptr %536, align 4, !tbaa !5
  %556 = call ptr @strerror(i32 noundef %555) #10
  %557 = load i32, ptr %536, align 4, !tbaa !5
  %558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %548, ptr noundef nonnull %.str.5.sink401, i32 noundef %549, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %552, ptr noundef %554, ptr noundef %556, i32 noundef %557) #12
  call void @exit(i32 noundef 1) #13
  unreachable

559:                                              ; preds = %530
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = add nsw i32 %560, 1
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %331, ptr noundef nonnull %245) #10
  %563 = icmp eq i32 %562, -1
  br i1 %563, label %564, label %588

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

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

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

576:                                              ; preds = %571, %575
  %.str.5.sink412 = phi ptr [ @.str.5, %575 ], [ @.str.2, %571 ]
  store i32 %566, ptr %565, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror(i32 noundef %580, ptr noundef nonnull @.str.4) #10
  %582 = load i32, ptr %579, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef nonnull @.str.4) #10
  %584 = load i32, ptr %565, align 4, !tbaa !5
  %585 = call ptr @strerror(i32 noundef %584) #10
  %586 = load i32, ptr %565, align 4, !tbaa !5
  %587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef nonnull %.str.5.sink412, i32 noundef %578, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %581, ptr noundef %583, ptr noundef %585, i32 noundef %586) #12
  call void @exit(i32 noundef 1) #13
  unreachable

588:                                              ; preds = %388, %559
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr @test_count, align 4, !tbaa !5
  %591 = call i32 @s2n_connection_set_config(ptr noundef nonnull %302, ptr noundef nonnull %331) #10
  %592 = icmp eq i32 %591, -1
  br i1 %592, label %593, label %617

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

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

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

605:                                              ; preds = %600, %604
  %.str.5.sink423 = phi ptr [ @.str.5, %604 ], [ @.str.2, %600 ]
  store i32 %595, ptr %594, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror(i32 noundef %609, ptr noundef nonnull @.str.4) #10
  %611 = load i32, ptr %608, align 4, !tbaa !5
  %612 = call ptr @s2n_strerror_debug(i32 noundef %611, ptr noundef nonnull @.str.4) #10
  %613 = load i32, ptr %594, align 4, !tbaa !5
  %614 = call ptr @strerror(i32 noundef %613) #10
  %615 = load i32, ptr %594, align 4, !tbaa !5
  %616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef nonnull %.str.5.sink423, i32 noundef %607, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %610, ptr noundef %612, ptr noundef %614, i32 noundef %615) #12
  call void @exit(i32 noundef 1) #13
  unreachable

617:                                              ; preds = %588
  %618 = load i32, ptr @test_count, align 4, !tbaa !5
  %619 = add nsw i32 %618, 1
  store i32 %619, ptr @test_count, align 4, !tbaa !5
  %620 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %302, ptr noundef nonnull %5) #10
  %621 = icmp eq i32 %620, -1
  br i1 %621, label %622, label %646

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

629:                                              ; preds = %622
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @fileno(ptr noundef %630) #10
  %632 = call i32 @isatty(i32 noundef %631) #10
  %.not157 = icmp eq i32 %632, 0
  br i1 %.not157, label %633, label %634

633:                                              ; preds = %629, %622
  br label %634

634:                                              ; preds = %629, %633
  %.str.5.sink434 = phi ptr [ @.str.5, %633 ], [ @.str.2, %629 ]
  store i32 %624, ptr %623, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror(i32 noundef %638, ptr noundef nonnull @.str.4) #10
  %640 = load i32, ptr %637, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror_debug(i32 noundef %640, ptr noundef nonnull @.str.4) #10
  %642 = load i32, ptr %623, align 4, !tbaa !5
  %643 = call ptr @strerror(i32 noundef %642) #10
  %644 = load i32, ptr %623, align 4, !tbaa !5
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef nonnull %.str.5.sink434, i32 noundef %636, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %639, ptr noundef %641, ptr noundef %643, i32 noundef %644) #12
  call void @exit(i32 noundef 1) #13
  unreachable

646:                                              ; preds = %617
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr @test_count, align 4, !tbaa !5
  %649 = call i32 @s2n_negotiate(ptr noundef nonnull %302, ptr noundef nonnull %3) #10
  %650 = icmp eq i32 %649, -1
  br i1 %650, label %651, label %675

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

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

662:                                              ; preds = %658, %651
  br label %663

663:                                              ; preds = %658, %662
  %.str.5.sink445 = phi ptr [ @.str.5, %662 ], [ @.str.2, %658 ]
  store i32 %653, ptr %652, align 4, !tbaa !5
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = load i32, ptr @test_count, align 4, !tbaa !5
  %666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror(i32 noundef %667, ptr noundef nonnull @.str.4) #10
  %669 = load i32, ptr %666, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror_debug(i32 noundef %669, ptr noundef nonnull @.str.4) #10
  %671 = load i32, ptr %652, align 4, !tbaa !5
  %672 = call ptr @strerror(i32 noundef %671) #10
  %673 = load i32, ptr %652, align 4, !tbaa !5
  %674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %664, ptr noundef nonnull %.str.5.sink445, i32 noundef %665, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %668, ptr noundef %670, ptr noundef %672, i32 noundef %673) #12
  call void @exit(i32 noundef 1) #13
  unreachable

675:                                              ; preds = %646
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr @test_count, align 4, !tbaa !5
  %678 = getelementptr inbounds i8, ptr %302, i64 220
  %679 = load i8, ptr %678, align 4, !tbaa !15
  %680 = icmp eq i8 %679, 33
  br i1 %680, label %705, label %681

681:                                              ; preds = %675
  %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
  %.not143 = icmp eq i32 %691, 0
  br i1 %.not143, label %692, label %693

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

693:                                              ; preds = %688, %692
  %.str.5.sink456 = phi ptr [ @.str.5, %692 ], [ @.str.2, %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.sink456, i32 noundef %695, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %698, ptr noundef %700, ptr noundef %702, i32 noundef %703) #12
  call void @exit(i32 noundef 1) #13
  unreachable

705:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 65535, ptr nonnull %6) #10
  br label %.preheader178

706:                                              ; preds = %746
  %indvars.iv.next205 = add nuw nsw i64 %indvars.iv204, 100
  %707 = icmp ult i64 %indvars.iv204, 65435
  %indvars.iv.next202 = add nuw nsw i32 %indvars.iv201, 100
  br i1 %707, label %.preheader178, label %.preheader180, !llvm.loop !42

.preheader178:                                    ; preds = %705, %706
  %indvars.iv204 = phi i64 [ 1, %705 ], [ %indvars.iv.next205, %706 ]
  %indvars.iv201 = phi i32 [ 0, %705 ], [ %indvars.iv.next202, %706 ]
  %708 = trunc nuw nsw i64 %indvars.iv204 to i32
  br label %709

709:                                              ; preds = %.preheader178, %740
  %.0128 = phi i32 [ %741, %740 ], [ %708, %.preheader178 ]
  %.0126 = phi ptr [ %743, %740 ], [ %6, %.preheader178 ]
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr @test_count, align 4, !tbaa !5
  %712 = sext i32 %.0128 to i64
  %713 = call i64 @s2n_recv(ptr noundef nonnull %302, ptr noundef %.0126, i64 noundef %712, ptr noundef nonnull %3) #10
  %714 = trunc i64 %713 to i32
  %715 = icmp eq i32 %714, -1
  br i1 %715, label %716, label %740

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

723:                                              ; preds = %716
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = call i32 @fileno(ptr noundef %724) #10
  %726 = call i32 @isatty(i32 noundef %725) #10
  %.not155 = icmp eq i32 %726, 0
  br i1 %.not155, label %727, label %728

727:                                              ; preds = %723, %716
  br label %728

728:                                              ; preds = %723, %727
  %.str.5.sink467 = phi ptr [ @.str.5, %727 ], [ @.str.2, %723 ]
  store i32 %718, ptr %717, align 4, !tbaa !5
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = load i32, ptr @test_count, align 4, !tbaa !5
  %731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror(i32 noundef %732, ptr noundef nonnull @.str.4) #10
  %734 = load i32, ptr %731, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror_debug(i32 noundef %734, ptr noundef nonnull @.str.4) #10
  %736 = load i32, ptr %717, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #10
  %738 = load i32, ptr %717, align 4, !tbaa !5
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %729, ptr noundef nonnull %.str.5.sink467, i32 noundef %730, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %733, ptr noundef %735, ptr noundef %737, i32 noundef %738) #12
  call void @exit(i32 noundef 1) #13
  unreachable

740:                                              ; preds = %709
  %741 = sub nsw i32 %.0128, %714
  %sext = shl i64 %713, 32
  %742 = ashr exact i64 %sext, 32
  %743 = getelementptr inbounds i8, ptr %.0126, i64 %742
  %.not152 = icmp eq i32 %741, 0
  br i1 %.not152, label %.preheader, label %709, !llvm.loop !44

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

745:                                              ; preds = %750
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %indvars.iv204
  br i1 %exitcond.not, label %746, label %750, !llvm.loop !45

746:                                              ; preds = %745
  %747 = add nsw i32 %744, 2
  store i32 %747, ptr @test_count, align 4, !tbaa !5
  %748 = call i32 @s2n_connection_release_buffers(ptr noundef nonnull %302) #10
  %749 = icmp eq i32 %748, -1
  br i1 %749, label %780, label %706

750:                                              ; preds = %.preheader, %745
  %indvars.iv = phi i64 [ 0, %.preheader ], [ %indvars.iv.next, %745 ]
  %751 = phi i32 [ %test_count.promoted, %.preheader ], [ %752, %745 ]
  %752 = add nsw i32 %751, 1
  %753 = getelementptr inbounds [65535 x i8], ptr %6, i64 0, i64 %indvars.iv
  %754 = load i8, ptr %753, align 1, !tbaa !46
  %755 = icmp eq i8 %754, 33
  br i1 %755, label %745, label %756

756:                                              ; preds = %750
  store i32 %752, ptr @test_count, align 4, !tbaa !5
  %757 = tail call ptr @__errno_location() #11
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @s2n_print_stacktrace(ptr noundef %759) #10
  %761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %762 = trunc nuw i8 %761 to i1
  br i1 %762, label %763, label %767

763:                                              ; preds = %756
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @fileno(ptr noundef %764) #10
  %766 = call i32 @isatty(i32 noundef %765) #10
  %.not154 = icmp eq i32 %766, 0
  br i1 %.not154, label %767, label %768

767:                                              ; preds = %763, %756
  br label %768

768:                                              ; preds = %763, %767
  %.str.5.sink478 = phi ptr [ @.str.5, %767 ], [ @.str.2, %763 ]
  store i32 %758, ptr %757, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror(i32 noundef %772, ptr noundef nonnull @.str.4) #10
  %774 = load i32, ptr %771, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror_debug(i32 noundef %774, ptr noundef nonnull @.str.4) #10
  %776 = load i32, ptr %757, align 4, !tbaa !5
  %777 = call ptr @strerror(i32 noundef %776) #10
  %778 = load i32, ptr %757, align 4, !tbaa !5
  %779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef nonnull %.str.5.sink478, i32 noundef %770, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %773, ptr noundef %775, ptr noundef %777, i32 noundef %778) #12
  call void @exit(i32 noundef 1) #13
  unreachable

780:                                              ; preds = %746
  %781 = tail call ptr @__errno_location() #11
  %782 = load i32, ptr %781, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = call i32 @s2n_print_stacktrace(ptr noundef %783) #10
  %785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %786 = trunc nuw i8 %785 to i1
  br i1 %786, label %787, label %791

787:                                              ; preds = %780
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = call i32 @fileno(ptr noundef %788) #10
  %790 = call i32 @isatty(i32 noundef %789) #10
  %.not153 = icmp eq i32 %790, 0
  br i1 %.not153, label %791, label %792

791:                                              ; preds = %787, %780
  br label %792

792:                                              ; preds = %787, %791
  %.str.5.sink489 = phi ptr [ @.str.5, %791 ], [ @.str.2, %787 ]
  store i32 %782, ptr %781, align 4, !tbaa !5
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror(i32 noundef %796, ptr noundef nonnull @.str.4) #10
  %798 = load i32, ptr %795, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror_debug(i32 noundef %798, ptr noundef nonnull @.str.4) #10
  %800 = load i32, ptr %781, align 4, !tbaa !5
  %801 = call ptr @strerror(i32 noundef %800) #10
  %802 = load i32, ptr %781, align 4, !tbaa !5
  %803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %793, ptr noundef nonnull %.str.5.sink489, i32 noundef %794, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %797, ptr noundef %799, ptr noundef %801, i32 noundef %802) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.preheader180:                                    ; preds = %706, %807
  %804 = call i32 @s2n_shutdown(ptr noundef nonnull %302, ptr noundef nonnull %3) #10
  %805 = load i32, ptr @test_count, align 4, !tbaa !5
  %806 = add nsw i32 %805, 1
  store i32 %806, ptr @test_count, align 4, !tbaa !5
  %cond = icmp eq i32 %804, 0
  br i1 %cond, label %835, label %807

807:                                              ; preds = %.preheader180
  %808 = tail call ptr @__errno_location() #11
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = icmp eq i32 %809, 11
  %811 = load i32, ptr %3, align 4
  %812 = icmp ne i32 %811, 0
  %or.cond = select i1 %810, i1 %812, i1 false
  br i1 %or.cond, label %.preheader180, label %813, !llvm.loop !47

813:                                              ; preds = %807
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @s2n_print_stacktrace(ptr noundef %814) #10
  %816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %817 = trunc nuw i8 %816 to i1
  br i1 %817, label %818, label %822

818:                                              ; preds = %813
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = call i32 @fileno(ptr noundef %819) #10
  %821 = call i32 @isatty(i32 noundef %820) #10
  %.not144 = icmp eq i32 %821, 0
  br i1 %.not144, label %822, label %823

822:                                              ; preds = %818, %813
  br label %823

823:                                              ; preds = %818, %822
  %.str.5.sink500 = phi ptr [ @.str.5, %822 ], [ @.str.2, %818 ]
  store i32 %809, ptr %808, align 4, !tbaa !5
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror(i32 noundef %827, ptr noundef nonnull @.str.4) #10
  %829 = load i32, ptr %826, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror_debug(i32 noundef %829, ptr noundef nonnull @.str.4) #10
  %831 = load i32, ptr %808, align 4, !tbaa !5
  %832 = call ptr @strerror(i32 noundef %831) #10
  %833 = load i32, ptr %808, align 4, !tbaa !5
  %834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %824, ptr noundef nonnull %.str.5.sink500, i32 noundef %825, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %828, ptr noundef %830, ptr noundef %832, i32 noundef %833) #12
  call void @exit(i32 noundef 1) #13
  unreachable

835:                                              ; preds = %.preheader180
  %836 = add nsw i32 %805, 2
  store i32 %836, ptr @test_count, align 4, !tbaa !5
  %837 = call i32 @s2n_connection_free(ptr noundef nonnull %302) #10
  %838 = icmp eq i32 %837, -1
  br i1 %838, label %843, label %.preheader179.preheader

.preheader179.preheader:                          ; preds = %835
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = add nsw i32 %839, 1
  store i32 %840, ptr @test_count, align 4, !tbaa !5
  %841 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %446) #10
  %842 = icmp eq i32 %841, -1
  br i1 %842, label %876, label %.preheader179.1

843:                                              ; preds = %835
  %844 = tail call ptr @__errno_location() #11
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = call i32 @s2n_print_stacktrace(ptr noundef %846) #10
  %848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %849 = trunc nuw i8 %848 to i1
  br i1 %849, label %850, label %854

850:                                              ; preds = %843
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = call i32 @fileno(ptr noundef %851) #10
  %853 = call i32 @isatty(i32 noundef %852) #10
  %.not151 = icmp eq i32 %853, 0
  br i1 %.not151, label %854, label %855

854:                                              ; preds = %850, %843
  br label %855

855:                                              ; preds = %850, %854
  %.str.5.sink511 = phi ptr [ @.str.5, %854 ], [ @.str.2, %850 ]
  store i32 %845, ptr %844, align 4, !tbaa !5
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %859 = load i32, ptr %858, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror(i32 noundef %859, ptr noundef nonnull @.str.4) #10
  %861 = load i32, ptr %858, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror_debug(i32 noundef %861, ptr noundef nonnull @.str.4) #10
  %863 = load i32, ptr %844, align 4, !tbaa !5
  %864 = call ptr @strerror(i32 noundef %863) #10
  %865 = load i32, ptr %844, align 4, !tbaa !5
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %856, ptr noundef nonnull %.str.5.sink511, i32 noundef %857, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %860, ptr noundef %862, ptr noundef %864, i32 noundef %865) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.preheader179.1:                                  ; preds = %.preheader179.preheader
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = add nsw i32 %867, 1
  store i32 %868, ptr @test_count, align 4, !tbaa !5
  %869 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %376) #10
  %870 = icmp eq i32 %869, -1
  br i1 %870, label %876, label %871

871:                                              ; preds = %.preheader179.1
  %872 = load i32, ptr @test_count, align 4, !tbaa !5
  %873 = add nsw i32 %872, 1
  store i32 %873, ptr @test_count, align 4, !tbaa !5
  %874 = call i32 @s2n_config_free(ptr noundef nonnull %331) #10
  %875 = icmp eq i32 %874, -1
  br i1 %875, label %900, label %924

876:                                              ; preds = %.preheader179.1, %.preheader179.preheader
  %877 = tail call ptr @__errno_location() #11
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = call i32 @s2n_print_stacktrace(ptr noundef %879) #10
  %881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %882 = trunc nuw i8 %881 to i1
  br i1 %882, label %883, label %887

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

887:                                              ; preds = %883, %876
  br label %888

888:                                              ; preds = %883, %887
  %.str.5.sink522 = phi ptr [ @.str.5, %887 ], [ @.str.2, %883 ]
  store i32 %878, ptr %877, align 4, !tbaa !5
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call ptr @s2n_strerror(i32 noundef %892, ptr noundef nonnull @.str.4) #10
  %894 = load i32, ptr %891, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror_debug(i32 noundef %894, ptr noundef nonnull @.str.4) #10
  %896 = load i32, ptr %877, align 4, !tbaa !5
  %897 = call ptr @strerror(i32 noundef %896) #10
  %898 = load i32, ptr %877, align 4, !tbaa !5
  %899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %889, ptr noundef nonnull %.str.5.sink522, i32 noundef %890, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %893, ptr noundef %895, ptr noundef %897, i32 noundef %898) #12
  call void @exit(i32 noundef 1) #13
  unreachable

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

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

911:                                              ; preds = %907, %900
  br label %912

912:                                              ; preds = %907, %911
  %.str.5.sink533 = phi ptr [ @.str.5, %911 ], [ @.str.2, %907 ]
  store i32 %902, ptr %901, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef nonnull @.str.4) #10
  %918 = load i32, ptr %915, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror_debug(i32 noundef %918, ptr noundef nonnull @.str.4) #10
  %920 = load i32, ptr %901, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #10
  %922 = load i32, ptr %901, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef nonnull %.str.5.sink533, i32 noundef %914, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %917, ptr noundef %919, ptr noundef %921, i32 noundef %922) #12
  call void @exit(i32 noundef 1) #13
  unreachable

924:                                              ; preds = %871
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr @test_count, align 4, !tbaa !5
  %927 = call i32 @waitpid(i32 noundef -1, ptr noundef nonnull %4, i32 noundef 0) #10
  %928 = icmp eq i32 %927, %154
  br i1 %928, label %953, label %929

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

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

940:                                              ; preds = %936, %929
  br label %941

941:                                              ; preds = %936, %940
  %.str.5.sink544 = phi ptr [ @.str.5, %940 ], [ @.str.2, %936 ]
  store i32 %931, ptr %930, align 4, !tbaa !5
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = load i32, ptr @test_count, align 4, !tbaa !5
  %944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror(i32 noundef %945, ptr noundef nonnull @.str.4) #10
  %947 = load i32, ptr %944, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef nonnull @.str.4) #10
  %949 = load i32, ptr %930, align 4, !tbaa !5
  %950 = call ptr @strerror(i32 noundef %949) #10
  %951 = load i32, ptr %930, align 4, !tbaa !5
  %952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %942, ptr noundef nonnull %.str.5.sink544, i32 noundef %943, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %946, ptr noundef %948, ptr noundef %950, i32 noundef %951) #12
  call void @exit(i32 noundef 1) #13
  unreachable

953:                                              ; preds = %924
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = add nsw i32 %954, 1
  store i32 %955, ptr @test_count, align 4, !tbaa !5
  %956 = load i32, ptr %4, align 4, !tbaa !5
  %957 = icmp eq i32 %956, 0
  br i1 %957, label %982, label %958

958:                                              ; preds = %953
  %959 = tail call ptr @__errno_location() #11
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = call i32 @s2n_print_stacktrace(ptr noundef %961) #10
  %963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %964 = trunc nuw i8 %963 to i1
  br i1 %964, label %965, label %969

965:                                              ; preds = %958
  %966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %967 = call i32 @fileno(ptr noundef %966) #10
  %968 = call i32 @isatty(i32 noundef %967) #10
  %.not147 = icmp eq i32 %968, 0
  br i1 %.not147, label %969, label %970

969:                                              ; preds = %965, %958
  br label %970

970:                                              ; preds = %965, %969
  %.str.5.sink555 = phi ptr [ @.str.5, %969 ], [ @.str.2, %965 ]
  store i32 %960, ptr %959, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = load i32, ptr @test_count, align 4, !tbaa !5
  %973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror(i32 noundef %974, ptr noundef nonnull @.str.4) #10
  %976 = load i32, ptr %973, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror_debug(i32 noundef %976, ptr noundef nonnull @.str.4) #10
  %978 = load i32, ptr %959, align 4, !tbaa !5
  %979 = call ptr @strerror(i32 noundef %978) #10
  %980 = load i32, ptr %959, align 4, !tbaa !5
  %981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %971, ptr noundef nonnull %.str.5.sink555, i32 noundef %972, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %975, ptr noundef %977, ptr noundef %979, i32 noundef %980) #12
  call void @exit(i32 noundef 1) #13
  unreachable

982:                                              ; preds = %953
  %983 = add nsw i32 %954, 2
  store i32 %983, ptr @test_count, align 4, !tbaa !5
  %984 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %5, i32 noundef 0) #10
  %985 = icmp eq i32 %984, -1
  br i1 %985, label %986, label %1010

986:                                              ; preds = %982
  %987 = tail call ptr @__errno_location() #11
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = call i32 @s2n_print_stacktrace(ptr noundef %989) #10
  %991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %992 = trunc nuw i8 %991 to i1
  br i1 %992, label %993, label %997

993:                                              ; preds = %986
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = call i32 @fileno(ptr noundef %994) #10
  %996 = call i32 @isatty(i32 noundef %995) #10
  %.not148 = icmp eq i32 %996, 0
  br i1 %.not148, label %997, label %998

997:                                              ; preds = %993, %986
  br label %998

998:                                              ; preds = %993, %997
  %.str.5.sink566 = phi ptr [ @.str.5, %997 ], [ @.str.2, %993 ]
  store i32 %988, ptr %987, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef nonnull @.str.4) #10
  %1004 = load i32, ptr %1001, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef nonnull @.str.4) #10
  %1006 = load i32, ptr %987, align 4, !tbaa !5
  %1007 = call ptr @strerror(i32 noundef %1006) #10
  %1008 = load i32, ptr %987, align 4, !tbaa !5
  %1009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef nonnull %.str.5.sink566, i32 noundef %1000, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1003, ptr noundef %1005, ptr noundef %1007, i32 noundef %1008) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1010:                                             ; preds = %982
  call void @free(ptr noundef %189) #10
  call void @free(ptr noundef %217) #10
  call void @free(ptr noundef %245) #10
  call void @llvm.lifetime.end.p0(i64 65535, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  br i1 %.not142, label %.preheader182, label %122, !llvm.loop !48

1011:                                             ; preds = %122
  %1012 = tail call ptr @__errno_location() #11
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = call i32 @s2n_print_stacktrace(ptr noundef %1014) #10
  %1016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1017 = trunc nuw i8 %1016 to i1
  br i1 %1017, label %1018, label %1022

1018:                                             ; preds = %1011
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = call i32 @fileno(ptr noundef %1019) #10
  %1021 = call i32 @isatty(i32 noundef %1020) #10
  %.not141 = icmp eq i32 %1021, 0
  br i1 %.not141, label %1022, label %1023

1022:                                             ; preds = %1018, %1011
  br label %1023

1023:                                             ; preds = %1018, %1022
  %.str.5.sink577 = phi ptr [ @.str.5, %1022 ], [ @.str.2, %1018 ]
  store i32 %1013, ptr %1012, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror(i32 noundef %1027, ptr noundef nonnull @.str.4) #10
  %1029 = load i32, ptr %1026, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef nonnull @.str.4) #10
  %1031 = load i32, ptr %1012, align 4, !tbaa !5
  %1032 = call ptr @strerror(i32 noundef %1031) #10
  %1033 = load i32, ptr %1012, align 4, !tbaa !5
  %1034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1024, ptr noundef nonnull %.str.5.sink577, i32 noundef %1025, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1028, ptr noundef %1030, ptr noundef %1032, i32 noundef %1033) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1035:                                             ; preds = %122
  %1036 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1037 = icmp eq i32 %1036, -1
  br i1 %1037, label %1038, label %1062

1038:                                             ; preds = %1035
  %1039 = tail call ptr @__errno_location() #11
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @s2n_print_stacktrace(ptr noundef %1041) #10
  %1043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1044 = trunc nuw i8 %1043 to i1
  br i1 %1044, label %1045, label %1049

1045:                                             ; preds = %1038
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = call i32 @fileno(ptr noundef %1046) #10
  %1048 = call i32 @isatty(i32 noundef %1047) #10
  %.not140 = icmp eq i32 %1048, 0
  br i1 %.not140, label %1049, label %1050

1049:                                             ; preds = %1045, %1038
  br label %1050

1050:                                             ; preds = %1045, %1049
  %.str.5.sink588 = phi ptr [ @.str.5, %1049 ], [ @.str.2, %1045 ]
  store i32 %1040, ptr %1039, align 4, !tbaa !5
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror(i32 noundef %1054, ptr noundef nonnull @.str.4) #10
  %1056 = load i32, ptr %1053, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror_debug(i32 noundef %1056, ptr noundef nonnull @.str.4) #10
  %1058 = load i32, ptr %1039, align 4, !tbaa !5
  %1059 = call ptr @strerror(i32 noundef %1058) #10
  %1060 = load i32, ptr %1039, align 4, !tbaa !5
  %1061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1051, ptr noundef nonnull %.str.5.sink588, i32 noundef %1052, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1055, ptr noundef %1057, ptr noundef %1059, i32 noundef %1060) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1062:                                             ; preds = %1035
  %1063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1064 = trunc nuw i8 %1063 to i1
  br i1 %1064, label %1065, label %1076

1065:                                             ; preds = %1062
  %1066 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1067 = call i32 @fileno(ptr noundef %1066) #10
  %1068 = call i32 @isatty(i32 noundef %1067) #10
  %.not = icmp eq i32 %1068, 0
  br i1 %.not, label %1076, label %1069

1069:                                             ; preds = %1065
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not139 = icmp eq i32 %1070, 0
  %1071 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not139, label %1074, label %1072

1072:                                             ; preds = %1069
  %1073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1071, ptr noundef nonnull @.str.40, i32 noundef %1070) #10
  br label %1083

1074:                                             ; preds = %1069
  %1075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1071, ptr noundef nonnull @.str.41) #10
  br label %1083

1076:                                             ; preds = %1065, %1062
  %1077 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not138 = icmp eq i32 %1077, 0
  %1078 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not138, label %1081, label %1079

1079:                                             ; preds = %1076
  %1080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef nonnull @.str.42, i32 noundef %1077) #10
  br label %1083

1081:                                             ; preds = %1076
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef nonnull @.str.43) #10
  br label %1083

1083:                                             ; preds = %1079, %1081, %1072, %1074
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #10
  ret i32 0
}

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

declare i32 @s2n_io_pair_init(ptr noundef) local_unnamed_addr #2

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

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

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

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #2

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

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

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

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


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