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

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

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [87 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
@__const.main.test_cases = external hidden unnamed_addr constant [5 x %struct.anon], align 16
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca [5 x %struct.anon], align 16
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca %struct.s2n_result, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i64, align 8
  %20 = alloca i32, align 4
  %21 = alloca %struct.s2n_result, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_result, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = 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
  br label %29

29:                                               ; preds = %2
  br label %30

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

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

38:                                               ; preds = %35
  br label %39

39:                                               ; preds = %38
  br label %40

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

47:                                               ; preds = %40
  %48 = load ptr, ptr @stderr, align 8, !tbaa !9
  %49 = call i32 @fileno(ptr noundef %48) #9
  %50 = call i32 @isatty(i32 noundef %49) #9
  %51 = icmp ne i32 %50, 0
  br i1 %51, label %52, label %69

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

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

86:                                               ; preds = %69, %52
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %87

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

88:                                               ; No predecessors!
  br label %89

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

90:                                               ; preds = %89
  br label %91

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

96:                                               ; preds = %91
  br label %97

97:                                               ; preds = %96
  br label %98

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

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

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

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

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

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

146:                                              ; No predecessors!
  br label %147

147:                                              ; preds = %146, %91
  br label %148

148:                                              ; preds = %147
  br label %149

149:                                              ; preds = %148
  br label %150

150:                                              ; preds = %149
  %151 = call i32 @s2n_init()
  %152 = icmp eq i32 %151, -1
  br i1 %152, label %153, label %204

153:                                              ; preds = %150
  br label %154

154:                                              ; preds = %153
  br label %155

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

162:                                              ; preds = %155
  %163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %164 = call i32 @fileno(ptr noundef %163) #9
  %165 = call i32 @isatty(i32 noundef %164) #9
  %166 = icmp ne i32 %165, 0
  br i1 %166, label %167, label %184

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

184:                                              ; preds = %162, %155
  %185 = load i32, ptr %8, align 4, !tbaa !5
  %186 = call ptr @__errno_location() #10
  store i32 %185, ptr %186, align 4, !tbaa !5
  %187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %188 = load i32, ptr @test_count, align 4, !tbaa !5
  %189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = call ptr @s2n_strerror(i32 noundef %190, ptr noundef @.str.4)
  %192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = call ptr @s2n_strerror_debug(i32 noundef %193, ptr noundef @.str.4)
  %195 = call ptr @__errno_location() #10
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = call ptr @strerror(i32 noundef %196) #9
  %198 = call ptr @__errno_location() #10
  %199 = load i32, ptr %198, align 4, !tbaa !5
  %200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %187, ptr noundef @.str.5, i32 noundef %188, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 25, ptr noundef %191, ptr noundef %194, ptr noundef %197, i32 noundef %199) #9
  br label %201

201:                                              ; preds = %184, %167
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %202

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

203:                                              ; No predecessors!
  br label %204

204:                                              ; preds = %203, %150
  br label %205

205:                                              ; preds = %204
  br label %206

206:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 120, ptr %9) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %9, ptr align 16 @__const.main.test_cases, i64 120, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %207 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %207, ptr %10, align 8, !tbaa !9
  br label %208

208:                                              ; preds = %206
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = add nsw i32 %209, 1
  store i32 %210, ptr @test_count, align 4, !tbaa !5
  %211 = load ptr, ptr %10, align 8, !tbaa !9
  %212 = icmp eq ptr %211, null
  br i1 %212, label %213, label %266

213:                                              ; preds = %208
  br label %214

214:                                              ; preds = %213
  br label %215

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

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

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

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

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

262:                                              ; preds = %261
  br label %263

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

264:                                              ; No predecessors!
  br label %265

265:                                              ; preds = %264
  br label %266

266:                                              ; preds = %265, %208
  br label %267

267:                                              ; preds = %266
  br label %268

268:                                              ; preds = %267
  br label %269

269:                                              ; preds = %268
  %270 = load i32, ptr @test_count, align 4, !tbaa !5
  %271 = add nsw i32 %270, 1
  store i32 %271, ptr @test_count, align 4, !tbaa !5
  %272 = load ptr, ptr %10, align 8, !tbaa !9
  %273 = getelementptr inbounds %struct.s2n_connection, ptr %272, i32 0, i32 1
  %274 = load ptr, ptr %273, align 8, !tbaa !15
  %275 = icmp eq ptr %274, null
  br i1 %275, label %276, label %329

276:                                              ; preds = %269
  br label %277

277:                                              ; preds = %276
  br label %278

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

285:                                              ; preds = %278
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = call i32 @fileno(ptr noundef %286) #9
  %288 = call i32 @isatty(i32 noundef %287) #9
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %290, label %307

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

307:                                              ; preds = %285, %278
  %308 = load i32, ptr %12, align 4, !tbaa !5
  %309 = call ptr @__errno_location() #10
  store i32 %308, ptr %309, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = load i32, ptr @test_count, align 4, !tbaa !5
  %312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror(i32 noundef %313, ptr noundef @.str.4)
  %315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror_debug(i32 noundef %316, ptr noundef @.str.4)
  %318 = call ptr @__errno_location() #10
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call ptr @strerror(i32 noundef %319) #9
  %321 = call ptr @__errno_location() #10
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %310, ptr noundef @.str.5, i32 noundef %311, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 43, ptr noundef %314, ptr noundef %317, ptr noundef %320, i32 noundef %322) #9
  br label %324

324:                                              ; preds = %307, %290
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %325

325:                                              ; preds = %324
  br label %326

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

327:                                              ; No predecessors!
  br label %328

328:                                              ; preds = %327
  br label %329

329:                                              ; preds = %328, %269
  br label %330

330:                                              ; preds = %329
  br label %331

331:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  store i64 0, ptr %13, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  store i64 0, ptr %14, align 8, !tbaa !42
  br label %332

332:                                              ; preds = %331
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = add nsw i32 %333, 1
  store i32 %334, ptr @test_count, align 4, !tbaa !5
  %335 = load ptr, ptr %10, align 8, !tbaa !9
  %336 = call i32 @s2n_connection_calculate_blinding(ptr noundef %335, ptr noundef %13, ptr noundef %14)
  %337 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  store i32 %336, ptr %337, align 4
  %338 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  %339 = load i32, ptr %338, align 4
  %340 = call zeroext i1 @s2n_result_is_ok(i32 %339)
  br i1 %340, label %394, label %341

341:                                              ; preds = %332
  br label %342

342:                                              ; preds = %341
  br label %343

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

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

355:                                              ; preds = %350
  %356 = load i32, ptr %16, align 4, !tbaa !5
  %357 = call ptr @__errno_location() #10
  store i32 %356, ptr %357, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror(i32 noundef %361, ptr noundef @.str.4)
  %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_debug(i32 noundef %364, ptr noundef @.str.4)
  %366 = call ptr @__errno_location() #10
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call ptr @strerror(i32 noundef %367) #9
  %369 = call ptr @__errno_location() #10
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef @.str.2, i32 noundef %359, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 49, ptr noundef %362, ptr noundef %365, ptr noundef %368, i32 noundef %370) #9
  br label %389

372:                                              ; preds = %350, %343
  %373 = load i32, ptr %16, align 4, !tbaa !5
  %374 = call ptr @__errno_location() #10
  store i32 %373, ptr %374, align 4, !tbaa !5
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror(i32 noundef %378, ptr noundef @.str.4)
  %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_debug(i32 noundef %381, ptr noundef @.str.4)
  %383 = call ptr @__errno_location() #10
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @strerror(i32 noundef %384) #9
  %386 = call ptr @__errno_location() #10
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef @.str.5, i32 noundef %376, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 49, ptr noundef %379, ptr noundef %382, ptr noundef %385, i32 noundef %387) #9
  br label %389

389:                                              ; preds = %372, %355
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %390

390:                                              ; preds = %389
  br label %391

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

392:                                              ; No predecessors!
  br label %393

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393, %332
  br label %395

395:                                              ; preds = %394
  br label %396

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %396
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = add nsw i32 %398, 1
  store i32 %399, ptr @test_count, align 4, !tbaa !5
  %400 = load i64, ptr %13, align 8, !tbaa !42
  %401 = icmp eq i64 %400, 10000000000
  br i1 %401, label %455, label %402

402:                                              ; preds = %397
  br label %403

403:                                              ; preds = %402
  br label %404

404:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %405 = call ptr @__errno_location() #10
  %406 = load i32, ptr %405, align 4, !tbaa !5
  store i32 %406, ptr %17, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @s2n_print_stacktrace(ptr noundef %407)
  %409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %410 = trunc i8 %409 to i1
  br i1 %410, label %411, label %433

411:                                              ; preds = %404
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = call i32 @fileno(ptr noundef %412) #9
  %414 = call i32 @isatty(i32 noundef %413) #9
  %415 = icmp ne i32 %414, 0
  br i1 %415, label %416, label %433

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

433:                                              ; preds = %411, %404
  %434 = load i32, ptr %17, align 4, !tbaa !5
  %435 = call ptr @__errno_location() #10
  store i32 %434, ptr %435, align 4, !tbaa !5
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = load i32, ptr @test_count, align 4, !tbaa !5
  %438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call ptr @s2n_strerror(i32 noundef %439, ptr noundef @.str.4)
  %441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call ptr @s2n_strerror_debug(i32 noundef %442, ptr noundef @.str.4)
  %444 = call ptr @__errno_location() #10
  %445 = load i32, ptr %444, align 4, !tbaa !5
  %446 = call ptr @strerror(i32 noundef %445) #9
  %447 = call ptr @__errno_location() #10
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %436, ptr noundef @.str.5, i32 noundef %437, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 50, ptr noundef %440, ptr noundef %443, ptr noundef %446, i32 noundef %448) #9
  br label %450

450:                                              ; preds = %433, %416
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %451

451:                                              ; preds = %450
  br label %452

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

453:                                              ; No predecessors!
  br label %454

454:                                              ; preds = %453
  br label %455

455:                                              ; preds = %454, %397
  br label %456

456:                                              ; preds = %455
  br label %457

457:                                              ; preds = %456
  br label %458

458:                                              ; preds = %457
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = add nsw i32 %459, 1
  store i32 %460, ptr @test_count, align 4, !tbaa !5
  %461 = load i64, ptr %14, align 8, !tbaa !42
  %462 = icmp eq i64 %461, 30000000000
  br i1 %462, label %516, label %463

463:                                              ; preds = %458
  br label %464

464:                                              ; preds = %463
  br label %465

465:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %466 = call ptr @__errno_location() #10
  %467 = load i32, ptr %466, align 4, !tbaa !5
  store i32 %467, ptr %18, align 4, !tbaa !5
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = call i32 @s2n_print_stacktrace(ptr noundef %468)
  %470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %471 = trunc i8 %470 to i1
  br i1 %471, label %472, label %494

472:                                              ; preds = %465
  %473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %474 = call i32 @fileno(ptr noundef %473) #9
  %475 = call i32 @isatty(i32 noundef %474) #9
  %476 = icmp ne i32 %475, 0
  br i1 %476, label %477, label %494

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

494:                                              ; preds = %472, %465
  %495 = load i32, ptr %18, align 4, !tbaa !5
  %496 = call ptr @__errno_location() #10
  store i32 %495, ptr %496, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror(i32 noundef %500, ptr noundef @.str.4)
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror_debug(i32 noundef %503, ptr noundef @.str.4)
  %505 = call ptr @__errno_location() #10
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @strerror(i32 noundef %506) #9
  %508 = call ptr @__errno_location() #10
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef @.str.5, i32 noundef %498, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 51, ptr noundef %501, ptr noundef %504, ptr noundef %507, i32 noundef %509) #9
  br label %511

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

512:                                              ; preds = %511
  br label %513

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

514:                                              ; No predecessors!
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515, %458
  br label %517

517:                                              ; preds = %516
  br label %518

518:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  store i64 0, ptr %19, align 8, !tbaa !42
  br label %519

519:                                              ; preds = %787, %518
  %520 = load i64, ptr %19, align 8, !tbaa !42
  %521 = icmp ult i64 %520, 5
  br i1 %521, label %523, label %522

522:                                              ; preds = %519
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  br label %790

523:                                              ; preds = %519
  br label %524

524:                                              ; preds = %523
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr @test_count, align 4, !tbaa !5
  %527 = load ptr, ptr %10, align 8, !tbaa !9
  %528 = getelementptr inbounds %struct.s2n_connection, ptr %527, i32 0, i32 1
  %529 = load ptr, ptr %528, align 8, !tbaa !15
  %530 = load i64, ptr %19, align 8, !tbaa !42
  %531 = getelementptr inbounds [5 x %struct.anon], ptr %9, i64 0, i64 %530
  %532 = getelementptr inbounds %struct.anon, ptr %531, i32 0, i32 0
  %533 = load i32, ptr %532, align 8, !tbaa !43
  %534 = call i32 @s2n_config_set_max_blinding_delay(ptr noundef %529, i32 noundef %533)
  %535 = icmp eq i32 %534, -1
  br i1 %535, label %536, label %589

536:                                              ; preds = %524
  br label %537

537:                                              ; preds = %536
  br label %538

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

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

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

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

584:                                              ; preds = %567, %550
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %585

585:                                              ; preds = %584
  br label %586

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

587:                                              ; No predecessors!
  br label %588

588:                                              ; preds = %587
  br label %589

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

590:                                              ; preds = %589
  br label %591

591:                                              ; preds = %590
  store i64 0, ptr %13, align 8, !tbaa !42
  store i64 0, ptr %14, align 8, !tbaa !42
  br label %592

592:                                              ; preds = %591
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = add nsw i32 %593, 1
  store i32 %594, ptr @test_count, align 4, !tbaa !5
  %595 = load ptr, ptr %10, align 8, !tbaa !9
  %596 = call i32 @s2n_connection_calculate_blinding(ptr noundef %595, ptr noundef %13, ptr noundef %14)
  %597 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  store i32 %596, ptr %597, align 4
  %598 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  %599 = load i32, ptr %598, align 4
  %600 = call zeroext i1 @s2n_result_is_ok(i32 %599)
  br i1 %600, label %654, label %601

601:                                              ; preds = %592
  br label %602

602:                                              ; preds = %601
  br label %603

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

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

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

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

649:                                              ; preds = %632, %615
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %650

650:                                              ; preds = %649
  br label %651

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

652:                                              ; No predecessors!
  br label %653

653:                                              ; preds = %652
  br label %654

654:                                              ; preds = %653, %592
  br label %655

655:                                              ; preds = %654
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = add nsw i32 %658, 1
  store i32 %659, ptr @test_count, align 4, !tbaa !5
  %660 = load i64, ptr %13, align 8, !tbaa !42
  %661 = load i64, ptr %19, align 8, !tbaa !42
  %662 = getelementptr inbounds [5 x %struct.anon], ptr %9, i64 0, i64 %661
  %663 = getelementptr inbounds %struct.anon, ptr %662, i32 0, i32 1
  %664 = load i64, ptr %663, align 8, !tbaa !45
  %665 = icmp eq i64 %660, %664
  br i1 %665, label %719, label %666

666:                                              ; preds = %657
  br label %667

667:                                              ; preds = %666
  br label %668

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

675:                                              ; preds = %668
  %676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %677 = call i32 @fileno(ptr noundef %676) #9
  %678 = call i32 @isatty(i32 noundef %677) #9
  %679 = icmp ne i32 %678, 0
  br i1 %679, label %680, label %697

680:                                              ; preds = %675
  %681 = load i32, ptr %23, align 4, !tbaa !5
  %682 = call ptr @__errno_location() #10
  store i32 %681, ptr %682, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call ptr @s2n_strerror(i32 noundef %686, ptr noundef @.str.4)
  %688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror_debug(i32 noundef %689, ptr noundef @.str.4)
  %691 = call ptr @__errno_location() #10
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @strerror(i32 noundef %692) #9
  %694 = call ptr @__errno_location() #10
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef @.str.2, i32 noundef %684, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 60, ptr noundef %687, ptr noundef %690, ptr noundef %693, i32 noundef %695) #9
  br label %714

697:                                              ; preds = %675, %668
  %698 = load i32, ptr %23, align 4, !tbaa !5
  %699 = call ptr @__errno_location() #10
  store i32 %698, ptr %699, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = load i32, ptr @test_count, align 4, !tbaa !5
  %702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror(i32 noundef %703, ptr noundef @.str.4)
  %705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror_debug(i32 noundef %706, ptr noundef @.str.4)
  %708 = call ptr @__errno_location() #10
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @strerror(i32 noundef %709) #9
  %711 = call ptr @__errno_location() #10
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef @.str.5, i32 noundef %701, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 60, ptr noundef %704, ptr noundef %707, ptr noundef %710, i32 noundef %712) #9
  br label %714

714:                                              ; preds = %697, %680
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %715

715:                                              ; preds = %714
  br label %716

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

717:                                              ; No predecessors!
  br label %718

718:                                              ; preds = %717
  br label %719

719:                                              ; preds = %718, %657
  br label %720

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %720
  br label %722

722:                                              ; preds = %721
  %723 = load i32, ptr @test_count, align 4, !tbaa !5
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr @test_count, align 4, !tbaa !5
  %725 = load i64, ptr %14, align 8, !tbaa !42
  %726 = load i64, ptr %19, align 8, !tbaa !42
  %727 = getelementptr inbounds [5 x %struct.anon], ptr %9, i64 0, i64 %726
  %728 = getelementptr inbounds %struct.anon, ptr %727, i32 0, i32 2
  %729 = load i64, ptr %728, align 8, !tbaa !46
  %730 = icmp eq i64 %725, %729
  br i1 %730, label %784, label %731

731:                                              ; preds = %722
  br label %732

732:                                              ; preds = %731
  br label %733

733:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %734 = call ptr @__errno_location() #10
  %735 = load i32, ptr %734, align 4, !tbaa !5
  store i32 %735, ptr %24, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = call i32 @s2n_print_stacktrace(ptr noundef %736)
  %738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %739 = trunc i8 %738 to i1
  br i1 %739, label %740, label %762

740:                                              ; preds = %733
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = call i32 @fileno(ptr noundef %741) #9
  %743 = call i32 @isatty(i32 noundef %742) #9
  %744 = icmp ne i32 %743, 0
  br i1 %744, label %745, label %762

745:                                              ; preds = %740
  %746 = load i32, ptr %24, align 4, !tbaa !5
  %747 = call ptr @__errno_location() #10
  store i32 %746, ptr %747, align 4, !tbaa !5
  %748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %749 = load i32, ptr @test_count, align 4, !tbaa !5
  %750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call ptr @s2n_strerror(i32 noundef %751, ptr noundef @.str.4)
  %753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror_debug(i32 noundef %754, ptr noundef @.str.4)
  %756 = call ptr @__errno_location() #10
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call ptr @strerror(i32 noundef %757) #9
  %759 = call ptr @__errno_location() #10
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %748, ptr noundef @.str.2, i32 noundef %749, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 61, ptr noundef %752, ptr noundef %755, ptr noundef %758, i32 noundef %760) #9
  br label %779

762:                                              ; preds = %740, %733
  %763 = load i32, ptr %24, align 4, !tbaa !5
  %764 = call ptr @__errno_location() #10
  store i32 %763, ptr %764, align 4, !tbaa !5
  %765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %766 = load i32, ptr @test_count, align 4, !tbaa !5
  %767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror(i32 noundef %768, ptr noundef @.str.4)
  %770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror_debug(i32 noundef %771, ptr noundef @.str.4)
  %773 = call ptr @__errno_location() #10
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @strerror(i32 noundef %774) #9
  %776 = call ptr @__errno_location() #10
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %765, ptr noundef @.str.5, i32 noundef %766, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 61, ptr noundef %769, ptr noundef %772, ptr noundef %775, i32 noundef %777) #9
  br label %779

779:                                              ; preds = %762, %745
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %780

780:                                              ; preds = %779
  br label %781

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

782:                                              ; No predecessors!
  br label %783

783:                                              ; preds = %782
  br label %784

784:                                              ; preds = %783, %722
  br label %785

785:                                              ; preds = %784
  br label %786

786:                                              ; preds = %785
  br label %787

787:                                              ; preds = %786
  %788 = load i64, ptr %19, align 8, !tbaa !42
  %789 = add i64 %788, 1
  store i64 %789, ptr %19, align 8, !tbaa !42
  br label %519, !llvm.loop !47

790:                                              ; preds = %522
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  %791 = call i32 @s2n_connection_ptr_free(ptr noundef %10)
  %792 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %791, ptr %792, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  br label %793

793:                                              ; preds = %790
  br label %794

794:                                              ; preds = %793
  %795 = call i32 @s2n_cleanup()
  %796 = icmp eq i32 %795, -1
  br i1 %796, label %797, label %850

797:                                              ; preds = %794
  br label %798

798:                                              ; preds = %797
  br label %799

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

806:                                              ; preds = %799
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = call i32 @fileno(ptr noundef %807) #9
  %809 = call i32 @isatty(i32 noundef %808) #9
  %810 = icmp ne i32 %809, 0
  br i1 %810, label %811, label %828

811:                                              ; preds = %806
  %812 = load i32, ptr %26, align 4, !tbaa !5
  %813 = call ptr @__errno_location() #10
  store i32 %812, ptr %813, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = load i32, ptr @test_count, align 4, !tbaa !5
  %816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = call ptr @s2n_strerror(i32 noundef %817, ptr noundef @.str.4)
  %819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef %820, ptr noundef @.str.4)
  %822 = call ptr @__errno_location() #10
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @strerror(i32 noundef %823) #9
  %825 = call ptr @__errno_location() #10
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %814, ptr noundef @.str.2, i32 noundef %815, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 65, ptr noundef %818, ptr noundef %821, ptr noundef %824, i32 noundef %826) #9
  br label %845

828:                                              ; preds = %806, %799
  %829 = load i32, ptr %26, align 4, !tbaa !5
  %830 = call ptr @__errno_location() #10
  store i32 %829, ptr %830, align 4, !tbaa !5
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror(i32 noundef %834, ptr noundef @.str.4)
  %836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror_debug(i32 noundef %837, ptr noundef @.str.4)
  %839 = call ptr @__errno_location() #10
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @strerror(i32 noundef %840) #9
  %842 = call ptr @__errno_location() #10
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %831, ptr noundef @.str.5, i32 noundef %832, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 65, ptr noundef %835, ptr noundef %838, ptr noundef %841, i32 noundef %843) #9
  br label %845

845:                                              ; preds = %828, %811
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %846

846:                                              ; preds = %845
  br label %847

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

848:                                              ; No predecessors!
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849, %794
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852
  br label %854

854:                                              ; preds = %853
  %855 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %856 = icmp eq i32 %855, -1
  br i1 %856, label %857, label %910

857:                                              ; preds = %854
  br label %858

858:                                              ; preds = %857
  br label %859

859:                                              ; preds = %858
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %860 = call ptr @__errno_location() #10
  %861 = load i32, ptr %860, align 4, !tbaa !5
  store i32 %861, ptr %27, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = call i32 @s2n_print_stacktrace(ptr noundef %862)
  %864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %865 = trunc i8 %864 to i1
  br i1 %865, label %866, label %888

866:                                              ; preds = %859
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = call i32 @fileno(ptr noundef %867) #9
  %869 = call i32 @isatty(i32 noundef %868) #9
  %870 = icmp ne i32 %869, 0
  br i1 %870, label %871, label %888

871:                                              ; preds = %866
  %872 = load i32, ptr %27, align 4, !tbaa !5
  %873 = call ptr @__errno_location() #10
  store i32 %872, ptr %873, align 4, !tbaa !5
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror(i32 noundef %877, ptr noundef @.str.4)
  %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_debug(i32 noundef %880, ptr noundef @.str.4)
  %882 = call ptr @__errno_location() #10
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call ptr @strerror(i32 noundef %883) #9
  %885 = call ptr @__errno_location() #10
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %874, ptr noundef @.str.2, i32 noundef %875, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 65, ptr noundef %878, ptr noundef %881, ptr noundef %884, i32 noundef %886) #9
  br label %905

888:                                              ; preds = %866, %859
  %889 = load i32, ptr %27, align 4, !tbaa !5
  %890 = call ptr @__errno_location() #10
  store i32 %889, ptr %890, align 4, !tbaa !5
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = load i32, ptr @test_count, align 4, !tbaa !5
  %893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %894 = load i32, ptr %893, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror(i32 noundef %894, ptr noundef @.str.4)
  %896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = call ptr @s2n_strerror_debug(i32 noundef %897, ptr noundef @.str.4)
  %899 = call ptr @__errno_location() #10
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #9
  %902 = call ptr @__errno_location() #10
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %891, ptr noundef @.str.5, i32 noundef %892, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 65, ptr noundef %895, ptr noundef %898, ptr noundef %901, i32 noundef %903) #9
  br label %905

905:                                              ; preds = %888, %871
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %906

906:                                              ; preds = %905
  br label %907

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

908:                                              ; No predecessors!
  br label %909

909:                                              ; preds = %908
  br label %910

910:                                              ; preds = %909, %854
  br label %911

911:                                              ; preds = %910
  br label %912

912:                                              ; preds = %911
  %913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %914 = trunc i8 %913 to i1
  br i1 %914, label %915, label %931

915:                                              ; preds = %912
  %916 = load ptr, ptr @stdout, align 8, !tbaa !9
  %917 = call i32 @fileno(ptr noundef %916) #9
  %918 = call i32 @isatty(i32 noundef %917) #9
  %919 = icmp ne i32 %918, 0
  br i1 %919, label %920, label %931

920:                                              ; preds = %915
  %921 = load i32, ptr @test_count, align 4, !tbaa !5
  %922 = icmp ne i32 %921, 0
  br i1 %922, label %923, label %927

923:                                              ; preds = %920
  %924 = load ptr, ptr @stdout, align 8, !tbaa !9
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %924, ptr noundef @.str.18, i32 noundef %925) #9
  br label %930

927:                                              ; preds = %920
  %928 = load ptr, ptr @stdout, align 8, !tbaa !9
  %929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %928, ptr noundef @.str.19) #9
  br label %930

930:                                              ; preds = %927, %923
  br label %942

931:                                              ; preds = %915, %912
  %932 = load i32, ptr @test_count, align 4, !tbaa !5
  %933 = icmp ne i32 %932, 0
  br i1 %933, label %934, label %938

934:                                              ; preds = %931
  %935 = load ptr, ptr @stdout, align 8, !tbaa !9
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %935, ptr noundef @.str.20, i32 noundef %936) #9
  br label %941

938:                                              ; preds = %931
  %939 = load ptr, ptr @stdout, align 8, !tbaa !9
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef @.str.21) #9
  br label %941

941:                                              ; preds = %938, %934
  br label %942

942:                                              ; preds = %941, %930
  store i32 0, ptr %3, align 4
  store i32 1, ptr %28, align 4
  br label %947

943:                                              ; No predecessors!
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945
  store i32 0, ptr %28, align 4
  br label %947

947:                                              ; preds = %946, %942
  call void @llvm.lifetime.end.p0(i64 120, ptr %9) #9
  %948 = load i32, ptr %28, align 4
  switch i32 %948, label %951 [
    i32 0, label %949
    i32 1, label %949
  ]

949:                                              ; preds = %947, %947
  %950 = load i32, ptr %3, align 4
  ret i32 %950

951:                                              ; preds = %947
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

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

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

declare i32 @s2n_cleanup() #2

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

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


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

%struct.anon = type { i32, i64, i64 }

@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 [87 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
@__const.main.test_cases = external hidden unnamed_addr constant [5 x %struct.anon], align 16
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

23:                                               ; preds = %19, %12
  br label %24

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

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

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

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

52:                                               ; preds = %48, %41
  br label %53

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

65:                                               ; preds = %36
  %66 = tail call i32 @s2n_init() #9
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

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

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

79:                                               ; preds = %75, %68
  br label %80

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

92:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #9
  %93 = tail call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %93, ptr %3, align 8, !tbaa !9
  %94 = load i32, ptr @test_count, align 4, !tbaa !5
  %95 = add nsw i32 %94, 1
  store i32 %95, ptr @test_count, align 4, !tbaa !5
  %96 = icmp eq ptr %93, null
  br i1 %96, label %97, label %121

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

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

108:                                              ; preds = %104, %97
  br label %109

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

121:                                              ; preds = %92
  %122 = add nsw i32 %94, 2
  store i32 %122, ptr @test_count, align 4, !tbaa !5
  %123 = getelementptr inbounds i8, ptr %93, i64 8
  %124 = load ptr, ptr %123, align 8, !tbaa !15
  %125 = icmp eq ptr %124, null
  br i1 %125, label %126, label %150

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

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

137:                                              ; preds = %133, %126
  br label %138

138:                                              ; preds = %133, %137
  %.str.5.sink98 = phi ptr [ @.str.5, %137 ], [ @.str.2, %133 ]
  store i32 %128, ptr %127, align 4, !tbaa !5
  %139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %140 = load i32, ptr @test_count, align 4, !tbaa !5
  %141 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = tail call ptr @s2n_strerror(i32 noundef %142, ptr noundef nonnull @.str.4) #9
  %144 = load i32, ptr %141, align 4, !tbaa !5
  %145 = tail call ptr @s2n_strerror_debug(i32 noundef %144, ptr noundef nonnull @.str.4) #9
  %146 = load i32, ptr %127, align 4, !tbaa !5
  %147 = tail call ptr @strerror(i32 noundef %146) #9
  %148 = load i32, ptr %127, align 4, !tbaa !5
  %149 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %139, ptr noundef nonnull %.str.5.sink98, i32 noundef %140, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %143, ptr noundef %145, ptr noundef %147, i32 noundef %148) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

150:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  store i64 0, ptr %4, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  store i64 0, ptr %5, align 8, !tbaa !42
  %151 = add nsw i32 %94, 3
  store i32 %151, ptr @test_count, align 4, !tbaa !5
  %152 = call i32 @s2n_connection_calculate_blinding(ptr noundef nonnull %93, ptr noundef nonnull %4, ptr noundef nonnull %5) #9
  %153 = call zeroext i1 @s2n_result_is_ok(i32 %152)
  br i1 %153, label %178, label %154

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

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

165:                                              ; preds = %161, %154
  br label %166

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

178:                                              ; preds = %150
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = add nsw i32 %179, 1
  store i32 %180, ptr @test_count, align 4, !tbaa !5
  %181 = load i64, ptr %4, align 8, !tbaa !42
  %182 = icmp eq i64 %181, 10000000000
  br i1 %182, label %207, label %183

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

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

194:                                              ; preds = %190, %183
  br label %195

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

207:                                              ; preds = %178
  %208 = add nsw i32 %179, 2
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = load i64, ptr %5, align 8, !tbaa !42
  %210 = icmp eq i64 %209, 30000000000
  br i1 %210, label %.preheader.preheader, label %216

.preheader.preheader:                             ; preds = %207
  %211 = add nsw i32 %179, 3
  store i32 %211, ptr @test_count, align 4, !tbaa !5
  %212 = load ptr, ptr %123, align 8, !tbaa !15
  %213 = load i32, ptr @__const.main.test_cases, align 16, !tbaa !43
  %214 = call i32 @s2n_config_set_max_blinding_delay(ptr noundef %212, i32 noundef %213) #9
  %215 = icmp eq i32 %214, -1
  br i1 %215, label %328, label %352

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

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #9
  %226 = call i32 @isatty(i32 noundef %225) #9
  %.not39 = icmp eq i32 %226, 0
  br i1 %.not39, label %227, label %228

227:                                              ; preds = %223, %216
  br label %228

228:                                              ; preds = %223, %227
  %.str.5.sink131 = phi ptr [ @.str.5, %227 ], [ @.str.2, %223 ]
  store i32 %218, ptr %217, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror(i32 noundef %232, ptr noundef nonnull @.str.4) #9
  %234 = load i32, ptr %231, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror_debug(i32 noundef %234, ptr noundef nonnull @.str.4) #9
  %236 = load i32, ptr %217, align 4, !tbaa !5
  %237 = call ptr @strerror(i32 noundef %236) #9
  %238 = load i32, ptr %217, align 4, !tbaa !5
  %239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef nonnull %.str.5.sink131, i32 noundef %230, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %233, ptr noundef %235, ptr noundef %237, i32 noundef %238) #11
  call void @exit(i32 noundef 1) #12
  unreachable

.preheader.1:                                     ; preds = %411
  %240 = add nsw i32 %382, 3
  store i32 %240, ptr @test_count, align 4, !tbaa !5
  %241 = load ptr, ptr %123, align 8, !tbaa !15
  %242 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 24), align 8, !tbaa !43
  %243 = call i32 @s2n_config_set_max_blinding_delay(ptr noundef %241, i32 noundef %242) #9
  %244 = icmp eq i32 %243, -1
  br i1 %244, label %328, label %245

245:                                              ; preds = %.preheader.1
  store i64 0, ptr %4, align 8, !tbaa !42
  store i64 0, ptr %5, align 8, !tbaa !42
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = add nsw i32 %246, 1
  store i32 %247, ptr @test_count, align 4, !tbaa !5
  %248 = call i32 @s2n_connection_calculate_blinding(ptr noundef nonnull %93, ptr noundef nonnull %4, ptr noundef nonnull %5) #9
  %249 = call zeroext i1 @s2n_result_is_ok(i32 %248)
  br i1 %249, label %250, label %357

250:                                              ; preds = %245
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr @test_count, align 4, !tbaa !5
  %253 = load i64, ptr %4, align 8, !tbaa !42
  %254 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 32), align 16, !tbaa !45
  %255 = icmp eq i64 %253, %254
  br i1 %255, label %256, label %387

256:                                              ; preds = %250
  %257 = add nsw i32 %251, 2
  store i32 %257, ptr @test_count, align 4, !tbaa !5
  %258 = load i64, ptr %5, align 8, !tbaa !42
  %259 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 40), align 8, !tbaa !46
  %260 = icmp eq i64 %258, %259
  br i1 %260, label %.preheader.2, label %416

.preheader.2:                                     ; preds = %256
  %261 = add nsw i32 %251, 3
  store i32 %261, ptr @test_count, align 4, !tbaa !5
  %262 = load ptr, ptr %123, align 8, !tbaa !15
  %263 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 48), align 16, !tbaa !43
  %264 = call i32 @s2n_config_set_max_blinding_delay(ptr noundef %262, i32 noundef %263) #9
  %265 = icmp eq i32 %264, -1
  br i1 %265, label %328, label %266

266:                                              ; preds = %.preheader.2
  store i64 0, ptr %4, align 8, !tbaa !42
  store i64 0, ptr %5, align 8, !tbaa !42
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr @test_count, align 4, !tbaa !5
  %269 = call i32 @s2n_connection_calculate_blinding(ptr noundef nonnull %93, ptr noundef nonnull %4, ptr noundef nonnull %5) #9
  %270 = call zeroext i1 @s2n_result_is_ok(i32 %269)
  br i1 %270, label %271, label %357

271:                                              ; preds = %266
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = add nsw i32 %272, 1
  store i32 %273, ptr @test_count, align 4, !tbaa !5
  %274 = load i64, ptr %4, align 8, !tbaa !42
  %275 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 56), align 8, !tbaa !45
  %276 = icmp eq i64 %274, %275
  br i1 %276, label %277, label %387

277:                                              ; preds = %271
  %278 = add nsw i32 %272, 2
  store i32 %278, ptr @test_count, align 4, !tbaa !5
  %279 = load i64, ptr %5, align 8, !tbaa !42
  %280 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 64), align 16, !tbaa !46
  %281 = icmp eq i64 %279, %280
  br i1 %281, label %.preheader.3, label %416

.preheader.3:                                     ; preds = %277
  %282 = add nsw i32 %272, 3
  store i32 %282, ptr @test_count, align 4, !tbaa !5
  %283 = load ptr, ptr %123, align 8, !tbaa !15
  %284 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 72), align 8, !tbaa !43
  %285 = call i32 @s2n_config_set_max_blinding_delay(ptr noundef %283, i32 noundef %284) #9
  %286 = icmp eq i32 %285, -1
  br i1 %286, label %328, label %287

287:                                              ; preds = %.preheader.3
  store i64 0, ptr %4, align 8, !tbaa !42
  store i64 0, ptr %5, align 8, !tbaa !42
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr @test_count, align 4, !tbaa !5
  %290 = call i32 @s2n_connection_calculate_blinding(ptr noundef nonnull %93, ptr noundef nonnull %4, ptr noundef nonnull %5) #9
  %291 = call zeroext i1 @s2n_result_is_ok(i32 %290)
  br i1 %291, label %292, label %357

292:                                              ; preds = %287
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = add nsw i32 %293, 1
  store i32 %294, ptr @test_count, align 4, !tbaa !5
  %295 = load i64, ptr %4, align 8, !tbaa !42
  %296 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 80), align 16, !tbaa !45
  %297 = icmp eq i64 %295, %296
  br i1 %297, label %298, label %387

298:                                              ; preds = %292
  %299 = add nsw i32 %293, 2
  store i32 %299, ptr @test_count, align 4, !tbaa !5
  %300 = load i64, ptr %5, align 8, !tbaa !42
  %301 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 88), align 8, !tbaa !46
  %302 = icmp eq i64 %300, %301
  br i1 %302, label %.preheader.4, label %416

.preheader.4:                                     ; preds = %298
  %303 = add nsw i32 %293, 3
  store i32 %303, ptr @test_count, align 4, !tbaa !5
  %304 = load ptr, ptr %123, align 8, !tbaa !15
  %305 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 96), align 16, !tbaa !43
  %306 = call i32 @s2n_config_set_max_blinding_delay(ptr noundef %304, i32 noundef %305) #9
  %307 = icmp eq i32 %306, -1
  br i1 %307, label %328, label %308

308:                                              ; preds = %.preheader.4
  store i64 0, ptr %4, align 8, !tbaa !42
  store i64 0, ptr %5, align 8, !tbaa !42
  %309 = load i32, ptr @test_count, align 4, !tbaa !5
  %310 = add nsw i32 %309, 1
  store i32 %310, ptr @test_count, align 4, !tbaa !5
  %311 = call i32 @s2n_connection_calculate_blinding(ptr noundef nonnull %93, ptr noundef nonnull %4, ptr noundef nonnull %5) #9
  %312 = call zeroext i1 @s2n_result_is_ok(i32 %311)
  br i1 %312, label %313, label %357

313:                                              ; preds = %308
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr @test_count, align 4, !tbaa !5
  %316 = load i64, ptr %4, align 8, !tbaa !42
  %317 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 104), align 8, !tbaa !45
  %318 = icmp eq i64 %316, %317
  br i1 %318, label %319, label %387

319:                                              ; preds = %313
  %320 = add nsw i32 %314, 2
  store i32 %320, ptr @test_count, align 4, !tbaa !5
  %321 = load i64, ptr %5, align 8, !tbaa !42
  %322 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 112), align 16, !tbaa !46
  %323 = icmp eq i64 %321, %322
  br i1 %323, label %324, label %416

324:                                              ; preds = %319
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  %325 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %3) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  %326 = call i32 @s2n_cleanup() #9
  %327 = icmp eq i32 %326, -1
  br i1 %327, label %440, label %464

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

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

339:                                              ; preds = %335, %328
  br label %340

340:                                              ; preds = %335, %339
  %.str.5.sink142 = phi ptr [ @.str.5, %339 ], [ @.str.2, %335 ]
  store i32 %330, ptr %329, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror(i32 noundef %344, ptr noundef nonnull @.str.4) #9
  %346 = load i32, ptr %343, align 4, !tbaa !5
  %347 = call ptr @s2n_strerror_debug(i32 noundef %346, ptr noundef nonnull @.str.4) #9
  %348 = load i32, ptr %329, align 4, !tbaa !5
  %349 = call ptr @strerror(i32 noundef %348) #9
  %350 = load i32, ptr %329, align 4, !tbaa !5
  %351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %341, ptr noundef nonnull %.str.5.sink142, i32 noundef %342, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %345, ptr noundef %347, ptr noundef %349, i32 noundef %350) #11
  call void @exit(i32 noundef 1) #12
  unreachable

352:                                              ; preds = %.preheader.preheader
  store i64 0, ptr %4, align 8, !tbaa !42
  store i64 0, ptr %5, align 8, !tbaa !42
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @test_count, align 4, !tbaa !5
  %355 = call i32 @s2n_connection_calculate_blinding(ptr noundef nonnull %93, ptr noundef nonnull %4, ptr noundef nonnull %5) #9
  %356 = call zeroext i1 @s2n_result_is_ok(i32 %355)
  br i1 %356, label %381, label %357

357:                                              ; preds = %308, %287, %266, %245, %352
  %358 = tail call ptr @__errno_location() #10
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = call i32 @s2n_print_stacktrace(ptr noundef %360) #9
  %362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %363 = trunc nuw i8 %362 to i1
  br i1 %363, label %364, label %368

364:                                              ; preds = %357
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = call i32 @fileno(ptr noundef %365) #9
  %367 = call i32 @isatty(i32 noundef %366) #9
  %.not45 = icmp eq i32 %367, 0
  br i1 %.not45, label %368, label %369

368:                                              ; preds = %364, %357
  br label %369

369:                                              ; preds = %364, %368
  %.str.5.sink153 = phi ptr [ @.str.5, %368 ], [ @.str.2, %364 ]
  store i32 %359, ptr %358, align 4, !tbaa !5
  %370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %371 = load i32, ptr @test_count, align 4, !tbaa !5
  %372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = call ptr @s2n_strerror(i32 noundef %373, ptr noundef nonnull @.str.4) #9
  %375 = load i32, ptr %372, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror_debug(i32 noundef %375, ptr noundef nonnull @.str.4) #9
  %377 = load i32, ptr %358, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #9
  %379 = load i32, ptr %358, align 4, !tbaa !5
  %380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %370, ptr noundef nonnull %.str.5.sink153, i32 noundef %371, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %374, ptr noundef %376, ptr noundef %378, i32 noundef %379) #11
  call void @exit(i32 noundef 1) #12
  unreachable

381:                                              ; preds = %352
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr @test_count, align 4, !tbaa !5
  %384 = load i64, ptr %4, align 8, !tbaa !42
  %385 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 8), align 8, !tbaa !45
  %386 = icmp eq i64 %384, %385
  br i1 %386, label %411, label %387

387:                                              ; preds = %313, %292, %271, %250, %381
  %388 = tail call ptr @__errno_location() #10
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = call i32 @s2n_print_stacktrace(ptr noundef %390) #9
  %392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %393 = trunc nuw i8 %392 to i1
  br i1 %393, label %394, label %398

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

398:                                              ; preds = %394, %387
  br label %399

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

411:                                              ; preds = %381
  %412 = add nsw i32 %382, 2
  store i32 %412, ptr @test_count, align 4, !tbaa !5
  %413 = load i64, ptr %5, align 8, !tbaa !42
  %414 = load i64, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 16), align 16, !tbaa !46
  %415 = icmp eq i64 %413, %414
  br i1 %415, label %.preheader.1, label %416

416:                                              ; preds = %319, %298, %277, %256, %411
  %417 = tail call ptr @__errno_location() #10
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = call i32 @s2n_print_stacktrace(ptr noundef %419) #9
  %421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %422 = trunc nuw i8 %421 to i1
  br i1 %422, label %423, label %427

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

427:                                              ; preds = %423, %416
  br label %428

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

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

447:                                              ; preds = %440
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = call i32 @fileno(ptr noundef %448) #9
  %450 = call i32 @isatty(i32 noundef %449) #9
  %.not44 = icmp eq i32 %450, 0
  br i1 %.not44, label %451, label %452

451:                                              ; preds = %447, %440
  br label %452

452:                                              ; preds = %447, %451
  %.str.5.sink186 = phi ptr [ @.str.5, %451 ], [ @.str.2, %447 ]
  store i32 %442, ptr %441, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = call ptr @s2n_strerror(i32 noundef %456, ptr noundef nonnull @.str.4) #9
  %458 = load i32, ptr %455, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror_debug(i32 noundef %458, ptr noundef nonnull @.str.4) #9
  %460 = load i32, ptr %441, align 4, !tbaa !5
  %461 = call ptr @strerror(i32 noundef %460) #9
  %462 = load i32, ptr %441, align 4, !tbaa !5
  %463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %453, ptr noundef nonnull %.str.5.sink186, i32 noundef %454, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %457, ptr noundef %459, ptr noundef %461, i32 noundef %462) #11
  call void @exit(i32 noundef 1) #12
  unreachable

464:                                              ; preds = %324
  %465 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %466 = icmp eq i32 %465, -1
  br i1 %466, label %467, label %491

467:                                              ; preds = %464
  %468 = tail call ptr @__errno_location() #10
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = call i32 @s2n_print_stacktrace(ptr noundef %470) #9
  %472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %473 = trunc nuw i8 %472 to i1
  br i1 %473, label %474, label %478

474:                                              ; preds = %467
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = call i32 @fileno(ptr noundef %475) #9
  %477 = call i32 @isatty(i32 noundef %476) #9
  %.not43 = icmp eq i32 %477, 0
  br i1 %.not43, label %478, label %479

478:                                              ; preds = %474, %467
  br label %479

479:                                              ; preds = %474, %478
  %.str.5.sink197 = phi ptr [ @.str.5, %478 ], [ @.str.2, %474 ]
  store i32 %469, ptr %468, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror(i32 noundef %483, ptr noundef nonnull @.str.4) #9
  %485 = load i32, ptr %482, align 4, !tbaa !5
  %486 = call ptr @s2n_strerror_debug(i32 noundef %485, ptr noundef nonnull @.str.4) #9
  %487 = load i32, ptr %468, align 4, !tbaa !5
  %488 = call ptr @strerror(i32 noundef %487) #9
  %489 = load i32, ptr %468, align 4, !tbaa !5
  %490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %480, ptr noundef nonnull %.str.5.sink197, i32 noundef %481, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %484, ptr noundef %486, ptr noundef %488, i32 noundef %489) #11
  call void @exit(i32 noundef 1) #12
  unreachable

491:                                              ; preds = %464
  %492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %493 = trunc nuw i8 %492 to i1
  br i1 %493, label %494, label %505

494:                                              ; preds = %491
  %495 = load ptr, ptr @stdout, align 8, !tbaa !9
  %496 = call i32 @fileno(ptr noundef %495) #9
  %497 = call i32 @isatty(i32 noundef %496) #9
  %.not40 = icmp eq i32 %497, 0
  br i1 %.not40, label %505, label %498

498:                                              ; preds = %494
  %499 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not42 = icmp eq i32 %499, 0
  %500 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not42, label %503, label %501

501:                                              ; preds = %498
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef nonnull @.str.18, i32 noundef %499) #9
  br label %512

503:                                              ; preds = %498
  %504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef nonnull @.str.19) #9
  br label %512

505:                                              ; preds = %494, %491
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not41 = icmp eq i32 %506, 0
  %507 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not41, label %510, label %508

508:                                              ; preds = %505
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %507, ptr noundef nonnull @.str.20, i32 noundef %506) #9
  br label %512

510:                                              ; preds = %505
  %511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %507, ptr noundef nonnull @.str.21) #9
  br label %512

512:                                              ; preds = %508, %510, %501, %503
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { cold nounwind }
attributes #12 = { 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 8}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!18, !18, i64 0}
!43 = !{!44, !6, i64 0}
!44 = !{!"", !6, i64 0, !18, i64 8, !18, i64 16}
!45 = !{!44, !18, i64 8}
!46 = !{!44, !18, i64 16}


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