; LLVM IR from aws/s2n-tls :: tests/unit (s2n_handshake_errno_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_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 [72 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = 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) #7
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  br label %27

27:                                               ; preds = %2
  br label %28

28:                                               ; preds = %27
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %29 = load ptr, ptr @stdout, align 8, !tbaa !9
  %30 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29, ptr noundef @.str, ptr noundef @.str.1) #7
  %31 = load ptr, ptr @stdout, align 8, !tbaa !9
  %32 = call i32 @fflush(ptr noundef %31)
  br label %33

33:                                               ; preds = %28
  %34 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %35 = icmp eq i32 %34, -1
  br i1 %35, label %36, label %89

36:                                               ; preds = %33
  br label %37

37:                                               ; preds = %36
  br label %38

38:                                               ; preds = %37
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  %39 = call ptr @__errno_location() #8
  %40 = load i32, ptr %39, align 4, !tbaa !5
  store i32 %40, ptr %8, align 4, !tbaa !5
  %41 = load ptr, ptr @stderr, align 8, !tbaa !9
  %42 = call i32 @s2n_print_stacktrace(ptr noundef %41)
  %43 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %44 = trunc i8 %43 to i1
  br i1 %44, label %45, label %67

45:                                               ; preds = %38
  %46 = load ptr, ptr @stderr, align 8, !tbaa !9
  %47 = call i32 @fileno(ptr noundef %46) #7
  %48 = call i32 @isatty(i32 noundef %47) #7
  %49 = icmp ne i32 %48, 0
  br i1 %49, label %50, label %67

50:                                               ; preds = %45
  %51 = load i32, ptr %8, align 4, !tbaa !5
  %52 = call ptr @__errno_location() #8
  store i32 %51, ptr %52, align 4, !tbaa !5
  %53 = load ptr, ptr @stderr, align 8, !tbaa !9
  %54 = load i32, ptr @test_count, align 4, !tbaa !5
  %55 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %56 = load i32, ptr %55, align 4, !tbaa !5
  %57 = call ptr @s2n_strerror(i32 noundef %56, ptr noundef @.str.4)
  %58 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %59 = load i32, ptr %58, align 4, !tbaa !5
  %60 = call ptr @s2n_strerror_debug(i32 noundef %59, ptr noundef @.str.4)
  %61 = call ptr @__errno_location() #8
  %62 = load i32, ptr %61, align 4, !tbaa !5
  %63 = call ptr @strerror(i32 noundef %62) #7
  %64 = call ptr @__errno_location() #8
  %65 = load i32, ptr %64, align 4, !tbaa !5
  %66 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %53, ptr noundef @.str.2, i32 noundef %54, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 43, ptr noundef %57, ptr noundef %60, ptr noundef %63, i32 noundef %65) #7
  br label %84

67:                                               ; preds = %45, %38
  %68 = load i32, ptr %8, align 4, !tbaa !5
  %69 = call ptr @__errno_location() #8
  store i32 %68, ptr %69, align 4, !tbaa !5
  %70 = load ptr, ptr @stderr, align 8, !tbaa !9
  %71 = load i32, ptr @test_count, align 4, !tbaa !5
  %72 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %73 = load i32, ptr %72, align 4, !tbaa !5
  %74 = call ptr @s2n_strerror(i32 noundef %73, ptr noundef @.str.4)
  %75 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %76 = load i32, ptr %75, align 4, !tbaa !5
  %77 = call ptr @s2n_strerror_debug(i32 noundef %76, ptr noundef @.str.4)
  %78 = call ptr @__errno_location() #8
  %79 = load i32, ptr %78, align 4, !tbaa !5
  %80 = call ptr @strerror(i32 noundef %79) #7
  %81 = call ptr @__errno_location() #8
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %70, ptr noundef @.str.5, i32 noundef %71, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 43, ptr noundef %74, ptr noundef %77, ptr noundef %80, i32 noundef %82) #7
  br label %84

84:                                               ; preds = %67, %50
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  br label %85

85:                                               ; preds = %84
  br label %86

86:                                               ; preds = %85
  call void @exit(i32 noundef 1) #9
  unreachable

87:                                               ; No predecessors!
  br label %88

88:                                               ; preds = %87
  br label %89

89:                                               ; preds = %88, %33
  br label %90

90:                                               ; preds = %89
  br label %91

91:                                               ; preds = %90
  br label %92

92:                                               ; preds = %91
  %93 = load i32, ptr @test_count, align 4, !tbaa !5
  %94 = add nsw i32 %93, 1
  store i32 %94, ptr @test_count, align 4, !tbaa !5
  %95 = call i32 @s2n_enable_atexit()
  %96 = icmp eq i32 %95, -1
  br i1 %96, label %97, label %150

97:                                               ; preds = %92
  br label %98

98:                                               ; preds = %97
  br label %99

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

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

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

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

145:                                              ; preds = %128, %111
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %146

146:                                              ; preds = %145
  br label %147

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

148:                                              ; No predecessors!
  br label %149

149:                                              ; preds = %148
  br label %150

150:                                              ; preds = %149, %92
  br label %151

151:                                              ; preds = %150
  br label %152

152:                                              ; preds = %151
  br label %153

153:                                              ; preds = %152
  br label %154

154:                                              ; preds = %153
  br label %155

155:                                              ; preds = %154
  %156 = call i32 @s2n_init()
  %157 = icmp eq i32 %156, -1
  br i1 %157, label %158, label %211

158:                                              ; preds = %155
  br label %159

159:                                              ; preds = %158
  br label %160

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

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

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

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

206:                                              ; preds = %189, %172
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  br label %207

207:                                              ; preds = %206
  br label %208

208:                                              ; preds = %207
  call void @exit(i32 noundef 1) #9
  unreachable

209:                                              ; No predecessors!
  br label %210

210:                                              ; preds = %209
  br label %211

211:                                              ; preds = %210, %155
  br label %212

212:                                              ; preds = %211
  br label %213

213:                                              ; preds = %212
  br label %214

214:                                              ; preds = %213
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215
  %217 = load i32, ptr @test_count, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr @test_count, align 4, !tbaa !5
  %219 = call i32 (...) @s2n_disable_tls13_in_test()
  %220 = icmp eq i32 %219, -1
  br i1 %220, label %221, label %274

221:                                              ; preds = %216
  br label %222

222:                                              ; preds = %221
  br label %223

223:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  %224 = call ptr @__errno_location() #8
  %225 = load i32, ptr %224, align 4, !tbaa !5
  store i32 %225, ptr %11, align 4, !tbaa !5
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = call i32 @s2n_print_stacktrace(ptr noundef %226)
  %228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %229 = trunc i8 %228 to i1
  br i1 %229, label %230, label %252

230:                                              ; preds = %223
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @fileno(ptr noundef %231) #7
  %233 = call i32 @isatty(i32 noundef %232) #7
  %234 = icmp ne i32 %233, 0
  br i1 %234, label %235, label %252

235:                                              ; preds = %230
  %236 = load i32, ptr %11, align 4, !tbaa !5
  %237 = call ptr @__errno_location() #8
  store i32 %236, ptr %237, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = load i32, ptr @test_count, align 4, !tbaa !5
  %240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call ptr @s2n_strerror(i32 noundef %241, ptr noundef @.str.4)
  %243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = call ptr @s2n_strerror_debug(i32 noundef %244, ptr noundef @.str.4)
  %246 = call ptr @__errno_location() #8
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = call ptr @strerror(i32 noundef %247) #7
  %249 = call ptr @__errno_location() #8
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %238, ptr noundef @.str.2, i32 noundef %239, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 44, ptr noundef %242, ptr noundef %245, ptr noundef %248, i32 noundef %250) #7
  br label %269

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

269:                                              ; preds = %252, %235
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270
  call void @exit(i32 noundef 1) #9
  unreachable

272:                                              ; No predecessors!
  br label %273

273:                                              ; preds = %272
  br label %274

274:                                              ; preds = %273, %216
  br label %275

275:                                              ; preds = %274
  br label %276

276:                                              ; preds = %275
  br label %277

277:                                              ; preds = %276
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr @test_count, align 4, !tbaa !5
  %280 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %280, ptr %6, align 8, !tbaa !9
  %281 = icmp eq ptr %280, null
  br i1 %281, label %282, label %335

282:                                              ; preds = %277
  br label %283

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  %285 = call ptr @__errno_location() #8
  %286 = load i32, ptr %285, align 4, !tbaa !5
  store i32 %286, ptr %12, align 4, !tbaa !5
  %287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %288 = call i32 @s2n_print_stacktrace(ptr noundef %287)
  %289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %290 = trunc i8 %289 to i1
  br i1 %290, label %291, label %313

291:                                              ; preds = %284
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = call i32 @fileno(ptr noundef %292) #7
  %294 = call i32 @isatty(i32 noundef %293) #7
  %295 = icmp ne i32 %294, 0
  br i1 %295, label %296, label %313

296:                                              ; preds = %291
  %297 = load i32, ptr %12, align 4, !tbaa !5
  %298 = call ptr @__errno_location() #8
  store i32 %297, ptr %298, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = load i32, ptr @test_count, align 4, !tbaa !5
  %301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @s2n_strerror(i32 noundef %302, ptr noundef @.str.4)
  %304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call ptr @s2n_strerror_debug(i32 noundef %305, ptr noundef @.str.4)
  %307 = call ptr @__errno_location() #8
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call ptr @strerror(i32 noundef %308) #7
  %310 = call ptr @__errno_location() #8
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %299, ptr noundef @.str.2, i32 noundef %300, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 48, ptr noundef %303, ptr noundef %306, ptr noundef %309, i32 noundef %311) #7
  br label %330

313:                                              ; preds = %291, %284
  %314 = load i32, ptr %12, align 4, !tbaa !5
  %315 = call ptr @__errno_location() #8
  store i32 %314, ptr %315, align 4, !tbaa !5
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror(i32 noundef %319, ptr noundef @.str.4)
  %321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = call ptr @s2n_strerror_debug(i32 noundef %322, ptr noundef @.str.4)
  %324 = call ptr @__errno_location() #8
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @strerror(i32 noundef %325) #7
  %327 = call ptr @__errno_location() #8
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %316, ptr noundef @.str.5, i32 noundef %317, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 48, ptr noundef %320, ptr noundef %323, ptr noundef %326, i32 noundef %328) #7
  br label %330

330:                                              ; preds = %313, %296
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %331

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331
  call void @exit(i32 noundef 1) #9
  unreachable

333:                                              ; No predecessors!
  br label %334

334:                                              ; preds = %333
  br label %335

335:                                              ; preds = %334, %277
  br label %336

336:                                              ; preds = %335
  br label %337

337:                                              ; preds = %336
  br label %338

338:                                              ; preds = %337
  %339 = load i32, ptr @test_count, align 4, !tbaa !5
  %340 = add nsw i32 %339, 1
  store i32 %340, ptr @test_count, align 4, !tbaa !5
  %341 = load ptr, ptr %6, align 8, !tbaa !9
  %342 = call i32 @s2n_connection_set_recv_cb(ptr noundef %341, ptr noundef @fake_recv)
  %343 = icmp eq i32 %342, -1
  br i1 %343, label %344, label %397

344:                                              ; preds = %338
  br label %345

345:                                              ; preds = %344
  br label %346

346:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  %347 = call ptr @__errno_location() #8
  %348 = load i32, ptr %347, align 4, !tbaa !5
  store i32 %348, ptr %13, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = call i32 @s2n_print_stacktrace(ptr noundef %349)
  %351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %352 = trunc i8 %351 to i1
  br i1 %352, label %353, label %375

353:                                              ; preds = %346
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = call i32 @fileno(ptr noundef %354) #7
  %356 = call i32 @isatty(i32 noundef %355) #7
  %357 = icmp ne i32 %356, 0
  br i1 %357, label %358, label %375

358:                                              ; preds = %353
  %359 = load i32, ptr %13, align 4, !tbaa !5
  %360 = call ptr @__errno_location() #8
  store i32 %359, ptr %360, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = load i32, ptr @test_count, align 4, !tbaa !5
  %363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call ptr @s2n_strerror(i32 noundef %364, ptr noundef @.str.4)
  %366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call ptr @s2n_strerror_debug(i32 noundef %367, ptr noundef @.str.4)
  %369 = call ptr @__errno_location() #8
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = call ptr @strerror(i32 noundef %370) #7
  %372 = call ptr @__errno_location() #8
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %361, ptr noundef @.str.2, i32 noundef %362, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 51, ptr noundef %365, ptr noundef %368, ptr noundef %371, i32 noundef %373) #7
  br label %392

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

392:                                              ; preds = %375, %358
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %393

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393
  call void @exit(i32 noundef 1) #9
  unreachable

395:                                              ; No predecessors!
  br label %396

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %396, %338
  br label %398

398:                                              ; preds = %397
  br label %399

399:                                              ; preds = %398
  br label %400

400:                                              ; preds = %399
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = add nsw i32 %401, 1
  store i32 %402, ptr @test_count, align 4, !tbaa !5
  %403 = load ptr, ptr %6, align 8, !tbaa !9
  %404 = call i32 @s2n_connection_set_send_cb(ptr noundef %403, ptr noundef @fake_send)
  %405 = icmp eq i32 %404, -1
  br i1 %405, label %406, label %459

406:                                              ; preds = %400
  br label %407

407:                                              ; preds = %406
  br label %408

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

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

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

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

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

455:                                              ; preds = %454
  br label %456

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

457:                                              ; No predecessors!
  br label %458

458:                                              ; preds = %457
  br label %459

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

460:                                              ; preds = %459
  br label %461

461:                                              ; preds = %460
  br label %462

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

468:                                              ; preds = %462
  br label %469

469:                                              ; preds = %468
  br label %470

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

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

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

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

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

517:                                              ; preds = %516
  br label %518

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

519:                                              ; No predecessors!
  br label %520

520:                                              ; preds = %519
  br label %521

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

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr @test_count, align 4, !tbaa !5
  %527 = call ptr @__errno_location() #8
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = icmp eq i32 %528, 2
  br i1 %529, label %583, label %530

530:                                              ; preds = %524
  br label %531

531:                                              ; preds = %530
  br label %532

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %533 = call ptr @__errno_location() #8
  %534 = load i32, ptr %533, align 4, !tbaa !5
  store i32 %534, ptr %16, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = call i32 @s2n_print_stacktrace(ptr noundef %535)
  %537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %538 = trunc i8 %537 to i1
  br i1 %538, label %539, label %561

539:                                              ; preds = %532
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @fileno(ptr noundef %540) #7
  %542 = call i32 @isatty(i32 noundef %541) #7
  %543 = icmp ne i32 %542, 0
  br i1 %543, label %544, label %561

544:                                              ; preds = %539
  %545 = load i32, ptr %16, align 4, !tbaa !5
  %546 = call ptr @__errno_location() #8
  store i32 %545, ptr %546, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %550, ptr noundef @.str.4)
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef %553, ptr noundef @.str.4)
  %555 = call ptr @__errno_location() #8
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #7
  %558 = call ptr @__errno_location() #8
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %547, ptr noundef @.str.2, i32 noundef %548, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 56, ptr noundef %551, ptr noundef %554, ptr noundef %557, i32 noundef %559) #7
  br label %578

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

578:                                              ; preds = %561, %544
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  call void @exit(i32 noundef 1) #9
  unreachable

581:                                              ; No predecessors!
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582, %524
  br label %584

584:                                              ; preds = %583
  br label %585

585:                                              ; preds = %584
  br label %586

586:                                              ; preds = %585
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = add nsw i32 %587, 1
  store i32 %588, ptr @test_count, align 4, !tbaa !5
  %589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = icmp eq i32 %590, 67108864
  br i1 %591, label %645, label %592

592:                                              ; preds = %586
  br label %593

593:                                              ; preds = %592
  br label %594

594:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %595 = call ptr @__errno_location() #8
  %596 = load i32, ptr %595, align 4, !tbaa !5
  store i32 %596, ptr %17, align 4, !tbaa !5
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = call i32 @s2n_print_stacktrace(ptr noundef %597)
  %599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %600 = trunc i8 %599 to i1
  br i1 %600, label %601, label %623

601:                                              ; preds = %594
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = call i32 @fileno(ptr noundef %602) #7
  %604 = call i32 @isatty(i32 noundef %603) #7
  %605 = icmp ne i32 %604, 0
  br i1 %605, label %606, label %623

606:                                              ; preds = %601
  %607 = load i32, ptr %17, align 4, !tbaa !5
  %608 = call ptr @__errno_location() #8
  store i32 %607, ptr %608, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef @.str.4)
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef @.str.4)
  %617 = call ptr @__errno_location() #8
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #7
  %620 = call ptr @__errno_location() #8
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef @.str.2, i32 noundef %610, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 57, ptr noundef %613, ptr noundef %616, ptr noundef %619, i32 noundef %621) #7
  br label %640

623:                                              ; preds = %601, %594
  %624 = load i32, ptr %17, align 4, !tbaa !5
  %625 = call ptr @__errno_location() #8
  store i32 %624, ptr %625, align 4, !tbaa !5
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror(i32 noundef %629, ptr noundef @.str.4)
  %631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef @.str.4)
  %634 = call ptr @__errno_location() #8
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #7
  %637 = call ptr @__errno_location() #8
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef @.str.5, i32 noundef %627, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 57, ptr noundef %630, ptr noundef %633, ptr noundef %636, i32 noundef %638) #7
  br label %640

640:                                              ; preds = %623, %606
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641
  call void @exit(i32 noundef 1) #9
  unreachable

643:                                              ; No predecessors!
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644, %586
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  %648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %648, align 4, !tbaa !5
  br label %649

649:                                              ; preds = %647
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = add nsw i32 %650, 1
  store i32 %651, ptr @test_count, align 4, !tbaa !5
  %652 = load ptr, ptr %6, align 8, !tbaa !9
  %653 = call i32 @s2n_connection_free(ptr noundef %652)
  %654 = icmp eq i32 %653, -1
  br i1 %654, label %655, label %708

655:                                              ; preds = %649
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %658 = call ptr @__errno_location() #8
  %659 = load i32, ptr %658, align 4, !tbaa !5
  store i32 %659, ptr %18, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = call i32 @s2n_print_stacktrace(ptr noundef %660)
  %662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %663 = trunc i8 %662 to i1
  br i1 %663, label %664, label %686

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

669:                                              ; preds = %664
  %670 = load i32, ptr %18, align 4, !tbaa !5
  %671 = call ptr @__errno_location() #8
  store i32 %670, ptr %671, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror(i32 noundef %675, ptr noundef @.str.4)
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror_debug(i32 noundef %678, ptr noundef @.str.4)
  %680 = call ptr @__errno_location() #8
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @strerror(i32 noundef %681) #7
  %683 = call ptr @__errno_location() #8
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %672, ptr noundef @.str.2, i32 noundef %673, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 60, ptr noundef %676, ptr noundef %679, ptr noundef %682, i32 noundef %684) #7
  br label %703

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

703:                                              ; preds = %686, %669
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  call void @exit(i32 noundef 1) #9
  unreachable

706:                                              ; No predecessors!
  br label %707

707:                                              ; preds = %706
  br label %708

708:                                              ; preds = %707, %649
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %714, ptr %6, align 8, !tbaa !9
  %715 = icmp eq ptr %714, null
  br i1 %715, label %716, label %769

716:                                              ; preds = %711
  br label %717

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  %719 = call ptr @__errno_location() #8
  %720 = load i32, ptr %719, align 4, !tbaa !5
  store i32 %720, ptr %19, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = call i32 @s2n_print_stacktrace(ptr noundef %721)
  %723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %724 = trunc i8 %723 to i1
  br i1 %724, label %725, label %747

725:                                              ; preds = %718
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @fileno(ptr noundef %726) #7
  %728 = call i32 @isatty(i32 noundef %727) #7
  %729 = icmp ne i32 %728, 0
  br i1 %729, label %730, label %747

730:                                              ; preds = %725
  %731 = load i32, ptr %19, align 4, !tbaa !5
  %732 = call ptr @__errno_location() #8
  store i32 %731, ptr %732, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef @.str.4)
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror_debug(i32 noundef %739, ptr noundef @.str.4)
  %741 = call ptr @__errno_location() #8
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #7
  %744 = call ptr @__errno_location() #8
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef @.str.2, i32 noundef %734, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 68, ptr noundef %737, ptr noundef %740, ptr noundef %743, i32 noundef %745) #7
  br label %764

747:                                              ; preds = %725, %718
  %748 = load i32, ptr %19, align 4, !tbaa !5
  %749 = call ptr @__errno_location() #8
  store i32 %748, ptr %749, align 4, !tbaa !5
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror(i32 noundef %753, ptr noundef @.str.4)
  %755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef @.str.4)
  %758 = call ptr @__errno_location() #8
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #7
  %761 = call ptr @__errno_location() #8
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %750, ptr noundef @.str.5, i32 noundef %751, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 68, ptr noundef %754, ptr noundef %757, ptr noundef %760, i32 noundef %762) #7
  br label %764

764:                                              ; preds = %747, %730
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  call void @exit(i32 noundef 1) #9
  unreachable

767:                                              ; No predecessors!
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768, %711
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770
  %772 = call ptr @__errno_location() #8
  store i32 150, ptr %772, align 4, !tbaa !5
  %773 = load ptr, ptr %6, align 8, !tbaa !9
  %774 = getelementptr inbounds %struct.s2n_connection, ptr %773, i32 0, i32 7
  store ptr null, ptr %774, align 8, !tbaa !15
  br label %775

775:                                              ; preds = %771
  %776 = load i32, ptr @test_count, align 4, !tbaa !5
  %777 = add nsw i32 %776, 1
  store i32 %777, ptr @test_count, align 4, !tbaa !5
  %778 = load ptr, ptr %6, align 8, !tbaa !9
  %779 = call i32 @s2n_negotiate(ptr noundef %778, ptr noundef %7)
  %780 = icmp eq i32 %779, -1
  br i1 %780, label %834, label %781

781:                                              ; preds = %775
  br label %782

782:                                              ; preds = %781
  br label %783

783:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %784 = call ptr @__errno_location() #8
  %785 = load i32, ptr %784, align 4, !tbaa !5
  store i32 %785, ptr %20, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = call i32 @s2n_print_stacktrace(ptr noundef %786)
  %788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %789 = trunc i8 %788 to i1
  br i1 %789, label %790, label %812

790:                                              ; preds = %783
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @fileno(ptr noundef %791) #7
  %793 = call i32 @isatty(i32 noundef %792) #7
  %794 = icmp ne i32 %793, 0
  br i1 %794, label %795, label %812

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

812:                                              ; preds = %790, %783
  %813 = load i32, ptr %20, align 4, !tbaa !5
  %814 = call ptr @__errno_location() #8
  store i32 %813, ptr %814, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror(i32 noundef %818, ptr noundef @.str.4)
  %820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call ptr @s2n_strerror_debug(i32 noundef %821, ptr noundef @.str.4)
  %823 = call ptr @__errno_location() #8
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call ptr @strerror(i32 noundef %824) #7
  %826 = call ptr @__errno_location() #8
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %815, ptr noundef @.str.5, i32 noundef %816, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 78, ptr noundef %819, ptr noundef %822, ptr noundef %825, i32 noundef %827) #7
  br label %829

829:                                              ; preds = %812, %795
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %830

830:                                              ; preds = %829
  br label %831

831:                                              ; preds = %830
  call void @exit(i32 noundef 1) #9
  unreachable

832:                                              ; No predecessors!
  br label %833

833:                                              ; preds = %832
  br label %834

834:                                              ; preds = %833, %775
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = add nsw i32 %838, 1
  store i32 %839, ptr @test_count, align 4, !tbaa !5
  %840 = call ptr @__errno_location() #8
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = icmp eq i32 %841, 0
  br i1 %842, label %896, label %843

843:                                              ; preds = %837
  br label %844

844:                                              ; preds = %843
  br label %845

845:                                              ; preds = %844
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %846 = call ptr @__errno_location() #8
  %847 = load i32, ptr %846, align 4, !tbaa !5
  store i32 %847, ptr %21, align 4, !tbaa !5
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = call i32 @s2n_print_stacktrace(ptr noundef %848)
  %850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %851 = trunc i8 %850 to i1
  br i1 %851, label %852, label %874

852:                                              ; preds = %845
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = call i32 @fileno(ptr noundef %853) #7
  %855 = call i32 @isatty(i32 noundef %854) #7
  %856 = icmp ne i32 %855, 0
  br i1 %856, label %857, label %874

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

874:                                              ; preds = %852, %845
  %875 = load i32, ptr %21, align 4, !tbaa !5
  %876 = call ptr @__errno_location() #8
  store i32 %875, ptr %876, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = load i32, ptr @test_count, align 4, !tbaa !5
  %879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror(i32 noundef %880, ptr noundef @.str.4)
  %882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror_debug(i32 noundef %883, ptr noundef @.str.4)
  %885 = call ptr @__errno_location() #8
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @strerror(i32 noundef %886) #7
  %888 = call ptr @__errno_location() #8
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %877, ptr noundef @.str.5, i32 noundef %878, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 79, ptr noundef %881, ptr noundef %884, ptr noundef %887, i32 noundef %889) #7
  br label %891

891:                                              ; preds = %874, %857
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %892

892:                                              ; preds = %891
  br label %893

893:                                              ; preds = %892
  call void @exit(i32 noundef 1) #9
  unreachable

894:                                              ; No predecessors!
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895, %837
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr @test_count, align 4, !tbaa !5
  %902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = icmp eq i32 %903, 67108864
  br i1 %904, label %958, label %905

905:                                              ; preds = %899
  br label %906

906:                                              ; preds = %905
  br label %907

907:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %908 = call ptr @__errno_location() #8
  %909 = load i32, ptr %908, align 4, !tbaa !5
  store i32 %909, ptr %22, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = call i32 @s2n_print_stacktrace(ptr noundef %910)
  %912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %913 = trunc i8 %912 to i1
  br i1 %913, label %914, label %936

914:                                              ; preds = %907
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = call i32 @fileno(ptr noundef %915) #7
  %917 = call i32 @isatty(i32 noundef %916) #7
  %918 = icmp ne i32 %917, 0
  br i1 %918, label %919, label %936

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

936:                                              ; preds = %914, %907
  %937 = load i32, ptr %22, align 4, !tbaa !5
  %938 = call ptr @__errno_location() #8
  store i32 %937, ptr %938, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef @.str.4)
  %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_debug(i32 noundef %945, ptr noundef @.str.4)
  %947 = call ptr @__errno_location() #8
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call ptr @strerror(i32 noundef %948) #7
  %950 = call ptr @__errno_location() #8
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef @.str.5, i32 noundef %940, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 80, ptr noundef %943, ptr noundef %946, ptr noundef %949, i32 noundef %951) #7
  br label %953

953:                                              ; preds = %936, %919
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %954

954:                                              ; preds = %953
  br label %955

955:                                              ; preds = %954
  call void @exit(i32 noundef 1) #9
  unreachable

956:                                              ; No predecessors!
  br label %957

957:                                              ; preds = %956
  br label %958

958:                                              ; preds = %957, %899
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  %961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %961, align 4, !tbaa !5
  br label %962

962:                                              ; preds = %960
  %963 = load i32, ptr @test_count, align 4, !tbaa !5
  %964 = add nsw i32 %963, 1
  store i32 %964, ptr @test_count, align 4, !tbaa !5
  %965 = load ptr, ptr %6, align 8, !tbaa !9
  %966 = call i32 @s2n_connection_free(ptr noundef %965)
  %967 = icmp eq i32 %966, -1
  br i1 %967, label %968, label %1021

968:                                              ; preds = %962
  br label %969

969:                                              ; preds = %968
  br label %970

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

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

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

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

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

1017:                                             ; preds = %1016
  br label %1018

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

1019:                                             ; No predecessors!
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

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

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  %1026 = call i32 @s2n_cleanup()
  %1027 = icmp eq i32 %1026, -1
  br i1 %1027, label %1028, label %1081

1028:                                             ; preds = %1025
  br label %1029

1029:                                             ; preds = %1028
  br label %1030

1030:                                             ; preds = %1029
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  %1031 = call ptr @__errno_location() #8
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  store i32 %1032, ptr %24, align 4, !tbaa !5
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @s2n_print_stacktrace(ptr noundef %1033)
  %1035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1036 = trunc i8 %1035 to i1
  br i1 %1036, label %1037, label %1059

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #7
  %1040 = call i32 @isatty(i32 noundef %1039) #7
  %1041 = icmp ne i32 %1040, 0
  br i1 %1041, label %1042, label %1059

1042:                                             ; preds = %1037
  %1043 = load i32, ptr %24, align 4, !tbaa !5
  %1044 = call ptr @__errno_location() #8
  store i32 %1043, ptr %1044, align 4, !tbaa !5
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror(i32 noundef %1048, ptr noundef @.str.4)
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror_debug(i32 noundef %1051, ptr noundef @.str.4)
  %1053 = call ptr @__errno_location() #8
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call ptr @strerror(i32 noundef %1054) #7
  %1056 = call ptr @__errno_location() #8
  %1057 = load i32, ptr %1056, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1045, ptr noundef @.str.2, i32 noundef %1046, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1049, ptr noundef %1052, ptr noundef %1055, i32 noundef %1057) #7
  br label %1076

1059:                                             ; preds = %1037, %1030
  %1060 = load i32, ptr %24, align 4, !tbaa !5
  %1061 = call ptr @__errno_location() #8
  store i32 %1060, ptr %1061, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef @.str.4)
  %1067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror_debug(i32 noundef %1068, ptr noundef @.str.4)
  %1070 = call ptr @__errno_location() #8
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call ptr @strerror(i32 noundef %1071) #7
  %1073 = call ptr @__errno_location() #8
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef @.str.5, i32 noundef %1063, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1066, ptr noundef %1069, ptr noundef %1072, i32 noundef %1074) #7
  br label %1076

1076:                                             ; preds = %1059, %1042
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  call void @exit(i32 noundef 1) #9
  unreachable

1079:                                             ; No predecessors!
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080, %1025
  br label %1082

1082:                                             ; preds = %1081
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

1085:                                             ; preds = %1084
  %1086 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %1087 = icmp eq i32 %1086, -1
  br i1 %1087, label %1088, label %1141

1088:                                             ; preds = %1085
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  %1091 = call ptr @__errno_location() #8
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  store i32 %1092, ptr %25, 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) #7
  %1100 = call i32 @isatty(i32 noundef %1099) #7
  %1101 = icmp ne i32 %1100, 0
  br i1 %1101, label %1102, label %1119

1102:                                             ; preds = %1097
  %1103 = load i32, ptr %25, align 4, !tbaa !5
  %1104 = call ptr @__errno_location() #8
  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() #8
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #7
  %1116 = call ptr @__errno_location() #8
  %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.18, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1109, ptr noundef %1112, ptr noundef %1115, i32 noundef %1117) #7
  br label %1136

1119:                                             ; preds = %1097, %1090
  %1120 = load i32, ptr %25, align 4, !tbaa !5
  %1121 = call ptr @__errno_location() #8
  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() #8
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @strerror(i32 noundef %1131) #7
  %1133 = call ptr @__errno_location() #8
  %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.18, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1126, ptr noundef %1129, ptr noundef %1132, i32 noundef %1134) #7
  br label %1136

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

1137:                                             ; preds = %1136
  br label %1138

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

1139:                                             ; No predecessors!
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

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

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  %1144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1145 = trunc i8 %1144 to i1
  br i1 %1145, label %1146, label %1162

1146:                                             ; preds = %1143
  %1147 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1148 = call i32 @fileno(ptr noundef %1147) #7
  %1149 = call i32 @isatty(i32 noundef %1148) #7
  %1150 = icmp ne i32 %1149, 0
  br i1 %1150, label %1151, label %1162

1151:                                             ; preds = %1146
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = icmp ne i32 %1152, 0
  br i1 %1153, label %1154, label %1158

1154:                                             ; preds = %1151
  %1155 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1156 = load i32, ptr @test_count, align 4, !tbaa !5
  %1157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1155, ptr noundef @.str.19, i32 noundef %1156) #7
  br label %1161

1158:                                             ; preds = %1151
  %1159 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1159, ptr noundef @.str.20) #7
  br label %1161

1161:                                             ; preds = %1158, %1154
  br label %1173

1162:                                             ; preds = %1146, %1143
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = icmp ne i32 %1163, 0
  br i1 %1164, label %1165, label %1169

1165:                                             ; preds = %1162
  %1166 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %1168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1166, ptr noundef @.str.21, i32 noundef %1167) #7
  br label %1172

1169:                                             ; preds = %1162
  %1170 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1170, ptr noundef @.str.22) #7
  br label %1172

1172:                                             ; preds = %1169, %1165
  br label %1173

1173:                                             ; preds = %1172, %1161
  store i32 0, ptr %3, align 4
  store i32 1, ptr %26, align 4
  br label %1178

1174:                                             ; No predecessors!
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  store i32 0, ptr %26, align 4
  br label %1178

1178:                                             ; preds = %1177, %1173
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  %1179 = load i32, ptr %26, align 4
  switch i32 %1179, label %1182 [
    i32 0, label %1180
    i32 1, label %1180
  ]

1180:                                             ; preds = %1178, %1178
  %1181 = load i32, ptr %3, align 4
  ret i32 %1181

1182:                                             ; preds = %1178
  unreachable
}

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

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

declare i32 @fflush(ptr noundef) #4

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #4

declare i32 @s2n_print_stacktrace(ptr noundef) #4

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #4

declare i32 @s2n_init() #4

declare i32 @s2n_disable_tls13_in_test(...) #4

declare ptr @s2n_connection_new(i32 noundef) #4

declare i32 @s2n_connection_set_recv_cb(ptr noundef, ptr noundef) #4

declare i32 @s2n_connection_set_send_cb(ptr noundef, ptr noundef) #4

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

declare i32 @s2n_connection_free(ptr noundef) #4

declare i32 @s2n_cleanup() #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 56}
!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}


; 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"

@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 [72 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

17:                                               ; preds = %10
  %18 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19 = tail call i32 @fileno(ptr noundef %18) #8
  %20 = tail call i32 @isatty(i32 noundef %19) #8
  %.not67 = icmp eq i32 %20, 0
  br i1 %.not67, label %21, label %22

21:                                               ; preds = %17, %10
  br label %22

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

34:                                               ; preds = %2
  %35 = load i32, ptr @test_count, align 4, !tbaa !5
  %36 = add nsw i32 %35, 1
  store i32 %36, ptr @test_count, align 4, !tbaa !5
  %37 = tail call i32 @s2n_enable_atexit() #8
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

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

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #8
  %49 = tail call i32 @isatty(i32 noundef %48) #8
  %.not66 = icmp eq i32 %49, 0
  br i1 %.not66, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink78 = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #8
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #8
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #8
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink78, i32 noundef %53, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

63:                                               ; preds = %34
  %64 = tail call i32 @s2n_init() #8
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %90

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

73:                                               ; preds = %66
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = tail call i32 @fileno(ptr noundef %74) #8
  %76 = tail call i32 @isatty(i32 noundef %75) #8
  %.not65 = icmp eq i32 %76, 0
  br i1 %.not65, label %77, label %78

77:                                               ; preds = %73, %66
  br label %78

78:                                               ; preds = %73, %77
  %.str.5.sink89 = phi ptr [ @.str.5, %77 ], [ @.str.2, %73 ]
  store i32 %68, ptr %67, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = load i32, ptr @test_count, align 4, !tbaa !5
  %81 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = tail call ptr @s2n_strerror(i32 noundef %82, ptr noundef nonnull @.str.4) #8
  %84 = load i32, ptr %81, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror_debug(i32 noundef %84, ptr noundef nonnull @.str.4) #8
  %86 = load i32, ptr %67, align 4, !tbaa !5
  %87 = tail call ptr @strerror(i32 noundef %86) #8
  %88 = load i32, ptr %67, align 4, !tbaa !5
  %89 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef nonnull %.str.5.sink89, i32 noundef %80, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %83, ptr noundef %85, ptr noundef %87, i32 noundef %88) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

90:                                               ; preds = %63
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = add nsw i32 %91, 1
  store i32 %92, ptr @test_count, align 4, !tbaa !5
  %93 = tail call i32 (...) @s2n_disable_tls13_in_test() #8
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

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

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #8
  %105 = tail call i32 @isatty(i32 noundef %104) #8
  %.not64 = icmp eq i32 %105, 0
  br i1 %.not64, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink100 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #8
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #8
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #8
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink100, i32 noundef %109, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

119:                                              ; preds = %90
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %123 = icmp eq ptr %122, null
  br i1 %123, label %124, label %148

124:                                              ; preds = %119
  %125 = tail call ptr @__errno_location() #9
  %126 = load i32, ptr %125, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = tail call i32 @s2n_print_stacktrace(ptr noundef %127) #8
  %129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %130 = trunc nuw i8 %129 to i1
  br i1 %130, label %131, label %135

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = tail call i32 @fileno(ptr noundef %132) #8
  %134 = tail call i32 @isatty(i32 noundef %133) #8
  %.not63 = icmp eq i32 %134, 0
  br i1 %.not63, label %135, label %136

135:                                              ; preds = %131, %124
  br label %136

136:                                              ; preds = %131, %135
  %.str.5.sink111 = phi ptr [ @.str.5, %135 ], [ @.str.2, %131 ]
  store i32 %126, ptr %125, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = tail call ptr @s2n_strerror(i32 noundef %140, ptr noundef nonnull @.str.4) #8
  %142 = load i32, ptr %139, align 4, !tbaa !5
  %143 = tail call ptr @s2n_strerror_debug(i32 noundef %142, ptr noundef nonnull @.str.4) #8
  %144 = load i32, ptr %125, align 4, !tbaa !5
  %145 = tail call ptr @strerror(i32 noundef %144) #8
  %146 = load i32, ptr %125, align 4, !tbaa !5
  %147 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull %.str.5.sink111, i32 noundef %138, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %141, ptr noundef %143, ptr noundef %145, i32 noundef %146) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

148:                                              ; preds = %119
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = tail call i32 @s2n_connection_set_recv_cb(ptr noundef nonnull %122, ptr noundef nonnull @fake_recv) #8
  %152 = icmp eq i32 %151, -1
  br i1 %152, label %153, label %177

153:                                              ; preds = %148
  %154 = tail call ptr @__errno_location() #9
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = tail call i32 @s2n_print_stacktrace(ptr noundef %156) #8
  %158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %159 = trunc nuw i8 %158 to i1
  br i1 %159, label %160, label %164

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = tail call i32 @fileno(ptr noundef %161) #8
  %163 = tail call i32 @isatty(i32 noundef %162) #8
  %.not62 = icmp eq i32 %163, 0
  br i1 %.not62, label %164, label %165

164:                                              ; preds = %160, %153
  br label %165

165:                                              ; preds = %160, %164
  %.str.5.sink122 = phi ptr [ @.str.5, %164 ], [ @.str.2, %160 ]
  store i32 %155, ptr %154, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = tail call ptr @s2n_strerror(i32 noundef %169, ptr noundef nonnull @.str.4) #8
  %171 = load i32, ptr %168, align 4, !tbaa !5
  %172 = tail call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef nonnull @.str.4) #8
  %173 = load i32, ptr %154, align 4, !tbaa !5
  %174 = tail call ptr @strerror(i32 noundef %173) #8
  %175 = load i32, ptr %154, align 4, !tbaa !5
  %176 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull %.str.5.sink122, i32 noundef %167, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %170, ptr noundef %172, ptr noundef %174, i32 noundef %175) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

177:                                              ; preds = %148
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = tail call i32 @s2n_connection_set_send_cb(ptr noundef nonnull %122, ptr noundef nonnull @fake_send) #8
  %181 = icmp eq i32 %180, -1
  br i1 %181, label %182, label %206

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

189:                                              ; preds = %182
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = tail call i32 @fileno(ptr noundef %190) #8
  %192 = tail call i32 @isatty(i32 noundef %191) #8
  %.not61 = icmp eq i32 %192, 0
  br i1 %.not61, label %193, label %194

193:                                              ; preds = %189, %182
  br label %194

194:                                              ; preds = %189, %193
  %.str.5.sink133 = phi ptr [ @.str.5, %193 ], [ @.str.2, %189 ]
  store i32 %184, ptr %183, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = tail call ptr @s2n_strerror(i32 noundef %198, ptr noundef nonnull @.str.4) #8
  %200 = load i32, ptr %197, align 4, !tbaa !5
  %201 = tail call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef nonnull @.str.4) #8
  %202 = load i32, ptr %183, align 4, !tbaa !5
  %203 = tail call ptr @strerror(i32 noundef %202) #8
  %204 = load i32, ptr %183, align 4, !tbaa !5
  %205 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull %.str.5.sink133, i32 noundef %196, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %199, ptr noundef %201, ptr noundef %203, i32 noundef %204) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

206:                                              ; preds = %177
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = call i32 @s2n_negotiate(ptr noundef nonnull %122, ptr noundef nonnull %3) #8
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %235, label %211

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

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @fileno(ptr noundef %219) #8
  %221 = call i32 @isatty(i32 noundef %220) #8
  %.not = icmp eq i32 %221, 0
  br i1 %.not, label %222, label %223

222:                                              ; preds = %218, %211
  br label %223

223:                                              ; preds = %218, %222
  %.str.5.sink144 = phi ptr [ @.str.5, %222 ], [ @.str.2, %218 ]
  store i32 %213, ptr %212, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror(i32 noundef %227, ptr noundef nonnull @.str.4) #8
  %229 = load i32, ptr %226, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef nonnull @.str.4) #8
  %231 = load i32, ptr %212, align 4, !tbaa !5
  %232 = call ptr @strerror(i32 noundef %231) #8
  %233 = load i32, ptr %212, align 4, !tbaa !5
  %234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef nonnull %.str.5.sink144, i32 noundef %225, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %228, ptr noundef %230, ptr noundef %232, i32 noundef %233) #10
  call void @exit(i32 noundef 1) #11
  unreachable

235:                                              ; preds = %206
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = tail call ptr @__errno_location() #9
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = icmp eq i32 %239, 2
  br i1 %240, label %263, label %241

241:                                              ; preds = %235
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = call i32 @s2n_print_stacktrace(ptr noundef %242) #8
  %244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %245 = trunc nuw i8 %244 to i1
  br i1 %245, label %246, label %250

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

250:                                              ; preds = %246, %241
  br label %251

251:                                              ; preds = %246, %250
  %.str.5.sink155 = phi ptr [ @.str.5, %250 ], [ @.str.2, %246 ]
  store i32 %239, ptr %238, align 4, !tbaa !5
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = load i32, ptr @test_count, align 4, !tbaa !5
  %254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call ptr @s2n_strerror(i32 noundef %255, ptr noundef nonnull @.str.4) #8
  %257 = load i32, ptr %254, align 4, !tbaa !5
  %258 = call ptr @s2n_strerror_debug(i32 noundef %257, ptr noundef nonnull @.str.4) #8
  %259 = load i32, ptr %238, align 4, !tbaa !5
  %260 = call ptr @strerror(i32 noundef %259) #8
  %261 = load i32, ptr %238, align 4, !tbaa !5
  %262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %252, ptr noundef nonnull %.str.5.sink155, i32 noundef %253, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %256, ptr noundef %258, ptr noundef %260, i32 noundef %261) #10
  call void @exit(i32 noundef 1) #11
  unreachable

263:                                              ; preds = %235
  %264 = add nsw i32 %236, 2
  store i32 %264, ptr @test_count, align 4, !tbaa !5
  %265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = icmp eq i32 %266, 67108864
  br i1 %267, label %290, label %268

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

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

278:                                              ; preds = %274, %268
  br label %279

279:                                              ; preds = %274, %278
  %.str.5.sink166 = phi ptr [ @.str.5, %278 ], [ @.str.2, %274 ]
  store i32 %269, ptr %238, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = load i32, ptr %265, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror(i32 noundef %282, ptr noundef nonnull @.str.4) #8
  %284 = load i32, ptr %265, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror_debug(i32 noundef %284, ptr noundef nonnull @.str.4) #8
  %286 = load i32, ptr %238, align 4, !tbaa !5
  %287 = call ptr @strerror(i32 noundef %286) #8
  %288 = load i32, ptr %238, align 4, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef nonnull %.str.5.sink166, i32 noundef %281, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %283, ptr noundef %285, ptr noundef %287, i32 noundef %288) #10
  call void @exit(i32 noundef 1) #11
  unreachable

290:                                              ; preds = %263
  store i32 0, ptr %265, align 4, !tbaa !5
  %291 = add nsw i32 %236, 3
  store i32 %291, ptr @test_count, align 4, !tbaa !5
  %292 = call i32 @s2n_connection_free(ptr noundef nonnull %122) #8
  %293 = icmp eq i32 %292, -1
  br i1 %293, label %294, label %316

294:                                              ; preds = %290
  %295 = load i32, ptr %238, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = call i32 @s2n_print_stacktrace(ptr noundef %296) #8
  %298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %299 = trunc nuw i8 %298 to i1
  br i1 %299, label %300, label %304

300:                                              ; preds = %294
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = call i32 @fileno(ptr noundef %301) #8
  %303 = call i32 @isatty(i32 noundef %302) #8
  %.not60 = icmp eq i32 %303, 0
  br i1 %.not60, label %304, label %305

304:                                              ; preds = %300, %294
  br label %305

305:                                              ; preds = %300, %304
  %.str.5.sink175 = phi ptr [ @.str.5, %304 ], [ @.str.2, %300 ]
  store i32 %295, ptr %238, align 4, !tbaa !5
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = load i32, ptr @test_count, align 4, !tbaa !5
  %308 = load i32, ptr %265, align 4, !tbaa !5
  %309 = call ptr @s2n_strerror(i32 noundef %308, ptr noundef nonnull @.str.4) #8
  %310 = load i32, ptr %265, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror_debug(i32 noundef %310, ptr noundef nonnull @.str.4) #8
  %312 = load i32, ptr %238, align 4, !tbaa !5
  %313 = call ptr @strerror(i32 noundef %312) #8
  %314 = load i32, ptr %238, align 4, !tbaa !5
  %315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %306, ptr noundef nonnull %.str.5.sink175, i32 noundef %307, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %309, ptr noundef %311, ptr noundef %313, i32 noundef %314) #10
  call void @exit(i32 noundef 1) #11
  unreachable

316:                                              ; preds = %290
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = add nsw i32 %317, 1
  store i32 %318, ptr @test_count, align 4, !tbaa !5
  %319 = call ptr @s2n_connection_new(i32 noundef 1) #8
  %320 = icmp eq ptr %319, null
  br i1 %320, label %321, label %343

321:                                              ; preds = %316
  %322 = load i32, ptr %238, align 4, !tbaa !5
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = call i32 @s2n_print_stacktrace(ptr noundef %323) #8
  %325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %326 = trunc nuw i8 %325 to i1
  br i1 %326, label %327, label %331

327:                                              ; preds = %321
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = call i32 @fileno(ptr noundef %328) #8
  %330 = call i32 @isatty(i32 noundef %329) #8
  %.not59 = icmp eq i32 %330, 0
  br i1 %.not59, label %331, label %332

331:                                              ; preds = %327, %321
  br label %332

332:                                              ; preds = %327, %331
  %.str.5.sink184 = phi ptr [ @.str.5, %331 ], [ @.str.2, %327 ]
  store i32 %322, ptr %238, align 4, !tbaa !5
  %333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %334 = load i32, ptr @test_count, align 4, !tbaa !5
  %335 = load i32, ptr %265, align 4, !tbaa !5
  %336 = call ptr @s2n_strerror(i32 noundef %335, ptr noundef nonnull @.str.4) #8
  %337 = load i32, ptr %265, align 4, !tbaa !5
  %338 = call ptr @s2n_strerror_debug(i32 noundef %337, ptr noundef nonnull @.str.4) #8
  %339 = load i32, ptr %238, align 4, !tbaa !5
  %340 = call ptr @strerror(i32 noundef %339) #8
  %341 = load i32, ptr %238, align 4, !tbaa !5
  %342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %333, ptr noundef nonnull %.str.5.sink184, i32 noundef %334, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %336, ptr noundef %338, ptr noundef %340, i32 noundef %341) #10
  call void @exit(i32 noundef 1) #11
  unreachable

343:                                              ; preds = %316
  store i32 150, ptr %238, align 4, !tbaa !5
  %344 = getelementptr inbounds i8, ptr %319, i64 56
  store ptr null, ptr %344, align 8, !tbaa !15
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = add nsw i32 %345, 1
  store i32 %346, ptr @test_count, align 4, !tbaa !5
  %347 = call i32 @s2n_negotiate(ptr noundef nonnull %319, ptr noundef nonnull %3) #8
  %348 = icmp eq i32 %347, -1
  br i1 %348, label %371, label %349

349:                                              ; preds = %343
  %350 = load i32, ptr %238, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = call i32 @s2n_print_stacktrace(ptr noundef %351) #8
  %353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %354 = trunc nuw i8 %353 to i1
  br i1 %354, label %355, label %359

355:                                              ; preds = %349
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = call i32 @fileno(ptr noundef %356) #8
  %358 = call i32 @isatty(i32 noundef %357) #8
  %.not50 = icmp eq i32 %358, 0
  br i1 %.not50, label %359, label %360

359:                                              ; preds = %355, %349
  br label %360

360:                                              ; preds = %355, %359
  %.str.5.sink193 = phi ptr [ @.str.5, %359 ], [ @.str.2, %355 ]
  store i32 %350, ptr %238, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = load i32, ptr @test_count, align 4, !tbaa !5
  %363 = load i32, ptr %265, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror(i32 noundef %363, ptr noundef nonnull @.str.4) #8
  %365 = load i32, ptr %265, align 4, !tbaa !5
  %366 = call ptr @s2n_strerror_debug(i32 noundef %365, ptr noundef nonnull @.str.4) #8
  %367 = load i32, ptr %238, align 4, !tbaa !5
  %368 = call ptr @strerror(i32 noundef %367) #8
  %369 = load i32, ptr %238, align 4, !tbaa !5
  %370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %361, ptr noundef nonnull %.str.5.sink193, i32 noundef %362, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %364, ptr noundef %366, ptr noundef %368, i32 noundef %369) #10
  call void @exit(i32 noundef 1) #11
  unreachable

371:                                              ; preds = %343
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = add nsw i32 %372, 1
  store i32 %373, ptr @test_count, align 4, !tbaa !5
  %374 = load i32, ptr %238, align 4, !tbaa !5
  %375 = icmp eq i32 %374, 0
  br i1 %375, label %397, label %376

376:                                              ; preds = %371
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call i32 @s2n_print_stacktrace(ptr noundef %377) #8
  %379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %380 = trunc nuw i8 %379 to i1
  br i1 %380, label %381, label %385

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

385:                                              ; preds = %381, %376
  br label %386

386:                                              ; preds = %381, %385
  %.str.5.sink202 = phi ptr [ @.str.5, %385 ], [ @.str.2, %381 ]
  store i32 %374, ptr %238, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = load i32, ptr %265, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror(i32 noundef %389, ptr noundef nonnull @.str.4) #8
  %391 = load i32, ptr %265, align 4, !tbaa !5
  %392 = call ptr @s2n_strerror_debug(i32 noundef %391, ptr noundef nonnull @.str.4) #8
  %393 = load i32, ptr %238, align 4, !tbaa !5
  %394 = call ptr @strerror(i32 noundef %393) #8
  %395 = load i32, ptr %238, align 4, !tbaa !5
  %396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %387, ptr noundef nonnull %.str.5.sink202, i32 noundef %388, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %390, ptr noundef %392, ptr noundef %394, i32 noundef %395) #10
  call void @exit(i32 noundef 1) #11
  unreachable

397:                                              ; preds = %371
  %398 = add nsw i32 %372, 2
  store i32 %398, ptr @test_count, align 4, !tbaa !5
  %399 = load i32, ptr %265, align 4, !tbaa !5
  %400 = icmp eq i32 %399, 67108864
  br i1 %400, label %423, label %401

401:                                              ; preds = %397
  %402 = load i32, ptr %238, align 4, !tbaa !5
  %403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %404 = call i32 @s2n_print_stacktrace(ptr noundef %403) #8
  %405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %406 = trunc nuw i8 %405 to i1
  br i1 %406, label %407, label %411

407:                                              ; preds = %401
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = call i32 @fileno(ptr noundef %408) #8
  %410 = call i32 @isatty(i32 noundef %409) #8
  %.not52 = icmp eq i32 %410, 0
  br i1 %.not52, label %411, label %412

411:                                              ; preds = %407, %401
  br label %412

412:                                              ; preds = %407, %411
  %.str.5.sink211 = phi ptr [ @.str.5, %411 ], [ @.str.2, %407 ]
  store i32 %402, ptr %238, align 4, !tbaa !5
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = load i32, ptr %265, align 4, !tbaa !5
  %416 = call ptr @s2n_strerror(i32 noundef %415, ptr noundef nonnull @.str.4) #8
  %417 = load i32, ptr %265, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror_debug(i32 noundef %417, ptr noundef nonnull @.str.4) #8
  %419 = load i32, ptr %238, align 4, !tbaa !5
  %420 = call ptr @strerror(i32 noundef %419) #8
  %421 = load i32, ptr %238, align 4, !tbaa !5
  %422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %413, ptr noundef nonnull %.str.5.sink211, i32 noundef %414, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %416, ptr noundef %418, ptr noundef %420, i32 noundef %421) #10
  call void @exit(i32 noundef 1) #11
  unreachable

423:                                              ; preds = %397
  store i32 0, ptr %265, align 4, !tbaa !5
  %424 = add nsw i32 %372, 3
  store i32 %424, ptr @test_count, align 4, !tbaa !5
  %425 = call i32 @s2n_connection_free(ptr noundef nonnull %319) #8
  %426 = icmp eq i32 %425, -1
  br i1 %426, label %427, label %449

427:                                              ; preds = %423
  %428 = load i32, ptr %238, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = call i32 @s2n_print_stacktrace(ptr noundef %429) #8
  %431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %432 = trunc nuw i8 %431 to i1
  br i1 %432, label %433, label %437

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

437:                                              ; preds = %433, %427
  br label %438

438:                                              ; preds = %433, %437
  %.str.5.sink220 = phi ptr [ @.str.5, %437 ], [ @.str.2, %433 ]
  store i32 %428, ptr %238, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = load i32, ptr %265, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror(i32 noundef %441, ptr noundef nonnull @.str.4) #8
  %443 = load i32, ptr %265, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef nonnull @.str.4) #8
  %445 = load i32, ptr %238, align 4, !tbaa !5
  %446 = call ptr @strerror(i32 noundef %445) #8
  %447 = load i32, ptr %238, align 4, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %439, ptr noundef nonnull %.str.5.sink220, i32 noundef %440, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %442, ptr noundef %444, ptr noundef %446, i32 noundef %447) #10
  call void @exit(i32 noundef 1) #11
  unreachable

449:                                              ; preds = %423
  %450 = call i32 @s2n_cleanup() #8
  %451 = icmp eq i32 %450, -1
  br i1 %451, label %452, label %474

452:                                              ; preds = %449
  %453 = load i32, ptr %238, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = call i32 @s2n_print_stacktrace(ptr noundef %454) #8
  %456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %457 = trunc nuw i8 %456 to i1
  br i1 %457, label %458, label %462

458:                                              ; preds = %452
  %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
  %.not57 = icmp eq i32 %461, 0
  br i1 %.not57, label %462, label %463

462:                                              ; preds = %458, %452
  br label %463

463:                                              ; preds = %458, %462
  %.str.5.sink229 = phi ptr [ @.str.5, %462 ], [ @.str.2, %458 ]
  store i32 %453, ptr %238, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = load i32, ptr %265, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror(i32 noundef %466, ptr noundef nonnull @.str.4) #8
  %468 = load i32, ptr %265, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror_debug(i32 noundef %468, ptr noundef nonnull @.str.4) #8
  %470 = load i32, ptr %238, align 4, !tbaa !5
  %471 = call ptr @strerror(i32 noundef %470) #8
  %472 = load i32, ptr %238, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %464, ptr noundef nonnull %.str.5.sink229, i32 noundef %465, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %467, ptr noundef %469, ptr noundef %471, i32 noundef %472) #10
  call void @exit(i32 noundef 1) #11
  unreachable

474:                                              ; preds = %449
  %475 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #8
  %476 = icmp eq i32 %475, -1
  br i1 %476, label %477, label %499

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

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

487:                                              ; preds = %483, %477
  br label %488

488:                                              ; preds = %483, %487
  %.str.5.sink238 = phi ptr [ @.str.5, %487 ], [ @.str.2, %483 ]
  store i32 %478, ptr %238, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = load i32, ptr %265, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror(i32 noundef %491, ptr noundef nonnull @.str.4) #8
  %493 = load i32, ptr %265, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror_debug(i32 noundef %493, ptr noundef nonnull @.str.4) #8
  %495 = load i32, ptr %238, align 4, !tbaa !5
  %496 = call ptr @strerror(i32 noundef %495) #8
  %497 = load i32, ptr %238, align 4, !tbaa !5
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %489, ptr noundef nonnull %.str.5.sink238, i32 noundef %490, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %492, ptr noundef %494, ptr noundef %496, i32 noundef %497) #10
  call void @exit(i32 noundef 1) #11
  unreachable

499:                                              ; preds = %474
  %500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %501 = trunc nuw i8 %500 to i1
  br i1 %501, label %502, label %513

502:                                              ; preds = %499
  %503 = load ptr, ptr @stdout, align 8, !tbaa !9
  %504 = call i32 @fileno(ptr noundef %503) #8
  %505 = call i32 @isatty(i32 noundef %504) #8
  %.not53 = icmp eq i32 %505, 0
  br i1 %.not53, label %513, label %506

506:                                              ; preds = %502
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not55 = icmp eq i32 %507, 0
  %508 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not55, label %511, label %509

509:                                              ; preds = %506
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.19, i32 noundef %507) #8
  br label %520

511:                                              ; preds = %506
  %512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %508, ptr noundef nonnull @.str.20) #8
  br label %520

513:                                              ; preds = %502, %499
  %514 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not54 = icmp eq i32 %514, 0
  %515 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not54, label %518, label %516

516:                                              ; preds = %513
  %517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %515, ptr noundef nonnull @.str.21, i32 noundef %514) #8
  br label %520

518:                                              ; preds = %513
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %515, ptr noundef nonnull @.str.22) #8
  br label %520

520:                                              ; preds = %516, %518, %509, %511
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #8
  ret i32 0
}

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #4

declare i32 @s2n_init() local_unnamed_addr #4

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #4

declare i32 @s2n_connection_set_recv_cb(ptr noundef, ptr noundef) local_unnamed_addr #4

declare i32 @s2n_connection_set_send_cb(ptr noundef, ptr noundef) local_unnamed_addr #4

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_cleanup() local_unnamed_addr #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 56}
!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}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass