; LLVM IR from aws/s2n-tls :: tests/unit (s2n_handshake_misc_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
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i8, align 1
  %12 = alloca %struct.s2n_result, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %struct.s2n_result, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_result, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %struct.s2n_result, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca %struct.s2n_result, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca %struct.s2n_result, align 4
  %37 = alloca %struct.s2n_result, align 4
  %38 = alloca i32, align 4
  %39 = alloca %struct.s2n_result, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = 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 %45

45:                                               ; preds = %2
  br label %46

46:                                               ; preds = %45
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %47 = load ptr, ptr @stdout, align 8, !tbaa !9
  %48 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %47, ptr noundef @.str, ptr noundef @.str.1) #8
  %49 = load ptr, ptr @stdout, align 8, !tbaa !9
  %50 = call i32 @fflush(ptr noundef %49)
  br label %51

51:                                               ; preds = %46
  %52 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %53 = icmp eq i32 %52, -1
  br i1 %53, label %54, label %105

54:                                               ; preds = %51
  br label %55

55:                                               ; preds = %54
  br label %56

56:                                               ; preds = %55
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  %57 = call ptr @__errno_location() #9
  %58 = load i32, ptr %57, align 4, !tbaa !5
  store i32 %58, ptr %6, align 4, !tbaa !5
  %59 = load ptr, ptr @stderr, align 8, !tbaa !9
  %60 = call i32 @s2n_print_stacktrace(ptr noundef %59)
  %61 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %62 = trunc i8 %61 to i1
  br i1 %62, label %63, label %85

63:                                               ; preds = %56
  %64 = load ptr, ptr @stderr, align 8, !tbaa !9
  %65 = call i32 @fileno(ptr noundef %64) #8
  %66 = call i32 @isatty(i32 noundef %65) #8
  %67 = icmp ne i32 %66, 0
  br i1 %67, label %68, label %85

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

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

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

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

104:                                              ; No predecessors!
  br label %105

105:                                              ; preds = %104, %51
  br label %106

106:                                              ; preds = %105
  br label %107

107:                                              ; preds = %106
  %108 = load i32, ptr @test_count, align 4, !tbaa !5
  %109 = add nsw i32 %108, 1
  store i32 %109, ptr @test_count, align 4, !tbaa !5
  %110 = call i32 @s2n_enable_atexit()
  %111 = icmp eq i32 %110, -1
  br i1 %111, label %112, label %163

112:                                              ; preds = %107
  br label %113

113:                                              ; preds = %112
  br label %114

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

121:                                              ; preds = %114
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = call i32 @fileno(ptr noundef %122) #8
  %124 = call i32 @isatty(i32 noundef %123) #8
  %125 = icmp ne i32 %124, 0
  br i1 %125, label %126, label %143

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

143:                                              ; preds = %121, %114
  %144 = load i32, ptr %7, align 4, !tbaa !5
  %145 = call ptr @__errno_location() #9
  store i32 %144, ptr %145, align 4, !tbaa !5
  %146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %147 = load i32, ptr @test_count, align 4, !tbaa !5
  %148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = call ptr @s2n_strerror(i32 noundef %149, ptr noundef @.str.4)
  %151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = call ptr @s2n_strerror_debug(i32 noundef %152, ptr noundef @.str.4)
  %154 = call ptr @__errno_location() #9
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = call ptr @strerror(i32 noundef %155) #8
  %157 = call ptr @__errno_location() #9
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %146, ptr noundef @.str.5, i32 noundef %147, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 34, ptr noundef %150, ptr noundef %153, ptr noundef %156, i32 noundef %158) #8
  br label %160

160:                                              ; preds = %143, %126
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %161

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

162:                                              ; No predecessors!
  br label %163

163:                                              ; preds = %162, %107
  br label %164

164:                                              ; preds = %163
  br label %165

165:                                              ; preds = %164
  br label %166

166:                                              ; preds = %165
  %167 = call i32 @s2n_init()
  %168 = icmp eq i32 %167, -1
  br i1 %168, label %169, label %220

169:                                              ; preds = %166
  br label %170

170:                                              ; preds = %169
  br label %171

171:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %172 = call ptr @__errno_location() #9
  %173 = load i32, ptr %172, align 4, !tbaa !5
  store i32 %173, ptr %8, align 4, !tbaa !5
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = call i32 @s2n_print_stacktrace(ptr noundef %174)
  %176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %177 = trunc i8 %176 to i1
  br i1 %177, label %178, label %200

178:                                              ; preds = %171
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = call i32 @fileno(ptr noundef %179) #8
  %181 = call i32 @isatty(i32 noundef %180) #8
  %182 = icmp ne i32 %181, 0
  br i1 %182, label %183, label %200

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

200:                                              ; preds = %178, %171
  %201 = load i32, ptr %8, align 4, !tbaa !5
  %202 = call ptr @__errno_location() #9
  store i32 %201, ptr %202, align 4, !tbaa !5
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = load i32, ptr @test_count, align 4, !tbaa !5
  %205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = call ptr @s2n_strerror(i32 noundef %206, ptr noundef @.str.4)
  %208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %209 = load i32, ptr %208, align 4, !tbaa !5
  %210 = call ptr @s2n_strerror_debug(i32 noundef %209, ptr noundef @.str.4)
  %211 = call ptr @__errno_location() #9
  %212 = load i32, ptr %211, align 4, !tbaa !5
  %213 = call ptr @strerror(i32 noundef %212) #8
  %214 = call ptr @__errno_location() #9
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %203, ptr noundef @.str.5, i32 noundef %204, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 34, ptr noundef %207, ptr noundef %210, ptr noundef %213, i32 noundef %215) #8
  br label %217

217:                                              ; preds = %200, %183
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %218

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

219:                                              ; No predecessors!
  br label %220

220:                                              ; preds = %219, %166
  br label %221

221:                                              ; preds = %220
  br label %222

222:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  %223 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %223, ptr %9, align 8, !tbaa !9
  br label %224

224:                                              ; preds = %222
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = add nsw i32 %225, 1
  store i32 %226, ptr @test_count, align 4, !tbaa !5
  %227 = load ptr, ptr %9, align 8, !tbaa !9
  %228 = icmp eq ptr %227, null
  br i1 %228, label %229, label %282

229:                                              ; preds = %224
  br label %230

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  %232 = call ptr @__errno_location() #9
  %233 = load i32, ptr %232, align 4, !tbaa !5
  store i32 %233, ptr %10, align 4, !tbaa !5
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = call i32 @s2n_print_stacktrace(ptr noundef %234)
  %236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %237 = trunc i8 %236 to i1
  br i1 %237, label %238, label %260

238:                                              ; preds = %231
  %239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %240 = call i32 @fileno(ptr noundef %239) #8
  %241 = call i32 @isatty(i32 noundef %240) #8
  %242 = icmp ne i32 %241, 0
  br i1 %242, label %243, label %260

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

260:                                              ; preds = %238, %231
  %261 = load i32, ptr %10, align 4, !tbaa !5
  %262 = call ptr @__errno_location() #9
  store i32 %261, ptr %262, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror(i32 noundef %266, ptr noundef @.str.4)
  %268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call ptr @s2n_strerror_debug(i32 noundef %269, ptr noundef @.str.4)
  %271 = call ptr @__errno_location() #9
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = call ptr @strerror(i32 noundef %272) #8
  %274 = call ptr @__errno_location() #9
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef @.str.5, i32 noundef %264, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 39, ptr noundef %267, ptr noundef %270, ptr noundef %273, i32 noundef %275) #8
  br label %277

277:                                              ; preds = %260, %243
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  br label %278

278:                                              ; preds = %277
  br label %279

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

280:                                              ; No predecessors!
  br label %281

281:                                              ; preds = %280
  br label %282

282:                                              ; preds = %281, %224
  br label %283

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #8
  store i8 48, ptr %11, align 1, !tbaa !15
  br label %285

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285
  br label %287

287:                                              ; preds = %286
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr @test_count, align 4, !tbaa !5
  %290 = call i32 @s2n_handshake_set_finished_len(ptr noundef null, i8 noundef zeroext 0)
  %291 = getelementptr inbounds %struct.s2n_result, ptr %12, i32 0, i32 0
  store i32 %290, ptr %291, align 4
  %292 = getelementptr inbounds %struct.s2n_result, ptr %12, i32 0, i32 0
  %293 = load i32, ptr %292, align 4
  %294 = call zeroext i1 @s2n_result_is_error(i32 %293)
  br i1 %294, label %348, label %295

295:                                              ; preds = %287
  br label %296

296:                                              ; preds = %295
  br label %297

297:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %298 = call ptr @__errno_location() #9
  %299 = load i32, ptr %298, align 4, !tbaa !5
  store i32 %299, ptr %13, align 4, !tbaa !5
  %300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %301 = call i32 @s2n_print_stacktrace(ptr noundef %300)
  %302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %303 = trunc i8 %302 to i1
  br i1 %303, label %304, label %326

304:                                              ; preds = %297
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = call i32 @fileno(ptr noundef %305) #8
  %307 = call i32 @isatty(i32 noundef %306) #8
  %308 = icmp ne i32 %307, 0
  br i1 %308, label %309, label %326

309:                                              ; preds = %304
  %310 = load i32, ptr %13, align 4, !tbaa !5
  %311 = call ptr @__errno_location() #9
  store i32 %310, ptr %311, align 4, !tbaa !5
  %312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %313 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %315, ptr noundef @.str.4)
  %317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = call ptr @s2n_strerror_debug(i32 noundef %318, ptr noundef @.str.4)
  %320 = call ptr @__errno_location() #9
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = call ptr @strerror(i32 noundef %321) #8
  %323 = call ptr @__errno_location() #9
  %324 = load i32, ptr %323, align 4, !tbaa !5
  %325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %312, ptr noundef @.str.2, i32 noundef %313, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 43, ptr noundef %316, ptr noundef %319, ptr noundef %322, i32 noundef %324) #8
  br label %343

326:                                              ; preds = %304, %297
  %327 = load i32, ptr %13, align 4, !tbaa !5
  %328 = call ptr @__errno_location() #9
  store i32 %327, ptr %328, align 4, !tbaa !5
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %332, ptr noundef @.str.4)
  %334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %335 = load i32, ptr %334, align 4, !tbaa !5
  %336 = call ptr @s2n_strerror_debug(i32 noundef %335, ptr noundef @.str.4)
  %337 = call ptr @__errno_location() #9
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = call ptr @strerror(i32 noundef %338) #8
  %340 = call ptr @__errno_location() #9
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef @.str.5, i32 noundef %330, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 43, ptr noundef %333, ptr noundef %336, ptr noundef %339, i32 noundef %341) #8
  br label %343

343:                                              ; preds = %326, %309
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %344

344:                                              ; preds = %343
  br label %345

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

346:                                              ; No predecessors!
  br label %347

347:                                              ; preds = %346
  br label %348

348:                                              ; preds = %347, %287
  br label %349

349:                                              ; preds = %348
  br label %350

350:                                              ; preds = %349
  br label %351

351:                                              ; preds = %350
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr @test_count, align 4, !tbaa !5
  %354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = icmp eq i32 %355, 402653193
  br i1 %356, label %410, label %357

357:                                              ; preds = %351
  br label %358

358:                                              ; preds = %357
  br label %359

359:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %360 = call ptr @__errno_location() #9
  %361 = load i32, ptr %360, align 4, !tbaa !5
  store i32 %361, ptr %14, align 4, !tbaa !5
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = call i32 @s2n_print_stacktrace(ptr noundef %362)
  %364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %365 = trunc i8 %364 to i1
  br i1 %365, label %366, label %388

366:                                              ; preds = %359
  %367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %368 = call i32 @fileno(ptr noundef %367) #8
  %369 = call i32 @isatty(i32 noundef %368) #8
  %370 = icmp ne i32 %369, 0
  br i1 %370, label %371, label %388

371:                                              ; preds = %366
  %372 = load i32, ptr %14, align 4, !tbaa !5
  %373 = call ptr @__errno_location() #9
  store i32 %372, ptr %373, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror(i32 noundef %377, ptr noundef @.str.4)
  %379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call ptr @s2n_strerror_debug(i32 noundef %380, ptr noundef @.str.4)
  %382 = call ptr @__errno_location() #9
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call ptr @strerror(i32 noundef %383) #8
  %385 = call ptr @__errno_location() #9
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef @.str.2, i32 noundef %375, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 43, ptr noundef %378, ptr noundef %381, ptr noundef %384, i32 noundef %386) #8
  br label %405

388:                                              ; preds = %366, %359
  %389 = load i32, ptr %14, align 4, !tbaa !5
  %390 = call ptr @__errno_location() #9
  store i32 %389, ptr %390, align 4, !tbaa !5
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = call ptr @s2n_strerror(i32 noundef %394, ptr noundef @.str.4)
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror_debug(i32 noundef %397, ptr noundef @.str.4)
  %399 = call ptr @__errno_location() #9
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @strerror(i32 noundef %400) #8
  %402 = call ptr @__errno_location() #9
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %391, ptr noundef @.str.5, i32 noundef %392, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 43, ptr noundef %395, ptr noundef %398, ptr noundef %401, i32 noundef %403) #8
  br label %405

405:                                              ; preds = %388, %371
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %406

406:                                              ; preds = %405
  br label %407

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

408:                                              ; No predecessors!
  br label %409

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409, %351
  br label %411

411:                                              ; preds = %410
  br label %412

412:                                              ; preds = %411
  br label %413

413:                                              ; preds = %412
  %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 = 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.4)
  %419 = icmp eq ptr %418, null
  br i1 %419, label %420, label %473

420:                                              ; preds = %413
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %423 = call ptr @__errno_location() #9
  %424 = load i32, ptr %423, align 4, !tbaa !5
  store i32 %424, ptr %15, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @s2n_print_stacktrace(ptr noundef %425)
  %427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %428 = trunc i8 %427 to i1
  br i1 %428, label %429, label %451

429:                                              ; preds = %422
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = call i32 @fileno(ptr noundef %430) #8
  %432 = call i32 @isatty(i32 noundef %431) #8
  %433 = icmp ne i32 %432, 0
  br i1 %433, label %434, label %451

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

451:                                              ; preds = %429, %422
  %452 = load i32, ptr %15, align 4, !tbaa !5
  %453 = call ptr @__errno_location() #9
  store i32 %452, ptr %453, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = load i32, ptr @test_count, align 4, !tbaa !5
  %456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = call ptr @s2n_strerror(i32 noundef %457, ptr noundef @.str.4)
  %459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror_debug(i32 noundef %460, ptr noundef @.str.4)
  %462 = call ptr @__errno_location() #9
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @strerror(i32 noundef %463) #8
  %465 = call ptr @__errno_location() #9
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %454, ptr noundef @.str.5, i32 noundef %455, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 43, ptr noundef %458, ptr noundef %461, ptr noundef %464, i32 noundef %466) #8
  br label %468

468:                                              ; preds = %451, %434
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %469

469:                                              ; preds = %468
  br label %470

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

471:                                              ; No predecessors!
  br label %472

472:                                              ; preds = %471
  br label %473

473:                                              ; preds = %472, %413
  br label %474

474:                                              ; preds = %473
  br label %475

475:                                              ; preds = %474
  br label %476

476:                                              ; preds = %475
  br label %477

477:                                              ; preds = %476
  br label %478

478:                                              ; preds = %477
  %479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %479, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %480 = call ptr @__errno_location() #9
  store i32 0, ptr %480, align 4, !tbaa !5
  br label %481

481:                                              ; preds = %478
  br label %482

482:                                              ; preds = %481
  br label %483

483:                                              ; preds = %482
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  br label %486

486:                                              ; preds = %485
  br label %487

487:                                              ; preds = %486
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = add nsw i32 %488, 1
  store i32 %489, ptr @test_count, align 4, !tbaa !5
  %490 = load ptr, ptr %9, align 8, !tbaa !9
  %491 = call i32 @s2n_handshake_set_finished_len(ptr noundef %490, i8 noundef zeroext -1)
  %492 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %491, ptr %492, align 4
  %493 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %494 = load i32, ptr %493, align 4
  %495 = call zeroext i1 @s2n_result_is_error(i32 %494)
  br i1 %495, label %549, label %496

496:                                              ; preds = %487
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %499 = call ptr @__errno_location() #9
  %500 = load i32, ptr %499, align 4, !tbaa !5
  store i32 %500, ptr %17, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @s2n_print_stacktrace(ptr noundef %501)
  %503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %504 = trunc i8 %503 to i1
  br i1 %504, label %505, label %527

505:                                              ; preds = %498
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @fileno(ptr noundef %506) #8
  %508 = call i32 @isatty(i32 noundef %507) #8
  %509 = icmp ne i32 %508, 0
  br i1 %509, label %510, label %527

510:                                              ; preds = %505
  %511 = load i32, ptr %17, align 4, !tbaa !5
  %512 = call ptr @__errno_location() #9
  store i32 %511, ptr %512, align 4, !tbaa !5
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = load i32, ptr @test_count, align 4, !tbaa !5
  %515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror(i32 noundef %516, ptr noundef @.str.4)
  %518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror_debug(i32 noundef %519, ptr noundef @.str.4)
  %521 = call ptr @__errno_location() #9
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @strerror(i32 noundef %522) #8
  %524 = call ptr @__errno_location() #9
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %513, ptr noundef @.str.2, i32 noundef %514, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 46, ptr noundef %517, ptr noundef %520, ptr noundef %523, i32 noundef %525) #8
  br label %544

527:                                              ; preds = %505, %498
  %528 = load i32, ptr %17, align 4, !tbaa !5
  %529 = call ptr @__errno_location() #9
  store i32 %528, ptr %529, align 4, !tbaa !5
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call ptr @s2n_strerror(i32 noundef %533, ptr noundef @.str.4)
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror_debug(i32 noundef %536, ptr noundef @.str.4)
  %538 = call ptr @__errno_location() #9
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @strerror(i32 noundef %539) #8
  %541 = call ptr @__errno_location() #9
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %530, ptr noundef @.str.5, i32 noundef %531, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 46, ptr noundef %534, ptr noundef %537, ptr noundef %540, i32 noundef %542) #8
  br label %544

544:                                              ; preds = %527, %510
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %545

545:                                              ; preds = %544
  br label %546

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

547:                                              ; No predecessors!
  br label %548

548:                                              ; preds = %547
  br label %549

549:                                              ; preds = %548, %487
  br label %550

550:                                              ; preds = %549
  br label %551

551:                                              ; preds = %550
  br label %552

552:                                              ; preds = %551
  %553 = load i32, ptr @test_count, align 4, !tbaa !5
  %554 = add nsw i32 %553, 1
  store i32 %554, ptr @test_count, align 4, !tbaa !5
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = icmp eq i32 %556, 402653194
  br i1 %557, label %611, label %558

558:                                              ; preds = %552
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %561 = call ptr @__errno_location() #9
  %562 = load i32, ptr %561, align 4, !tbaa !5
  store i32 %562, ptr %18, align 4, !tbaa !5
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = call i32 @s2n_print_stacktrace(ptr noundef %563)
  %565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %566 = trunc i8 %565 to i1
  br i1 %566, label %567, label %589

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

572:                                              ; preds = %567
  %573 = load i32, ptr %18, align 4, !tbaa !5
  %574 = call ptr @__errno_location() #9
  store i32 %573, ptr %574, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = load i32, ptr @test_count, align 4, !tbaa !5
  %577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = call ptr @s2n_strerror(i32 noundef %578, ptr noundef @.str.4)
  %580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror_debug(i32 noundef %581, ptr noundef @.str.4)
  %583 = call ptr @__errno_location() #9
  %584 = load i32, ptr %583, align 4, !tbaa !5
  %585 = call ptr @strerror(i32 noundef %584) #8
  %586 = call ptr @__errno_location() #9
  %587 = load i32, ptr %586, align 4, !tbaa !5
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %575, ptr noundef @.str.2, i32 noundef %576, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 46, ptr noundef %579, ptr noundef %582, ptr noundef %585, i32 noundef %587) #8
  br label %606

589:                                              ; preds = %567, %560
  %590 = load i32, ptr %18, align 4, !tbaa !5
  %591 = call ptr @__errno_location() #9
  store i32 %590, ptr %591, align 4, !tbaa !5
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %595 = load i32, ptr %594, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror(i32 noundef %595, ptr noundef @.str.4)
  %597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call ptr @s2n_strerror_debug(i32 noundef %598, ptr noundef @.str.4)
  %600 = call ptr @__errno_location() #9
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = call ptr @strerror(i32 noundef %601) #8
  %603 = call ptr @__errno_location() #9
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %592, ptr noundef @.str.5, i32 noundef %593, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 46, ptr noundef %596, ptr noundef %599, ptr noundef %602, i32 noundef %604) #8
  br label %606

606:                                              ; preds = %589, %572
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %607

607:                                              ; preds = %606
  br label %608

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

609:                                              ; No predecessors!
  br label %610

610:                                              ; preds = %609
  br label %611

611:                                              ; preds = %610, %552
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  br label %614

614:                                              ; preds = %613
  %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 align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef @.str.4)
  %620 = icmp eq ptr %619, null
  br i1 %620, label %621, label %674

621:                                              ; preds = %614
  br label %622

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %624 = call ptr @__errno_location() #9
  %625 = load i32, ptr %624, align 4, !tbaa !5
  store i32 %625, ptr %19, align 4, !tbaa !5
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = call i32 @s2n_print_stacktrace(ptr noundef %626)
  %628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %629 = trunc i8 %628 to i1
  br i1 %629, label %630, label %652

630:                                              ; preds = %623
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = call i32 @fileno(ptr noundef %631) #8
  %633 = call i32 @isatty(i32 noundef %632) #8
  %634 = icmp ne i32 %633, 0
  br i1 %634, label %635, label %652

635:                                              ; preds = %630
  %636 = load i32, ptr %19, align 4, !tbaa !5
  %637 = call ptr @__errno_location() #9
  store i32 %636, ptr %637, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror(i32 noundef %641, ptr noundef @.str.4)
  %643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef @.str.4)
  %646 = call ptr @__errno_location() #9
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call ptr @strerror(i32 noundef %647) #8
  %649 = call ptr @__errno_location() #9
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef @.str.2, i32 noundef %639, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 46, ptr noundef %642, ptr noundef %645, ptr noundef %648, i32 noundef %650) #8
  br label %669

652:                                              ; preds = %630, %623
  %653 = load i32, ptr %19, align 4, !tbaa !5
  %654 = call ptr @__errno_location() #9
  store i32 %653, ptr %654, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = load i32, ptr @test_count, align 4, !tbaa !5
  %657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror(i32 noundef %658, ptr noundef @.str.4)
  %660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef @.str.4)
  %663 = call ptr @__errno_location() #9
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call ptr @strerror(i32 noundef %664) #8
  %666 = call ptr @__errno_location() #9
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %655, ptr noundef @.str.5, i32 noundef %656, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 46, ptr noundef %659, ptr noundef %662, ptr noundef %665, i32 noundef %667) #8
  br label %669

669:                                              ; preds = %652, %635
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %670

670:                                              ; preds = %669
  br label %671

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

672:                                              ; No predecessors!
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673, %614
  br label %675

675:                                              ; preds = %674
  br label %676

676:                                              ; preds = %675
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678
  %680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %680, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %681 = call ptr @__errno_location() #9
  store i32 0, ptr %681, align 4, !tbaa !5
  br label %682

682:                                              ; preds = %679
  br label %683

683:                                              ; preds = %682
  br label %684

684:                                              ; preds = %683
  br label %685

685:                                              ; preds = %684
  br label %686

686:                                              ; preds = %685
  br label %687

687:                                              ; preds = %686
  br label %688

688:                                              ; preds = %687
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr @test_count, align 4, !tbaa !5
  %691 = load ptr, ptr %9, align 8, !tbaa !9
  %692 = call i32 @s2n_handshake_set_finished_len(ptr noundef %691, i8 noundef zeroext 49)
  %693 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  store i32 %692, ptr %693, align 4
  %694 = getelementptr inbounds %struct.s2n_result, ptr %20, i32 0, i32 0
  %695 = load i32, ptr %694, align 4
  %696 = call zeroext i1 @s2n_result_is_error(i32 %695)
  br i1 %696, label %750, label %697

697:                                              ; preds = %688
  br label %698

698:                                              ; preds = %697
  br label %699

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

706:                                              ; preds = %699
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = call i32 @fileno(ptr noundef %707) #8
  %709 = call i32 @isatty(i32 noundef %708) #8
  %710 = icmp ne i32 %709, 0
  br i1 %710, label %711, label %728

711:                                              ; preds = %706
  %712 = load i32, ptr %21, align 4, !tbaa !5
  %713 = call ptr @__errno_location() #9
  store i32 %712, ptr %713, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %717 = load i32, ptr %716, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror(i32 noundef %717, ptr noundef @.str.4)
  %719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %720 = load i32, ptr %719, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror_debug(i32 noundef %720, ptr noundef @.str.4)
  %722 = call ptr @__errno_location() #9
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = call ptr @strerror(i32 noundef %723) #8
  %725 = call ptr @__errno_location() #9
  %726 = load i32, ptr %725, align 4, !tbaa !5
  %727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %714, ptr noundef @.str.2, i32 noundef %715, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 47, ptr noundef %718, ptr noundef %721, ptr noundef %724, i32 noundef %726) #8
  br label %745

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

745:                                              ; preds = %728, %711
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %746

746:                                              ; preds = %745
  br label %747

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

748:                                              ; No predecessors!
  br label %749

749:                                              ; preds = %748
  br label %750

750:                                              ; preds = %749, %688
  br label %751

751:                                              ; preds = %750
  br label %752

752:                                              ; preds = %751
  br label %753

753:                                              ; preds = %752
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %755 = add nsw i32 %754, 1
  store i32 %755, ptr @test_count, align 4, !tbaa !5
  %756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = icmp eq i32 %757, 402653194
  br i1 %758, label %812, label %759

759:                                              ; preds = %753
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %762 = call ptr @__errno_location() #9
  %763 = load i32, ptr %762, align 4, !tbaa !5
  store i32 %763, ptr %22, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @s2n_print_stacktrace(ptr noundef %764)
  %766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %767 = trunc i8 %766 to i1
  br i1 %767, label %768, label %790

768:                                              ; preds = %761
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @fileno(ptr noundef %769) #8
  %771 = call i32 @isatty(i32 noundef %770) #8
  %772 = icmp ne i32 %771, 0
  br i1 %772, label %773, label %790

773:                                              ; preds = %768
  %774 = load i32, ptr %22, align 4, !tbaa !5
  %775 = call ptr @__errno_location() #9
  store i32 %774, ptr %775, align 4, !tbaa !5
  %776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %777 = load i32, ptr @test_count, align 4, !tbaa !5
  %778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %779 = load i32, ptr %778, align 4, !tbaa !5
  %780 = call ptr @s2n_strerror(i32 noundef %779, ptr noundef @.str.4)
  %781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %782 = load i32, ptr %781, align 4, !tbaa !5
  %783 = call ptr @s2n_strerror_debug(i32 noundef %782, ptr noundef @.str.4)
  %784 = call ptr @__errno_location() #9
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = call ptr @strerror(i32 noundef %785) #8
  %787 = call ptr @__errno_location() #9
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %776, ptr noundef @.str.2, i32 noundef %777, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 47, ptr noundef %780, ptr noundef %783, ptr noundef %786, i32 noundef %788) #8
  br label %807

790:                                              ; preds = %768, %761
  %791 = load i32, ptr %22, align 4, !tbaa !5
  %792 = call ptr @__errno_location() #9
  store i32 %791, ptr %792, align 4, !tbaa !5
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror(i32 noundef %796, ptr noundef @.str.4)
  %798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror_debug(i32 noundef %799, ptr noundef @.str.4)
  %801 = call ptr @__errno_location() #9
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call ptr @strerror(i32 noundef %802) #8
  %804 = call ptr @__errno_location() #9
  %805 = load i32, ptr %804, align 4, !tbaa !5
  %806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %793, ptr noundef @.str.5, i32 noundef %794, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 47, ptr noundef %797, ptr noundef %800, ptr noundef %803, i32 noundef %805) #8
  br label %807

807:                                              ; preds = %790, %773
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %808

808:                                              ; preds = %807
  br label %809

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

810:                                              ; No predecessors!
  br label %811

811:                                              ; preds = %810
  br label %812

812:                                              ; preds = %811, %753
  br label %813

813:                                              ; preds = %812
  br label %814

814:                                              ; preds = %813
  br label %815

815:                                              ; preds = %814
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = add nsw i32 %816, 1
  store i32 %817, ptr @test_count, align 4, !tbaa !5
  %818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror_debug(i32 noundef %819, ptr noundef @.str.4)
  %821 = icmp eq ptr %820, null
  br i1 %821, label %822, label %875

822:                                              ; preds = %815
  br label %823

823:                                              ; preds = %822
  br label %824

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

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

836:                                              ; preds = %831
  %837 = load i32, ptr %23, align 4, !tbaa !5
  %838 = call ptr @__errno_location() #9
  store i32 %837, ptr %838, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = load i32, ptr @test_count, align 4, !tbaa !5
  %841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror(i32 noundef %842, ptr noundef @.str.4)
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror_debug(i32 noundef %845, ptr noundef @.str.4)
  %847 = call ptr @__errno_location() #9
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @strerror(i32 noundef %848) #8
  %850 = call ptr @__errno_location() #9
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %839, ptr noundef @.str.2, i32 noundef %840, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 47, ptr noundef %843, ptr noundef %846, ptr noundef %849, i32 noundef %851) #8
  br label %870

853:                                              ; preds = %831, %824
  %854 = load i32, ptr %23, align 4, !tbaa !5
  %855 = call ptr @__errno_location() #9
  store i32 %854, ptr %855, align 4, !tbaa !5
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %859 = load i32, ptr %858, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror(i32 noundef %859, ptr noundef @.str.4)
  %861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call ptr @s2n_strerror_debug(i32 noundef %862, ptr noundef @.str.4)
  %864 = call ptr @__errno_location() #9
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call ptr @strerror(i32 noundef %865) #8
  %867 = call ptr @__errno_location() #9
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %856, ptr noundef @.str.5, i32 noundef %857, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 47, ptr noundef %860, ptr noundef %863, ptr noundef %866, i32 noundef %868) #8
  br label %870

870:                                              ; preds = %853, %836
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %871

871:                                              ; preds = %870
  br label %872

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

873:                                              ; No predecessors!
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874, %815
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876
  br label %878

878:                                              ; preds = %877
  br label %879

879:                                              ; preds = %878
  br label %880

880:                                              ; preds = %879
  %881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %881, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %882 = call ptr @__errno_location() #9
  store i32 0, ptr %882, align 4, !tbaa !5
  br label %883

883:                                              ; preds = %880
  br label %884

884:                                              ; preds = %883
  br label %885

885:                                              ; preds = %884
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886
  br label %888

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = add nsw i32 %890, 1
  store i32 %891, ptr @test_count, align 4, !tbaa !5
  %892 = load ptr, ptr %9, align 8, !tbaa !9
  %893 = call i32 @s2n_handshake_set_finished_len(ptr noundef %892, i8 noundef zeroext 0)
  %894 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %893, ptr %894, align 4
  %895 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  %896 = load i32, ptr %895, align 4
  %897 = call zeroext i1 @s2n_result_is_error(i32 %896)
  br i1 %897, label %951, label %898

898:                                              ; preds = %889
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %901 = call ptr @__errno_location() #9
  %902 = load i32, ptr %901, align 4, !tbaa !5
  store i32 %902, ptr %25, align 4, !tbaa !5
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @s2n_print_stacktrace(ptr noundef %903)
  %905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %906 = trunc i8 %905 to i1
  br i1 %906, label %907, label %929

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

912:                                              ; preds = %907
  %913 = load i32, ptr %25, align 4, !tbaa !5
  %914 = call ptr @__errno_location() #9
  store i32 %913, ptr %914, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror(i32 noundef %918, ptr noundef @.str.4)
  %920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror_debug(i32 noundef %921, ptr noundef @.str.4)
  %923 = call ptr @__errno_location() #9
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call ptr @strerror(i32 noundef %924) #8
  %926 = call ptr @__errno_location() #9
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %915, ptr noundef @.str.2, i32 noundef %916, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 50, ptr noundef %919, ptr noundef %922, ptr noundef %925, i32 noundef %927) #8
  br label %946

929:                                              ; preds = %907, %900
  %930 = load i32, ptr %25, align 4, !tbaa !5
  %931 = call ptr @__errno_location() #9
  store i32 %930, ptr %931, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror(i32 noundef %935, ptr noundef @.str.4)
  %937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror_debug(i32 noundef %938, ptr noundef @.str.4)
  %940 = call ptr @__errno_location() #9
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call ptr @strerror(i32 noundef %941) #8
  %943 = call ptr @__errno_location() #9
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %932, ptr noundef @.str.5, i32 noundef %933, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 50, ptr noundef %936, ptr noundef %939, ptr noundef %942, i32 noundef %944) #8
  br label %946

946:                                              ; preds = %929, %912
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %947

947:                                              ; preds = %946
  br label %948

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

949:                                              ; No predecessors!
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950, %889
  br label %952

952:                                              ; preds = %951
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953
  %955 = load i32, ptr @test_count, align 4, !tbaa !5
  %956 = add nsw i32 %955, 1
  store i32 %956, ptr @test_count, align 4, !tbaa !5
  %957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = icmp eq i32 %958, 402653194
  br i1 %959, label %1013, label %960

960:                                              ; preds = %954
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %963 = call ptr @__errno_location() #9
  %964 = load i32, ptr %963, align 4, !tbaa !5
  store i32 %964, ptr %26, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @s2n_print_stacktrace(ptr noundef %965)
  %967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %968 = trunc i8 %967 to i1
  br i1 %968, label %969, label %991

969:                                              ; preds = %962
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = call i32 @fileno(ptr noundef %970) #8
  %972 = call i32 @isatty(i32 noundef %971) #8
  %973 = icmp ne i32 %972, 0
  br i1 %973, label %974, label %991

974:                                              ; preds = %969
  %975 = load i32, ptr %26, align 4, !tbaa !5
  %976 = call ptr @__errno_location() #9
  store i32 %975, ptr %976, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %980, ptr noundef @.str.4)
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror_debug(i32 noundef %983, ptr noundef @.str.4)
  %985 = call ptr @__errno_location() #9
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @strerror(i32 noundef %986) #8
  %988 = call ptr @__errno_location() #9
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef @.str.2, i32 noundef %978, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 50, ptr noundef %981, ptr noundef %984, ptr noundef %987, i32 noundef %989) #8
  br label %1008

991:                                              ; preds = %969, %962
  %992 = load i32, ptr %26, align 4, !tbaa !5
  %993 = call ptr @__errno_location() #9
  store i32 %992, ptr %993, align 4, !tbaa !5
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef @.str.4)
  %999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef @.str.4)
  %1002 = call ptr @__errno_location() #9
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #8
  %1005 = call ptr @__errno_location() #9
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %994, ptr noundef @.str.5, i32 noundef %995, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 50, ptr noundef %998, ptr noundef %1001, ptr noundef %1004, i32 noundef %1006) #8
  br label %1008

1008:                                             ; preds = %991, %974
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

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

1011:                                             ; No predecessors!
  br label %1012

1012:                                             ; preds = %1011
  br label %1013

1013:                                             ; preds = %1012, %954
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

1016:                                             ; preds = %1015
  %1017 = load i32, ptr @test_count, align 4, !tbaa !5
  %1018 = add nsw i32 %1017, 1
  store i32 %1018, ptr @test_count, align 4, !tbaa !5
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror_debug(i32 noundef %1020, ptr noundef @.str.4)
  %1022 = icmp eq ptr %1021, null
  br i1 %1022, label %1023, label %1076

1023:                                             ; preds = %1016
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

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

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

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

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

1071:                                             ; preds = %1054, %1037
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1072

1072:                                             ; preds = %1071
  br label %1073

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

1074:                                             ; No predecessors!
  br label %1075

1075:                                             ; preds = %1074
  br label %1076

1076:                                             ; preds = %1075, %1016
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

1079:                                             ; preds = %1078
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080
  %1082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1082, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1083 = call ptr @__errno_location() #9
  store i32 0, ptr %1083, align 4, !tbaa !5
  br label %1084

1084:                                             ; preds = %1081
  br label %1085

1085:                                             ; preds = %1084
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = load ptr, ptr %9, align 8, !tbaa !9
  %1092 = getelementptr inbounds %struct.s2n_connection, ptr %1091, i32 0, i32 52
  %1093 = getelementptr inbounds %struct.s2n_handshake, ptr %1092, i32 0, i32 5
  %1094 = load i8, ptr %1093, align 8, !tbaa !16
  %1095 = zext i8 %1094 to i32
  %1096 = icmp eq i32 %1095, 0
  br i1 %1096, label %1150, label %1097

1097:                                             ; preds = %1088
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

1099:                                             ; preds = %1098
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1100 = call ptr @__errno_location() #9
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  store i32 %1101, ptr %28, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = call i32 @s2n_print_stacktrace(ptr noundef %1102)
  %1104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1105 = trunc i8 %1104 to i1
  br i1 %1105, label %1106, label %1128

1106:                                             ; preds = %1099
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = call i32 @fileno(ptr noundef %1107) #8
  %1109 = call i32 @isatty(i32 noundef %1108) #8
  %1110 = icmp ne i32 %1109, 0
  br i1 %1110, label %1111, label %1128

1111:                                             ; preds = %1106
  %1112 = load i32, ptr %28, align 4, !tbaa !5
  %1113 = call ptr @__errno_location() #9
  store i32 %1112, ptr %1113, align 4, !tbaa !5
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror(i32 noundef %1117, ptr noundef @.str.4)
  %1119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1120 = load i32, ptr %1119, align 4, !tbaa !5
  %1121 = call ptr @s2n_strerror_debug(i32 noundef %1120, ptr noundef @.str.4)
  %1122 = call ptr @__errno_location() #9
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = call ptr @strerror(i32 noundef %1123) #8
  %1125 = call ptr @__errno_location() #9
  %1126 = load i32, ptr %1125, align 4, !tbaa !5
  %1127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1114, ptr noundef @.str.2, i32 noundef %1115, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 53, ptr noundef %1118, ptr noundef %1121, ptr noundef %1124, i32 noundef %1126) #8
  br label %1145

1128:                                             ; preds = %1106, %1099
  %1129 = load i32, ptr %28, align 4, !tbaa !5
  %1130 = call ptr @__errno_location() #9
  store i32 %1129, ptr %1130, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1134, ptr noundef @.str.4)
  %1136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror_debug(i32 noundef %1137, ptr noundef @.str.4)
  %1139 = call ptr @__errno_location() #9
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @strerror(i32 noundef %1140) #8
  %1142 = call ptr @__errno_location() #9
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1131, ptr noundef @.str.5, i32 noundef %1132, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 53, ptr noundef %1135, ptr noundef %1138, ptr noundef %1141, i32 noundef %1143) #8
  br label %1145

1145:                                             ; preds = %1128, %1111
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

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

1148:                                             ; No predecessors!
  br label %1149

1149:                                             ; preds = %1148
  br label %1150

1150:                                             ; preds = %1149, %1088
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  br label %1153

1153:                                             ; preds = %1152
  %1154 = load i32, ptr @test_count, align 4, !tbaa !5
  %1155 = add nsw i32 %1154, 1
  store i32 %1155, ptr @test_count, align 4, !tbaa !5
  %1156 = load ptr, ptr %9, align 8, !tbaa !9
  %1157 = call i32 @s2n_handshake_set_finished_len(ptr noundef %1156, i8 noundef zeroext 48)
  %1158 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  store i32 %1157, ptr %1158, align 4
  %1159 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  %1160 = load i32, ptr %1159, align 4
  %1161 = call zeroext i1 @s2n_result_is_ok(i32 %1160)
  br i1 %1161, label %1215, label %1162

1162:                                             ; preds = %1153
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

1164:                                             ; preds = %1163
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %1165 = call ptr @__errno_location() #9
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  store i32 %1166, ptr %30, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @s2n_print_stacktrace(ptr noundef %1167)
  %1169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1170 = trunc i8 %1169 to i1
  br i1 %1170, label %1171, label %1193

1171:                                             ; preds = %1164
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @fileno(ptr noundef %1172) #8
  %1174 = call i32 @isatty(i32 noundef %1173) #8
  %1175 = icmp ne i32 %1174, 0
  br i1 %1175, label %1176, label %1193

1176:                                             ; preds = %1171
  %1177 = load i32, ptr %30, align 4, !tbaa !5
  %1178 = call ptr @__errno_location() #9
  store i32 %1177, ptr %1178, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror(i32 noundef %1182, ptr noundef @.str.4)
  %1184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call ptr @s2n_strerror_debug(i32 noundef %1185, ptr noundef @.str.4)
  %1187 = call ptr @__errno_location() #9
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call ptr @strerror(i32 noundef %1188) #8
  %1190 = call ptr @__errno_location() #9
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1179, ptr noundef @.str.2, i32 noundef %1180, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1183, ptr noundef %1186, ptr noundef %1189, i32 noundef %1191) #8
  br label %1210

1193:                                             ; preds = %1171, %1164
  %1194 = load i32, ptr %30, align 4, !tbaa !5
  %1195 = call ptr @__errno_location() #9
  store i32 %1194, ptr %1195, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror(i32 noundef %1199, ptr noundef @.str.4)
  %1201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef @.str.4)
  %1204 = call ptr @__errno_location() #9
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #8
  %1207 = call ptr @__errno_location() #9
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1196, ptr noundef @.str.5, i32 noundef %1197, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 54, ptr noundef %1200, ptr noundef %1203, ptr noundef %1206, i32 noundef %1208) #8
  br label %1210

1210:                                             ; preds = %1193, %1176
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

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

1213:                                             ; No predecessors!
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

1215:                                             ; preds = %1214, %1153
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

1218:                                             ; preds = %1217
  %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 = load ptr, ptr %9, align 8, !tbaa !9
  %1222 = getelementptr inbounds %struct.s2n_connection, ptr %1221, i32 0, i32 52
  %1223 = getelementptr inbounds %struct.s2n_handshake, ptr %1222, i32 0, i32 5
  %1224 = load i8, ptr %1223, align 8, !tbaa !16
  %1225 = zext i8 %1224 to i32
  %1226 = icmp eq i32 %1225, 48
  br i1 %1226, label %1280, label %1227

1227:                                             ; preds = %1218
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %1230 = call ptr @__errno_location() #9
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  store i32 %1231, ptr %31, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = call i32 @s2n_print_stacktrace(ptr noundef %1232)
  %1234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1235 = trunc i8 %1234 to i1
  br i1 %1235, label %1236, label %1258

1236:                                             ; preds = %1229
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = call i32 @fileno(ptr noundef %1237) #8
  %1239 = call i32 @isatty(i32 noundef %1238) #8
  %1240 = icmp ne i32 %1239, 0
  br i1 %1240, label %1241, label %1258

1241:                                             ; preds = %1236
  %1242 = load i32, ptr %31, align 4, !tbaa !5
  %1243 = call ptr @__errno_location() #9
  store i32 %1242, ptr %1243, align 4, !tbaa !5
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = load i32, ptr @test_count, align 4, !tbaa !5
  %1246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1247 = load i32, ptr %1246, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror(i32 noundef %1247, ptr noundef @.str.4)
  %1249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1250 = load i32, ptr %1249, align 4, !tbaa !5
  %1251 = call ptr @s2n_strerror_debug(i32 noundef %1250, ptr noundef @.str.4)
  %1252 = call ptr @__errno_location() #9
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = call ptr @strerror(i32 noundef %1253) #8
  %1255 = call ptr @__errno_location() #9
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1244, ptr noundef @.str.2, i32 noundef %1245, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 55, ptr noundef %1248, ptr noundef %1251, ptr noundef %1254, i32 noundef %1256) #8
  br label %1275

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

1275:                                             ; preds = %1258, %1241
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1276

1276:                                             ; preds = %1275
  br label %1277

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

1278:                                             ; No predecessors!
  br label %1279

1279:                                             ; preds = %1278
  br label %1280

1280:                                             ; preds = %1279, %1218
  br label %1281

1281:                                             ; preds = %1280
  br label %1282

1282:                                             ; preds = %1281
  br label %1283

1283:                                             ; preds = %1282
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284
  %1286 = load i32, ptr @test_count, align 4, !tbaa !5
  %1287 = add nsw i32 %1286, 1
  store i32 %1287, ptr @test_count, align 4, !tbaa !5
  %1288 = load ptr, ptr %9, align 8, !tbaa !9
  %1289 = call i32 @s2n_handshake_set_finished_len(ptr noundef %1288, i8 noundef zeroext 47)
  %1290 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %1289, ptr %1290, align 4
  %1291 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %1292 = load i32, ptr %1291, align 4
  %1293 = call zeroext i1 @s2n_result_is_error(i32 %1292)
  br i1 %1293, label %1347, label %1294

1294:                                             ; preds = %1285
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1297 = call ptr @__errno_location() #9
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  store i32 %1298, ptr %33, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = call i32 @s2n_print_stacktrace(ptr noundef %1299)
  %1301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1302 = trunc i8 %1301 to i1
  br i1 %1302, label %1303, label %1325

1303:                                             ; preds = %1296
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = call i32 @fileno(ptr noundef %1304) #8
  %1306 = call i32 @isatty(i32 noundef %1305) #8
  %1307 = icmp ne i32 %1306, 0
  br i1 %1307, label %1308, label %1325

1308:                                             ; preds = %1303
  %1309 = load i32, ptr %33, align 4, !tbaa !5
  %1310 = call ptr @__errno_location() #9
  store i32 %1309, ptr %1310, align 4, !tbaa !5
  %1311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1312 = load i32, ptr @test_count, align 4, !tbaa !5
  %1313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror(i32 noundef %1314, ptr noundef @.str.4)
  %1316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1317 = load i32, ptr %1316, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror_debug(i32 noundef %1317, ptr noundef @.str.4)
  %1319 = call ptr @__errno_location() #9
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call ptr @strerror(i32 noundef %1320) #8
  %1322 = call ptr @__errno_location() #9
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1311, ptr noundef @.str.2, i32 noundef %1312, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1315, ptr noundef %1318, ptr noundef %1321, i32 noundef %1323) #8
  br label %1342

1325:                                             ; preds = %1303, %1296
  %1326 = load i32, ptr %33, align 4, !tbaa !5
  %1327 = call ptr @__errno_location() #9
  store i32 %1326, ptr %1327, align 4, !tbaa !5
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = load i32, ptr @test_count, align 4, !tbaa !5
  %1330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1331 = load i32, ptr %1330, align 4, !tbaa !5
  %1332 = call ptr @s2n_strerror(i32 noundef %1331, ptr noundef @.str.4)
  %1333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1334 = load i32, ptr %1333, align 4, !tbaa !5
  %1335 = call ptr @s2n_strerror_debug(i32 noundef %1334, ptr noundef @.str.4)
  %1336 = call ptr @__errno_location() #9
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call ptr @strerror(i32 noundef %1337) #8
  %1339 = call ptr @__errno_location() #9
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1328, ptr noundef @.str.5, i32 noundef %1329, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1332, ptr noundef %1335, ptr noundef %1338, i32 noundef %1340) #8
  br label %1342

1342:                                             ; preds = %1325, %1308
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1343

1343:                                             ; preds = %1342
  br label %1344

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

1345:                                             ; No predecessors!
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346, %1285
  br label %1348

1348:                                             ; preds = %1347
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

1350:                                             ; preds = %1349
  %1351 = load i32, ptr @test_count, align 4, !tbaa !5
  %1352 = add nsw i32 %1351, 1
  store i32 %1352, ptr @test_count, align 4, !tbaa !5
  %1353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = icmp eq i32 %1354, 402653194
  br i1 %1355, label %1409, label %1356

1356:                                             ; preds = %1350
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %1359 = call ptr @__errno_location() #9
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  store i32 %1360, ptr %34, align 4, !tbaa !5
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = call i32 @s2n_print_stacktrace(ptr noundef %1361)
  %1363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1364 = trunc i8 %1363 to i1
  br i1 %1364, label %1365, label %1387

1365:                                             ; preds = %1358
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = call i32 @fileno(ptr noundef %1366) #8
  %1368 = call i32 @isatty(i32 noundef %1367) #8
  %1369 = icmp ne i32 %1368, 0
  br i1 %1369, label %1370, label %1387

1370:                                             ; preds = %1365
  %1371 = load i32, ptr %34, align 4, !tbaa !5
  %1372 = call ptr @__errno_location() #9
  store i32 %1371, ptr %1372, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = load i32, ptr @test_count, align 4, !tbaa !5
  %1375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  %1377 = call ptr @s2n_strerror(i32 noundef %1376, ptr noundef @.str.4)
  %1378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror_debug(i32 noundef %1379, ptr noundef @.str.4)
  %1381 = call ptr @__errno_location() #9
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = call ptr @strerror(i32 noundef %1382) #8
  %1384 = call ptr @__errno_location() #9
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1373, ptr noundef @.str.2, i32 noundef %1374, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1377, ptr noundef %1380, ptr noundef %1383, i32 noundef %1385) #8
  br label %1404

1387:                                             ; preds = %1365, %1358
  %1388 = load i32, ptr %34, align 4, !tbaa !5
  %1389 = call ptr @__errno_location() #9
  store i32 %1388, ptr %1389, align 4, !tbaa !5
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = load i32, ptr @test_count, align 4, !tbaa !5
  %1392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call ptr @s2n_strerror(i32 noundef %1393, ptr noundef @.str.4)
  %1395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror_debug(i32 noundef %1396, ptr noundef @.str.4)
  %1398 = call ptr @__errno_location() #9
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call ptr @strerror(i32 noundef %1399) #8
  %1401 = call ptr @__errno_location() #9
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1390, ptr noundef @.str.5, i32 noundef %1391, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1394, ptr noundef %1397, ptr noundef %1400, i32 noundef %1402) #8
  br label %1404

1404:                                             ; preds = %1387, %1370
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1405

1405:                                             ; preds = %1404
  br label %1406

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

1407:                                             ; No predecessors!
  br label %1408

1408:                                             ; preds = %1407
  br label %1409

1409:                                             ; preds = %1408, %1350
  br label %1410

1410:                                             ; preds = %1409
  br label %1411

1411:                                             ; preds = %1410
  br label %1412

1412:                                             ; preds = %1411
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = add nsw i32 %1413, 1
  store i32 %1414, ptr @test_count, align 4, !tbaa !5
  %1415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = call ptr @s2n_strerror_debug(i32 noundef %1416, ptr noundef @.str.4)
  %1418 = icmp eq ptr %1417, null
  br i1 %1418, label %1419, label %1472

1419:                                             ; preds = %1412
  br label %1420

1420:                                             ; preds = %1419
  br label %1421

1421:                                             ; preds = %1420
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1422 = call ptr @__errno_location() #9
  %1423 = load i32, ptr %1422, align 4, !tbaa !5
  store i32 %1423, ptr %35, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = call i32 @s2n_print_stacktrace(ptr noundef %1424)
  %1426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1427 = trunc i8 %1426 to i1
  br i1 %1427, label %1428, label %1450

1428:                                             ; preds = %1421
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @fileno(ptr noundef %1429) #8
  %1431 = call i32 @isatty(i32 noundef %1430) #8
  %1432 = icmp ne i32 %1431, 0
  br i1 %1432, label %1433, label %1450

1433:                                             ; preds = %1428
  %1434 = load i32, ptr %35, align 4, !tbaa !5
  %1435 = call ptr @__errno_location() #9
  store i32 %1434, ptr %1435, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call ptr @s2n_strerror(i32 noundef %1439, ptr noundef @.str.4)
  %1441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = call ptr @s2n_strerror_debug(i32 noundef %1442, ptr noundef @.str.4)
  %1444 = call ptr @__errno_location() #9
  %1445 = load i32, ptr %1444, align 4, !tbaa !5
  %1446 = call ptr @strerror(i32 noundef %1445) #8
  %1447 = call ptr @__errno_location() #9
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1436, ptr noundef @.str.2, i32 noundef %1437, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1440, ptr noundef %1443, ptr noundef %1446, i32 noundef %1448) #8
  br label %1467

1450:                                             ; preds = %1428, %1421
  %1451 = load i32, ptr %35, align 4, !tbaa !5
  %1452 = call ptr @__errno_location() #9
  store i32 %1451, ptr %1452, align 4, !tbaa !5
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = load i32, ptr @test_count, align 4, !tbaa !5
  %1455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror(i32 noundef %1456, ptr noundef @.str.4)
  %1458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror_debug(i32 noundef %1459, ptr noundef @.str.4)
  %1461 = call ptr @__errno_location() #9
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call ptr @strerror(i32 noundef %1462) #8
  %1464 = call ptr @__errno_location() #9
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1453, ptr noundef @.str.5, i32 noundef %1454, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1457, ptr noundef %1460, ptr noundef %1463, i32 noundef %1465) #8
  br label %1467

1467:                                             ; preds = %1450, %1433
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1468

1468:                                             ; preds = %1467
  br label %1469

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

1470:                                             ; No predecessors!
  br label %1471

1471:                                             ; preds = %1470
  br label %1472

1472:                                             ; preds = %1471, %1412
  br label %1473

1473:                                             ; preds = %1472
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476
  %1478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1478, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1479 = call ptr @__errno_location() #9
  store i32 0, ptr %1479, align 4, !tbaa !5
  br label %1480

1480:                                             ; preds = %1477
  br label %1481

1481:                                             ; preds = %1480
  br label %1482

1482:                                             ; preds = %1481
  br label %1483

1483:                                             ; preds = %1482
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #8
  %1484 = call i32 @s2n_connection_ptr_free(ptr noundef %9)
  %1485 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  store i32 %1484, ptr %1485, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  br label %1486

1486:                                             ; preds = %1483
  %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_test_handshake_finish_header(i32 noundef 65536)
  %1490 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  store i32 %1489, ptr %1490, align 4
  %1491 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  %1492 = load i32, ptr %1491, align 4
  %1493 = call zeroext i1 @s2n_result_is_ok(i32 %1492)
  br i1 %1493, label %1545, label %1494

1494:                                             ; preds = %1486
  br label %1495

1495:                                             ; preds = %1494
  br label %1496

1496:                                             ; preds = %1495
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1497 = call ptr @__errno_location() #9
  %1498 = load i32, ptr %1497, align 4, !tbaa !5
  store i32 %1498, ptr %38, align 4, !tbaa !5
  %1499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1500 = call i32 @s2n_print_stacktrace(ptr noundef %1499)
  %1501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1502 = trunc i8 %1501 to i1
  br i1 %1502, label %1503, label %1525

1503:                                             ; preds = %1496
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = call i32 @fileno(ptr noundef %1504) #8
  %1506 = call i32 @isatty(i32 noundef %1505) #8
  %1507 = icmp ne i32 %1506, 0
  br i1 %1507, label %1508, label %1525

1508:                                             ; preds = %1503
  %1509 = load i32, ptr %38, align 4, !tbaa !5
  %1510 = call ptr @__errno_location() #9
  store i32 %1509, ptr %1510, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror(i32 noundef %1514, ptr noundef @.str.4)
  %1516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef @.str.4)
  %1519 = call ptr @__errno_location() #9
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = call ptr @strerror(i32 noundef %1520) #8
  %1522 = call ptr @__errno_location() #9
  %1523 = load i32, ptr %1522, align 4, !tbaa !5
  %1524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef @.str.2, i32 noundef %1512, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1515, ptr noundef %1518, ptr noundef %1521, i32 noundef %1523) #8
  br label %1542

1525:                                             ; preds = %1503, %1496
  %1526 = load i32, ptr %38, align 4, !tbaa !5
  %1527 = call ptr @__errno_location() #9
  store i32 %1526, ptr %1527, align 4, !tbaa !5
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = load i32, ptr @test_count, align 4, !tbaa !5
  %1530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call ptr @s2n_strerror(i32 noundef %1531, ptr noundef @.str.4)
  %1533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = call ptr @s2n_strerror_debug(i32 noundef %1534, ptr noundef @.str.4)
  %1536 = call ptr @__errno_location() #9
  %1537 = load i32, ptr %1536, align 4, !tbaa !5
  %1538 = call ptr @strerror(i32 noundef %1537) #8
  %1539 = call ptr @__errno_location() #9
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  %1541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1528, ptr noundef @.str.5, i32 noundef %1529, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1532, ptr noundef %1535, ptr noundef %1538, i32 noundef %1540) #8
  br label %1542

1542:                                             ; preds = %1525, %1508
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1543

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

1544:                                             ; No predecessors!
  br label %1545

1545:                                             ; preds = %1544, %1486
  br label %1546

1546:                                             ; preds = %1545
  br label %1547

1547:                                             ; preds = %1546
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = add nsw i32 %1550, 1
  store i32 %1551, ptr @test_count, align 4, !tbaa !5
  %1552 = call i32 @s2n_test_handshake_finish_header(i32 noundef 16777216)
  %1553 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  store i32 %1552, ptr %1553, align 4
  %1554 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  %1555 = load i32, ptr %1554, align 4
  %1556 = call zeroext i1 @s2n_result_is_error(i32 %1555)
  br i1 %1556, label %1608, label %1557

1557:                                             ; preds = %1549
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1560 = call ptr @__errno_location() #9
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  store i32 %1561, ptr %40, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = call i32 @s2n_print_stacktrace(ptr noundef %1562)
  %1564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1565 = trunc i8 %1564 to i1
  br i1 %1565, label %1566, label %1588

1566:                                             ; preds = %1559
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = call i32 @fileno(ptr noundef %1567) #8
  %1569 = call i32 @isatty(i32 noundef %1568) #8
  %1570 = icmp ne i32 %1569, 0
  br i1 %1570, label %1571, label %1588

1571:                                             ; preds = %1566
  %1572 = load i32, ptr %40, align 4, !tbaa !5
  %1573 = call ptr @__errno_location() #9
  store i32 %1572, ptr %1573, align 4, !tbaa !5
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = load i32, ptr @test_count, align 4, !tbaa !5
  %1576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror(i32 noundef %1577, ptr noundef @.str.4)
  %1579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror_debug(i32 noundef %1580, ptr noundef @.str.4)
  %1582 = call ptr @__errno_location() #9
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call ptr @strerror(i32 noundef %1583) #8
  %1585 = call ptr @__errno_location() #9
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1574, ptr noundef @.str.2, i32 noundef %1575, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1578, ptr noundef %1581, ptr noundef %1584, i32 noundef %1586) #8
  br label %1605

1588:                                             ; preds = %1566, %1559
  %1589 = load i32, ptr %40, align 4, !tbaa !5
  %1590 = call ptr @__errno_location() #9
  store i32 %1589, ptr %1590, align 4, !tbaa !5
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = load i32, ptr @test_count, align 4, !tbaa !5
  %1593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  %1595 = call ptr @s2n_strerror(i32 noundef %1594, ptr noundef @.str.4)
  %1596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  %1598 = call ptr @s2n_strerror_debug(i32 noundef %1597, ptr noundef @.str.4)
  %1599 = call ptr @__errno_location() #9
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call ptr @strerror(i32 noundef %1600) #8
  %1602 = call ptr @__errno_location() #9
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1591, ptr noundef @.str.5, i32 noundef %1592, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1595, ptr noundef %1598, ptr noundef %1601, i32 noundef %1603) #8
  br label %1605

1605:                                             ; preds = %1588, %1571
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1606

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

1607:                                             ; No predecessors!
  br label %1608

1608:                                             ; preds = %1607, %1549
  br label %1609

1609:                                             ; preds = %1608
  br label %1610

1610:                                             ; preds = %1609
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = add nsw i32 %1611, 1
  store i32 %1612, ptr @test_count, align 4, !tbaa !5
  %1613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = icmp eq i32 %1614, 402653251
  br i1 %1615, label %1667, label %1616

1616:                                             ; preds = %1610
  br label %1617

1617:                                             ; preds = %1616
  br label %1618

1618:                                             ; preds = %1617
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %1619 = call ptr @__errno_location() #9
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  store i32 %1620, ptr %41, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @s2n_print_stacktrace(ptr noundef %1621)
  %1623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1624 = trunc i8 %1623 to i1
  br i1 %1624, label %1625, label %1647

1625:                                             ; preds = %1618
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = call i32 @fileno(ptr noundef %1626) #8
  %1628 = call i32 @isatty(i32 noundef %1627) #8
  %1629 = icmp ne i32 %1628, 0
  br i1 %1629, label %1630, label %1647

1630:                                             ; preds = %1625
  %1631 = load i32, ptr %41, align 4, !tbaa !5
  %1632 = call ptr @__errno_location() #9
  store i32 %1631, ptr %1632, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror(i32 noundef %1636, ptr noundef @.str.4)
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call ptr @__errno_location() #9
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @strerror(i32 noundef %1642) #8
  %1644 = call ptr @__errno_location() #9
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef @.str.2, i32 noundef %1634, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1637, ptr noundef %1640, ptr noundef %1643, i32 noundef %1645) #8
  br label %1664

1647:                                             ; preds = %1625, %1618
  %1648 = load i32, ptr %41, align 4, !tbaa !5
  %1649 = call ptr @__errno_location() #9
  store i32 %1648, ptr %1649, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call ptr @s2n_strerror(i32 noundef %1653, ptr noundef @.str.4)
  %1655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror_debug(i32 noundef %1656, ptr noundef @.str.4)
  %1658 = call ptr @__errno_location() #9
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = call ptr @strerror(i32 noundef %1659) #8
  %1661 = call ptr @__errno_location() #9
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1650, ptr noundef @.str.5, i32 noundef %1651, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1654, ptr noundef %1657, ptr noundef %1660, i32 noundef %1662) #8
  br label %1664

1664:                                             ; preds = %1647, %1630
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1665

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

1666:                                             ; No predecessors!
  br label %1667

1667:                                             ; preds = %1666, %1610
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

1669:                                             ; preds = %1668
  %1670 = load i32, ptr @test_count, align 4, !tbaa !5
  %1671 = add nsw i32 %1670, 1
  store i32 %1671, ptr @test_count, align 4, !tbaa !5
  %1672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call ptr @s2n_strerror_debug(i32 noundef %1673, ptr noundef @.str.4)
  %1675 = icmp eq ptr %1674, null
  br i1 %1675, label %1676, label %1727

1676:                                             ; preds = %1669
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

1678:                                             ; preds = %1677
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %1679 = call ptr @__errno_location() #9
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  store i32 %1680, ptr %42, align 4, !tbaa !5
  %1681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1682 = call i32 @s2n_print_stacktrace(ptr noundef %1681)
  %1683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1684 = trunc i8 %1683 to i1
  br i1 %1684, label %1685, label %1707

1685:                                             ; preds = %1678
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = call i32 @fileno(ptr noundef %1686) #8
  %1688 = call i32 @isatty(i32 noundef %1687) #8
  %1689 = icmp ne i32 %1688, 0
  br i1 %1689, label %1690, label %1707

1690:                                             ; preds = %1685
  %1691 = load i32, ptr %42, align 4, !tbaa !5
  %1692 = call ptr @__errno_location() #9
  store i32 %1691, ptr %1692, align 4, !tbaa !5
  %1693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1694 = load i32, ptr @test_count, align 4, !tbaa !5
  %1695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call ptr @s2n_strerror(i32 noundef %1696, ptr noundef @.str.4)
  %1698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  %1700 = call ptr @s2n_strerror_debug(i32 noundef %1699, ptr noundef @.str.4)
  %1701 = call ptr @__errno_location() #9
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call ptr @strerror(i32 noundef %1702) #8
  %1704 = call ptr @__errno_location() #9
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1693, ptr noundef @.str.2, i32 noundef %1694, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1697, ptr noundef %1700, ptr noundef %1703, i32 noundef %1705) #8
  br label %1724

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

1724:                                             ; preds = %1707, %1690
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %1725

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

1726:                                             ; No predecessors!
  br label %1727

1727:                                             ; preds = %1726, %1669
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729
  %1731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1731, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1732 = call ptr @__errno_location() #9
  store i32 0, ptr %1732, align 4, !tbaa !5
  br label %1733

1733:                                             ; preds = %1730
  br label %1734

1734:                                             ; preds = %1733
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

1736:                                             ; preds = %1735
  %1737 = call i32 @s2n_cleanup()
  %1738 = icmp eq i32 %1737, -1
  br i1 %1738, label %1739, label %1790

1739:                                             ; preds = %1736
  br label %1740

1740:                                             ; preds = %1739
  br label %1741

1741:                                             ; preds = %1740
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %1742 = call ptr @__errno_location() #9
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  store i32 %1743, ptr %43, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = call i32 @s2n_print_stacktrace(ptr noundef %1744)
  %1746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1747 = trunc i8 %1746 to i1
  br i1 %1747, label %1748, label %1770

1748:                                             ; preds = %1741
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @fileno(ptr noundef %1749) #8
  %1751 = call i32 @isatty(i32 noundef %1750) #8
  %1752 = icmp ne i32 %1751, 0
  br i1 %1752, label %1753, label %1770

1753:                                             ; preds = %1748
  %1754 = load i32, ptr %43, align 4, !tbaa !5
  %1755 = call ptr @__errno_location() #9
  store i32 %1754, ptr %1755, align 4, !tbaa !5
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = load i32, ptr @test_count, align 4, !tbaa !5
  %1758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror(i32 noundef %1759, ptr noundef @.str.4)
  %1761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1762 = load i32, ptr %1761, align 4, !tbaa !5
  %1763 = call ptr @s2n_strerror_debug(i32 noundef %1762, ptr noundef @.str.4)
  %1764 = call ptr @__errno_location() #9
  %1765 = load i32, ptr %1764, align 4, !tbaa !5
  %1766 = call ptr @strerror(i32 noundef %1765) #8
  %1767 = call ptr @__errno_location() #9
  %1768 = load i32, ptr %1767, align 4, !tbaa !5
  %1769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1756, ptr noundef @.str.2, i32 noundef %1757, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1760, ptr noundef %1763, ptr noundef %1766, i32 noundef %1768) #8
  br label %1787

1770:                                             ; preds = %1748, %1741
  %1771 = load i32, ptr %43, align 4, !tbaa !5
  %1772 = call ptr @__errno_location() #9
  store i32 %1771, ptr %1772, align 4, !tbaa !5
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = load i32, ptr @test_count, align 4, !tbaa !5
  %1775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call ptr @s2n_strerror(i32 noundef %1776, ptr noundef @.str.4)
  %1778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call ptr @s2n_strerror_debug(i32 noundef %1779, ptr noundef @.str.4)
  %1781 = call ptr @__errno_location() #9
  %1782 = load i32, ptr %1781, align 4, !tbaa !5
  %1783 = call ptr @strerror(i32 noundef %1782) #8
  %1784 = call ptr @__errno_location() #9
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1773, ptr noundef @.str.5, i32 noundef %1774, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1777, ptr noundef %1780, ptr noundef %1783, i32 noundef %1785) #8
  br label %1787

1787:                                             ; preds = %1770, %1753
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %1788

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

1789:                                             ; No predecessors!
  br label %1790

1790:                                             ; preds = %1789, %1736
  br label %1791

1791:                                             ; preds = %1790
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

1793:                                             ; preds = %1792
  %1794 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %1795 = icmp eq i32 %1794, -1
  br i1 %1795, label %1796, label %1847

1796:                                             ; preds = %1793
  br label %1797

1797:                                             ; preds = %1796
  br label %1798

1798:                                             ; preds = %1797
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %1799 = call ptr @__errno_location() #9
  %1800 = load i32, ptr %1799, align 4, !tbaa !5
  store i32 %1800, ptr %44, align 4, !tbaa !5
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = call i32 @s2n_print_stacktrace(ptr noundef %1801)
  %1803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1804 = trunc i8 %1803 to i1
  br i1 %1804, label %1805, label %1827

1805:                                             ; preds = %1798
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @fileno(ptr noundef %1806) #8
  %1808 = call i32 @isatty(i32 noundef %1807) #8
  %1809 = icmp ne i32 %1808, 0
  br i1 %1809, label %1810, label %1827

1810:                                             ; preds = %1805
  %1811 = load i32, ptr %44, align 4, !tbaa !5
  %1812 = call ptr @__errno_location() #9
  store i32 %1811, ptr %1812, align 4, !tbaa !5
  %1813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1814 = load i32, ptr @test_count, align 4, !tbaa !5
  %1815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call ptr @s2n_strerror(i32 noundef %1816, ptr noundef @.str.4)
  %1818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1819 = load i32, ptr %1818, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror_debug(i32 noundef %1819, ptr noundef @.str.4)
  %1821 = call ptr @__errno_location() #9
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call ptr @strerror(i32 noundef %1822) #8
  %1824 = call ptr @__errno_location() #9
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1813, ptr noundef @.str.2, i32 noundef %1814, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1817, ptr noundef %1820, ptr noundef %1823, i32 noundef %1825) #8
  br label %1844

1827:                                             ; preds = %1805, %1798
  %1828 = load i32, ptr %44, align 4, !tbaa !5
  %1829 = call ptr @__errno_location() #9
  store i32 %1828, ptr %1829, align 4, !tbaa !5
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = load i32, ptr @test_count, align 4, !tbaa !5
  %1832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call ptr @s2n_strerror(i32 noundef %1833, ptr noundef @.str.4)
  %1835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call ptr @s2n_strerror_debug(i32 noundef %1836, ptr noundef @.str.4)
  %1838 = call ptr @__errno_location() #9
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @strerror(i32 noundef %1839) #8
  %1841 = call ptr @__errno_location() #9
  %1842 = load i32, ptr %1841, align 4, !tbaa !5
  %1843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1830, ptr noundef @.str.5, i32 noundef %1831, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1834, ptr noundef %1837, ptr noundef %1840, i32 noundef %1842) #8
  br label %1844

1844:                                             ; preds = %1827, %1810
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %1845

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

1846:                                             ; No predecessors!
  br label %1847

1847:                                             ; preds = %1846, %1793
  br label %1848

1848:                                             ; preds = %1847
  %1849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1850 = trunc i8 %1849 to i1
  br i1 %1850, label %1851, label %1867

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

1856:                                             ; preds = %1851
  %1857 = load i32, ptr @test_count, align 4, !tbaa !5
  %1858 = icmp ne i32 %1857, 0
  br i1 %1858, label %1859, label %1863

1859:                                             ; preds = %1856
  %1860 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1861 = load i32, ptr @test_count, align 4, !tbaa !5
  %1862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1860, ptr noundef @.str.25, i32 noundef %1861) #8
  br label %1866

1863:                                             ; preds = %1856
  %1864 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1864, ptr noundef @.str.26) #8
  br label %1866

1866:                                             ; preds = %1863, %1859
  br label %1878

1867:                                             ; preds = %1851, %1848
  %1868 = load i32, ptr @test_count, align 4, !tbaa !5
  %1869 = icmp ne i32 %1868, 0
  br i1 %1869, label %1870, label %1874

1870:                                             ; preds = %1867
  %1871 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1871, ptr noundef @.str.27, i32 noundef %1872) #8
  br label %1877

1874:                                             ; preds = %1867
  %1875 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1875, ptr noundef @.str.28) #8
  br label %1877

1877:                                             ; preds = %1874, %1870
  br label %1878

1878:                                             ; preds = %1877, %1866
  store i32 0, ptr %3, align 4
  br label %1880

1879:                                             ; No predecessors!
  br label %1880

1880:                                             ; preds = %1879, %1878
  %1881 = load i32, ptr %3, align 4
  ret i32 %1881
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

declare i32 @s2n_handshake_set_finished_len(ptr noundef, i8 noundef zeroext) #2

declare void @s2n_debug_info_reset() #2

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_handshake_finish_header(i32 noundef) #0

declare i32 @s2n_cleanup() #2

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


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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

119:                                              ; preds = %90
  %120 = add nsw i32 %92, 2
  store i32 %120, ptr @test_count, align 4, !tbaa !5
  %121 = tail call i32 @s2n_handshake_set_finished_len(ptr noundef null, i8 noundef zeroext 0) #9
  %122 = tail call zeroext i1 @s2n_result_is_error(i32 %121)
  br i1 %122, label %147, label %123

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

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

134:                                              ; preds = %130, %123
  br label %135

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

147:                                              ; preds = %119
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  store i32 %149, ptr @test_count, align 4, !tbaa !5
  %150 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = icmp eq i32 %151, 402653193
  br i1 %152, label %176, label %153

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

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

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

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

176:                                              ; preds = %147
  %177 = add nsw i32 %148, 2
  store i32 %177, ptr @test_count, align 4, !tbaa !5
  %178 = tail call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #9
  %179 = icmp eq ptr %178, null
  br i1 %179, label %180, label %203

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

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

191:                                              ; preds = %187, %180
  br label %192

192:                                              ; preds = %187, %191
  %.str.5.sink159 = phi ptr [ @.str.5, %191 ], [ @.str.2, %187 ]
  store i32 %182, ptr %181, align 4, !tbaa !5
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = load i32, ptr @test_count, align 4, !tbaa !5
  %195 = load i32, ptr %150, align 4, !tbaa !5
  %196 = tail call ptr @s2n_strerror(i32 noundef %195, ptr noundef nonnull @.str.4) #9
  %197 = load i32, ptr %150, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror_debug(i32 noundef %197, ptr noundef nonnull @.str.4) #9
  %199 = load i32, ptr %181, align 4, !tbaa !5
  %200 = tail call ptr @strerror(i32 noundef %199) #9
  %201 = load i32, ptr %181, align 4, !tbaa !5
  %202 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %193, ptr noundef nonnull %.str.5.sink159, i32 noundef %194, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %196, ptr noundef %198, ptr noundef %200, i32 noundef %201) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

203:                                              ; preds = %176
  store i32 0, ptr %150, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #9
  %204 = tail call ptr @__errno_location() #10
  store i32 0, ptr %204, align 4, !tbaa !5
  %205 = load i32, ptr @test_count, align 4, !tbaa !5
  %206 = add nsw i32 %205, 1
  store i32 %206, ptr @test_count, align 4, !tbaa !5
  %207 = tail call i32 @s2n_handshake_set_finished_len(ptr noundef nonnull %91, i8 noundef zeroext -1) #9
  %208 = tail call zeroext i1 @s2n_result_is_error(i32 %207)
  br i1 %208, label %231, label %209

209:                                              ; preds = %203
  %210 = load i32, ptr %204, align 4, !tbaa !5
  %211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %212 = tail call i32 @s2n_print_stacktrace(ptr noundef %211) #9
  %213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %214 = trunc nuw i8 %213 to i1
  br i1 %214, label %215, label %219

215:                                              ; preds = %209
  %216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %217 = tail call i32 @fileno(ptr noundef %216) #9
  %218 = tail call i32 @isatty(i32 noundef %217) #9
  %.not67 = icmp eq i32 %218, 0
  br i1 %.not67, label %219, label %220

219:                                              ; preds = %215, %209
  br label %220

220:                                              ; preds = %215, %219
  %.str.5.sink168 = phi ptr [ @.str.5, %219 ], [ @.str.2, %215 ]
  store i32 %210, ptr %204, align 4, !tbaa !5
  %221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %222 = load i32, ptr @test_count, align 4, !tbaa !5
  %223 = load i32, ptr %150, align 4, !tbaa !5
  %224 = tail call ptr @s2n_strerror(i32 noundef %223, ptr noundef nonnull @.str.4) #9
  %225 = load i32, ptr %150, align 4, !tbaa !5
  %226 = tail call ptr @s2n_strerror_debug(i32 noundef %225, ptr noundef nonnull @.str.4) #9
  %227 = load i32, ptr %204, align 4, !tbaa !5
  %228 = tail call ptr @strerror(i32 noundef %227) #9
  %229 = load i32, ptr %204, align 4, !tbaa !5
  %230 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %221, ptr noundef nonnull %.str.5.sink168, i32 noundef %222, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %224, ptr noundef %226, ptr noundef %228, i32 noundef %229) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

231:                                              ; preds = %203
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = add nsw i32 %232, 1
  store i32 %233, ptr @test_count, align 4, !tbaa !5
  %234 = load i32, ptr %150, align 4, !tbaa !5
  %235 = icmp eq i32 %234, 402653194
  br i1 %235, label %258, label %236

236:                                              ; preds = %231
  %237 = load i32, ptr %204, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = tail call i32 @s2n_print_stacktrace(ptr noundef %238) #9
  %240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %241 = trunc nuw i8 %240 to i1
  br i1 %241, label %242, label %246

242:                                              ; preds = %236
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = tail call i32 @fileno(ptr noundef %243) #9
  %245 = tail call i32 @isatty(i32 noundef %244) #9
  %.not68 = icmp eq i32 %245, 0
  br i1 %.not68, label %246, label %247

246:                                              ; preds = %242, %236
  br label %247

247:                                              ; preds = %242, %246
  %.str.5.sink177 = phi ptr [ @.str.5, %246 ], [ @.str.2, %242 ]
  store i32 %237, ptr %204, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = load i32, ptr %150, align 4, !tbaa !5
  %251 = tail call ptr @s2n_strerror(i32 noundef %250, ptr noundef nonnull @.str.4) #9
  %252 = load i32, ptr %150, align 4, !tbaa !5
  %253 = tail call ptr @s2n_strerror_debug(i32 noundef %252, ptr noundef nonnull @.str.4) #9
  %254 = load i32, ptr %204, align 4, !tbaa !5
  %255 = tail call ptr @strerror(i32 noundef %254) #9
  %256 = load i32, ptr %204, align 4, !tbaa !5
  %257 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %248, ptr noundef nonnull %.str.5.sink177, i32 noundef %249, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %251, ptr noundef %253, ptr noundef %255, i32 noundef %256) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

258:                                              ; preds = %231
  %259 = add nsw i32 %232, 2
  store i32 %259, ptr @test_count, align 4, !tbaa !5
  %260 = tail call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #9
  %261 = icmp eq ptr %260, null
  br i1 %261, label %262, label %284

262:                                              ; preds = %258
  %263 = load i32, ptr %204, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = tail call i32 @s2n_print_stacktrace(ptr noundef %264) #9
  %266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %267 = trunc nuw i8 %266 to i1
  br i1 %267, label %268, label %272

268:                                              ; preds = %262
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = tail call i32 @fileno(ptr noundef %269) #9
  %271 = tail call i32 @isatty(i32 noundef %270) #9
  %.not90 = icmp eq i32 %271, 0
  br i1 %.not90, label %272, label %273

272:                                              ; preds = %268, %262
  br label %273

273:                                              ; preds = %268, %272
  %.str.5.sink186 = phi ptr [ @.str.5, %272 ], [ @.str.2, %268 ]
  store i32 %263, ptr %204, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = load i32, ptr %150, align 4, !tbaa !5
  %277 = tail call ptr @s2n_strerror(i32 noundef %276, ptr noundef nonnull @.str.4) #9
  %278 = load i32, ptr %150, align 4, !tbaa !5
  %279 = tail call ptr @s2n_strerror_debug(i32 noundef %278, ptr noundef nonnull @.str.4) #9
  %280 = load i32, ptr %204, align 4, !tbaa !5
  %281 = tail call ptr @strerror(i32 noundef %280) #9
  %282 = load i32, ptr %204, align 4, !tbaa !5
  %283 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %274, ptr noundef nonnull %.str.5.sink186, i32 noundef %275, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %277, ptr noundef %279, ptr noundef %281, i32 noundef %282) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

284:                                              ; preds = %258
  store i32 0, ptr %150, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #9
  store i32 0, ptr %204, align 4, !tbaa !5
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = add nsw i32 %285, 1
  store i32 %286, ptr @test_count, align 4, !tbaa !5
  %287 = tail call i32 @s2n_handshake_set_finished_len(ptr noundef nonnull %91, i8 noundef zeroext 49) #9
  %288 = tail call zeroext i1 @s2n_result_is_error(i32 %287)
  br i1 %288, label %311, label %289

289:                                              ; preds = %284
  %290 = load i32, ptr %204, align 4, !tbaa !5
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = tail call i32 @s2n_print_stacktrace(ptr noundef %291) #9
  %293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %294 = trunc nuw i8 %293 to i1
  br i1 %294, label %295, label %299

295:                                              ; preds = %289
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = tail call i32 @fileno(ptr noundef %296) #9
  %298 = tail call i32 @isatty(i32 noundef %297) #9
  %.not69 = icmp eq i32 %298, 0
  br i1 %.not69, label %299, label %300

299:                                              ; preds = %295, %289
  br label %300

300:                                              ; preds = %295, %299
  %.str.5.sink195 = phi ptr [ @.str.5, %299 ], [ @.str.2, %295 ]
  store i32 %290, ptr %204, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = load i32, ptr %150, align 4, !tbaa !5
  %304 = tail call ptr @s2n_strerror(i32 noundef %303, ptr noundef nonnull @.str.4) #9
  %305 = load i32, ptr %150, align 4, !tbaa !5
  %306 = tail call ptr @s2n_strerror_debug(i32 noundef %305, ptr noundef nonnull @.str.4) #9
  %307 = load i32, ptr %204, align 4, !tbaa !5
  %308 = tail call ptr @strerror(i32 noundef %307) #9
  %309 = load i32, ptr %204, align 4, !tbaa !5
  %310 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef nonnull %.str.5.sink195, i32 noundef %302, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %304, ptr noundef %306, ptr noundef %308, i32 noundef %309) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

311:                                              ; preds = %284
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = add nsw i32 %312, 1
  store i32 %313, ptr @test_count, align 4, !tbaa !5
  %314 = load i32, ptr %150, align 4, !tbaa !5
  %315 = icmp eq i32 %314, 402653194
  br i1 %315, label %338, label %316

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

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

326:                                              ; preds = %322, %316
  br label %327

327:                                              ; preds = %322, %326
  %.str.5.sink204 = phi ptr [ @.str.5, %326 ], [ @.str.2, %322 ]
  store i32 %317, ptr %204, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = load i32, ptr %150, align 4, !tbaa !5
  %331 = tail call ptr @s2n_strerror(i32 noundef %330, ptr noundef nonnull @.str.4) #9
  %332 = load i32, ptr %150, align 4, !tbaa !5
  %333 = tail call ptr @s2n_strerror_debug(i32 noundef %332, ptr noundef nonnull @.str.4) #9
  %334 = load i32, ptr %204, align 4, !tbaa !5
  %335 = tail call ptr @strerror(i32 noundef %334) #9
  %336 = load i32, ptr %204, align 4, !tbaa !5
  %337 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %328, ptr noundef nonnull %.str.5.sink204, i32 noundef %329, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %331, ptr noundef %333, ptr noundef %335, i32 noundef %336) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

338:                                              ; preds = %311
  %339 = add nsw i32 %312, 2
  store i32 %339, ptr @test_count, align 4, !tbaa !5
  %340 = tail call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #9
  %341 = icmp eq ptr %340, null
  br i1 %341, label %342, label %364

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

348:                                              ; preds = %342
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = tail call i32 @fileno(ptr noundef %349) #9
  %351 = tail call i32 @isatty(i32 noundef %350) #9
  %.not89 = icmp eq i32 %351, 0
  br i1 %.not89, label %352, label %353

352:                                              ; preds = %348, %342
  br label %353

353:                                              ; preds = %348, %352
  %.str.5.sink213 = phi ptr [ @.str.5, %352 ], [ @.str.2, %348 ]
  store i32 %343, ptr %204, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = load i32, ptr %150, align 4, !tbaa !5
  %357 = tail call ptr @s2n_strerror(i32 noundef %356, ptr noundef nonnull @.str.4) #9
  %358 = load i32, ptr %150, align 4, !tbaa !5
  %359 = tail call ptr @s2n_strerror_debug(i32 noundef %358, ptr noundef nonnull @.str.4) #9
  %360 = load i32, ptr %204, align 4, !tbaa !5
  %361 = tail call ptr @strerror(i32 noundef %360) #9
  %362 = load i32, ptr %204, align 4, !tbaa !5
  %363 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %354, ptr noundef nonnull %.str.5.sink213, i32 noundef %355, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %357, ptr noundef %359, ptr noundef %361, i32 noundef %362) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

364:                                              ; preds = %338
  store i32 0, ptr %150, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #9
  store i32 0, ptr %204, align 4, !tbaa !5
  %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 = tail call i32 @s2n_handshake_set_finished_len(ptr noundef nonnull %91, i8 noundef zeroext 0) #9
  %368 = tail call zeroext i1 @s2n_result_is_error(i32 %367)
  br i1 %368, label %391, label %369

369:                                              ; preds = %364
  %370 = load i32, ptr %204, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = tail call i32 @s2n_print_stacktrace(ptr noundef %371) #9
  %373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %374 = trunc nuw i8 %373 to i1
  br i1 %374, label %375, label %379

375:                                              ; preds = %369
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = tail call i32 @fileno(ptr noundef %376) #9
  %378 = tail call i32 @isatty(i32 noundef %377) #9
  %.not71 = icmp eq i32 %378, 0
  br i1 %.not71, label %379, label %380

379:                                              ; preds = %375, %369
  br label %380

380:                                              ; preds = %375, %379
  %.str.5.sink222 = phi ptr [ @.str.5, %379 ], [ @.str.2, %375 ]
  store i32 %370, ptr %204, align 4, !tbaa !5
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = load i32, ptr %150, align 4, !tbaa !5
  %384 = tail call ptr @s2n_strerror(i32 noundef %383, ptr noundef nonnull @.str.4) #9
  %385 = load i32, ptr %150, align 4, !tbaa !5
  %386 = tail call ptr @s2n_strerror_debug(i32 noundef %385, ptr noundef nonnull @.str.4) #9
  %387 = load i32, ptr %204, align 4, !tbaa !5
  %388 = tail call ptr @strerror(i32 noundef %387) #9
  %389 = load i32, ptr %204, align 4, !tbaa !5
  %390 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %381, ptr noundef nonnull %.str.5.sink222, i32 noundef %382, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %384, ptr noundef %386, ptr noundef %388, i32 noundef %389) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

391:                                              ; preds = %364
  %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 i32, ptr %150, align 4, !tbaa !5
  %395 = icmp eq i32 %394, 402653194
  br i1 %395, label %418, label %396

396:                                              ; preds = %391
  %397 = load i32, ptr %204, align 4, !tbaa !5
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = tail call i32 @s2n_print_stacktrace(ptr noundef %398) #9
  %400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %401 = trunc nuw i8 %400 to i1
  br i1 %401, label %402, label %406

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

406:                                              ; preds = %402, %396
  br label %407

407:                                              ; preds = %402, %406
  %.str.5.sink231 = phi ptr [ @.str.5, %406 ], [ @.str.2, %402 ]
  store i32 %397, ptr %204, align 4, !tbaa !5
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = load i32, ptr @test_count, align 4, !tbaa !5
  %410 = load i32, ptr %150, align 4, !tbaa !5
  %411 = tail call ptr @s2n_strerror(i32 noundef %410, ptr noundef nonnull @.str.4) #9
  %412 = load i32, ptr %150, align 4, !tbaa !5
  %413 = tail call ptr @s2n_strerror_debug(i32 noundef %412, ptr noundef nonnull @.str.4) #9
  %414 = load i32, ptr %204, align 4, !tbaa !5
  %415 = tail call ptr @strerror(i32 noundef %414) #9
  %416 = load i32, ptr %204, align 4, !tbaa !5
  %417 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %408, ptr noundef nonnull %.str.5.sink231, i32 noundef %409, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %411, ptr noundef %413, ptr noundef %415, i32 noundef %416) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

418:                                              ; preds = %391
  %419 = add nsw i32 %392, 2
  store i32 %419, ptr @test_count, align 4, !tbaa !5
  %420 = tail call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #9
  %421 = icmp eq ptr %420, null
  br i1 %421, label %422, label %444

422:                                              ; preds = %418
  %423 = load i32, ptr %204, align 4, !tbaa !5
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = tail call i32 @s2n_print_stacktrace(ptr noundef %424) #9
  %426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %427 = trunc nuw i8 %426 to i1
  br i1 %427, label %428, label %432

428:                                              ; preds = %422
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = tail call i32 @fileno(ptr noundef %429) #9
  %431 = tail call i32 @isatty(i32 noundef %430) #9
  %.not88 = icmp eq i32 %431, 0
  br i1 %.not88, label %432, label %433

432:                                              ; preds = %428, %422
  br label %433

433:                                              ; preds = %428, %432
  %.str.5.sink240 = phi ptr [ @.str.5, %432 ], [ @.str.2, %428 ]
  store i32 %423, ptr %204, align 4, !tbaa !5
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = load i32, ptr @test_count, align 4, !tbaa !5
  %436 = load i32, ptr %150, align 4, !tbaa !5
  %437 = tail call ptr @s2n_strerror(i32 noundef %436, ptr noundef nonnull @.str.4) #9
  %438 = load i32, ptr %150, align 4, !tbaa !5
  %439 = tail call ptr @s2n_strerror_debug(i32 noundef %438, ptr noundef nonnull @.str.4) #9
  %440 = load i32, ptr %204, align 4, !tbaa !5
  %441 = tail call ptr @strerror(i32 noundef %440) #9
  %442 = load i32, ptr %204, align 4, !tbaa !5
  %443 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %434, ptr noundef nonnull %.str.5.sink240, i32 noundef %435, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %437, ptr noundef %439, ptr noundef %441, i32 noundef %442) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

444:                                              ; preds = %418
  store i32 0, ptr %150, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #9
  store i32 0, ptr %204, align 4, !tbaa !5
  %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 = getelementptr inbounds i8, ptr %91, i64 2168
  %448 = load i8, ptr %447, align 8, !tbaa !15
  %449 = icmp eq i8 %448, 0
  br i1 %449, label %472, label %450

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

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

460:                                              ; preds = %456, %450
  br label %461

461:                                              ; preds = %456, %460
  %.str.5.sink249 = phi ptr [ @.str.5, %460 ], [ @.str.2, %456 ]
  store i32 %451, ptr %204, align 4, !tbaa !5
  %462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = load i32, ptr %150, align 4, !tbaa !5
  %465 = tail call ptr @s2n_strerror(i32 noundef %464, ptr noundef nonnull @.str.4) #9
  %466 = load i32, ptr %150, align 4, !tbaa !5
  %467 = tail call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef nonnull @.str.4) #9
  %468 = load i32, ptr %204, align 4, !tbaa !5
  %469 = tail call ptr @strerror(i32 noundef %468) #9
  %470 = load i32, ptr %204, align 4, !tbaa !5
  %471 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %462, ptr noundef nonnull %.str.5.sink249, i32 noundef %463, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %465, ptr noundef %467, ptr noundef %469, i32 noundef %470) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

472:                                              ; preds = %444
  %473 = add nsw i32 %445, 2
  store i32 %473, ptr @test_count, align 4, !tbaa !5
  %474 = tail call i32 @s2n_handshake_set_finished_len(ptr noundef nonnull %91, i8 noundef zeroext 48) #9
  %475 = tail call zeroext i1 @s2n_result_is_ok(i32 %474)
  br i1 %475, label %498, label %476

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

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

486:                                              ; preds = %482, %476
  br label %487

487:                                              ; preds = %482, %486
  %.str.5.sink258 = phi ptr [ @.str.5, %486 ], [ @.str.2, %482 ]
  store i32 %477, ptr %204, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = load i32, ptr %150, align 4, !tbaa !5
  %491 = tail call ptr @s2n_strerror(i32 noundef %490, ptr noundef nonnull @.str.4) #9
  %492 = load i32, ptr %150, align 4, !tbaa !5
  %493 = tail call ptr @s2n_strerror_debug(i32 noundef %492, ptr noundef nonnull @.str.4) #9
  %494 = load i32, ptr %204, align 4, !tbaa !5
  %495 = tail call ptr @strerror(i32 noundef %494) #9
  %496 = load i32, ptr %204, align 4, !tbaa !5
  %497 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %488, ptr noundef nonnull %.str.5.sink258, i32 noundef %489, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %491, ptr noundef %493, ptr noundef %495, i32 noundef %496) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

498:                                              ; preds = %472
  %499 = load i32, ptr @test_count, align 4, !tbaa !5
  %500 = add nsw i32 %499, 1
  store i32 %500, ptr @test_count, align 4, !tbaa !5
  %501 = load i8, ptr %447, align 8, !tbaa !15
  %502 = icmp eq i8 %501, 48
  br i1 %502, label %525, label %503

503:                                              ; preds = %498
  %504 = load i32, ptr %204, align 4, !tbaa !5
  %505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %506 = tail call i32 @s2n_print_stacktrace(ptr noundef %505) #9
  %507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %508 = trunc nuw i8 %507 to i1
  br i1 %508, label %509, label %513

509:                                              ; preds = %503
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = tail call i32 @fileno(ptr noundef %510) #9
  %512 = tail call i32 @isatty(i32 noundef %511) #9
  %.not75 = icmp eq i32 %512, 0
  br i1 %.not75, label %513, label %514

513:                                              ; preds = %509, %503
  br label %514

514:                                              ; preds = %509, %513
  %.str.5.sink267 = phi ptr [ @.str.5, %513 ], [ @.str.2, %509 ]
  store i32 %504, ptr %204, align 4, !tbaa !5
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = load i32, ptr @test_count, align 4, !tbaa !5
  %517 = load i32, ptr %150, align 4, !tbaa !5
  %518 = tail call ptr @s2n_strerror(i32 noundef %517, ptr noundef nonnull @.str.4) #9
  %519 = load i32, ptr %150, align 4, !tbaa !5
  %520 = tail call ptr @s2n_strerror_debug(i32 noundef %519, ptr noundef nonnull @.str.4) #9
  %521 = load i32, ptr %204, align 4, !tbaa !5
  %522 = tail call ptr @strerror(i32 noundef %521) #9
  %523 = load i32, ptr %204, align 4, !tbaa !5
  %524 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %515, ptr noundef nonnull %.str.5.sink267, i32 noundef %516, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %518, ptr noundef %520, ptr noundef %522, i32 noundef %523) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

525:                                              ; preds = %498
  %526 = add nsw i32 %499, 2
  store i32 %526, ptr @test_count, align 4, !tbaa !5
  %527 = tail call i32 @s2n_handshake_set_finished_len(ptr noundef nonnull %91, i8 noundef zeroext 47) #9
  %528 = tail call zeroext i1 @s2n_result_is_error(i32 %527)
  br i1 %528, label %551, label %529

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

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

539:                                              ; preds = %535, %529
  br label %540

540:                                              ; preds = %535, %539
  %.str.5.sink276 = phi ptr [ @.str.5, %539 ], [ @.str.2, %535 ]
  store i32 %530, ptr %204, align 4, !tbaa !5
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = load i32, ptr @test_count, align 4, !tbaa !5
  %543 = load i32, ptr %150, align 4, !tbaa !5
  %544 = tail call ptr @s2n_strerror(i32 noundef %543, ptr noundef nonnull @.str.4) #9
  %545 = load i32, ptr %150, align 4, !tbaa !5
  %546 = tail call ptr @s2n_strerror_debug(i32 noundef %545, ptr noundef nonnull @.str.4) #9
  %547 = load i32, ptr %204, align 4, !tbaa !5
  %548 = tail call ptr @strerror(i32 noundef %547) #9
  %549 = load i32, ptr %204, align 4, !tbaa !5
  %550 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %541, ptr noundef nonnull %.str.5.sink276, i32 noundef %542, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %544, ptr noundef %546, ptr noundef %548, i32 noundef %549) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

551:                                              ; preds = %525
  %552 = load i32, ptr @test_count, align 4, !tbaa !5
  %553 = add nsw i32 %552, 1
  store i32 %553, ptr @test_count, align 4, !tbaa !5
  %554 = load i32, ptr %150, align 4, !tbaa !5
  %555 = icmp eq i32 %554, 402653194
  br i1 %555, label %578, label %556

556:                                              ; preds = %551
  %557 = load i32, ptr %204, align 4, !tbaa !5
  %558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %559 = tail call i32 @s2n_print_stacktrace(ptr noundef %558) #9
  %560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %561 = trunc nuw i8 %560 to i1
  br i1 %561, label %562, label %566

562:                                              ; preds = %556
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = tail call i32 @fileno(ptr noundef %563) #9
  %565 = tail call i32 @isatty(i32 noundef %564) #9
  %.not77 = icmp eq i32 %565, 0
  br i1 %.not77, label %566, label %567

566:                                              ; preds = %562, %556
  br label %567

567:                                              ; preds = %562, %566
  %.str.5.sink285 = phi ptr [ @.str.5, %566 ], [ @.str.2, %562 ]
  store i32 %557, ptr %204, align 4, !tbaa !5
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = load i32, ptr @test_count, align 4, !tbaa !5
  %570 = load i32, ptr %150, align 4, !tbaa !5
  %571 = tail call ptr @s2n_strerror(i32 noundef %570, ptr noundef nonnull @.str.4) #9
  %572 = load i32, ptr %150, align 4, !tbaa !5
  %573 = tail call ptr @s2n_strerror_debug(i32 noundef %572, ptr noundef nonnull @.str.4) #9
  %574 = load i32, ptr %204, align 4, !tbaa !5
  %575 = tail call ptr @strerror(i32 noundef %574) #9
  %576 = load i32, ptr %204, align 4, !tbaa !5
  %577 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %568, ptr noundef nonnull %.str.5.sink285, i32 noundef %569, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %571, ptr noundef %573, ptr noundef %575, i32 noundef %576) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

578:                                              ; preds = %551
  %579 = add nsw i32 %552, 2
  store i32 %579, ptr @test_count, align 4, !tbaa !5
  %580 = tail call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #9
  %581 = icmp eq ptr %580, null
  br i1 %581, label %582, label %604

582:                                              ; preds = %578
  %583 = load i32, ptr %204, align 4, !tbaa !5
  %584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %585 = tail call i32 @s2n_print_stacktrace(ptr noundef %584) #9
  %586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %587 = trunc nuw i8 %586 to i1
  br i1 %587, label %588, label %592

588:                                              ; preds = %582
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = tail call i32 @fileno(ptr noundef %589) #9
  %591 = tail call i32 @isatty(i32 noundef %590) #9
  %.not87 = icmp eq i32 %591, 0
  br i1 %.not87, label %592, label %593

592:                                              ; preds = %588, %582
  br label %593

593:                                              ; preds = %588, %592
  %.str.5.sink294 = phi ptr [ @.str.5, %592 ], [ @.str.2, %588 ]
  store i32 %583, ptr %204, align 4, !tbaa !5
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = load i32, ptr @test_count, align 4, !tbaa !5
  %596 = load i32, ptr %150, align 4, !tbaa !5
  %597 = tail call ptr @s2n_strerror(i32 noundef %596, ptr noundef nonnull @.str.4) #9
  %598 = load i32, ptr %150, align 4, !tbaa !5
  %599 = tail call ptr @s2n_strerror_debug(i32 noundef %598, ptr noundef nonnull @.str.4) #9
  %600 = load i32, ptr %204, align 4, !tbaa !5
  %601 = tail call ptr @strerror(i32 noundef %600) #9
  %602 = load i32, ptr %204, align 4, !tbaa !5
  %603 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %594, ptr noundef nonnull %.str.5.sink294, i32 noundef %595, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %597, ptr noundef %599, ptr noundef %601, i32 noundef %602) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

604:                                              ; preds = %578
  store i32 0, ptr %150, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #9
  store i32 0, ptr %204, align 4, !tbaa !5
  %605 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %3) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr @test_count, align 4, !tbaa !5
  %608 = call i32 @s2n_test_handshake_finish_header(i32 noundef 65536)
  %609 = call zeroext i1 @s2n_result_is_ok(i32 %608)
  br i1 %609, label %632, label %610

610:                                              ; preds = %604
  %611 = load i32, ptr %204, align 4, !tbaa !5
  %612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %613 = call i32 @s2n_print_stacktrace(ptr noundef %612) #9
  %614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %615 = trunc nuw i8 %614 to i1
  br i1 %615, label %616, label %620

616:                                              ; preds = %610
  %617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %618 = call i32 @fileno(ptr noundef %617) #9
  %619 = call i32 @isatty(i32 noundef %618) #9
  %.not78 = icmp eq i32 %619, 0
  br i1 %.not78, label %620, label %621

620:                                              ; preds = %616, %610
  br label %621

621:                                              ; preds = %616, %620
  %.str.5.sink303 = phi ptr [ @.str.5, %620 ], [ @.str.2, %616 ]
  store i32 %611, ptr %204, align 4, !tbaa !5
  %622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %623 = load i32, ptr @test_count, align 4, !tbaa !5
  %624 = load i32, ptr %150, align 4, !tbaa !5
  %625 = call ptr @s2n_strerror(i32 noundef %624, ptr noundef nonnull @.str.4) #9
  %626 = load i32, ptr %150, align 4, !tbaa !5
  %627 = call ptr @s2n_strerror_debug(i32 noundef %626, ptr noundef nonnull @.str.4) #9
  %628 = load i32, ptr %204, align 4, !tbaa !5
  %629 = call ptr @strerror(i32 noundef %628) #9
  %630 = load i32, ptr %204, align 4, !tbaa !5
  %631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %622, ptr noundef nonnull %.str.5.sink303, i32 noundef %623, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %625, ptr noundef %627, ptr noundef %629, i32 noundef %630) #11
  call void @exit(i32 noundef 1) #12
  unreachable

632:                                              ; preds = %604
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = add nsw i32 %633, 1
  store i32 %634, ptr @test_count, align 4, !tbaa !5
  %635 = call i32 @s2n_test_handshake_finish_header(i32 noundef 16777216)
  %636 = call zeroext i1 @s2n_result_is_error(i32 %635)
  br i1 %636, label %659, label %637

637:                                              ; preds = %632
  %638 = load i32, ptr %204, align 4, !tbaa !5
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = call i32 @s2n_print_stacktrace(ptr noundef %639) #9
  %641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %642 = trunc nuw i8 %641 to i1
  br i1 %642, label %643, label %647

643:                                              ; preds = %637
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = call i32 @fileno(ptr noundef %644) #9
  %646 = call i32 @isatty(i32 noundef %645) #9
  %.not79 = icmp eq i32 %646, 0
  br i1 %.not79, label %647, label %648

647:                                              ; preds = %643, %637
  br label %648

648:                                              ; preds = %643, %647
  %.str.5.sink312 = phi ptr [ @.str.5, %647 ], [ @.str.2, %643 ]
  store i32 %638, ptr %204, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = load i32, ptr %150, align 4, !tbaa !5
  %652 = call ptr @s2n_strerror(i32 noundef %651, ptr noundef nonnull @.str.4) #9
  %653 = load i32, ptr %150, align 4, !tbaa !5
  %654 = call ptr @s2n_strerror_debug(i32 noundef %653, ptr noundef nonnull @.str.4) #9
  %655 = load i32, ptr %204, align 4, !tbaa !5
  %656 = call ptr @strerror(i32 noundef %655) #9
  %657 = load i32, ptr %204, align 4, !tbaa !5
  %658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %649, ptr noundef nonnull %.str.5.sink312, i32 noundef %650, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %652, ptr noundef %654, ptr noundef %656, i32 noundef %657) #11
  call void @exit(i32 noundef 1) #12
  unreachable

659:                                              ; preds = %632
  %660 = load i32, ptr @test_count, align 4, !tbaa !5
  %661 = add nsw i32 %660, 1
  store i32 %661, ptr @test_count, align 4, !tbaa !5
  %662 = load i32, ptr %150, align 4, !tbaa !5
  %663 = icmp eq i32 %662, 402653251
  br i1 %663, label %686, label %664

664:                                              ; preds = %659
  %665 = load i32, ptr %204, align 4, !tbaa !5
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = call i32 @s2n_print_stacktrace(ptr noundef %666) #9
  %668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %669 = trunc nuw i8 %668 to i1
  br i1 %669, label %670, label %674

670:                                              ; preds = %664
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = call i32 @fileno(ptr noundef %671) #9
  %673 = call i32 @isatty(i32 noundef %672) #9
  %.not80 = icmp eq i32 %673, 0
  br i1 %.not80, label %674, label %675

674:                                              ; preds = %670, %664
  br label %675

675:                                              ; preds = %670, %674
  %.str.5.sink321 = phi ptr [ @.str.5, %674 ], [ @.str.2, %670 ]
  store i32 %665, ptr %204, align 4, !tbaa !5
  %676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %677 = load i32, ptr @test_count, align 4, !tbaa !5
  %678 = load i32, ptr %150, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror(i32 noundef %678, ptr noundef nonnull @.str.4) #9
  %680 = load i32, ptr %150, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror_debug(i32 noundef %680, ptr noundef nonnull @.str.4) #9
  %682 = load i32, ptr %204, align 4, !tbaa !5
  %683 = call ptr @strerror(i32 noundef %682) #9
  %684 = load i32, ptr %204, align 4, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %676, ptr noundef nonnull %.str.5.sink321, i32 noundef %677, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %679, ptr noundef %681, ptr noundef %683, i32 noundef %684) #11
  call void @exit(i32 noundef 1) #12
  unreachable

686:                                              ; preds = %659
  %687 = add nsw i32 %660, 2
  store i32 %687, ptr @test_count, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror_debug(i32 noundef 402653251, ptr noundef nonnull @.str.4) #9
  %689 = icmp eq ptr %688, null
  br i1 %689, label %690, label %712

690:                                              ; preds = %686
  %691 = load i32, ptr %204, align 4, !tbaa !5
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = call i32 @s2n_print_stacktrace(ptr noundef %692) #9
  %694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %695 = trunc nuw i8 %694 to i1
  br i1 %695, label %696, label %700

696:                                              ; preds = %690
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = call i32 @fileno(ptr noundef %697) #9
  %699 = call i32 @isatty(i32 noundef %698) #9
  %.not86 = icmp eq i32 %699, 0
  br i1 %.not86, label %700, label %701

700:                                              ; preds = %696, %690
  br label %701

701:                                              ; preds = %696, %700
  %.str.5.sink330 = phi ptr [ @.str.5, %700 ], [ @.str.2, %696 ]
  store i32 %691, ptr %204, align 4, !tbaa !5
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = load i32, ptr %150, align 4, !tbaa !5
  %705 = call ptr @s2n_strerror(i32 noundef %704, ptr noundef nonnull @.str.4) #9
  %706 = load i32, ptr %150, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror_debug(i32 noundef %706, ptr noundef nonnull @.str.4) #9
  %708 = load i32, ptr %204, align 4, !tbaa !5
  %709 = call ptr @strerror(i32 noundef %708) #9
  %710 = load i32, ptr %204, align 4, !tbaa !5
  %711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %702, ptr noundef nonnull %.str.5.sink330, i32 noundef %703, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %705, ptr noundef %707, ptr noundef %709, i32 noundef %710) #11
  call void @exit(i32 noundef 1) #12
  unreachable

712:                                              ; preds = %686
  store i32 0, ptr %150, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %204, align 4, !tbaa !5
  %713 = call i32 @s2n_cleanup() #9
  %714 = icmp eq i32 %713, -1
  br i1 %714, label %715, label %737

715:                                              ; preds = %712
  %716 = load i32, ptr %204, align 4, !tbaa !5
  %717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %718 = call i32 @s2n_print_stacktrace(ptr noundef %717) #9
  %719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %720 = trunc nuw i8 %719 to i1
  br i1 %720, label %721, label %725

721:                                              ; preds = %715
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @fileno(ptr noundef %722) #9
  %724 = call i32 @isatty(i32 noundef %723) #9
  %.not85 = icmp eq i32 %724, 0
  br i1 %.not85, label %725, label %726

725:                                              ; preds = %721, %715
  br label %726

726:                                              ; preds = %721, %725
  %.str.5.sink339 = phi ptr [ @.str.5, %725 ], [ @.str.2, %721 ]
  store i32 %716, ptr %204, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = load i32, ptr %150, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror(i32 noundef %729, ptr noundef nonnull @.str.4) #9
  %731 = load i32, ptr %150, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef nonnull @.str.4) #9
  %733 = load i32, ptr %204, align 4, !tbaa !5
  %734 = call ptr @strerror(i32 noundef %733) #9
  %735 = load i32, ptr %204, align 4, !tbaa !5
  %736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef nonnull %.str.5.sink339, i32 noundef %728, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %730, ptr noundef %732, ptr noundef %734, i32 noundef %735) #11
  call void @exit(i32 noundef 1) #12
  unreachable

737:                                              ; preds = %712
  %738 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %739 = icmp eq i32 %738, -1
  br i1 %739, label %740, label %762

740:                                              ; preds = %737
  %741 = load i32, ptr %204, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @s2n_print_stacktrace(ptr noundef %742) #9
  %744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %745 = trunc nuw i8 %744 to i1
  br i1 %745, label %746, label %750

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

750:                                              ; preds = %746, %740
  br label %751

751:                                              ; preds = %746, %750
  %.str.5.sink348 = phi ptr [ @.str.5, %750 ], [ @.str.2, %746 ]
  store i32 %741, ptr %204, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = load i32, ptr %150, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror(i32 noundef %754, ptr noundef nonnull @.str.4) #9
  %756 = load i32, ptr %150, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef nonnull @.str.4) #9
  %758 = load i32, ptr %204, align 4, !tbaa !5
  %759 = call ptr @strerror(i32 noundef %758) #9
  %760 = load i32, ptr %204, align 4, !tbaa !5
  %761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %752, ptr noundef nonnull %.str.5.sink348, i32 noundef %753, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %755, ptr noundef %757, ptr noundef %759, i32 noundef %760) #11
  call void @exit(i32 noundef 1) #12
  unreachable

762:                                              ; preds = %737
  %763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %764 = trunc nuw i8 %763 to i1
  br i1 %764, label %765, label %776

765:                                              ; preds = %762
  %766 = load ptr, ptr @stdout, align 8, !tbaa !9
  %767 = call i32 @fileno(ptr noundef %766) #9
  %768 = call i32 @isatty(i32 noundef %767) #9
  %.not81 = icmp eq i32 %768, 0
  br i1 %.not81, label %776, label %769

769:                                              ; preds = %765
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not83 = icmp eq i32 %770, 0
  %771 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not83, label %774, label %772

772:                                              ; preds = %769
  %773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %771, ptr noundef nonnull @.str.25, i32 noundef %770) #9
  br label %783

774:                                              ; preds = %769
  %775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %771, ptr noundef nonnull @.str.26) #9
  br label %783

776:                                              ; preds = %765, %762
  %777 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not82 = icmp eq i32 %777, 0
  %778 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not82, label %781, label %779

779:                                              ; preds = %776
  %780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %778, ptr noundef nonnull @.str.27, i32 noundef %777) #9
  br label %783

781:                                              ; preds = %776
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %778, ptr noundef nonnull @.str.28) #9
  br label %783

783:                                              ; preds = %779, %781, %772, %774
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_handshake_set_finished_len(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_handshake_finish_header(i32 noundef) local_unnamed_addr #0

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


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