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

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

%struct.s2n_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
@s2n_errno = external thread_local global i32, align 4
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.16 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [84 x i8], align 1
@stderr = external global ptr, align 8
@.str.18 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #2 {
  %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 %struct.s2n_result, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %struct.s2n_connection, align 8
  %14 = alloca i32, align 4
  %15 = alloca %struct.s2n_result, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca [100 x i8], align 16
  %19 = alloca i32, align 4
  %20 = alloca i8, align 1
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.s2n_result, align 4
  %27 = alloca %struct.s2n_result, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.s2n_connection, align 8
  %32 = alloca %struct.s2n_result, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca [100 x i8], align 16
  %36 = alloca i32, align 4
  %37 = alloca i8, align 1
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca %struct.s2n_result, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_result, align 4
  %50 = alloca %struct.s2n_result, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca %struct.s2n_result, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca %struct.s2n_result, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca [32 x i8], align 16
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = 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 %87

87:                                               ; preds = %2
  br label %88

88:                                               ; preds = %87
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %89 = load ptr, ptr @stdout, align 8, !tbaa !9
  %90 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %89, ptr noundef @.str.16, ptr noundef @.str.17) #9
  %91 = load ptr, ptr @stdout, align 8, !tbaa !9
  %92 = call i32 @fflush(ptr noundef %91)
  br label %93

93:                                               ; preds = %88
  %94 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %95 = icmp eq i32 %94, -1
  br i1 %95, label %96, label %147

96:                                               ; preds = %93
  br label %97

97:                                               ; preds = %96
  br label %98

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %99 = call ptr @__errno_location() #10
  %100 = load i32, ptr %99, align 4, !tbaa !5
  store i32 %100, ptr %6, 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 %6, 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.20)
  %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.20)
  %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.18, i32 noundef %114, ptr noundef @.str.19, ptr noundef @.str.17, i32 noundef 26, ptr noundef %117, ptr noundef %120, ptr noundef %123, i32 noundef %125) #9
  br label %144

127:                                              ; preds = %105, %98
  %128 = load i32, ptr %6, 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.20)
  %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.20)
  %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.21, i32 noundef %131, ptr noundef @.str.19, ptr noundef @.str.17, i32 noundef 26, 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 %6) #9
  br label %145

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

146:                                              ; No predecessors!
  br label %147

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

148:                                              ; preds = %147
  br label %149

149:                                              ; preds = %148
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr @test_count, align 4, !tbaa !5
  %152 = call i32 @s2n_enable_atexit()
  %153 = icmp eq i32 %152, -1
  br i1 %153, label %154, label %205

154:                                              ; preds = %149
  br label %155

155:                                              ; preds = %154
  br label %156

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

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

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

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

202:                                              ; preds = %185, %168
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %203

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

204:                                              ; No predecessors!
  br label %205

205:                                              ; preds = %204, %149
  br label %206

206:                                              ; preds = %205
  br label %207

207:                                              ; preds = %206
  br label %208

208:                                              ; preds = %207
  %209 = call i32 @s2n_init()
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %211, label %262

211:                                              ; preds = %208
  br label %212

212:                                              ; preds = %211
  br label %213

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

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

225:                                              ; preds = %220
  %226 = load i32, ptr %8, align 4, !tbaa !5
  %227 = call ptr @__errno_location() #10
  store i32 %226, ptr %227, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = load i32, ptr @test_count, align 4, !tbaa !5
  %230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror(i32 noundef %231, ptr noundef @.str.20)
  %233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror_debug(i32 noundef %234, ptr noundef @.str.20)
  %236 = call ptr @__errno_location() #10
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @strerror(i32 noundef %237) #9
  %239 = call ptr @__errno_location() #10
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %228, ptr noundef @.str.18, i32 noundef %229, ptr noundef @.str.23, ptr noundef @.str.17, i32 noundef 26, ptr noundef %232, ptr noundef %235, ptr noundef %238, i32 noundef %240) #9
  br label %259

242:                                              ; preds = %220, %213
  %243 = load i32, ptr %8, align 4, !tbaa !5
  %244 = call ptr @__errno_location() #10
  store i32 %243, ptr %244, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call ptr @s2n_strerror(i32 noundef %248, ptr noundef @.str.20)
  %250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call ptr @s2n_strerror_debug(i32 noundef %251, ptr noundef @.str.20)
  %253 = call ptr @__errno_location() #10
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @strerror(i32 noundef %254) #9
  %256 = call ptr @__errno_location() #10
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %245, ptr noundef @.str.21, i32 noundef %246, ptr noundef @.str.23, ptr noundef @.str.17, i32 noundef 26, ptr noundef %249, ptr noundef %252, ptr noundef %255, i32 noundef %257) #9
  br label %259

259:                                              ; preds = %242, %225
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %260

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

261:                                              ; No predecessors!
  br label %262

262:                                              ; preds = %261, %208
  br label %263

263:                                              ; preds = %262
  br label %264

264:                                              ; preds = %263
  br label %265

265:                                              ; preds = %264
  br label %266

266:                                              ; preds = %265
  br label %267

267:                                              ; preds = %266
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @test_count, align 4, !tbaa !5
  %270 = call i32 @s2n_handshake_hashes_new(ptr noundef null)
  %271 = getelementptr inbounds %struct.s2n_result, ptr %9, i32 0, i32 0
  store i32 %270, ptr %271, align 4
  %272 = getelementptr inbounds %struct.s2n_result, ptr %9, i32 0, i32 0
  %273 = load i32, ptr %272, align 4
  %274 = call zeroext i1 @s2n_result_is_error(i32 %273)
  br i1 %274, label %326, label %275

275:                                              ; preds = %267
  br label %276

276:                                              ; preds = %275
  br label %277

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

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

289:                                              ; preds = %284
  %290 = load i32, ptr %10, align 4, !tbaa !5
  %291 = call ptr @__errno_location() #10
  store i32 %290, ptr %291, align 4, !tbaa !5
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror(i32 noundef %295, ptr noundef @.str.20)
  %297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call ptr @s2n_strerror_debug(i32 noundef %298, ptr noundef @.str.20)
  %300 = call ptr @__errno_location() #10
  %301 = load i32, ptr %300, align 4, !tbaa !5
  %302 = call ptr @strerror(i32 noundef %301) #9
  %303 = call ptr @__errno_location() #10
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %292, ptr noundef @.str.18, i32 noundef %293, ptr noundef @.str.24, ptr noundef @.str.17, i32 noundef 31, ptr noundef %296, ptr noundef %299, ptr noundef %302, i32 noundef %304) #9
  br label %323

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

323:                                              ; preds = %306, %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %324

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

325:                                              ; No predecessors!
  br label %326

326:                                              ; preds = %325, %267
  br label %327

327:                                              ; preds = %326
  br label %328

328:                                              ; preds = %327
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = add nsw i32 %329, 1
  store i32 %330, ptr @test_count, align 4, !tbaa !5
  %331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = icmp eq i32 %332, 402653193
  br i1 %333, label %385, label %334

334:                                              ; preds = %328
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %337 = call ptr @__errno_location() #10
  %338 = load i32, ptr %337, align 4, !tbaa !5
  store i32 %338, ptr %11, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @s2n_print_stacktrace(ptr noundef %339)
  %341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %342 = trunc i8 %341 to i1
  br i1 %342, label %343, label %365

343:                                              ; preds = %336
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @fileno(ptr noundef %344) #9
  %346 = call i32 @isatty(i32 noundef %345) #9
  %347 = icmp ne i32 %346, 0
  br i1 %347, label %348, label %365

348:                                              ; preds = %343
  %349 = load i32, ptr %11, align 4, !tbaa !5
  %350 = call ptr @__errno_location() #10
  store i32 %349, ptr %350, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef @.str.20)
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef @.str.20)
  %359 = call ptr @__errno_location() #10
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @strerror(i32 noundef %360) #9
  %362 = call ptr @__errno_location() #10
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef @.str.18, i32 noundef %352, ptr noundef @.str.25, ptr noundef @.str.17, i32 noundef 31, ptr noundef %355, ptr noundef %358, ptr noundef %361, i32 noundef %363) #9
  br label %382

365:                                              ; preds = %343, %336
  %366 = load i32, ptr %11, align 4, !tbaa !5
  %367 = call ptr @__errno_location() #10
  store i32 %366, ptr %367, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror(i32 noundef %371, ptr noundef @.str.20)
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror_debug(i32 noundef %374, ptr noundef @.str.20)
  %376 = call ptr @__errno_location() #10
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #9
  %379 = call ptr @__errno_location() #10
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef @.str.21, i32 noundef %369, ptr noundef @.str.25, ptr noundef @.str.17, i32 noundef 31, ptr noundef %372, ptr noundef %375, ptr noundef %378, i32 noundef %380) #9
  br label %382

382:                                              ; preds = %365, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %383

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

384:                                              ; No predecessors!
  br label %385

385:                                              ; preds = %384, %328
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr @test_count, align 4, !tbaa !5
  %390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call ptr @s2n_strerror_debug(i32 noundef %391, ptr noundef @.str.20)
  %393 = icmp eq ptr %392, null
  br i1 %393, label %394, label %445

394:                                              ; preds = %387
  br label %395

395:                                              ; preds = %394
  br label %396

396:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %397 = call ptr @__errno_location() #10
  %398 = load i32, ptr %397, align 4, !tbaa !5
  store i32 %398, ptr %12, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = call i32 @s2n_print_stacktrace(ptr noundef %399)
  %401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %402 = trunc i8 %401 to i1
  br i1 %402, label %403, label %425

403:                                              ; preds = %396
  %404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %405 = call i32 @fileno(ptr noundef %404) #9
  %406 = call i32 @isatty(i32 noundef %405) #9
  %407 = icmp ne i32 %406, 0
  br i1 %407, label %408, label %425

408:                                              ; preds = %403
  %409 = load i32, ptr %12, align 4, !tbaa !5
  %410 = call ptr @__errno_location() #10
  store i32 %409, ptr %410, align 4, !tbaa !5
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror(i32 noundef %414, ptr noundef @.str.20)
  %416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror_debug(i32 noundef %417, ptr noundef @.str.20)
  %419 = call ptr @__errno_location() #10
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call ptr @strerror(i32 noundef %420) #9
  %422 = call ptr @__errno_location() #10
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %411, ptr noundef @.str.18, i32 noundef %412, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 31, ptr noundef %415, ptr noundef %418, ptr noundef %421, i32 noundef %423) #9
  br label %442

425:                                              ; preds = %403, %396
  %426 = load i32, ptr %12, align 4, !tbaa !5
  %427 = call ptr @__errno_location() #10
  store i32 %426, ptr %427, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call ptr @s2n_strerror(i32 noundef %431, ptr noundef @.str.20)
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror_debug(i32 noundef %434, ptr noundef @.str.20)
  %436 = call ptr @__errno_location() #10
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = call ptr @strerror(i32 noundef %437) #9
  %439 = call ptr @__errno_location() #10
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %428, ptr noundef @.str.21, i32 noundef %429, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 31, ptr noundef %432, ptr noundef %435, ptr noundef %438, i32 noundef %440) #9
  br label %442

442:                                              ; preds = %425, %408
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %443

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

444:                                              ; No predecessors!
  br label %445

445:                                              ; preds = %444, %387
  br label %446

446:                                              ; preds = %445
  br label %447

447:                                              ; preds = %446
  br label %448

448:                                              ; preds = %447
  %449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %449, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %450 = call ptr @__errno_location() #10
  store i32 0, ptr %450, align 4, !tbaa !5
  br label %451

451:                                              ; preds = %448
  br label %452

452:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 4184, ptr %13) #9
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 4184, i1 false)
  br label %453

453:                                              ; preds = %452
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr @test_count, align 4, !tbaa !5
  %456 = getelementptr inbounds %struct.s2n_connection, ptr %13, i32 0, i32 52
  %457 = getelementptr inbounds %struct.s2n_handshake, ptr %456, i32 0, i32 1
  %458 = load ptr, ptr %457, align 8, !tbaa !15
  %459 = icmp eq ptr %458, null
  br i1 %459, label %513, label %460

460:                                              ; preds = %453
  br label %461

461:                                              ; preds = %460
  br label %462

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

469:                                              ; preds = %462
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = call i32 @fileno(ptr noundef %470) #9
  %472 = call i32 @isatty(i32 noundef %471) #9
  %473 = icmp ne i32 %472, 0
  br i1 %473, label %474, label %491

474:                                              ; preds = %469
  %475 = load i32, ptr %14, align 4, !tbaa !5
  %476 = call ptr @__errno_location() #10
  store i32 %475, ptr %476, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = load i32, ptr @test_count, align 4, !tbaa !5
  %479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @s2n_strerror(i32 noundef %480, ptr noundef @.str.20)
  %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_debug(i32 noundef %483, ptr noundef @.str.20)
  %485 = call ptr @__errno_location() #10
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @strerror(i32 noundef %486) #9
  %488 = call ptr @__errno_location() #10
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %477, ptr noundef @.str.18, i32 noundef %478, ptr noundef @.str.27, ptr noundef @.str.17, i32 noundef 37, ptr noundef %481, ptr noundef %484, ptr noundef %487, i32 noundef %489) #9
  br label %508

491:                                              ; preds = %469, %462
  %492 = load i32, ptr %14, align 4, !tbaa !5
  %493 = call ptr @__errno_location() #10
  store i32 %492, ptr %493, align 4, !tbaa !5
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror(i32 noundef %497, ptr noundef @.str.20)
  %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_debug(i32 noundef %500, ptr noundef @.str.20)
  %502 = call ptr @__errno_location() #10
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @strerror(i32 noundef %503) #9
  %505 = call ptr @__errno_location() #10
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %494, ptr noundef @.str.21, i32 noundef %495, ptr noundef @.str.27, ptr noundef @.str.17, i32 noundef 37, ptr noundef %498, ptr noundef %501, ptr noundef %504, i32 noundef %506) #9
  br label %508

508:                                              ; preds = %491, %474
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %509

509:                                              ; preds = %508
  br label %510

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

511:                                              ; No predecessors!
  br label %512

512:                                              ; preds = %511
  br label %513

513:                                              ; preds = %512, %453
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr @test_count, align 4, !tbaa !5
  %519 = getelementptr inbounds %struct.s2n_connection, ptr %13, i32 0, i32 52
  %520 = getelementptr inbounds %struct.s2n_handshake, ptr %519, i32 0, i32 1
  %521 = call i32 @s2n_handshake_hashes_new(ptr noundef %520)
  %522 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  store i32 %521, ptr %522, align 4
  %523 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  %524 = load i32, ptr %523, align 4
  %525 = call zeroext i1 @s2n_result_is_ok(i32 %524)
  br i1 %525, label %579, label %526

526:                                              ; preds = %516
  br label %527

527:                                              ; preds = %526
  br label %528

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

535:                                              ; preds = %528
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = call i32 @fileno(ptr noundef %536) #9
  %538 = call i32 @isatty(i32 noundef %537) #9
  %539 = icmp ne i32 %538, 0
  br i1 %539, label %540, label %557

540:                                              ; preds = %535
  %541 = load i32, ptr %16, align 4, !tbaa !5
  %542 = call ptr @__errno_location() #10
  store i32 %541, ptr %542, align 4, !tbaa !5
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = load i32, ptr @test_count, align 4, !tbaa !5
  %545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror(i32 noundef %546, ptr noundef @.str.20)
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror_debug(i32 noundef %549, ptr noundef @.str.20)
  %551 = call ptr @__errno_location() #10
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @strerror(i32 noundef %552) #9
  %554 = call ptr @__errno_location() #10
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %543, ptr noundef @.str.18, i32 noundef %544, ptr noundef @.str.28, ptr noundef @.str.17, i32 noundef 38, ptr noundef %547, ptr noundef %550, ptr noundef %553, i32 noundef %555) #9
  br label %574

557:                                              ; preds = %535, %528
  %558 = load i32, ptr %16, align 4, !tbaa !5
  %559 = call ptr @__errno_location() #10
  store i32 %558, ptr %559, align 4, !tbaa !5
  %560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = call ptr @s2n_strerror(i32 noundef %563, ptr noundef @.str.20)
  %565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call ptr @s2n_strerror_debug(i32 noundef %566, ptr noundef @.str.20)
  %568 = call ptr @__errno_location() #10
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call ptr @strerror(i32 noundef %569) #9
  %571 = call ptr @__errno_location() #10
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %560, ptr noundef @.str.21, i32 noundef %561, ptr noundef @.str.28, ptr noundef @.str.17, i32 noundef 38, ptr noundef %564, ptr noundef %567, ptr noundef %570, i32 noundef %572) #9
  br label %574

574:                                              ; preds = %557, %540
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %575

575:                                              ; preds = %574
  br label %576

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

577:                                              ; No predecessors!
  br label %578

578:                                              ; preds = %577
  br label %579

579:                                              ; preds = %578, %516
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr @test_count, align 4, !tbaa !5
  %585 = getelementptr inbounds %struct.s2n_connection, ptr %13, i32 0, i32 52
  %586 = getelementptr inbounds %struct.s2n_handshake, ptr %585, i32 0, i32 1
  %587 = load ptr, ptr %586, align 8, !tbaa !15
  %588 = icmp eq ptr %587, null
  br i1 %588, label %589, label %642

589:                                              ; preds = %582
  br label %590

590:                                              ; preds = %589
  br label %591

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

598:                                              ; preds = %591
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = call i32 @fileno(ptr noundef %599) #9
  %601 = call i32 @isatty(i32 noundef %600) #9
  %602 = icmp ne i32 %601, 0
  br i1 %602, label %603, label %620

603:                                              ; preds = %598
  %604 = load i32, ptr %17, align 4, !tbaa !5
  %605 = call ptr @__errno_location() #10
  store i32 %604, ptr %605, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror(i32 noundef %609, ptr noundef @.str.20)
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror_debug(i32 noundef %612, ptr noundef @.str.20)
  %614 = call ptr @__errno_location() #10
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @strerror(i32 noundef %615) #9
  %617 = call ptr @__errno_location() #10
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef @.str.18, i32 noundef %607, ptr noundef @.str.29, ptr noundef @.str.17, i32 noundef 39, ptr noundef %610, ptr noundef %613, ptr noundef %616, i32 noundef %618) #9
  br label %637

620:                                              ; preds = %598, %591
  %621 = load i32, ptr %17, align 4, !tbaa !5
  %622 = call ptr @__errno_location() #10
  store i32 %621, ptr %622, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call ptr @s2n_strerror(i32 noundef %626, ptr noundef @.str.20)
  %628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror_debug(i32 noundef %629, ptr noundef @.str.20)
  %631 = call ptr @__errno_location() #10
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @strerror(i32 noundef %632) #9
  %634 = call ptr @__errno_location() #10
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %623, ptr noundef @.str.21, i32 noundef %624, ptr noundef @.str.29, ptr noundef @.str.17, i32 noundef 39, ptr noundef %627, ptr noundef %630, ptr noundef %633, i32 noundef %635) #9
  br label %637

637:                                              ; preds = %620, %603
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %638

638:                                              ; preds = %637
  br label %639

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

640:                                              ; No predecessors!
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641, %582
  br label %643

643:                                              ; preds = %642
  br label %644

644:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 100, ptr %18) #9
  call void @llvm.memset.p0.i64(ptr align 16 %18, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 0, ptr %19, align 4, !tbaa !5
  br label %645

645:                                              ; preds = %905, %644
  %646 = load i32, ptr %19, align 4, !tbaa !5
  %647 = icmp ult i32 %646, 8
  br i1 %647, label %649, label %648

648:                                              ; preds = %645
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %908

649:                                              ; preds = %645
  %650 = load i32, ptr %19, align 4, !tbaa !5
  %651 = icmp eq i32 %650, 0
  br i1 %651, label %652, label %653

652:                                              ; preds = %649
  br label %905

653:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #9
  store i8 0, ptr %20, align 1, !tbaa !42
  br label %654

654:                                              ; preds = %653
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr @test_count, align 4, !tbaa !5
  %657 = load i32, ptr %19, align 4, !tbaa !5
  %658 = call i32 @s2n_hash_digest_size(i32 noundef %657, ptr noundef %20)
  %659 = icmp eq i32 %658, -1
  br i1 %659, label %660, label %713

660:                                              ; preds = %654
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %663 = call ptr @__errno_location() #10
  %664 = load i32, ptr %663, align 4, !tbaa !5
  store i32 %664, ptr %21, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @s2n_print_stacktrace(ptr noundef %665)
  %667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %668 = trunc i8 %667 to i1
  br i1 %668, label %669, label %691

669:                                              ; preds = %662
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @fileno(ptr noundef %670) #9
  %672 = call i32 @isatty(i32 noundef %671) #9
  %673 = icmp ne i32 %672, 0
  br i1 %673, label %674, label %691

674:                                              ; preds = %669
  %675 = load i32, ptr %21, align 4, !tbaa !5
  %676 = call ptr @__errno_location() #10
  store i32 %675, ptr %676, align 4, !tbaa !5
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = load i32, ptr @test_count, align 4, !tbaa !5
  %679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror(i32 noundef %680, ptr noundef @.str.20)
  %682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror_debug(i32 noundef %683, ptr noundef @.str.20)
  %685 = call ptr @__errno_location() #10
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call ptr @strerror(i32 noundef %686) #9
  %688 = call ptr @__errno_location() #10
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %677, ptr noundef @.str.18, i32 noundef %678, ptr noundef @.str.30, ptr noundef @.str.17, i32 noundef 50, ptr noundef %681, ptr noundef %684, ptr noundef %687, i32 noundef %689) #9
  br label %708

691:                                              ; preds = %669, %662
  %692 = load i32, ptr %21, align 4, !tbaa !5
  %693 = call ptr @__errno_location() #10
  store i32 %692, ptr %693, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef @.str.20)
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror_debug(i32 noundef %700, ptr noundef @.str.20)
  %702 = call ptr @__errno_location() #10
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #9
  %705 = call ptr @__errno_location() #10
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef @.str.21, i32 noundef %695, ptr noundef @.str.30, ptr noundef @.str.17, i32 noundef 50, ptr noundef %698, ptr noundef %701, ptr noundef %704, i32 noundef %706) #9
  br label %708

708:                                              ; preds = %691, %674
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %709

709:                                              ; preds = %708
  br label %710

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

711:                                              ; No predecessors!
  br label %712

712:                                              ; preds = %711
  br label %713

713:                                              ; preds = %712, %654
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714
  br label %716

716:                                              ; preds = %715
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = add nsw i32 %717, 1
  store i32 %718, ptr @test_count, align 4, !tbaa !5
  %719 = load i8, ptr %20, align 1, !tbaa !42
  %720 = zext i8 %719 to i64
  %721 = icmp ult i64 %720, 100
  br i1 %721, label %775, label %722

722:                                              ; preds = %716
  br label %723

723:                                              ; preds = %722
  br label %724

724:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %725 = call ptr @__errno_location() #10
  %726 = load i32, ptr %725, align 4, !tbaa !5
  store i32 %726, ptr %22, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = call i32 @s2n_print_stacktrace(ptr noundef %727)
  %729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %730 = trunc i8 %729 to i1
  br i1 %730, label %731, label %753

731:                                              ; preds = %724
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = call i32 @fileno(ptr noundef %732) #9
  %734 = call i32 @isatty(i32 noundef %733) #9
  %735 = icmp ne i32 %734, 0
  br i1 %735, label %736, label %753

736:                                              ; preds = %731
  %737 = load i32, ptr %22, align 4, !tbaa !5
  %738 = call ptr @__errno_location() #10
  store i32 %737, ptr %738, align 4, !tbaa !5
  %739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %740 = load i32, ptr @test_count, align 4, !tbaa !5
  %741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror(i32 noundef %742, ptr noundef @.str.20)
  %744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror_debug(i32 noundef %745, ptr noundef @.str.20)
  %747 = call ptr @__errno_location() #10
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call ptr @strerror(i32 noundef %748) #9
  %750 = call ptr @__errno_location() #10
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %739, ptr noundef @.str.18, i32 noundef %740, ptr noundef @.str.31, ptr noundef @.str.17, i32 noundef 51, ptr noundef %743, ptr noundef %746, ptr noundef %749, i32 noundef %751) #9
  br label %770

753:                                              ; preds = %731, %724
  %754 = load i32, ptr %22, align 4, !tbaa !5
  %755 = call ptr @__errno_location() #10
  store i32 %754, ptr %755, align 4, !tbaa !5
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = load i32, ptr @test_count, align 4, !tbaa !5
  %758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @s2n_strerror(i32 noundef %759, ptr noundef @.str.20)
  %761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror_debug(i32 noundef %762, ptr noundef @.str.20)
  %764 = call ptr @__errno_location() #10
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @strerror(i32 noundef %765) #9
  %767 = call ptr @__errno_location() #10
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %756, ptr noundef @.str.21, i32 noundef %757, ptr noundef @.str.31, ptr noundef @.str.17, i32 noundef 51, ptr noundef %760, ptr noundef %763, ptr noundef %766, i32 noundef %768) #9
  br label %770

770:                                              ; preds = %753, %736
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %771

771:                                              ; preds = %770
  br label %772

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

773:                                              ; No predecessors!
  br label %774

774:                                              ; preds = %773
  br label %775

775:                                              ; preds = %774, %716
  br label %776

776:                                              ; preds = %775
  br label %777

777:                                              ; preds = %776
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  store ptr null, ptr %23, align 8, !tbaa !9
  br label %778

778:                                              ; preds = %777
  %779 = load i32, ptr @test_count, align 4, !tbaa !5
  %780 = add nsw i32 %779, 1
  store i32 %780, ptr @test_count, align 4, !tbaa !5
  %781 = load i32, ptr %19, align 4, !tbaa !5
  %782 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef %13, i32 noundef %781, ptr noundef %23)
  %783 = icmp eq i32 %782, -1
  br i1 %783, label %784, label %837

784:                                              ; preds = %778
  br label %785

785:                                              ; preds = %784
  br label %786

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

793:                                              ; preds = %786
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = call i32 @fileno(ptr noundef %794) #9
  %796 = call i32 @isatty(i32 noundef %795) #9
  %797 = icmp ne i32 %796, 0
  br i1 %797, label %798, label %815

798:                                              ; preds = %793
  %799 = load i32, ptr %24, align 4, !tbaa !5
  %800 = call ptr @__errno_location() #10
  store i32 %799, ptr %800, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef @.str.20)
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror_debug(i32 noundef %807, ptr noundef @.str.20)
  %809 = call ptr @__errno_location() #10
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @strerror(i32 noundef %810) #9
  %812 = call ptr @__errno_location() #10
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef @.str.18, i32 noundef %802, ptr noundef @.str.32, ptr noundef @.str.17, i32 noundef 54, ptr noundef %805, ptr noundef %808, ptr noundef %811, i32 noundef %813) #9
  br label %832

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

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

833:                                              ; preds = %832
  br label %834

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

835:                                              ; No predecessors!
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836, %778
  br label %838

838:                                              ; preds = %837
  br label %839

839:                                              ; preds = %838
  br label %840

840:                                              ; preds = %839
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %842 = add nsw i32 %841, 1
  store i32 %842, ptr @test_count, align 4, !tbaa !5
  %843 = load ptr, ptr %23, align 8, !tbaa !9
  %844 = getelementptr inbounds [100 x i8], ptr %18, i64 0, i64 0
  %845 = load i8, ptr %20, align 1, !tbaa !42
  %846 = zext i8 %845 to i32
  %847 = call i32 @s2n_hash_digest(ptr noundef %843, ptr noundef %844, i32 noundef %846)
  %848 = icmp eq i32 %847, -1
  br i1 %848, label %849, label %902

849:                                              ; preds = %840
  br label %850

850:                                              ; preds = %849
  br label %851

851:                                              ; preds = %850
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %852 = call ptr @__errno_location() #10
  %853 = load i32, ptr %852, align 4, !tbaa !5
  store i32 %853, ptr %25, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = call i32 @s2n_print_stacktrace(ptr noundef %854)
  %856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %857 = trunc i8 %856 to i1
  br i1 %857, label %858, label %880

858:                                              ; preds = %851
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @fileno(ptr noundef %859) #9
  %861 = call i32 @isatty(i32 noundef %860) #9
  %862 = icmp ne i32 %861, 0
  br i1 %862, label %863, label %880

863:                                              ; preds = %858
  %864 = load i32, ptr %25, align 4, !tbaa !5
  %865 = call ptr @__errno_location() #10
  store i32 %864, ptr %865, align 4, !tbaa !5
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror(i32 noundef %869, ptr noundef @.str.20)
  %871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror_debug(i32 noundef %872, ptr noundef @.str.20)
  %874 = call ptr @__errno_location() #10
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = call ptr @strerror(i32 noundef %875) #9
  %877 = call ptr @__errno_location() #10
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %866, ptr noundef @.str.18, i32 noundef %867, ptr noundef @.str.33, ptr noundef @.str.17, i32 noundef 57, ptr noundef %870, ptr noundef %873, ptr noundef %876, i32 noundef %878) #9
  br label %897

880:                                              ; preds = %858, %851
  %881 = load i32, ptr %25, align 4, !tbaa !5
  %882 = call ptr @__errno_location() #10
  store i32 %881, ptr %882, align 4, !tbaa !5
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror(i32 noundef %886, ptr noundef @.str.20)
  %888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror_debug(i32 noundef %889, ptr noundef @.str.20)
  %891 = call ptr @__errno_location() #10
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call ptr @strerror(i32 noundef %892) #9
  %894 = call ptr @__errno_location() #10
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %883, ptr noundef @.str.21, i32 noundef %884, ptr noundef @.str.33, ptr noundef @.str.17, i32 noundef 57, ptr noundef %887, ptr noundef %890, ptr noundef %893, i32 noundef %895) #9
  br label %897

897:                                              ; preds = %880, %863
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %898

898:                                              ; preds = %897
  br label %899

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

900:                                              ; No predecessors!
  br label %901

901:                                              ; preds = %900
  br label %902

902:                                              ; preds = %901, %840
  br label %903

903:                                              ; preds = %902
  br label %904

904:                                              ; preds = %903
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #9
  br label %905

905:                                              ; preds = %904, %652
  %906 = load i32, ptr %19, align 4, !tbaa !5
  %907 = add i32 %906, 1
  store i32 %907, ptr %19, align 4, !tbaa !5
  br label %645, !llvm.loop !43

908:                                              ; preds = %648
  %909 = getelementptr inbounds %struct.s2n_connection, ptr %13, i32 0, i32 52
  %910 = getelementptr inbounds %struct.s2n_handshake, ptr %909, i32 0, i32 1
  %911 = call i32 @s2n_handshake_hashes_free(ptr noundef %910)
  %912 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  store i32 %911, ptr %912, align 4
  call void @llvm.lifetime.end.p0(i64 100, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 4184, ptr %13) #9
  br label %913

913:                                              ; preds = %908
  br label %914

914:                                              ; preds = %913
  br label %915

915:                                              ; preds = %914
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = add nsw i32 %916, 1
  store i32 %917, ptr @test_count, align 4, !tbaa !5
  %918 = call i32 @s2n_handshake_hashes_wipe(ptr noundef null)
  %919 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  store i32 %918, ptr %919, align 4
  %920 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  %921 = load i32, ptr %920, align 4
  %922 = call zeroext i1 @s2n_result_is_error(i32 %921)
  br i1 %922, label %974, label %923

923:                                              ; preds = %915
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %926 = call ptr @__errno_location() #10
  %927 = load i32, ptr %926, align 4, !tbaa !5
  store i32 %927, ptr %28, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = call i32 @s2n_print_stacktrace(ptr noundef %928)
  %930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %931 = trunc i8 %930 to i1
  br i1 %931, label %932, label %954

932:                                              ; preds = %925
  %933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %934 = call i32 @fileno(ptr noundef %933) #9
  %935 = call i32 @isatty(i32 noundef %934) #9
  %936 = icmp ne i32 %935, 0
  br i1 %936, label %937, label %954

937:                                              ; preds = %932
  %938 = load i32, ptr %28, align 4, !tbaa !5
  %939 = call ptr @__errno_location() #10
  store i32 %938, ptr %939, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %943 = load i32, ptr %942, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef @.str.20)
  %945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror_debug(i32 noundef %946, ptr noundef @.str.20)
  %948 = call ptr @__errno_location() #10
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call ptr @strerror(i32 noundef %949) #9
  %951 = call ptr @__errno_location() #10
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef @.str.18, i32 noundef %941, ptr noundef @.str.34, ptr noundef @.str.17, i32 noundef 67, ptr noundef %944, ptr noundef %947, ptr noundef %950, i32 noundef %952) #9
  br label %971

954:                                              ; preds = %932, %925
  %955 = load i32, ptr %28, align 4, !tbaa !5
  %956 = call ptr @__errno_location() #10
  store i32 %955, ptr %956, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef @.str.20)
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror_debug(i32 noundef %963, ptr noundef @.str.20)
  %965 = call ptr @__errno_location() #10
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @strerror(i32 noundef %966) #9
  %968 = call ptr @__errno_location() #10
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %957, ptr noundef @.str.21, i32 noundef %958, ptr noundef @.str.34, ptr noundef @.str.17, i32 noundef 67, ptr noundef %961, ptr noundef %964, ptr noundef %967, i32 noundef %969) #9
  br label %971

971:                                              ; preds = %954, %937
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %972

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

973:                                              ; No predecessors!
  br label %974

974:                                              ; preds = %973, %915
  br label %975

975:                                              ; preds = %974
  br label %976

976:                                              ; preds = %975
  %977 = load i32, ptr @test_count, align 4, !tbaa !5
  %978 = add nsw i32 %977, 1
  store i32 %978, ptr @test_count, align 4, !tbaa !5
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = icmp eq i32 %980, 402653193
  br i1 %981, label %1033, label %982

982:                                              ; preds = %976
  br label %983

983:                                              ; preds = %982
  br label %984

984:                                              ; preds = %983
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %985 = call ptr @__errno_location() #10
  %986 = load i32, ptr %985, align 4, !tbaa !5
  store i32 %986, ptr %29, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @s2n_print_stacktrace(ptr noundef %987)
  %989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %990 = trunc i8 %989 to i1
  br i1 %990, label %991, label %1013

991:                                              ; preds = %984
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = call i32 @fileno(ptr noundef %992) #9
  %994 = call i32 @isatty(i32 noundef %993) #9
  %995 = icmp ne i32 %994, 0
  br i1 %995, label %996, label %1013

996:                                              ; preds = %991
  %997 = load i32, ptr %29, align 4, !tbaa !5
  %998 = call ptr @__errno_location() #10
  store i32 %997, ptr %998, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef @.str.20)
  %1004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror_debug(i32 noundef %1005, ptr noundef @.str.20)
  %1007 = call ptr @__errno_location() #10
  %1008 = load i32, ptr %1007, align 4, !tbaa !5
  %1009 = call ptr @strerror(i32 noundef %1008) #9
  %1010 = call ptr @__errno_location() #10
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef @.str.18, i32 noundef %1000, ptr noundef @.str.25, ptr noundef @.str.17, i32 noundef 67, ptr noundef %1003, ptr noundef %1006, ptr noundef %1009, i32 noundef %1011) #9
  br label %1030

1013:                                             ; preds = %991, %984
  %1014 = load i32, ptr %29, align 4, !tbaa !5
  %1015 = call ptr @__errno_location() #10
  store i32 %1014, ptr %1015, align 4, !tbaa !5
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = load i32, ptr @test_count, align 4, !tbaa !5
  %1018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call ptr @s2n_strerror(i32 noundef %1019, ptr noundef @.str.20)
  %1021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1022 = load i32, ptr %1021, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror_debug(i32 noundef %1022, ptr noundef @.str.20)
  %1024 = call ptr @__errno_location() #10
  %1025 = load i32, ptr %1024, align 4, !tbaa !5
  %1026 = call ptr @strerror(i32 noundef %1025) #9
  %1027 = call ptr @__errno_location() #10
  %1028 = load i32, ptr %1027, align 4, !tbaa !5
  %1029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1016, ptr noundef @.str.21, i32 noundef %1017, ptr noundef @.str.25, ptr noundef @.str.17, i32 noundef 67, ptr noundef %1020, ptr noundef %1023, ptr noundef %1026, i32 noundef %1028) #9
  br label %1030

1030:                                             ; preds = %1013, %996
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1031

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

1032:                                             ; No predecessors!
  br label %1033

1033:                                             ; preds = %1032, %976
  br label %1034

1034:                                             ; preds = %1033
  br label %1035

1035:                                             ; preds = %1034
  %1036 = load i32, ptr @test_count, align 4, !tbaa !5
  %1037 = add nsw i32 %1036, 1
  store i32 %1037, ptr @test_count, align 4, !tbaa !5
  %1038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror_debug(i32 noundef %1039, ptr noundef @.str.20)
  %1041 = icmp eq ptr %1040, null
  br i1 %1041, label %1042, label %1093

1042:                                             ; preds = %1035
  br label %1043

1043:                                             ; preds = %1042
  br label %1044

1044:                                             ; preds = %1043
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %1045 = call ptr @__errno_location() #10
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  store i32 %1046, ptr %30, align 4, !tbaa !5
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = call i32 @s2n_print_stacktrace(ptr noundef %1047)
  %1049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1050 = trunc i8 %1049 to i1
  br i1 %1050, label %1051, label %1073

1051:                                             ; preds = %1044
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @fileno(ptr noundef %1052) #9
  %1054 = call i32 @isatty(i32 noundef %1053) #9
  %1055 = icmp ne i32 %1054, 0
  br i1 %1055, label %1056, label %1073

1056:                                             ; preds = %1051
  %1057 = load i32, ptr %30, align 4, !tbaa !5
  %1058 = call ptr @__errno_location() #10
  store i32 %1057, ptr %1058, align 4, !tbaa !5
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @s2n_strerror(i32 noundef %1062, ptr noundef @.str.20)
  %1064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror_debug(i32 noundef %1065, ptr noundef @.str.20)
  %1067 = call ptr @__errno_location() #10
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @strerror(i32 noundef %1068) #9
  %1070 = call ptr @__errno_location() #10
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1059, ptr noundef @.str.18, i32 noundef %1060, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 67, ptr noundef %1063, ptr noundef %1066, ptr noundef %1069, i32 noundef %1071) #9
  br label %1090

1073:                                             ; preds = %1051, %1044
  %1074 = load i32, ptr %30, align 4, !tbaa !5
  %1075 = call ptr @__errno_location() #10
  store i32 %1074, ptr %1075, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = load i32, ptr @test_count, align 4, !tbaa !5
  %1078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror(i32 noundef %1079, ptr noundef @.str.20)
  %1081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef @.str.20)
  %1084 = call ptr @__errno_location() #10
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call ptr @strerror(i32 noundef %1085) #9
  %1087 = call ptr @__errno_location() #10
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1076, ptr noundef @.str.21, i32 noundef %1077, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 67, ptr noundef %1080, ptr noundef %1083, ptr noundef %1086, i32 noundef %1088) #9
  br label %1090

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

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

1092:                                             ; No predecessors!
  br label %1093

1093:                                             ; preds = %1092, %1035
  br label %1094

1094:                                             ; preds = %1093
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095
  %1097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1097, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1098 = call ptr @__errno_location() #10
  store i32 0, ptr %1098, align 4, !tbaa !5
  br label %1099

1099:                                             ; preds = %1096
  br label %1100

1100:                                             ; preds = %1099
  call void @llvm.lifetime.start.p0(i64 4184, ptr %31) #9
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 4184, i1 false)
  br label %1101

1101:                                             ; preds = %1100
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = add nsw i32 %1102, 1
  store i32 %1103, ptr @test_count, align 4, !tbaa !5
  %1104 = getelementptr inbounds %struct.s2n_connection, ptr %31, i32 0, i32 52
  %1105 = getelementptr inbounds %struct.s2n_handshake, ptr %1104, i32 0, i32 1
  %1106 = call i32 @s2n_handshake_hashes_new(ptr noundef %1105)
  %1107 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %1106, ptr %1107, align 4
  %1108 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %1109 = load i32, ptr %1108, align 4
  %1110 = call zeroext i1 @s2n_result_is_ok(i32 %1109)
  br i1 %1110, label %1164, label %1111

1111:                                             ; preds = %1101
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1114 = call ptr @__errno_location() #10
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  store i32 %1115, ptr %33, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = call i32 @s2n_print_stacktrace(ptr noundef %1116)
  %1118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1119 = trunc i8 %1118 to i1
  br i1 %1119, label %1120, label %1142

1120:                                             ; preds = %1113
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = call i32 @fileno(ptr noundef %1121) #9
  %1123 = call i32 @isatty(i32 noundef %1122) #9
  %1124 = icmp ne i32 %1123, 0
  br i1 %1124, label %1125, label %1142

1125:                                             ; preds = %1120
  %1126 = load i32, ptr %33, align 4, !tbaa !5
  %1127 = call ptr @__errno_location() #10
  store i32 %1126, ptr %1127, align 4, !tbaa !5
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = load i32, ptr @test_count, align 4, !tbaa !5
  %1130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror(i32 noundef %1131, ptr noundef @.str.20)
  %1133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call ptr @s2n_strerror_debug(i32 noundef %1134, ptr noundef @.str.20)
  %1136 = call ptr @__errno_location() #10
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #9
  %1139 = call ptr @__errno_location() #10
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1128, ptr noundef @.str.18, i32 noundef %1129, ptr noundef @.str.28, ptr noundef @.str.17, i32 noundef 72, ptr noundef %1132, ptr noundef %1135, ptr noundef %1138, i32 noundef %1140) #9
  br label %1159

1142:                                             ; preds = %1120, %1113
  %1143 = load i32, ptr %33, align 4, !tbaa !5
  %1144 = call ptr @__errno_location() #10
  store i32 %1143, ptr %1144, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror(i32 noundef %1148, ptr noundef @.str.20)
  %1150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror_debug(i32 noundef %1151, ptr noundef @.str.20)
  %1153 = call ptr @__errno_location() #10
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @strerror(i32 noundef %1154) #9
  %1156 = call ptr @__errno_location() #10
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1145, ptr noundef @.str.21, i32 noundef %1146, ptr noundef @.str.28, ptr noundef @.str.17, i32 noundef 72, ptr noundef %1149, ptr noundef %1152, ptr noundef %1155, i32 noundef %1157) #9
  br label %1159

1159:                                             ; preds = %1142, %1125
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

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

1162:                                             ; No predecessors!
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

1164:                                             ; preds = %1163, %1101
  br label %1165

1165:                                             ; preds = %1164
  br label %1166

1166:                                             ; preds = %1165
  br label %1167

1167:                                             ; preds = %1166
  %1168 = load i32, ptr @test_count, align 4, !tbaa !5
  %1169 = add nsw i32 %1168, 1
  store i32 %1169, ptr @test_count, align 4, !tbaa !5
  %1170 = getelementptr inbounds %struct.s2n_connection, ptr %31, i32 0, i32 52
  %1171 = getelementptr inbounds %struct.s2n_handshake, ptr %1170, i32 0, i32 1
  %1172 = load ptr, ptr %1171, align 8, !tbaa !15
  %1173 = icmp eq ptr %1172, null
  br i1 %1173, label %1174, label %1227

1174:                                             ; preds = %1167
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1177 = call ptr @__errno_location() #10
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  store i32 %1178, ptr %34, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = call i32 @s2n_print_stacktrace(ptr noundef %1179)
  %1181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1182 = trunc i8 %1181 to i1
  br i1 %1182, label %1183, label %1205

1183:                                             ; preds = %1176
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @fileno(ptr noundef %1184) #9
  %1186 = call i32 @isatty(i32 noundef %1185) #9
  %1187 = icmp ne i32 %1186, 0
  br i1 %1187, label %1188, label %1205

1188:                                             ; preds = %1183
  %1189 = load i32, ptr %34, align 4, !tbaa !5
  %1190 = call ptr @__errno_location() #10
  store i32 %1189, ptr %1190, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror(i32 noundef %1194, ptr noundef @.str.20)
  %1196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror_debug(i32 noundef %1197, ptr noundef @.str.20)
  %1199 = call ptr @__errno_location() #10
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call ptr @strerror(i32 noundef %1200) #9
  %1202 = call ptr @__errno_location() #10
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef @.str.18, i32 noundef %1192, ptr noundef @.str.29, ptr noundef @.str.17, i32 noundef 73, ptr noundef %1195, ptr noundef %1198, ptr noundef %1201, i32 noundef %1203) #9
  br label %1222

1205:                                             ; preds = %1183, %1176
  %1206 = load i32, ptr %34, align 4, !tbaa !5
  %1207 = call ptr @__errno_location() #10
  store i32 %1206, ptr %1207, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror(i32 noundef %1211, ptr noundef @.str.20)
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror_debug(i32 noundef %1214, ptr noundef @.str.20)
  %1216 = call ptr @__errno_location() #10
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @strerror(i32 noundef %1217) #9
  %1219 = call ptr @__errno_location() #10
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1208, ptr noundef @.str.21, i32 noundef %1209, ptr noundef @.str.29, ptr noundef @.str.17, i32 noundef 73, ptr noundef %1212, ptr noundef %1215, ptr noundef %1218, i32 noundef %1220) #9
  br label %1222

1222:                                             ; preds = %1205, %1188
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1223

1223:                                             ; preds = %1222
  br label %1224

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

1225:                                             ; No predecessors!
  br label %1226

1226:                                             ; preds = %1225
  br label %1227

1227:                                             ; preds = %1226, %1167
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228
  call void @llvm.lifetime.start.p0(i64 100, ptr %35) #9
  call void @llvm.memset.p0.i64(ptr align 16 %35, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !5
  br label %1230

1230:                                             ; preds = %1823, %1229
  %1231 = load i32, ptr %36, align 4, !tbaa !5
  %1232 = icmp ult i32 %1231, 8
  br i1 %1232, label %1234, label %1233

1233:                                             ; preds = %1230
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1826

1234:                                             ; preds = %1230
  %1235 = load i32, ptr %36, align 4, !tbaa !5
  %1236 = icmp eq i32 %1235, 0
  br i1 %1236, label %1237, label %1238

1237:                                             ; preds = %1234
  br label %1823

1238:                                             ; preds = %1234
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #9
  store i8 0, ptr %37, align 1, !tbaa !42
  br label %1239

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

1245:                                             ; preds = %1239
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

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

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

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

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

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

1294:                                             ; preds = %1293
  br label %1295

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

1296:                                             ; No predecessors!
  br label %1297

1297:                                             ; preds = %1296
  br label %1298

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

1299:                                             ; preds = %1298
  br label %1300

1300:                                             ; preds = %1299
  br label %1301

1301:                                             ; preds = %1300
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = add nsw i32 %1302, 1
  store i32 %1303, ptr @test_count, align 4, !tbaa !5
  %1304 = load i8, ptr %37, align 1, !tbaa !42
  %1305 = zext i8 %1304 to i64
  %1306 = icmp ult i64 %1305, 100
  br i1 %1306, label %1360, label %1307

1307:                                             ; preds = %1301
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

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

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

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

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

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

1356:                                             ; preds = %1355
  br label %1357

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

1358:                                             ; No predecessors!
  br label %1359

1359:                                             ; preds = %1358
  br label %1360

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

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  store ptr null, ptr %40, align 8, !tbaa !9
  br label %1363

1363:                                             ; preds = %1362
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = add nsw i32 %1364, 1
  store i32 %1365, ptr @test_count, align 4, !tbaa !5
  %1366 = load i32, ptr %36, align 4, !tbaa !5
  %1367 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef %31, i32 noundef %1366, ptr noundef %40)
  %1368 = icmp eq i32 %1367, -1
  br i1 %1368, label %1369, label %1422

1369:                                             ; preds = %1363
  br label %1370

1370:                                             ; preds = %1369
  br label %1371

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

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

1383:                                             ; preds = %1378
  %1384 = load i32, ptr %41, align 4, !tbaa !5
  %1385 = call ptr @__errno_location() #10
  store i32 %1384, ptr %1385, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = load i32, ptr @test_count, align 4, !tbaa !5
  %1388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @s2n_strerror(i32 noundef %1389, ptr noundef @.str.20)
  %1391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call ptr @s2n_strerror_debug(i32 noundef %1392, ptr noundef @.str.20)
  %1394 = call ptr @__errno_location() #10
  %1395 = load i32, ptr %1394, align 4, !tbaa !5
  %1396 = call ptr @strerror(i32 noundef %1395) #9
  %1397 = call ptr @__errno_location() #10
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1386, ptr noundef @.str.18, i32 noundef %1387, ptr noundef @.str.32, ptr noundef @.str.17, i32 noundef 87, ptr noundef %1390, ptr noundef %1393, ptr noundef %1396, i32 noundef %1398) #9
  br label %1417

1400:                                             ; preds = %1378, %1371
  %1401 = load i32, ptr %41, align 4, !tbaa !5
  %1402 = call ptr @__errno_location() #10
  store i32 %1401, ptr %1402, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = load i32, ptr @test_count, align 4, !tbaa !5
  %1405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror(i32 noundef %1406, ptr noundef @.str.20)
  %1408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = call ptr @s2n_strerror_debug(i32 noundef %1409, ptr noundef @.str.20)
  %1411 = call ptr @__errno_location() #10
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = call ptr @strerror(i32 noundef %1412) #9
  %1414 = call ptr @__errno_location() #10
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1403, ptr noundef @.str.21, i32 noundef %1404, ptr noundef @.str.32, ptr noundef @.str.17, i32 noundef 87, ptr noundef %1407, ptr noundef %1410, ptr noundef %1413, i32 noundef %1415) #9
  br label %1417

1417:                                             ; preds = %1400, %1383
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

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

1420:                                             ; No predecessors!
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421, %1363
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1423
  br label %1425

1425:                                             ; preds = %1424
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = add nsw i32 %1426, 1
  store i32 %1427, ptr @test_count, align 4, !tbaa !5
  %1428 = load ptr, ptr %40, align 8, !tbaa !9
  %1429 = getelementptr inbounds [100 x i8], ptr %35, i64 0, i64 0
  %1430 = load i8, ptr %37, align 1, !tbaa !42
  %1431 = zext i8 %1430 to i32
  %1432 = call i32 @s2n_hash_digest(ptr noundef %1428, ptr noundef %1429, i32 noundef %1431)
  %1433 = icmp eq i32 %1432, -1
  br i1 %1433, label %1434, label %1487

1434:                                             ; preds = %1425
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

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

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

1448:                                             ; preds = %1443
  %1449 = load i32, ptr %42, align 4, !tbaa !5
  %1450 = call ptr @__errno_location() #10
  store i32 %1449, ptr %1450, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror(i32 noundef %1454, ptr noundef @.str.20)
  %1456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @s2n_strerror_debug(i32 noundef %1457, ptr noundef @.str.20)
  %1459 = call ptr @__errno_location() #10
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call ptr @strerror(i32 noundef %1460) #9
  %1462 = call ptr @__errno_location() #10
  %1463 = load i32, ptr %1462, align 4, !tbaa !5
  %1464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1451, ptr noundef @.str.18, i32 noundef %1452, ptr noundef @.str.33, ptr noundef @.str.17, i32 noundef 88, ptr noundef %1455, ptr noundef %1458, ptr noundef %1461, i32 noundef %1463) #9
  br label %1482

1465:                                             ; preds = %1443, %1436
  %1466 = load i32, ptr %42, align 4, !tbaa !5
  %1467 = call ptr @__errno_location() #10
  store i32 %1466, ptr %1467, align 4, !tbaa !5
  %1468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1469 = load i32, ptr @test_count, align 4, !tbaa !5
  %1470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror(i32 noundef %1471, ptr noundef @.str.20)
  %1473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @s2n_strerror_debug(i32 noundef %1474, ptr noundef @.str.20)
  %1476 = call ptr @__errno_location() #10
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @strerror(i32 noundef %1477) #9
  %1479 = call ptr @__errno_location() #10
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1468, ptr noundef @.str.21, i32 noundef %1469, ptr noundef @.str.33, ptr noundef @.str.17, i32 noundef 88, ptr noundef %1472, ptr noundef %1475, ptr noundef %1478, i32 noundef %1480) #9
  br label %1482

1482:                                             ; preds = %1465, %1448
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1483

1483:                                             ; preds = %1482
  br label %1484

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

1485:                                             ; No predecessors!
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

1487:                                             ; preds = %1486, %1425
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491
  %1493 = load i32, ptr @test_count, align 4, !tbaa !5
  %1494 = add nsw i32 %1493, 1
  store i32 %1494, ptr @test_count, align 4, !tbaa !5
  %1495 = load ptr, ptr %40, align 8, !tbaa !9
  %1496 = getelementptr inbounds [100 x i8], ptr %35, i64 0, i64 0
  %1497 = load i8, ptr %37, align 1, !tbaa !42
  %1498 = zext i8 %1497 to i32
  %1499 = call i32 @s2n_hash_digest(ptr noundef %1495, ptr noundef %1496, i32 noundef %1498)
  %1500 = icmp eq i32 %1499, -1
  br i1 %1500, label %1554, label %1501

1501:                                             ; preds = %1492
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

1503:                                             ; preds = %1502
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1504 = call ptr @__errno_location() #10
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  store i32 %1505, ptr %43, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @s2n_print_stacktrace(ptr noundef %1506)
  %1508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1509 = trunc i8 %1508 to i1
  br i1 %1509, label %1510, label %1532

1510:                                             ; preds = %1503
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @fileno(ptr noundef %1511) #9
  %1513 = call i32 @isatty(i32 noundef %1512) #9
  %1514 = icmp ne i32 %1513, 0
  br i1 %1514, label %1515, label %1532

1515:                                             ; preds = %1510
  %1516 = load i32, ptr %43, align 4, !tbaa !5
  %1517 = call ptr @__errno_location() #10
  store i32 %1516, ptr %1517, align 4, !tbaa !5
  %1518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1519 = load i32, ptr @test_count, align 4, !tbaa !5
  %1520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1521 = load i32, ptr %1520, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror(i32 noundef %1521, ptr noundef @.str.20)
  %1523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror_debug(i32 noundef %1524, ptr noundef @.str.20)
  %1526 = call ptr @__errno_location() #10
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = call ptr @strerror(i32 noundef %1527) #9
  %1529 = call ptr @__errno_location() #10
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1518, ptr noundef @.str.18, i32 noundef %1519, ptr noundef @.str.35, ptr noundef @.str.17, i32 noundef 91, ptr noundef %1522, ptr noundef %1525, ptr noundef %1528, i32 noundef %1530) #9
  br label %1549

1532:                                             ; preds = %1510, %1503
  %1533 = load i32, ptr %43, align 4, !tbaa !5
  %1534 = call ptr @__errno_location() #10
  store i32 %1533, ptr %1534, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = load i32, ptr @test_count, align 4, !tbaa !5
  %1537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call ptr @s2n_strerror(i32 noundef %1538, ptr noundef @.str.20)
  %1540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror_debug(i32 noundef %1541, ptr noundef @.str.20)
  %1543 = call ptr @__errno_location() #10
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call ptr @strerror(i32 noundef %1544) #9
  %1546 = call ptr @__errno_location() #10
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1535, ptr noundef @.str.21, i32 noundef %1536, ptr noundef @.str.35, ptr noundef @.str.17, i32 noundef 91, ptr noundef %1539, ptr noundef %1542, ptr noundef %1545, i32 noundef %1547) #9
  br label %1549

1549:                                             ; preds = %1532, %1515
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %1550

1550:                                             ; preds = %1549
  br label %1551

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

1552:                                             ; No predecessors!
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553, %1492
  br label %1555

1555:                                             ; preds = %1554
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556
  %1558 = load i32, ptr @test_count, align 4, !tbaa !5
  %1559 = add nsw i32 %1558, 1
  store i32 %1559, ptr @test_count, align 4, !tbaa !5
  %1560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = icmp eq i32 %1561, 335544342
  br i1 %1562, label %1616, label %1563

1563:                                             ; preds = %1557
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %1566 = call ptr @__errno_location() #10
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  store i32 %1567, ptr %44, align 4, !tbaa !5
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = call i32 @s2n_print_stacktrace(ptr noundef %1568)
  %1570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1571 = trunc i8 %1570 to i1
  br i1 %1571, label %1572, label %1594

1572:                                             ; preds = %1565
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = call i32 @fileno(ptr noundef %1573) #9
  %1575 = call i32 @isatty(i32 noundef %1574) #9
  %1576 = icmp ne i32 %1575, 0
  br i1 %1576, label %1577, label %1594

1577:                                             ; preds = %1572
  %1578 = load i32, ptr %44, align 4, !tbaa !5
  %1579 = call ptr @__errno_location() #10
  store i32 %1578, ptr %1579, align 4, !tbaa !5
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = load i32, ptr @test_count, align 4, !tbaa !5
  %1582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call ptr @s2n_strerror(i32 noundef %1583, ptr noundef @.str.20)
  %1585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call ptr @s2n_strerror_debug(i32 noundef %1586, ptr noundef @.str.20)
  %1588 = call ptr @__errno_location() #10
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @strerror(i32 noundef %1589) #9
  %1591 = call ptr @__errno_location() #10
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1580, ptr noundef @.str.18, i32 noundef %1581, ptr noundef @.str.36, ptr noundef @.str.17, i32 noundef 91, ptr noundef %1584, ptr noundef %1587, ptr noundef %1590, i32 noundef %1592) #9
  br label %1611

1594:                                             ; preds = %1572, %1565
  %1595 = load i32, ptr %44, align 4, !tbaa !5
  %1596 = call ptr @__errno_location() #10
  store i32 %1595, ptr %1596, align 4, !tbaa !5
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef @.str.20)
  %1602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror_debug(i32 noundef %1603, ptr noundef @.str.20)
  %1605 = call ptr @__errno_location() #10
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @strerror(i32 noundef %1606) #9
  %1608 = call ptr @__errno_location() #10
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1597, ptr noundef @.str.21, i32 noundef %1598, ptr noundef @.str.36, ptr noundef @.str.17, i32 noundef 91, ptr noundef %1601, ptr noundef %1604, ptr noundef %1607, i32 noundef %1609) #9
  br label %1611

1611:                                             ; preds = %1594, %1577
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1612

1612:                                             ; preds = %1611
  br label %1613

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

1614:                                             ; No predecessors!
  br label %1615

1615:                                             ; preds = %1614
  br label %1616

1616:                                             ; preds = %1615, %1557
  br label %1617

1617:                                             ; preds = %1616
  br label %1618

1618:                                             ; preds = %1617
  br label %1619

1619:                                             ; preds = %1618
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = add nsw i32 %1620, 1
  store i32 %1621, ptr @test_count, align 4, !tbaa !5
  %1622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror_debug(i32 noundef %1623, ptr noundef @.str.20)
  %1625 = icmp eq ptr %1624, null
  br i1 %1625, label %1626, label %1679

1626:                                             ; preds = %1619
  br label %1627

1627:                                             ; preds = %1626
  br label %1628

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

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

1640:                                             ; preds = %1635
  %1641 = load i32, ptr %45, align 4, !tbaa !5
  %1642 = call ptr @__errno_location() #10
  store i32 %1641, ptr %1642, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = load i32, ptr @test_count, align 4, !tbaa !5
  %1645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call ptr @s2n_strerror(i32 noundef %1646, ptr noundef @.str.20)
  %1648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror_debug(i32 noundef %1649, ptr noundef @.str.20)
  %1651 = call ptr @__errno_location() #10
  %1652 = load i32, ptr %1651, align 4, !tbaa !5
  %1653 = call ptr @strerror(i32 noundef %1652) #9
  %1654 = call ptr @__errno_location() #10
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1643, ptr noundef @.str.18, i32 noundef %1644, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 91, ptr noundef %1647, ptr noundef %1650, ptr noundef %1653, i32 noundef %1655) #9
  br label %1674

1657:                                             ; preds = %1635, %1628
  %1658 = load i32, ptr %45, align 4, !tbaa !5
  %1659 = call ptr @__errno_location() #10
  store i32 %1658, ptr %1659, align 4, !tbaa !5
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = call ptr @s2n_strerror(i32 noundef %1663, ptr noundef @.str.20)
  %1665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1666 = load i32, ptr %1665, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror_debug(i32 noundef %1666, ptr noundef @.str.20)
  %1668 = call ptr @__errno_location() #10
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = call ptr @strerror(i32 noundef %1669) #9
  %1671 = call ptr @__errno_location() #10
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1660, ptr noundef @.str.21, i32 noundef %1661, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 91, ptr noundef %1664, ptr noundef %1667, ptr noundef %1670, i32 noundef %1672) #9
  br label %1674

1674:                                             ; preds = %1657, %1640
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %1675

1675:                                             ; preds = %1674
  br label %1676

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

1677:                                             ; No predecessors!
  br label %1678

1678:                                             ; preds = %1677
  br label %1679

1679:                                             ; preds = %1678, %1619
  br label %1680

1680:                                             ; preds = %1679
  br label %1681

1681:                                             ; preds = %1680
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  br label %1684

1684:                                             ; preds = %1683
  %1685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1685, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1686 = call ptr @__errno_location() #10
  store i32 0, ptr %1686, align 4, !tbaa !5
  br label %1687

1687:                                             ; preds = %1684
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

1689:                                             ; preds = %1688
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = add nsw i32 %1692, 1
  store i32 %1693, ptr @test_count, align 4, !tbaa !5
  %1694 = getelementptr inbounds %struct.s2n_connection, ptr %31, i32 0, i32 52
  %1695 = getelementptr inbounds %struct.s2n_handshake, ptr %1694, i32 0, i32 1
  %1696 = load ptr, ptr %1695, align 8, !tbaa !15
  %1697 = call i32 @s2n_handshake_hashes_wipe(ptr noundef %1696)
  %1698 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  store i32 %1697, ptr %1698, align 4
  %1699 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  %1700 = load i32, ptr %1699, align 4
  %1701 = call zeroext i1 @s2n_result_is_ok(i32 %1700)
  br i1 %1701, label %1755, label %1702

1702:                                             ; preds = %1691
  br label %1703

1703:                                             ; preds = %1702
  br label %1704

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

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

1716:                                             ; preds = %1711
  %1717 = load i32, ptr %47, align 4, !tbaa !5
  %1718 = call ptr @__errno_location() #10
  store i32 %1717, ptr %1718, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror(i32 noundef %1722, ptr noundef @.str.20)
  %1724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call ptr @s2n_strerror_debug(i32 noundef %1725, ptr noundef @.str.20)
  %1727 = call ptr @__errno_location() #10
  %1728 = load i32, ptr %1727, align 4, !tbaa !5
  %1729 = call ptr @strerror(i32 noundef %1728) #9
  %1730 = call ptr @__errno_location() #10
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  %1732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1719, ptr noundef @.str.18, i32 noundef %1720, ptr noundef @.str.37, ptr noundef @.str.17, i32 noundef 94, ptr noundef %1723, ptr noundef %1726, ptr noundef %1729, i32 noundef %1731) #9
  br label %1750

1733:                                             ; preds = %1711, %1704
  %1734 = load i32, ptr %47, align 4, !tbaa !5
  %1735 = call ptr @__errno_location() #10
  store i32 %1734, ptr %1735, align 4, !tbaa !5
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror(i32 noundef %1739, ptr noundef @.str.20)
  %1741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror_debug(i32 noundef %1742, ptr noundef @.str.20)
  %1744 = call ptr @__errno_location() #10
  %1745 = load i32, ptr %1744, align 4, !tbaa !5
  %1746 = call ptr @strerror(i32 noundef %1745) #9
  %1747 = call ptr @__errno_location() #10
  %1748 = load i32, ptr %1747, align 4, !tbaa !5
  %1749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1736, ptr noundef @.str.21, i32 noundef %1737, ptr noundef @.str.37, ptr noundef @.str.17, i32 noundef 94, ptr noundef %1740, ptr noundef %1743, ptr noundef %1746, i32 noundef %1748) #9
  br label %1750

1750:                                             ; preds = %1733, %1716
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

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

1753:                                             ; No predecessors!
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

1755:                                             ; preds = %1754, %1691
  br label %1756

1756:                                             ; preds = %1755
  br label %1757

1757:                                             ; preds = %1756
  br label %1758

1758:                                             ; preds = %1757
  %1759 = load i32, ptr @test_count, align 4, !tbaa !5
  %1760 = add nsw i32 %1759, 1
  store i32 %1760, ptr @test_count, align 4, !tbaa !5
  %1761 = load ptr, ptr %40, align 8, !tbaa !9
  %1762 = getelementptr inbounds [100 x i8], ptr %35, i64 0, i64 0
  %1763 = load i8, ptr %37, align 1, !tbaa !42
  %1764 = zext i8 %1763 to i32
  %1765 = call i32 @s2n_hash_digest(ptr noundef %1761, ptr noundef %1762, i32 noundef %1764)
  %1766 = icmp eq i32 %1765, -1
  br i1 %1766, label %1767, label %1820

1767:                                             ; preds = %1758
  br label %1768

1768:                                             ; preds = %1767
  br label %1769

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

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

1781:                                             ; preds = %1776
  %1782 = load i32, ptr %48, align 4, !tbaa !5
  %1783 = call ptr @__errno_location() #10
  store i32 %1782, ptr %1783, align 4, !tbaa !5
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = load i32, ptr @test_count, align 4, !tbaa !5
  %1786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror(i32 noundef %1787, ptr noundef @.str.20)
  %1789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror_debug(i32 noundef %1790, ptr noundef @.str.20)
  %1792 = call ptr @__errno_location() #10
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @strerror(i32 noundef %1793) #9
  %1795 = call ptr @__errno_location() #10
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1784, ptr noundef @.str.18, i32 noundef %1785, ptr noundef @.str.33, ptr noundef @.str.17, i32 noundef 95, ptr noundef %1788, ptr noundef %1791, ptr noundef %1794, i32 noundef %1796) #9
  br label %1815

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

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

1816:                                             ; preds = %1815
  br label %1817

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

1818:                                             ; No predecessors!
  br label %1819

1819:                                             ; preds = %1818
  br label %1820

1820:                                             ; preds = %1819, %1758
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #9
  br label %1823

1823:                                             ; preds = %1822, %1237
  %1824 = load i32, ptr %36, align 4, !tbaa !5
  %1825 = add i32 %1824, 1
  store i32 %1825, ptr %36, align 4, !tbaa !5
  br label %1230, !llvm.loop !45

1826:                                             ; preds = %1233
  %1827 = getelementptr inbounds %struct.s2n_connection, ptr %31, i32 0, i32 52
  %1828 = getelementptr inbounds %struct.s2n_handshake, ptr %1827, i32 0, i32 1
  %1829 = call i32 @s2n_handshake_hashes_free(ptr noundef %1828)
  %1830 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  store i32 %1829, ptr %1830, align 4
  call void @llvm.lifetime.end.p0(i64 100, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 4184, ptr %31) #9
  br label %1831

1831:                                             ; preds = %1826
  br label %1832

1832:                                             ; preds = %1831
  br label %1833

1833:                                             ; preds = %1832
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = add nsw i32 %1834, 1
  store i32 %1835, ptr @test_count, align 4, !tbaa !5
  %1836 = call i32 @s2n_handshake_hashes_free(ptr noundef null)
  %1837 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %1836, ptr %1837, align 4
  %1838 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  %1839 = load i32, ptr %1838, align 4
  %1840 = call zeroext i1 @s2n_result_is_error(i32 %1839)
  br i1 %1840, label %1892, label %1841

1841:                                             ; preds = %1833
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

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

1850:                                             ; preds = %1843
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = call i32 @fileno(ptr noundef %1851) #9
  %1853 = call i32 @isatty(i32 noundef %1852) #9
  %1854 = icmp ne i32 %1853, 0
  br i1 %1854, label %1855, label %1872

1855:                                             ; preds = %1850
  %1856 = load i32, ptr %51, align 4, !tbaa !5
  %1857 = call ptr @__errno_location() #10
  store i32 %1856, ptr %1857, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef @.str.20)
  %1863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror_debug(i32 noundef %1864, ptr noundef @.str.20)
  %1866 = call ptr @__errno_location() #10
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @strerror(i32 noundef %1867) #9
  %1869 = call ptr @__errno_location() #10
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef @.str.18, i32 noundef %1859, ptr noundef @.str.38, ptr noundef @.str.17, i32 noundef 105, ptr noundef %1862, ptr noundef %1865, ptr noundef %1868, i32 noundef %1870) #9
  br label %1889

1872:                                             ; preds = %1850, %1843
  %1873 = load i32, ptr %51, align 4, !tbaa !5
  %1874 = call ptr @__errno_location() #10
  store i32 %1873, ptr %1874, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror(i32 noundef %1878, ptr noundef @.str.20)
  %1880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror_debug(i32 noundef %1881, ptr noundef @.str.20)
  %1883 = call ptr @__errno_location() #10
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = call ptr @strerror(i32 noundef %1884) #9
  %1886 = call ptr @__errno_location() #10
  %1887 = load i32, ptr %1886, align 4, !tbaa !5
  %1888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1875, ptr noundef @.str.21, i32 noundef %1876, ptr noundef @.str.38, ptr noundef @.str.17, i32 noundef 105, ptr noundef %1879, ptr noundef %1882, ptr noundef %1885, i32 noundef %1887) #9
  br label %1889

1889:                                             ; preds = %1872, %1855
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %1890

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

1891:                                             ; No predecessors!
  br label %1892

1892:                                             ; preds = %1891, %1833
  br label %1893

1893:                                             ; preds = %1892
  br label %1894

1894:                                             ; preds = %1893
  %1895 = load i32, ptr @test_count, align 4, !tbaa !5
  %1896 = add nsw i32 %1895, 1
  store i32 %1896, ptr @test_count, align 4, !tbaa !5
  %1897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = icmp eq i32 %1898, 402653193
  br i1 %1899, label %1951, label %1900

1900:                                             ; preds = %1894
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

1902:                                             ; preds = %1901
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  %1903 = call ptr @__errno_location() #10
  %1904 = load i32, ptr %1903, align 4, !tbaa !5
  store i32 %1904, ptr %52, align 4, !tbaa !5
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = call i32 @s2n_print_stacktrace(ptr noundef %1905)
  %1907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1908 = trunc i8 %1907 to i1
  br i1 %1908, label %1909, label %1931

1909:                                             ; preds = %1902
  %1910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1911 = call i32 @fileno(ptr noundef %1910) #9
  %1912 = call i32 @isatty(i32 noundef %1911) #9
  %1913 = icmp ne i32 %1912, 0
  br i1 %1913, label %1914, label %1931

1914:                                             ; preds = %1909
  %1915 = load i32, ptr %52, align 4, !tbaa !5
  %1916 = call ptr @__errno_location() #10
  store i32 %1915, ptr %1916, align 4, !tbaa !5
  %1917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1918 = load i32, ptr @test_count, align 4, !tbaa !5
  %1919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call ptr @s2n_strerror(i32 noundef %1920, ptr noundef @.str.20)
  %1922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call ptr @s2n_strerror_debug(i32 noundef %1923, ptr noundef @.str.20)
  %1925 = call ptr @__errno_location() #10
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = call ptr @strerror(i32 noundef %1926) #9
  %1928 = call ptr @__errno_location() #10
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  %1930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1917, ptr noundef @.str.18, i32 noundef %1918, ptr noundef @.str.25, ptr noundef @.str.17, i32 noundef 105, ptr noundef %1921, ptr noundef %1924, ptr noundef %1927, i32 noundef %1929) #9
  br label %1948

1931:                                             ; preds = %1909, %1902
  %1932 = load i32, ptr %52, align 4, !tbaa !5
  %1933 = call ptr @__errno_location() #10
  store i32 %1932, ptr %1933, align 4, !tbaa !5
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror(i32 noundef %1937, ptr noundef @.str.20)
  %1939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call ptr @s2n_strerror_debug(i32 noundef %1940, ptr noundef @.str.20)
  %1942 = call ptr @__errno_location() #10
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call ptr @strerror(i32 noundef %1943) #9
  %1945 = call ptr @__errno_location() #10
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  %1947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1934, ptr noundef @.str.21, i32 noundef %1935, ptr noundef @.str.25, ptr noundef @.str.17, i32 noundef 105, ptr noundef %1938, ptr noundef %1941, ptr noundef %1944, i32 noundef %1946) #9
  br label %1948

1948:                                             ; preds = %1931, %1914
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %1949

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

1950:                                             ; No predecessors!
  br label %1951

1951:                                             ; preds = %1950, %1894
  br label %1952

1952:                                             ; preds = %1951
  br label %1953

1953:                                             ; preds = %1952
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = add nsw i32 %1954, 1
  store i32 %1955, ptr @test_count, align 4, !tbaa !5
  %1956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror_debug(i32 noundef %1957, ptr noundef @.str.20)
  %1959 = icmp eq ptr %1958, null
  br i1 %1959, label %1960, label %2011

1960:                                             ; preds = %1953
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

1962:                                             ; preds = %1961
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %1963 = call ptr @__errno_location() #10
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  store i32 %1964, ptr %53, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = call i32 @s2n_print_stacktrace(ptr noundef %1965)
  %1967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1968 = trunc i8 %1967 to i1
  br i1 %1968, label %1969, label %1991

1969:                                             ; preds = %1962
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = call i32 @fileno(ptr noundef %1970) #9
  %1972 = call i32 @isatty(i32 noundef %1971) #9
  %1973 = icmp ne i32 %1972, 0
  br i1 %1973, label %1974, label %1991

1974:                                             ; preds = %1969
  %1975 = load i32, ptr %53, align 4, !tbaa !5
  %1976 = call ptr @__errno_location() #10
  store i32 %1975, ptr %1976, align 4, !tbaa !5
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call ptr @s2n_strerror(i32 noundef %1980, ptr noundef @.str.20)
  %1982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror_debug(i32 noundef %1983, ptr noundef @.str.20)
  %1985 = call ptr @__errno_location() #10
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call ptr @strerror(i32 noundef %1986) #9
  %1988 = call ptr @__errno_location() #10
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1977, ptr noundef @.str.18, i32 noundef %1978, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 105, ptr noundef %1981, ptr noundef %1984, ptr noundef %1987, i32 noundef %1989) #9
  br label %2008

1991:                                             ; preds = %1969, %1962
  %1992 = load i32, ptr %53, align 4, !tbaa !5
  %1993 = call ptr @__errno_location() #10
  store i32 %1992, ptr %1993, align 4, !tbaa !5
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = load i32, ptr @test_count, align 4, !tbaa !5
  %1996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1997 = load i32, ptr %1996, align 4, !tbaa !5
  %1998 = call ptr @s2n_strerror(i32 noundef %1997, ptr noundef @.str.20)
  %1999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror_debug(i32 noundef %2000, ptr noundef @.str.20)
  %2002 = call ptr @__errno_location() #10
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @strerror(i32 noundef %2003) #9
  %2005 = call ptr @__errno_location() #10
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1994, ptr noundef @.str.21, i32 noundef %1995, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 105, ptr noundef %1998, ptr noundef %2001, ptr noundef %2004, i32 noundef %2006) #9
  br label %2008

2008:                                             ; preds = %1991, %1974
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2009

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

2010:                                             ; No predecessors!
  br label %2011

2011:                                             ; preds = %2010, %1953
  br label %2012

2012:                                             ; preds = %2011
  br label %2013

2013:                                             ; preds = %2012
  br label %2014

2014:                                             ; preds = %2013
  %2015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2015, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2016 = call ptr @__errno_location() #10
  store i32 0, ptr %2016, align 4, !tbaa !5
  br label %2017

2017:                                             ; preds = %2014
  br label %2018

2018:                                             ; preds = %2017
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  store ptr null, ptr %54, align 8, !tbaa !9
  br label %2019

2019:                                             ; preds = %2018
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %2021 = add nsw i32 %2020, 1
  store i32 %2021, ptr @test_count, align 4, !tbaa !5
  %2022 = call i32 @s2n_handshake_hashes_new(ptr noundef %54)
  %2023 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %2022, ptr %2023, align 4
  %2024 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  %2025 = load i32, ptr %2024, align 4
  %2026 = call zeroext i1 @s2n_result_is_ok(i32 %2025)
  br i1 %2026, label %2080, label %2027

2027:                                             ; preds = %2019
  br label %2028

2028:                                             ; preds = %2027
  br label %2029

2029:                                             ; preds = %2028
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2030 = call ptr @__errno_location() #10
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  store i32 %2031, ptr %56, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = call i32 @s2n_print_stacktrace(ptr noundef %2032)
  %2034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2035 = trunc i8 %2034 to i1
  br i1 %2035, label %2036, label %2058

2036:                                             ; preds = %2029
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @fileno(ptr noundef %2037) #9
  %2039 = call i32 @isatty(i32 noundef %2038) #9
  %2040 = icmp ne i32 %2039, 0
  br i1 %2040, label %2041, label %2058

2041:                                             ; preds = %2036
  %2042 = load i32, ptr %56, align 4, !tbaa !5
  %2043 = call ptr @__errno_location() #10
  store i32 %2042, ptr %2043, align 4, !tbaa !5
  %2044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror(i32 noundef %2047, ptr noundef @.str.20)
  %2049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @s2n_strerror_debug(i32 noundef %2050, ptr noundef @.str.20)
  %2052 = call ptr @__errno_location() #10
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call ptr @strerror(i32 noundef %2053) #9
  %2055 = call ptr @__errno_location() #10
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2044, ptr noundef @.str.18, i32 noundef %2045, ptr noundef @.str.39, ptr noundef @.str.17, i32 noundef 110, ptr noundef %2048, ptr noundef %2051, ptr noundef %2054, i32 noundef %2056) #9
  br label %2075

2058:                                             ; preds = %2036, %2029
  %2059 = load i32, ptr %56, align 4, !tbaa !5
  %2060 = call ptr @__errno_location() #10
  store i32 %2059, ptr %2060, align 4, !tbaa !5
  %2061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2062 = load i32, ptr @test_count, align 4, !tbaa !5
  %2063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror(i32 noundef %2064, ptr noundef @.str.20)
  %2066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2067 = load i32, ptr %2066, align 4, !tbaa !5
  %2068 = call ptr @s2n_strerror_debug(i32 noundef %2067, ptr noundef @.str.20)
  %2069 = call ptr @__errno_location() #10
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @strerror(i32 noundef %2070) #9
  %2072 = call ptr @__errno_location() #10
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2061, ptr noundef @.str.21, i32 noundef %2062, ptr noundef @.str.39, ptr noundef @.str.17, i32 noundef 110, ptr noundef %2065, ptr noundef %2068, ptr noundef %2071, i32 noundef %2073) #9
  br label %2075

2075:                                             ; preds = %2058, %2041
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2076

2076:                                             ; preds = %2075
  br label %2077

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

2078:                                             ; No predecessors!
  br label %2079

2079:                                             ; preds = %2078
  br label %2080

2080:                                             ; preds = %2079, %2019
  br label %2081

2081:                                             ; preds = %2080
  br label %2082

2082:                                             ; preds = %2081
  br label %2083

2083:                                             ; preds = %2082
  %2084 = load i32, ptr @test_count, align 4, !tbaa !5
  %2085 = add nsw i32 %2084, 1
  store i32 %2085, ptr @test_count, align 4, !tbaa !5
  %2086 = load ptr, ptr %54, align 8, !tbaa !9
  %2087 = icmp eq ptr %2086, null
  br i1 %2087, label %2088, label %2141

2088:                                             ; preds = %2083
  br label %2089

2089:                                             ; preds = %2088
  br label %2090

2090:                                             ; preds = %2089
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2091 = call ptr @__errno_location() #10
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  store i32 %2092, ptr %57, align 4, !tbaa !5
  %2093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2094 = call i32 @s2n_print_stacktrace(ptr noundef %2093)
  %2095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2096 = trunc i8 %2095 to i1
  br i1 %2096, label %2097, label %2119

2097:                                             ; preds = %2090
  %2098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2099 = call i32 @fileno(ptr noundef %2098) #9
  %2100 = call i32 @isatty(i32 noundef %2099) #9
  %2101 = icmp ne i32 %2100, 0
  br i1 %2101, label %2102, label %2119

2102:                                             ; preds = %2097
  %2103 = load i32, ptr %57, align 4, !tbaa !5
  %2104 = call ptr @__errno_location() #10
  store i32 %2103, ptr %2104, align 4, !tbaa !5
  %2105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2106 = load i32, ptr @test_count, align 4, !tbaa !5
  %2107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call ptr @s2n_strerror(i32 noundef %2108, ptr noundef @.str.20)
  %2110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2111 = load i32, ptr %2110, align 4, !tbaa !5
  %2112 = call ptr @s2n_strerror_debug(i32 noundef %2111, ptr noundef @.str.20)
  %2113 = call ptr @__errno_location() #10
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = call ptr @strerror(i32 noundef %2114) #9
  %2116 = call ptr @__errno_location() #10
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  %2118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2105, ptr noundef @.str.18, i32 noundef %2106, ptr noundef @.str.40, ptr noundef @.str.17, i32 noundef 111, ptr noundef %2109, ptr noundef %2112, ptr noundef %2115, i32 noundef %2117) #9
  br label %2136

2119:                                             ; preds = %2097, %2090
  %2120 = load i32, ptr %57, align 4, !tbaa !5
  %2121 = call ptr @__errno_location() #10
  store i32 %2120, ptr %2121, align 4, !tbaa !5
  %2122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2123 = load i32, ptr @test_count, align 4, !tbaa !5
  %2124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror(i32 noundef %2125, ptr noundef @.str.20)
  %2127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror_debug(i32 noundef %2128, ptr noundef @.str.20)
  %2130 = call ptr @__errno_location() #10
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @strerror(i32 noundef %2131) #9
  %2133 = call ptr @__errno_location() #10
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2122, ptr noundef @.str.21, i32 noundef %2123, ptr noundef @.str.40, ptr noundef @.str.17, i32 noundef 111, ptr noundef %2126, ptr noundef %2129, ptr noundef %2132, i32 noundef %2134) #9
  br label %2136

2136:                                             ; preds = %2119, %2102
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2137

2137:                                             ; preds = %2136
  br label %2138

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

2139:                                             ; No predecessors!
  br label %2140

2140:                                             ; preds = %2139
  br label %2141

2141:                                             ; preds = %2140, %2083
  br label %2142

2142:                                             ; preds = %2141
  br label %2143

2143:                                             ; preds = %2142
  br label %2144

2144:                                             ; preds = %2143
  %2145 = load i32, ptr @test_count, align 4, !tbaa !5
  %2146 = add nsw i32 %2145, 1
  store i32 %2146, ptr @test_count, align 4, !tbaa !5
  %2147 = call i32 @s2n_handshake_hashes_free(ptr noundef %54)
  %2148 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  store i32 %2147, ptr %2148, align 4
  %2149 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  %2150 = load i32, ptr %2149, align 4
  %2151 = call zeroext i1 @s2n_result_is_ok(i32 %2150)
  br i1 %2151, label %2205, label %2152

2152:                                             ; preds = %2144
  br label %2153

2153:                                             ; preds = %2152
  br label %2154

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

2161:                                             ; preds = %2154
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = call i32 @fileno(ptr noundef %2162) #9
  %2164 = call i32 @isatty(i32 noundef %2163) #9
  %2165 = icmp ne i32 %2164, 0
  br i1 %2165, label %2166, label %2183

2166:                                             ; preds = %2161
  %2167 = load i32, ptr %59, align 4, !tbaa !5
  %2168 = call ptr @__errno_location() #10
  store i32 %2167, ptr %2168, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = load i32, ptr @test_count, align 4, !tbaa !5
  %2171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @s2n_strerror(i32 noundef %2172, ptr noundef @.str.20)
  %2174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call ptr @s2n_strerror_debug(i32 noundef %2175, ptr noundef @.str.20)
  %2177 = call ptr @__errno_location() #10
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call ptr @strerror(i32 noundef %2178) #9
  %2180 = call ptr @__errno_location() #10
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2169, ptr noundef @.str.18, i32 noundef %2170, ptr noundef @.str.41, ptr noundef @.str.17, i32 noundef 113, ptr noundef %2173, ptr noundef %2176, ptr noundef %2179, i32 noundef %2181) #9
  br label %2200

2183:                                             ; preds = %2161, %2154
  %2184 = load i32, ptr %59, align 4, !tbaa !5
  %2185 = call ptr @__errno_location() #10
  store i32 %2184, ptr %2185, align 4, !tbaa !5
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = load i32, ptr @test_count, align 4, !tbaa !5
  %2188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  %2190 = call ptr @s2n_strerror(i32 noundef %2189, ptr noundef @.str.20)
  %2191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call ptr @s2n_strerror_debug(i32 noundef %2192, ptr noundef @.str.20)
  %2194 = call ptr @__errno_location() #10
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call ptr @strerror(i32 noundef %2195) #9
  %2197 = call ptr @__errno_location() #10
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2186, ptr noundef @.str.21, i32 noundef %2187, ptr noundef @.str.41, ptr noundef @.str.17, i32 noundef 113, ptr noundef %2190, ptr noundef %2193, ptr noundef %2196, i32 noundef %2198) #9
  br label %2200

2200:                                             ; preds = %2183, %2166
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2201

2201:                                             ; preds = %2200
  br label %2202

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

2203:                                             ; No predecessors!
  br label %2204

2204:                                             ; preds = %2203
  br label %2205

2205:                                             ; preds = %2204, %2144
  br label %2206

2206:                                             ; preds = %2205
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = add nsw i32 %2209, 1
  store i32 %2210, ptr @test_count, align 4, !tbaa !5
  %2211 = load ptr, ptr %54, align 8, !tbaa !9
  %2212 = icmp eq ptr %2211, null
  br i1 %2212, label %2266, label %2213

2213:                                             ; preds = %2208
  br label %2214

2214:                                             ; preds = %2213
  br label %2215

2215:                                             ; preds = %2214
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %2216 = call ptr @__errno_location() #10
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  store i32 %2217, ptr %60, align 4, !tbaa !5
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = call i32 @s2n_print_stacktrace(ptr noundef %2218)
  %2220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2221 = trunc i8 %2220 to i1
  br i1 %2221, label %2222, label %2244

2222:                                             ; preds = %2215
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = call i32 @fileno(ptr noundef %2223) #9
  %2225 = call i32 @isatty(i32 noundef %2224) #9
  %2226 = icmp ne i32 %2225, 0
  br i1 %2226, label %2227, label %2244

2227:                                             ; preds = %2222
  %2228 = load i32, ptr %60, align 4, !tbaa !5
  %2229 = call ptr @__errno_location() #10
  store i32 %2228, ptr %2229, align 4, !tbaa !5
  %2230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror(i32 noundef %2233, ptr noundef @.str.20)
  %2235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = call ptr @s2n_strerror_debug(i32 noundef %2236, ptr noundef @.str.20)
  %2238 = call ptr @__errno_location() #10
  %2239 = load i32, ptr %2238, align 4, !tbaa !5
  %2240 = call ptr @strerror(i32 noundef %2239) #9
  %2241 = call ptr @__errno_location() #10
  %2242 = load i32, ptr %2241, align 4, !tbaa !5
  %2243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2230, ptr noundef @.str.18, i32 noundef %2231, ptr noundef @.str.42, ptr noundef @.str.17, i32 noundef 114, ptr noundef %2234, ptr noundef %2237, ptr noundef %2240, i32 noundef %2242) #9
  br label %2261

2244:                                             ; preds = %2222, %2215
  %2245 = load i32, ptr %60, align 4, !tbaa !5
  %2246 = call ptr @__errno_location() #10
  store i32 %2245, ptr %2246, align 4, !tbaa !5
  %2247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2248 = load i32, ptr @test_count, align 4, !tbaa !5
  %2249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call ptr @s2n_strerror(i32 noundef %2250, ptr noundef @.str.20)
  %2252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call ptr @s2n_strerror_debug(i32 noundef %2253, ptr noundef @.str.20)
  %2255 = call ptr @__errno_location() #10
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = call ptr @strerror(i32 noundef %2256) #9
  %2258 = call ptr @__errno_location() #10
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  %2260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2247, ptr noundef @.str.21, i32 noundef %2248, ptr noundef @.str.42, ptr noundef @.str.17, i32 noundef 114, ptr noundef %2251, ptr noundef %2254, ptr noundef %2257, i32 noundef %2259) #9
  br label %2261

2261:                                             ; preds = %2244, %2227
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2262

2262:                                             ; preds = %2261
  br label %2263

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

2264:                                             ; No predecessors!
  br label %2265

2265:                                             ; preds = %2264
  br label %2266

2266:                                             ; preds = %2265, %2208
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  call void @llvm.memset.p0.i64(ptr align 16 %61, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %2269 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2269, ptr %62, align 8, !tbaa !9
  br label %2270

2270:                                             ; preds = %2268
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = add nsw i32 %2271, 1
  store i32 %2272, ptr @test_count, align 4, !tbaa !5
  %2273 = load ptr, ptr %62, align 8, !tbaa !9
  %2274 = icmp eq ptr %2273, null
  br i1 %2274, label %2275, label %2328

2275:                                             ; preds = %2270
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

2277:                                             ; preds = %2276
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %2278 = call ptr @__errno_location() #10
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  store i32 %2279, ptr %63, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @s2n_print_stacktrace(ptr noundef %2280)
  %2282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2283 = trunc i8 %2282 to i1
  br i1 %2283, label %2284, label %2306

2284:                                             ; preds = %2277
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @fileno(ptr noundef %2285) #9
  %2287 = call i32 @isatty(i32 noundef %2286) #9
  %2288 = icmp ne i32 %2287, 0
  br i1 %2288, label %2289, label %2306

2289:                                             ; preds = %2284
  %2290 = load i32, ptr %63, align 4, !tbaa !5
  %2291 = call ptr @__errno_location() #10
  store i32 %2290, ptr %2291, align 4, !tbaa !5
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = load i32, ptr @test_count, align 4, !tbaa !5
  %2294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = call ptr @s2n_strerror(i32 noundef %2295, ptr noundef @.str.20)
  %2297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2298 = load i32, ptr %2297, align 4, !tbaa !5
  %2299 = call ptr @s2n_strerror_debug(i32 noundef %2298, ptr noundef @.str.20)
  %2300 = call ptr @__errno_location() #10
  %2301 = load i32, ptr %2300, align 4, !tbaa !5
  %2302 = call ptr @strerror(i32 noundef %2301) #9
  %2303 = call ptr @__errno_location() #10
  %2304 = load i32, ptr %2303, align 4, !tbaa !5
  %2305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2292, ptr noundef @.str.18, i32 noundef %2293, ptr noundef @.str.43, ptr noundef @.str.17, i32 noundef 124, ptr noundef %2296, ptr noundef %2299, ptr noundef %2302, i32 noundef %2304) #9
  br label %2323

2306:                                             ; preds = %2284, %2277
  %2307 = load i32, ptr %63, align 4, !tbaa !5
  %2308 = call ptr @__errno_location() #10
  store i32 %2307, ptr %2308, align 4, !tbaa !5
  %2309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2310 = load i32, ptr @test_count, align 4, !tbaa !5
  %2311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call ptr @s2n_strerror(i32 noundef %2312, ptr noundef @.str.20)
  %2314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2315 = load i32, ptr %2314, align 4, !tbaa !5
  %2316 = call ptr @s2n_strerror_debug(i32 noundef %2315, ptr noundef @.str.20)
  %2317 = call ptr @__errno_location() #10
  %2318 = load i32, ptr %2317, align 4, !tbaa !5
  %2319 = call ptr @strerror(i32 noundef %2318) #9
  %2320 = call ptr @__errno_location() #10
  %2321 = load i32, ptr %2320, align 4, !tbaa !5
  %2322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2309, ptr noundef @.str.21, i32 noundef %2310, ptr noundef @.str.43, ptr noundef @.str.17, i32 noundef 124, ptr noundef %2313, ptr noundef %2316, ptr noundef %2319, i32 noundef %2321) #9
  br label %2323

2323:                                             ; preds = %2306, %2289
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

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

2326:                                             ; No predecessors!
  br label %2327

2327:                                             ; preds = %2326
  br label %2328

2328:                                             ; preds = %2327, %2270
  br label %2329

2329:                                             ; preds = %2328
  br label %2330

2330:                                             ; preds = %2329
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  store ptr null, ptr %64, align 8, !tbaa !9
  br label %2331

2331:                                             ; preds = %2330
  %2332 = load i32, ptr @test_count, align 4, !tbaa !5
  %2333 = add nsw i32 %2332, 1
  store i32 %2333, ptr @test_count, align 4, !tbaa !5
  %2334 = load ptr, ptr %62, align 8, !tbaa !9
  %2335 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef %2334, i32 noundef 4, ptr noundef %64)
  %2336 = icmp eq i32 %2335, -1
  br i1 %2336, label %2337, label %2390

2337:                                             ; preds = %2331
  br label %2338

2338:                                             ; preds = %2337
  br label %2339

2339:                                             ; preds = %2338
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %2340 = call ptr @__errno_location() #10
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  store i32 %2341, ptr %65, align 4, !tbaa !5
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = call i32 @s2n_print_stacktrace(ptr noundef %2342)
  %2344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2345 = trunc i8 %2344 to i1
  br i1 %2345, label %2346, label %2368

2346:                                             ; preds = %2339
  %2347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2348 = call i32 @fileno(ptr noundef %2347) #9
  %2349 = call i32 @isatty(i32 noundef %2348) #9
  %2350 = icmp ne i32 %2349, 0
  br i1 %2350, label %2351, label %2368

2351:                                             ; preds = %2346
  %2352 = load i32, ptr %65, align 4, !tbaa !5
  %2353 = call ptr @__errno_location() #10
  store i32 %2352, ptr %2353, align 4, !tbaa !5
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = load i32, ptr @test_count, align 4, !tbaa !5
  %2356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror(i32 noundef %2357, ptr noundef @.str.20)
  %2359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @s2n_strerror_debug(i32 noundef %2360, ptr noundef @.str.20)
  %2362 = call ptr @__errno_location() #10
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @strerror(i32 noundef %2363) #9
  %2365 = call ptr @__errno_location() #10
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2354, ptr noundef @.str.18, i32 noundef %2355, ptr noundef @.str.44, ptr noundef @.str.17, i32 noundef 127, ptr noundef %2358, ptr noundef %2361, ptr noundef %2364, i32 noundef %2366) #9
  br label %2385

2368:                                             ; preds = %2346, %2339
  %2369 = load i32, ptr %65, align 4, !tbaa !5
  %2370 = call ptr @__errno_location() #10
  store i32 %2369, ptr %2370, align 4, !tbaa !5
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = load i32, ptr @test_count, align 4, !tbaa !5
  %2373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror(i32 noundef %2374, ptr noundef @.str.20)
  %2376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @s2n_strerror_debug(i32 noundef %2377, ptr noundef @.str.20)
  %2379 = call ptr @__errno_location() #10
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call ptr @strerror(i32 noundef %2380) #9
  %2382 = call ptr @__errno_location() #10
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2371, ptr noundef @.str.21, i32 noundef %2372, ptr noundef @.str.44, ptr noundef @.str.17, i32 noundef 127, ptr noundef %2375, ptr noundef %2378, ptr noundef %2381, i32 noundef %2383) #9
  br label %2385

2385:                                             ; preds = %2368, %2351
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %2386

2386:                                             ; preds = %2385
  br label %2387

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

2388:                                             ; No predecessors!
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

2390:                                             ; preds = %2389, %2331
  br label %2391

2391:                                             ; preds = %2390
  br label %2392

2392:                                             ; preds = %2391
  br label %2393

2393:                                             ; preds = %2392
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = add nsw i32 %2394, 1
  store i32 %2395, ptr @test_count, align 4, !tbaa !5
  %2396 = load ptr, ptr %64, align 8, !tbaa !9
  %2397 = icmp eq ptr %2396, null
  br i1 %2397, label %2398, label %2451

2398:                                             ; preds = %2393
  br label %2399

2399:                                             ; preds = %2398
  br label %2400

2400:                                             ; preds = %2399
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %2401 = call ptr @__errno_location() #10
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  store i32 %2402, ptr %66, align 4, !tbaa !5
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = call i32 @s2n_print_stacktrace(ptr noundef %2403)
  %2405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2406 = trunc i8 %2405 to i1
  br i1 %2406, label %2407, label %2429

2407:                                             ; preds = %2400
  %2408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2409 = call i32 @fileno(ptr noundef %2408) #9
  %2410 = call i32 @isatty(i32 noundef %2409) #9
  %2411 = icmp ne i32 %2410, 0
  br i1 %2411, label %2412, label %2429

2412:                                             ; preds = %2407
  %2413 = load i32, ptr %66, align 4, !tbaa !5
  %2414 = call ptr @__errno_location() #10
  store i32 %2413, ptr %2414, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = load i32, ptr @test_count, align 4, !tbaa !5
  %2417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call ptr @s2n_strerror(i32 noundef %2418, ptr noundef @.str.20)
  %2420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror_debug(i32 noundef %2421, ptr noundef @.str.20)
  %2423 = call ptr @__errno_location() #10
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call ptr @strerror(i32 noundef %2424) #9
  %2426 = call ptr @__errno_location() #10
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2415, ptr noundef @.str.18, i32 noundef %2416, ptr noundef @.str.45, ptr noundef @.str.17, i32 noundef 128, ptr noundef %2419, ptr noundef %2422, ptr noundef %2425, i32 noundef %2427) #9
  br label %2446

2429:                                             ; preds = %2407, %2400
  %2430 = load i32, ptr %66, align 4, !tbaa !5
  %2431 = call ptr @__errno_location() #10
  store i32 %2430, ptr %2431, align 4, !tbaa !5
  %2432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2433 = load i32, ptr @test_count, align 4, !tbaa !5
  %2434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = call ptr @s2n_strerror(i32 noundef %2435, ptr noundef @.str.20)
  %2437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  %2439 = call ptr @s2n_strerror_debug(i32 noundef %2438, ptr noundef @.str.20)
  %2440 = call ptr @__errno_location() #10
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  %2442 = call ptr @strerror(i32 noundef %2441) #9
  %2443 = call ptr @__errno_location() #10
  %2444 = load i32, ptr %2443, align 4, !tbaa !5
  %2445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2432, ptr noundef @.str.21, i32 noundef %2433, ptr noundef @.str.45, ptr noundef @.str.17, i32 noundef 128, ptr noundef %2436, ptr noundef %2439, ptr noundef %2442, i32 noundef %2444) #9
  br label %2446

2446:                                             ; preds = %2429, %2412
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

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

2449:                                             ; No predecessors!
  br label %2450

2450:                                             ; preds = %2449
  br label %2451

2451:                                             ; preds = %2450, %2393
  br label %2452

2452:                                             ; preds = %2451
  br label %2453

2453:                                             ; preds = %2452
  br label %2454

2454:                                             ; preds = %2453
  %2455 = load i32, ptr @test_count, align 4, !tbaa !5
  %2456 = add nsw i32 %2455, 1
  store i32 %2456, ptr @test_count, align 4, !tbaa !5
  %2457 = load ptr, ptr %64, align 8, !tbaa !9
  %2458 = getelementptr inbounds [32 x i8], ptr %61, i64 0, i64 0
  %2459 = call i32 @s2n_hash_digest(ptr noundef %2457, ptr noundef %2458, i32 noundef 32)
  %2460 = icmp eq i32 %2459, -1
  br i1 %2460, label %2461, label %2514

2461:                                             ; preds = %2454
  br label %2462

2462:                                             ; preds = %2461
  br label %2463

2463:                                             ; preds = %2462
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %2464 = call ptr @__errno_location() #10
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  store i32 %2465, ptr %67, align 4, !tbaa !5
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = call i32 @s2n_print_stacktrace(ptr noundef %2466)
  %2468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2469 = trunc i8 %2468 to i1
  br i1 %2469, label %2470, label %2492

2470:                                             ; preds = %2463
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = call i32 @fileno(ptr noundef %2471) #9
  %2473 = call i32 @isatty(i32 noundef %2472) #9
  %2474 = icmp ne i32 %2473, 0
  br i1 %2474, label %2475, label %2492

2475:                                             ; preds = %2470
  %2476 = load i32, ptr %67, align 4, !tbaa !5
  %2477 = call ptr @__errno_location() #10
  store i32 %2476, ptr %2477, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror(i32 noundef %2481, ptr noundef @.str.20)
  %2483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror_debug(i32 noundef %2484, ptr noundef @.str.20)
  %2486 = call ptr @__errno_location() #10
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call ptr @strerror(i32 noundef %2487) #9
  %2489 = call ptr @__errno_location() #10
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2478, ptr noundef @.str.18, i32 noundef %2479, ptr noundef @.str.46, ptr noundef @.str.17, i32 noundef 129, ptr noundef %2482, ptr noundef %2485, ptr noundef %2488, i32 noundef %2490) #9
  br label %2509

2492:                                             ; preds = %2470, %2463
  %2493 = load i32, ptr %67, align 4, !tbaa !5
  %2494 = call ptr @__errno_location() #10
  store i32 %2493, ptr %2494, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = load i32, ptr @test_count, align 4, !tbaa !5
  %2497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2498 = load i32, ptr %2497, align 4, !tbaa !5
  %2499 = call ptr @s2n_strerror(i32 noundef %2498, ptr noundef @.str.20)
  %2500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2501 = load i32, ptr %2500, align 4, !tbaa !5
  %2502 = call ptr @s2n_strerror_debug(i32 noundef %2501, ptr noundef @.str.20)
  %2503 = call ptr @__errno_location() #10
  %2504 = load i32, ptr %2503, align 4, !tbaa !5
  %2505 = call ptr @strerror(i32 noundef %2504) #9
  %2506 = call ptr @__errno_location() #10
  %2507 = load i32, ptr %2506, align 4, !tbaa !5
  %2508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2495, ptr noundef @.str.21, i32 noundef %2496, ptr noundef @.str.46, ptr noundef @.str.17, i32 noundef 129, ptr noundef %2499, ptr noundef %2502, ptr noundef %2505, i32 noundef %2507) #9
  br label %2509

2509:                                             ; preds = %2492, %2475
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

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

2512:                                             ; No predecessors!
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

2514:                                             ; preds = %2513, %2454
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  br label %2517

2517:                                             ; preds = %2516
  br label %2518

2518:                                             ; preds = %2517
  br label %2519

2519:                                             ; preds = %2518
  %2520 = load i32, ptr @test_count, align 4, !tbaa !5
  %2521 = add nsw i32 %2520, 1
  store i32 %2521, ptr @test_count, align 4, !tbaa !5
  %2522 = load ptr, ptr %64, align 8, !tbaa !9
  %2523 = getelementptr inbounds [32 x i8], ptr %61, i64 0, i64 0
  %2524 = call i32 @s2n_hash_digest(ptr noundef %2522, ptr noundef %2523, i32 noundef 32)
  %2525 = icmp eq i32 %2524, -1
  br i1 %2525, label %2579, label %2526

2526:                                             ; preds = %2519
  br label %2527

2527:                                             ; preds = %2526
  br label %2528

2528:                                             ; preds = %2527
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %2529 = call ptr @__errno_location() #10
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  store i32 %2530, ptr %68, align 4, !tbaa !5
  %2531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2532 = call i32 @s2n_print_stacktrace(ptr noundef %2531)
  %2533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2534 = trunc i8 %2533 to i1
  br i1 %2534, label %2535, label %2557

2535:                                             ; preds = %2528
  %2536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2537 = call i32 @fileno(ptr noundef %2536) #9
  %2538 = call i32 @isatty(i32 noundef %2537) #9
  %2539 = icmp ne i32 %2538, 0
  br i1 %2539, label %2540, label %2557

2540:                                             ; preds = %2535
  %2541 = load i32, ptr %68, align 4, !tbaa !5
  %2542 = call ptr @__errno_location() #10
  store i32 %2541, ptr %2542, align 4, !tbaa !5
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = load i32, ptr @test_count, align 4, !tbaa !5
  %2545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2546 = load i32, ptr %2545, align 4, !tbaa !5
  %2547 = call ptr @s2n_strerror(i32 noundef %2546, ptr noundef @.str.20)
  %2548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @s2n_strerror_debug(i32 noundef %2549, ptr noundef @.str.20)
  %2551 = call ptr @__errno_location() #10
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call ptr @strerror(i32 noundef %2552) #9
  %2554 = call ptr @__errno_location() #10
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2543, ptr noundef @.str.18, i32 noundef %2544, ptr noundef @.str.47, ptr noundef @.str.17, i32 noundef 130, ptr noundef %2547, ptr noundef %2550, ptr noundef %2553, i32 noundef %2555) #9
  br label %2574

2557:                                             ; preds = %2535, %2528
  %2558 = load i32, ptr %68, align 4, !tbaa !5
  %2559 = call ptr @__errno_location() #10
  store i32 %2558, ptr %2559, align 4, !tbaa !5
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  %2564 = call ptr @s2n_strerror(i32 noundef %2563, ptr noundef @.str.20)
  %2565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  %2567 = call ptr @s2n_strerror_debug(i32 noundef %2566, ptr noundef @.str.20)
  %2568 = call ptr @__errno_location() #10
  %2569 = load i32, ptr %2568, align 4, !tbaa !5
  %2570 = call ptr @strerror(i32 noundef %2569) #9
  %2571 = call ptr @__errno_location() #10
  %2572 = load i32, ptr %2571, align 4, !tbaa !5
  %2573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2560, ptr noundef @.str.21, i32 noundef %2561, ptr noundef @.str.47, ptr noundef @.str.17, i32 noundef 130, ptr noundef %2564, ptr noundef %2567, ptr noundef %2570, i32 noundef %2572) #9
  br label %2574

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

2575:                                             ; preds = %2574
  br label %2576

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

2577:                                             ; No predecessors!
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578, %2519
  br label %2580

2580:                                             ; preds = %2579
  br label %2581

2581:                                             ; preds = %2580
  br label %2582

2582:                                             ; preds = %2581
  %2583 = load i32, ptr @test_count, align 4, !tbaa !5
  %2584 = add nsw i32 %2583, 1
  store i32 %2584, ptr @test_count, align 4, !tbaa !5
  %2585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2586 = load i32, ptr %2585, align 4, !tbaa !5
  %2587 = icmp eq i32 %2586, 335544342
  br i1 %2587, label %2641, label %2588

2588:                                             ; preds = %2582
  br label %2589

2589:                                             ; preds = %2588
  br label %2590

2590:                                             ; preds = %2589
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %2591 = call ptr @__errno_location() #10
  %2592 = load i32, ptr %2591, align 4, !tbaa !5
  store i32 %2592, ptr %69, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = call i32 @s2n_print_stacktrace(ptr noundef %2593)
  %2595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2596 = trunc i8 %2595 to i1
  br i1 %2596, label %2597, label %2619

2597:                                             ; preds = %2590
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = call i32 @fileno(ptr noundef %2598) #9
  %2600 = call i32 @isatty(i32 noundef %2599) #9
  %2601 = icmp ne i32 %2600, 0
  br i1 %2601, label %2602, label %2619

2602:                                             ; preds = %2597
  %2603 = load i32, ptr %69, align 4, !tbaa !5
  %2604 = call ptr @__errno_location() #10
  store i32 %2603, ptr %2604, align 4, !tbaa !5
  %2605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2606 = load i32, ptr @test_count, align 4, !tbaa !5
  %2607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call ptr @s2n_strerror(i32 noundef %2608, ptr noundef @.str.20)
  %2610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2611 = load i32, ptr %2610, align 4, !tbaa !5
  %2612 = call ptr @s2n_strerror_debug(i32 noundef %2611, ptr noundef @.str.20)
  %2613 = call ptr @__errno_location() #10
  %2614 = load i32, ptr %2613, align 4, !tbaa !5
  %2615 = call ptr @strerror(i32 noundef %2614) #9
  %2616 = call ptr @__errno_location() #10
  %2617 = load i32, ptr %2616, align 4, !tbaa !5
  %2618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2605, ptr noundef @.str.18, i32 noundef %2606, ptr noundef @.str.36, ptr noundef @.str.17, i32 noundef 130, ptr noundef %2609, ptr noundef %2612, ptr noundef %2615, i32 noundef %2617) #9
  br label %2636

2619:                                             ; preds = %2597, %2590
  %2620 = load i32, ptr %69, align 4, !tbaa !5
  %2621 = call ptr @__errno_location() #10
  store i32 %2620, ptr %2621, align 4, !tbaa !5
  %2622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2623 = load i32, ptr @test_count, align 4, !tbaa !5
  %2624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call ptr @s2n_strerror(i32 noundef %2625, ptr noundef @.str.20)
  %2627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2628 = load i32, ptr %2627, align 4, !tbaa !5
  %2629 = call ptr @s2n_strerror_debug(i32 noundef %2628, ptr noundef @.str.20)
  %2630 = call ptr @__errno_location() #10
  %2631 = load i32, ptr %2630, align 4, !tbaa !5
  %2632 = call ptr @strerror(i32 noundef %2631) #9
  %2633 = call ptr @__errno_location() #10
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  %2635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2622, ptr noundef @.str.21, i32 noundef %2623, ptr noundef @.str.36, ptr noundef @.str.17, i32 noundef 130, ptr noundef %2626, ptr noundef %2629, ptr noundef %2632, i32 noundef %2634) #9
  br label %2636

2636:                                             ; preds = %2619, %2602
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %2637

2637:                                             ; preds = %2636
  br label %2638

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

2639:                                             ; No predecessors!
  br label %2640

2640:                                             ; preds = %2639
  br label %2641

2641:                                             ; preds = %2640, %2582
  br label %2642

2642:                                             ; preds = %2641
  br label %2643

2643:                                             ; preds = %2642
  br label %2644

2644:                                             ; preds = %2643
  %2645 = load i32, ptr @test_count, align 4, !tbaa !5
  %2646 = add nsw i32 %2645, 1
  store i32 %2646, ptr @test_count, align 4, !tbaa !5
  %2647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  %2649 = call ptr @s2n_strerror_debug(i32 noundef %2648, ptr noundef @.str.20)
  %2650 = icmp eq ptr %2649, null
  br i1 %2650, label %2651, label %2704

2651:                                             ; preds = %2644
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

2653:                                             ; preds = %2652
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %2654 = call ptr @__errno_location() #10
  %2655 = load i32, ptr %2654, align 4, !tbaa !5
  store i32 %2655, ptr %70, align 4, !tbaa !5
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = call i32 @s2n_print_stacktrace(ptr noundef %2656)
  %2658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2659 = trunc i8 %2658 to i1
  br i1 %2659, label %2660, label %2682

2660:                                             ; preds = %2653
  %2661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2662 = call i32 @fileno(ptr noundef %2661) #9
  %2663 = call i32 @isatty(i32 noundef %2662) #9
  %2664 = icmp ne i32 %2663, 0
  br i1 %2664, label %2665, label %2682

2665:                                             ; preds = %2660
  %2666 = load i32, ptr %70, align 4, !tbaa !5
  %2667 = call ptr @__errno_location() #10
  store i32 %2666, ptr %2667, align 4, !tbaa !5
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = load i32, ptr @test_count, align 4, !tbaa !5
  %2670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2671 = load i32, ptr %2670, align 4, !tbaa !5
  %2672 = call ptr @s2n_strerror(i32 noundef %2671, ptr noundef @.str.20)
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror_debug(i32 noundef %2674, ptr noundef @.str.20)
  %2676 = call ptr @__errno_location() #10
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @strerror(i32 noundef %2677) #9
  %2679 = call ptr @__errno_location() #10
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2668, ptr noundef @.str.18, i32 noundef %2669, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 130, ptr noundef %2672, ptr noundef %2675, ptr noundef %2678, i32 noundef %2680) #9
  br label %2699

2682:                                             ; preds = %2660, %2653
  %2683 = load i32, ptr %70, align 4, !tbaa !5
  %2684 = call ptr @__errno_location() #10
  store i32 %2683, ptr %2684, align 4, !tbaa !5
  %2685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2686 = load i32, ptr @test_count, align 4, !tbaa !5
  %2687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2688 = load i32, ptr %2687, align 4, !tbaa !5
  %2689 = call ptr @s2n_strerror(i32 noundef %2688, ptr noundef @.str.20)
  %2690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2691 = load i32, ptr %2690, align 4, !tbaa !5
  %2692 = call ptr @s2n_strerror_debug(i32 noundef %2691, ptr noundef @.str.20)
  %2693 = call ptr @__errno_location() #10
  %2694 = load i32, ptr %2693, align 4, !tbaa !5
  %2695 = call ptr @strerror(i32 noundef %2694) #9
  %2696 = call ptr @__errno_location() #10
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2685, ptr noundef @.str.21, i32 noundef %2686, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 130, ptr noundef %2689, ptr noundef %2692, ptr noundef %2695, i32 noundef %2697) #9
  br label %2699

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

2700:                                             ; preds = %2699
  br label %2701

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

2702:                                             ; No predecessors!
  br label %2703

2703:                                             ; preds = %2702
  br label %2704

2704:                                             ; preds = %2703, %2644
  br label %2705

2705:                                             ; preds = %2704
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  %2710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2710, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2711 = call ptr @__errno_location() #10
  store i32 0, ptr %2711, align 4, !tbaa !5
  br label %2712

2712:                                             ; preds = %2709
  br label %2713

2713:                                             ; preds = %2712
  br label %2714

2714:                                             ; preds = %2713
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

2716:                                             ; preds = %2715
  %2717 = load i32, ptr @test_count, align 4, !tbaa !5
  %2718 = add nsw i32 %2717, 1
  store i32 %2718, ptr @test_count, align 4, !tbaa !5
  %2719 = load ptr, ptr %62, align 8, !tbaa !9
  %2720 = call i32 @s2n_connection_wipe(ptr noundef %2719)
  %2721 = icmp eq i32 %2720, -1
  br i1 %2721, label %2722, label %2775

2722:                                             ; preds = %2716
  br label %2723

2723:                                             ; preds = %2722
  br label %2724

2724:                                             ; preds = %2723
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %2725 = call ptr @__errno_location() #10
  %2726 = load i32, ptr %2725, align 4, !tbaa !5
  store i32 %2726, ptr %71, align 4, !tbaa !5
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = call i32 @s2n_print_stacktrace(ptr noundef %2727)
  %2729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2730 = trunc i8 %2729 to i1
  br i1 %2730, label %2731, label %2753

2731:                                             ; preds = %2724
  %2732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2733 = call i32 @fileno(ptr noundef %2732) #9
  %2734 = call i32 @isatty(i32 noundef %2733) #9
  %2735 = icmp ne i32 %2734, 0
  br i1 %2735, label %2736, label %2753

2736:                                             ; preds = %2731
  %2737 = load i32, ptr %71, align 4, !tbaa !5
  %2738 = call ptr @__errno_location() #10
  store i32 %2737, ptr %2738, align 4, !tbaa !5
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = load i32, ptr @test_count, align 4, !tbaa !5
  %2741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2742 = load i32, ptr %2741, align 4, !tbaa !5
  %2743 = call ptr @s2n_strerror(i32 noundef %2742, ptr noundef @.str.20)
  %2744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2745 = load i32, ptr %2744, align 4, !tbaa !5
  %2746 = call ptr @s2n_strerror_debug(i32 noundef %2745, ptr noundef @.str.20)
  %2747 = call ptr @__errno_location() #10
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call ptr @strerror(i32 noundef %2748) #9
  %2750 = call ptr @__errno_location() #10
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2739, ptr noundef @.str.18, i32 noundef %2740, ptr noundef @.str.48, ptr noundef @.str.17, i32 noundef 133, ptr noundef %2743, ptr noundef %2746, ptr noundef %2749, i32 noundef %2751) #9
  br label %2770

2753:                                             ; preds = %2731, %2724
  %2754 = load i32, ptr %71, align 4, !tbaa !5
  %2755 = call ptr @__errno_location() #10
  store i32 %2754, ptr %2755, align 4, !tbaa !5
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = load i32, ptr @test_count, align 4, !tbaa !5
  %2758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2759 = load i32, ptr %2758, align 4, !tbaa !5
  %2760 = call ptr @s2n_strerror(i32 noundef %2759, ptr noundef @.str.20)
  %2761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2762 = load i32, ptr %2761, align 4, !tbaa !5
  %2763 = call ptr @s2n_strerror_debug(i32 noundef %2762, ptr noundef @.str.20)
  %2764 = call ptr @__errno_location() #10
  %2765 = load i32, ptr %2764, align 4, !tbaa !5
  %2766 = call ptr @strerror(i32 noundef %2765) #9
  %2767 = call ptr @__errno_location() #10
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2756, ptr noundef @.str.21, i32 noundef %2757, ptr noundef @.str.48, ptr noundef @.str.17, i32 noundef 133, ptr noundef %2760, ptr noundef %2763, ptr noundef %2766, i32 noundef %2768) #9
  br label %2770

2770:                                             ; preds = %2753, %2736
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

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

2773:                                             ; No predecessors!
  br label %2774

2774:                                             ; preds = %2773
  br label %2775

2775:                                             ; preds = %2774, %2716
  br label %2776

2776:                                             ; preds = %2775
  br label %2777

2777:                                             ; preds = %2776
  br label %2778

2778:                                             ; preds = %2777
  %2779 = load i32, ptr @test_count, align 4, !tbaa !5
  %2780 = add nsw i32 %2779, 1
  store i32 %2780, ptr @test_count, align 4, !tbaa !5
  %2781 = load ptr, ptr %62, align 8, !tbaa !9
  %2782 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef %2781, i32 noundef 4, ptr noundef %64)
  %2783 = icmp eq i32 %2782, -1
  br i1 %2783, label %2784, label %2837

2784:                                             ; preds = %2778
  br label %2785

2785:                                             ; preds = %2784
  br label %2786

2786:                                             ; preds = %2785
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %2787 = call ptr @__errno_location() #10
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  store i32 %2788, ptr %72, align 4, !tbaa !5
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = call i32 @s2n_print_stacktrace(ptr noundef %2789)
  %2791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2792 = trunc i8 %2791 to i1
  br i1 %2792, label %2793, label %2815

2793:                                             ; preds = %2786
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = call i32 @fileno(ptr noundef %2794) #9
  %2796 = call i32 @isatty(i32 noundef %2795) #9
  %2797 = icmp ne i32 %2796, 0
  br i1 %2797, label %2798, label %2815

2798:                                             ; preds = %2793
  %2799 = load i32, ptr %72, align 4, !tbaa !5
  %2800 = call ptr @__errno_location() #10
  store i32 %2799, ptr %2800, align 4, !tbaa !5
  %2801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2802 = load i32, ptr @test_count, align 4, !tbaa !5
  %2803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  %2805 = call ptr @s2n_strerror(i32 noundef %2804, ptr noundef @.str.20)
  %2806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @s2n_strerror_debug(i32 noundef %2807, ptr noundef @.str.20)
  %2809 = call ptr @__errno_location() #10
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @strerror(i32 noundef %2810) #9
  %2812 = call ptr @__errno_location() #10
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2801, ptr noundef @.str.18, i32 noundef %2802, ptr noundef @.str.44, ptr noundef @.str.17, i32 noundef 134, ptr noundef %2805, ptr noundef %2808, ptr noundef %2811, i32 noundef %2813) #9
  br label %2832

2815:                                             ; preds = %2793, %2786
  %2816 = load i32, ptr %72, align 4, !tbaa !5
  %2817 = call ptr @__errno_location() #10
  store i32 %2816, ptr %2817, align 4, !tbaa !5
  %2818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2819 = load i32, ptr @test_count, align 4, !tbaa !5
  %2820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror(i32 noundef %2821, ptr noundef @.str.20)
  %2823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  %2825 = call ptr @s2n_strerror_debug(i32 noundef %2824, ptr noundef @.str.20)
  %2826 = call ptr @__errno_location() #10
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call ptr @strerror(i32 noundef %2827) #9
  %2829 = call ptr @__errno_location() #10
  %2830 = load i32, ptr %2829, align 4, !tbaa !5
  %2831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2818, ptr noundef @.str.21, i32 noundef %2819, ptr noundef @.str.44, ptr noundef @.str.17, i32 noundef 134, ptr noundef %2822, ptr noundef %2825, ptr noundef %2828, i32 noundef %2830) #9
  br label %2832

2832:                                             ; preds = %2815, %2798
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %2833

2833:                                             ; preds = %2832
  br label %2834

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

2835:                                             ; No predecessors!
  br label %2836

2836:                                             ; preds = %2835
  br label %2837

2837:                                             ; preds = %2836, %2778
  br label %2838

2838:                                             ; preds = %2837
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

2840:                                             ; preds = %2839
  %2841 = load i32, ptr @test_count, align 4, !tbaa !5
  %2842 = add nsw i32 %2841, 1
  store i32 %2842, ptr @test_count, align 4, !tbaa !5
  %2843 = load ptr, ptr %64, align 8, !tbaa !9
  %2844 = icmp eq ptr %2843, null
  br i1 %2844, label %2845, label %2898

2845:                                             ; preds = %2840
  br label %2846

2846:                                             ; preds = %2845
  br label %2847

2847:                                             ; preds = %2846
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %2848 = call ptr @__errno_location() #10
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  store i32 %2849, ptr %73, align 4, !tbaa !5
  %2850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2851 = call i32 @s2n_print_stacktrace(ptr noundef %2850)
  %2852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2853 = trunc i8 %2852 to i1
  br i1 %2853, label %2854, label %2876

2854:                                             ; preds = %2847
  %2855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2856 = call i32 @fileno(ptr noundef %2855) #9
  %2857 = call i32 @isatty(i32 noundef %2856) #9
  %2858 = icmp ne i32 %2857, 0
  br i1 %2858, label %2859, label %2876

2859:                                             ; preds = %2854
  %2860 = load i32, ptr %73, align 4, !tbaa !5
  %2861 = call ptr @__errno_location() #10
  store i32 %2860, ptr %2861, align 4, !tbaa !5
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = load i32, ptr @test_count, align 4, !tbaa !5
  %2864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror(i32 noundef %2865, ptr noundef @.str.20)
  %2867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call ptr @s2n_strerror_debug(i32 noundef %2868, ptr noundef @.str.20)
  %2870 = call ptr @__errno_location() #10
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call ptr @strerror(i32 noundef %2871) #9
  %2873 = call ptr @__errno_location() #10
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2862, ptr noundef @.str.18, i32 noundef %2863, ptr noundef @.str.45, ptr noundef @.str.17, i32 noundef 135, ptr noundef %2866, ptr noundef %2869, ptr noundef %2872, i32 noundef %2874) #9
  br label %2893

2876:                                             ; preds = %2854, %2847
  %2877 = load i32, ptr %73, align 4, !tbaa !5
  %2878 = call ptr @__errno_location() #10
  store i32 %2877, ptr %2878, align 4, !tbaa !5
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = load i32, ptr @test_count, align 4, !tbaa !5
  %2881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2882 = load i32, ptr %2881, align 4, !tbaa !5
  %2883 = call ptr @s2n_strerror(i32 noundef %2882, ptr noundef @.str.20)
  %2884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2885 = load i32, ptr %2884, align 4, !tbaa !5
  %2886 = call ptr @s2n_strerror_debug(i32 noundef %2885, ptr noundef @.str.20)
  %2887 = call ptr @__errno_location() #10
  %2888 = load i32, ptr %2887, align 4, !tbaa !5
  %2889 = call ptr @strerror(i32 noundef %2888) #9
  %2890 = call ptr @__errno_location() #10
  %2891 = load i32, ptr %2890, align 4, !tbaa !5
  %2892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2879, ptr noundef @.str.21, i32 noundef %2880, ptr noundef @.str.45, ptr noundef @.str.17, i32 noundef 135, ptr noundef %2883, ptr noundef %2886, ptr noundef %2889, i32 noundef %2891) #9
  br label %2893

2893:                                             ; preds = %2876, %2859
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %2894

2894:                                             ; preds = %2893
  br label %2895

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

2896:                                             ; No predecessors!
  br label %2897

2897:                                             ; preds = %2896
  br label %2898

2898:                                             ; preds = %2897, %2840
  br label %2899

2899:                                             ; preds = %2898
  br label %2900

2900:                                             ; preds = %2899
  br label %2901

2901:                                             ; preds = %2900
  %2902 = load i32, ptr @test_count, align 4, !tbaa !5
  %2903 = add nsw i32 %2902, 1
  store i32 %2903, ptr @test_count, align 4, !tbaa !5
  %2904 = load ptr, ptr %64, align 8, !tbaa !9
  %2905 = getelementptr inbounds [32 x i8], ptr %61, i64 0, i64 0
  %2906 = call i32 @s2n_hash_digest(ptr noundef %2904, ptr noundef %2905, i32 noundef 32)
  %2907 = icmp eq i32 %2906, -1
  br i1 %2907, label %2908, label %2961

2908:                                             ; preds = %2901
  br label %2909

2909:                                             ; preds = %2908
  br label %2910

2910:                                             ; preds = %2909
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %2911 = call ptr @__errno_location() #10
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  store i32 %2912, ptr %74, align 4, !tbaa !5
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = call i32 @s2n_print_stacktrace(ptr noundef %2913)
  %2915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2916 = trunc i8 %2915 to i1
  br i1 %2916, label %2917, label %2939

2917:                                             ; preds = %2910
  %2918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2919 = call i32 @fileno(ptr noundef %2918) #9
  %2920 = call i32 @isatty(i32 noundef %2919) #9
  %2921 = icmp ne i32 %2920, 0
  br i1 %2921, label %2922, label %2939

2922:                                             ; preds = %2917
  %2923 = load i32, ptr %74, align 4, !tbaa !5
  %2924 = call ptr @__errno_location() #10
  store i32 %2923, ptr %2924, align 4, !tbaa !5
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = load i32, ptr @test_count, align 4, !tbaa !5
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror(i32 noundef %2928, ptr noundef @.str.20)
  %2930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @s2n_strerror_debug(i32 noundef %2931, ptr noundef @.str.20)
  %2933 = call ptr @__errno_location() #10
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @strerror(i32 noundef %2934) #9
  %2936 = call ptr @__errno_location() #10
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2925, ptr noundef @.str.18, i32 noundef %2926, ptr noundef @.str.46, ptr noundef @.str.17, i32 noundef 136, ptr noundef %2929, ptr noundef %2932, ptr noundef %2935, i32 noundef %2937) #9
  br label %2956

2939:                                             ; preds = %2917, %2910
  %2940 = load i32, ptr %74, align 4, !tbaa !5
  %2941 = call ptr @__errno_location() #10
  store i32 %2940, ptr %2941, align 4, !tbaa !5
  %2942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2943 = load i32, ptr @test_count, align 4, !tbaa !5
  %2944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2945 = load i32, ptr %2944, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror(i32 noundef %2945, ptr noundef @.str.20)
  %2947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror_debug(i32 noundef %2948, ptr noundef @.str.20)
  %2950 = call ptr @__errno_location() #10
  %2951 = load i32, ptr %2950, align 4, !tbaa !5
  %2952 = call ptr @strerror(i32 noundef %2951) #9
  %2953 = call ptr @__errno_location() #10
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  %2955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2942, ptr noundef @.str.21, i32 noundef %2943, ptr noundef @.str.46, ptr noundef @.str.17, i32 noundef 136, ptr noundef %2946, ptr noundef %2949, ptr noundef %2952, i32 noundef %2954) #9
  br label %2956

2956:                                             ; preds = %2939, %2922
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

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

2959:                                             ; No predecessors!
  br label %2960

2960:                                             ; preds = %2959
  br label %2961

2961:                                             ; preds = %2960, %2901
  br label %2962

2962:                                             ; preds = %2961
  br label %2963

2963:                                             ; preds = %2962
  br label %2964

2964:                                             ; preds = %2963
  %2965 = load i32, ptr @test_count, align 4, !tbaa !5
  %2966 = add nsw i32 %2965, 1
  store i32 %2966, ptr @test_count, align 4, !tbaa !5
  %2967 = load ptr, ptr %62, align 8, !tbaa !9
  %2968 = call i32 @s2n_connection_free_handshake(ptr noundef %2967)
  %2969 = icmp eq i32 %2968, -1
  br i1 %2969, label %2970, label %3023

2970:                                             ; preds = %2964
  br label %2971

2971:                                             ; preds = %2970
  br label %2972

2972:                                             ; preds = %2971
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %2973 = call ptr @__errno_location() #10
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  store i32 %2974, ptr %75, align 4, !tbaa !5
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = call i32 @s2n_print_stacktrace(ptr noundef %2975)
  %2977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2978 = trunc i8 %2977 to i1
  br i1 %2978, label %2979, label %3001

2979:                                             ; preds = %2972
  %2980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2981 = call i32 @fileno(ptr noundef %2980) #9
  %2982 = call i32 @isatty(i32 noundef %2981) #9
  %2983 = icmp ne i32 %2982, 0
  br i1 %2983, label %2984, label %3001

2984:                                             ; preds = %2979
  %2985 = load i32, ptr %75, align 4, !tbaa !5
  %2986 = call ptr @__errno_location() #10
  store i32 %2985, ptr %2986, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @s2n_strerror(i32 noundef %2990, ptr noundef @.str.20)
  %2992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror_debug(i32 noundef %2993, ptr noundef @.str.20)
  %2995 = call ptr @__errno_location() #10
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @strerror(i32 noundef %2996) #9
  %2998 = call ptr @__errno_location() #10
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2987, ptr noundef @.str.18, i32 noundef %2988, ptr noundef @.str.49, ptr noundef @.str.17, i32 noundef 139, ptr noundef %2991, ptr noundef %2994, ptr noundef %2997, i32 noundef %2999) #9
  br label %3018

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

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

3019:                                             ; preds = %3018
  br label %3020

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

3021:                                             ; No predecessors!
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

3023:                                             ; preds = %3022, %2964
  br label %3024

3024:                                             ; preds = %3023
  br label %3025

3025:                                             ; preds = %3024
  br label %3026

3026:                                             ; preds = %3025
  br label %3027

3027:                                             ; preds = %3026
  br label %3028

3028:                                             ; preds = %3027
  %3029 = load i32, ptr @test_count, align 4, !tbaa !5
  %3030 = add nsw i32 %3029, 1
  store i32 %3030, ptr @test_count, align 4, !tbaa !5
  %3031 = load ptr, ptr %62, align 8, !tbaa !9
  %3032 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef %3031, i32 noundef 4, ptr noundef %64)
  %3033 = icmp eq i32 %3032, -1
  br i1 %3033, label %3087, label %3034

3034:                                             ; preds = %3028
  br label %3035

3035:                                             ; preds = %3034
  br label %3036

3036:                                             ; preds = %3035
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %3037 = call ptr @__errno_location() #10
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  store i32 %3038, ptr %76, align 4, !tbaa !5
  %3039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3040 = call i32 @s2n_print_stacktrace(ptr noundef %3039)
  %3041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3042 = trunc i8 %3041 to i1
  br i1 %3042, label %3043, label %3065

3043:                                             ; preds = %3036
  %3044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3045 = call i32 @fileno(ptr noundef %3044) #9
  %3046 = call i32 @isatty(i32 noundef %3045) #9
  %3047 = icmp ne i32 %3046, 0
  br i1 %3047, label %3048, label %3065

3048:                                             ; preds = %3043
  %3049 = load i32, ptr %76, align 4, !tbaa !5
  %3050 = call ptr @__errno_location() #10
  store i32 %3049, ptr %3050, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror(i32 noundef %3054, ptr noundef @.str.20)
  %3056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call ptr @s2n_strerror_debug(i32 noundef %3057, ptr noundef @.str.20)
  %3059 = call ptr @__errno_location() #10
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call ptr @strerror(i32 noundef %3060) #9
  %3062 = call ptr @__errno_location() #10
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef @.str.18, i32 noundef %3052, ptr noundef @.str.50, ptr noundef @.str.17, i32 noundef 140, ptr noundef %3055, ptr noundef %3058, ptr noundef %3061, i32 noundef %3063) #9
  br label %3082

3065:                                             ; preds = %3043, %3036
  %3066 = load i32, ptr %76, align 4, !tbaa !5
  %3067 = call ptr @__errno_location() #10
  store i32 %3066, ptr %3067, align 4, !tbaa !5
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = load i32, ptr @test_count, align 4, !tbaa !5
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror(i32 noundef %3071, ptr noundef @.str.20)
  %3073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @s2n_strerror_debug(i32 noundef %3074, ptr noundef @.str.20)
  %3076 = call ptr @__errno_location() #10
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call ptr @strerror(i32 noundef %3077) #9
  %3079 = call ptr @__errno_location() #10
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  %3081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3068, ptr noundef @.str.21, i32 noundef %3069, ptr noundef @.str.50, ptr noundef @.str.17, i32 noundef 140, ptr noundef %3072, ptr noundef %3075, ptr noundef %3078, i32 noundef %3080) #9
  br label %3082

3082:                                             ; preds = %3065, %3048
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

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

3085:                                             ; No predecessors!
  br label %3086

3086:                                             ; preds = %3085
  br label %3087

3087:                                             ; preds = %3086, %3028
  br label %3088

3088:                                             ; preds = %3087
  br label %3089

3089:                                             ; preds = %3088
  br label %3090

3090:                                             ; preds = %3089
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %3092 = add nsw i32 %3091, 1
  store i32 %3092, ptr @test_count, align 4, !tbaa !5
  %3093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  %3095 = icmp eq i32 %3094, 402653193
  br i1 %3095, label %3149, label %3096

3096:                                             ; preds = %3090
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

3098:                                             ; preds = %3097
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %3099 = call ptr @__errno_location() #10
  %3100 = load i32, ptr %3099, align 4, !tbaa !5
  store i32 %3100, ptr %77, align 4, !tbaa !5
  %3101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3102 = call i32 @s2n_print_stacktrace(ptr noundef %3101)
  %3103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3104 = trunc i8 %3103 to i1
  br i1 %3104, label %3105, label %3127

3105:                                             ; preds = %3098
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = call i32 @fileno(ptr noundef %3106) #9
  %3108 = call i32 @isatty(i32 noundef %3107) #9
  %3109 = icmp ne i32 %3108, 0
  br i1 %3109, label %3110, label %3127

3110:                                             ; preds = %3105
  %3111 = load i32, ptr %77, align 4, !tbaa !5
  %3112 = call ptr @__errno_location() #10
  store i32 %3111, ptr %3112, align 4, !tbaa !5
  %3113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3114 = load i32, ptr @test_count, align 4, !tbaa !5
  %3115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror(i32 noundef %3116, ptr noundef @.str.20)
  %3118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call ptr @s2n_strerror_debug(i32 noundef %3119, ptr noundef @.str.20)
  %3121 = call ptr @__errno_location() #10
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call ptr @strerror(i32 noundef %3122) #9
  %3124 = call ptr @__errno_location() #10
  %3125 = load i32, ptr %3124, align 4, !tbaa !5
  %3126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3113, ptr noundef @.str.18, i32 noundef %3114, ptr noundef @.str.25, ptr noundef @.str.17, i32 noundef 140, ptr noundef %3117, ptr noundef %3120, ptr noundef %3123, i32 noundef %3125) #9
  br label %3144

3127:                                             ; preds = %3105, %3098
  %3128 = load i32, ptr %77, align 4, !tbaa !5
  %3129 = call ptr @__errno_location() #10
  store i32 %3128, ptr %3129, align 4, !tbaa !5
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = load i32, ptr @test_count, align 4, !tbaa !5
  %3132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @s2n_strerror(i32 noundef %3133, ptr noundef @.str.20)
  %3135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call ptr @s2n_strerror_debug(i32 noundef %3136, ptr noundef @.str.20)
  %3138 = call ptr @__errno_location() #10
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  %3140 = call ptr @strerror(i32 noundef %3139) #9
  %3141 = call ptr @__errno_location() #10
  %3142 = load i32, ptr %3141, align 4, !tbaa !5
  %3143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3130, ptr noundef @.str.21, i32 noundef %3131, ptr noundef @.str.25, ptr noundef @.str.17, i32 noundef 140, ptr noundef %3134, ptr noundef %3137, ptr noundef %3140, i32 noundef %3142) #9
  br label %3144

3144:                                             ; preds = %3127, %3110
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3145

3145:                                             ; preds = %3144
  br label %3146

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

3147:                                             ; No predecessors!
  br label %3148

3148:                                             ; preds = %3147
  br label %3149

3149:                                             ; preds = %3148, %3090
  br label %3150

3150:                                             ; preds = %3149
  br label %3151

3151:                                             ; preds = %3150
  br label %3152

3152:                                             ; preds = %3151
  %3153 = load i32, ptr @test_count, align 4, !tbaa !5
  %3154 = add nsw i32 %3153, 1
  store i32 %3154, ptr @test_count, align 4, !tbaa !5
  %3155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3156 = load i32, ptr %3155, align 4, !tbaa !5
  %3157 = call ptr @s2n_strerror_debug(i32 noundef %3156, ptr noundef @.str.20)
  %3158 = icmp eq ptr %3157, null
  br i1 %3158, label %3159, label %3212

3159:                                             ; preds = %3152
  br label %3160

3160:                                             ; preds = %3159
  br label %3161

3161:                                             ; preds = %3160
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  %3162 = call ptr @__errno_location() #10
  %3163 = load i32, ptr %3162, align 4, !tbaa !5
  store i32 %3163, ptr %78, align 4, !tbaa !5
  %3164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3165 = call i32 @s2n_print_stacktrace(ptr noundef %3164)
  %3166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3167 = trunc i8 %3166 to i1
  br i1 %3167, label %3168, label %3190

3168:                                             ; preds = %3161
  %3169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3170 = call i32 @fileno(ptr noundef %3169) #9
  %3171 = call i32 @isatty(i32 noundef %3170) #9
  %3172 = icmp ne i32 %3171, 0
  br i1 %3172, label %3173, label %3190

3173:                                             ; preds = %3168
  %3174 = load i32, ptr %78, align 4, !tbaa !5
  %3175 = call ptr @__errno_location() #10
  store i32 %3174, ptr %3175, align 4, !tbaa !5
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = load i32, ptr @test_count, align 4, !tbaa !5
  %3178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror(i32 noundef %3179, ptr noundef @.str.20)
  %3181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = call ptr @s2n_strerror_debug(i32 noundef %3182, ptr noundef @.str.20)
  %3184 = call ptr @__errno_location() #10
  %3185 = load i32, ptr %3184, align 4, !tbaa !5
  %3186 = call ptr @strerror(i32 noundef %3185) #9
  %3187 = call ptr @__errno_location() #10
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3176, ptr noundef @.str.18, i32 noundef %3177, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 140, ptr noundef %3180, ptr noundef %3183, ptr noundef %3186, i32 noundef %3188) #9
  br label %3207

3190:                                             ; preds = %3168, %3161
  %3191 = load i32, ptr %78, align 4, !tbaa !5
  %3192 = call ptr @__errno_location() #10
  store i32 %3191, ptr %3192, align 4, !tbaa !5
  %3193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3194 = load i32, ptr @test_count, align 4, !tbaa !5
  %3195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror(i32 noundef %3196, ptr noundef @.str.20)
  %3198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @s2n_strerror_debug(i32 noundef %3199, ptr noundef @.str.20)
  %3201 = call ptr @__errno_location() #10
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call ptr @strerror(i32 noundef %3202) #9
  %3204 = call ptr @__errno_location() #10
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3193, ptr noundef @.str.21, i32 noundef %3194, ptr noundef @.str.26, ptr noundef @.str.17, i32 noundef 140, ptr noundef %3197, ptr noundef %3200, ptr noundef %3203, i32 noundef %3205) #9
  br label %3207

3207:                                             ; preds = %3190, %3173
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

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

3210:                                             ; No predecessors!
  br label %3211

3211:                                             ; preds = %3210
  br label %3212

3212:                                             ; preds = %3211, %3152
  br label %3213

3213:                                             ; preds = %3212
  br label %3214

3214:                                             ; preds = %3213
  br label %3215

3215:                                             ; preds = %3214
  br label %3216

3216:                                             ; preds = %3215
  br label %3217

3217:                                             ; preds = %3216
  %3218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3218, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3219 = call ptr @__errno_location() #10
  store i32 0, ptr %3219, align 4, !tbaa !5
  br label %3220

3220:                                             ; preds = %3217
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

3223:                                             ; preds = %3222
  br label %3224

3224:                                             ; preds = %3223
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = load ptr, ptr %62, align 8, !tbaa !9
  %3228 = getelementptr inbounds %struct.s2n_connection, ptr %3227, i32 0, i32 52
  %3229 = getelementptr inbounds %struct.s2n_handshake, ptr %3228, i32 0, i32 1
  %3230 = load ptr, ptr %3229, align 8, !tbaa !15
  %3231 = icmp eq ptr %3230, null
  br i1 %3231, label %3285, label %3232

3232:                                             ; preds = %3224
  br label %3233

3233:                                             ; preds = %3232
  br label %3234

3234:                                             ; preds = %3233
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %3235 = call ptr @__errno_location() #10
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  store i32 %3236, ptr %79, align 4, !tbaa !5
  %3237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3238 = call i32 @s2n_print_stacktrace(ptr noundef %3237)
  %3239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3240 = trunc i8 %3239 to i1
  br i1 %3240, label %3241, label %3263

3241:                                             ; preds = %3234
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = call i32 @fileno(ptr noundef %3242) #9
  %3244 = call i32 @isatty(i32 noundef %3243) #9
  %3245 = icmp ne i32 %3244, 0
  br i1 %3245, label %3246, label %3263

3246:                                             ; preds = %3241
  %3247 = load i32, ptr %79, align 4, !tbaa !5
  %3248 = call ptr @__errno_location() #10
  store i32 %3247, ptr %3248, align 4, !tbaa !5
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = load i32, ptr @test_count, align 4, !tbaa !5
  %3251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @s2n_strerror(i32 noundef %3252, ptr noundef @.str.20)
  %3254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror_debug(i32 noundef %3255, ptr noundef @.str.20)
  %3257 = call ptr @__errno_location() #10
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @strerror(i32 noundef %3258) #9
  %3260 = call ptr @__errno_location() #10
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3249, ptr noundef @.str.18, i32 noundef %3250, ptr noundef @.str.51, ptr noundef @.str.17, i32 noundef 141, ptr noundef %3253, ptr noundef %3256, ptr noundef %3259, i32 noundef %3261) #9
  br label %3280

3263:                                             ; preds = %3241, %3234
  %3264 = load i32, ptr %79, align 4, !tbaa !5
  %3265 = call ptr @__errno_location() #10
  store i32 %3264, ptr %3265, align 4, !tbaa !5
  %3266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3267 = load i32, ptr @test_count, align 4, !tbaa !5
  %3268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror(i32 noundef %3269, ptr noundef @.str.20)
  %3271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror_debug(i32 noundef %3272, ptr noundef @.str.20)
  %3274 = call ptr @__errno_location() #10
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = call ptr @strerror(i32 noundef %3275) #9
  %3277 = call ptr @__errno_location() #10
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3266, ptr noundef @.str.21, i32 noundef %3267, ptr noundef @.str.51, ptr noundef @.str.17, i32 noundef 141, ptr noundef %3270, ptr noundef %3273, ptr noundef %3276, i32 noundef %3278) #9
  br label %3280

3280:                                             ; preds = %3263, %3246
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3281

3281:                                             ; preds = %3280
  br label %3282

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

3283:                                             ; No predecessors!
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284, %3224
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287
  %3289 = load i32, ptr @test_count, align 4, !tbaa !5
  %3290 = add nsw i32 %3289, 1
  store i32 %3290, ptr @test_count, align 4, !tbaa !5
  %3291 = load ptr, ptr %62, align 8, !tbaa !9
  %3292 = call i32 @s2n_connection_wipe(ptr noundef %3291)
  %3293 = icmp eq i32 %3292, -1
  br i1 %3293, label %3294, label %3347

3294:                                             ; preds = %3288
  br label %3295

3295:                                             ; preds = %3294
  br label %3296

3296:                                             ; preds = %3295
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %3297 = call ptr @__errno_location() #10
  %3298 = load i32, ptr %3297, align 4, !tbaa !5
  store i32 %3298, ptr %80, align 4, !tbaa !5
  %3299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3300 = call i32 @s2n_print_stacktrace(ptr noundef %3299)
  %3301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3302 = trunc i8 %3301 to i1
  br i1 %3302, label %3303, label %3325

3303:                                             ; preds = %3296
  %3304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3305 = call i32 @fileno(ptr noundef %3304) #9
  %3306 = call i32 @isatty(i32 noundef %3305) #9
  %3307 = icmp ne i32 %3306, 0
  br i1 %3307, label %3308, label %3325

3308:                                             ; preds = %3303
  %3309 = load i32, ptr %80, align 4, !tbaa !5
  %3310 = call ptr @__errno_location() #10
  store i32 %3309, ptr %3310, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = load i32, ptr @test_count, align 4, !tbaa !5
  %3313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror(i32 noundef %3314, ptr noundef @.str.20)
  %3316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call ptr @s2n_strerror_debug(i32 noundef %3317, ptr noundef @.str.20)
  %3319 = call ptr @__errno_location() #10
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call ptr @strerror(i32 noundef %3320) #9
  %3322 = call ptr @__errno_location() #10
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3311, ptr noundef @.str.18, i32 noundef %3312, ptr noundef @.str.48, ptr noundef @.str.17, i32 noundef 144, ptr noundef %3315, ptr noundef %3318, ptr noundef %3321, i32 noundef %3323) #9
  br label %3342

3325:                                             ; preds = %3303, %3296
  %3326 = load i32, ptr %80, align 4, !tbaa !5
  %3327 = call ptr @__errno_location() #10
  store i32 %3326, ptr %3327, align 4, !tbaa !5
  %3328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3329 = load i32, ptr @test_count, align 4, !tbaa !5
  %3330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  %3332 = call ptr @s2n_strerror(i32 noundef %3331, ptr noundef @.str.20)
  %3333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3334 = load i32, ptr %3333, align 4, !tbaa !5
  %3335 = call ptr @s2n_strerror_debug(i32 noundef %3334, ptr noundef @.str.20)
  %3336 = call ptr @__errno_location() #10
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  %3338 = call ptr @strerror(i32 noundef %3337) #9
  %3339 = call ptr @__errno_location() #10
  %3340 = load i32, ptr %3339, align 4, !tbaa !5
  %3341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3328, ptr noundef @.str.21, i32 noundef %3329, ptr noundef @.str.48, ptr noundef @.str.17, i32 noundef 144, ptr noundef %3332, ptr noundef %3335, ptr noundef %3338, i32 noundef %3340) #9
  br label %3342

3342:                                             ; preds = %3325, %3308
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3343

3343:                                             ; preds = %3342
  br label %3344

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

3345:                                             ; No predecessors!
  br label %3346

3346:                                             ; preds = %3345
  br label %3347

3347:                                             ; preds = %3346, %3288
  br label %3348

3348:                                             ; preds = %3347
  br label %3349

3349:                                             ; preds = %3348
  br label %3350

3350:                                             ; preds = %3349
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = add nsw i32 %3351, 1
  store i32 %3352, ptr @test_count, align 4, !tbaa !5
  %3353 = load ptr, ptr %62, align 8, !tbaa !9
  %3354 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef %3353, i32 noundef 4, ptr noundef %64)
  %3355 = icmp eq i32 %3354, -1
  br i1 %3355, label %3356, label %3409

3356:                                             ; preds = %3350
  br label %3357

3357:                                             ; preds = %3356
  br label %3358

3358:                                             ; preds = %3357
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  %3359 = call ptr @__errno_location() #10
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  store i32 %3360, ptr %81, align 4, !tbaa !5
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = call i32 @s2n_print_stacktrace(ptr noundef %3361)
  %3363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3364 = trunc i8 %3363 to i1
  br i1 %3364, label %3365, label %3387

3365:                                             ; preds = %3358
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = call i32 @fileno(ptr noundef %3366) #9
  %3368 = call i32 @isatty(i32 noundef %3367) #9
  %3369 = icmp ne i32 %3368, 0
  br i1 %3369, label %3370, label %3387

3370:                                             ; preds = %3365
  %3371 = load i32, ptr %81, align 4, !tbaa !5
  %3372 = call ptr @__errno_location() #10
  store i32 %3371, ptr %3372, align 4, !tbaa !5
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = load i32, ptr @test_count, align 4, !tbaa !5
  %3375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @s2n_strerror(i32 noundef %3376, ptr noundef @.str.20)
  %3378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call ptr @s2n_strerror_debug(i32 noundef %3379, ptr noundef @.str.20)
  %3381 = call ptr @__errno_location() #10
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call ptr @strerror(i32 noundef %3382) #9
  %3384 = call ptr @__errno_location() #10
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3373, ptr noundef @.str.18, i32 noundef %3374, ptr noundef @.str.44, ptr noundef @.str.17, i32 noundef 145, ptr noundef %3377, ptr noundef %3380, ptr noundef %3383, i32 noundef %3385) #9
  br label %3404

3387:                                             ; preds = %3365, %3358
  %3388 = load i32, ptr %81, align 4, !tbaa !5
  %3389 = call ptr @__errno_location() #10
  store i32 %3388, ptr %3389, align 4, !tbaa !5
  %3390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3391 = load i32, ptr @test_count, align 4, !tbaa !5
  %3392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3393 = load i32, ptr %3392, align 4, !tbaa !5
  %3394 = call ptr @s2n_strerror(i32 noundef %3393, ptr noundef @.str.20)
  %3395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3396 = load i32, ptr %3395, align 4, !tbaa !5
  %3397 = call ptr @s2n_strerror_debug(i32 noundef %3396, ptr noundef @.str.20)
  %3398 = call ptr @__errno_location() #10
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  %3400 = call ptr @strerror(i32 noundef %3399) #9
  %3401 = call ptr @__errno_location() #10
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3390, ptr noundef @.str.21, i32 noundef %3391, ptr noundef @.str.44, ptr noundef @.str.17, i32 noundef 145, ptr noundef %3394, ptr noundef %3397, ptr noundef %3400, i32 noundef %3402) #9
  br label %3404

3404:                                             ; preds = %3387, %3370
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %3405

3405:                                             ; preds = %3404
  br label %3406

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

3407:                                             ; No predecessors!
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

3409:                                             ; preds = %3408, %3350
  br label %3410

3410:                                             ; preds = %3409
  br label %3411

3411:                                             ; preds = %3410
  br label %3412

3412:                                             ; preds = %3411
  %3413 = load i32, ptr @test_count, align 4, !tbaa !5
  %3414 = add nsw i32 %3413, 1
  store i32 %3414, ptr @test_count, align 4, !tbaa !5
  %3415 = load ptr, ptr %64, align 8, !tbaa !9
  %3416 = icmp eq ptr %3415, null
  br i1 %3416, label %3417, label %3470

3417:                                             ; preds = %3412
  br label %3418

3418:                                             ; preds = %3417
  br label %3419

3419:                                             ; preds = %3418
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %3420 = call ptr @__errno_location() #10
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  store i32 %3421, ptr %82, align 4, !tbaa !5
  %3422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3423 = call i32 @s2n_print_stacktrace(ptr noundef %3422)
  %3424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3425 = trunc i8 %3424 to i1
  br i1 %3425, label %3426, label %3448

3426:                                             ; preds = %3419
  %3427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3428 = call i32 @fileno(ptr noundef %3427) #9
  %3429 = call i32 @isatty(i32 noundef %3428) #9
  %3430 = icmp ne i32 %3429, 0
  br i1 %3430, label %3431, label %3448

3431:                                             ; preds = %3426
  %3432 = load i32, ptr %82, align 4, !tbaa !5
  %3433 = call ptr @__errno_location() #10
  store i32 %3432, ptr %3433, align 4, !tbaa !5
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = load i32, ptr @test_count, align 4, !tbaa !5
  %3436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call ptr @s2n_strerror(i32 noundef %3437, ptr noundef @.str.20)
  %3439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @s2n_strerror_debug(i32 noundef %3440, ptr noundef @.str.20)
  %3442 = call ptr @__errno_location() #10
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @strerror(i32 noundef %3443) #9
  %3445 = call ptr @__errno_location() #10
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  %3447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3434, ptr noundef @.str.18, i32 noundef %3435, ptr noundef @.str.45, ptr noundef @.str.17, i32 noundef 146, ptr noundef %3438, ptr noundef %3441, ptr noundef %3444, i32 noundef %3446) #9
  br label %3465

3448:                                             ; preds = %3426, %3419
  %3449 = load i32, ptr %82, align 4, !tbaa !5
  %3450 = call ptr @__errno_location() #10
  store i32 %3449, ptr %3450, align 4, !tbaa !5
  %3451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3452 = load i32, ptr @test_count, align 4, !tbaa !5
  %3453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror(i32 noundef %3454, ptr noundef @.str.20)
  %3456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call ptr @s2n_strerror_debug(i32 noundef %3457, ptr noundef @.str.20)
  %3459 = call ptr @__errno_location() #10
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @strerror(i32 noundef %3460) #9
  %3462 = call ptr @__errno_location() #10
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3451, ptr noundef @.str.21, i32 noundef %3452, ptr noundef @.str.45, ptr noundef @.str.17, i32 noundef 146, ptr noundef %3455, ptr noundef %3458, ptr noundef %3461, i32 noundef %3463) #9
  br label %3465

3465:                                             ; preds = %3448, %3431
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %3466

3466:                                             ; preds = %3465
  br label %3467

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

3468:                                             ; No predecessors!
  br label %3469

3469:                                             ; preds = %3468
  br label %3470

3470:                                             ; preds = %3469, %3412
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

3472:                                             ; preds = %3471
  br label %3473

3473:                                             ; preds = %3472
  %3474 = load i32, ptr @test_count, align 4, !tbaa !5
  %3475 = add nsw i32 %3474, 1
  store i32 %3475, ptr @test_count, align 4, !tbaa !5
  %3476 = load ptr, ptr %64, align 8, !tbaa !9
  %3477 = getelementptr inbounds [32 x i8], ptr %61, i64 0, i64 0
  %3478 = call i32 @s2n_hash_digest(ptr noundef %3476, ptr noundef %3477, i32 noundef 32)
  %3479 = icmp eq i32 %3478, -1
  br i1 %3479, label %3480, label %3533

3480:                                             ; preds = %3473
  br label %3481

3481:                                             ; preds = %3480
  br label %3482

3482:                                             ; preds = %3481
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %3483 = call ptr @__errno_location() #10
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  store i32 %3484, ptr %83, align 4, !tbaa !5
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3486 = call i32 @s2n_print_stacktrace(ptr noundef %3485)
  %3487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3488 = trunc i8 %3487 to i1
  br i1 %3488, label %3489, label %3511

3489:                                             ; preds = %3482
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = call i32 @fileno(ptr noundef %3490) #9
  %3492 = call i32 @isatty(i32 noundef %3491) #9
  %3493 = icmp ne i32 %3492, 0
  br i1 %3493, label %3494, label %3511

3494:                                             ; preds = %3489
  %3495 = load i32, ptr %83, align 4, !tbaa !5
  %3496 = call ptr @__errno_location() #10
  store i32 %3495, ptr %3496, align 4, !tbaa !5
  %3497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3498 = load i32, ptr @test_count, align 4, !tbaa !5
  %3499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @s2n_strerror(i32 noundef %3500, ptr noundef @.str.20)
  %3502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call ptr @s2n_strerror_debug(i32 noundef %3503, ptr noundef @.str.20)
  %3505 = call ptr @__errno_location() #10
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call ptr @strerror(i32 noundef %3506) #9
  %3508 = call ptr @__errno_location() #10
  %3509 = load i32, ptr %3508, align 4, !tbaa !5
  %3510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3497, ptr noundef @.str.18, i32 noundef %3498, ptr noundef @.str.46, ptr noundef @.str.17, i32 noundef 147, ptr noundef %3501, ptr noundef %3504, ptr noundef %3507, i32 noundef %3509) #9
  br label %3528

3511:                                             ; preds = %3489, %3482
  %3512 = load i32, ptr %83, align 4, !tbaa !5
  %3513 = call ptr @__errno_location() #10
  store i32 %3512, ptr %3513, align 4, !tbaa !5
  %3514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3515 = load i32, ptr @test_count, align 4, !tbaa !5
  %3516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  %3518 = call ptr @s2n_strerror(i32 noundef %3517, ptr noundef @.str.20)
  %3519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3520 = load i32, ptr %3519, align 4, !tbaa !5
  %3521 = call ptr @s2n_strerror_debug(i32 noundef %3520, ptr noundef @.str.20)
  %3522 = call ptr @__errno_location() #10
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  %3524 = call ptr @strerror(i32 noundef %3523) #9
  %3525 = call ptr @__errno_location() #10
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3514, ptr noundef @.str.21, i32 noundef %3515, ptr noundef @.str.46, ptr noundef @.str.17, i32 noundef 147, ptr noundef %3518, ptr noundef %3521, ptr noundef %3524, i32 noundef %3526) #9
  br label %3528

3528:                                             ; preds = %3511, %3494
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

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

3531:                                             ; No predecessors!
  br label %3532

3532:                                             ; preds = %3531
  br label %3533

3533:                                             ; preds = %3532, %3473
  br label %3534

3534:                                             ; preds = %3533
  br label %3535

3535:                                             ; preds = %3534
  br label %3536

3536:                                             ; preds = %3535
  %3537 = load i32, ptr @test_count, align 4, !tbaa !5
  %3538 = add nsw i32 %3537, 1
  store i32 %3538, ptr @test_count, align 4, !tbaa !5
  %3539 = load ptr, ptr %62, align 8, !tbaa !9
  %3540 = call i32 @s2n_connection_free(ptr noundef %3539)
  %3541 = icmp eq i32 %3540, -1
  br i1 %3541, label %3542, label %3595

3542:                                             ; preds = %3536
  br label %3543

3543:                                             ; preds = %3542
  br label %3544

3544:                                             ; preds = %3543
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  %3545 = call ptr @__errno_location() #10
  %3546 = load i32, ptr %3545, align 4, !tbaa !5
  store i32 %3546, ptr %84, align 4, !tbaa !5
  %3547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3548 = call i32 @s2n_print_stacktrace(ptr noundef %3547)
  %3549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3550 = trunc i8 %3549 to i1
  br i1 %3550, label %3551, label %3573

3551:                                             ; preds = %3544
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = call i32 @fileno(ptr noundef %3552) #9
  %3554 = call i32 @isatty(i32 noundef %3553) #9
  %3555 = icmp ne i32 %3554, 0
  br i1 %3555, label %3556, label %3573

3556:                                             ; preds = %3551
  %3557 = load i32, ptr %84, align 4, !tbaa !5
  %3558 = call ptr @__errno_location() #10
  store i32 %3557, ptr %3558, align 4, !tbaa !5
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = load i32, ptr @test_count, align 4, !tbaa !5
  %3561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call ptr @s2n_strerror(i32 noundef %3562, ptr noundef @.str.20)
  %3564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3565 = load i32, ptr %3564, align 4, !tbaa !5
  %3566 = call ptr @s2n_strerror_debug(i32 noundef %3565, ptr noundef @.str.20)
  %3567 = call ptr @__errno_location() #10
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call ptr @strerror(i32 noundef %3568) #9
  %3570 = call ptr @__errno_location() #10
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  %3572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3559, ptr noundef @.str.18, i32 noundef %3560, ptr noundef @.str.52, ptr noundef @.str.17, i32 noundef 150, ptr noundef %3563, ptr noundef %3566, ptr noundef %3569, i32 noundef %3571) #9
  br label %3590

3573:                                             ; preds = %3551, %3544
  %3574 = load i32, ptr %84, align 4, !tbaa !5
  %3575 = call ptr @__errno_location() #10
  store i32 %3574, ptr %3575, align 4, !tbaa !5
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = load i32, ptr @test_count, align 4, !tbaa !5
  %3578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = call ptr @s2n_strerror(i32 noundef %3579, ptr noundef @.str.20)
  %3581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3582 = load i32, ptr %3581, align 4, !tbaa !5
  %3583 = call ptr @s2n_strerror_debug(i32 noundef %3582, ptr noundef @.str.20)
  %3584 = call ptr @__errno_location() #10
  %3585 = load i32, ptr %3584, align 4, !tbaa !5
  %3586 = call ptr @strerror(i32 noundef %3585) #9
  %3587 = call ptr @__errno_location() #10
  %3588 = load i32, ptr %3587, align 4, !tbaa !5
  %3589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3576, ptr noundef @.str.21, i32 noundef %3577, ptr noundef @.str.52, ptr noundef @.str.17, i32 noundef 150, ptr noundef %3580, ptr noundef %3583, ptr noundef %3586, i32 noundef %3588) #9
  br label %3590

3590:                                             ; preds = %3573, %3556
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3591

3591:                                             ; preds = %3590
  br label %3592

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

3593:                                             ; No predecessors!
  br label %3594

3594:                                             ; preds = %3593
  br label %3595

3595:                                             ; preds = %3594, %3536
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

3597:                                             ; preds = %3596
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  br label %3598

3598:                                             ; preds = %3597
  br label %3599

3599:                                             ; preds = %3598
  %3600 = call i32 @s2n_cleanup()
  %3601 = icmp eq i32 %3600, -1
  br i1 %3601, label %3602, label %3653

3602:                                             ; preds = %3599
  br label %3603

3603:                                             ; preds = %3602
  br label %3604

3604:                                             ; preds = %3603
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %3605 = call ptr @__errno_location() #10
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  store i32 %3606, ptr %85, align 4, !tbaa !5
  %3607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3608 = call i32 @s2n_print_stacktrace(ptr noundef %3607)
  %3609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3610 = trunc i8 %3609 to i1
  br i1 %3610, label %3611, label %3633

3611:                                             ; preds = %3604
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = call i32 @fileno(ptr noundef %3612) #9
  %3614 = call i32 @isatty(i32 noundef %3613) #9
  %3615 = icmp ne i32 %3614, 0
  br i1 %3615, label %3616, label %3633

3616:                                             ; preds = %3611
  %3617 = load i32, ptr %85, align 4, !tbaa !5
  %3618 = call ptr @__errno_location() #10
  store i32 %3617, ptr %3618, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror(i32 noundef %3622, ptr noundef @.str.20)
  %3624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror_debug(i32 noundef %3625, ptr noundef @.str.20)
  %3627 = call ptr @__errno_location() #10
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @strerror(i32 noundef %3628) #9
  %3630 = call ptr @__errno_location() #10
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3619, ptr noundef @.str.18, i32 noundef %3620, ptr noundef @.str.53, ptr noundef @.str.17, i32 noundef 153, ptr noundef %3623, ptr noundef %3626, ptr noundef %3629, i32 noundef %3631) #9
  br label %3650

3633:                                             ; preds = %3611, %3604
  %3634 = load i32, ptr %85, align 4, !tbaa !5
  %3635 = call ptr @__errno_location() #10
  store i32 %3634, ptr %3635, align 4, !tbaa !5
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = load i32, ptr @test_count, align 4, !tbaa !5
  %3638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = call ptr @s2n_strerror(i32 noundef %3639, ptr noundef @.str.20)
  %3641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = call ptr @s2n_strerror_debug(i32 noundef %3642, ptr noundef @.str.20)
  %3644 = call ptr @__errno_location() #10
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call ptr @strerror(i32 noundef %3645) #9
  %3647 = call ptr @__errno_location() #10
  %3648 = load i32, ptr %3647, align 4, !tbaa !5
  %3649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3636, ptr noundef @.str.21, i32 noundef %3637, ptr noundef @.str.53, ptr noundef @.str.17, i32 noundef 153, ptr noundef %3640, ptr noundef %3643, ptr noundef %3646, i32 noundef %3648) #9
  br label %3650

3650:                                             ; preds = %3633, %3616
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %3651

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

3652:                                             ; No predecessors!
  br label %3653

3653:                                             ; preds = %3652, %3599
  br label %3654

3654:                                             ; preds = %3653
  br label %3655

3655:                                             ; preds = %3654
  br label %3656

3656:                                             ; preds = %3655
  %3657 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3658 = icmp eq i32 %3657, -1
  br i1 %3658, label %3659, label %3710

3659:                                             ; preds = %3656
  br label %3660

3660:                                             ; preds = %3659
  br label %3661

3661:                                             ; preds = %3660
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %3662 = call ptr @__errno_location() #10
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  store i32 %3663, ptr %86, align 4, !tbaa !5
  %3664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3665 = call i32 @s2n_print_stacktrace(ptr noundef %3664)
  %3666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3667 = trunc i8 %3666 to i1
  br i1 %3667, label %3668, label %3690

3668:                                             ; preds = %3661
  %3669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3670 = call i32 @fileno(ptr noundef %3669) #9
  %3671 = call i32 @isatty(i32 noundef %3670) #9
  %3672 = icmp ne i32 %3671, 0
  br i1 %3672, label %3673, label %3690

3673:                                             ; preds = %3668
  %3674 = load i32, ptr %86, align 4, !tbaa !5
  %3675 = call ptr @__errno_location() #10
  store i32 %3674, ptr %3675, align 4, !tbaa !5
  %3676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3677 = load i32, ptr @test_count, align 4, !tbaa !5
  %3678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  %3680 = call ptr @s2n_strerror(i32 noundef %3679, ptr noundef @.str.20)
  %3681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3682 = load i32, ptr %3681, align 4, !tbaa !5
  %3683 = call ptr @s2n_strerror_debug(i32 noundef %3682, ptr noundef @.str.20)
  %3684 = call ptr @__errno_location() #10
  %3685 = load i32, ptr %3684, align 4, !tbaa !5
  %3686 = call ptr @strerror(i32 noundef %3685) #9
  %3687 = call ptr @__errno_location() #10
  %3688 = load i32, ptr %3687, align 4, !tbaa !5
  %3689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3676, ptr noundef @.str.18, i32 noundef %3677, ptr noundef @.str.54, ptr noundef @.str.17, i32 noundef 153, ptr noundef %3680, ptr noundef %3683, ptr noundef %3686, i32 noundef %3688) #9
  br label %3707

3690:                                             ; preds = %3668, %3661
  %3691 = load i32, ptr %86, align 4, !tbaa !5
  %3692 = call ptr @__errno_location() #10
  store i32 %3691, ptr %3692, align 4, !tbaa !5
  %3693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3694 = load i32, ptr @test_count, align 4, !tbaa !5
  %3695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror(i32 noundef %3696, ptr noundef @.str.20)
  %3698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call ptr @s2n_strerror_debug(i32 noundef %3699, ptr noundef @.str.20)
  %3701 = call ptr @__errno_location() #10
  %3702 = load i32, ptr %3701, align 4, !tbaa !5
  %3703 = call ptr @strerror(i32 noundef %3702) #9
  %3704 = call ptr @__errno_location() #10
  %3705 = load i32, ptr %3704, align 4, !tbaa !5
  %3706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3693, ptr noundef @.str.21, i32 noundef %3694, ptr noundef @.str.54, ptr noundef @.str.17, i32 noundef 153, ptr noundef %3697, ptr noundef %3700, ptr noundef %3703, i32 noundef %3705) #9
  br label %3707

3707:                                             ; preds = %3690, %3673
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %3708

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

3709:                                             ; No predecessors!
  br label %3710

3710:                                             ; preds = %3709, %3656
  br label %3711

3711:                                             ; preds = %3710
  %3712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3713 = trunc i8 %3712 to i1
  br i1 %3713, label %3714, label %3730

3714:                                             ; preds = %3711
  %3715 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3716 = call i32 @fileno(ptr noundef %3715) #9
  %3717 = call i32 @isatty(i32 noundef %3716) #9
  %3718 = icmp ne i32 %3717, 0
  br i1 %3718, label %3719, label %3730

3719:                                             ; preds = %3714
  %3720 = load i32, ptr @test_count, align 4, !tbaa !5
  %3721 = icmp ne i32 %3720, 0
  br i1 %3721, label %3722, label %3726

3722:                                             ; preds = %3719
  %3723 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3724 = load i32, ptr @test_count, align 4, !tbaa !5
  %3725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3723, ptr noundef @.str.55, i32 noundef %3724) #9
  br label %3729

3726:                                             ; preds = %3719
  %3727 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3727, ptr noundef @.str.56) #9
  br label %3729

3729:                                             ; preds = %3726, %3722
  br label %3741

3730:                                             ; preds = %3714, %3711
  %3731 = load i32, ptr @test_count, align 4, !tbaa !5
  %3732 = icmp ne i32 %3731, 0
  br i1 %3732, label %3733, label %3737

3733:                                             ; preds = %3730
  %3734 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3735 = load i32, ptr @test_count, align 4, !tbaa !5
  %3736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3734, ptr noundef @.str.57, i32 noundef %3735) #9
  br label %3740

3737:                                             ; preds = %3730
  %3738 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3738, ptr noundef @.str.58) #9
  br label %3740

3740:                                             ; preds = %3737, %3733
  br label %3741

3741:                                             ; preds = %3740, %3729
  store i32 0, ptr %3, align 4
  br label %3743

3742:                                             ; No predecessors!
  br label %3743

3743:                                             ; preds = %3742, %3741
  %3744 = load i32, ptr %3, align 4
  ret i32 %3744
}

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

declare i32 @fflush(ptr noundef) #5

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #5

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

declare i32 @s2n_print_stacktrace(ptr noundef) #5

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #5

declare i32 @s2n_init() #5

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

declare i32 @s2n_handshake_hashes_new(ptr noundef) #5

declare void @s2n_debug_info_reset() #5

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

declare i32 @s2n_hash_digest_size(i32 noundef, ptr noundef) #5

declare i32 @s2n_hash_digest(ptr noundef, ptr noundef, i32 noundef) #5

declare i32 @s2n_handshake_hashes_free(ptr noundef) #5

declare i32 @s2n_handshake_hashes_wipe(ptr noundef) #5

declare ptr @s2n_connection_new(i32 noundef) #5

declare i32 @s2n_connection_wipe(ptr noundef) #5

declare i32 @s2n_connection_free_handshake(ptr noundef) #5

declare i32 @s2n_connection_free(ptr noundef) #5

declare i32 @s2n_cleanup() #5

attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind 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 #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 = { 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 2056}
!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 = !{!7, !7, i64 0}
!43 = distinct !{!43, !44}
!44 = !{!"llvm.loop.mustprogress"}
!45 = distinct !{!45, !44}


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

%struct.s2n_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 local_unnamed_addr global i8, align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.16 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [84 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.18 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_get_hash_state_ptr(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #2 {
  %3 = alloca %struct.s2n_connection, align 8
  %4 = alloca [100 x i8], align 16
  %5 = alloca i8, align 1
  %6 = alloca ptr, align 8
  %7 = alloca %struct.s2n_connection, align 8
  %8 = alloca [100 x i8], align 16
  %9 = alloca i8, align 1
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca [32 x i8], align 16
  %13 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %14 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17) #10
  %16 = load ptr, ptr @stdout, align 8, !tbaa !9
  %17 = tail call i32 @fflush(ptr noundef %16)
  %18 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %19 = icmp eq i32 %18, -1
  br i1 %19, label %20, label %44

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

27:                                               ; preds = %20
  %28 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29 = tail call i32 @fileno(ptr noundef %28) #10
  %30 = tail call i32 @isatty(i32 noundef %29) #10
  %.not205 = icmp eq i32 %30, 0
  br i1 %.not205, label %31, label %32

31:                                               ; preds = %27, %20
  br label %32

32:                                               ; preds = %27, %31
  %.str.21.sink = phi ptr [ @.str.21, %31 ], [ @.str.18, %27 ]
  store i32 %22, ptr %21, align 4, !tbaa !5
  %33 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34 = load i32, ptr @test_count, align 4, !tbaa !5
  %35 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36 = load i32, ptr %35, align 4, !tbaa !5
  %37 = tail call ptr @s2n_strerror(i32 noundef %36, ptr noundef nonnull @.str.20) #10
  %38 = load i32, ptr %35, align 4, !tbaa !5
  %39 = tail call ptr @s2n_strerror_debug(i32 noundef %38, ptr noundef nonnull @.str.20) #10
  %40 = load i32, ptr %21, align 4, !tbaa !5
  %41 = tail call ptr @strerror(i32 noundef %40) #10
  %42 = load i32, ptr %21, align 4, !tbaa !5
  %43 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull %.str.21.sink, i32 noundef %34, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.17, i32 noundef 26, ptr noundef %37, ptr noundef %39, ptr noundef %41, i32 noundef %42) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

44:                                               ; preds = %2
  %45 = load i32, ptr @test_count, align 4, !tbaa !5
  %46 = add nsw i32 %45, 1
  store i32 %46, ptr @test_count, align 4, !tbaa !5
  %47 = tail call i32 @s2n_enable_atexit() #10
  %48 = icmp eq i32 %47, -1
  br i1 %48, label %49, label %73

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

56:                                               ; preds = %49
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = tail call i32 @fileno(ptr noundef %57) #10
  %59 = tail call i32 @isatty(i32 noundef %58) #10
  %.not204 = icmp eq i32 %59, 0
  br i1 %.not204, label %60, label %61

60:                                               ; preds = %56, %49
  br label %61

61:                                               ; preds = %56, %60
  %.str.21.sink279 = phi ptr [ @.str.21, %60 ], [ @.str.18, %56 ]
  store i32 %51, ptr %50, align 4, !tbaa !5
  %62 = load ptr, ptr @stderr, align 8, !tbaa !9
  %63 = load i32, ptr @test_count, align 4, !tbaa !5
  %64 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %65 = load i32, ptr %64, align 4, !tbaa !5
  %66 = tail call ptr @s2n_strerror(i32 noundef %65, ptr noundef nonnull @.str.20) #10
  %67 = load i32, ptr %64, align 4, !tbaa !5
  %68 = tail call ptr @s2n_strerror_debug(i32 noundef %67, ptr noundef nonnull @.str.20) #10
  %69 = load i32, ptr %50, align 4, !tbaa !5
  %70 = tail call ptr @strerror(i32 noundef %69) #10
  %71 = load i32, ptr %50, align 4, !tbaa !5
  %72 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef nonnull %.str.21.sink279, i32 noundef %63, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.17, i32 noundef 26, ptr noundef %66, ptr noundef %68, ptr noundef %70, i32 noundef %71) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

73:                                               ; preds = %44
  %74 = tail call i32 @s2n_init() #10
  %75 = icmp eq i32 %74, -1
  br i1 %75, label %76, label %100

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

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

87:                                               ; preds = %83, %76
  br label %88

88:                                               ; preds = %83, %87
  %.str.21.sink290 = phi ptr [ @.str.21, %87 ], [ @.str.18, %83 ]
  store i32 %78, ptr %77, align 4, !tbaa !5
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = load i32, ptr @test_count, align 4, !tbaa !5
  %91 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %93 = tail call ptr @s2n_strerror(i32 noundef %92, ptr noundef nonnull @.str.20) #10
  %94 = load i32, ptr %91, align 4, !tbaa !5
  %95 = tail call ptr @s2n_strerror_debug(i32 noundef %94, ptr noundef nonnull @.str.20) #10
  %96 = load i32, ptr %77, align 4, !tbaa !5
  %97 = tail call ptr @strerror(i32 noundef %96) #10
  %98 = load i32, ptr %77, align 4, !tbaa !5
  %99 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %89, ptr noundef nonnull %.str.21.sink290, i32 noundef %90, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.17, i32 noundef 26, ptr noundef %93, ptr noundef %95, ptr noundef %97, i32 noundef %98) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

100:                                              ; preds = %73
  %101 = load i32, ptr @test_count, align 4, !tbaa !5
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr @test_count, align 4, !tbaa !5
  %103 = tail call i32 @s2n_handshake_hashes_new(ptr noundef null) #10
  %104 = tail call zeroext i1 @s2n_result_is_error(i32 %103)
  br i1 %104, label %129, label %105

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

112:                                              ; preds = %105
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = tail call i32 @fileno(ptr noundef %113) #10
  %115 = tail call i32 @isatty(i32 noundef %114) #10
  %.not = icmp eq i32 %115, 0
  br i1 %.not, label %116, label %117

116:                                              ; preds = %112, %105
  br label %117

117:                                              ; preds = %112, %116
  %.str.21.sink301 = phi ptr [ @.str.21, %116 ], [ @.str.18, %112 ]
  store i32 %107, ptr %106, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = tail call ptr @s2n_strerror(i32 noundef %121, ptr noundef nonnull @.str.20) #10
  %123 = load i32, ptr %120, align 4, !tbaa !5
  %124 = tail call ptr @s2n_strerror_debug(i32 noundef %123, ptr noundef nonnull @.str.20) #10
  %125 = load i32, ptr %106, align 4, !tbaa !5
  %126 = tail call ptr @strerror(i32 noundef %125) #10
  %127 = load i32, ptr %106, align 4, !tbaa !5
  %128 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef nonnull %.str.21.sink301, i32 noundef %119, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.17, i32 noundef 31, ptr noundef %122, ptr noundef %124, ptr noundef %126, i32 noundef %127) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

129:                                              ; preds = %100
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = add nsw i32 %130, 1
  store i32 %131, ptr @test_count, align 4, !tbaa !5
  %132 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = icmp eq i32 %133, 402653193
  br i1 %134, label %158, label %135

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

142:                                              ; preds = %135
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = tail call i32 @fileno(ptr noundef %143) #10
  %145 = tail call i32 @isatty(i32 noundef %144) #10
  %.not147 = icmp eq i32 %145, 0
  br i1 %.not147, label %146, label %147

146:                                              ; preds = %142, %135
  br label %147

147:                                              ; preds = %142, %146
  %.str.21.sink312 = phi ptr [ @.str.21, %146 ], [ @.str.18, %142 ]
  store i32 %137, ptr %136, align 4, !tbaa !5
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = load i32, ptr %132, align 4, !tbaa !5
  %151 = tail call ptr @s2n_strerror(i32 noundef %150, ptr noundef nonnull @.str.20) #10
  %152 = load i32, ptr %132, align 4, !tbaa !5
  %153 = tail call ptr @s2n_strerror_debug(i32 noundef %152, ptr noundef nonnull @.str.20) #10
  %154 = load i32, ptr %136, align 4, !tbaa !5
  %155 = tail call ptr @strerror(i32 noundef %154) #10
  %156 = load i32, ptr %136, align 4, !tbaa !5
  %157 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %148, ptr noundef nonnull %.str.21.sink312, i32 noundef %149, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.17, i32 noundef 31, ptr noundef %151, ptr noundef %153, ptr noundef %155, i32 noundef %156) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

158:                                              ; preds = %129
  %159 = add nsw i32 %130, 2
  store i32 %159, ptr @test_count, align 4, !tbaa !5
  %160 = tail call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.20) #10
  %161 = icmp eq ptr %160, null
  br i1 %161, label %162, label %185

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

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

173:                                              ; preds = %169, %162
  br label %174

174:                                              ; preds = %169, %173
  %.str.21.sink321 = phi ptr [ @.str.21, %173 ], [ @.str.18, %169 ]
  store i32 %164, ptr %163, align 4, !tbaa !5
  %175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %176 = load i32, ptr @test_count, align 4, !tbaa !5
  %177 = load i32, ptr %132, align 4, !tbaa !5
  %178 = tail call ptr @s2n_strerror(i32 noundef %177, ptr noundef nonnull @.str.20) #10
  %179 = load i32, ptr %132, align 4, !tbaa !5
  %180 = tail call ptr @s2n_strerror_debug(i32 noundef %179, ptr noundef nonnull @.str.20) #10
  %181 = load i32, ptr %163, align 4, !tbaa !5
  %182 = tail call ptr @strerror(i32 noundef %181) #10
  %183 = load i32, ptr %163, align 4, !tbaa !5
  %184 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef nonnull %.str.21.sink321, i32 noundef %176, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.17, i32 noundef 31, ptr noundef %178, ptr noundef %180, ptr noundef %182, i32 noundef %183) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

185:                                              ; preds = %158
  store i32 0, ptr %132, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #10
  %186 = tail call ptr @__errno_location() #11
  store i32 0, ptr %186, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %3, i8 0, i64 4184, i1 false)
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = getelementptr inbounds i8, ptr %3, i64 2056
  %189 = add nsw i32 %187, 2
  store i32 %189, ptr @test_count, align 4, !tbaa !5
  %190 = call i32 @s2n_handshake_hashes_new(ptr noundef nonnull %188) #10
  %191 = call zeroext i1 @s2n_result_is_ok(i32 %190)
  br i1 %191, label %214, label %192

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

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

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

203:                                              ; preds = %198, %202
  %.str.21.sink330 = phi ptr [ @.str.21, %202 ], [ @.str.18, %198 ]
  store i32 %193, ptr %186, align 4, !tbaa !5
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = load i32, ptr @test_count, align 4, !tbaa !5
  %206 = load i32, ptr %132, align 4, !tbaa !5
  %207 = call ptr @s2n_strerror(i32 noundef %206, ptr noundef nonnull @.str.20) #10
  %208 = load i32, ptr %132, align 4, !tbaa !5
  %209 = call ptr @s2n_strerror_debug(i32 noundef %208, ptr noundef nonnull @.str.20) #10
  %210 = load i32, ptr %186, align 4, !tbaa !5
  %211 = call ptr @strerror(i32 noundef %210) #10
  %212 = load i32, ptr %186, align 4, !tbaa !5
  %213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %204, ptr noundef nonnull %.str.21.sink330, i32 noundef %205, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.17, i32 noundef 38, ptr noundef %207, ptr noundef %209, ptr noundef %211, i32 noundef %212) #12
  call void @exit(i32 noundef 1) #13
  unreachable

214:                                              ; preds = %185
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = add nsw i32 %215, 1
  store i32 %216, ptr @test_count, align 4, !tbaa !5
  %217 = load ptr, ptr %188, align 8, !tbaa !15
  %218 = icmp eq ptr %217, null
  br i1 %218, label %219, label %.peel.next

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

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

229:                                              ; preds = %225, %219
  br label %230

230:                                              ; preds = %225, %229
  %.str.21.sink339 = phi ptr [ @.str.21, %229 ], [ @.str.18, %225 ]
  store i32 %220, ptr %186, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = load i32, ptr %132, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror(i32 noundef %233, ptr noundef nonnull @.str.20) #10
  %235 = load i32, ptr %132, align 4, !tbaa !5
  %236 = call ptr @s2n_strerror_debug(i32 noundef %235, ptr noundef nonnull @.str.20) #10
  %237 = load i32, ptr %186, align 4, !tbaa !5
  %238 = call ptr @strerror(i32 noundef %237) #10
  %239 = load i32, ptr %186, align 4, !tbaa !5
  %240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %231, ptr noundef nonnull %.str.21.sink339, i32 noundef %232, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.17, i32 noundef 39, ptr noundef %234, ptr noundef %236, ptr noundef %238, i32 noundef %239) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.peel.next:                                       ; preds = %214
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %4) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %4, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  store i8 0, ptr %5, align 1, !tbaa !42
  %241 = load i32, ptr @test_count, align 4, !tbaa !5
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr @test_count, align 4, !tbaa !5
  %243 = call i32 @s2n_hash_digest_size(i32 noundef 1, ptr noundef nonnull %5) #10
  %244 = icmp eq i32 %243, -1
  br i1 %244, label %245, label %265

245:                                              ; preds = %452, %430, %408, %386, %364, %342, %.peel.next
  %.pre238 = load i32, ptr %186, align 4, !tbaa !5
  %.pre239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = call i32 @s2n_print_stacktrace(ptr noundef %.pre239) #10
  %247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %248 = trunc nuw i8 %247 to i1
  br i1 %248, label %249, label %253

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

253:                                              ; preds = %249, %245
  br label %254

254:                                              ; preds = %249, %253
  %.str.21.sink348 = phi ptr [ @.str.21, %253 ], [ @.str.18, %249 ]
  store i32 %.pre238, ptr %186, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = load i32, ptr @test_count, align 4, !tbaa !5
  %257 = load i32, ptr %132, align 4, !tbaa !5
  %258 = call ptr @s2n_strerror(i32 noundef %257, ptr noundef nonnull @.str.20) #10
  %259 = load i32, ptr %132, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror_debug(i32 noundef %259, ptr noundef nonnull @.str.20) #10
  %261 = load i32, ptr %186, align 4, !tbaa !5
  %262 = call ptr @strerror(i32 noundef %261) #10
  %263 = load i32, ptr %186, align 4, !tbaa !5
  %264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %255, ptr noundef nonnull %.str.21.sink348, i32 noundef %256, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.17, i32 noundef 50, ptr noundef %258, ptr noundef %260, ptr noundef %262, i32 noundef %263) #12
  call void @exit(i32 noundef 1) #13
  unreachable

265:                                              ; preds = %.peel.next
  %266 = load i32, ptr @test_count, align 4, !tbaa !5
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr @test_count, align 4, !tbaa !5
  %268 = load i8, ptr %5, align 1, !tbaa !42
  %269 = icmp ult i8 %268, 100
  br i1 %269, label %290, label %270

270:                                              ; preds = %457, %435, %413, %391, %369, %347, %265
  %.pre = load i32, ptr %186, align 4, !tbaa !5
  %.pre233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %271 = call i32 @s2n_print_stacktrace(ptr noundef %.pre233) #10
  %272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %273 = trunc nuw i8 %272 to i1
  br i1 %273, label %274, label %278

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

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

279:                                              ; preds = %274, %278
  %.str.21.sink357 = phi ptr [ @.str.21, %278 ], [ @.str.18, %274 ]
  store i32 %.pre, ptr %186, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = load i32, ptr %132, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror(i32 noundef %282, ptr noundef nonnull @.str.20) #10
  %284 = load i32, ptr %132, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror_debug(i32 noundef %284, ptr noundef nonnull @.str.20) #10
  %286 = load i32, ptr %186, align 4, !tbaa !5
  %287 = call ptr @strerror(i32 noundef %286) #10
  %288 = load i32, ptr %186, align 4, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef nonnull %.str.21.sink357, i32 noundef %281, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.17, i32 noundef 51, ptr noundef %283, ptr noundef %285, ptr noundef %287, i32 noundef %288) #12
  call void @exit(i32 noundef 1) #13
  unreachable

290:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  %291 = add nsw i32 %266, 2
  store i32 %291, ptr @test_count, align 4, !tbaa !5
  %292 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %3, i32 noundef 1, ptr noundef nonnull %6)
  %293 = icmp eq i32 %292, -1
  br i1 %293, label %294, label %314

294:                                              ; preds = %462, %440, %418, %396, %374, %352, %290
  %.pre236 = load i32, ptr %186, align 4, !tbaa !5
  %.pre237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = call i32 @s2n_print_stacktrace(ptr noundef %.pre237) #10
  %296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %297 = trunc nuw i8 %296 to i1
  br i1 %297, label %298, label %302

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

302:                                              ; preds = %298, %294
  br label %303

303:                                              ; preds = %298, %302
  %.str.21.sink366 = phi ptr [ @.str.21, %302 ], [ @.str.18, %298 ]
  store i32 %.pre236, ptr %186, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = load i32, ptr @test_count, align 4, !tbaa !5
  %306 = load i32, ptr %132, align 4, !tbaa !5
  %307 = call ptr @s2n_strerror(i32 noundef %306, ptr noundef nonnull @.str.20) #10
  %308 = load i32, ptr %132, align 4, !tbaa !5
  %309 = call ptr @s2n_strerror_debug(i32 noundef %308, ptr noundef nonnull @.str.20) #10
  %310 = load i32, ptr %186, align 4, !tbaa !5
  %311 = call ptr @strerror(i32 noundef %310) #10
  %312 = load i32, ptr %186, align 4, !tbaa !5
  %313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %304, ptr noundef nonnull %.str.21.sink366, i32 noundef %305, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.17, i32 noundef 54, ptr noundef %307, ptr noundef %309, ptr noundef %311, i32 noundef %312) #12
  call void @exit(i32 noundef 1) #13
  unreachable

314:                                              ; preds = %290
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr @test_count, align 4, !tbaa !5
  %317 = load ptr, ptr %6, align 8, !tbaa !9
  %318 = load i8, ptr %5, align 1, !tbaa !42
  %319 = zext i8 %318 to i32
  %320 = call i32 @s2n_hash_digest(ptr noundef %317, ptr noundef nonnull %4, i32 noundef %319) #10
  %321 = icmp eq i32 %320, -1
  br i1 %321, label %322, label %342

322:                                              ; preds = %466, %444, %422, %400, %378, %356, %314
  %.pre234 = load i32, ptr %186, align 4, !tbaa !5
  %.pre235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = call i32 @s2n_print_stacktrace(ptr noundef %.pre235) #10
  %324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %325 = trunc nuw i8 %324 to i1
  br i1 %325, label %326, label %330

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

330:                                              ; preds = %326, %322
  br label %331

331:                                              ; preds = %326, %330
  %.str.21.sink375 = phi ptr [ @.str.21, %330 ], [ @.str.18, %326 ]
  store i32 %.pre234, ptr %186, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = load i32, ptr %132, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror(i32 noundef %334, ptr noundef nonnull @.str.20) #10
  %336 = load i32, ptr %132, align 4, !tbaa !5
  %337 = call ptr @s2n_strerror_debug(i32 noundef %336, ptr noundef nonnull @.str.20) #10
  %338 = load i32, ptr %186, align 4, !tbaa !5
  %339 = call ptr @strerror(i32 noundef %338) #10
  %340 = load i32, ptr %186, align 4, !tbaa !5
  %341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %332, ptr noundef nonnull %.str.21.sink375, i32 noundef %333, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.17, i32 noundef 57, ptr noundef %335, ptr noundef %337, ptr noundef %339, i32 noundef %340) #12
  call void @exit(i32 noundef 1) #13
  unreachable

342:                                              ; preds = %314
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  store i8 0, ptr %5, align 1, !tbaa !42
  %343 = load i32, ptr @test_count, align 4, !tbaa !5
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr @test_count, align 4, !tbaa !5
  %345 = call i32 @s2n_hash_digest_size(i32 noundef 2, ptr noundef nonnull %5) #10
  %346 = icmp eq i32 %345, -1
  br i1 %346, label %245, label %347

347:                                              ; preds = %342
  %348 = load i32, ptr @test_count, align 4, !tbaa !5
  %349 = add nsw i32 %348, 1
  store i32 %349, ptr @test_count, align 4, !tbaa !5
  %350 = load i8, ptr %5, align 1, !tbaa !42
  %351 = icmp ult i8 %350, 100
  br i1 %351, label %352, label %270

352:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  %353 = add nsw i32 %348, 2
  store i32 %353, ptr @test_count, align 4, !tbaa !5
  %354 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %3, i32 noundef 2, ptr noundef nonnull %6)
  %355 = icmp eq i32 %354, -1
  br i1 %355, label %294, label %356

356:                                              ; preds = %352
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = add nsw i32 %357, 1
  store i32 %358, ptr @test_count, align 4, !tbaa !5
  %359 = load ptr, ptr %6, align 8, !tbaa !9
  %360 = load i8, ptr %5, align 1, !tbaa !42
  %361 = zext i8 %360 to i32
  %362 = call i32 @s2n_hash_digest(ptr noundef %359, ptr noundef nonnull %4, i32 noundef %361) #10
  %363 = icmp eq i32 %362, -1
  br i1 %363, label %322, label %364

364:                                              ; preds = %356
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  store i8 0, ptr %5, align 1, !tbaa !42
  %365 = load i32, ptr @test_count, align 4, !tbaa !5
  %366 = add nsw i32 %365, 1
  store i32 %366, ptr @test_count, align 4, !tbaa !5
  %367 = call i32 @s2n_hash_digest_size(i32 noundef 3, ptr noundef nonnull %5) #10
  %368 = icmp eq i32 %367, -1
  br i1 %368, label %245, label %369

369:                                              ; preds = %364
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr @test_count, align 4, !tbaa !5
  %372 = load i8, ptr %5, align 1, !tbaa !42
  %373 = icmp ult i8 %372, 100
  br i1 %373, label %374, label %270

374:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  %375 = add nsw i32 %370, 2
  store i32 %375, ptr @test_count, align 4, !tbaa !5
  %376 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %3, i32 noundef 3, ptr noundef nonnull %6)
  %377 = icmp eq i32 %376, -1
  br i1 %377, label %294, label %378

378:                                              ; preds = %374
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr @test_count, align 4, !tbaa !5
  %381 = load ptr, ptr %6, align 8, !tbaa !9
  %382 = load i8, ptr %5, align 1, !tbaa !42
  %383 = zext i8 %382 to i32
  %384 = call i32 @s2n_hash_digest(ptr noundef %381, ptr noundef nonnull %4, i32 noundef %383) #10
  %385 = icmp eq i32 %384, -1
  br i1 %385, label %322, label %386

386:                                              ; preds = %378
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  store i8 0, ptr %5, align 1, !tbaa !42
  %387 = load i32, ptr @test_count, align 4, !tbaa !5
  %388 = add nsw i32 %387, 1
  store i32 %388, ptr @test_count, align 4, !tbaa !5
  %389 = call i32 @s2n_hash_digest_size(i32 noundef 4, ptr noundef nonnull %5) #10
  %390 = icmp eq i32 %389, -1
  br i1 %390, label %245, label %391

391:                                              ; preds = %386
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = add nsw i32 %392, 1
  store i32 %393, ptr @test_count, align 4, !tbaa !5
  %394 = load i8, ptr %5, align 1, !tbaa !42
  %395 = icmp ult i8 %394, 100
  br i1 %395, label %396, label %270

396:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  %397 = add nsw i32 %392, 2
  store i32 %397, ptr @test_count, align 4, !tbaa !5
  %398 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %3, i32 noundef 4, ptr noundef nonnull %6)
  %399 = icmp eq i32 %398, -1
  br i1 %399, label %294, label %400

400:                                              ; preds = %396
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = add nsw i32 %401, 1
  store i32 %402, ptr @test_count, align 4, !tbaa !5
  %403 = load ptr, ptr %6, align 8, !tbaa !9
  %404 = load i8, ptr %5, align 1, !tbaa !42
  %405 = zext i8 %404 to i32
  %406 = call i32 @s2n_hash_digest(ptr noundef %403, ptr noundef nonnull %4, i32 noundef %405) #10
  %407 = icmp eq i32 %406, -1
  br i1 %407, label %322, label %408

408:                                              ; preds = %400
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  store i8 0, ptr %5, align 1, !tbaa !42
  %409 = load i32, ptr @test_count, align 4, !tbaa !5
  %410 = add nsw i32 %409, 1
  store i32 %410, ptr @test_count, align 4, !tbaa !5
  %411 = call i32 @s2n_hash_digest_size(i32 noundef 5, ptr noundef nonnull %5) #10
  %412 = icmp eq i32 %411, -1
  br i1 %412, label %245, label %413

413:                                              ; preds = %408
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = add nsw i32 %414, 1
  store i32 %415, ptr @test_count, align 4, !tbaa !5
  %416 = load i8, ptr %5, align 1, !tbaa !42
  %417 = icmp ult i8 %416, 100
  br i1 %417, label %418, label %270

418:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  %419 = add nsw i32 %414, 2
  store i32 %419, ptr @test_count, align 4, !tbaa !5
  %420 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %3, i32 noundef 5, ptr noundef nonnull %6)
  %421 = icmp eq i32 %420, -1
  br i1 %421, label %294, label %422

422:                                              ; preds = %418
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = add nsw i32 %423, 1
  store i32 %424, ptr @test_count, align 4, !tbaa !5
  %425 = load ptr, ptr %6, align 8, !tbaa !9
  %426 = load i8, ptr %5, align 1, !tbaa !42
  %427 = zext i8 %426 to i32
  %428 = call i32 @s2n_hash_digest(ptr noundef %425, ptr noundef nonnull %4, i32 noundef %427) #10
  %429 = icmp eq i32 %428, -1
  br i1 %429, label %322, label %430

430:                                              ; preds = %422
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  store i8 0, ptr %5, align 1, !tbaa !42
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = add nsw i32 %431, 1
  store i32 %432, ptr @test_count, align 4, !tbaa !5
  %433 = call i32 @s2n_hash_digest_size(i32 noundef 6, ptr noundef nonnull %5) #10
  %434 = icmp eq i32 %433, -1
  br i1 %434, label %245, label %435

435:                                              ; preds = %430
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = load i8, ptr %5, align 1, !tbaa !42
  %439 = icmp ult i8 %438, 100
  br i1 %439, label %440, label %270

440:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  %441 = add nsw i32 %436, 2
  store i32 %441, ptr @test_count, align 4, !tbaa !5
  %442 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %3, i32 noundef 6, ptr noundef nonnull %6)
  %443 = icmp eq i32 %442, -1
  br i1 %443, label %294, label %444

444:                                              ; preds = %440
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr @test_count, align 4, !tbaa !5
  %447 = load ptr, ptr %6, align 8, !tbaa !9
  %448 = load i8, ptr %5, align 1, !tbaa !42
  %449 = zext i8 %448 to i32
  %450 = call i32 @s2n_hash_digest(ptr noundef %447, ptr noundef nonnull %4, i32 noundef %449) #10
  %451 = icmp eq i32 %450, -1
  br i1 %451, label %322, label %452

452:                                              ; preds = %444
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  store i8 0, ptr %5, align 1, !tbaa !42
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = add nsw i32 %453, 1
  store i32 %454, ptr @test_count, align 4, !tbaa !5
  %455 = call i32 @s2n_hash_digest_size(i32 noundef 7, ptr noundef nonnull %5) #10
  %456 = icmp eq i32 %455, -1
  br i1 %456, label %245, label %457

457:                                              ; preds = %452
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr @test_count, align 4, !tbaa !5
  %460 = load i8, ptr %5, align 1, !tbaa !42
  %461 = icmp ult i8 %460, 100
  br i1 %461, label %462, label %270

462:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  %463 = add nsw i32 %458, 2
  store i32 %463, ptr @test_count, align 4, !tbaa !5
  %464 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %3, i32 noundef 7, ptr noundef nonnull %6)
  %465 = icmp eq i32 %464, -1
  br i1 %465, label %294, label %466

466:                                              ; preds = %462
  %467 = load i32, ptr @test_count, align 4, !tbaa !5
  %468 = add nsw i32 %467, 1
  store i32 %468, ptr @test_count, align 4, !tbaa !5
  %469 = load ptr, ptr %6, align 8, !tbaa !9
  %470 = load i8, ptr %5, align 1, !tbaa !42
  %471 = zext i8 %470 to i32
  %472 = call i32 @s2n_hash_digest(ptr noundef %469, ptr noundef nonnull %4, i32 noundef %471) #10
  %473 = icmp eq i32 %472, -1
  br i1 %473, label %322, label %.loopexit212

.loopexit212:                                     ; preds = %466
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  %474 = call i32 @s2n_handshake_hashes_free(ptr noundef nonnull %188) #10
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %3) #10
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = add nsw i32 %475, 1
  store i32 %476, ptr @test_count, align 4, !tbaa !5
  %477 = call i32 @s2n_handshake_hashes_wipe(ptr noundef null) #10
  %478 = call zeroext i1 @s2n_result_is_error(i32 %477)
  br i1 %478, label %501, label %479

479:                                              ; preds = %.loopexit212
  %480 = load i32, ptr %186, align 4, !tbaa !5
  %481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %482 = call i32 @s2n_print_stacktrace(ptr noundef %481) #10
  %483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %484 = trunc nuw i8 %483 to i1
  br i1 %484, label %485, label %489

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

489:                                              ; preds = %485, %479
  br label %490

490:                                              ; preds = %485, %489
  %.str.21.sink384 = phi ptr [ @.str.21, %489 ], [ @.str.18, %485 ]
  store i32 %480, ptr %186, align 4, !tbaa !5
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = load i32, ptr %132, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror(i32 noundef %493, ptr noundef nonnull @.str.20) #10
  %495 = load i32, ptr %132, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef nonnull @.str.20) #10
  %497 = load i32, ptr %186, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #10
  %499 = load i32, ptr %186, align 4, !tbaa !5
  %500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %491, ptr noundef nonnull %.str.21.sink384, i32 noundef %492, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.17, i32 noundef 67, ptr noundef %494, ptr noundef %496, ptr noundef %498, i32 noundef %499) #12
  call void @exit(i32 noundef 1) #13
  unreachable

501:                                              ; preds = %.loopexit212
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %504 = load i32, ptr %132, align 4, !tbaa !5
  %505 = icmp eq i32 %504, 402653193
  br i1 %505, label %528, label %506

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

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

516:                                              ; preds = %512, %506
  br label %517

517:                                              ; preds = %512, %516
  %.str.21.sink393 = phi ptr [ @.str.21, %516 ], [ @.str.18, %512 ]
  store i32 %507, ptr %186, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = load i32, ptr %132, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror(i32 noundef %520, ptr noundef nonnull @.str.20) #10
  %522 = load i32, ptr %132, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror_debug(i32 noundef %522, ptr noundef nonnull @.str.20) #10
  %524 = load i32, ptr %186, align 4, !tbaa !5
  %525 = call ptr @strerror(i32 noundef %524) #10
  %526 = load i32, ptr %186, align 4, !tbaa !5
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef nonnull %.str.21.sink393, i32 noundef %519, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.17, i32 noundef 67, ptr noundef %521, ptr noundef %523, ptr noundef %525, i32 noundef %526) #12
  call void @exit(i32 noundef 1) #13
  unreachable

528:                                              ; preds = %501
  %529 = add nsw i32 %502, 2
  store i32 %529, ptr @test_count, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.20) #10
  %531 = icmp eq ptr %530, null
  br i1 %531, label %532, label %554

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

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

542:                                              ; preds = %538, %532
  br label %543

543:                                              ; preds = %538, %542
  %.str.21.sink402 = phi ptr [ @.str.21, %542 ], [ @.str.18, %538 ]
  store i32 %533, ptr %186, align 4, !tbaa !5
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = load i32, ptr @test_count, align 4, !tbaa !5
  %546 = load i32, ptr %132, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror(i32 noundef %546, ptr noundef nonnull @.str.20) #10
  %548 = load i32, ptr %132, align 4, !tbaa !5
  %549 = call ptr @s2n_strerror_debug(i32 noundef %548, ptr noundef nonnull @.str.20) #10
  %550 = load i32, ptr %186, align 4, !tbaa !5
  %551 = call ptr @strerror(i32 noundef %550) #10
  %552 = load i32, ptr %186, align 4, !tbaa !5
  %553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %544, ptr noundef nonnull %.str.21.sink402, i32 noundef %545, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.17, i32 noundef 67, ptr noundef %547, ptr noundef %549, ptr noundef %551, i32 noundef %552) #12
  call void @exit(i32 noundef 1) #13
  unreachable

554:                                              ; preds = %528
  store i32 0, ptr %132, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %186, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %7) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %7, i8 0, i64 4184, i1 false)
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = add nsw i32 %555, 1
  store i32 %556, ptr @test_count, align 4, !tbaa !5
  %557 = getelementptr inbounds i8, ptr %7, i64 2056
  %558 = call i32 @s2n_handshake_hashes_new(ptr noundef nonnull %557) #10
  %559 = call zeroext i1 @s2n_result_is_ok(i32 %558)
  br i1 %559, label %582, label %560

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

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

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

571:                                              ; preds = %566, %570
  %.str.21.sink411 = phi ptr [ @.str.21, %570 ], [ @.str.18, %566 ]
  store i32 %561, ptr %186, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = load i32, ptr %132, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror(i32 noundef %574, ptr noundef nonnull @.str.20) #10
  %576 = load i32, ptr %132, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror_debug(i32 noundef %576, ptr noundef nonnull @.str.20) #10
  %578 = load i32, ptr %186, align 4, !tbaa !5
  %579 = call ptr @strerror(i32 noundef %578) #10
  %580 = load i32, ptr %186, align 4, !tbaa !5
  %581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %572, ptr noundef nonnull %.str.21.sink411, i32 noundef %573, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.17, i32 noundef 72, ptr noundef %575, ptr noundef %577, ptr noundef %579, i32 noundef %580) #12
  call void @exit(i32 noundef 1) #13
  unreachable

582:                                              ; preds = %554
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr @test_count, align 4, !tbaa !5
  %585 = load ptr, ptr %557, align 8, !tbaa !15
  %586 = icmp eq ptr %585, null
  br i1 %586, label %587, label %.peel.next215

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

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

597:                                              ; preds = %593, %587
  br label %598

598:                                              ; preds = %593, %597
  %.str.21.sink420 = phi ptr [ @.str.21, %597 ], [ @.str.18, %593 ]
  store i32 %588, ptr %186, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = load i32, ptr %132, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror(i32 noundef %601, ptr noundef nonnull @.str.20) #10
  %603 = load i32, ptr %132, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror_debug(i32 noundef %603, ptr noundef nonnull @.str.20) #10
  %605 = load i32, ptr %186, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #10
  %607 = load i32, ptr %186, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.21.sink420, i32 noundef %600, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.17, i32 noundef 73, ptr noundef %602, ptr noundef %604, ptr noundef %606, i32 noundef %607) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.peel.next215:                                    ; preds = %582
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %8) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %8, i8 0, i64 100, i1 false)
  br label %614

.loopexit227:                                     ; preds = %847
  %609 = call i32 @s2n_handshake_hashes_free(ptr noundef nonnull %557) #10
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %7) #10
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr @test_count, align 4, !tbaa !5
  %612 = call i32 @s2n_handshake_hashes_free(ptr noundef null) #10
  %613 = call zeroext i1 @s2n_result_is_error(i32 %612)
  br i1 %613, label %871, label %849

614:                                              ; preds = %847, %.peel.next215
  %.0143207 = phi i32 [ 1, %.peel.next215 ], [ %848, %847 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #10
  store i8 0, ptr %9, align 1, !tbaa !42
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = add nsw i32 %615, 1
  store i32 %616, ptr @test_count, align 4, !tbaa !5
  %617 = call i32 @s2n_hash_digest_size(i32 noundef %.0143207, ptr noundef nonnull %9) #10
  %618 = icmp eq i32 %617, -1
  br i1 %618, label %619, label %639

619:                                              ; preds = %614
  %.pre267 = load i32, ptr %186, align 4, !tbaa !5
  %.pre268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %620 = call i32 @s2n_print_stacktrace(ptr noundef %.pre268) #10
  %621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %622 = trunc nuw i8 %621 to i1
  br i1 %622, label %623, label %627

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

627:                                              ; preds = %623, %619
  br label %628

628:                                              ; preds = %623, %627
  %.str.21.sink429 = phi ptr [ @.str.21, %627 ], [ @.str.18, %623 ]
  store i32 %.pre267, ptr %186, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = load i32, ptr @test_count, align 4, !tbaa !5
  %631 = load i32, ptr %132, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef nonnull @.str.20) #10
  %633 = load i32, ptr %132, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef nonnull @.str.20) #10
  %635 = load i32, ptr %186, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #10
  %637 = load i32, ptr %186, align 4, !tbaa !5
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %629, ptr noundef nonnull %.str.21.sink429, i32 noundef %630, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.17, i32 noundef 83, ptr noundef %632, ptr noundef %634, ptr noundef %636, i32 noundef %637) #12
  call void @exit(i32 noundef 1) #13
  unreachable

639:                                              ; preds = %614
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = add nsw i32 %640, 1
  store i32 %641, ptr @test_count, align 4, !tbaa !5
  %642 = load i8, ptr %9, align 1, !tbaa !42
  %643 = icmp ult i8 %642, 100
  br i1 %643, label %664, label %644

644:                                              ; preds = %639
  %.pre251 = load i32, ptr %186, align 4, !tbaa !5
  %.pre252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = call i32 @s2n_print_stacktrace(ptr noundef %.pre252) #10
  %646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %647 = trunc nuw i8 %646 to i1
  br i1 %647, label %648, label %652

648:                                              ; preds = %644
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = call i32 @fileno(ptr noundef %649) #10
  %651 = call i32 @isatty(i32 noundef %650) #10
  %.not186 = icmp eq i32 %651, 0
  br i1 %.not186, label %652, label %653

652:                                              ; preds = %648, %644
  br label %653

653:                                              ; preds = %648, %652
  %.str.21.sink438 = phi ptr [ @.str.21, %652 ], [ @.str.18, %648 ]
  store i32 %.pre251, ptr %186, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = load i32, ptr %132, align 4, !tbaa !5
  %657 = call ptr @s2n_strerror(i32 noundef %656, ptr noundef nonnull @.str.20) #10
  %658 = load i32, ptr %132, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef nonnull @.str.20) #10
  %660 = load i32, ptr %186, align 4, !tbaa !5
  %661 = call ptr @strerror(i32 noundef %660) #10
  %662 = load i32, ptr %186, align 4, !tbaa !5
  %663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef nonnull %.str.21.sink438, i32 noundef %655, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.17, i32 noundef 84, ptr noundef %657, ptr noundef %659, ptr noundef %661, i32 noundef %662) #12
  call void @exit(i32 noundef 1) #13
  unreachable

664:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  store ptr null, ptr %10, align 8, !tbaa !9
  %665 = add nsw i32 %640, 2
  store i32 %665, ptr @test_count, align 4, !tbaa !5
  %666 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %7, i32 noundef %.0143207, ptr noundef nonnull %10)
  %667 = icmp eq i32 %666, -1
  br i1 %667, label %668, label %688

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

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

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

677:                                              ; preds = %672, %676
  %.str.21.sink447 = phi ptr [ @.str.21, %676 ], [ @.str.18, %672 ]
  store i32 %.pre265, ptr %186, align 4, !tbaa !5
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = load i32, ptr @test_count, align 4, !tbaa !5
  %680 = load i32, ptr %132, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror(i32 noundef %680, ptr noundef nonnull @.str.20) #10
  %682 = load i32, ptr %132, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror_debug(i32 noundef %682, ptr noundef nonnull @.str.20) #10
  %684 = load i32, ptr %186, align 4, !tbaa !5
  %685 = call ptr @strerror(i32 noundef %684) #10
  %686 = load i32, ptr %186, align 4, !tbaa !5
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %678, ptr noundef nonnull %.str.21.sink447, i32 noundef %679, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.17, i32 noundef 87, ptr noundef %681, ptr noundef %683, ptr noundef %685, i32 noundef %686) #12
  call void @exit(i32 noundef 1) #13
  unreachable

688:                                              ; preds = %664
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr @test_count, align 4, !tbaa !5
  %691 = load ptr, ptr %10, align 8, !tbaa !9
  %692 = load i8, ptr %9, align 1, !tbaa !42
  %693 = zext i8 %692 to i32
  %694 = call i32 @s2n_hash_digest(ptr noundef %691, ptr noundef nonnull %8, i32 noundef %693) #10
  %695 = icmp eq i32 %694, -1
  br i1 %695, label %696, label %716

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

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

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

705:                                              ; preds = %700, %704
  %.str.21.sink456 = phi ptr [ @.str.21, %704 ], [ @.str.18, %700 ]
  store i32 %.pre263, ptr %186, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = load i32, ptr %132, align 4, !tbaa !5
  %709 = call ptr @s2n_strerror(i32 noundef %708, ptr noundef nonnull @.str.20) #10
  %710 = load i32, ptr %132, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror_debug(i32 noundef %710, ptr noundef nonnull @.str.20) #10
  %712 = load i32, ptr %186, align 4, !tbaa !5
  %713 = call ptr @strerror(i32 noundef %712) #10
  %714 = load i32, ptr %186, align 4, !tbaa !5
  %715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef nonnull %.str.21.sink456, i32 noundef %707, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.17, i32 noundef 88, ptr noundef %709, ptr noundef %711, ptr noundef %713, i32 noundef %714) #12
  call void @exit(i32 noundef 1) #13
  unreachable

716:                                              ; preds = %688
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = add nsw i32 %717, 1
  store i32 %718, ptr @test_count, align 4, !tbaa !5
  %719 = load ptr, ptr %10, align 8, !tbaa !9
  %720 = load i8, ptr %9, align 1, !tbaa !42
  %721 = zext i8 %720 to i32
  %722 = call i32 @s2n_hash_digest(ptr noundef %719, ptr noundef nonnull %8, i32 noundef %721) #10
  %723 = icmp eq i32 %722, -1
  br i1 %723, label %744, label %724

724:                                              ; preds = %716
  %.pre253 = load i32, ptr %186, align 4, !tbaa !5
  %.pre254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = call i32 @s2n_print_stacktrace(ptr noundef %.pre254) #10
  %726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %727 = trunc nuw i8 %726 to i1
  br i1 %727, label %728, label %732

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

732:                                              ; preds = %728, %724
  br label %733

733:                                              ; preds = %728, %732
  %.str.21.sink465 = phi ptr [ @.str.21, %732 ], [ @.str.18, %728 ]
  store i32 %.pre253, ptr %186, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = load i32, ptr %132, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef nonnull @.str.20) #10
  %738 = load i32, ptr %132, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef nonnull @.str.20) #10
  %740 = load i32, ptr %186, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #10
  %742 = load i32, ptr %186, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %734, ptr noundef nonnull %.str.21.sink465, i32 noundef %735, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.17, i32 noundef 91, ptr noundef %737, ptr noundef %739, ptr noundef %741, i32 noundef %742) #12
  call void @exit(i32 noundef 1) #13
  unreachable

744:                                              ; preds = %716
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = load i32, ptr %132, align 4, !tbaa !5
  %748 = icmp eq i32 %747, 335544342
  br i1 %748, label %769, label %749

749:                                              ; preds = %744
  %.pre255 = load i32, ptr %186, align 4, !tbaa !5
  %.pre256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = call i32 @s2n_print_stacktrace(ptr noundef %.pre256) #10
  %751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %752 = trunc nuw i8 %751 to i1
  br i1 %752, label %753, label %757

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

757:                                              ; preds = %753, %749
  br label %758

758:                                              ; preds = %753, %757
  %.str.21.sink474 = phi ptr [ @.str.21, %757 ], [ @.str.18, %753 ]
  store i32 %.pre255, ptr %186, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = load i32, ptr %132, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror(i32 noundef %761, ptr noundef nonnull @.str.20) #10
  %763 = load i32, ptr %132, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror_debug(i32 noundef %763, ptr noundef nonnull @.str.20) #10
  %765 = load i32, ptr %186, align 4, !tbaa !5
  %766 = call ptr @strerror(i32 noundef %765) #10
  %767 = load i32, ptr %186, align 4, !tbaa !5
  %768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %759, ptr noundef nonnull %.str.21.sink474, i32 noundef %760, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.17, i32 noundef 91, ptr noundef %762, ptr noundef %764, ptr noundef %766, i32 noundef %767) #12
  call void @exit(i32 noundef 1) #13
  unreachable

769:                                              ; preds = %744
  %770 = add nsw i32 %745, 2
  store i32 %770, ptr @test_count, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror_debug(i32 noundef 335544342, ptr noundef nonnull @.str.20) #10
  %772 = icmp eq ptr %771, null
  br i1 %772, label %773, label %793

773:                                              ; preds = %769
  %.pre261 = load i32, ptr %186, align 4, !tbaa !5
  %.pre262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = call i32 @s2n_print_stacktrace(ptr noundef %.pre262) #10
  %775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %776 = trunc nuw i8 %775 to i1
  br i1 %776, label %777, label %781

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

781:                                              ; preds = %777, %773
  br label %782

782:                                              ; preds = %777, %781
  %.str.21.sink483 = phi ptr [ @.str.21, %781 ], [ @.str.18, %777 ]
  store i32 %.pre261, ptr %186, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = load i32, ptr %132, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror(i32 noundef %785, ptr noundef nonnull @.str.20) #10
  %787 = load i32, ptr %132, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror_debug(i32 noundef %787, ptr noundef nonnull @.str.20) #10
  %789 = load i32, ptr %186, align 4, !tbaa !5
  %790 = call ptr @strerror(i32 noundef %789) #10
  %791 = load i32, ptr %186, align 4, !tbaa !5
  %792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %783, ptr noundef nonnull %.str.21.sink483, i32 noundef %784, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.17, i32 noundef 91, ptr noundef %786, ptr noundef %788, ptr noundef %790, i32 noundef %791) #12
  call void @exit(i32 noundef 1) #13
  unreachable

793:                                              ; preds = %769
  store i32 0, ptr %132, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %186, align 4, !tbaa !5
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = add nsw i32 %794, 1
  store i32 %795, ptr @test_count, align 4, !tbaa !5
  %796 = load ptr, ptr %557, align 8, !tbaa !15
  %797 = call i32 @s2n_handshake_hashes_wipe(ptr noundef %796) #10
  %798 = call zeroext i1 @s2n_result_is_ok(i32 %797)
  br i1 %798, label %819, label %799

799:                                              ; preds = %793
  %.pre257 = load i32, ptr %186, align 4, !tbaa !5
  %.pre258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = call i32 @s2n_print_stacktrace(ptr noundef %.pre258) #10
  %801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %802 = trunc nuw i8 %801 to i1
  br i1 %802, label %803, label %807

803:                                              ; preds = %799
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = call i32 @fileno(ptr noundef %804) #10
  %806 = call i32 @isatty(i32 noundef %805) #10
  %.not189 = icmp eq i32 %806, 0
  br i1 %.not189, label %807, label %808

807:                                              ; preds = %803, %799
  br label %808

808:                                              ; preds = %803, %807
  %.str.21.sink492 = phi ptr [ @.str.21, %807 ], [ @.str.18, %803 ]
  store i32 %.pre257, ptr %186, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = load i32, ptr %132, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror(i32 noundef %811, ptr noundef nonnull @.str.20) #10
  %813 = load i32, ptr %132, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror_debug(i32 noundef %813, ptr noundef nonnull @.str.20) #10
  %815 = load i32, ptr %186, align 4, !tbaa !5
  %816 = call ptr @strerror(i32 noundef %815) #10
  %817 = load i32, ptr %186, align 4, !tbaa !5
  %818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef nonnull %.str.21.sink492, i32 noundef %810, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.17, i32 noundef 94, ptr noundef %812, ptr noundef %814, ptr noundef %816, i32 noundef %817) #12
  call void @exit(i32 noundef 1) #13
  unreachable

819:                                              ; preds = %793
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = add nsw i32 %820, 1
  store i32 %821, ptr @test_count, align 4, !tbaa !5
  %822 = load ptr, ptr %10, align 8, !tbaa !9
  %823 = load i8, ptr %9, align 1, !tbaa !42
  %824 = zext i8 %823 to i32
  %825 = call i32 @s2n_hash_digest(ptr noundef %822, ptr noundef nonnull %8, i32 noundef %824) #10
  %826 = icmp eq i32 %825, -1
  br i1 %826, label %827, label %847

827:                                              ; preds = %819
  %.pre259 = load i32, ptr %186, align 4, !tbaa !5
  %.pre260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = call i32 @s2n_print_stacktrace(ptr noundef %.pre260) #10
  %829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %830 = trunc nuw i8 %829 to i1
  br i1 %830, label %831, label %835

831:                                              ; preds = %827
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @fileno(ptr noundef %832) #10
  %834 = call i32 @isatty(i32 noundef %833) #10
  %.not190 = icmp eq i32 %834, 0
  br i1 %.not190, label %835, label %836

835:                                              ; preds = %831, %827
  br label %836

836:                                              ; preds = %831, %835
  %.str.21.sink501 = phi ptr [ @.str.21, %835 ], [ @.str.18, %831 ]
  store i32 %.pre259, ptr %186, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = load i32, ptr %132, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror(i32 noundef %839, ptr noundef nonnull @.str.20) #10
  %841 = load i32, ptr %132, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror_debug(i32 noundef %841, ptr noundef nonnull @.str.20) #10
  %843 = load i32, ptr %186, align 4, !tbaa !5
  %844 = call ptr @strerror(i32 noundef %843) #10
  %845 = load i32, ptr %186, align 4, !tbaa !5
  %846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef nonnull %.str.21.sink501, i32 noundef %838, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.17, i32 noundef 95, ptr noundef %840, ptr noundef %842, ptr noundef %844, i32 noundef %845) #12
  call void @exit(i32 noundef 1) #13
  unreachable

847:                                              ; preds = %819
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #10
  %848 = add nuw nsw i32 %.0143207, 1
  %exitcond213.not = icmp eq i32 %848, 8
  br i1 %exitcond213.not, label %.loopexit227, label %614, !llvm.loop !43

849:                                              ; preds = %.loopexit227
  %850 = load i32, ptr %186, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = call i32 @s2n_print_stacktrace(ptr noundef %851) #10
  %853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %854 = trunc nuw i8 %853 to i1
  br i1 %854, label %855, label %859

855:                                              ; preds = %849
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = call i32 @fileno(ptr noundef %856) #10
  %858 = call i32 @isatty(i32 noundef %857) #10
  %.not153 = icmp eq i32 %858, 0
  br i1 %.not153, label %859, label %860

859:                                              ; preds = %855, %849
  br label %860

860:                                              ; preds = %855, %859
  %.str.21.sink510 = phi ptr [ @.str.21, %859 ], [ @.str.18, %855 ]
  store i32 %850, ptr %186, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = load i32, ptr %132, align 4, !tbaa !5
  %864 = call ptr @s2n_strerror(i32 noundef %863, ptr noundef nonnull @.str.20) #10
  %865 = load i32, ptr %132, align 4, !tbaa !5
  %866 = call ptr @s2n_strerror_debug(i32 noundef %865, ptr noundef nonnull @.str.20) #10
  %867 = load i32, ptr %186, align 4, !tbaa !5
  %868 = call ptr @strerror(i32 noundef %867) #10
  %869 = load i32, ptr %186, align 4, !tbaa !5
  %870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %861, ptr noundef nonnull %.str.21.sink510, i32 noundef %862, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.17, i32 noundef 105, ptr noundef %864, ptr noundef %866, ptr noundef %868, i32 noundef %869) #12
  call void @exit(i32 noundef 1) #13
  unreachable

871:                                              ; preds = %.loopexit227
  %872 = load i32, ptr @test_count, align 4, !tbaa !5
  %873 = add nsw i32 %872, 1
  store i32 %873, ptr @test_count, align 4, !tbaa !5
  %874 = load i32, ptr %132, align 4, !tbaa !5
  %875 = icmp eq i32 %874, 402653193
  br i1 %875, label %898, label %876

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

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

886:                                              ; preds = %882, %876
  br label %887

887:                                              ; preds = %882, %886
  %.str.21.sink519 = phi ptr [ @.str.21, %886 ], [ @.str.18, %882 ]
  store i32 %877, ptr %186, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = load i32, ptr @test_count, align 4, !tbaa !5
  %890 = load i32, ptr %132, align 4, !tbaa !5
  %891 = call ptr @s2n_strerror(i32 noundef %890, ptr noundef nonnull @.str.20) #10
  %892 = load i32, ptr %132, align 4, !tbaa !5
  %893 = call ptr @s2n_strerror_debug(i32 noundef %892, ptr noundef nonnull @.str.20) #10
  %894 = load i32, ptr %186, align 4, !tbaa !5
  %895 = call ptr @strerror(i32 noundef %894) #10
  %896 = load i32, ptr %186, align 4, !tbaa !5
  %897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %888, ptr noundef nonnull %.str.21.sink519, i32 noundef %889, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.17, i32 noundef 105, ptr noundef %891, ptr noundef %893, ptr noundef %895, i32 noundef %896) #12
  call void @exit(i32 noundef 1) #13
  unreachable

898:                                              ; preds = %871
  %899 = add nsw i32 %872, 2
  store i32 %899, ptr @test_count, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.20) #10
  %901 = icmp eq ptr %900, null
  br i1 %901, label %902, label %924

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

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

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

913:                                              ; preds = %908, %912
  %.str.21.sink528 = phi ptr [ @.str.21, %912 ], [ @.str.18, %908 ]
  store i32 %903, ptr %186, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = load i32, ptr %132, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef nonnull @.str.20) #10
  %918 = load i32, ptr %132, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror_debug(i32 noundef %918, ptr noundef nonnull @.str.20) #10
  %920 = load i32, ptr %186, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #10
  %922 = load i32, ptr %186, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef nonnull %.str.21.sink528, i32 noundef %915, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.17, i32 noundef 105, ptr noundef %917, ptr noundef %919, ptr noundef %921, i32 noundef %922) #12
  call void @exit(i32 noundef 1) #13
  unreachable

924:                                              ; preds = %898
  store i32 0, ptr %132, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %186, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  store ptr null, ptr %11, align 8, !tbaa !9
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr @test_count, align 4, !tbaa !5
  %927 = call i32 @s2n_handshake_hashes_new(ptr noundef nonnull %11) #10
  %928 = call zeroext i1 @s2n_result_is_ok(i32 %927)
  br i1 %928, label %951, label %929

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

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

939:                                              ; preds = %935, %929
  br label %940

940:                                              ; preds = %935, %939
  %.str.21.sink537 = phi ptr [ @.str.21, %939 ], [ @.str.18, %935 ]
  store i32 %930, ptr %186, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = load i32, ptr %132, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef nonnull @.str.20) #10
  %945 = load i32, ptr %132, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror_debug(i32 noundef %945, ptr noundef nonnull @.str.20) #10
  %947 = load i32, ptr %186, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #10
  %949 = load i32, ptr %186, align 4, !tbaa !5
  %950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef nonnull %.str.21.sink537, i32 noundef %942, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.17, i32 noundef 110, ptr noundef %944, ptr noundef %946, ptr noundef %948, i32 noundef %949) #12
  call void @exit(i32 noundef 1) #13
  unreachable

951:                                              ; preds = %924
  %952 = load i32, ptr @test_count, align 4, !tbaa !5
  %953 = add nsw i32 %952, 1
  store i32 %953, ptr @test_count, align 4, !tbaa !5
  %954 = load ptr, ptr %11, align 8, !tbaa !9
  %955 = icmp eq ptr %954, null
  br i1 %955, label %956, label %978

956:                                              ; preds = %951
  %957 = load i32, ptr %186, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @s2n_print_stacktrace(ptr noundef %958) #10
  %960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %961 = trunc nuw i8 %960 to i1
  br i1 %961, label %962, label %966

962:                                              ; preds = %956
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @fileno(ptr noundef %963) #10
  %965 = call i32 @isatty(i32 noundef %964) #10
  %.not184 = icmp eq i32 %965, 0
  br i1 %.not184, label %966, label %967

966:                                              ; preds = %962, %956
  br label %967

967:                                              ; preds = %962, %966
  %.str.21.sink546 = phi ptr [ @.str.21, %966 ], [ @.str.18, %962 ]
  store i32 %957, ptr %186, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = load i32, ptr %132, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror(i32 noundef %970, ptr noundef nonnull @.str.20) #10
  %972 = load i32, ptr %132, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror_debug(i32 noundef %972, ptr noundef nonnull @.str.20) #10
  %974 = load i32, ptr %186, align 4, !tbaa !5
  %975 = call ptr @strerror(i32 noundef %974) #10
  %976 = load i32, ptr %186, align 4, !tbaa !5
  %977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %968, ptr noundef nonnull %.str.21.sink546, i32 noundef %969, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.17, i32 noundef 111, ptr noundef %971, ptr noundef %973, ptr noundef %975, i32 noundef %976) #12
  call void @exit(i32 noundef 1) #13
  unreachable

978:                                              ; preds = %951
  %979 = add nsw i32 %952, 2
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %980 = call i32 @s2n_handshake_hashes_free(ptr noundef nonnull %11) #10
  %981 = call zeroext i1 @s2n_result_is_ok(i32 %980)
  br i1 %981, label %1004, label %982

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

988:                                              ; preds = %982
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = call i32 @fileno(ptr noundef %989) #10
  %991 = call i32 @isatty(i32 noundef %990) #10
  %.not156 = icmp eq i32 %991, 0
  br i1 %.not156, label %992, label %993

992:                                              ; preds = %988, %982
  br label %993

993:                                              ; preds = %988, %992
  %.str.21.sink555 = phi ptr [ @.str.21, %992 ], [ @.str.18, %988 ]
  store i32 %983, ptr %186, align 4, !tbaa !5
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = load i32, ptr %132, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror(i32 noundef %996, ptr noundef nonnull @.str.20) #10
  %998 = load i32, ptr %132, align 4, !tbaa !5
  %999 = call ptr @s2n_strerror_debug(i32 noundef %998, ptr noundef nonnull @.str.20) #10
  %1000 = load i32, ptr %186, align 4, !tbaa !5
  %1001 = call ptr @strerror(i32 noundef %1000) #10
  %1002 = load i32, ptr %186, align 4, !tbaa !5
  %1003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %994, ptr noundef nonnull %.str.21.sink555, i32 noundef %995, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.17, i32 noundef 113, ptr noundef %997, ptr noundef %999, ptr noundef %1001, i32 noundef %1002) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1004:                                             ; preds = %978
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = add nsw i32 %1005, 1
  store i32 %1006, ptr @test_count, align 4, !tbaa !5
  %1007 = load ptr, ptr %11, align 8, !tbaa !9
  %1008 = icmp eq ptr %1007, null
  br i1 %1008, label %1031, label %1009

1009:                                             ; preds = %1004
  %1010 = load i32, ptr %186, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @s2n_print_stacktrace(ptr noundef %1011) #10
  %1013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1014 = trunc nuw i8 %1013 to i1
  br i1 %1014, label %1015, label %1019

1015:                                             ; preds = %1009
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @fileno(ptr noundef %1016) #10
  %1018 = call i32 @isatty(i32 noundef %1017) #10
  %.not157 = icmp eq i32 %1018, 0
  br i1 %.not157, label %1019, label %1020

1019:                                             ; preds = %1015, %1009
  br label %1020

1020:                                             ; preds = %1015, %1019
  %.str.21.sink564 = phi ptr [ @.str.21, %1019 ], [ @.str.18, %1015 ]
  store i32 %1010, ptr %186, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = load i32, ptr %132, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror(i32 noundef %1023, ptr noundef nonnull @.str.20) #10
  %1025 = load i32, ptr %132, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror_debug(i32 noundef %1025, ptr noundef nonnull @.str.20) #10
  %1027 = load i32, ptr %186, align 4, !tbaa !5
  %1028 = call ptr @strerror(i32 noundef %1027) #10
  %1029 = load i32, ptr %186, align 4, !tbaa !5
  %1030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef nonnull %.str.21.sink564, i32 noundef %1022, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.17, i32 noundef 114, ptr noundef %1024, ptr noundef %1026, ptr noundef %1028, i32 noundef %1029) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1031:                                             ; preds = %1004
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %12, i8 0, i64 32, i1 false)
  %1032 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1033 = load i32, ptr @test_count, align 4, !tbaa !5
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr @test_count, align 4, !tbaa !5
  %1035 = icmp eq ptr %1032, null
  br i1 %1035, label %1036, label %1058

1036:                                             ; preds = %1031
  %1037 = load i32, ptr %186, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @s2n_print_stacktrace(ptr noundef %1038) #10
  %1040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1041 = trunc nuw i8 %1040 to i1
  br i1 %1041, label %1042, label %1046

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

1046:                                             ; preds = %1042, %1036
  br label %1047

1047:                                             ; preds = %1042, %1046
  %.str.21.sink573 = phi ptr [ @.str.21, %1046 ], [ @.str.18, %1042 ]
  store i32 %1037, ptr %186, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = load i32, ptr @test_count, align 4, !tbaa !5
  %1050 = load i32, ptr %132, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror(i32 noundef %1050, ptr noundef nonnull @.str.20) #10
  %1052 = load i32, ptr %132, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror_debug(i32 noundef %1052, ptr noundef nonnull @.str.20) #10
  %1054 = load i32, ptr %186, align 4, !tbaa !5
  %1055 = call ptr @strerror(i32 noundef %1054) #10
  %1056 = load i32, ptr %186, align 4, !tbaa !5
  %1057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1048, ptr noundef nonnull %.str.21.sink573, i32 noundef %1049, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.17, i32 noundef 124, ptr noundef %1051, ptr noundef %1053, ptr noundef %1055, i32 noundef %1056) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1058:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  store ptr null, ptr %13, align 8, !tbaa !9
  %1059 = add nsw i32 %1033, 2
  store i32 %1059, ptr @test_count, align 4, !tbaa !5
  %1060 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %1032, i32 noundef 4, ptr noundef nonnull %13)
  %1061 = icmp eq i32 %1060, -1
  br i1 %1061, label %1062, label %1084

1062:                                             ; preds = %1058
  %1063 = load i32, ptr %186, align 4, !tbaa !5
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = call i32 @s2n_print_stacktrace(ptr noundef %1064) #10
  %1066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1067 = trunc nuw i8 %1066 to i1
  br i1 %1067, label %1068, label %1072

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

1072:                                             ; preds = %1068, %1062
  br label %1073

1073:                                             ; preds = %1068, %1072
  %.str.21.sink582 = phi ptr [ @.str.21, %1072 ], [ @.str.18, %1068 ]
  store i32 %1063, ptr %186, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = load i32, ptr %132, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror(i32 noundef %1076, ptr noundef nonnull @.str.20) #10
  %1078 = load i32, ptr %132, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror_debug(i32 noundef %1078, ptr noundef nonnull @.str.20) #10
  %1080 = load i32, ptr %186, align 4, !tbaa !5
  %1081 = call ptr @strerror(i32 noundef %1080) #10
  %1082 = load i32, ptr %186, align 4, !tbaa !5
  %1083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1074, ptr noundef nonnull %.str.21.sink582, i32 noundef %1075, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.17, i32 noundef 127, ptr noundef %1077, ptr noundef %1079, ptr noundef %1081, i32 noundef %1082) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1084:                                             ; preds = %1058
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr @test_count, align 4, !tbaa !5
  %1087 = load ptr, ptr %13, align 8, !tbaa !9
  %1088 = icmp eq ptr %1087, null
  br i1 %1088, label %1089, label %1111

1089:                                             ; preds = %1084
  %1090 = load i32, ptr %186, align 4, !tbaa !5
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = call i32 @s2n_print_stacktrace(ptr noundef %1091) #10
  %1093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1094 = trunc nuw i8 %1093 to i1
  br i1 %1094, label %1095, label %1099

1095:                                             ; preds = %1089
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @fileno(ptr noundef %1096) #10
  %1098 = call i32 @isatty(i32 noundef %1097) #10
  %.not181 = icmp eq i32 %1098, 0
  br i1 %.not181, label %1099, label %1100

1099:                                             ; preds = %1095, %1089
  br label %1100

1100:                                             ; preds = %1095, %1099
  %.str.21.sink591 = phi ptr [ @.str.21, %1099 ], [ @.str.18, %1095 ]
  store i32 %1090, ptr %186, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = load i32, ptr %132, align 4, !tbaa !5
  %1104 = call ptr @s2n_strerror(i32 noundef %1103, ptr noundef nonnull @.str.20) #10
  %1105 = load i32, ptr %132, align 4, !tbaa !5
  %1106 = call ptr @s2n_strerror_debug(i32 noundef %1105, ptr noundef nonnull @.str.20) #10
  %1107 = load i32, ptr %186, align 4, !tbaa !5
  %1108 = call ptr @strerror(i32 noundef %1107) #10
  %1109 = load i32, ptr %186, align 4, !tbaa !5
  %1110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1101, ptr noundef nonnull %.str.21.sink591, i32 noundef %1102, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.17, i32 noundef 128, ptr noundef %1104, ptr noundef %1106, ptr noundef %1108, i32 noundef %1109) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1111:                                             ; preds = %1084
  %1112 = add nsw i32 %1085, 2
  store i32 %1112, ptr @test_count, align 4, !tbaa !5
  %1113 = call i32 @s2n_hash_digest(ptr noundef nonnull %1087, ptr noundef nonnull %12, i32 noundef 32) #10
  %1114 = icmp eq i32 %1113, -1
  br i1 %1114, label %1115, label %1137

1115:                                             ; preds = %1111
  %1116 = load i32, ptr %186, align 4, !tbaa !5
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = call i32 @s2n_print_stacktrace(ptr noundef %1117) #10
  %1119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1120 = trunc nuw i8 %1119 to i1
  br i1 %1120, label %1121, label %1125

1121:                                             ; preds = %1115
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = call i32 @fileno(ptr noundef %1122) #10
  %1124 = call i32 @isatty(i32 noundef %1123) #10
  %.not180 = icmp eq i32 %1124, 0
  br i1 %.not180, label %1125, label %1126

1125:                                             ; preds = %1121, %1115
  br label %1126

1126:                                             ; preds = %1121, %1125
  %.str.21.sink600 = phi ptr [ @.str.21, %1125 ], [ @.str.18, %1121 ]
  store i32 %1116, ptr %186, align 4, !tbaa !5
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = load i32, ptr @test_count, align 4, !tbaa !5
  %1129 = load i32, ptr %132, align 4, !tbaa !5
  %1130 = call ptr @s2n_strerror(i32 noundef %1129, ptr noundef nonnull @.str.20) #10
  %1131 = load i32, ptr %132, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror_debug(i32 noundef %1131, ptr noundef nonnull @.str.20) #10
  %1133 = load i32, ptr %186, align 4, !tbaa !5
  %1134 = call ptr @strerror(i32 noundef %1133) #10
  %1135 = load i32, ptr %186, align 4, !tbaa !5
  %1136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1127, ptr noundef nonnull %.str.21.sink600, i32 noundef %1128, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.17, i32 noundef 129, ptr noundef %1130, ptr noundef %1132, ptr noundef %1134, i32 noundef %1135) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1137:                                             ; preds = %1111
  %1138 = load i32, ptr @test_count, align 4, !tbaa !5
  %1139 = add nsw i32 %1138, 1
  store i32 %1139, ptr @test_count, align 4, !tbaa !5
  %1140 = load ptr, ptr %13, align 8, !tbaa !9
  %1141 = call i32 @s2n_hash_digest(ptr noundef %1140, ptr noundef nonnull %12, i32 noundef 32) #10
  %1142 = icmp eq i32 %1141, -1
  br i1 %1142, label %1165, label %1143

1143:                                             ; preds = %1137
  %1144 = load i32, ptr %186, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @s2n_print_stacktrace(ptr noundef %1145) #10
  %1147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1148 = trunc nuw i8 %1147 to i1
  br i1 %1148, label %1149, label %1153

1149:                                             ; preds = %1143
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = call i32 @fileno(ptr noundef %1150) #10
  %1152 = call i32 @isatty(i32 noundef %1151) #10
  %.not158 = icmp eq i32 %1152, 0
  br i1 %.not158, label %1153, label %1154

1153:                                             ; preds = %1149, %1143
  br label %1154

1154:                                             ; preds = %1149, %1153
  %.str.21.sink609 = phi ptr [ @.str.21, %1153 ], [ @.str.18, %1149 ]
  store i32 %1144, ptr %186, align 4, !tbaa !5
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = load i32, ptr @test_count, align 4, !tbaa !5
  %1157 = load i32, ptr %132, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror(i32 noundef %1157, ptr noundef nonnull @.str.20) #10
  %1159 = load i32, ptr %132, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror_debug(i32 noundef %1159, ptr noundef nonnull @.str.20) #10
  %1161 = load i32, ptr %186, align 4, !tbaa !5
  %1162 = call ptr @strerror(i32 noundef %1161) #10
  %1163 = load i32, ptr %186, align 4, !tbaa !5
  %1164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1155, ptr noundef nonnull %.str.21.sink609, i32 noundef %1156, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.17, i32 noundef 130, ptr noundef %1158, ptr noundef %1160, ptr noundef %1162, i32 noundef %1163) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1165:                                             ; preds = %1137
  %1166 = load i32, ptr @test_count, align 4, !tbaa !5
  %1167 = add nsw i32 %1166, 1
  store i32 %1167, ptr @test_count, align 4, !tbaa !5
  %1168 = load i32, ptr %132, align 4, !tbaa !5
  %1169 = icmp eq i32 %1168, 335544342
  br i1 %1169, label %1192, label %1170

1170:                                             ; preds = %1165
  %1171 = load i32, ptr %186, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @s2n_print_stacktrace(ptr noundef %1172) #10
  %1174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1175 = trunc nuw i8 %1174 to i1
  br i1 %1175, label %1176, label %1180

1176:                                             ; preds = %1170
  %1177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1178 = call i32 @fileno(ptr noundef %1177) #10
  %1179 = call i32 @isatty(i32 noundef %1178) #10
  %.not159 = icmp eq i32 %1179, 0
  br i1 %.not159, label %1180, label %1181

1180:                                             ; preds = %1176, %1170
  br label %1181

1181:                                             ; preds = %1176, %1180
  %.str.21.sink618 = phi ptr [ @.str.21, %1180 ], [ @.str.18, %1176 ]
  store i32 %1171, ptr %186, align 4, !tbaa !5
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = load i32, ptr @test_count, align 4, !tbaa !5
  %1184 = load i32, ptr %132, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror(i32 noundef %1184, ptr noundef nonnull @.str.20) #10
  %1186 = load i32, ptr %132, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror_debug(i32 noundef %1186, ptr noundef nonnull @.str.20) #10
  %1188 = load i32, ptr %186, align 4, !tbaa !5
  %1189 = call ptr @strerror(i32 noundef %1188) #10
  %1190 = load i32, ptr %186, align 4, !tbaa !5
  %1191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1182, ptr noundef nonnull %.str.21.sink618, i32 noundef %1183, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.17, i32 noundef 130, ptr noundef %1185, ptr noundef %1187, ptr noundef %1189, i32 noundef %1190) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1192:                                             ; preds = %1165
  %1193 = add nsw i32 %1166, 2
  store i32 %1193, ptr @test_count, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror_debug(i32 noundef 335544342, ptr noundef nonnull @.str.20) #10
  %1195 = icmp eq ptr %1194, null
  br i1 %1195, label %1196, label %1218

1196:                                             ; preds = %1192
  %1197 = load i32, ptr %186, align 4, !tbaa !5
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = call i32 @s2n_print_stacktrace(ptr noundef %1198) #10
  %1200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1201 = trunc nuw i8 %1200 to i1
  br i1 %1201, label %1202, label %1206

1202:                                             ; preds = %1196
  %1203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1204 = call i32 @fileno(ptr noundef %1203) #10
  %1205 = call i32 @isatty(i32 noundef %1204) #10
  %.not179 = icmp eq i32 %1205, 0
  br i1 %.not179, label %1206, label %1207

1206:                                             ; preds = %1202, %1196
  br label %1207

1207:                                             ; preds = %1202, %1206
  %.str.21.sink627 = phi ptr [ @.str.21, %1206 ], [ @.str.18, %1202 ]
  store i32 %1197, ptr %186, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = load i32, ptr %132, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror(i32 noundef %1210, ptr noundef nonnull @.str.20) #10
  %1212 = load i32, ptr %132, align 4, !tbaa !5
  %1213 = call ptr @s2n_strerror_debug(i32 noundef %1212, ptr noundef nonnull @.str.20) #10
  %1214 = load i32, ptr %186, align 4, !tbaa !5
  %1215 = call ptr @strerror(i32 noundef %1214) #10
  %1216 = load i32, ptr %186, align 4, !tbaa !5
  %1217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1208, ptr noundef nonnull %.str.21.sink627, i32 noundef %1209, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.17, i32 noundef 130, ptr noundef %1211, ptr noundef %1213, ptr noundef %1215, i32 noundef %1216) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1218:                                             ; preds = %1192
  store i32 0, ptr %132, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %186, align 4, !tbaa !5
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = add nsw i32 %1219, 1
  store i32 %1220, ptr @test_count, align 4, !tbaa !5
  %1221 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1032) #10
  %1222 = icmp eq i32 %1221, -1
  br i1 %1222, label %1223, label %1245

1223:                                             ; preds = %1218
  %1224 = load i32, ptr %186, align 4, !tbaa !5
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @s2n_print_stacktrace(ptr noundef %1225) #10
  %1227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1228 = trunc nuw i8 %1227 to i1
  br i1 %1228, label %1229, label %1233

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

1233:                                             ; preds = %1229, %1223
  br label %1234

1234:                                             ; preds = %1229, %1233
  %.str.21.sink636 = phi ptr [ @.str.21, %1233 ], [ @.str.18, %1229 ]
  store i32 %1224, ptr %186, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = load i32, ptr %132, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror(i32 noundef %1237, ptr noundef nonnull @.str.20) #10
  %1239 = load i32, ptr %132, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror_debug(i32 noundef %1239, ptr noundef nonnull @.str.20) #10
  %1241 = load i32, ptr %186, align 4, !tbaa !5
  %1242 = call ptr @strerror(i32 noundef %1241) #10
  %1243 = load i32, ptr %186, align 4, !tbaa !5
  %1244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1235, ptr noundef nonnull %.str.21.sink636, i32 noundef %1236, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.17, i32 noundef 133, ptr noundef %1238, ptr noundef %1240, ptr noundef %1242, i32 noundef %1243) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1245:                                             ; preds = %1218
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = add nsw i32 %1246, 1
  store i32 %1247, ptr @test_count, align 4, !tbaa !5
  %1248 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %1032, i32 noundef 4, ptr noundef nonnull %13)
  %1249 = icmp eq i32 %1248, -1
  br i1 %1249, label %1250, label %1272

1250:                                             ; preds = %1245
  %1251 = load i32, ptr %186, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @s2n_print_stacktrace(ptr noundef %1252) #10
  %1254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1255 = trunc nuw i8 %1254 to i1
  br i1 %1255, label %1256, label %1260

1256:                                             ; preds = %1250
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @fileno(ptr noundef %1257) #10
  %1259 = call i32 @isatty(i32 noundef %1258) #10
  %.not177 = icmp eq i32 %1259, 0
  br i1 %.not177, label %1260, label %1261

1260:                                             ; preds = %1256, %1250
  br label %1261

1261:                                             ; preds = %1256, %1260
  %.str.21.sink645 = phi ptr [ @.str.21, %1260 ], [ @.str.18, %1256 ]
  store i32 %1251, ptr %186, align 4, !tbaa !5
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = load i32, ptr @test_count, align 4, !tbaa !5
  %1264 = load i32, ptr %132, align 4, !tbaa !5
  %1265 = call ptr @s2n_strerror(i32 noundef %1264, ptr noundef nonnull @.str.20) #10
  %1266 = load i32, ptr %132, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror_debug(i32 noundef %1266, ptr noundef nonnull @.str.20) #10
  %1268 = load i32, ptr %186, align 4, !tbaa !5
  %1269 = call ptr @strerror(i32 noundef %1268) #10
  %1270 = load i32, ptr %186, align 4, !tbaa !5
  %1271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1262, ptr noundef nonnull %.str.21.sink645, i32 noundef %1263, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.17, i32 noundef 134, ptr noundef %1265, ptr noundef %1267, ptr noundef %1269, i32 noundef %1270) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1272:                                             ; preds = %1245
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = add nsw i32 %1273, 1
  store i32 %1274, ptr @test_count, align 4, !tbaa !5
  %1275 = load ptr, ptr %13, align 8, !tbaa !9
  %1276 = icmp eq ptr %1275, null
  br i1 %1276, label %1277, label %1299

1277:                                             ; preds = %1272
  %1278 = load i32, ptr %186, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = call i32 @s2n_print_stacktrace(ptr noundef %1279) #10
  %1281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1282 = trunc nuw i8 %1281 to i1
  br i1 %1282, label %1283, label %1287

1283:                                             ; preds = %1277
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = call i32 @fileno(ptr noundef %1284) #10
  %1286 = call i32 @isatty(i32 noundef %1285) #10
  %.not176 = icmp eq i32 %1286, 0
  br i1 %.not176, label %1287, label %1288

1287:                                             ; preds = %1283, %1277
  br label %1288

1288:                                             ; preds = %1283, %1287
  %.str.21.sink654 = phi ptr [ @.str.21, %1287 ], [ @.str.18, %1283 ]
  store i32 %1278, ptr %186, align 4, !tbaa !5
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = load i32, ptr %132, align 4, !tbaa !5
  %1292 = call ptr @s2n_strerror(i32 noundef %1291, ptr noundef nonnull @.str.20) #10
  %1293 = load i32, ptr %132, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror_debug(i32 noundef %1293, ptr noundef nonnull @.str.20) #10
  %1295 = load i32, ptr %186, align 4, !tbaa !5
  %1296 = call ptr @strerror(i32 noundef %1295) #10
  %1297 = load i32, ptr %186, align 4, !tbaa !5
  %1298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1289, ptr noundef nonnull %.str.21.sink654, i32 noundef %1290, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.17, i32 noundef 135, ptr noundef %1292, ptr noundef %1294, ptr noundef %1296, i32 noundef %1297) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1299:                                             ; preds = %1272
  %1300 = add nsw i32 %1273, 2
  store i32 %1300, ptr @test_count, align 4, !tbaa !5
  %1301 = call i32 @s2n_hash_digest(ptr noundef nonnull %1275, ptr noundef nonnull %12, i32 noundef 32) #10
  %1302 = icmp eq i32 %1301, -1
  br i1 %1302, label %1303, label %1325

1303:                                             ; preds = %1299
  %1304 = load i32, ptr %186, align 4, !tbaa !5
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = call i32 @s2n_print_stacktrace(ptr noundef %1305) #10
  %1307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1308 = trunc nuw i8 %1307 to i1
  br i1 %1308, label %1309, label %1313

1309:                                             ; preds = %1303
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = call i32 @fileno(ptr noundef %1310) #10
  %1312 = call i32 @isatty(i32 noundef %1311) #10
  %.not175 = icmp eq i32 %1312, 0
  br i1 %.not175, label %1313, label %1314

1313:                                             ; preds = %1309, %1303
  br label %1314

1314:                                             ; preds = %1309, %1313
  %.str.21.sink663 = phi ptr [ @.str.21, %1313 ], [ @.str.18, %1309 ]
  store i32 %1304, ptr %186, align 4, !tbaa !5
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = load i32, ptr %132, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror(i32 noundef %1317, ptr noundef nonnull @.str.20) #10
  %1319 = load i32, ptr %132, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror_debug(i32 noundef %1319, ptr noundef nonnull @.str.20) #10
  %1321 = load i32, ptr %186, align 4, !tbaa !5
  %1322 = call ptr @strerror(i32 noundef %1321) #10
  %1323 = load i32, ptr %186, align 4, !tbaa !5
  %1324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1315, ptr noundef nonnull %.str.21.sink663, i32 noundef %1316, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.17, i32 noundef 136, ptr noundef %1318, ptr noundef %1320, ptr noundef %1322, i32 noundef %1323) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1325:                                             ; preds = %1299
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = add nsw i32 %1326, 1
  store i32 %1327, ptr @test_count, align 4, !tbaa !5
  %1328 = call i32 @s2n_connection_free_handshake(ptr noundef nonnull %1032) #10
  %1329 = icmp eq i32 %1328, -1
  br i1 %1329, label %1330, label %1352

1330:                                             ; preds = %1325
  %1331 = load i32, ptr %186, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = call i32 @s2n_print_stacktrace(ptr noundef %1332) #10
  %1334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1335 = trunc nuw i8 %1334 to i1
  br i1 %1335, label %1336, label %1340

1336:                                             ; preds = %1330
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = call i32 @fileno(ptr noundef %1337) #10
  %1339 = call i32 @isatty(i32 noundef %1338) #10
  %.not174 = icmp eq i32 %1339, 0
  br i1 %.not174, label %1340, label %1341

1340:                                             ; preds = %1336, %1330
  br label %1341

1341:                                             ; preds = %1336, %1340
  %.str.21.sink672 = phi ptr [ @.str.21, %1340 ], [ @.str.18, %1336 ]
  store i32 %1331, ptr %186, align 4, !tbaa !5
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %1344 = load i32, ptr %132, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror(i32 noundef %1344, ptr noundef nonnull @.str.20) #10
  %1346 = load i32, ptr %132, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror_debug(i32 noundef %1346, ptr noundef nonnull @.str.20) #10
  %1348 = load i32, ptr %186, align 4, !tbaa !5
  %1349 = call ptr @strerror(i32 noundef %1348) #10
  %1350 = load i32, ptr %186, align 4, !tbaa !5
  %1351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1342, ptr noundef nonnull %.str.21.sink672, i32 noundef %1343, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.17, i32 noundef 139, ptr noundef %1345, ptr noundef %1347, ptr noundef %1349, i32 noundef %1350) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1352:                                             ; preds = %1325
  %1353 = load i32, ptr @test_count, align 4, !tbaa !5
  %1354 = add nsw i32 %1353, 1
  store i32 %1354, ptr @test_count, align 4, !tbaa !5
  %1355 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %1032, i32 noundef 4, ptr noundef nonnull %13)
  %1356 = icmp eq i32 %1355, -1
  br i1 %1356, label %1379, label %1357

1357:                                             ; preds = %1352
  %1358 = load i32, ptr %186, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = call i32 @s2n_print_stacktrace(ptr noundef %1359) #10
  %1361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1362 = trunc nuw i8 %1361 to i1
  br i1 %1362, label %1363, label %1367

1363:                                             ; preds = %1357
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = call i32 @fileno(ptr noundef %1364) #10
  %1366 = call i32 @isatty(i32 noundef %1365) #10
  %.not160 = icmp eq i32 %1366, 0
  br i1 %.not160, label %1367, label %1368

1367:                                             ; preds = %1363, %1357
  br label %1368

1368:                                             ; preds = %1363, %1367
  %.str.21.sink681 = phi ptr [ @.str.21, %1367 ], [ @.str.18, %1363 ]
  store i32 %1358, ptr %186, align 4, !tbaa !5
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = load i32, ptr @test_count, align 4, !tbaa !5
  %1371 = load i32, ptr %132, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror(i32 noundef %1371, ptr noundef nonnull @.str.20) #10
  %1373 = load i32, ptr %132, align 4, !tbaa !5
  %1374 = call ptr @s2n_strerror_debug(i32 noundef %1373, ptr noundef nonnull @.str.20) #10
  %1375 = load i32, ptr %186, align 4, !tbaa !5
  %1376 = call ptr @strerror(i32 noundef %1375) #10
  %1377 = load i32, ptr %186, align 4, !tbaa !5
  %1378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1369, ptr noundef nonnull %.str.21.sink681, i32 noundef %1370, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.17, i32 noundef 140, ptr noundef %1372, ptr noundef %1374, ptr noundef %1376, i32 noundef %1377) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1379:                                             ; preds = %1352
  %1380 = load i32, ptr @test_count, align 4, !tbaa !5
  %1381 = add nsw i32 %1380, 1
  store i32 %1381, ptr @test_count, align 4, !tbaa !5
  %1382 = load i32, ptr %132, align 4, !tbaa !5
  %1383 = icmp eq i32 %1382, 402653193
  br i1 %1383, label %1406, label %1384

1384:                                             ; preds = %1379
  %1385 = load i32, ptr %186, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = call i32 @s2n_print_stacktrace(ptr noundef %1386) #10
  %1388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1389 = trunc nuw i8 %1388 to i1
  br i1 %1389, label %1390, label %1394

1390:                                             ; preds = %1384
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @fileno(ptr noundef %1391) #10
  %1393 = call i32 @isatty(i32 noundef %1392) #10
  %.not161 = icmp eq i32 %1393, 0
  br i1 %.not161, label %1394, label %1395

1394:                                             ; preds = %1390, %1384
  br label %1395

1395:                                             ; preds = %1390, %1394
  %.str.21.sink690 = phi ptr [ @.str.21, %1394 ], [ @.str.18, %1390 ]
  store i32 %1385, ptr %186, align 4, !tbaa !5
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = load i32, ptr @test_count, align 4, !tbaa !5
  %1398 = load i32, ptr %132, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror(i32 noundef %1398, ptr noundef nonnull @.str.20) #10
  %1400 = load i32, ptr %132, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror_debug(i32 noundef %1400, ptr noundef nonnull @.str.20) #10
  %1402 = load i32, ptr %186, align 4, !tbaa !5
  %1403 = call ptr @strerror(i32 noundef %1402) #10
  %1404 = load i32, ptr %186, align 4, !tbaa !5
  %1405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1396, ptr noundef nonnull %.str.21.sink690, i32 noundef %1397, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.17, i32 noundef 140, ptr noundef %1399, ptr noundef %1401, ptr noundef %1403, i32 noundef %1404) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1406:                                             ; preds = %1379
  %1407 = add nsw i32 %1380, 2
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.20) #10
  %1409 = icmp eq ptr %1408, null
  br i1 %1409, label %1410, label %1432

1410:                                             ; preds = %1406
  %1411 = load i32, ptr %186, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @s2n_print_stacktrace(ptr noundef %1412) #10
  %1414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1415 = trunc nuw i8 %1414 to i1
  br i1 %1415, label %1416, label %1420

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

1420:                                             ; preds = %1416, %1410
  br label %1421

1421:                                             ; preds = %1416, %1420
  %.str.21.sink699 = phi ptr [ @.str.21, %1420 ], [ @.str.18, %1416 ]
  store i32 %1411, ptr %186, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = load i32, ptr %132, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror(i32 noundef %1424, ptr noundef nonnull @.str.20) #10
  %1426 = load i32, ptr %132, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror_debug(i32 noundef %1426, ptr noundef nonnull @.str.20) #10
  %1428 = load i32, ptr %186, align 4, !tbaa !5
  %1429 = call ptr @strerror(i32 noundef %1428) #10
  %1430 = load i32, ptr %186, align 4, !tbaa !5
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1422, ptr noundef nonnull %.str.21.sink699, i32 noundef %1423, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.17, i32 noundef 140, ptr noundef %1425, ptr noundef %1427, ptr noundef %1429, i32 noundef %1430) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1432:                                             ; preds = %1406
  store i32 0, ptr %132, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %186, align 4, !tbaa !5
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = add nsw i32 %1433, 1
  store i32 %1434, ptr @test_count, align 4, !tbaa !5
  %1435 = getelementptr inbounds i8, ptr %1032, i64 2056
  %1436 = load ptr, ptr %1435, align 8, !tbaa !15
  %1437 = icmp eq ptr %1436, null
  br i1 %1437, label %1460, label %1438

1438:                                             ; preds = %1432
  %1439 = load i32, ptr %186, align 4, !tbaa !5
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @s2n_print_stacktrace(ptr noundef %1440) #10
  %1442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1443 = trunc nuw i8 %1442 to i1
  br i1 %1443, label %1444, label %1448

1444:                                             ; preds = %1438
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @fileno(ptr noundef %1445) #10
  %1447 = call i32 @isatty(i32 noundef %1446) #10
  %.not162 = icmp eq i32 %1447, 0
  br i1 %.not162, label %1448, label %1449

1448:                                             ; preds = %1444, %1438
  br label %1449

1449:                                             ; preds = %1444, %1448
  %.str.21.sink708 = phi ptr [ @.str.21, %1448 ], [ @.str.18, %1444 ]
  store i32 %1439, ptr %186, align 4, !tbaa !5
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = load i32, ptr @test_count, align 4, !tbaa !5
  %1452 = load i32, ptr %132, align 4, !tbaa !5
  %1453 = call ptr @s2n_strerror(i32 noundef %1452, ptr noundef nonnull @.str.20) #10
  %1454 = load i32, ptr %132, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror_debug(i32 noundef %1454, ptr noundef nonnull @.str.20) #10
  %1456 = load i32, ptr %186, align 4, !tbaa !5
  %1457 = call ptr @strerror(i32 noundef %1456) #10
  %1458 = load i32, ptr %186, align 4, !tbaa !5
  %1459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1450, ptr noundef nonnull %.str.21.sink708, i32 noundef %1451, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.17, i32 noundef 141, ptr noundef %1453, ptr noundef %1455, ptr noundef %1457, i32 noundef %1458) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1460:                                             ; preds = %1432
  %1461 = add nsw i32 %1433, 2
  store i32 %1461, ptr @test_count, align 4, !tbaa !5
  %1462 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1032) #10
  %1463 = icmp eq i32 %1462, -1
  br i1 %1463, label %1464, label %1486

1464:                                             ; preds = %1460
  %1465 = load i32, ptr %186, align 4, !tbaa !5
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = call i32 @s2n_print_stacktrace(ptr noundef %1466) #10
  %1468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1469 = trunc nuw i8 %1468 to i1
  br i1 %1469, label %1470, label %1474

1470:                                             ; preds = %1464
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = call i32 @fileno(ptr noundef %1471) #10
  %1473 = call i32 @isatty(i32 noundef %1472) #10
  %.not172 = icmp eq i32 %1473, 0
  br i1 %.not172, label %1474, label %1475

1474:                                             ; preds = %1470, %1464
  br label %1475

1475:                                             ; preds = %1470, %1474
  %.str.21.sink717 = phi ptr [ @.str.21, %1474 ], [ @.str.18, %1470 ]
  store i32 %1465, ptr %186, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = load i32, ptr %132, align 4, !tbaa !5
  %1479 = call ptr @s2n_strerror(i32 noundef %1478, ptr noundef nonnull @.str.20) #10
  %1480 = load i32, ptr %132, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror_debug(i32 noundef %1480, ptr noundef nonnull @.str.20) #10
  %1482 = load i32, ptr %186, align 4, !tbaa !5
  %1483 = call ptr @strerror(i32 noundef %1482) #10
  %1484 = load i32, ptr %186, align 4, !tbaa !5
  %1485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1476, ptr noundef nonnull %.str.21.sink717, i32 noundef %1477, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.17, i32 noundef 144, ptr noundef %1479, ptr noundef %1481, ptr noundef %1483, i32 noundef %1484) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1486:                                             ; preds = %1460
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = add nsw i32 %1487, 1
  store i32 %1488, ptr @test_count, align 4, !tbaa !5
  %1489 = call i32 @s2n_handshake_get_hash_state_ptr(ptr noundef nonnull %1032, i32 noundef 4, ptr noundef nonnull %13)
  %1490 = icmp eq i32 %1489, -1
  br i1 %1490, label %1491, label %1513

1491:                                             ; preds = %1486
  %1492 = load i32, ptr %186, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @s2n_print_stacktrace(ptr noundef %1493) #10
  %1495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1496 = trunc nuw i8 %1495 to i1
  br i1 %1496, label %1497, label %1501

1497:                                             ; preds = %1491
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = call i32 @fileno(ptr noundef %1498) #10
  %1500 = call i32 @isatty(i32 noundef %1499) #10
  %.not171 = icmp eq i32 %1500, 0
  br i1 %.not171, label %1501, label %1502

1501:                                             ; preds = %1497, %1491
  br label %1502

1502:                                             ; preds = %1497, %1501
  %.str.21.sink726 = phi ptr [ @.str.21, %1501 ], [ @.str.18, %1497 ]
  store i32 %1492, ptr %186, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = load i32, ptr %132, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror(i32 noundef %1505, ptr noundef nonnull @.str.20) #10
  %1507 = load i32, ptr %132, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror_debug(i32 noundef %1507, ptr noundef nonnull @.str.20) #10
  %1509 = load i32, ptr %186, align 4, !tbaa !5
  %1510 = call ptr @strerror(i32 noundef %1509) #10
  %1511 = load i32, ptr %186, align 4, !tbaa !5
  %1512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1503, ptr noundef nonnull %.str.21.sink726, i32 noundef %1504, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.17, i32 noundef 145, ptr noundef %1506, ptr noundef %1508, ptr noundef %1510, i32 noundef %1511) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1513:                                             ; preds = %1486
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = add nsw i32 %1514, 1
  store i32 %1515, ptr @test_count, align 4, !tbaa !5
  %1516 = load ptr, ptr %13, align 8, !tbaa !9
  %1517 = icmp eq ptr %1516, null
  br i1 %1517, label %1518, label %1540

1518:                                             ; preds = %1513
  %1519 = load i32, ptr %186, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = call i32 @s2n_print_stacktrace(ptr noundef %1520) #10
  %1522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1523 = trunc nuw i8 %1522 to i1
  br i1 %1523, label %1524, label %1528

1524:                                             ; preds = %1518
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @fileno(ptr noundef %1525) #10
  %1527 = call i32 @isatty(i32 noundef %1526) #10
  %.not170 = icmp eq i32 %1527, 0
  br i1 %.not170, label %1528, label %1529

1528:                                             ; preds = %1524, %1518
  br label %1529

1529:                                             ; preds = %1524, %1528
  %.str.21.sink735 = phi ptr [ @.str.21, %1528 ], [ @.str.18, %1524 ]
  store i32 %1519, ptr %186, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = load i32, ptr %132, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror(i32 noundef %1532, ptr noundef nonnull @.str.20) #10
  %1534 = load i32, ptr %132, align 4, !tbaa !5
  %1535 = call ptr @s2n_strerror_debug(i32 noundef %1534, ptr noundef nonnull @.str.20) #10
  %1536 = load i32, ptr %186, align 4, !tbaa !5
  %1537 = call ptr @strerror(i32 noundef %1536) #10
  %1538 = load i32, ptr %186, align 4, !tbaa !5
  %1539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1530, ptr noundef nonnull %.str.21.sink735, i32 noundef %1531, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.17, i32 noundef 146, ptr noundef %1533, ptr noundef %1535, ptr noundef %1537, i32 noundef %1538) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1540:                                             ; preds = %1513
  %1541 = add nsw i32 %1514, 2
  store i32 %1541, ptr @test_count, align 4, !tbaa !5
  %1542 = call i32 @s2n_hash_digest(ptr noundef nonnull %1516, ptr noundef nonnull %12, i32 noundef 32) #10
  %1543 = icmp eq i32 %1542, -1
  br i1 %1543, label %1544, label %1566

1544:                                             ; preds = %1540
  %1545 = load i32, ptr %186, align 4, !tbaa !5
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = call i32 @s2n_print_stacktrace(ptr noundef %1546) #10
  %1548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1549 = trunc nuw i8 %1548 to i1
  br i1 %1549, label %1550, label %1554

1550:                                             ; preds = %1544
  %1551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1552 = call i32 @fileno(ptr noundef %1551) #10
  %1553 = call i32 @isatty(i32 noundef %1552) #10
  %.not169 = icmp eq i32 %1553, 0
  br i1 %.not169, label %1554, label %1555

1554:                                             ; preds = %1550, %1544
  br label %1555

1555:                                             ; preds = %1550, %1554
  %.str.21.sink744 = phi ptr [ @.str.21, %1554 ], [ @.str.18, %1550 ]
  store i32 %1545, ptr %186, align 4, !tbaa !5
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = load i32, ptr @test_count, align 4, !tbaa !5
  %1558 = load i32, ptr %132, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror(i32 noundef %1558, ptr noundef nonnull @.str.20) #10
  %1560 = load i32, ptr %132, align 4, !tbaa !5
  %1561 = call ptr @s2n_strerror_debug(i32 noundef %1560, ptr noundef nonnull @.str.20) #10
  %1562 = load i32, ptr %186, align 4, !tbaa !5
  %1563 = call ptr @strerror(i32 noundef %1562) #10
  %1564 = load i32, ptr %186, align 4, !tbaa !5
  %1565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1556, ptr noundef nonnull %.str.21.sink744, i32 noundef %1557, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.17, i32 noundef 147, ptr noundef %1559, ptr noundef %1561, ptr noundef %1563, i32 noundef %1564) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1566:                                             ; preds = %1540
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = add nsw i32 %1567, 1
  store i32 %1568, ptr @test_count, align 4, !tbaa !5
  %1569 = call i32 @s2n_connection_free(ptr noundef nonnull %1032) #10
  %1570 = icmp eq i32 %1569, -1
  br i1 %1570, label %1571, label %1593

1571:                                             ; preds = %1566
  %1572 = load i32, ptr %186, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = call i32 @s2n_print_stacktrace(ptr noundef %1573) #10
  %1575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1576 = trunc nuw i8 %1575 to i1
  br i1 %1576, label %1577, label %1581

1577:                                             ; preds = %1571
  %1578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1579 = call i32 @fileno(ptr noundef %1578) #10
  %1580 = call i32 @isatty(i32 noundef %1579) #10
  %.not168 = icmp eq i32 %1580, 0
  br i1 %.not168, label %1581, label %1582

1581:                                             ; preds = %1577, %1571
  br label %1582

1582:                                             ; preds = %1577, %1581
  %.str.21.sink753 = phi ptr [ @.str.21, %1581 ], [ @.str.18, %1577 ]
  store i32 %1572, ptr %186, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = load i32, ptr %132, align 4, !tbaa !5
  %1586 = call ptr @s2n_strerror(i32 noundef %1585, ptr noundef nonnull @.str.20) #10
  %1587 = load i32, ptr %132, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef nonnull @.str.20) #10
  %1589 = load i32, ptr %186, align 4, !tbaa !5
  %1590 = call ptr @strerror(i32 noundef %1589) #10
  %1591 = load i32, ptr %186, align 4, !tbaa !5
  %1592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1583, ptr noundef nonnull %.str.21.sink753, i32 noundef %1584, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.17, i32 noundef 150, ptr noundef %1586, ptr noundef %1588, ptr noundef %1590, i32 noundef %1591) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1593:                                             ; preds = %1566
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  %1594 = call i32 @s2n_cleanup() #10
  %1595 = icmp eq i32 %1594, -1
  br i1 %1595, label %1596, label %1618

1596:                                             ; preds = %1593
  %1597 = load i32, ptr %186, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = call i32 @s2n_print_stacktrace(ptr noundef %1598) #10
  %1600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1601 = trunc nuw i8 %1600 to i1
  br i1 %1601, label %1602, label %1606

1602:                                             ; preds = %1596
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = call i32 @fileno(ptr noundef %1603) #10
  %1605 = call i32 @isatty(i32 noundef %1604) #10
  %.not167 = icmp eq i32 %1605, 0
  br i1 %.not167, label %1606, label %1607

1606:                                             ; preds = %1602, %1596
  br label %1607

1607:                                             ; preds = %1602, %1606
  %.str.21.sink762 = phi ptr [ @.str.21, %1606 ], [ @.str.18, %1602 ]
  store i32 %1597, ptr %186, align 4, !tbaa !5
  %1608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = load i32, ptr %132, align 4, !tbaa !5
  %1611 = call ptr @s2n_strerror(i32 noundef %1610, ptr noundef nonnull @.str.20) #10
  %1612 = load i32, ptr %132, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror_debug(i32 noundef %1612, ptr noundef nonnull @.str.20) #10
  %1614 = load i32, ptr %186, align 4, !tbaa !5
  %1615 = call ptr @strerror(i32 noundef %1614) #10
  %1616 = load i32, ptr %186, align 4, !tbaa !5
  %1617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1608, ptr noundef nonnull %.str.21.sink762, i32 noundef %1609, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.17, i32 noundef 153, ptr noundef %1611, ptr noundef %1613, ptr noundef %1615, i32 noundef %1616) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1618:                                             ; preds = %1593
  %1619 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1620 = icmp eq i32 %1619, -1
  br i1 %1620, label %1621, label %1643

1621:                                             ; preds = %1618
  %1622 = load i32, ptr %186, align 4, !tbaa !5
  %1623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1624 = call i32 @s2n_print_stacktrace(ptr noundef %1623) #10
  %1625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1626 = trunc nuw i8 %1625 to i1
  br i1 %1626, label %1627, label %1631

1627:                                             ; preds = %1621
  %1628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1629 = call i32 @fileno(ptr noundef %1628) #10
  %1630 = call i32 @isatty(i32 noundef %1629) #10
  %.not166 = icmp eq i32 %1630, 0
  br i1 %.not166, label %1631, label %1632

1631:                                             ; preds = %1627, %1621
  br label %1632

1632:                                             ; preds = %1627, %1631
  %.str.21.sink771 = phi ptr [ @.str.21, %1631 ], [ @.str.18, %1627 ]
  store i32 %1622, ptr %186, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = load i32, ptr %132, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror(i32 noundef %1635, ptr noundef nonnull @.str.20) #10
  %1637 = load i32, ptr %132, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror_debug(i32 noundef %1637, ptr noundef nonnull @.str.20) #10
  %1639 = load i32, ptr %186, align 4, !tbaa !5
  %1640 = call ptr @strerror(i32 noundef %1639) #10
  %1641 = load i32, ptr %186, align 4, !tbaa !5
  %1642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef nonnull %.str.21.sink771, i32 noundef %1634, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.17, i32 noundef 153, ptr noundef %1636, ptr noundef %1638, ptr noundef %1640, i32 noundef %1641) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1643:                                             ; preds = %1618
  %1644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1645 = trunc nuw i8 %1644 to i1
  br i1 %1645, label %1646, label %1657

1646:                                             ; preds = %1643
  %1647 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1648 = call i32 @fileno(ptr noundef %1647) #10
  %1649 = call i32 @isatty(i32 noundef %1648) #10
  %.not163 = icmp eq i32 %1649, 0
  br i1 %.not163, label %1657, label %1650

1650:                                             ; preds = %1646
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not165 = icmp eq i32 %1651, 0
  %1652 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not165, label %1655, label %1653

1653:                                             ; preds = %1650
  %1654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1652, ptr noundef nonnull @.str.55, i32 noundef %1651) #10
  br label %1664

1655:                                             ; preds = %1650
  %1656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1652, ptr noundef nonnull @.str.56) #10
  br label %1664

1657:                                             ; preds = %1646, %1643
  %1658 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not164 = icmp eq i32 %1658, 0
  %1659 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not164, label %1662, label %1660

1660:                                             ; preds = %1657
  %1661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1659, ptr noundef nonnull @.str.57, i32 noundef %1658) #10
  br label %1664

1662:                                             ; preds = %1657
  %1663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1659, ptr noundef nonnull @.str.58) #10
  br label %1664

1664:                                             ; preds = %1660, %1662, %1653, %1655
  ret i32 0
}

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #5

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #5

declare i32 @s2n_init() local_unnamed_addr #5

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

declare i32 @s2n_handshake_hashes_new(ptr noundef) local_unnamed_addr #5

declare void @s2n_debug_info_reset() local_unnamed_addr #5

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

declare i32 @s2n_hash_digest_size(i32 noundef, ptr noundef) local_unnamed_addr #5

declare i32 @s2n_hash_digest(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_handshake_hashes_free(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_handshake_hashes_wipe(ptr noundef) local_unnamed_addr #5

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #5

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_connection_free_handshake(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_cleanup() local_unnamed_addr #5

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

!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 2056}
!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 = !{!7, !7, i64 0}
!43 = distinct !{!43, !44, !45}
!44 = !{!"llvm.loop.mustprogress"}
!45 = !{!"llvm.loop.peeled.count", i32 1}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopFullUnrollPass,LoopRotatePass,LoopUnrollPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass