; LLVM IR from aws/s2n-tls :: tests/unit (s2n_kex_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_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_kex = type { i8, [2 x ptr], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%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 }
%struct.s2n_kex_raw_server_data = type { %struct.s2n_ecdhe_raw_server_params, %struct.s2n_dhe_raw_server_points, %struct.s2n_kem_raw_server_params }
%struct.s2n_ecdhe_raw_server_params = type { %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dhe_raw_server_points = type { %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_kem_raw_server_params = type { %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_result = 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 [71 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_ecdhe_rsa_with_aes_256_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.9 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_rsa = external constant %struct.s2n_kex, align 8
@.str.14 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [50 x i8], align 1
@s2n_hybrid_ecdhe_kem = external constant %struct.s2n_kex, align 8
@.str.23 = external hidden unnamed_addr constant [76 x i8], align 1
@s2n_dhe = external constant %struct.s2n_kex, align 8
@.str.24 = external hidden unnamed_addr constant [53 x i8], align 1
@s2n_kem = external constant %struct.s2n_kex, align 8
@s2n_ecdhe = external constant %struct.s2n_kex, align 8
@.str.25 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = 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 i32, align 4
  %10 = alloca %struct.s2n_connection, align 8
  %11 = alloca %struct.s2n_blob, align 8
  %12 = alloca %struct.s2n_kex_raw_server_data, align 8
  %13 = alloca %struct.s2n_cipher_suite, align 8
  %14 = alloca %struct.s2n_cipher_suite, align 8
  %15 = alloca %struct.s2n_result, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %struct.s2n_result, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i8, align 1
  %24 = alloca %struct.s2n_result, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %struct.s2n_result, align 4
  %29 = alloca i32, 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 i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %struct.s2n_result, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca %struct.s2n_result, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_result, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  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 %71

71:                                               ; preds = %2
  br label %72

72:                                               ; preds = %71
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %73 = load ptr, ptr @stdout, align 8, !tbaa !9
  %74 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %73, ptr noundef @.str, ptr noundef @.str.1) #10
  %75 = load ptr, ptr @stdout, align 8, !tbaa !9
  %76 = call i32 @fflush(ptr noundef %75)
  br label %77

77:                                               ; preds = %72
  %78 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %79 = icmp eq i32 %78, -1
  br i1 %79, label %80, label %131

80:                                               ; preds = %77
  br label %81

81:                                               ; preds = %80
  br label %82

82:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %83 = call ptr @__errno_location() #11
  %84 = load i32, ptr %83, align 4, !tbaa !5
  store i32 %84, ptr %6, align 4, !tbaa !5
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = call i32 @s2n_print_stacktrace(ptr noundef %85)
  %87 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %88 = trunc i8 %87 to i1
  br i1 %88, label %89, label %111

89:                                               ; preds = %82
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = call i32 @fileno(ptr noundef %90) #10
  %92 = call i32 @isatty(i32 noundef %91) #10
  %93 = icmp ne i32 %92, 0
  br i1 %93, label %94, label %111

94:                                               ; preds = %89
  %95 = load i32, ptr %6, align 4, !tbaa !5
  %96 = call ptr @__errno_location() #11
  store i32 %95, ptr %96, align 4, !tbaa !5
  %97 = load ptr, ptr @stderr, align 8, !tbaa !9
  %98 = load i32, ptr @test_count, align 4, !tbaa !5
  %99 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = call ptr @s2n_strerror(i32 noundef %100, ptr noundef @.str.4)
  %102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = call ptr @s2n_strerror_debug(i32 noundef %103, ptr noundef @.str.4)
  %105 = call ptr @__errno_location() #11
  %106 = load i32, ptr %105, align 4, !tbaa !5
  %107 = call ptr @strerror(i32 noundef %106) #10
  %108 = call ptr @__errno_location() #11
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %97, ptr noundef @.str.2, i32 noundef %98, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 22, ptr noundef %101, ptr noundef %104, ptr noundef %107, i32 noundef %109) #10
  br label %128

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

128:                                              ; preds = %111, %94
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %129

129:                                              ; preds = %128
  call void @exit(i32 noundef 1) #12
  unreachable

130:                                              ; No predecessors!
  br label %131

131:                                              ; preds = %130, %77
  br label %132

132:                                              ; preds = %131
  br label %133

133:                                              ; preds = %132
  %134 = load i32, ptr @test_count, align 4, !tbaa !5
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr @test_count, align 4, !tbaa !5
  %136 = call i32 @s2n_enable_atexit()
  %137 = icmp eq i32 %136, -1
  br i1 %137, label %138, label %189

138:                                              ; preds = %133
  br label %139

139:                                              ; preds = %138
  br label %140

140:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %141 = call ptr @__errno_location() #11
  %142 = load i32, ptr %141, align 4, !tbaa !5
  store i32 %142, ptr %7, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = call i32 @s2n_print_stacktrace(ptr noundef %143)
  %145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %146 = trunc i8 %145 to i1
  br i1 %146, label %147, label %169

147:                                              ; preds = %140
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = call i32 @fileno(ptr noundef %148) #10
  %150 = call i32 @isatty(i32 noundef %149) #10
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %152, label %169

152:                                              ; preds = %147
  %153 = load i32, ptr %7, align 4, !tbaa !5
  %154 = call ptr @__errno_location() #11
  store i32 %153, ptr %154, align 4, !tbaa !5
  %155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = call ptr @s2n_strerror(i32 noundef %158, ptr noundef @.str.4)
  %160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = call ptr @s2n_strerror_debug(i32 noundef %161, ptr noundef @.str.4)
  %163 = call ptr @__errno_location() #11
  %164 = load i32, ptr %163, align 4, !tbaa !5
  %165 = call ptr @strerror(i32 noundef %164) #10
  %166 = call ptr @__errno_location() #11
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef @.str.2, i32 noundef %156, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 22, ptr noundef %159, ptr noundef %162, ptr noundef %165, i32 noundef %167) #10
  br label %186

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

186:                                              ; preds = %169, %152
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %187

187:                                              ; preds = %186
  call void @exit(i32 noundef 1) #12
  unreachable

188:                                              ; No predecessors!
  br label %189

189:                                              ; preds = %188, %133
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  br label %192

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

195:                                              ; preds = %192
  br label %196

196:                                              ; preds = %195
  br label %197

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

204:                                              ; preds = %197
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = call i32 @fileno(ptr noundef %205) #10
  %207 = call i32 @isatty(i32 noundef %206) #10
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %209, label %226

209:                                              ; preds = %204
  %210 = load i32, ptr %8, align 4, !tbaa !5
  %211 = call ptr @__errno_location() #11
  store i32 %210, ptr %211, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = load i32, ptr @test_count, align 4, !tbaa !5
  %214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = call ptr @s2n_strerror(i32 noundef %215, ptr noundef @.str.4)
  %217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror_debug(i32 noundef %218, ptr noundef @.str.4)
  %220 = call ptr @__errno_location() #11
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = call ptr @strerror(i32 noundef %221) #10
  %223 = call ptr @__errno_location() #11
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %212, ptr noundef @.str.2, i32 noundef %213, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 22, ptr noundef %216, ptr noundef %219, ptr noundef %222, i32 noundef %224) #10
  br label %243

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

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

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

245:                                              ; No predecessors!
  br label %246

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

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  br label %249

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

254:                                              ; preds = %249
  br label %255

255:                                              ; preds = %254
  br label %256

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

263:                                              ; preds = %256
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = call i32 @fileno(ptr noundef %264) #10
  %266 = call i32 @isatty(i32 noundef %265) #10
  %267 = icmp ne i32 %266, 0
  br i1 %267, label %268, label %285

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

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

302:                                              ; preds = %285, %268
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %303

303:                                              ; preds = %302
  call void @exit(i32 noundef 1) #12
  unreachable

304:                                              ; No predecessors!
  br label %305

305:                                              ; preds = %304, %249
  br label %306

306:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 4184, ptr %10) #10
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #10
  call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 168, ptr %12) #10
  call void @llvm.memset.p0.i64(ptr align 8 %12, i8 0, i64 168, i1 false)
  call void @llvm.lifetime.start.p0(i64 104, ptr %13) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %13, ptr align 8 @s2n_ecdhe_rsa_with_aes_256_cbc_sha, i64 104, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 104, ptr %14) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %14, ptr align 8 %13, i64 104, i1 false), !tbaa.struct !15
  %307 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %14, i32 0, i32 4
  store ptr null, ptr %307, align 8, !tbaa !17
  br label %308

308:                                              ; preds = %306
  br label %309

309:                                              ; preds = %308
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = add nsw i32 %310, 1
  store i32 %311, ptr @test_count, align 4, !tbaa !5
  %312 = call i32 @s2n_configure_kex(ptr noundef null, ptr noundef %10)
  %313 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  store i32 %312, ptr %313, align 4
  %314 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  %315 = load i32, ptr %314, align 4
  %316 = call zeroext i1 @s2n_result_is_error(i32 %315)
  br i1 %316, label %370, label %317

317:                                              ; preds = %309
  br label %318

318:                                              ; preds = %317
  br label %319

319:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %320 = call ptr @__errno_location() #11
  %321 = load i32, ptr %320, align 4, !tbaa !5
  store i32 %321, ptr %16, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = call i32 @s2n_print_stacktrace(ptr noundef %322)
  %324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %325 = trunc i8 %324 to i1
  br i1 %325, label %326, label %348

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

331:                                              ; preds = %326
  %332 = load i32, ptr %16, align 4, !tbaa !5
  %333 = call ptr @__errno_location() #11
  store i32 %332, ptr %333, align 4, !tbaa !5
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = load i32, ptr @test_count, align 4, !tbaa !5
  %336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @s2n_strerror(i32 noundef %337, ptr noundef @.str.4)
  %339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call ptr @s2n_strerror_debug(i32 noundef %340, ptr noundef @.str.4)
  %342 = call ptr @__errno_location() #11
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = call ptr @strerror(i32 noundef %343) #10
  %345 = call ptr @__errno_location() #11
  %346 = load i32, ptr %345, align 4, !tbaa !5
  %347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %334, ptr noundef @.str.2, i32 noundef %335, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 35, ptr noundef %338, ptr noundef %341, ptr noundef %344, i32 noundef %346) #10
  br label %365

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

365:                                              ; preds = %348, %331
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  call void @exit(i32 noundef 1) #12
  unreachable

368:                                              ; No predecessors!
  br label %369

369:                                              ; preds = %368
  br label %370

370:                                              ; preds = %369, %309
  br label %371

371:                                              ; preds = %370
  br label %372

372:                                              ; preds = %371
  br label %373

373:                                              ; preds = %372
  %374 = load i32, ptr @test_count, align 4, !tbaa !5
  %375 = add nsw i32 %374, 1
  store i32 %375, ptr @test_count, align 4, !tbaa !5
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = icmp eq i32 %377, 0
  br i1 %378, label %379, label %432

379:                                              ; preds = %373
  br label %380

380:                                              ; preds = %379
  br label %381

381:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %382 = call ptr @__errno_location() #11
  %383 = load i32, ptr %382, align 4, !tbaa !5
  store i32 %383, ptr %17, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = call i32 @s2n_print_stacktrace(ptr noundef %384)
  %386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %387 = trunc i8 %386 to i1
  br i1 %387, label %388, label %410

388:                                              ; preds = %381
  %389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %390 = call i32 @fileno(ptr noundef %389) #10
  %391 = call i32 @isatty(i32 noundef %390) #10
  %392 = icmp ne i32 %391, 0
  br i1 %392, label %393, label %410

393:                                              ; preds = %388
  %394 = load i32, ptr %17, align 4, !tbaa !5
  %395 = call ptr @__errno_location() #11
  store i32 %394, ptr %395, align 4, !tbaa !5
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror(i32 noundef %399, ptr noundef @.str.4)
  %401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef @.str.4)
  %404 = call ptr @__errno_location() #11
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @strerror(i32 noundef %405) #10
  %407 = call ptr @__errno_location() #11
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %396, ptr noundef @.str.2, i32 noundef %397, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 35, ptr noundef %400, ptr noundef %403, ptr noundef %406, i32 noundef %408) #10
  br label %427

410:                                              ; preds = %388, %381
  %411 = load i32, ptr %17, align 4, !tbaa !5
  %412 = call ptr @__errno_location() #11
  store i32 %411, ptr %412, align 4, !tbaa !5
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror(i32 noundef %416, ptr noundef @.str.4)
  %418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror_debug(i32 noundef %419, ptr noundef @.str.4)
  %421 = call ptr @__errno_location() #11
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @strerror(i32 noundef %422) #10
  %424 = call ptr @__errno_location() #11
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %413, ptr noundef @.str.5, i32 noundef %414, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 35, ptr noundef %417, ptr noundef %420, ptr noundef %423, i32 noundef %425) #10
  br label %427

427:                                              ; preds = %410, %393
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  call void @exit(i32 noundef 1) #12
  unreachable

430:                                              ; No predecessors!
  br label %431

431:                                              ; preds = %430
  br label %432

432:                                              ; preds = %431, %373
  br label %433

433:                                              ; preds = %432
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call ptr @s2n_strerror_debug(i32 noundef %439, ptr noundef @.str.4)
  %441 = icmp eq ptr %440, null
  br i1 %441, label %442, label %495

442:                                              ; preds = %435
  br label %443

443:                                              ; preds = %442
  br label %444

444:                                              ; preds = %443
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %445 = call ptr @__errno_location() #11
  %446 = load i32, ptr %445, align 4, !tbaa !5
  store i32 %446, ptr %18, align 4, !tbaa !5
  %447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %448 = call i32 @s2n_print_stacktrace(ptr noundef %447)
  %449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %450 = trunc i8 %449 to i1
  br i1 %450, label %451, label %473

451:                                              ; preds = %444
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = call i32 @fileno(ptr noundef %452) #10
  %454 = call i32 @isatty(i32 noundef %453) #10
  %455 = icmp ne i32 %454, 0
  br i1 %455, label %456, label %473

456:                                              ; preds = %451
  %457 = load i32, ptr %18, align 4, !tbaa !5
  %458 = call ptr @__errno_location() #11
  store i32 %457, ptr %458, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror(i32 noundef %462, ptr noundef @.str.4)
  %464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %465 = load i32, ptr %464, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror_debug(i32 noundef %465, ptr noundef @.str.4)
  %467 = call ptr @__errno_location() #11
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = call ptr @strerror(i32 noundef %468) #10
  %470 = call ptr @__errno_location() #11
  %471 = load i32, ptr %470, align 4, !tbaa !5
  %472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %459, ptr noundef @.str.2, i32 noundef %460, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 35, ptr noundef %463, ptr noundef %466, ptr noundef %469, i32 noundef %471) #10
  br label %490

473:                                              ; preds = %451, %444
  %474 = load i32, ptr %18, align 4, !tbaa !5
  %475 = call ptr @__errno_location() #11
  store i32 %474, ptr %475, align 4, !tbaa !5
  %476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %477 = load i32, ptr @test_count, align 4, !tbaa !5
  %478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = call ptr @s2n_strerror(i32 noundef %479, ptr noundef @.str.4)
  %481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = call ptr @s2n_strerror_debug(i32 noundef %482, ptr noundef @.str.4)
  %484 = call ptr @__errno_location() #11
  %485 = load i32, ptr %484, align 4, !tbaa !5
  %486 = call ptr @strerror(i32 noundef %485) #10
  %487 = call ptr @__errno_location() #11
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %476, ptr noundef @.str.5, i32 noundef %477, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 35, ptr noundef %480, ptr noundef %483, ptr noundef %486, i32 noundef %488) #10
  br label %490

490:                                              ; preds = %473, %456
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %491

491:                                              ; preds = %490
  br label %492

492:                                              ; preds = %491
  call void @exit(i32 noundef 1) #12
  unreachable

493:                                              ; No predecessors!
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494, %435
  br label %496

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %497
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %499, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %500 = call ptr @__errno_location() #11
  store i32 0, ptr %500, align 4, !tbaa !5
  br label %501

501:                                              ; preds = %498
  br label %502

502:                                              ; preds = %501
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr @test_count, align 4, !tbaa !5
  %509 = call i32 @s2n_configure_kex(ptr noundef %14, ptr noundef null)
  %510 = getelementptr inbounds %struct.s2n_result, ptr %19, i32 0, i32 0
  store i32 %509, ptr %510, align 4
  %511 = getelementptr inbounds %struct.s2n_result, ptr %19, i32 0, i32 0
  %512 = load i32, ptr %511, align 4
  %513 = call zeroext i1 @s2n_result_is_error(i32 %512)
  br i1 %513, label %567, label %514

514:                                              ; preds = %506
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %517 = call ptr @__errno_location() #11
  %518 = load i32, ptr %517, align 4, !tbaa !5
  store i32 %518, ptr %20, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = call i32 @s2n_print_stacktrace(ptr noundef %519)
  %521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %522 = trunc i8 %521 to i1
  br i1 %522, label %523, label %545

523:                                              ; preds = %516
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = call i32 @fileno(ptr noundef %524) #10
  %526 = call i32 @isatty(i32 noundef %525) #10
  %527 = icmp ne i32 %526, 0
  br i1 %527, label %528, label %545

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

545:                                              ; preds = %523, %516
  %546 = load i32, ptr %20, align 4, !tbaa !5
  %547 = call ptr @__errno_location() #11
  store i32 %546, ptr %547, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror(i32 noundef %551, ptr noundef @.str.4)
  %553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %554 = load i32, ptr %553, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef @.str.4)
  %556 = call ptr @__errno_location() #11
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call ptr @strerror(i32 noundef %557) #10
  %559 = call ptr @__errno_location() #11
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %548, ptr noundef @.str.5, i32 noundef %549, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 36, ptr noundef %552, ptr noundef %555, ptr noundef %558, i32 noundef %560) #10
  br label %562

562:                                              ; preds = %545, %528
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %563

563:                                              ; preds = %562
  br label %564

564:                                              ; preds = %563
  call void @exit(i32 noundef 1) #12
  unreachable

565:                                              ; No predecessors!
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566, %506
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568
  br label %570

570:                                              ; preds = %569
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = add nsw i32 %571, 1
  store i32 %572, ptr @test_count, align 4, !tbaa !5
  %573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = icmp eq i32 %574, 0
  br i1 %575, label %576, label %629

576:                                              ; preds = %570
  br label %577

577:                                              ; preds = %576
  br label %578

578:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %579 = call ptr @__errno_location() #11
  %580 = load i32, ptr %579, align 4, !tbaa !5
  store i32 %580, ptr %21, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @s2n_print_stacktrace(ptr noundef %581)
  %583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %584 = trunc i8 %583 to i1
  br i1 %584, label %585, label %607

585:                                              ; preds = %578
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = call i32 @fileno(ptr noundef %586) #10
  %588 = call i32 @isatty(i32 noundef %587) #10
  %589 = icmp ne i32 %588, 0
  br i1 %589, label %590, label %607

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

607:                                              ; preds = %585, %578
  %608 = load i32, ptr %21, align 4, !tbaa !5
  %609 = call ptr @__errno_location() #11
  store i32 %608, ptr %609, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror(i32 noundef %613, ptr noundef @.str.4)
  %615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror_debug(i32 noundef %616, ptr noundef @.str.4)
  %618 = call ptr @__errno_location() #11
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call ptr @strerror(i32 noundef %619) #10
  %621 = call ptr @__errno_location() #11
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef @.str.5, i32 noundef %611, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 36, ptr noundef %614, ptr noundef %617, ptr noundef %620, i32 noundef %622) #10
  br label %624

624:                                              ; preds = %607, %590
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625
  call void @exit(i32 noundef 1) #12
  unreachable

627:                                              ; No predecessors!
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %628, %570
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631
  %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 align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror_debug(i32 noundef %636, ptr noundef @.str.4)
  %638 = icmp eq ptr %637, null
  br i1 %638, label %639, label %692

639:                                              ; preds = %632
  br label %640

640:                                              ; preds = %639
  br label %641

641:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %642 = call ptr @__errno_location() #11
  %643 = load i32, ptr %642, align 4, !tbaa !5
  store i32 %643, ptr %22, align 4, !tbaa !5
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = call i32 @s2n_print_stacktrace(ptr noundef %644)
  %646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %647 = trunc i8 %646 to i1
  br i1 %647, label %648, label %670

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

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

670:                                              ; preds = %648, %641
  %671 = load i32, ptr %22, align 4, !tbaa !5
  %672 = call ptr @__errno_location() #11
  store i32 %671, ptr %672, align 4, !tbaa !5
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = load i32, ptr @test_count, align 4, !tbaa !5
  %675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @s2n_strerror(i32 noundef %676, ptr noundef @.str.4)
  %678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = call ptr @s2n_strerror_debug(i32 noundef %679, ptr noundef @.str.4)
  %681 = call ptr @__errno_location() #11
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = call ptr @strerror(i32 noundef %682) #10
  %684 = call ptr @__errno_location() #11
  %685 = load i32, ptr %684, align 4, !tbaa !5
  %686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %673, ptr noundef @.str.5, i32 noundef %674, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 36, ptr noundef %677, ptr noundef %680, ptr noundef %683, i32 noundef %685) #10
  br label %687

687:                                              ; preds = %670, %653
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %688
  call void @exit(i32 noundef 1) #12
  unreachable

690:                                              ; No predecessors!
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691, %632
  br label %693

693:                                              ; preds = %692
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %696, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %697 = call ptr @__errno_location() #11
  store i32 0, ptr %697, align 4, !tbaa !5
  br label %698

698:                                              ; preds = %695
  br label %699

699:                                              ; preds = %698
  br label %700

700:                                              ; preds = %699
  br label %701

701:                                              ; preds = %700
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #10
  store i8 0, ptr %23, align 1, !tbaa !11
  br label %702

702:                                              ; preds = %701
  br label %703

703:                                              ; preds = %702
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = add nsw i32 %704, 1
  store i32 %705, ptr @test_count, align 4, !tbaa !5
  %706 = call i32 @s2n_kex_is_ephemeral(ptr noundef null, ptr noundef %23)
  %707 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %706, ptr %707, align 4
  %708 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  %709 = load i32, ptr %708, align 4
  %710 = call zeroext i1 @s2n_result_is_error(i32 %709)
  br i1 %710, label %764, label %711

711:                                              ; preds = %703
  br label %712

712:                                              ; preds = %711
  br label %713

713:                                              ; preds = %712
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %714 = call ptr @__errno_location() #11
  %715 = load i32, ptr %714, align 4, !tbaa !5
  store i32 %715, ptr %25, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = call i32 @s2n_print_stacktrace(ptr noundef %716)
  %718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %719 = trunc i8 %718 to i1
  br i1 %719, label %720, label %742

720:                                              ; preds = %713
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = call i32 @fileno(ptr noundef %721) #10
  %723 = call i32 @isatty(i32 noundef %722) #10
  %724 = icmp ne i32 %723, 0
  br i1 %724, label %725, label %742

725:                                              ; preds = %720
  %726 = load i32, ptr %25, align 4, !tbaa !5
  %727 = call ptr @__errno_location() #11
  store i32 %726, ptr %727, align 4, !tbaa !5
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = load i32, ptr @test_count, align 4, !tbaa !5
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror(i32 noundef %731, ptr noundef @.str.4)
  %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_debug(i32 noundef %734, ptr noundef @.str.4)
  %736 = call ptr @__errno_location() #11
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call ptr @strerror(i32 noundef %737) #10
  %739 = call ptr @__errno_location() #11
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %728, ptr noundef @.str.2, i32 noundef %729, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 40, ptr noundef %732, ptr noundef %735, ptr noundef %738, i32 noundef %740) #10
  br label %759

742:                                              ; preds = %720, %713
  %743 = load i32, ptr %25, align 4, !tbaa !5
  %744 = call ptr @__errno_location() #11
  store i32 %743, ptr %744, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = load i32, ptr @test_count, align 4, !tbaa !5
  %747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror(i32 noundef %748, ptr noundef @.str.4)
  %750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call ptr @s2n_strerror_debug(i32 noundef %751, ptr noundef @.str.4)
  %753 = call ptr @__errno_location() #11
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @strerror(i32 noundef %754) #10
  %756 = call ptr @__errno_location() #11
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %745, ptr noundef @.str.5, i32 noundef %746, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 40, ptr noundef %749, ptr noundef %752, ptr noundef %755, i32 noundef %757) #10
  br label %759

759:                                              ; preds = %742, %725
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760
  call void @exit(i32 noundef 1) #12
  unreachable

762:                                              ; No predecessors!
  br label %763

763:                                              ; preds = %762
  br label %764

764:                                              ; preds = %763, %703
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  br label %767

767:                                              ; preds = %766
  %768 = load i32, ptr @test_count, align 4, !tbaa !5
  %769 = add nsw i32 %768, 1
  store i32 %769, ptr @test_count, align 4, !tbaa !5
  %770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = icmp eq i32 %771, 0
  br i1 %772, label %773, label %826

773:                                              ; preds = %767
  br label %774

774:                                              ; preds = %773
  br label %775

775:                                              ; preds = %774
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %776 = call ptr @__errno_location() #11
  %777 = load i32, ptr %776, align 4, !tbaa !5
  store i32 %777, ptr %26, align 4, !tbaa !5
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = call i32 @s2n_print_stacktrace(ptr noundef %778)
  %780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %781 = trunc i8 %780 to i1
  br i1 %781, label %782, label %804

782:                                              ; preds = %775
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = call i32 @fileno(ptr noundef %783) #10
  %785 = call i32 @isatty(i32 noundef %784) #10
  %786 = icmp ne i32 %785, 0
  br i1 %786, label %787, label %804

787:                                              ; preds = %782
  %788 = load i32, ptr %26, align 4, !tbaa !5
  %789 = call ptr @__errno_location() #11
  store i32 %788, ptr %789, align 4, !tbaa !5
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror(i32 noundef %793, ptr noundef @.str.4)
  %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_debug(i32 noundef %796, ptr noundef @.str.4)
  %798 = call ptr @__errno_location() #11
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call ptr @strerror(i32 noundef %799) #10
  %801 = call ptr @__errno_location() #11
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %790, ptr noundef @.str.2, i32 noundef %791, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 40, ptr noundef %794, ptr noundef %797, ptr noundef %800, i32 noundef %802) #10
  br label %821

804:                                              ; preds = %782, %775
  %805 = load i32, ptr %26, align 4, !tbaa !5
  %806 = call ptr @__errno_location() #11
  store i32 %805, ptr %806, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror(i32 noundef %810, ptr noundef @.str.4)
  %812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror_debug(i32 noundef %813, ptr noundef @.str.4)
  %815 = call ptr @__errno_location() #11
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call ptr @strerror(i32 noundef %816) #10
  %818 = call ptr @__errno_location() #11
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %807, ptr noundef @.str.5, i32 noundef %808, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 40, ptr noundef %811, ptr noundef %814, ptr noundef %817, i32 noundef %819) #10
  br label %821

821:                                              ; preds = %804, %787
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822
  call void @exit(i32 noundef 1) #12
  unreachable

824:                                              ; No predecessors!
  br label %825

825:                                              ; preds = %824
  br label %826

826:                                              ; preds = %825, %767
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827
  br label %829

829:                                              ; preds = %828
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = add nsw i32 %830, 1
  store i32 %831, ptr @test_count, align 4, !tbaa !5
  %832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call ptr @s2n_strerror_debug(i32 noundef %833, ptr noundef @.str.4)
  %835 = icmp eq ptr %834, null
  br i1 %835, label %836, label %889

836:                                              ; preds = %829
  br label %837

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %839 = call ptr @__errno_location() #11
  %840 = load i32, ptr %839, align 4, !tbaa !5
  store i32 %840, ptr %27, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @s2n_print_stacktrace(ptr noundef %841)
  %843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %844 = trunc i8 %843 to i1
  br i1 %844, label %845, label %867

845:                                              ; preds = %838
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = call i32 @fileno(ptr noundef %846) #10
  %848 = call i32 @isatty(i32 noundef %847) #10
  %849 = icmp ne i32 %848, 0
  br i1 %849, label %850, label %867

850:                                              ; preds = %845
  %851 = load i32, ptr %27, align 4, !tbaa !5
  %852 = call ptr @__errno_location() #11
  store i32 %851, ptr %852, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror(i32 noundef %856, ptr noundef @.str.4)
  %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_debug(i32 noundef %859, ptr noundef @.str.4)
  %861 = call ptr @__errno_location() #11
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call ptr @strerror(i32 noundef %862) #10
  %864 = call ptr @__errno_location() #11
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef @.str.2, i32 noundef %854, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 40, ptr noundef %857, ptr noundef %860, ptr noundef %863, i32 noundef %865) #10
  br label %884

867:                                              ; preds = %845, %838
  %868 = load i32, ptr %27, align 4, !tbaa !5
  %869 = call ptr @__errno_location() #11
  store i32 %868, ptr %869, align 4, !tbaa !5
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call ptr @s2n_strerror(i32 noundef %873, ptr noundef @.str.4)
  %875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror_debug(i32 noundef %876, ptr noundef @.str.4)
  %878 = call ptr @__errno_location() #11
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #10
  %881 = call ptr @__errno_location() #11
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %870, ptr noundef @.str.5, i32 noundef %871, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 40, ptr noundef %874, ptr noundef %877, ptr noundef %880, i32 noundef %882) #10
  br label %884

884:                                              ; preds = %867, %850
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %885

885:                                              ; preds = %884
  br label %886

886:                                              ; preds = %885
  call void @exit(i32 noundef 1) #12
  unreachable

887:                                              ; No predecessors!
  br label %888

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888, %829
  br label %890

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890
  br label %892

892:                                              ; preds = %891
  %893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %893, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %894 = call ptr @__errno_location() #11
  store i32 0, ptr %894, align 4, !tbaa !5
  br label %895

895:                                              ; preds = %892
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = add nsw i32 %901, 1
  store i32 %902, ptr @test_count, align 4, !tbaa !5
  %903 = call i32 @s2n_kex_is_ephemeral(ptr noundef @s2n_rsa, ptr noundef null)
  %904 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  store i32 %903, ptr %904, align 4
  %905 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  %906 = load i32, ptr %905, align 4
  %907 = call zeroext i1 @s2n_result_is_error(i32 %906)
  br i1 %907, label %961, label %908

908:                                              ; preds = %900
  br label %909

909:                                              ; preds = %908
  br label %910

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

917:                                              ; preds = %910
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @fileno(ptr noundef %918) #10
  %920 = call i32 @isatty(i32 noundef %919) #10
  %921 = icmp ne i32 %920, 0
  br i1 %921, label %922, label %939

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

939:                                              ; preds = %917, %910
  %940 = load i32, ptr %29, align 4, !tbaa !5
  %941 = call ptr @__errno_location() #11
  store i32 %940, ptr %941, align 4, !tbaa !5
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = load i32, ptr @test_count, align 4, !tbaa !5
  %944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror(i32 noundef %945, ptr noundef @.str.4)
  %947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror_debug(i32 noundef %948, ptr noundef @.str.4)
  %950 = call ptr @__errno_location() #11
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call ptr @strerror(i32 noundef %951) #10
  %953 = call ptr @__errno_location() #11
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %942, ptr noundef @.str.5, i32 noundef %943, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 41, ptr noundef %946, ptr noundef %949, ptr noundef %952, i32 noundef %954) #10
  br label %956

956:                                              ; preds = %939, %922
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %957

957:                                              ; preds = %956
  br label %958

958:                                              ; preds = %957
  call void @exit(i32 noundef 1) #12
  unreachable

959:                                              ; No predecessors!
  br label %960

960:                                              ; preds = %959
  br label %961

961:                                              ; preds = %960, %900
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962
  br label %964

964:                                              ; preds = %963
  %965 = load i32, ptr @test_count, align 4, !tbaa !5
  %966 = add nsw i32 %965, 1
  store i32 %966, ptr @test_count, align 4, !tbaa !5
  %967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %968 = load i32, ptr %967, align 4, !tbaa !5
  %969 = icmp eq i32 %968, 0
  br i1 %969, label %970, label %1023

970:                                              ; preds = %964
  br label %971

971:                                              ; preds = %970
  br label %972

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

979:                                              ; preds = %972
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = call i32 @fileno(ptr noundef %980) #10
  %982 = call i32 @isatty(i32 noundef %981) #10
  %983 = icmp ne i32 %982, 0
  br i1 %983, label %984, label %1001

984:                                              ; preds = %979
  %985 = load i32, ptr %30, align 4, !tbaa !5
  %986 = call ptr @__errno_location() #11
  store i32 %985, ptr %986, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror(i32 noundef %990, ptr noundef @.str.4)
  %992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror_debug(i32 noundef %993, ptr noundef @.str.4)
  %995 = call ptr @__errno_location() #11
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @strerror(i32 noundef %996) #10
  %998 = call ptr @__errno_location() #11
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %987, ptr noundef @.str.2, i32 noundef %988, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 41, ptr noundef %991, ptr noundef %994, ptr noundef %997, i32 noundef %999) #10
  br label %1018

1001:                                             ; preds = %979, %972
  %1002 = load i32, ptr %30, align 4, !tbaa !5
  %1003 = call ptr @__errno_location() #11
  store i32 %1002, ptr %1003, align 4, !tbaa !5
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror(i32 noundef %1007, ptr noundef @.str.4)
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror_debug(i32 noundef %1010, ptr noundef @.str.4)
  %1012 = call ptr @__errno_location() #11
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @strerror(i32 noundef %1013) #10
  %1015 = call ptr @__errno_location() #11
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1004, ptr noundef @.str.5, i32 noundef %1005, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 41, ptr noundef %1008, ptr noundef %1011, ptr noundef %1014, i32 noundef %1016) #10
  br label %1018

1018:                                             ; preds = %1001, %984
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1019

1019:                                             ; preds = %1018
  br label %1020

1020:                                             ; preds = %1019
  call void @exit(i32 noundef 1) #12
  unreachable

1021:                                             ; No predecessors!
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022, %964
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025
  %1027 = load i32, ptr @test_count, align 4, !tbaa !5
  %1028 = add nsw i32 %1027, 1
  store i32 %1028, ptr @test_count, align 4, !tbaa !5
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror_debug(i32 noundef %1030, ptr noundef @.str.4)
  %1032 = icmp eq ptr %1031, null
  br i1 %1032, label %1033, label %1086

1033:                                             ; preds = %1026
  br label %1034

1034:                                             ; preds = %1033
  br label %1035

1035:                                             ; preds = %1034
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %1036 = call ptr @__errno_location() #11
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  store i32 %1037, ptr %31, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @s2n_print_stacktrace(ptr noundef %1038)
  %1040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1041 = trunc i8 %1040 to i1
  br i1 %1041, label %1042, label %1064

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

1047:                                             ; preds = %1042
  %1048 = load i32, ptr %31, align 4, !tbaa !5
  %1049 = call ptr @__errno_location() #11
  store i32 %1048, ptr %1049, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror(i32 noundef %1053, ptr noundef @.str.4)
  %1055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror_debug(i32 noundef %1056, ptr noundef @.str.4)
  %1058 = call ptr @__errno_location() #11
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call ptr @strerror(i32 noundef %1059) #10
  %1061 = call ptr @__errno_location() #11
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef @.str.2, i32 noundef %1051, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 41, ptr noundef %1054, ptr noundef %1057, ptr noundef %1060, i32 noundef %1062) #10
  br label %1081

1064:                                             ; preds = %1042, %1035
  %1065 = load i32, ptr %31, align 4, !tbaa !5
  %1066 = call ptr @__errno_location() #11
  store i32 %1065, ptr %1066, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = load i32, ptr @test_count, align 4, !tbaa !5
  %1069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1070 = load i32, ptr %1069, align 4, !tbaa !5
  %1071 = call ptr @s2n_strerror(i32 noundef %1070, ptr noundef @.str.4)
  %1072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = call ptr @s2n_strerror_debug(i32 noundef %1073, ptr noundef @.str.4)
  %1075 = call ptr @__errno_location() #11
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = call ptr @strerror(i32 noundef %1076) #10
  %1078 = call ptr @__errno_location() #11
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1067, ptr noundef @.str.5, i32 noundef %1068, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 41, ptr noundef %1071, ptr noundef %1074, ptr noundef %1077, i32 noundef %1079) #10
  br label %1081

1081:                                             ; preds = %1064, %1047
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %1082

1082:                                             ; preds = %1081
  br label %1083

1083:                                             ; preds = %1082
  call void @exit(i32 noundef 1) #12
  unreachable

1084:                                             ; No predecessors!
  br label %1085

1085:                                             ; preds = %1084
  br label %1086

1086:                                             ; preds = %1085, %1026
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087
  br label %1089

1089:                                             ; preds = %1088
  %1090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1090, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1091 = call ptr @__errno_location() #11
  store i32 0, ptr %1091, align 4, !tbaa !5
  br label %1092

1092:                                             ; preds = %1089
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

1094:                                             ; preds = %1093
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096
  %1098 = load i32, ptr @test_count, align 4, !tbaa !5
  %1099 = add nsw i32 %1098, 1
  store i32 %1099, ptr @test_count, align 4, !tbaa !5
  %1100 = call i32 @s2n_kex_server_key_recv_parse_data(ptr noundef null, ptr noundef %10, ptr noundef %12)
  %1101 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %1100, ptr %1101, align 4
  %1102 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %1103 = load i32, ptr %1102, align 4
  %1104 = call zeroext i1 @s2n_result_is_error(i32 %1103)
  br i1 %1104, label %1158, label %1105

1105:                                             ; preds = %1097
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1108 = call ptr @__errno_location() #11
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  store i32 %1109, ptr %33, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = call i32 @s2n_print_stacktrace(ptr noundef %1110)
  %1112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1113 = trunc i8 %1112 to i1
  br i1 %1113, label %1114, label %1136

1114:                                             ; preds = %1107
  %1115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1116 = call i32 @fileno(ptr noundef %1115) #10
  %1117 = call i32 @isatty(i32 noundef %1116) #10
  %1118 = icmp ne i32 %1117, 0
  br i1 %1118, label %1119, label %1136

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

1136:                                             ; preds = %1114, %1107
  %1137 = load i32, ptr %33, align 4, !tbaa !5
  %1138 = call ptr @__errno_location() #11
  store i32 %1137, ptr %1138, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror(i32 noundef %1142, ptr noundef @.str.4)
  %1144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = call ptr @s2n_strerror_debug(i32 noundef %1145, ptr noundef @.str.4)
  %1147 = call ptr @__errno_location() #11
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @strerror(i32 noundef %1148) #10
  %1150 = call ptr @__errno_location() #11
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1139, ptr noundef @.str.5, i32 noundef %1140, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 42, ptr noundef %1143, ptr noundef %1146, ptr noundef %1149, i32 noundef %1151) #10
  br label %1153

1153:                                             ; preds = %1136, %1119
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1154

1154:                                             ; preds = %1153
  br label %1155

1155:                                             ; preds = %1154
  call void @exit(i32 noundef 1) #12
  unreachable

1156:                                             ; No predecessors!
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

1158:                                             ; preds = %1157, %1097
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = add nsw i32 %1162, 1
  store i32 %1163, ptr @test_count, align 4, !tbaa !5
  %1164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = icmp eq i32 %1165, 0
  br i1 %1166, label %1167, label %1220

1167:                                             ; preds = %1161
  br label %1168

1168:                                             ; preds = %1167
  br label %1169

1169:                                             ; preds = %1168
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %1170 = call ptr @__errno_location() #11
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  store i32 %1171, ptr %34, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @s2n_print_stacktrace(ptr noundef %1172)
  %1174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1175 = trunc i8 %1174 to i1
  br i1 %1175, label %1176, label %1198

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

1181:                                             ; preds = %1176
  %1182 = load i32, ptr %34, align 4, !tbaa !5
  %1183 = call ptr @__errno_location() #11
  store i32 %1182, ptr %1183, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = call ptr @s2n_strerror(i32 noundef %1187, ptr noundef @.str.4)
  %1189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @s2n_strerror_debug(i32 noundef %1190, ptr noundef @.str.4)
  %1192 = call ptr @__errno_location() #11
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @strerror(i32 noundef %1193) #10
  %1195 = call ptr @__errno_location() #11
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1184, ptr noundef @.str.2, i32 noundef %1185, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 42, ptr noundef %1188, ptr noundef %1191, ptr noundef %1194, i32 noundef %1196) #10
  br label %1215

1198:                                             ; preds = %1176, %1169
  %1199 = load i32, ptr %34, align 4, !tbaa !5
  %1200 = call ptr @__errno_location() #11
  store i32 %1199, ptr %1200, align 4, !tbaa !5
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = load i32, ptr @test_count, align 4, !tbaa !5
  %1203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call ptr @s2n_strerror(i32 noundef %1204, ptr noundef @.str.4)
  %1206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = call ptr @s2n_strerror_debug(i32 noundef %1207, ptr noundef @.str.4)
  %1209 = call ptr @__errno_location() #11
  %1210 = load i32, ptr %1209, align 4, !tbaa !5
  %1211 = call ptr @strerror(i32 noundef %1210) #10
  %1212 = call ptr @__errno_location() #11
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1201, ptr noundef @.str.5, i32 noundef %1202, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 42, ptr noundef %1205, ptr noundef %1208, ptr noundef %1211, i32 noundef %1213) #10
  br label %1215

1215:                                             ; preds = %1198, %1181
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216
  call void @exit(i32 noundef 1) #12
  unreachable

1218:                                             ; No predecessors!
  br label %1219

1219:                                             ; preds = %1218
  br label %1220

1220:                                             ; preds = %1219, %1161
  br label %1221

1221:                                             ; preds = %1220
  br label %1222

1222:                                             ; preds = %1221
  br label %1223

1223:                                             ; preds = %1222
  %1224 = load i32, ptr @test_count, align 4, !tbaa !5
  %1225 = add nsw i32 %1224, 1
  store i32 %1225, ptr @test_count, align 4, !tbaa !5
  %1226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = call ptr @s2n_strerror_debug(i32 noundef %1227, ptr noundef @.str.4)
  %1229 = icmp eq ptr %1228, null
  br i1 %1229, label %1230, label %1283

1230:                                             ; preds = %1223
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

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

1239:                                             ; preds = %1232
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @fileno(ptr noundef %1240) #10
  %1242 = call i32 @isatty(i32 noundef %1241) #10
  %1243 = icmp ne i32 %1242, 0
  br i1 %1243, label %1244, label %1261

1244:                                             ; preds = %1239
  %1245 = load i32, ptr %35, align 4, !tbaa !5
  %1246 = call ptr @__errno_location() #11
  store i32 %1245, ptr %1246, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1250, ptr noundef @.str.4)
  %1252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror_debug(i32 noundef %1253, ptr noundef @.str.4)
  %1255 = call ptr @__errno_location() #11
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call ptr @strerror(i32 noundef %1256) #10
  %1258 = call ptr @__errno_location() #11
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1247, ptr noundef @.str.2, i32 noundef %1248, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 42, ptr noundef %1251, ptr noundef %1254, ptr noundef %1257, i32 noundef %1259) #10
  br label %1278

1261:                                             ; preds = %1239, %1232
  %1262 = load i32, ptr %35, align 4, !tbaa !5
  %1263 = call ptr @__errno_location() #11
  store i32 %1262, ptr %1263, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1267, ptr noundef @.str.4)
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef @.str.4)
  %1272 = call ptr @__errno_location() #11
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @strerror(i32 noundef %1273) #10
  %1275 = call ptr @__errno_location() #11
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1264, ptr noundef @.str.5, i32 noundef %1265, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 42, ptr noundef %1268, ptr noundef %1271, ptr noundef %1274, i32 noundef %1276) #10
  br label %1278

1278:                                             ; preds = %1261, %1244
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1279

1279:                                             ; preds = %1278
  br label %1280

1280:                                             ; preds = %1279
  call void @exit(i32 noundef 1) #12
  unreachable

1281:                                             ; No predecessors!
  br label %1282

1282:                                             ; preds = %1281
  br label %1283

1283:                                             ; preds = %1282, %1223
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

1286:                                             ; preds = %1285
  %1287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1287, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1288 = call ptr @__errno_location() #11
  store i32 0, ptr %1288, align 4, !tbaa !5
  br label %1289

1289:                                             ; preds = %1286
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

1293:                                             ; preds = %1292
  br label %1294

1294:                                             ; preds = %1293
  %1295 = load i32, ptr @test_count, align 4, !tbaa !5
  %1296 = add nsw i32 %1295, 1
  store i32 %1296, ptr @test_count, align 4, !tbaa !5
  %1297 = call i32 @s2n_kex_server_key_recv_read_data(ptr noundef null, ptr noundef %10, ptr noundef %11, ptr noundef %12)
  %1298 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  store i32 %1297, ptr %1298, align 4
  %1299 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  %1300 = load i32, ptr %1299, align 4
  %1301 = call zeroext i1 @s2n_result_is_error(i32 %1300)
  br i1 %1301, label %1355, label %1302

1302:                                             ; preds = %1294
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

1304:                                             ; preds = %1303
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %1305 = call ptr @__errno_location() #11
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  store i32 %1306, ptr %37, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @s2n_print_stacktrace(ptr noundef %1307)
  %1309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1310 = trunc i8 %1309 to i1
  br i1 %1310, label %1311, label %1333

1311:                                             ; preds = %1304
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @fileno(ptr noundef %1312) #10
  %1314 = call i32 @isatty(i32 noundef %1313) #10
  %1315 = icmp ne i32 %1314, 0
  br i1 %1315, label %1316, label %1333

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

1333:                                             ; preds = %1311, %1304
  %1334 = load i32, ptr %37, align 4, !tbaa !5
  %1335 = call ptr @__errno_location() #11
  store i32 %1334, ptr %1335, align 4, !tbaa !5
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror(i32 noundef %1339, ptr noundef @.str.4)
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef @.str.4)
  %1344 = call ptr @__errno_location() #11
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @strerror(i32 noundef %1345) #10
  %1347 = call ptr @__errno_location() #11
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1336, ptr noundef @.str.5, i32 noundef %1337, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 43, ptr noundef %1340, ptr noundef %1343, ptr noundef %1346, i32 noundef %1348) #10
  br label %1350

1350:                                             ; preds = %1333, %1316
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1351

1351:                                             ; preds = %1350
  br label %1352

1352:                                             ; preds = %1351
  call void @exit(i32 noundef 1) #12
  unreachable

1353:                                             ; No predecessors!
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354, %1294
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  %1359 = load i32, ptr @test_count, align 4, !tbaa !5
  %1360 = add nsw i32 %1359, 1
  store i32 %1360, ptr @test_count, align 4, !tbaa !5
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = icmp eq i32 %1362, 0
  br i1 %1363, label %1364, label %1417

1364:                                             ; preds = %1358
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

1366:                                             ; preds = %1365
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1367 = call ptr @__errno_location() #11
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  store i32 %1368, ptr %38, align 4, !tbaa !5
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = call i32 @s2n_print_stacktrace(ptr noundef %1369)
  %1371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1372 = trunc i8 %1371 to i1
  br i1 %1372, label %1373, label %1395

1373:                                             ; preds = %1366
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = call i32 @fileno(ptr noundef %1374) #10
  %1376 = call i32 @isatty(i32 noundef %1375) #10
  %1377 = icmp ne i32 %1376, 0
  br i1 %1377, label %1378, label %1395

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

1395:                                             ; preds = %1373, %1366
  %1396 = load i32, ptr %38, align 4, !tbaa !5
  %1397 = call ptr @__errno_location() #11
  store i32 %1396, ptr %1397, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror(i32 noundef %1401, ptr noundef @.str.4)
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror_debug(i32 noundef %1404, ptr noundef @.str.4)
  %1406 = call ptr @__errno_location() #11
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #10
  %1409 = call ptr @__errno_location() #11
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1398, ptr noundef @.str.5, i32 noundef %1399, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 43, ptr noundef %1402, ptr noundef %1405, ptr noundef %1408, i32 noundef %1410) #10
  br label %1412

1412:                                             ; preds = %1395, %1378
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

1414:                                             ; preds = %1413
  call void @exit(i32 noundef 1) #12
  unreachable

1415:                                             ; No predecessors!
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

1417:                                             ; preds = %1416, %1358
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419
  %1421 = load i32, ptr @test_count, align 4, !tbaa !5
  %1422 = add nsw i32 %1421, 1
  store i32 %1422, ptr @test_count, align 4, !tbaa !5
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror_debug(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = icmp eq ptr %1425, null
  br i1 %1426, label %1427, label %1480

1427:                                             ; preds = %1420
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1430 = call ptr @__errno_location() #11
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  store i32 %1431, ptr %39, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = call i32 @s2n_print_stacktrace(ptr noundef %1432)
  %1434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1435 = trunc i8 %1434 to i1
  br i1 %1435, label %1436, label %1458

1436:                                             ; preds = %1429
  %1437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1438 = call i32 @fileno(ptr noundef %1437) #10
  %1439 = call i32 @isatty(i32 noundef %1438) #10
  %1440 = icmp ne i32 %1439, 0
  br i1 %1440, label %1441, label %1458

1441:                                             ; preds = %1436
  %1442 = load i32, ptr %39, align 4, !tbaa !5
  %1443 = call ptr @__errno_location() #11
  store i32 %1442, ptr %1443, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror(i32 noundef %1447, ptr noundef @.str.4)
  %1449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror_debug(i32 noundef %1450, ptr noundef @.str.4)
  %1452 = call ptr @__errno_location() #11
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @strerror(i32 noundef %1453) #10
  %1455 = call ptr @__errno_location() #11
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1444, ptr noundef @.str.2, i32 noundef %1445, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 43, ptr noundef %1448, ptr noundef %1451, ptr noundef %1454, i32 noundef %1456) #10
  br label %1475

1458:                                             ; preds = %1436, %1429
  %1459 = load i32, ptr %39, align 4, !tbaa !5
  %1460 = call ptr @__errno_location() #11
  store i32 %1459, ptr %1460, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef @.str.4)
  %1466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror_debug(i32 noundef %1467, ptr noundef @.str.4)
  %1469 = call ptr @__errno_location() #11
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @strerror(i32 noundef %1470) #10
  %1472 = call ptr @__errno_location() #11
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1461, ptr noundef @.str.5, i32 noundef %1462, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 43, ptr noundef %1465, ptr noundef %1468, ptr noundef %1471, i32 noundef %1473) #10
  br label %1475

1475:                                             ; preds = %1458, %1441
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476
  call void @exit(i32 noundef 1) #12
  unreachable

1478:                                             ; No predecessors!
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479, %1420
  br label %1481

1481:                                             ; preds = %1480
  br label %1482

1482:                                             ; preds = %1481
  br label %1483

1483:                                             ; preds = %1482
  %1484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1484, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1485 = call ptr @__errno_location() #11
  store i32 0, ptr %1485, align 4, !tbaa !5
  br label %1486

1486:                                             ; preds = %1483
  br label %1487

1487:                                             ; preds = %1486
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

1491:                                             ; preds = %1490
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = add nsw i32 %1492, 1
  store i32 %1493, ptr @test_count, align 4, !tbaa !5
  %1494 = call i32 @s2n_kex_server_key_send(ptr noundef null, ptr noundef %10, ptr noundef %11)
  %1495 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1494, ptr %1495, align 4
  %1496 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  %1497 = load i32, ptr %1496, align 4
  %1498 = call zeroext i1 @s2n_result_is_error(i32 %1497)
  br i1 %1498, label %1552, label %1499

1499:                                             ; preds = %1491
  br label %1500

1500:                                             ; preds = %1499
  br label %1501

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

1508:                                             ; preds = %1501
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = call i32 @fileno(ptr noundef %1509) #10
  %1511 = call i32 @isatty(i32 noundef %1510) #10
  %1512 = icmp ne i32 %1511, 0
  br i1 %1512, label %1513, label %1530

1513:                                             ; preds = %1508
  %1514 = load i32, ptr %41, align 4, !tbaa !5
  %1515 = call ptr @__errno_location() #11
  store i32 %1514, ptr %1515, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef @.str.4)
  %1521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror_debug(i32 noundef %1522, ptr noundef @.str.4)
  %1524 = call ptr @__errno_location() #11
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @strerror(i32 noundef %1525) #10
  %1527 = call ptr @__errno_location() #11
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef @.str.2, i32 noundef %1517, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 44, ptr noundef %1520, ptr noundef %1523, ptr noundef %1526, i32 noundef %1528) #10
  br label %1547

1530:                                             ; preds = %1508, %1501
  %1531 = load i32, ptr %41, align 4, !tbaa !5
  %1532 = call ptr @__errno_location() #11
  store i32 %1531, ptr %1532, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = load i32, ptr @test_count, align 4, !tbaa !5
  %1535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = call ptr @s2n_strerror(i32 noundef %1536, ptr noundef @.str.4)
  %1538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror_debug(i32 noundef %1539, ptr noundef @.str.4)
  %1541 = call ptr @__errno_location() #11
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = call ptr @strerror(i32 noundef %1542) #10
  %1544 = call ptr @__errno_location() #11
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1533, ptr noundef @.str.5, i32 noundef %1534, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 44, ptr noundef %1537, ptr noundef %1540, ptr noundef %1543, i32 noundef %1545) #10
  br label %1547

1547:                                             ; preds = %1530, %1513
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548
  call void @exit(i32 noundef 1) #12
  unreachable

1550:                                             ; No predecessors!
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551, %1491
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553
  br label %1555

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

1561:                                             ; preds = %1555
  br label %1562

1562:                                             ; preds = %1561
  br label %1563

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

1570:                                             ; preds = %1563
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = call i32 @fileno(ptr noundef %1571) #10
  %1573 = call i32 @isatty(i32 noundef %1572) #10
  %1574 = icmp ne i32 %1573, 0
  br i1 %1574, label %1575, label %1592

1575:                                             ; preds = %1570
  %1576 = load i32, ptr %42, align 4, !tbaa !5
  %1577 = call ptr @__errno_location() #11
  store i32 %1576, ptr %1577, align 4, !tbaa !5
  %1578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1579 = load i32, ptr @test_count, align 4, !tbaa !5
  %1580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1581 = load i32, ptr %1580, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror(i32 noundef %1581, ptr noundef @.str.4)
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror_debug(i32 noundef %1584, ptr noundef @.str.4)
  %1586 = call ptr @__errno_location() #11
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @strerror(i32 noundef %1587) #10
  %1589 = call ptr @__errno_location() #11
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1578, ptr noundef @.str.2, i32 noundef %1579, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 44, ptr noundef %1582, ptr noundef %1585, ptr noundef %1588, i32 noundef %1590) #10
  br label %1609

1592:                                             ; preds = %1570, %1563
  %1593 = load i32, ptr %42, align 4, !tbaa !5
  %1594 = call ptr @__errno_location() #11
  store i32 %1593, ptr %1594, align 4, !tbaa !5
  %1595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1596 = load i32, ptr @test_count, align 4, !tbaa !5
  %1597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror(i32 noundef %1598, ptr noundef @.str.4)
  %1600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror_debug(i32 noundef %1601, ptr noundef @.str.4)
  %1603 = call ptr @__errno_location() #11
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call ptr @strerror(i32 noundef %1604) #10
  %1606 = call ptr @__errno_location() #11
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1595, ptr noundef @.str.5, i32 noundef %1596, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 44, ptr noundef %1599, ptr noundef %1602, ptr noundef %1605, i32 noundef %1607) #10
  br label %1609

1609:                                             ; preds = %1592, %1575
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1610

1610:                                             ; preds = %1609
  br label %1611

1611:                                             ; preds = %1610
  call void @exit(i32 noundef 1) #12
  unreachable

1612:                                             ; No predecessors!
  br label %1613

1613:                                             ; preds = %1612
  br label %1614

1614:                                             ; preds = %1613, %1555
  br label %1615

1615:                                             ; preds = %1614
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

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

1624:                                             ; preds = %1617
  br label %1625

1625:                                             ; preds = %1624
  br label %1626

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

1633:                                             ; preds = %1626
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @fileno(ptr noundef %1634) #10
  %1636 = call i32 @isatty(i32 noundef %1635) #10
  %1637 = icmp ne i32 %1636, 0
  br i1 %1637, label %1638, label %1655

1638:                                             ; preds = %1633
  %1639 = load i32, ptr %43, align 4, !tbaa !5
  %1640 = call ptr @__errno_location() #11
  store i32 %1639, ptr %1640, align 4, !tbaa !5
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = load i32, ptr @test_count, align 4, !tbaa !5
  %1643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = call ptr @s2n_strerror(i32 noundef %1644, ptr noundef @.str.4)
  %1646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror_debug(i32 noundef %1647, ptr noundef @.str.4)
  %1649 = call ptr @__errno_location() #11
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call ptr @strerror(i32 noundef %1650) #10
  %1652 = call ptr @__errno_location() #11
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1641, ptr noundef @.str.2, i32 noundef %1642, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 44, ptr noundef %1645, ptr noundef %1648, ptr noundef %1651, i32 noundef %1653) #10
  br label %1672

1655:                                             ; preds = %1633, %1626
  %1656 = load i32, ptr %43, align 4, !tbaa !5
  %1657 = call ptr @__errno_location() #11
  store i32 %1656, ptr %1657, align 4, !tbaa !5
  %1658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call ptr @s2n_strerror(i32 noundef %1661, ptr noundef @.str.4)
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror_debug(i32 noundef %1664, ptr noundef @.str.4)
  %1666 = call ptr @__errno_location() #11
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @strerror(i32 noundef %1667) #10
  %1669 = call ptr @__errno_location() #11
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1658, ptr noundef @.str.5, i32 noundef %1659, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 44, ptr noundef %1662, ptr noundef %1665, ptr noundef %1668, i32 noundef %1670) #10
  br label %1672

1672:                                             ; preds = %1655, %1638
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673
  call void @exit(i32 noundef 1) #12
  unreachable

1675:                                             ; No predecessors!
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

1677:                                             ; preds = %1676, %1617
  br label %1678

1678:                                             ; preds = %1677
  br label %1679

1679:                                             ; preds = %1678
  br label %1680

1680:                                             ; preds = %1679
  %1681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1681, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1682 = call ptr @__errno_location() #11
  store i32 0, ptr %1682, align 4, !tbaa !5
  br label %1683

1683:                                             ; preds = %1680
  br label %1684

1684:                                             ; preds = %1683
  br label %1685

1685:                                             ; preds = %1684
  br label %1686

1686:                                             ; preds = %1685
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

1688:                                             ; preds = %1687
  %1689 = load i32, ptr @test_count, align 4, !tbaa !5
  %1690 = add nsw i32 %1689, 1
  store i32 %1690, ptr @test_count, align 4, !tbaa !5
  %1691 = call i32 @s2n_kex_client_key_recv(ptr noundef null, ptr noundef %10, ptr noundef %11)
  %1692 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  store i32 %1691, ptr %1692, align 4
  %1693 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  %1694 = load i32, ptr %1693, align 4
  %1695 = call zeroext i1 @s2n_result_is_error(i32 %1694)
  br i1 %1695, label %1749, label %1696

1696:                                             ; preds = %1688
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

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

1705:                                             ; preds = %1698
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = call i32 @fileno(ptr noundef %1706) #10
  %1708 = call i32 @isatty(i32 noundef %1707) #10
  %1709 = icmp ne i32 %1708, 0
  br i1 %1709, label %1710, label %1727

1710:                                             ; preds = %1705
  %1711 = load i32, ptr %45, align 4, !tbaa !5
  %1712 = call ptr @__errno_location() #11
  store i32 %1711, ptr %1712, align 4, !tbaa !5
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1716, ptr noundef @.str.4)
  %1718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  %1720 = call ptr @s2n_strerror_debug(i32 noundef %1719, ptr noundef @.str.4)
  %1721 = call ptr @__errno_location() #11
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @strerror(i32 noundef %1722) #10
  %1724 = call ptr @__errno_location() #11
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1713, ptr noundef @.str.2, i32 noundef %1714, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 45, ptr noundef %1717, ptr noundef %1720, ptr noundef %1723, i32 noundef %1725) #10
  br label %1744

1727:                                             ; preds = %1705, %1698
  %1728 = load i32, ptr %45, align 4, !tbaa !5
  %1729 = call ptr @__errno_location() #11
  store i32 %1728, ptr %1729, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = load i32, ptr @test_count, align 4, !tbaa !5
  %1732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call ptr @s2n_strerror(i32 noundef %1733, ptr noundef @.str.4)
  %1735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror_debug(i32 noundef %1736, ptr noundef @.str.4)
  %1738 = call ptr @__errno_location() #11
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = call ptr @strerror(i32 noundef %1739) #10
  %1741 = call ptr @__errno_location() #11
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1730, ptr noundef @.str.5, i32 noundef %1731, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 45, ptr noundef %1734, ptr noundef %1737, ptr noundef %1740, i32 noundef %1742) #10
  br label %1744

1744:                                             ; preds = %1727, %1710
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1745

1745:                                             ; preds = %1744
  br label %1746

1746:                                             ; preds = %1745
  call void @exit(i32 noundef 1) #12
  unreachable

1747:                                             ; No predecessors!
  br label %1748

1748:                                             ; preds = %1747
  br label %1749

1749:                                             ; preds = %1748, %1688
  br label %1750

1750:                                             ; preds = %1749
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751
  %1753 = load i32, ptr @test_count, align 4, !tbaa !5
  %1754 = add nsw i32 %1753, 1
  store i32 %1754, ptr @test_count, align 4, !tbaa !5
  %1755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = icmp eq i32 %1756, 0
  br i1 %1757, label %1758, label %1811

1758:                                             ; preds = %1752
  br label %1759

1759:                                             ; preds = %1758
  br label %1760

1760:                                             ; preds = %1759
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1761 = call ptr @__errno_location() #11
  %1762 = load i32, ptr %1761, align 4, !tbaa !5
  store i32 %1762, ptr %46, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = call i32 @s2n_print_stacktrace(ptr noundef %1763)
  %1765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1766 = trunc i8 %1765 to i1
  br i1 %1766, label %1767, label %1789

1767:                                             ; preds = %1760
  %1768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1769 = call i32 @fileno(ptr noundef %1768) #10
  %1770 = call i32 @isatty(i32 noundef %1769) #10
  %1771 = icmp ne i32 %1770, 0
  br i1 %1771, label %1772, label %1789

1772:                                             ; preds = %1767
  %1773 = load i32, ptr %46, align 4, !tbaa !5
  %1774 = call ptr @__errno_location() #11
  store i32 %1773, ptr %1774, align 4, !tbaa !5
  %1775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1776 = load i32, ptr @test_count, align 4, !tbaa !5
  %1777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @s2n_strerror(i32 noundef %1778, ptr noundef @.str.4)
  %1780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call ptr @s2n_strerror_debug(i32 noundef %1781, ptr noundef @.str.4)
  %1783 = call ptr @__errno_location() #11
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call ptr @strerror(i32 noundef %1784) #10
  %1786 = call ptr @__errno_location() #11
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1775, ptr noundef @.str.2, i32 noundef %1776, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 45, ptr noundef %1779, ptr noundef %1782, ptr noundef %1785, i32 noundef %1787) #10
  br label %1806

1789:                                             ; preds = %1767, %1760
  %1790 = load i32, ptr %46, align 4, !tbaa !5
  %1791 = call ptr @__errno_location() #11
  store i32 %1790, ptr %1791, align 4, !tbaa !5
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = load i32, ptr @test_count, align 4, !tbaa !5
  %1794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror(i32 noundef %1795, ptr noundef @.str.4)
  %1797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call ptr @s2n_strerror_debug(i32 noundef %1798, ptr noundef @.str.4)
  %1800 = call ptr @__errno_location() #11
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call ptr @strerror(i32 noundef %1801) #10
  %1803 = call ptr @__errno_location() #11
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1792, ptr noundef @.str.5, i32 noundef %1793, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 45, ptr noundef %1796, ptr noundef %1799, ptr noundef %1802, i32 noundef %1804) #10
  br label %1806

1806:                                             ; preds = %1789, %1772
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %1807

1807:                                             ; preds = %1806
  br label %1808

1808:                                             ; preds = %1807
  call void @exit(i32 noundef 1) #12
  unreachable

1809:                                             ; No predecessors!
  br label %1810

1810:                                             ; preds = %1809
  br label %1811

1811:                                             ; preds = %1810, %1752
  br label %1812

1812:                                             ; preds = %1811
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

1814:                                             ; preds = %1813
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = add nsw i32 %1815, 1
  store i32 %1816, ptr @test_count, align 4, !tbaa !5
  %1817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror_debug(i32 noundef %1818, ptr noundef @.str.4)
  %1820 = icmp eq ptr %1819, null
  br i1 %1820, label %1821, label %1874

1821:                                             ; preds = %1814
  br label %1822

1822:                                             ; preds = %1821
  br label %1823

1823:                                             ; preds = %1822
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %1824 = call ptr @__errno_location() #11
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  store i32 %1825, ptr %47, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = call i32 @s2n_print_stacktrace(ptr noundef %1826)
  %1828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1829 = trunc i8 %1828 to i1
  br i1 %1829, label %1830, label %1852

1830:                                             ; preds = %1823
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = call i32 @fileno(ptr noundef %1831) #10
  %1833 = call i32 @isatty(i32 noundef %1832) #10
  %1834 = icmp ne i32 %1833, 0
  br i1 %1834, label %1835, label %1852

1835:                                             ; preds = %1830
  %1836 = load i32, ptr %47, align 4, !tbaa !5
  %1837 = call ptr @__errno_location() #11
  store i32 %1836, ptr %1837, align 4, !tbaa !5
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = load i32, ptr @test_count, align 4, !tbaa !5
  %1840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror(i32 noundef %1841, ptr noundef @.str.4)
  %1843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror_debug(i32 noundef %1844, ptr noundef @.str.4)
  %1846 = call ptr @__errno_location() #11
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call ptr @strerror(i32 noundef %1847) #10
  %1849 = call ptr @__errno_location() #11
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1838, ptr noundef @.str.2, i32 noundef %1839, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 45, ptr noundef %1842, ptr noundef %1845, ptr noundef %1848, i32 noundef %1850) #10
  br label %1869

1852:                                             ; preds = %1830, %1823
  %1853 = load i32, ptr %47, align 4, !tbaa !5
  %1854 = call ptr @__errno_location() #11
  store i32 %1853, ptr %1854, align 4, !tbaa !5
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call ptr @s2n_strerror(i32 noundef %1858, ptr noundef @.str.4)
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror_debug(i32 noundef %1861, ptr noundef @.str.4)
  %1863 = call ptr @__errno_location() #11
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @strerror(i32 noundef %1864) #10
  %1866 = call ptr @__errno_location() #11
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1855, ptr noundef @.str.5, i32 noundef %1856, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 45, ptr noundef %1859, ptr noundef %1862, ptr noundef %1865, i32 noundef %1867) #10
  br label %1869

1869:                                             ; preds = %1852, %1835
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %1870

1870:                                             ; preds = %1869
  br label %1871

1871:                                             ; preds = %1870
  call void @exit(i32 noundef 1) #12
  unreachable

1872:                                             ; No predecessors!
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

1874:                                             ; preds = %1873, %1814
  br label %1875

1875:                                             ; preds = %1874
  br label %1876

1876:                                             ; preds = %1875
  br label %1877

1877:                                             ; preds = %1876
  %1878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1878, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1879 = call ptr @__errno_location() #11
  store i32 0, ptr %1879, align 4, !tbaa !5
  br label %1880

1880:                                             ; preds = %1877
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

1882:                                             ; preds = %1881
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

1884:                                             ; preds = %1883
  br label %1885

1885:                                             ; preds = %1884
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %1887 = add nsw i32 %1886, 1
  store i32 %1887, ptr @test_count, align 4, !tbaa !5
  %1888 = call i32 @s2n_kex_client_key_send(ptr noundef null, ptr noundef %10, ptr noundef %11)
  %1889 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  store i32 %1888, ptr %1889, align 4
  %1890 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  %1891 = load i32, ptr %1890, align 4
  %1892 = call zeroext i1 @s2n_result_is_error(i32 %1891)
  br i1 %1892, label %1946, label %1893

1893:                                             ; preds = %1885
  br label %1894

1894:                                             ; preds = %1893
  br label %1895

1895:                                             ; preds = %1894
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %1896 = call ptr @__errno_location() #11
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  store i32 %1897, ptr %49, align 4, !tbaa !5
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @s2n_print_stacktrace(ptr noundef %1898)
  %1900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1901 = trunc i8 %1900 to i1
  br i1 %1901, label %1902, label %1924

1902:                                             ; preds = %1895
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = call i32 @fileno(ptr noundef %1903) #10
  %1905 = call i32 @isatty(i32 noundef %1904) #10
  %1906 = icmp ne i32 %1905, 0
  br i1 %1906, label %1907, label %1924

1907:                                             ; preds = %1902
  %1908 = load i32, ptr %49, align 4, !tbaa !5
  %1909 = call ptr @__errno_location() #11
  store i32 %1908, ptr %1909, align 4, !tbaa !5
  %1910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1911 = load i32, ptr @test_count, align 4, !tbaa !5
  %1912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = call ptr @s2n_strerror(i32 noundef %1913, ptr noundef @.str.4)
  %1915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror_debug(i32 noundef %1916, ptr noundef @.str.4)
  %1918 = call ptr @__errno_location() #11
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @strerror(i32 noundef %1919) #10
  %1921 = call ptr @__errno_location() #11
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1910, ptr noundef @.str.2, i32 noundef %1911, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 46, ptr noundef %1914, ptr noundef %1917, ptr noundef %1920, i32 noundef %1922) #10
  br label %1941

1924:                                             ; preds = %1902, %1895
  %1925 = load i32, ptr %49, align 4, !tbaa !5
  %1926 = call ptr @__errno_location() #11
  store i32 %1925, ptr %1926, align 4, !tbaa !5
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = load i32, ptr @test_count, align 4, !tbaa !5
  %1929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror(i32 noundef %1930, ptr noundef @.str.4)
  %1932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @s2n_strerror_debug(i32 noundef %1933, ptr noundef @.str.4)
  %1935 = call ptr @__errno_location() #11
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call ptr @strerror(i32 noundef %1936) #10
  %1938 = call ptr @__errno_location() #11
  %1939 = load i32, ptr %1938, align 4, !tbaa !5
  %1940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1927, ptr noundef @.str.5, i32 noundef %1928, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 46, ptr noundef %1931, ptr noundef %1934, ptr noundef %1937, i32 noundef %1939) #10
  br label %1941

1941:                                             ; preds = %1924, %1907
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %1942

1942:                                             ; preds = %1941
  br label %1943

1943:                                             ; preds = %1942
  call void @exit(i32 noundef 1) #12
  unreachable

1944:                                             ; No predecessors!
  br label %1945

1945:                                             ; preds = %1944
  br label %1946

1946:                                             ; preds = %1945, %1885
  br label %1947

1947:                                             ; preds = %1946
  br label %1948

1948:                                             ; preds = %1947
  br label %1949

1949:                                             ; preds = %1948
  %1950 = load i32, ptr @test_count, align 4, !tbaa !5
  %1951 = add nsw i32 %1950, 1
  store i32 %1951, ptr @test_count, align 4, !tbaa !5
  %1952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = icmp eq i32 %1953, 0
  br i1 %1954, label %1955, label %2008

1955:                                             ; preds = %1949
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

1957:                                             ; preds = %1956
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %1958 = call ptr @__errno_location() #11
  %1959 = load i32, ptr %1958, align 4, !tbaa !5
  store i32 %1959, ptr %50, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = call i32 @s2n_print_stacktrace(ptr noundef %1960)
  %1962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1963 = trunc i8 %1962 to i1
  br i1 %1963, label %1964, label %1986

1964:                                             ; preds = %1957
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = call i32 @fileno(ptr noundef %1965) #10
  %1967 = call i32 @isatty(i32 noundef %1966) #10
  %1968 = icmp ne i32 %1967, 0
  br i1 %1968, label %1969, label %1986

1969:                                             ; preds = %1964
  %1970 = load i32, ptr %50, align 4, !tbaa !5
  %1971 = call ptr @__errno_location() #11
  store i32 %1970, ptr %1971, align 4, !tbaa !5
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = load i32, ptr @test_count, align 4, !tbaa !5
  %1974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1975 = load i32, ptr %1974, align 4, !tbaa !5
  %1976 = call ptr @s2n_strerror(i32 noundef %1975, ptr noundef @.str.4)
  %1977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1978 = load i32, ptr %1977, align 4, !tbaa !5
  %1979 = call ptr @s2n_strerror_debug(i32 noundef %1978, ptr noundef @.str.4)
  %1980 = call ptr @__errno_location() #11
  %1981 = load i32, ptr %1980, align 4, !tbaa !5
  %1982 = call ptr @strerror(i32 noundef %1981) #10
  %1983 = call ptr @__errno_location() #11
  %1984 = load i32, ptr %1983, align 4, !tbaa !5
  %1985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1972, ptr noundef @.str.2, i32 noundef %1973, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 46, ptr noundef %1976, ptr noundef %1979, ptr noundef %1982, i32 noundef %1984) #10
  br label %2003

1986:                                             ; preds = %1964, %1957
  %1987 = load i32, ptr %50, align 4, !tbaa !5
  %1988 = call ptr @__errno_location() #11
  store i32 %1987, ptr %1988, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = load i32, ptr @test_count, align 4, !tbaa !5
  %1991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  %1993 = call ptr @s2n_strerror(i32 noundef %1992, ptr noundef @.str.4)
  %1994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  %1996 = call ptr @s2n_strerror_debug(i32 noundef %1995, ptr noundef @.str.4)
  %1997 = call ptr @__errno_location() #11
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = call ptr @strerror(i32 noundef %1998) #10
  %2000 = call ptr @__errno_location() #11
  %2001 = load i32, ptr %2000, align 4, !tbaa !5
  %2002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1989, ptr noundef @.str.5, i32 noundef %1990, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 46, ptr noundef %1993, ptr noundef %1996, ptr noundef %1999, i32 noundef %2001) #10
  br label %2003

2003:                                             ; preds = %1986, %1969
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2004

2004:                                             ; preds = %2003
  br label %2005

2005:                                             ; preds = %2004
  call void @exit(i32 noundef 1) #12
  unreachable

2006:                                             ; No predecessors!
  br label %2007

2007:                                             ; preds = %2006
  br label %2008

2008:                                             ; preds = %2007, %1949
  br label %2009

2009:                                             ; preds = %2008
  br label %2010

2010:                                             ; preds = %2009
  br label %2011

2011:                                             ; preds = %2010
  %2012 = load i32, ptr @test_count, align 4, !tbaa !5
  %2013 = add nsw i32 %2012, 1
  store i32 %2013, ptr @test_count, align 4, !tbaa !5
  %2014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call ptr @s2n_strerror_debug(i32 noundef %2015, ptr noundef @.str.4)
  %2017 = icmp eq ptr %2016, null
  br i1 %2017, label %2018, label %2071

2018:                                             ; preds = %2011
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

2020:                                             ; preds = %2019
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2021 = call ptr @__errno_location() #11
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  store i32 %2022, ptr %51, align 4, !tbaa !5
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = call i32 @s2n_print_stacktrace(ptr noundef %2023)
  %2025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2026 = trunc i8 %2025 to i1
  br i1 %2026, label %2027, label %2049

2027:                                             ; preds = %2020
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = call i32 @fileno(ptr noundef %2028) #10
  %2030 = call i32 @isatty(i32 noundef %2029) #10
  %2031 = icmp ne i32 %2030, 0
  br i1 %2031, label %2032, label %2049

2032:                                             ; preds = %2027
  %2033 = load i32, ptr %51, align 4, !tbaa !5
  %2034 = call ptr @__errno_location() #11
  store i32 %2033, ptr %2034, align 4, !tbaa !5
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror(i32 noundef %2038, ptr noundef @.str.4)
  %2040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call ptr @s2n_strerror_debug(i32 noundef %2041, ptr noundef @.str.4)
  %2043 = call ptr @__errno_location() #11
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @strerror(i32 noundef %2044) #10
  %2046 = call ptr @__errno_location() #11
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2035, ptr noundef @.str.2, i32 noundef %2036, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 46, ptr noundef %2039, ptr noundef %2042, ptr noundef %2045, i32 noundef %2047) #10
  br label %2066

2049:                                             ; preds = %2027, %2020
  %2050 = load i32, ptr %51, align 4, !tbaa !5
  %2051 = call ptr @__errno_location() #11
  store i32 %2050, ptr %2051, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror(i32 noundef %2055, ptr noundef @.str.4)
  %2057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef @.str.4)
  %2060 = call ptr @__errno_location() #11
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @strerror(i32 noundef %2061) #10
  %2063 = call ptr @__errno_location() #11
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2052, ptr noundef @.str.5, i32 noundef %2053, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 46, ptr noundef %2056, ptr noundef %2059, ptr noundef %2062, i32 noundef %2064) #10
  br label %2066

2066:                                             ; preds = %2049, %2032
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2067

2067:                                             ; preds = %2066
  br label %2068

2068:                                             ; preds = %2067
  call void @exit(i32 noundef 1) #12
  unreachable

2069:                                             ; No predecessors!
  br label %2070

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070, %2011
  br label %2072

2072:                                             ; preds = %2071
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073
  %2075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2075, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2076 = call ptr @__errno_location() #11
  store i32 0, ptr %2076, align 4, !tbaa !5
  br label %2077

2077:                                             ; preds = %2074
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

2079:                                             ; preds = %2078
  br label %2080

2080:                                             ; preds = %2079
  br label %2081

2081:                                             ; preds = %2080
  br label %2082

2082:                                             ; preds = %2081
  %2083 = load i32, ptr @test_count, align 4, !tbaa !5
  %2084 = add nsw i32 %2083, 1
  store i32 %2084, ptr @test_count, align 4, !tbaa !5
  %2085 = call i32 @s2n_kex_tls_prf(ptr noundef null, ptr noundef %10, ptr noundef %11)
  %2086 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  store i32 %2085, ptr %2086, align 4
  %2087 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  %2088 = load i32, ptr %2087, align 4
  %2089 = call zeroext i1 @s2n_result_is_error(i32 %2088)
  br i1 %2089, label %2143, label %2090

2090:                                             ; preds = %2082
  br label %2091

2091:                                             ; preds = %2090
  br label %2092

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

2099:                                             ; preds = %2092
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = call i32 @fileno(ptr noundef %2100) #10
  %2102 = call i32 @isatty(i32 noundef %2101) #10
  %2103 = icmp ne i32 %2102, 0
  br i1 %2103, label %2104, label %2121

2104:                                             ; preds = %2099
  %2105 = load i32, ptr %53, align 4, !tbaa !5
  %2106 = call ptr @__errno_location() #11
  store i32 %2105, ptr %2106, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror(i32 noundef %2110, ptr noundef @.str.4)
  %2112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2113 = load i32, ptr %2112, align 4, !tbaa !5
  %2114 = call ptr @s2n_strerror_debug(i32 noundef %2113, ptr noundef @.str.4)
  %2115 = call ptr @__errno_location() #11
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @strerror(i32 noundef %2116) #10
  %2118 = call ptr @__errno_location() #11
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2107, ptr noundef @.str.2, i32 noundef %2108, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 47, ptr noundef %2111, ptr noundef %2114, ptr noundef %2117, i32 noundef %2119) #10
  br label %2138

2121:                                             ; preds = %2099, %2092
  %2122 = load i32, ptr %53, align 4, !tbaa !5
  %2123 = call ptr @__errno_location() #11
  store i32 %2122, ptr %2123, align 4, !tbaa !5
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = load i32, ptr @test_count, align 4, !tbaa !5
  %2126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2127 = load i32, ptr %2126, align 4, !tbaa !5
  %2128 = call ptr @s2n_strerror(i32 noundef %2127, ptr noundef @.str.4)
  %2129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2130 = load i32, ptr %2129, align 4, !tbaa !5
  %2131 = call ptr @s2n_strerror_debug(i32 noundef %2130, ptr noundef @.str.4)
  %2132 = call ptr @__errno_location() #11
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  %2134 = call ptr @strerror(i32 noundef %2133) #10
  %2135 = call ptr @__errno_location() #11
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2124, ptr noundef @.str.5, i32 noundef %2125, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 47, ptr noundef %2128, ptr noundef %2131, ptr noundef %2134, i32 noundef %2136) #10
  br label %2138

2138:                                             ; preds = %2121, %2104
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2139

2139:                                             ; preds = %2138
  br label %2140

2140:                                             ; preds = %2139
  call void @exit(i32 noundef 1) #12
  unreachable

2141:                                             ; No predecessors!
  br label %2142

2142:                                             ; preds = %2141
  br label %2143

2143:                                             ; preds = %2142, %2082
  br label %2144

2144:                                             ; preds = %2143
  br label %2145

2145:                                             ; preds = %2144
  br label %2146

2146:                                             ; preds = %2145
  %2147 = load i32, ptr @test_count, align 4, !tbaa !5
  %2148 = add nsw i32 %2147, 1
  store i32 %2148, ptr @test_count, align 4, !tbaa !5
  %2149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = icmp eq i32 %2150, 0
  br i1 %2151, label %2152, label %2205

2152:                                             ; preds = %2146
  br label %2153

2153:                                             ; preds = %2152
  br label %2154

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

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

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

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

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

2201:                                             ; preds = %2200
  br label %2202

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

2203:                                             ; No predecessors!
  br label %2204

2204:                                             ; preds = %2203
  br label %2205

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

2206:                                             ; preds = %2205
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = add nsw i32 %2209, 1
  store i32 %2210, ptr @test_count, align 4, !tbaa !5
  %2211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror_debug(i32 noundef %2212, ptr noundef @.str.4)
  %2214 = icmp eq ptr %2213, null
  br i1 %2214, label %2215, label %2268

2215:                                             ; preds = %2208
  br label %2216

2216:                                             ; preds = %2215
  br label %2217

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

2224:                                             ; preds = %2217
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = call i32 @fileno(ptr noundef %2225) #10
  %2227 = call i32 @isatty(i32 noundef %2226) #10
  %2228 = icmp ne i32 %2227, 0
  br i1 %2228, label %2229, label %2246

2229:                                             ; preds = %2224
  %2230 = load i32, ptr %55, align 4, !tbaa !5
  %2231 = call ptr @__errno_location() #11
  store i32 %2230, ptr %2231, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror(i32 noundef %2235, ptr noundef @.str.4)
  %2237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror_debug(i32 noundef %2238, ptr noundef @.str.4)
  %2240 = call ptr @__errno_location() #11
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @strerror(i32 noundef %2241) #10
  %2243 = call ptr @__errno_location() #11
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2232, ptr noundef @.str.2, i32 noundef %2233, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 47, ptr noundef %2236, ptr noundef %2239, ptr noundef %2242, i32 noundef %2244) #10
  br label %2263

2246:                                             ; preds = %2224, %2217
  %2247 = load i32, ptr %55, align 4, !tbaa !5
  %2248 = call ptr @__errno_location() #11
  store i32 %2247, ptr %2248, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call ptr @s2n_strerror(i32 noundef %2252, ptr noundef @.str.4)
  %2254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror_debug(i32 noundef %2255, ptr noundef @.str.4)
  %2257 = call ptr @__errno_location() #11
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @strerror(i32 noundef %2258) #10
  %2260 = call ptr @__errno_location() #11
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2249, ptr noundef @.str.5, i32 noundef %2250, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 47, ptr noundef %2253, ptr noundef %2256, ptr noundef %2259, i32 noundef %2261) #10
  br label %2263

2263:                                             ; preds = %2246, %2229
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2264

2264:                                             ; preds = %2263
  br label %2265

2265:                                             ; preds = %2264
  call void @exit(i32 noundef 1) #12
  unreachable

2266:                                             ; No predecessors!
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267, %2208
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

2270:                                             ; preds = %2269
  br label %2271

2271:                                             ; preds = %2270
  %2272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2272, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2273 = call ptr @__errno_location() #11
  store i32 0, ptr %2273, align 4, !tbaa !5
  br label %2274

2274:                                             ; preds = %2271
  br label %2275

2275:                                             ; preds = %2274
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

2277:                                             ; preds = %2276
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 104, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 168, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 4184, ptr %10) #10
  br label %2278

2278:                                             ; preds = %2277
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = add nsw i32 %2279, 1
  store i32 %2280, ptr @test_count, align 4, !tbaa !5
  %2281 = call zeroext i1 @s2n_kex_includes(ptr noundef null, ptr noundef null)
  br i1 %2281, label %2333, label %2282

2282:                                             ; preds = %2278
  br label %2283

2283:                                             ; preds = %2282
  br label %2284

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

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

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

2313:                                             ; preds = %2291, %2284
  %2314 = load i32, ptr %56, align 4, !tbaa !5
  %2315 = call ptr @__errno_location() #11
  store i32 %2314, ptr %2315, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror(i32 noundef %2319, ptr noundef @.str.4)
  %2321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef @.str.4)
  %2324 = call ptr @__errno_location() #11
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call ptr @strerror(i32 noundef %2325) #10
  %2327 = call ptr @__errno_location() #11
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2316, ptr noundef @.str.5, i32 noundef %2317, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 53, ptr noundef %2320, ptr noundef %2323, ptr noundef %2326, i32 noundef %2328) #10
  br label %2330

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

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

2332:                                             ; No predecessors!
  br label %2333

2333:                                             ; preds = %2332, %2278
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

2335:                                             ; preds = %2334
  %2336 = load i32, ptr @test_count, align 4, !tbaa !5
  %2337 = add nsw i32 %2336, 1
  store i32 %2337, ptr @test_count, align 4, !tbaa !5
  %2338 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_rsa, ptr noundef @s2n_rsa)
  br i1 %2338, label %2390, label %2339

2339:                                             ; preds = %2335
  br label %2340

2340:                                             ; preds = %2339
  br label %2341

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

2348:                                             ; preds = %2341
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = call i32 @fileno(ptr noundef %2349) #10
  %2351 = call i32 @isatty(i32 noundef %2350) #10
  %2352 = icmp ne i32 %2351, 0
  br i1 %2352, label %2353, label %2370

2353:                                             ; preds = %2348
  %2354 = load i32, ptr %57, align 4, !tbaa !5
  %2355 = call ptr @__errno_location() #11
  store i32 %2354, ptr %2355, align 4, !tbaa !5
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror(i32 noundef %2359, ptr noundef @.str.4)
  %2361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call ptr @s2n_strerror_debug(i32 noundef %2362, ptr noundef @.str.4)
  %2364 = call ptr @__errno_location() #11
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = call ptr @strerror(i32 noundef %2365) #10
  %2367 = call ptr @__errno_location() #11
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2356, ptr noundef @.str.2, i32 noundef %2357, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 54, ptr noundef %2360, ptr noundef %2363, ptr noundef %2366, i32 noundef %2368) #10
  br label %2387

2370:                                             ; preds = %2348, %2341
  %2371 = load i32, ptr %57, align 4, !tbaa !5
  %2372 = call ptr @__errno_location() #11
  store i32 %2371, ptr %2372, align 4, !tbaa !5
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = load i32, ptr @test_count, align 4, !tbaa !5
  %2375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @s2n_strerror(i32 noundef %2376, ptr noundef @.str.4)
  %2378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  %2380 = call ptr @s2n_strerror_debug(i32 noundef %2379, ptr noundef @.str.4)
  %2381 = call ptr @__errno_location() #11
  %2382 = load i32, ptr %2381, align 4, !tbaa !5
  %2383 = call ptr @strerror(i32 noundef %2382) #10
  %2384 = call ptr @__errno_location() #11
  %2385 = load i32, ptr %2384, align 4, !tbaa !5
  %2386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2373, ptr noundef @.str.5, i32 noundef %2374, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 54, ptr noundef %2377, ptr noundef %2380, ptr noundef %2383, i32 noundef %2385) #10
  br label %2387

2387:                                             ; preds = %2370, %2353
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2388

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

2389:                                             ; No predecessors!
  br label %2390

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

2391:                                             ; preds = %2390
  br label %2392

2392:                                             ; preds = %2391
  %2393 = load i32, ptr @test_count, align 4, !tbaa !5
  %2394 = add nsw i32 %2393, 1
  store i32 %2394, ptr @test_count, align 4, !tbaa !5
  %2395 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_hybrid_ecdhe_kem, ptr noundef @s2n_hybrid_ecdhe_kem)
  br i1 %2395, label %2447, label %2396

2396:                                             ; preds = %2392
  br label %2397

2397:                                             ; preds = %2396
  br label %2398

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

2405:                                             ; preds = %2398
  %2406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2407 = call i32 @fileno(ptr noundef %2406) #10
  %2408 = call i32 @isatty(i32 noundef %2407) #10
  %2409 = icmp ne i32 %2408, 0
  br i1 %2409, label %2410, label %2427

2410:                                             ; preds = %2405
  %2411 = load i32, ptr %58, align 4, !tbaa !5
  %2412 = call ptr @__errno_location() #11
  store i32 %2411, ptr %2412, align 4, !tbaa !5
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = load i32, ptr @test_count, align 4, !tbaa !5
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror(i32 noundef %2416, ptr noundef @.str.4)
  %2418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror_debug(i32 noundef %2419, ptr noundef @.str.4)
  %2421 = call ptr @__errno_location() #11
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @strerror(i32 noundef %2422) #10
  %2424 = call ptr @__errno_location() #11
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2413, ptr noundef @.str.2, i32 noundef %2414, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 55, ptr noundef %2417, ptr noundef %2420, ptr noundef %2423, i32 noundef %2425) #10
  br label %2444

2427:                                             ; preds = %2405, %2398
  %2428 = load i32, ptr %58, align 4, !tbaa !5
  %2429 = call ptr @__errno_location() #11
  store i32 %2428, ptr %2429, align 4, !tbaa !5
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = load i32, ptr @test_count, align 4, !tbaa !5
  %2432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror(i32 noundef %2433, ptr noundef @.str.4)
  %2435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror_debug(i32 noundef %2436, ptr noundef @.str.4)
  %2438 = call ptr @__errno_location() #11
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call ptr @strerror(i32 noundef %2439) #10
  %2441 = call ptr @__errno_location() #11
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2430, ptr noundef @.str.5, i32 noundef %2431, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 55, ptr noundef %2434, ptr noundef %2437, ptr noundef %2440, i32 noundef %2442) #10
  br label %2444

2444:                                             ; preds = %2427, %2410
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2445

2445:                                             ; preds = %2444
  call void @exit(i32 noundef 1) #12
  unreachable

2446:                                             ; No predecessors!
  br label %2447

2447:                                             ; preds = %2446, %2392
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

2449:                                             ; preds = %2448
  %2450 = load i32, ptr @test_count, align 4, !tbaa !5
  %2451 = add nsw i32 %2450, 1
  store i32 %2451, ptr @test_count, align 4, !tbaa !5
  %2452 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_rsa, ptr noundef @s2n_dhe)
  br i1 %2452, label %2453, label %2504

2453:                                             ; preds = %2449
  br label %2454

2454:                                             ; preds = %2453
  br label %2455

2455:                                             ; preds = %2454
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2456 = call ptr @__errno_location() #11
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  store i32 %2457, ptr %59, align 4, !tbaa !5
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = call i32 @s2n_print_stacktrace(ptr noundef %2458)
  %2460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2461 = trunc i8 %2460 to i1
  br i1 %2461, label %2462, label %2484

2462:                                             ; preds = %2455
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = call i32 @fileno(ptr noundef %2463) #10
  %2465 = call i32 @isatty(i32 noundef %2464) #10
  %2466 = icmp ne i32 %2465, 0
  br i1 %2466, label %2467, label %2484

2467:                                             ; preds = %2462
  %2468 = load i32, ptr %59, align 4, !tbaa !5
  %2469 = call ptr @__errno_location() #11
  store i32 %2468, ptr %2469, align 4, !tbaa !5
  %2470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2471 = load i32, ptr @test_count, align 4, !tbaa !5
  %2472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @s2n_strerror(i32 noundef %2473, ptr noundef @.str.4)
  %2475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @s2n_strerror_debug(i32 noundef %2476, ptr noundef @.str.4)
  %2478 = call ptr @__errno_location() #11
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @strerror(i32 noundef %2479) #10
  %2481 = call ptr @__errno_location() #11
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2470, ptr noundef @.str.2, i32 noundef %2471, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 58, ptr noundef %2474, ptr noundef %2477, ptr noundef %2480, i32 noundef %2482) #10
  br label %2501

2484:                                             ; preds = %2462, %2455
  %2485 = load i32, ptr %59, align 4, !tbaa !5
  %2486 = call ptr @__errno_location() #11
  store i32 %2485, ptr %2486, align 4, !tbaa !5
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = load i32, ptr @test_count, align 4, !tbaa !5
  %2489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call ptr @s2n_strerror(i32 noundef %2490, ptr noundef @.str.4)
  %2492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror_debug(i32 noundef %2493, ptr noundef @.str.4)
  %2495 = call ptr @__errno_location() #11
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @strerror(i32 noundef %2496) #10
  %2498 = call ptr @__errno_location() #11
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2487, ptr noundef @.str.5, i32 noundef %2488, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 58, ptr noundef %2491, ptr noundef %2494, ptr noundef %2497, i32 noundef %2499) #10
  br label %2501

2501:                                             ; preds = %2484, %2467
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2502

2502:                                             ; preds = %2501
  call void @exit(i32 noundef 1) #12
  unreachable

2503:                                             ; No predecessors!
  br label %2504

2504:                                             ; preds = %2503, %2449
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

2506:                                             ; preds = %2505
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = add nsw i32 %2507, 1
  store i32 %2508, ptr @test_count, align 4, !tbaa !5
  %2509 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_kem, ptr noundef @s2n_ecdhe)
  br i1 %2509, label %2510, label %2561

2510:                                             ; preds = %2506
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2513 = call ptr @__errno_location() #11
  %2514 = load i32, ptr %2513, align 4, !tbaa !5
  store i32 %2514, ptr %60, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = call i32 @s2n_print_stacktrace(ptr noundef %2515)
  %2517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2518 = trunc i8 %2517 to i1
  br i1 %2518, label %2519, label %2541

2519:                                             ; preds = %2512
  %2520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2521 = call i32 @fileno(ptr noundef %2520) #10
  %2522 = call i32 @isatty(i32 noundef %2521) #10
  %2523 = icmp ne i32 %2522, 0
  br i1 %2523, label %2524, label %2541

2524:                                             ; preds = %2519
  %2525 = load i32, ptr %60, align 4, !tbaa !5
  %2526 = call ptr @__errno_location() #11
  store i32 %2525, ptr %2526, align 4, !tbaa !5
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = load i32, ptr @test_count, align 4, !tbaa !5
  %2529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror(i32 noundef %2530, ptr noundef @.str.4)
  %2532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @s2n_strerror_debug(i32 noundef %2533, ptr noundef @.str.4)
  %2535 = call ptr @__errno_location() #11
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @strerror(i32 noundef %2536) #10
  %2538 = call ptr @__errno_location() #11
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2527, ptr noundef @.str.2, i32 noundef %2528, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 59, ptr noundef %2531, ptr noundef %2534, ptr noundef %2537, i32 noundef %2539) #10
  br label %2558

2541:                                             ; preds = %2519, %2512
  %2542 = load i32, ptr %60, align 4, !tbaa !5
  %2543 = call ptr @__errno_location() #11
  store i32 %2542, ptr %2543, align 4, !tbaa !5
  %2544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2545 = load i32, ptr @test_count, align 4, !tbaa !5
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror(i32 noundef %2547, ptr noundef @.str.4)
  %2549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @s2n_strerror_debug(i32 noundef %2550, ptr noundef @.str.4)
  %2552 = call ptr @__errno_location() #11
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call ptr @strerror(i32 noundef %2553) #10
  %2555 = call ptr @__errno_location() #11
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2544, ptr noundef @.str.5, i32 noundef %2545, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 59, ptr noundef %2548, ptr noundef %2551, ptr noundef %2554, i32 noundef %2556) #10
  br label %2558

2558:                                             ; preds = %2541, %2524
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2559

2559:                                             ; preds = %2558
  call void @exit(i32 noundef 1) #12
  unreachable

2560:                                             ; No predecessors!
  br label %2561

2561:                                             ; preds = %2560, %2506
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

2563:                                             ; preds = %2562
  %2564 = load i32, ptr @test_count, align 4, !tbaa !5
  %2565 = add nsw i32 %2564, 1
  store i32 %2565, ptr @test_count, align 4, !tbaa !5
  %2566 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_hybrid_ecdhe_kem, ptr noundef @s2n_ecdhe)
  br i1 %2566, label %2618, label %2567

2567:                                             ; preds = %2563
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2570 = call ptr @__errno_location() #11
  %2571 = load i32, ptr %2570, align 4, !tbaa !5
  store i32 %2571, ptr %61, align 4, !tbaa !5
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = call i32 @s2n_print_stacktrace(ptr noundef %2572)
  %2574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2575 = trunc i8 %2574 to i1
  br i1 %2575, label %2576, label %2598

2576:                                             ; preds = %2569
  %2577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2578 = call i32 @fileno(ptr noundef %2577) #10
  %2579 = call i32 @isatty(i32 noundef %2578) #10
  %2580 = icmp ne i32 %2579, 0
  br i1 %2580, label %2581, label %2598

2581:                                             ; preds = %2576
  %2582 = load i32, ptr %61, align 4, !tbaa !5
  %2583 = call ptr @__errno_location() #11
  store i32 %2582, ptr %2583, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror(i32 noundef %2587, ptr noundef @.str.4)
  %2589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror_debug(i32 noundef %2590, ptr noundef @.str.4)
  %2592 = call ptr @__errno_location() #11
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @strerror(i32 noundef %2593) #10
  %2595 = call ptr @__errno_location() #11
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2584, ptr noundef @.str.2, i32 noundef %2585, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 62, ptr noundef %2588, ptr noundef %2591, ptr noundef %2594, i32 noundef %2596) #10
  br label %2615

2598:                                             ; preds = %2576, %2569
  %2599 = load i32, ptr %61, align 4, !tbaa !5
  %2600 = call ptr @__errno_location() #11
  store i32 %2599, ptr %2600, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror(i32 noundef %2604, ptr noundef @.str.4)
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror_debug(i32 noundef %2607, ptr noundef @.str.4)
  %2609 = call ptr @__errno_location() #11
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @strerror(i32 noundef %2610) #10
  %2612 = call ptr @__errno_location() #11
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef @.str.5, i32 noundef %2602, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 62, ptr noundef %2605, ptr noundef %2608, ptr noundef %2611, i32 noundef %2613) #10
  br label %2615

2615:                                             ; preds = %2598, %2581
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2616

2616:                                             ; preds = %2615
  call void @exit(i32 noundef 1) #12
  unreachable

2617:                                             ; No predecessors!
  br label %2618

2618:                                             ; preds = %2617, %2563
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619
  %2621 = load i32, ptr @test_count, align 4, !tbaa !5
  %2622 = add nsw i32 %2621, 1
  store i32 %2622, ptr @test_count, align 4, !tbaa !5
  %2623 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_hybrid_ecdhe_kem, ptr noundef @s2n_kem)
  br i1 %2623, label %2675, label %2624

2624:                                             ; preds = %2620
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2627 = call ptr @__errno_location() #11
  %2628 = load i32, ptr %2627, align 4, !tbaa !5
  store i32 %2628, ptr %62, align 4, !tbaa !5
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = call i32 @s2n_print_stacktrace(ptr noundef %2629)
  %2631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2632 = trunc i8 %2631 to i1
  br i1 %2632, label %2633, label %2655

2633:                                             ; preds = %2626
  %2634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2635 = call i32 @fileno(ptr noundef %2634) #10
  %2636 = call i32 @isatty(i32 noundef %2635) #10
  %2637 = icmp ne i32 %2636, 0
  br i1 %2637, label %2638, label %2655

2638:                                             ; preds = %2633
  %2639 = load i32, ptr %62, align 4, !tbaa !5
  %2640 = call ptr @__errno_location() #11
  store i32 %2639, ptr %2640, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = load i32, ptr @test_count, align 4, !tbaa !5
  %2643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2644 = load i32, ptr %2643, align 4, !tbaa !5
  %2645 = call ptr @s2n_strerror(i32 noundef %2644, ptr noundef @.str.4)
  %2646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2647 = load i32, ptr %2646, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror_debug(i32 noundef %2647, ptr noundef @.str.4)
  %2649 = call ptr @__errno_location() #11
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  %2651 = call ptr @strerror(i32 noundef %2650) #10
  %2652 = call ptr @__errno_location() #11
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2641, ptr noundef @.str.2, i32 noundef %2642, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 63, ptr noundef %2645, ptr noundef %2648, ptr noundef %2651, i32 noundef %2653) #10
  br label %2672

2655:                                             ; preds = %2633, %2626
  %2656 = load i32, ptr %62, align 4, !tbaa !5
  %2657 = call ptr @__errno_location() #11
  store i32 %2656, ptr %2657, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = load i32, ptr @test_count, align 4, !tbaa !5
  %2660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2661 = load i32, ptr %2660, align 4, !tbaa !5
  %2662 = call ptr @s2n_strerror(i32 noundef %2661, ptr noundef @.str.4)
  %2663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call ptr @s2n_strerror_debug(i32 noundef %2664, ptr noundef @.str.4)
  %2666 = call ptr @__errno_location() #11
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @strerror(i32 noundef %2667) #10
  %2669 = call ptr @__errno_location() #11
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2658, ptr noundef @.str.5, i32 noundef %2659, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 63, ptr noundef %2662, ptr noundef %2665, ptr noundef %2668, i32 noundef %2670) #10
  br label %2672

2672:                                             ; preds = %2655, %2638
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2673

2673:                                             ; preds = %2672
  call void @exit(i32 noundef 1) #12
  unreachable

2674:                                             ; No predecessors!
  br label %2675

2675:                                             ; preds = %2674, %2620
  br label %2676

2676:                                             ; preds = %2675
  br label %2677

2677:                                             ; preds = %2676
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = add nsw i32 %2678, 1
  store i32 %2679, ptr @test_count, align 4, !tbaa !5
  %2680 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_ecdhe, ptr noundef @s2n_hybrid_ecdhe_kem)
  br i1 %2680, label %2681, label %2732

2681:                                             ; preds = %2677
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

2683:                                             ; preds = %2682
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2684 = call ptr @__errno_location() #11
  %2685 = load i32, ptr %2684, align 4, !tbaa !5
  store i32 %2685, ptr %63, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = call i32 @s2n_print_stacktrace(ptr noundef %2686)
  %2688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2689 = trunc i8 %2688 to i1
  br i1 %2689, label %2690, label %2712

2690:                                             ; preds = %2683
  %2691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2692 = call i32 @fileno(ptr noundef %2691) #10
  %2693 = call i32 @isatty(i32 noundef %2692) #10
  %2694 = icmp ne i32 %2693, 0
  br i1 %2694, label %2695, label %2712

2695:                                             ; preds = %2690
  %2696 = load i32, ptr %63, align 4, !tbaa !5
  %2697 = call ptr @__errno_location() #11
  store i32 %2696, ptr %2697, align 4, !tbaa !5
  %2698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2699 = load i32, ptr @test_count, align 4, !tbaa !5
  %2700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call ptr @s2n_strerror(i32 noundef %2701, ptr noundef @.str.4)
  %2703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef @.str.4)
  %2706 = call ptr @__errno_location() #11
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  %2708 = call ptr @strerror(i32 noundef %2707) #10
  %2709 = call ptr @__errno_location() #11
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2698, ptr noundef @.str.2, i32 noundef %2699, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 66, ptr noundef %2702, ptr noundef %2705, ptr noundef %2708, i32 noundef %2710) #10
  br label %2729

2712:                                             ; preds = %2690, %2683
  %2713 = load i32, ptr %63, align 4, !tbaa !5
  %2714 = call ptr @__errno_location() #11
  store i32 %2713, ptr %2714, align 4, !tbaa !5
  %2715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2716 = load i32, ptr @test_count, align 4, !tbaa !5
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror(i32 noundef %2718, ptr noundef @.str.4)
  %2720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @s2n_strerror_debug(i32 noundef %2721, ptr noundef @.str.4)
  %2723 = call ptr @__errno_location() #11
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call ptr @strerror(i32 noundef %2724) #10
  %2726 = call ptr @__errno_location() #11
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2715, ptr noundef @.str.5, i32 noundef %2716, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 66, ptr noundef %2719, ptr noundef %2722, ptr noundef %2725, i32 noundef %2727) #10
  br label %2729

2729:                                             ; preds = %2712, %2695
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2730

2730:                                             ; preds = %2729
  call void @exit(i32 noundef 1) #12
  unreachable

2731:                                             ; No predecessors!
  br label %2732

2732:                                             ; preds = %2731, %2677
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = add nsw i32 %2735, 1
  store i32 %2736, ptr @test_count, align 4, !tbaa !5
  %2737 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_kem, ptr noundef @s2n_hybrid_ecdhe_kem)
  br i1 %2737, label %2738, label %2789

2738:                                             ; preds = %2734
  br label %2739

2739:                                             ; preds = %2738
  br label %2740

2740:                                             ; preds = %2739
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %2741 = call ptr @__errno_location() #11
  %2742 = load i32, ptr %2741, align 4, !tbaa !5
  store i32 %2742, ptr %64, align 4, !tbaa !5
  %2743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2744 = call i32 @s2n_print_stacktrace(ptr noundef %2743)
  %2745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2746 = trunc i8 %2745 to i1
  br i1 %2746, label %2747, label %2769

2747:                                             ; preds = %2740
  %2748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2749 = call i32 @fileno(ptr noundef %2748) #10
  %2750 = call i32 @isatty(i32 noundef %2749) #10
  %2751 = icmp ne i32 %2750, 0
  br i1 %2751, label %2752, label %2769

2752:                                             ; preds = %2747
  %2753 = load i32, ptr %64, align 4, !tbaa !5
  %2754 = call ptr @__errno_location() #11
  store i32 %2753, ptr %2754, align 4, !tbaa !5
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = load i32, ptr @test_count, align 4, !tbaa !5
  %2757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror(i32 noundef %2758, ptr noundef @.str.4)
  %2760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror_debug(i32 noundef %2761, ptr noundef @.str.4)
  %2763 = call ptr @__errno_location() #11
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call ptr @strerror(i32 noundef %2764) #10
  %2766 = call ptr @__errno_location() #11
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2755, ptr noundef @.str.2, i32 noundef %2756, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 67, ptr noundef %2759, ptr noundef %2762, ptr noundef %2765, i32 noundef %2767) #10
  br label %2786

2769:                                             ; preds = %2747, %2740
  %2770 = load i32, ptr %64, align 4, !tbaa !5
  %2771 = call ptr @__errno_location() #11
  store i32 %2770, ptr %2771, align 4, !tbaa !5
  %2772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2773 = load i32, ptr @test_count, align 4, !tbaa !5
  %2774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call ptr @s2n_strerror(i32 noundef %2775, ptr noundef @.str.4)
  %2777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call ptr @s2n_strerror_debug(i32 noundef %2778, ptr noundef @.str.4)
  %2780 = call ptr @__errno_location() #11
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = call ptr @strerror(i32 noundef %2781) #10
  %2783 = call ptr @__errno_location() #11
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2772, ptr noundef @.str.5, i32 noundef %2773, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 67, ptr noundef %2776, ptr noundef %2779, ptr noundef %2782, i32 noundef %2784) #10
  br label %2786

2786:                                             ; preds = %2769, %2752
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2787

2787:                                             ; preds = %2786
  call void @exit(i32 noundef 1) #12
  unreachable

2788:                                             ; No predecessors!
  br label %2789

2789:                                             ; preds = %2788, %2734
  br label %2790

2790:                                             ; preds = %2789
  br label %2791

2791:                                             ; preds = %2790
  %2792 = load i32, ptr @test_count, align 4, !tbaa !5
  %2793 = add nsw i32 %2792, 1
  store i32 %2793, ptr @test_count, align 4, !tbaa !5
  %2794 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_hybrid_ecdhe_kem, ptr noundef @s2n_rsa)
  br i1 %2794, label %2795, label %2846

2795:                                             ; preds = %2791
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2798 = call ptr @__errno_location() #11
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  store i32 %2799, ptr %65, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = call i32 @s2n_print_stacktrace(ptr noundef %2800)
  %2802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2803 = trunc i8 %2802 to i1
  br i1 %2803, label %2804, label %2826

2804:                                             ; preds = %2797
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = call i32 @fileno(ptr noundef %2805) #10
  %2807 = call i32 @isatty(i32 noundef %2806) #10
  %2808 = icmp ne i32 %2807, 0
  br i1 %2808, label %2809, label %2826

2809:                                             ; preds = %2804
  %2810 = load i32, ptr %65, align 4, !tbaa !5
  %2811 = call ptr @__errno_location() #11
  store i32 %2810, ptr %2811, align 4, !tbaa !5
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = load i32, ptr @test_count, align 4, !tbaa !5
  %2814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2815 = load i32, ptr %2814, align 4, !tbaa !5
  %2816 = call ptr @s2n_strerror(i32 noundef %2815, ptr noundef @.str.4)
  %2817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call ptr @s2n_strerror_debug(i32 noundef %2818, ptr noundef @.str.4)
  %2820 = call ptr @__errno_location() #11
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call ptr @strerror(i32 noundef %2821) #10
  %2823 = call ptr @__errno_location() #11
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  %2825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2812, ptr noundef @.str.2, i32 noundef %2813, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 70, ptr noundef %2816, ptr noundef %2819, ptr noundef %2822, i32 noundef %2824) #10
  br label %2843

2826:                                             ; preds = %2804, %2797
  %2827 = load i32, ptr %65, align 4, !tbaa !5
  %2828 = call ptr @__errno_location() #11
  store i32 %2827, ptr %2828, align 4, !tbaa !5
  %2829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2830 = load i32, ptr @test_count, align 4, !tbaa !5
  %2831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = call ptr @s2n_strerror(i32 noundef %2832, ptr noundef @.str.4)
  %2834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call ptr @s2n_strerror_debug(i32 noundef %2835, ptr noundef @.str.4)
  %2837 = call ptr @__errno_location() #11
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call ptr @strerror(i32 noundef %2838) #10
  %2840 = call ptr @__errno_location() #11
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2829, ptr noundef @.str.5, i32 noundef %2830, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 70, ptr noundef %2833, ptr noundef %2836, ptr noundef %2839, i32 noundef %2841) #10
  br label %2843

2843:                                             ; preds = %2826, %2809
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2844

2844:                                             ; preds = %2843
  call void @exit(i32 noundef 1) #12
  unreachable

2845:                                             ; No predecessors!
  br label %2846

2846:                                             ; preds = %2845, %2791
  br label %2847

2847:                                             ; preds = %2846
  br label %2848

2848:                                             ; preds = %2847
  %2849 = load i32, ptr @test_count, align 4, !tbaa !5
  %2850 = add nsw i32 %2849, 1
  store i32 %2850, ptr @test_count, align 4, !tbaa !5
  %2851 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_hybrid_ecdhe_kem, ptr noundef @s2n_dhe)
  br i1 %2851, label %2852, label %2903

2852:                                             ; preds = %2848
  br label %2853

2853:                                             ; preds = %2852
  br label %2854

2854:                                             ; preds = %2853
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %2855 = call ptr @__errno_location() #11
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  store i32 %2856, ptr %66, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = call i32 @s2n_print_stacktrace(ptr noundef %2857)
  %2859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2860 = trunc i8 %2859 to i1
  br i1 %2860, label %2861, label %2883

2861:                                             ; preds = %2854
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = call i32 @fileno(ptr noundef %2862) #10
  %2864 = call i32 @isatty(i32 noundef %2863) #10
  %2865 = icmp ne i32 %2864, 0
  br i1 %2865, label %2866, label %2883

2866:                                             ; preds = %2861
  %2867 = load i32, ptr %66, align 4, !tbaa !5
  %2868 = call ptr @__errno_location() #11
  store i32 %2867, ptr %2868, align 4, !tbaa !5
  %2869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2870 = load i32, ptr @test_count, align 4, !tbaa !5
  %2871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call ptr @s2n_strerror(i32 noundef %2872, ptr noundef @.str.4)
  %2874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call ptr @s2n_strerror_debug(i32 noundef %2875, ptr noundef @.str.4)
  %2877 = call ptr @__errno_location() #11
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = call ptr @strerror(i32 noundef %2878) #10
  %2880 = call ptr @__errno_location() #11
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2869, ptr noundef @.str.2, i32 noundef %2870, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 71, ptr noundef %2873, ptr noundef %2876, ptr noundef %2879, i32 noundef %2881) #10
  br label %2900

2883:                                             ; preds = %2861, %2854
  %2884 = load i32, ptr %66, align 4, !tbaa !5
  %2885 = call ptr @__errno_location() #11
  store i32 %2884, ptr %2885, align 4, !tbaa !5
  %2886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2887 = load i32, ptr @test_count, align 4, !tbaa !5
  %2888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call ptr @s2n_strerror(i32 noundef %2889, ptr noundef @.str.4)
  %2891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror_debug(i32 noundef %2892, ptr noundef @.str.4)
  %2894 = call ptr @__errno_location() #11
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call ptr @strerror(i32 noundef %2895) #10
  %2897 = call ptr @__errno_location() #11
  %2898 = load i32, ptr %2897, align 4, !tbaa !5
  %2899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2886, ptr noundef @.str.5, i32 noundef %2887, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 71, ptr noundef %2890, ptr noundef %2893, ptr noundef %2896, i32 noundef %2898) #10
  br label %2900

2900:                                             ; preds = %2883, %2866
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %2901

2901:                                             ; preds = %2900
  call void @exit(i32 noundef 1) #12
  unreachable

2902:                                             ; No predecessors!
  br label %2903

2903:                                             ; preds = %2902, %2848
  br label %2904

2904:                                             ; preds = %2903
  br label %2905

2905:                                             ; preds = %2904
  %2906 = load i32, ptr @test_count, align 4, !tbaa !5
  %2907 = add nsw i32 %2906, 1
  store i32 %2907, ptr @test_count, align 4, !tbaa !5
  %2908 = call zeroext i1 @s2n_kex_includes(ptr noundef @s2n_rsa, ptr noundef null)
  br i1 %2908, label %2909, label %2960

2909:                                             ; preds = %2905
  br label %2910

2910:                                             ; preds = %2909
  br label %2911

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

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

2923:                                             ; preds = %2918
  %2924 = load i32, ptr %67, align 4, !tbaa !5
  %2925 = call ptr @__errno_location() #11
  store i32 %2924, ptr %2925, align 4, !tbaa !5
  %2926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2927 = load i32, ptr @test_count, align 4, !tbaa !5
  %2928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call ptr @s2n_strerror(i32 noundef %2929, ptr noundef @.str.4)
  %2931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = call ptr @s2n_strerror_debug(i32 noundef %2932, ptr noundef @.str.4)
  %2934 = call ptr @__errno_location() #11
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  %2936 = call ptr @strerror(i32 noundef %2935) #10
  %2937 = call ptr @__errno_location() #11
  %2938 = load i32, ptr %2937, align 4, !tbaa !5
  %2939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2926, ptr noundef @.str.2, i32 noundef %2927, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 74, ptr noundef %2930, ptr noundef %2933, ptr noundef %2936, i32 noundef %2938) #10
  br label %2957

2940:                                             ; preds = %2918, %2911
  %2941 = load i32, ptr %67, align 4, !tbaa !5
  %2942 = call ptr @__errno_location() #11
  store i32 %2941, ptr %2942, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef @.str.4)
  %2948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror_debug(i32 noundef %2949, ptr noundef @.str.4)
  %2951 = call ptr @__errno_location() #11
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @strerror(i32 noundef %2952) #10
  %2954 = call ptr @__errno_location() #11
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef @.str.5, i32 noundef %2944, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 74, ptr noundef %2947, ptr noundef %2950, ptr noundef %2953, i32 noundef %2955) #10
  br label %2957

2957:                                             ; preds = %2940, %2923
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %2958

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

2959:                                             ; No predecessors!
  br label %2960

2960:                                             ; preds = %2959, %2905
  br label %2961

2961:                                             ; preds = %2960
  br label %2962

2962:                                             ; preds = %2961
  %2963 = load i32, ptr @test_count, align 4, !tbaa !5
  %2964 = add nsw i32 %2963, 1
  store i32 %2964, ptr @test_count, align 4, !tbaa !5
  %2965 = call zeroext i1 @s2n_kex_includes(ptr noundef null, ptr noundef @s2n_rsa)
  br i1 %2965, label %2966, label %3017

2966:                                             ; preds = %2962
  br label %2967

2967:                                             ; preds = %2966
  br label %2968

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

2975:                                             ; preds = %2968
  %2976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2977 = call i32 @fileno(ptr noundef %2976) #10
  %2978 = call i32 @isatty(i32 noundef %2977) #10
  %2979 = icmp ne i32 %2978, 0
  br i1 %2979, label %2980, label %2997

2980:                                             ; preds = %2975
  %2981 = load i32, ptr %68, align 4, !tbaa !5
  %2982 = call ptr @__errno_location() #11
  store i32 %2981, ptr %2982, align 4, !tbaa !5
  %2983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2984 = load i32, ptr @test_count, align 4, !tbaa !5
  %2985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call ptr @s2n_strerror(i32 noundef %2986, ptr noundef @.str.4)
  %2988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  %2990 = call ptr @s2n_strerror_debug(i32 noundef %2989, ptr noundef @.str.4)
  %2991 = call ptr @__errno_location() #11
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  %2993 = call ptr @strerror(i32 noundef %2992) #10
  %2994 = call ptr @__errno_location() #11
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2983, ptr noundef @.str.2, i32 noundef %2984, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 75, ptr noundef %2987, ptr noundef %2990, ptr noundef %2993, i32 noundef %2995) #10
  br label %3014

2997:                                             ; preds = %2975, %2968
  %2998 = load i32, ptr %68, align 4, !tbaa !5
  %2999 = call ptr @__errno_location() #11
  store i32 %2998, ptr %2999, align 4, !tbaa !5
  %3000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3001 = load i32, ptr @test_count, align 4, !tbaa !5
  %3002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3003 = load i32, ptr %3002, align 4, !tbaa !5
  %3004 = call ptr @s2n_strerror(i32 noundef %3003, ptr noundef @.str.4)
  %3005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  %3007 = call ptr @s2n_strerror_debug(i32 noundef %3006, ptr noundef @.str.4)
  %3008 = call ptr @__errno_location() #11
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  %3010 = call ptr @strerror(i32 noundef %3009) #10
  %3011 = call ptr @__errno_location() #11
  %3012 = load i32, ptr %3011, align 4, !tbaa !5
  %3013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3000, ptr noundef @.str.5, i32 noundef %3001, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 75, ptr noundef %3004, ptr noundef %3007, ptr noundef %3010, i32 noundef %3012) #10
  br label %3014

3014:                                             ; preds = %2997, %2980
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %3015

3015:                                             ; preds = %3014
  call void @exit(i32 noundef 1) #12
  unreachable

3016:                                             ; No predecessors!
  br label %3017

3017:                                             ; preds = %3016, %2962
  br label %3018

3018:                                             ; preds = %3017
  br label %3019

3019:                                             ; preds = %3018
  br label %3020

3020:                                             ; preds = %3019
  %3021 = call i32 @s2n_cleanup()
  %3022 = icmp eq i32 %3021, -1
  br i1 %3022, label %3023, label %3074

3023:                                             ; preds = %3020
  br label %3024

3024:                                             ; preds = %3023
  br label %3025

3025:                                             ; preds = %3024
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %3026 = call ptr @__errno_location() #11
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  store i32 %3027, ptr %69, align 4, !tbaa !5
  %3028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3029 = call i32 @s2n_print_stacktrace(ptr noundef %3028)
  %3030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3031 = trunc i8 %3030 to i1
  br i1 %3031, label %3032, label %3054

3032:                                             ; preds = %3025
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = call i32 @fileno(ptr noundef %3033) #10
  %3035 = call i32 @isatty(i32 noundef %3034) #10
  %3036 = icmp ne i32 %3035, 0
  br i1 %3036, label %3037, label %3054

3037:                                             ; preds = %3032
  %3038 = load i32, ptr %69, align 4, !tbaa !5
  %3039 = call ptr @__errno_location() #11
  store i32 %3038, ptr %3039, align 4, !tbaa !5
  %3040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3041 = load i32, ptr @test_count, align 4, !tbaa !5
  %3042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3043 = load i32, ptr %3042, align 4, !tbaa !5
  %3044 = call ptr @s2n_strerror(i32 noundef %3043, ptr noundef @.str.4)
  %3045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3046 = load i32, ptr %3045, align 4, !tbaa !5
  %3047 = call ptr @s2n_strerror_debug(i32 noundef %3046, ptr noundef @.str.4)
  %3048 = call ptr @__errno_location() #11
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call ptr @strerror(i32 noundef %3049) #10
  %3051 = call ptr @__errno_location() #11
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3040, ptr noundef @.str.2, i32 noundef %3041, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 78, ptr noundef %3044, ptr noundef %3047, ptr noundef %3050, i32 noundef %3052) #10
  br label %3071

3054:                                             ; preds = %3032, %3025
  %3055 = load i32, ptr %69, align 4, !tbaa !5
  %3056 = call ptr @__errno_location() #11
  store i32 %3055, ptr %3056, align 4, !tbaa !5
  %3057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3058 = load i32, ptr @test_count, align 4, !tbaa !5
  %3059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call ptr @s2n_strerror(i32 noundef %3060, ptr noundef @.str.4)
  %3062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call ptr @s2n_strerror_debug(i32 noundef %3063, ptr noundef @.str.4)
  %3065 = call ptr @__errno_location() #11
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  %3067 = call ptr @strerror(i32 noundef %3066) #10
  %3068 = call ptr @__errno_location() #11
  %3069 = load i32, ptr %3068, align 4, !tbaa !5
  %3070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3057, ptr noundef @.str.5, i32 noundef %3058, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 78, ptr noundef %3061, ptr noundef %3064, ptr noundef %3067, i32 noundef %3069) #10
  br label %3071

3071:                                             ; preds = %3054, %3037
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %3072

3072:                                             ; preds = %3071
  call void @exit(i32 noundef 1) #12
  unreachable

3073:                                             ; No predecessors!
  br label %3074

3074:                                             ; preds = %3073, %3020
  br label %3075

3075:                                             ; preds = %3074
  br label %3076

3076:                                             ; preds = %3075
  br label %3077

3077:                                             ; preds = %3076
  %3078 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3079 = icmp eq i32 %3078, -1
  br i1 %3079, label %3080, label %3131

3080:                                             ; preds = %3077
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

3082:                                             ; preds = %3081
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %3083 = call ptr @__errno_location() #11
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  store i32 %3084, ptr %70, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = call i32 @s2n_print_stacktrace(ptr noundef %3085)
  %3087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3088 = trunc i8 %3087 to i1
  br i1 %3088, label %3089, label %3111

3089:                                             ; preds = %3082
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = call i32 @fileno(ptr noundef %3090) #10
  %3092 = call i32 @isatty(i32 noundef %3091) #10
  %3093 = icmp ne i32 %3092, 0
  br i1 %3093, label %3094, label %3111

3094:                                             ; preds = %3089
  %3095 = load i32, ptr %70, align 4, !tbaa !5
  %3096 = call ptr @__errno_location() #11
  store i32 %3095, ptr %3096, align 4, !tbaa !5
  %3097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3098 = load i32, ptr @test_count, align 4, !tbaa !5
  %3099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3100 = load i32, ptr %3099, align 4, !tbaa !5
  %3101 = call ptr @s2n_strerror(i32 noundef %3100, ptr noundef @.str.4)
  %3102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror_debug(i32 noundef %3103, ptr noundef @.str.4)
  %3105 = call ptr @__errno_location() #11
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call ptr @strerror(i32 noundef %3106) #10
  %3108 = call ptr @__errno_location() #11
  %3109 = load i32, ptr %3108, align 4, !tbaa !5
  %3110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3097, ptr noundef @.str.2, i32 noundef %3098, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 78, ptr noundef %3101, ptr noundef %3104, ptr noundef %3107, i32 noundef %3109) #10
  br label %3128

3111:                                             ; preds = %3089, %3082
  %3112 = load i32, ptr %70, align 4, !tbaa !5
  %3113 = call ptr @__errno_location() #11
  store i32 %3112, ptr %3113, align 4, !tbaa !5
  %3114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3115 = load i32, ptr @test_count, align 4, !tbaa !5
  %3116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3117 = load i32, ptr %3116, align 4, !tbaa !5
  %3118 = call ptr @s2n_strerror(i32 noundef %3117, ptr noundef @.str.4)
  %3119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3120 = load i32, ptr %3119, align 4, !tbaa !5
  %3121 = call ptr @s2n_strerror_debug(i32 noundef %3120, ptr noundef @.str.4)
  %3122 = call ptr @__errno_location() #11
  %3123 = load i32, ptr %3122, align 4, !tbaa !5
  %3124 = call ptr @strerror(i32 noundef %3123) #10
  %3125 = call ptr @__errno_location() #11
  %3126 = load i32, ptr %3125, align 4, !tbaa !5
  %3127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3114, ptr noundef @.str.5, i32 noundef %3115, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 78, ptr noundef %3118, ptr noundef %3121, ptr noundef %3124, i32 noundef %3126) #10
  br label %3128

3128:                                             ; preds = %3111, %3094
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %3129

3129:                                             ; preds = %3128
  call void @exit(i32 noundef 1) #12
  unreachable

3130:                                             ; No predecessors!
  br label %3131

3131:                                             ; preds = %3130, %3077
  br label %3132

3132:                                             ; preds = %3131
  %3133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3134 = trunc i8 %3133 to i1
  br i1 %3134, label %3135, label %3151

3135:                                             ; preds = %3132
  %3136 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3137 = call i32 @fileno(ptr noundef %3136) #10
  %3138 = call i32 @isatty(i32 noundef %3137) #10
  %3139 = icmp ne i32 %3138, 0
  br i1 %3139, label %3140, label %3151

3140:                                             ; preds = %3135
  %3141 = load i32, ptr @test_count, align 4, !tbaa !5
  %3142 = icmp ne i32 %3141, 0
  br i1 %3142, label %3143, label %3147

3143:                                             ; preds = %3140
  %3144 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3145 = load i32, ptr @test_count, align 4, !tbaa !5
  %3146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3144, ptr noundef @.str.36, i32 noundef %3145) #10
  br label %3150

3147:                                             ; preds = %3140
  %3148 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3148, ptr noundef @.str.37) #10
  br label %3150

3150:                                             ; preds = %3147, %3143
  br label %3162

3151:                                             ; preds = %3135, %3132
  %3152 = load i32, ptr @test_count, align 4, !tbaa !5
  %3153 = icmp ne i32 %3152, 0
  br i1 %3153, label %3154, label %3158

3154:                                             ; preds = %3151
  %3155 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3156 = load i32, ptr @test_count, align 4, !tbaa !5
  %3157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3155, ptr noundef @.str.38, i32 noundef %3156) #10
  br label %3161

3158:                                             ; preds = %3151
  %3159 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3159, ptr noundef @.str.39) #10
  br label %3161

3161:                                             ; preds = %3158, %3154
  br label %3162

3162:                                             ; preds = %3161, %3150
  store i32 0, ptr %3, align 4
  br label %3164

3163:                                             ; No predecessors!
  br label %3164

3164:                                             ; preds = %3163, %3162
  %3165 = load i32, ptr %3, align 4
  ret i32 %3165
}

; 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 i32 @s2n_disable_tls13_in_test(...) #2

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

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

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

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

declare void @s2n_debug_info_reset() #2

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

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

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

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

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

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

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

declare zeroext i1 @s2n_kex_includes(ptr noundef, ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { 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 = !{i64 0, i64 1, !16, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 2, !16, i64 32, i64 8, !9, i64 40, i64 4, !5, i64 48, i64 8, !9, i64 56, i64 16, !16, i64 72, i64 1, !16, i64 80, i64 8, !9, i64 88, i64 8, !9, i64 96, i64 4, !5, i64 100, i64 1, !16}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !10, i64 32}
!18 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}


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

%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_kex = type { i8, [2 x ptr], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%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 }
%struct.s2n_kex_raw_server_data = type { %struct.s2n_ecdhe_raw_server_params, %struct.s2n_dhe_raw_server_points, %struct.s2n_kem_raw_server_params }
%struct.s2n_ecdhe_raw_server_params = type { %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dhe_raw_server_points = type { %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_kem_raw_server_params = type { %struct.s2n_blob, %struct.s2n_blob }

@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 [71 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_ecdhe_rsa_with_aes_256_cbc_sha = external local_unnamed_addr global %struct.s2n_cipher_suite, align 8
@.str.9 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_rsa = external constant %struct.s2n_kex, align 8
@.str.14 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [50 x i8], align 1
@s2n_hybrid_ecdhe_kem = external constant %struct.s2n_kex, align 8
@.str.23 = external hidden unnamed_addr constant [76 x i8], align 1
@s2n_dhe = external constant %struct.s2n_kex, align 8
@.str.24 = external hidden unnamed_addr constant [53 x i8], align 1
@s2n_kem = external constant %struct.s2n_kex, align 8
@s2n_ecdhe = external constant %struct.s2n_kex, align 8
@.str.25 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = 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 %struct.s2n_connection, align 8
  %4 = alloca %struct.s2n_blob, align 8
  %5 = alloca %struct.s2n_kex_raw_server_data, align 8
  %6 = alloca %struct.s2n_cipher_suite, align 8
  %7 = alloca i8, align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %8 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %10 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11 = tail call i32 @fflush(ptr noundef %10)
  %12 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %13 = icmp eq i32 %12, -1
  br i1 %13, label %14, label %38

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

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

25:                                               ; preds = %21, %14
  br label %26

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

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

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

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

54:                                               ; preds = %50, %43
  br label %55

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

67:                                               ; preds = %38
  %68 = tail call i32 @s2n_init() #11
  %69 = icmp eq i32 %68, -1
  br i1 %69, label %70, label %94

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

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

81:                                               ; preds = %77, %70
  br label %82

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

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

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

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

110:                                              ; preds = %106, %99
  br label %111

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

123:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %3) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %3, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %5) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(168) %5, i8 0, i64 168, i1 false)
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %6) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %6, ptr noundef nonnull align 8 dereferenceable(104) @s2n_ecdhe_rsa_with_aes_256_cbc_sha, i64 104, i1 false)
  %124 = getelementptr inbounds i8, ptr %6, i64 32
  store ptr null, ptr %124, align 8, !tbaa !15
  %125 = load i32, ptr @test_count, align 4, !tbaa !5
  %126 = add nsw i32 %125, 1
  store i32 %126, ptr @test_count, align 4, !tbaa !5
  %127 = call i32 @s2n_configure_kex(ptr noundef null, ptr noundef nonnull %3) #11
  %128 = call zeroext i1 @s2n_result_is_error(i32 %127)
  br i1 %128, label %153, label %129

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

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

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

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

153:                                              ; preds = %123
  %154 = load i32, ptr @test_count, align 4, !tbaa !5
  %155 = add nsw i32 %154, 1
  store i32 %155, ptr @test_count, align 4, !tbaa !5
  %156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = icmp eq i32 %157, 0
  br i1 %158, label %159, label %182

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

166:                                              ; preds = %159
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = call i32 @fileno(ptr noundef %167) #11
  %169 = call i32 @isatty(i32 noundef %168) #11
  %.not155 = icmp eq i32 %169, 0
  br i1 %.not155, label %170, label %171

170:                                              ; preds = %166, %159
  br label %171

171:                                              ; preds = %166, %170
  %.str.5.sink214 = phi ptr [ @.str.5, %170 ], [ @.str.2, %166 ]
  store i32 %161, ptr %160, align 4, !tbaa !5
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = load i32, ptr @test_count, align 4, !tbaa !5
  %174 = load i32, ptr %156, align 4, !tbaa !5
  %175 = call ptr @s2n_strerror(i32 noundef %174, ptr noundef nonnull @.str.4) #11
  %176 = load i32, ptr %156, align 4, !tbaa !5
  %177 = call ptr @s2n_strerror_debug(i32 noundef %176, ptr noundef nonnull @.str.4) #11
  %178 = load i32, ptr %160, align 4, !tbaa !5
  %179 = call ptr @strerror(i32 noundef %178) #11
  %180 = load i32, ptr %160, align 4, !tbaa !5
  %181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %172, ptr noundef nonnull %.str.5.sink214, i32 noundef %173, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %175, ptr noundef %177, ptr noundef %179, i32 noundef %180) #13
  call void @exit(i32 noundef 1) #14
  unreachable

182:                                              ; preds = %153
  %183 = add nsw i32 %154, 2
  store i32 %183, ptr @test_count, align 4, !tbaa !5
  %184 = call ptr @s2n_strerror_debug(i32 noundef %157, ptr noundef nonnull @.str.4) #11
  %185 = icmp eq ptr %184, null
  br i1 %185, label %186, label %209

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

193:                                              ; preds = %186
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = call i32 @fileno(ptr noundef %194) #11
  %196 = call i32 @isatty(i32 noundef %195) #11
  %.not154 = icmp eq i32 %196, 0
  br i1 %.not154, label %197, label %198

197:                                              ; preds = %193, %186
  br label %198

198:                                              ; preds = %193, %197
  %.str.5.sink223 = phi ptr [ @.str.5, %197 ], [ @.str.2, %193 ]
  store i32 %188, ptr %187, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = load i32, ptr @test_count, align 4, !tbaa !5
  %201 = load i32, ptr %156, align 4, !tbaa !5
  %202 = call ptr @s2n_strerror(i32 noundef %201, ptr noundef nonnull @.str.4) #11
  %203 = load i32, ptr %156, align 4, !tbaa !5
  %204 = call ptr @s2n_strerror_debug(i32 noundef %203, ptr noundef nonnull @.str.4) #11
  %205 = load i32, ptr %187, align 4, !tbaa !5
  %206 = call ptr @strerror(i32 noundef %205) #11
  %207 = load i32, ptr %187, align 4, !tbaa !5
  %208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %199, ptr noundef nonnull %.str.5.sink223, i32 noundef %200, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %202, ptr noundef %204, ptr noundef %206, i32 noundef %207) #13
  call void @exit(i32 noundef 1) #14
  unreachable

209:                                              ; preds = %182
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %210 = tail call ptr @__errno_location() #12
  store i32 0, ptr %210, align 4, !tbaa !5
  %211 = load i32, ptr @test_count, align 4, !tbaa !5
  %212 = add nsw i32 %211, 1
  store i32 %212, ptr @test_count, align 4, !tbaa !5
  %213 = call i32 @s2n_configure_kex(ptr noundef nonnull %6, ptr noundef null) #11
  %214 = call zeroext i1 @s2n_result_is_error(i32 %213)
  br i1 %214, label %237, label %215

215:                                              ; preds = %209
  %216 = load i32, ptr %210, align 4, !tbaa !5
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = call i32 @s2n_print_stacktrace(ptr noundef %217) #11
  %219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %220 = trunc nuw i8 %219 to i1
  br i1 %220, label %221, label %225

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

225:                                              ; preds = %221, %215
  br label %226

226:                                              ; preds = %221, %225
  %.str.5.sink232 = phi ptr [ @.str.5, %225 ], [ @.str.2, %221 ]
  store i32 %216, ptr %210, align 4, !tbaa !5
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = load i32, ptr @test_count, align 4, !tbaa !5
  %229 = load i32, ptr %156, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror(i32 noundef %229, ptr noundef nonnull @.str.4) #11
  %231 = load i32, ptr %156, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror_debug(i32 noundef %231, ptr noundef nonnull @.str.4) #11
  %233 = load i32, ptr %210, align 4, !tbaa !5
  %234 = call ptr @strerror(i32 noundef %233) #11
  %235 = load i32, ptr %210, align 4, !tbaa !5
  %236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %227, ptr noundef nonnull %.str.5.sink232, i32 noundef %228, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %230, ptr noundef %232, ptr noundef %234, i32 noundef %235) #13
  call void @exit(i32 noundef 1) #14
  unreachable

237:                                              ; preds = %209
  %238 = load i32, ptr @test_count, align 4, !tbaa !5
  %239 = add nsw i32 %238, 1
  store i32 %239, ptr @test_count, align 4, !tbaa !5
  %240 = load i32, ptr %156, align 4, !tbaa !5
  %241 = icmp eq i32 %240, 0
  br i1 %241, label %242, label %264

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

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

252:                                              ; preds = %248, %242
  br label %253

253:                                              ; preds = %248, %252
  %.str.5.sink241 = phi ptr [ @.str.5, %252 ], [ @.str.2, %248 ]
  store i32 %243, ptr %210, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = load i32, ptr %156, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror(i32 noundef %256, ptr noundef nonnull @.str.4) #11
  %258 = load i32, ptr %156, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror_debug(i32 noundef %258, ptr noundef nonnull @.str.4) #11
  %260 = load i32, ptr %210, align 4, !tbaa !5
  %261 = call ptr @strerror(i32 noundef %260) #11
  %262 = load i32, ptr %210, align 4, !tbaa !5
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef nonnull %.str.5.sink241, i32 noundef %255, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %257, ptr noundef %259, ptr noundef %261, i32 noundef %262) #13
  call void @exit(i32 noundef 1) #14
  unreachable

264:                                              ; preds = %237
  %265 = add nsw i32 %238, 2
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror_debug(i32 noundef %240, ptr noundef nonnull @.str.4) #11
  %267 = icmp eq ptr %266, null
  br i1 %267, label %268, label %290

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

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

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

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

290:                                              ; preds = %264
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %210, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #11
  store i8 0, ptr %7, align 1, !tbaa !11
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = add nsw i32 %291, 1
  store i32 %292, ptr @test_count, align 4, !tbaa !5
  %293 = call i32 @s2n_kex_is_ephemeral(ptr noundef null, ptr noundef nonnull %7) #11
  %294 = call zeroext i1 @s2n_result_is_error(i32 %293)
  br i1 %294, label %317, label %295

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

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

305:                                              ; preds = %301, %295
  br label %306

306:                                              ; preds = %301, %305
  %.str.5.sink259 = phi ptr [ @.str.5, %305 ], [ @.str.2, %301 ]
  store i32 %296, ptr %210, align 4, !tbaa !5
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = load i32, ptr %156, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror(i32 noundef %309, ptr noundef nonnull @.str.4) #11
  %311 = load i32, ptr %156, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror_debug(i32 noundef %311, ptr noundef nonnull @.str.4) #11
  %313 = load i32, ptr %210, align 4, !tbaa !5
  %314 = call ptr @strerror(i32 noundef %313) #11
  %315 = load i32, ptr %210, align 4, !tbaa !5
  %316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %307, ptr noundef nonnull %.str.5.sink259, i32 noundef %308, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %310, ptr noundef %312, ptr noundef %314, i32 noundef %315) #13
  call void @exit(i32 noundef 1) #14
  unreachable

317:                                              ; preds = %290
  %318 = load i32, ptr @test_count, align 4, !tbaa !5
  %319 = add nsw i32 %318, 1
  store i32 %319, ptr @test_count, align 4, !tbaa !5
  %320 = load i32, ptr %156, align 4, !tbaa !5
  %321 = icmp eq i32 %320, 0
  br i1 %321, label %322, label %344

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

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

332:                                              ; preds = %328, %322
  br label %333

333:                                              ; preds = %328, %332
  %.str.5.sink268 = phi ptr [ @.str.5, %332 ], [ @.str.2, %328 ]
  store i32 %323, ptr %210, align 4, !tbaa !5
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = load i32, ptr @test_count, align 4, !tbaa !5
  %336 = load i32, ptr %156, align 4, !tbaa !5
  %337 = call ptr @s2n_strerror(i32 noundef %336, ptr noundef nonnull @.str.4) #11
  %338 = load i32, ptr %156, align 4, !tbaa !5
  %339 = call ptr @s2n_strerror_debug(i32 noundef %338, ptr noundef nonnull @.str.4) #11
  %340 = load i32, ptr %210, align 4, !tbaa !5
  %341 = call ptr @strerror(i32 noundef %340) #11
  %342 = load i32, ptr %210, align 4, !tbaa !5
  %343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %334, ptr noundef nonnull %.str.5.sink268, i32 noundef %335, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %337, ptr noundef %339, ptr noundef %341, i32 noundef %342) #13
  call void @exit(i32 noundef 1) #14
  unreachable

344:                                              ; preds = %317
  %345 = add nsw i32 %318, 2
  store i32 %345, ptr @test_count, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror_debug(i32 noundef %320, ptr noundef nonnull @.str.4) #11
  %347 = icmp eq ptr %346, null
  br i1 %347, label %348, label %370

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

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

358:                                              ; preds = %354, %348
  br label %359

359:                                              ; preds = %354, %358
  %.str.5.sink277 = phi ptr [ @.str.5, %358 ], [ @.str.2, %354 ]
  store i32 %349, ptr %210, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = load i32, ptr @test_count, align 4, !tbaa !5
  %362 = load i32, ptr %156, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror(i32 noundef %362, ptr noundef nonnull @.str.4) #11
  %364 = load i32, ptr %156, align 4, !tbaa !5
  %365 = call ptr @s2n_strerror_debug(i32 noundef %364, ptr noundef nonnull @.str.4) #11
  %366 = load i32, ptr %210, align 4, !tbaa !5
  %367 = call ptr @strerror(i32 noundef %366) #11
  %368 = load i32, ptr %210, align 4, !tbaa !5
  %369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %360, ptr noundef nonnull %.str.5.sink277, i32 noundef %361, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %363, ptr noundef %365, ptr noundef %367, i32 noundef %368) #13
  call void @exit(i32 noundef 1) #14
  unreachable

370:                                              ; preds = %344
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %210, align 4, !tbaa !5
  %371 = load i32, ptr @test_count, align 4, !tbaa !5
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr @test_count, align 4, !tbaa !5
  %373 = call i32 @s2n_kex_is_ephemeral(ptr noundef nonnull @s2n_rsa, ptr noundef null) #11
  %374 = call zeroext i1 @s2n_result_is_error(i32 %373)
  br i1 %374, label %397, label %375

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

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

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

386:                                              ; preds = %381, %385
  %.str.5.sink286 = phi ptr [ @.str.5, %385 ], [ @.str.2, %381 ]
  store i32 %376, ptr %210, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = load i32, ptr %156, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror(i32 noundef %389, ptr noundef nonnull @.str.4) #11
  %391 = load i32, ptr %156, align 4, !tbaa !5
  %392 = call ptr @s2n_strerror_debug(i32 noundef %391, ptr noundef nonnull @.str.4) #11
  %393 = load i32, ptr %210, align 4, !tbaa !5
  %394 = call ptr @strerror(i32 noundef %393) #11
  %395 = load i32, ptr %210, align 4, !tbaa !5
  %396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %387, ptr noundef nonnull %.str.5.sink286, i32 noundef %388, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %390, ptr noundef %392, ptr noundef %394, i32 noundef %395) #13
  call void @exit(i32 noundef 1) #14
  unreachable

397:                                              ; preds = %370
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = add nsw i32 %398, 1
  store i32 %399, ptr @test_count, align 4, !tbaa !5
  %400 = load i32, ptr %156, align 4, !tbaa !5
  %401 = icmp eq i32 %400, 0
  br i1 %401, label %402, label %424

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

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

412:                                              ; preds = %408, %402
  br label %413

413:                                              ; preds = %408, %412
  %.str.5.sink295 = phi ptr [ @.str.5, %412 ], [ @.str.2, %408 ]
  store i32 %403, ptr %210, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = load i32, ptr %156, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror(i32 noundef %416, ptr noundef nonnull @.str.4) #11
  %418 = load i32, ptr %156, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror_debug(i32 noundef %418, ptr noundef nonnull @.str.4) #11
  %420 = load i32, ptr %210, align 4, !tbaa !5
  %421 = call ptr @strerror(i32 noundef %420) #11
  %422 = load i32, ptr %210, align 4, !tbaa !5
  %423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef nonnull %.str.5.sink295, i32 noundef %415, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %417, ptr noundef %419, ptr noundef %421, i32 noundef %422) #13
  call void @exit(i32 noundef 1) #14
  unreachable

424:                                              ; preds = %397
  %425 = add nsw i32 %398, 2
  store i32 %425, ptr @test_count, align 4, !tbaa !5
  %426 = call ptr @s2n_strerror_debug(i32 noundef %400, ptr noundef nonnull @.str.4) #11
  %427 = icmp eq ptr %426, null
  br i1 %427, label %428, label %450

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

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

438:                                              ; preds = %434, %428
  br label %439

439:                                              ; preds = %434, %438
  %.str.5.sink304 = phi ptr [ @.str.5, %438 ], [ @.str.2, %434 ]
  store i32 %429, ptr %210, align 4, !tbaa !5
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = load i32, ptr @test_count, align 4, !tbaa !5
  %442 = load i32, ptr %156, align 4, !tbaa !5
  %443 = call ptr @s2n_strerror(i32 noundef %442, ptr noundef nonnull @.str.4) #11
  %444 = load i32, ptr %156, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror_debug(i32 noundef %444, ptr noundef nonnull @.str.4) #11
  %446 = load i32, ptr %210, align 4, !tbaa !5
  %447 = call ptr @strerror(i32 noundef %446) #11
  %448 = load i32, ptr %210, align 4, !tbaa !5
  %449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %440, ptr noundef nonnull %.str.5.sink304, i32 noundef %441, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %443, ptr noundef %445, ptr noundef %447, i32 noundef %448) #13
  call void @exit(i32 noundef 1) #14
  unreachable

450:                                              ; preds = %424
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %210, align 4, !tbaa !5
  %451 = load i32, ptr @test_count, align 4, !tbaa !5
  %452 = add nsw i32 %451, 1
  store i32 %452, ptr @test_count, align 4, !tbaa !5
  %453 = call i32 @s2n_kex_server_key_recv_parse_data(ptr noundef null, ptr noundef nonnull %3, ptr noundef nonnull %5) #11
  %454 = call zeroext i1 @s2n_result_is_error(i32 %453)
  br i1 %454, label %477, label %455

455:                                              ; preds = %450
  %456 = load i32, ptr %210, align 4, !tbaa !5
  %457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %458 = call i32 @s2n_print_stacktrace(ptr noundef %457) #11
  %459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %460 = trunc nuw i8 %459 to i1
  br i1 %460, label %461, label %465

461:                                              ; preds = %455
  %462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %463 = call i32 @fileno(ptr noundef %462) #11
  %464 = call i32 @isatty(i32 noundef %463) #11
  %.not112 = icmp eq i32 %464, 0
  br i1 %.not112, label %465, label %466

465:                                              ; preds = %461, %455
  br label %466

466:                                              ; preds = %461, %465
  %.str.5.sink313 = phi ptr [ @.str.5, %465 ], [ @.str.2, %461 ]
  store i32 %456, ptr %210, align 4, !tbaa !5
  %467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %468 = load i32, ptr @test_count, align 4, !tbaa !5
  %469 = load i32, ptr %156, align 4, !tbaa !5
  %470 = call ptr @s2n_strerror(i32 noundef %469, ptr noundef nonnull @.str.4) #11
  %471 = load i32, ptr %156, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror_debug(i32 noundef %471, ptr noundef nonnull @.str.4) #11
  %473 = load i32, ptr %210, align 4, !tbaa !5
  %474 = call ptr @strerror(i32 noundef %473) #11
  %475 = load i32, ptr %210, align 4, !tbaa !5
  %476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %467, ptr noundef nonnull %.str.5.sink313, i32 noundef %468, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %470, ptr noundef %472, ptr noundef %474, i32 noundef %475) #13
  call void @exit(i32 noundef 1) #14
  unreachable

477:                                              ; preds = %450
  %478 = load i32, ptr @test_count, align 4, !tbaa !5
  %479 = add nsw i32 %478, 1
  store i32 %479, ptr @test_count, align 4, !tbaa !5
  %480 = load i32, ptr %156, align 4, !tbaa !5
  %481 = icmp eq i32 %480, 0
  br i1 %481, label %482, label %504

482:                                              ; preds = %477
  %483 = load i32, ptr %210, align 4, !tbaa !5
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = call i32 @s2n_print_stacktrace(ptr noundef %484) #11
  %486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %487 = trunc nuw i8 %486 to i1
  br i1 %487, label %488, label %492

488:                                              ; preds = %482
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @fileno(ptr noundef %489) #11
  %491 = call i32 @isatty(i32 noundef %490) #11
  %.not147 = icmp eq i32 %491, 0
  br i1 %.not147, label %492, label %493

492:                                              ; preds = %488, %482
  br label %493

493:                                              ; preds = %488, %492
  %.str.5.sink322 = phi ptr [ @.str.5, %492 ], [ @.str.2, %488 ]
  store i32 %483, ptr %210, align 4, !tbaa !5
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = load i32, ptr %156, align 4, !tbaa !5
  %497 = call ptr @s2n_strerror(i32 noundef %496, ptr noundef nonnull @.str.4) #11
  %498 = load i32, ptr %156, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror_debug(i32 noundef %498, ptr noundef nonnull @.str.4) #11
  %500 = load i32, ptr %210, align 4, !tbaa !5
  %501 = call ptr @strerror(i32 noundef %500) #11
  %502 = load i32, ptr %210, align 4, !tbaa !5
  %503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %494, ptr noundef nonnull %.str.5.sink322, i32 noundef %495, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %497, ptr noundef %499, ptr noundef %501, i32 noundef %502) #13
  call void @exit(i32 noundef 1) #14
  unreachable

504:                                              ; preds = %477
  %505 = add nsw i32 %478, 2
  store i32 %505, ptr @test_count, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror_debug(i32 noundef %480, ptr noundef nonnull @.str.4) #11
  %507 = icmp eq ptr %506, null
  br i1 %507, label %508, label %530

508:                                              ; preds = %504
  %509 = load i32, ptr %210, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = call i32 @s2n_print_stacktrace(ptr noundef %510) #11
  %512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %513 = trunc nuw i8 %512 to i1
  br i1 %513, label %514, label %518

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

518:                                              ; preds = %514, %508
  br label %519

519:                                              ; preds = %514, %518
  %.str.5.sink331 = phi ptr [ @.str.5, %518 ], [ @.str.2, %514 ]
  store i32 %509, ptr %210, align 4, !tbaa !5
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = load i32, ptr %156, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror(i32 noundef %522, ptr noundef nonnull @.str.4) #11
  %524 = load i32, ptr %156, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror_debug(i32 noundef %524, ptr noundef nonnull @.str.4) #11
  %526 = load i32, ptr %210, align 4, !tbaa !5
  %527 = call ptr @strerror(i32 noundef %526) #11
  %528 = load i32, ptr %210, align 4, !tbaa !5
  %529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %520, ptr noundef nonnull %.str.5.sink331, i32 noundef %521, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %523, ptr noundef %525, ptr noundef %527, i32 noundef %528) #13
  call void @exit(i32 noundef 1) #14
  unreachable

530:                                              ; preds = %504
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %210, align 4, !tbaa !5
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %532 = add nsw i32 %531, 1
  store i32 %532, ptr @test_count, align 4, !tbaa !5
  %533 = call i32 @s2n_kex_server_key_recv_read_data(ptr noundef null, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5) #11
  %534 = call zeroext i1 @s2n_result_is_error(i32 %533)
  br i1 %534, label %557, label %535

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

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

545:                                              ; preds = %541, %535
  br label %546

546:                                              ; preds = %541, %545
  %.str.5.sink340 = phi ptr [ @.str.5, %545 ], [ @.str.2, %541 ]
  store i32 %536, ptr %210, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = load i32, ptr @test_count, align 4, !tbaa !5
  %549 = load i32, ptr %156, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror(i32 noundef %549, ptr noundef nonnull @.str.4) #11
  %551 = load i32, ptr %156, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror_debug(i32 noundef %551, ptr noundef nonnull @.str.4) #11
  %553 = load i32, ptr %210, align 4, !tbaa !5
  %554 = call ptr @strerror(i32 noundef %553) #11
  %555 = load i32, ptr %210, align 4, !tbaa !5
  %556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %547, ptr noundef nonnull %.str.5.sink340, i32 noundef %548, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %550, ptr noundef %552, ptr noundef %554, i32 noundef %555) #13
  call void @exit(i32 noundef 1) #14
  unreachable

557:                                              ; preds = %530
  %558 = load i32, ptr @test_count, align 4, !tbaa !5
  %559 = add nsw i32 %558, 1
  store i32 %559, ptr @test_count, align 4, !tbaa !5
  %560 = load i32, ptr %156, align 4, !tbaa !5
  %561 = icmp eq i32 %560, 0
  br i1 %561, label %562, label %584

562:                                              ; preds = %557
  %563 = load i32, ptr %210, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = call i32 @s2n_print_stacktrace(ptr noundef %564) #11
  %566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %567 = trunc nuw i8 %566 to i1
  br i1 %567, label %568, label %572

568:                                              ; preds = %562
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = call i32 @fileno(ptr noundef %569) #11
  %571 = call i32 @isatty(i32 noundef %570) #11
  %.not145 = icmp eq i32 %571, 0
  br i1 %.not145, label %572, label %573

572:                                              ; preds = %568, %562
  br label %573

573:                                              ; preds = %568, %572
  %.str.5.sink349 = phi ptr [ @.str.5, %572 ], [ @.str.2, %568 ]
  store i32 %563, ptr %210, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = load i32, ptr %156, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror(i32 noundef %576, ptr noundef nonnull @.str.4) #11
  %578 = load i32, ptr %156, align 4, !tbaa !5
  %579 = call ptr @s2n_strerror_debug(i32 noundef %578, ptr noundef nonnull @.str.4) #11
  %580 = load i32, ptr %210, align 4, !tbaa !5
  %581 = call ptr @strerror(i32 noundef %580) #11
  %582 = load i32, ptr %210, align 4, !tbaa !5
  %583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %574, ptr noundef nonnull %.str.5.sink349, i32 noundef %575, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %577, ptr noundef %579, ptr noundef %581, i32 noundef %582) #13
  call void @exit(i32 noundef 1) #14
  unreachable

584:                                              ; preds = %557
  %585 = add nsw i32 %558, 2
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror_debug(i32 noundef %560, ptr noundef nonnull @.str.4) #11
  %587 = icmp eq ptr %586, null
  br i1 %587, label %588, label %610

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

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

598:                                              ; preds = %594, %588
  br label %599

599:                                              ; preds = %594, %598
  %.str.5.sink358 = phi ptr [ @.str.5, %598 ], [ @.str.2, %594 ]
  store i32 %589, ptr %210, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = load i32, ptr @test_count, align 4, !tbaa !5
  %602 = load i32, ptr %156, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef nonnull @.str.4) #11
  %604 = load i32, ptr %156, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror_debug(i32 noundef %604, ptr noundef nonnull @.str.4) #11
  %606 = load i32, ptr %210, align 4, !tbaa !5
  %607 = call ptr @strerror(i32 noundef %606) #11
  %608 = load i32, ptr %210, align 4, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %600, ptr noundef nonnull %.str.5.sink358, i32 noundef %601, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %603, ptr noundef %605, ptr noundef %607, i32 noundef %608) #13
  call void @exit(i32 noundef 1) #14
  unreachable

610:                                              ; preds = %584
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %210, align 4, !tbaa !5
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr @test_count, align 4, !tbaa !5
  %613 = call i32 @s2n_kex_server_key_send(ptr noundef null, ptr noundef nonnull %3, ptr noundef nonnull %4) #11
  %614 = call zeroext i1 @s2n_result_is_error(i32 %613)
  br i1 %614, label %637, label %615

615:                                              ; preds = %610
  %616 = load i32, ptr %210, align 4, !tbaa !5
  %617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %618 = call i32 @s2n_print_stacktrace(ptr noundef %617) #11
  %619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %620 = trunc nuw i8 %619 to i1
  br i1 %620, label %621, label %625

621:                                              ; preds = %615
  %622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %623 = call i32 @fileno(ptr noundef %622) #11
  %624 = call i32 @isatty(i32 noundef %623) #11
  %.not114 = icmp eq i32 %624, 0
  br i1 %.not114, label %625, label %626

625:                                              ; preds = %621, %615
  br label %626

626:                                              ; preds = %621, %625
  %.str.5.sink367 = phi ptr [ @.str.5, %625 ], [ @.str.2, %621 ]
  store i32 %616, ptr %210, align 4, !tbaa !5
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = load i32, ptr %156, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror(i32 noundef %629, ptr noundef nonnull @.str.4) #11
  %631 = load i32, ptr %156, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror_debug(i32 noundef %631, ptr noundef nonnull @.str.4) #11
  %633 = load i32, ptr %210, align 4, !tbaa !5
  %634 = call ptr @strerror(i32 noundef %633) #11
  %635 = load i32, ptr %210, align 4, !tbaa !5
  %636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %627, ptr noundef nonnull %.str.5.sink367, i32 noundef %628, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %630, ptr noundef %632, ptr noundef %634, i32 noundef %635) #13
  call void @exit(i32 noundef 1) #14
  unreachable

637:                                              ; preds = %610
  %638 = load i32, ptr @test_count, align 4, !tbaa !5
  %639 = add nsw i32 %638, 1
  store i32 %639, ptr @test_count, align 4, !tbaa !5
  %640 = load i32, ptr %156, align 4, !tbaa !5
  %641 = icmp eq i32 %640, 0
  br i1 %641, label %642, label %664

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

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

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

653:                                              ; preds = %648, %652
  %.str.5.sink376 = phi ptr [ @.str.5, %652 ], [ @.str.2, %648 ]
  store i32 %643, ptr %210, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = load i32, ptr %156, align 4, !tbaa !5
  %657 = call ptr @s2n_strerror(i32 noundef %656, ptr noundef nonnull @.str.4) #11
  %658 = load i32, ptr %156, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef nonnull @.str.4) #11
  %660 = load i32, ptr %210, align 4, !tbaa !5
  %661 = call ptr @strerror(i32 noundef %660) #11
  %662 = load i32, ptr %210, align 4, !tbaa !5
  %663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef nonnull %.str.5.sink376, i32 noundef %655, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %657, ptr noundef %659, ptr noundef %661, i32 noundef %662) #13
  call void @exit(i32 noundef 1) #14
  unreachable

664:                                              ; preds = %637
  %665 = add nsw i32 %638, 2
  store i32 %665, ptr @test_count, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror_debug(i32 noundef %640, ptr noundef nonnull @.str.4) #11
  %667 = icmp eq ptr %666, null
  br i1 %667, label %668, label %690

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

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

678:                                              ; preds = %674, %668
  br label %679

679:                                              ; preds = %674, %678
  %.str.5.sink385 = phi ptr [ @.str.5, %678 ], [ @.str.2, %674 ]
  store i32 %669, ptr %210, align 4, !tbaa !5
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = load i32, ptr %156, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror(i32 noundef %682, ptr noundef nonnull @.str.4) #11
  %684 = load i32, ptr %156, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror_debug(i32 noundef %684, ptr noundef nonnull @.str.4) #11
  %686 = load i32, ptr %210, align 4, !tbaa !5
  %687 = call ptr @strerror(i32 noundef %686) #11
  %688 = load i32, ptr %210, align 4, !tbaa !5
  %689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef nonnull %.str.5.sink385, i32 noundef %681, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %683, ptr noundef %685, ptr noundef %687, i32 noundef %688) #13
  call void @exit(i32 noundef 1) #14
  unreachable

690:                                              ; preds = %664
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %210, align 4, !tbaa !5
  %691 = load i32, ptr @test_count, align 4, !tbaa !5
  %692 = add nsw i32 %691, 1
  store i32 %692, ptr @test_count, align 4, !tbaa !5
  %693 = call i32 @s2n_kex_client_key_recv(ptr noundef null, ptr noundef nonnull %3, ptr noundef nonnull %4) #11
  %694 = call zeroext i1 @s2n_result_is_error(i32 %693)
  br i1 %694, label %717, label %695

695:                                              ; preds = %690
  %696 = load i32, ptr %210, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = call i32 @s2n_print_stacktrace(ptr noundef %697) #11
  %699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %700 = trunc nuw i8 %699 to i1
  br i1 %700, label %701, label %705

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

705:                                              ; preds = %701, %695
  br label %706

706:                                              ; preds = %701, %705
  %.str.5.sink394 = phi ptr [ @.str.5, %705 ], [ @.str.2, %701 ]
  store i32 %696, ptr %210, align 4, !tbaa !5
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = load i32, ptr %156, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef nonnull @.str.4) #11
  %711 = load i32, ptr %156, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror_debug(i32 noundef %711, ptr noundef nonnull @.str.4) #11
  %713 = load i32, ptr %210, align 4, !tbaa !5
  %714 = call ptr @strerror(i32 noundef %713) #11
  %715 = load i32, ptr %210, align 4, !tbaa !5
  %716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef nonnull %.str.5.sink394, i32 noundef %708, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %710, ptr noundef %712, ptr noundef %714, i32 noundef %715) #13
  call void @exit(i32 noundef 1) #14
  unreachable

717:                                              ; preds = %690
  %718 = load i32, ptr @test_count, align 4, !tbaa !5
  %719 = add nsw i32 %718, 1
  store i32 %719, ptr @test_count, align 4, !tbaa !5
  %720 = load i32, ptr %156, align 4, !tbaa !5
  %721 = icmp eq i32 %720, 0
  br i1 %721, label %722, label %744

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

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

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

733:                                              ; preds = %728, %732
  %.str.5.sink403 = phi ptr [ @.str.5, %732 ], [ @.str.2, %728 ]
  store i32 %723, ptr %210, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = load i32, ptr %156, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef nonnull @.str.4) #11
  %738 = load i32, ptr %156, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef nonnull @.str.4) #11
  %740 = load i32, ptr %210, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #11
  %742 = load i32, ptr %210, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %734, ptr noundef nonnull %.str.5.sink403, i32 noundef %735, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %737, ptr noundef %739, ptr noundef %741, i32 noundef %742) #13
  call void @exit(i32 noundef 1) #14
  unreachable

744:                                              ; preds = %717
  %745 = add nsw i32 %718, 2
  store i32 %745, ptr @test_count, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror_debug(i32 noundef %720, ptr noundef nonnull @.str.4) #11
  %747 = icmp eq ptr %746, null
  br i1 %747, label %748, label %770

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

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

758:                                              ; preds = %754, %748
  br label %759

759:                                              ; preds = %754, %758
  %.str.5.sink412 = phi ptr [ @.str.5, %758 ], [ @.str.2, %754 ]
  store i32 %749, ptr %210, align 4, !tbaa !5
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = load i32, ptr @test_count, align 4, !tbaa !5
  %762 = load i32, ptr %156, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror(i32 noundef %762, ptr noundef nonnull @.str.4) #11
  %764 = load i32, ptr %156, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror_debug(i32 noundef %764, ptr noundef nonnull @.str.4) #11
  %766 = load i32, ptr %210, align 4, !tbaa !5
  %767 = call ptr @strerror(i32 noundef %766) #11
  %768 = load i32, ptr %210, align 4, !tbaa !5
  %769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %760, ptr noundef nonnull %.str.5.sink412, i32 noundef %761, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %763, ptr noundef %765, ptr noundef %767, i32 noundef %768) #13
  call void @exit(i32 noundef 1) #14
  unreachable

770:                                              ; preds = %744
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %210, align 4, !tbaa !5
  %771 = load i32, ptr @test_count, align 4, !tbaa !5
  %772 = add nsw i32 %771, 1
  store i32 %772, ptr @test_count, align 4, !tbaa !5
  %773 = call i32 @s2n_kex_client_key_send(ptr noundef null, ptr noundef nonnull %3, ptr noundef nonnull %4) #11
  %774 = call zeroext i1 @s2n_result_is_error(i32 %773)
  br i1 %774, label %797, label %775

775:                                              ; preds = %770
  %776 = load i32, ptr %210, align 4, !tbaa !5
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = call i32 @s2n_print_stacktrace(ptr noundef %777) #11
  %779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %780 = trunc nuw i8 %779 to i1
  br i1 %780, label %781, label %785

781:                                              ; preds = %775
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = call i32 @fileno(ptr noundef %782) #11
  %784 = call i32 @isatty(i32 noundef %783) #11
  %.not116 = icmp eq i32 %784, 0
  br i1 %.not116, label %785, label %786

785:                                              ; preds = %781, %775
  br label %786

786:                                              ; preds = %781, %785
  %.str.5.sink421 = phi ptr [ @.str.5, %785 ], [ @.str.2, %781 ]
  store i32 %776, ptr %210, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = load i32, ptr %156, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror(i32 noundef %789, ptr noundef nonnull @.str.4) #11
  %791 = load i32, ptr %156, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror_debug(i32 noundef %791, ptr noundef nonnull @.str.4) #11
  %793 = load i32, ptr %210, align 4, !tbaa !5
  %794 = call ptr @strerror(i32 noundef %793) #11
  %795 = load i32, ptr %210, align 4, !tbaa !5
  %796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %787, ptr noundef nonnull %.str.5.sink421, i32 noundef %788, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %790, ptr noundef %792, ptr noundef %794, i32 noundef %795) #13
  call void @exit(i32 noundef 1) #14
  unreachable

797:                                              ; preds = %770
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = add nsw i32 %798, 1
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = load i32, ptr %156, align 4, !tbaa !5
  %801 = icmp eq i32 %800, 0
  br i1 %801, label %802, label %824

802:                                              ; preds = %797
  %803 = load i32, ptr %210, align 4, !tbaa !5
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = call i32 @s2n_print_stacktrace(ptr noundef %804) #11
  %806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %807 = trunc nuw i8 %806 to i1
  br i1 %807, label %808, label %812

808:                                              ; preds = %802
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = call i32 @fileno(ptr noundef %809) #11
  %811 = call i32 @isatty(i32 noundef %810) #11
  %.not139 = icmp eq i32 %811, 0
  br i1 %.not139, label %812, label %813

812:                                              ; preds = %808, %802
  br label %813

813:                                              ; preds = %808, %812
  %.str.5.sink430 = phi ptr [ @.str.5, %812 ], [ @.str.2, %808 ]
  store i32 %803, ptr %210, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = load i32, ptr @test_count, align 4, !tbaa !5
  %816 = load i32, ptr %156, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror(i32 noundef %816, ptr noundef nonnull @.str.4) #11
  %818 = load i32, ptr %156, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef nonnull @.str.4) #11
  %820 = load i32, ptr %210, align 4, !tbaa !5
  %821 = call ptr @strerror(i32 noundef %820) #11
  %822 = load i32, ptr %210, align 4, !tbaa !5
  %823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %814, ptr noundef nonnull %.str.5.sink430, i32 noundef %815, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %817, ptr noundef %819, ptr noundef %821, i32 noundef %822) #13
  call void @exit(i32 noundef 1) #14
  unreachable

824:                                              ; preds = %797
  %825 = add nsw i32 %798, 2
  store i32 %825, ptr @test_count, align 4, !tbaa !5
  %826 = call ptr @s2n_strerror_debug(i32 noundef %800, ptr noundef nonnull @.str.4) #11
  %827 = icmp eq ptr %826, null
  br i1 %827, label %828, label %850

828:                                              ; preds = %824
  %829 = load i32, ptr %210, align 4, !tbaa !5
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = call i32 @s2n_print_stacktrace(ptr noundef %830) #11
  %832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %833 = trunc nuw i8 %832 to i1
  br i1 %833, label %834, label %838

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

838:                                              ; preds = %834, %828
  br label %839

839:                                              ; preds = %834, %838
  %.str.5.sink439 = phi ptr [ @.str.5, %838 ], [ @.str.2, %834 ]
  store i32 %829, ptr %210, align 4, !tbaa !5
  %840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %842 = load i32, ptr %156, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror(i32 noundef %842, ptr noundef nonnull @.str.4) #11
  %844 = load i32, ptr %156, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror_debug(i32 noundef %844, ptr noundef nonnull @.str.4) #11
  %846 = load i32, ptr %210, align 4, !tbaa !5
  %847 = call ptr @strerror(i32 noundef %846) #11
  %848 = load i32, ptr %210, align 4, !tbaa !5
  %849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %840, ptr noundef nonnull %.str.5.sink439, i32 noundef %841, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %843, ptr noundef %845, ptr noundef %847, i32 noundef %848) #13
  call void @exit(i32 noundef 1) #14
  unreachable

850:                                              ; preds = %824
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %210, align 4, !tbaa !5
  %851 = load i32, ptr @test_count, align 4, !tbaa !5
  %852 = add nsw i32 %851, 1
  store i32 %852, ptr @test_count, align 4, !tbaa !5
  %853 = call i32 @s2n_kex_tls_prf(ptr noundef null, ptr noundef nonnull %3, ptr noundef nonnull %4) #11
  %854 = call zeroext i1 @s2n_result_is_error(i32 %853)
  br i1 %854, label %877, label %855

855:                                              ; preds = %850
  %856 = load i32, ptr %210, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = call i32 @s2n_print_stacktrace(ptr noundef %857) #11
  %859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %860 = trunc nuw i8 %859 to i1
  br i1 %860, label %861, label %865

861:                                              ; preds = %855
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = call i32 @fileno(ptr noundef %862) #11
  %864 = call i32 @isatty(i32 noundef %863) #11
  %.not117 = icmp eq i32 %864, 0
  br i1 %.not117, label %865, label %866

865:                                              ; preds = %861, %855
  br label %866

866:                                              ; preds = %861, %865
  %.str.5.sink448 = phi ptr [ @.str.5, %865 ], [ @.str.2, %861 ]
  store i32 %856, ptr %210, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = load i32, ptr %156, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror(i32 noundef %869, ptr noundef nonnull @.str.4) #11
  %871 = load i32, ptr %156, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror_debug(i32 noundef %871, ptr noundef nonnull @.str.4) #11
  %873 = load i32, ptr %210, align 4, !tbaa !5
  %874 = call ptr @strerror(i32 noundef %873) #11
  %875 = load i32, ptr %210, align 4, !tbaa !5
  %876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %867, ptr noundef nonnull %.str.5.sink448, i32 noundef %868, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %870, ptr noundef %872, ptr noundef %874, i32 noundef %875) #13
  call void @exit(i32 noundef 1) #14
  unreachable

877:                                              ; preds = %850
  %878 = load i32, ptr @test_count, align 4, !tbaa !5
  %879 = add nsw i32 %878, 1
  store i32 %879, ptr @test_count, align 4, !tbaa !5
  %880 = load i32, ptr %156, align 4, !tbaa !5
  %881 = icmp eq i32 %880, 0
  br i1 %881, label %882, label %904

882:                                              ; preds = %877
  %883 = load i32, ptr %210, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = call i32 @s2n_print_stacktrace(ptr noundef %884) #11
  %886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %887 = trunc nuw i8 %886 to i1
  br i1 %887, label %888, label %892

888:                                              ; preds = %882
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = call i32 @fileno(ptr noundef %889) #11
  %891 = call i32 @isatty(i32 noundef %890) #11
  %.not137 = icmp eq i32 %891, 0
  br i1 %.not137, label %892, label %893

892:                                              ; preds = %888, %882
  br label %893

893:                                              ; preds = %888, %892
  %.str.5.sink457 = phi ptr [ @.str.5, %892 ], [ @.str.2, %888 ]
  store i32 %883, ptr %210, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = load i32, ptr %156, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef nonnull @.str.4) #11
  %898 = load i32, ptr %156, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef nonnull @.str.4) #11
  %900 = load i32, ptr %210, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #11
  %902 = load i32, ptr %210, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef nonnull %.str.5.sink457, i32 noundef %895, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %897, ptr noundef %899, ptr noundef %901, i32 noundef %902) #13
  call void @exit(i32 noundef 1) #14
  unreachable

904:                                              ; preds = %877
  %905 = add nsw i32 %878, 2
  store i32 %905, ptr @test_count, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror_debug(i32 noundef %880, ptr noundef nonnull @.str.4) #11
  %907 = icmp eq ptr %906, null
  br i1 %907, label %908, label %930

908:                                              ; preds = %904
  %909 = load i32, ptr %210, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = call i32 @s2n_print_stacktrace(ptr noundef %910) #11
  %912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %913 = trunc nuw i8 %912 to i1
  br i1 %913, label %914, label %918

914:                                              ; preds = %908
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = call i32 @fileno(ptr noundef %915) #11
  %917 = call i32 @isatty(i32 noundef %916) #11
  %.not136 = icmp eq i32 %917, 0
  br i1 %.not136, label %918, label %919

918:                                              ; preds = %914, %908
  br label %919

919:                                              ; preds = %914, %918
  %.str.5.sink466 = phi ptr [ @.str.5, %918 ], [ @.str.2, %914 ]
  store i32 %909, ptr %210, align 4, !tbaa !5
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = load i32, ptr @test_count, align 4, !tbaa !5
  %922 = load i32, ptr %156, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror(i32 noundef %922, ptr noundef nonnull @.str.4) #11
  %924 = load i32, ptr %156, align 4, !tbaa !5
  %925 = call ptr @s2n_strerror_debug(i32 noundef %924, ptr noundef nonnull @.str.4) #11
  %926 = load i32, ptr %210, align 4, !tbaa !5
  %927 = call ptr @strerror(i32 noundef %926) #11
  %928 = load i32, ptr %210, align 4, !tbaa !5
  %929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %920, ptr noundef nonnull %.str.5.sink466, i32 noundef %921, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %923, ptr noundef %925, ptr noundef %927, i32 noundef %928) #13
  call void @exit(i32 noundef 1) #14
  unreachable

930:                                              ; preds = %904
  store i32 0, ptr %156, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %210, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 168, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %3) #11
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = add nsw i32 %931, 1
  store i32 %932, ptr @test_count, align 4, !tbaa !5
  %933 = call zeroext i1 @s2n_kex_includes(ptr noundef null, ptr noundef null) #11
  br i1 %933, label %956, label %934

934:                                              ; preds = %930
  %935 = load i32, ptr %210, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = call i32 @s2n_print_stacktrace(ptr noundef %936) #11
  %938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %939 = trunc nuw i8 %938 to i1
  br i1 %939, label %940, label %944

940:                                              ; preds = %934
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = call i32 @fileno(ptr noundef %941) #11
  %943 = call i32 @isatty(i32 noundef %942) #11
  %.not118 = icmp eq i32 %943, 0
  br i1 %.not118, label %944, label %945

944:                                              ; preds = %940, %934
  br label %945

945:                                              ; preds = %940, %944
  %.str.5.sink475 = phi ptr [ @.str.5, %944 ], [ @.str.2, %940 ]
  store i32 %935, ptr %210, align 4, !tbaa !5
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = load i32, ptr @test_count, align 4, !tbaa !5
  %948 = load i32, ptr %156, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror(i32 noundef %948, ptr noundef nonnull @.str.4) #11
  %950 = load i32, ptr %156, align 4, !tbaa !5
  %951 = call ptr @s2n_strerror_debug(i32 noundef %950, ptr noundef nonnull @.str.4) #11
  %952 = load i32, ptr %210, align 4, !tbaa !5
  %953 = call ptr @strerror(i32 noundef %952) #11
  %954 = load i32, ptr %210, align 4, !tbaa !5
  %955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %946, ptr noundef nonnull %.str.5.sink475, i32 noundef %947, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %949, ptr noundef %951, ptr noundef %953, i32 noundef %954) #13
  call void @exit(i32 noundef 1) #14
  unreachable

956:                                              ; preds = %930
  %957 = load i32, ptr @test_count, align 4, !tbaa !5
  %958 = add nsw i32 %957, 1
  store i32 %958, ptr @test_count, align 4, !tbaa !5
  %959 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_rsa, ptr noundef nonnull @s2n_rsa) #11
  br i1 %959, label %982, label %960

960:                                              ; preds = %956
  %961 = load i32, ptr %210, align 4, !tbaa !5
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = call i32 @s2n_print_stacktrace(ptr noundef %962) #11
  %964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %965 = trunc nuw i8 %964 to i1
  br i1 %965, label %966, label %970

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

970:                                              ; preds = %966, %960
  br label %971

971:                                              ; preds = %966, %970
  %.str.5.sink484 = phi ptr [ @.str.5, %970 ], [ @.str.2, %966 ]
  store i32 %961, ptr %210, align 4, !tbaa !5
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = load i32, ptr @test_count, align 4, !tbaa !5
  %974 = load i32, ptr %156, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror(i32 noundef %974, ptr noundef nonnull @.str.4) #11
  %976 = load i32, ptr %156, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror_debug(i32 noundef %976, ptr noundef nonnull @.str.4) #11
  %978 = load i32, ptr %210, align 4, !tbaa !5
  %979 = call ptr @strerror(i32 noundef %978) #11
  %980 = load i32, ptr %210, align 4, !tbaa !5
  %981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %972, ptr noundef nonnull %.str.5.sink484, i32 noundef %973, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %975, ptr noundef %977, ptr noundef %979, i32 noundef %980) #13
  call void @exit(i32 noundef 1) #14
  unreachable

982:                                              ; preds = %956
  %983 = load i32, ptr @test_count, align 4, !tbaa !5
  %984 = add nsw i32 %983, 1
  store i32 %984, ptr @test_count, align 4, !tbaa !5
  %985 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_hybrid_ecdhe_kem, ptr noundef nonnull @s2n_hybrid_ecdhe_kem) #11
  br i1 %985, label %1008, label %986

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

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

996:                                              ; preds = %992, %986
  br label %997

997:                                              ; preds = %992, %996
  %.str.5.sink493 = phi ptr [ @.str.5, %996 ], [ @.str.2, %992 ]
  store i32 %987, ptr %210, align 4, !tbaa !5
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = load i32, ptr %156, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror(i32 noundef %1000, ptr noundef nonnull @.str.4) #11
  %1002 = load i32, ptr %156, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror_debug(i32 noundef %1002, ptr noundef nonnull @.str.4) #11
  %1004 = load i32, ptr %210, align 4, !tbaa !5
  %1005 = call ptr @strerror(i32 noundef %1004) #11
  %1006 = load i32, ptr %210, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %998, ptr noundef nonnull %.str.5.sink493, i32 noundef %999, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %1001, ptr noundef %1003, ptr noundef %1005, i32 noundef %1006) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1008:                                             ; preds = %982
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = add nsw i32 %1009, 1
  store i32 %1010, ptr @test_count, align 4, !tbaa !5
  %1011 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_rsa, ptr noundef nonnull @s2n_dhe) #11
  br i1 %1011, label %1012, label %1034

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

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

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

1023:                                             ; preds = %1018, %1022
  %.str.5.sink502 = phi ptr [ @.str.5, %1022 ], [ @.str.2, %1018 ]
  store i32 %1013, ptr %210, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = load i32, ptr %156, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror(i32 noundef %1026, ptr noundef nonnull @.str.4) #11
  %1028 = load i32, ptr %156, align 4, !tbaa !5
  %1029 = call ptr @s2n_strerror_debug(i32 noundef %1028, ptr noundef nonnull @.str.4) #11
  %1030 = load i32, ptr %210, align 4, !tbaa !5
  %1031 = call ptr @strerror(i32 noundef %1030) #11
  %1032 = load i32, ptr %210, align 4, !tbaa !5
  %1033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1024, ptr noundef nonnull %.str.5.sink502, i32 noundef %1025, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %1027, ptr noundef %1029, ptr noundef %1031, i32 noundef %1032) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1034:                                             ; preds = %1008
  %1035 = load i32, ptr @test_count, align 4, !tbaa !5
  %1036 = add nsw i32 %1035, 1
  store i32 %1036, ptr @test_count, align 4, !tbaa !5
  %1037 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_kem, ptr noundef nonnull @s2n_ecdhe) #11
  br i1 %1037, label %1038, label %1060

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

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

1048:                                             ; preds = %1044, %1038
  br label %1049

1049:                                             ; preds = %1044, %1048
  %.str.5.sink511 = phi ptr [ @.str.5, %1048 ], [ @.str.2, %1044 ]
  store i32 %1039, ptr %210, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = load i32, ptr %156, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef nonnull @.str.4) #11
  %1054 = load i32, ptr %156, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror_debug(i32 noundef %1054, ptr noundef nonnull @.str.4) #11
  %1056 = load i32, ptr %210, align 4, !tbaa !5
  %1057 = call ptr @strerror(i32 noundef %1056) #11
  %1058 = load i32, ptr %210, align 4, !tbaa !5
  %1059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef nonnull %.str.5.sink511, i32 noundef %1051, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %1053, ptr noundef %1055, ptr noundef %1057, i32 noundef %1058) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1060:                                             ; preds = %1034
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = add nsw i32 %1061, 1
  store i32 %1062, ptr @test_count, align 4, !tbaa !5
  %1063 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_hybrid_ecdhe_kem, ptr noundef nonnull @s2n_ecdhe) #11
  br i1 %1063, label %1086, label %1064

1064:                                             ; preds = %1060
  %1065 = load i32, ptr %210, align 4, !tbaa !5
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = call i32 @s2n_print_stacktrace(ptr noundef %1066) #11
  %1068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1069 = trunc nuw i8 %1068 to i1
  br i1 %1069, label %1070, label %1074

1070:                                             ; preds = %1064
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1072 = call i32 @fileno(ptr noundef %1071) #11
  %1073 = call i32 @isatty(i32 noundef %1072) #11
  %.not121 = icmp eq i32 %1073, 0
  br i1 %.not121, label %1074, label %1075

1074:                                             ; preds = %1070, %1064
  br label %1075

1075:                                             ; preds = %1070, %1074
  %.str.5.sink520 = phi ptr [ @.str.5, %1074 ], [ @.str.2, %1070 ]
  store i32 %1065, ptr %210, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = load i32, ptr @test_count, align 4, !tbaa !5
  %1078 = load i32, ptr %156, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror(i32 noundef %1078, ptr noundef nonnull @.str.4) #11
  %1080 = load i32, ptr %156, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror_debug(i32 noundef %1080, ptr noundef nonnull @.str.4) #11
  %1082 = load i32, ptr %210, align 4, !tbaa !5
  %1083 = call ptr @strerror(i32 noundef %1082) #11
  %1084 = load i32, ptr %210, align 4, !tbaa !5
  %1085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1076, ptr noundef nonnull %.str.5.sink520, i32 noundef %1077, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %1079, ptr noundef %1081, ptr noundef %1083, i32 noundef %1084) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1086:                                             ; preds = %1060
  %1087 = load i32, ptr @test_count, align 4, !tbaa !5
  %1088 = add nsw i32 %1087, 1
  store i32 %1088, ptr @test_count, align 4, !tbaa !5
  %1089 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_hybrid_ecdhe_kem, ptr noundef nonnull @s2n_kem) #11
  br i1 %1089, label %1112, label %1090

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

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

1100:                                             ; preds = %1096, %1090
  br label %1101

1101:                                             ; preds = %1096, %1100
  %.str.5.sink529 = phi ptr [ @.str.5, %1100 ], [ @.str.2, %1096 ]
  store i32 %1091, ptr %210, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = load i32, ptr %156, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.4) #11
  %1106 = load i32, ptr %156, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.4) #11
  %1108 = load i32, ptr %210, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #11
  %1110 = load i32, ptr %210, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef nonnull %.str.5.sink529, i32 noundef %1103, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1112:                                             ; preds = %1086
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr @test_count, align 4, !tbaa !5
  %1115 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_ecdhe, ptr noundef nonnull @s2n_hybrid_ecdhe_kem) #11
  br i1 %1115, label %1116, label %1138

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

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

1126:                                             ; preds = %1122, %1116
  br label %1127

1127:                                             ; preds = %1122, %1126
  %.str.5.sink538 = phi ptr [ @.str.5, %1126 ], [ @.str.2, %1122 ]
  store i32 %1117, ptr %210, align 4, !tbaa !5
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = load i32, ptr @test_count, align 4, !tbaa !5
  %1130 = load i32, ptr %156, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror(i32 noundef %1130, ptr noundef nonnull @.str.4) #11
  %1132 = load i32, ptr %156, align 4, !tbaa !5
  %1133 = call ptr @s2n_strerror_debug(i32 noundef %1132, ptr noundef nonnull @.str.4) #11
  %1134 = load i32, ptr %210, align 4, !tbaa !5
  %1135 = call ptr @strerror(i32 noundef %1134) #11
  %1136 = load i32, ptr %210, align 4, !tbaa !5
  %1137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1128, ptr noundef nonnull %.str.5.sink538, i32 noundef %1129, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %1131, ptr noundef %1133, ptr noundef %1135, i32 noundef %1136) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1138:                                             ; preds = %1112
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = add nsw i32 %1139, 1
  store i32 %1140, ptr @test_count, align 4, !tbaa !5
  %1141 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_kem, ptr noundef nonnull @s2n_hybrid_ecdhe_kem) #11
  br i1 %1141, label %1142, label %1164

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

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

1152:                                             ; preds = %1148, %1142
  br label %1153

1153:                                             ; preds = %1148, %1152
  %.str.5.sink547 = phi ptr [ @.str.5, %1152 ], [ @.str.2, %1148 ]
  store i32 %1143, ptr %210, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = load i32, ptr %156, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror(i32 noundef %1156, ptr noundef nonnull @.str.4) #11
  %1158 = load i32, ptr %156, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror_debug(i32 noundef %1158, ptr noundef nonnull @.str.4) #11
  %1160 = load i32, ptr %210, align 4, !tbaa !5
  %1161 = call ptr @strerror(i32 noundef %1160) #11
  %1162 = load i32, ptr %210, align 4, !tbaa !5
  %1163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1154, ptr noundef nonnull %.str.5.sink547, i32 noundef %1155, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %1157, ptr noundef %1159, ptr noundef %1161, i32 noundef %1162) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1164:                                             ; preds = %1138
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = add nsw i32 %1165, 1
  store i32 %1166, ptr @test_count, align 4, !tbaa !5
  %1167 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_hybrid_ecdhe_kem, ptr noundef nonnull @s2n_rsa) #11
  br i1 %1167, label %1168, label %1190

1168:                                             ; preds = %1164
  %1169 = load i32, ptr %210, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = call i32 @s2n_print_stacktrace(ptr noundef %1170) #11
  %1172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1173 = trunc nuw i8 %1172 to i1
  br i1 %1173, label %1174, label %1178

1174:                                             ; preds = %1168
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @fileno(ptr noundef %1175) #11
  %1177 = call i32 @isatty(i32 noundef %1176) #11
  %.not131 = icmp eq i32 %1177, 0
  br i1 %.not131, label %1178, label %1179

1178:                                             ; preds = %1174, %1168
  br label %1179

1179:                                             ; preds = %1174, %1178
  %.str.5.sink556 = phi ptr [ @.str.5, %1178 ], [ @.str.2, %1174 ]
  store i32 %1169, ptr %210, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = load i32, ptr %156, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror(i32 noundef %1182, ptr noundef nonnull @.str.4) #11
  %1184 = load i32, ptr %156, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror_debug(i32 noundef %1184, ptr noundef nonnull @.str.4) #11
  %1186 = load i32, ptr %210, align 4, !tbaa !5
  %1187 = call ptr @strerror(i32 noundef %1186) #11
  %1188 = load i32, ptr %210, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1180, ptr noundef nonnull %.str.5.sink556, i32 noundef %1181, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %1183, ptr noundef %1185, ptr noundef %1187, i32 noundef %1188) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1190:                                             ; preds = %1164
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = add nsw i32 %1191, 1
  store i32 %1192, ptr @test_count, align 4, !tbaa !5
  %1193 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_hybrid_ecdhe_kem, ptr noundef nonnull @s2n_dhe) #11
  br i1 %1193, label %1194, label %1216

1194:                                             ; preds = %1190
  %1195 = load i32, ptr %210, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @s2n_print_stacktrace(ptr noundef %1196) #11
  %1198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1199 = trunc nuw i8 %1198 to i1
  br i1 %1199, label %1200, label %1204

1200:                                             ; preds = %1194
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @fileno(ptr noundef %1201) #11
  %1203 = call i32 @isatty(i32 noundef %1202) #11
  %.not130 = icmp eq i32 %1203, 0
  br i1 %.not130, label %1204, label %1205

1204:                                             ; preds = %1200, %1194
  br label %1205

1205:                                             ; preds = %1200, %1204
  %.str.5.sink565 = phi ptr [ @.str.5, %1204 ], [ @.str.2, %1200 ]
  store i32 %1195, ptr %210, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = load i32, ptr %156, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror(i32 noundef %1208, ptr noundef nonnull @.str.4) #11
  %1210 = load i32, ptr %156, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror_debug(i32 noundef %1210, ptr noundef nonnull @.str.4) #11
  %1212 = load i32, ptr %210, align 4, !tbaa !5
  %1213 = call ptr @strerror(i32 noundef %1212) #11
  %1214 = load i32, ptr %210, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1206, ptr noundef nonnull %.str.5.sink565, i32 noundef %1207, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %1209, ptr noundef %1211, ptr noundef %1213, i32 noundef %1214) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1216:                                             ; preds = %1190
  %1217 = load i32, ptr @test_count, align 4, !tbaa !5
  %1218 = add nsw i32 %1217, 1
  store i32 %1218, ptr @test_count, align 4, !tbaa !5
  %1219 = call zeroext i1 @s2n_kex_includes(ptr noundef nonnull @s2n_rsa, ptr noundef null) #11
  br i1 %1219, label %1220, label %1242

1220:                                             ; preds = %1216
  %1221 = load i32, ptr %210, align 4, !tbaa !5
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 @s2n_print_stacktrace(ptr noundef %1222) #11
  %1224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1225 = trunc nuw i8 %1224 to i1
  br i1 %1225, label %1226, label %1230

1226:                                             ; preds = %1220
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = call i32 @fileno(ptr noundef %1227) #11
  %1229 = call i32 @isatty(i32 noundef %1228) #11
  %.not129 = icmp eq i32 %1229, 0
  br i1 %.not129, label %1230, label %1231

1230:                                             ; preds = %1226, %1220
  br label %1231

1231:                                             ; preds = %1226, %1230
  %.str.5.sink574 = phi ptr [ @.str.5, %1230 ], [ @.str.2, %1226 ]
  store i32 %1221, ptr %210, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = load i32, ptr %156, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror(i32 noundef %1234, ptr noundef nonnull @.str.4) #11
  %1236 = load i32, ptr %156, align 4, !tbaa !5
  %1237 = call ptr @s2n_strerror_debug(i32 noundef %1236, ptr noundef nonnull @.str.4) #11
  %1238 = load i32, ptr %210, align 4, !tbaa !5
  %1239 = call ptr @strerror(i32 noundef %1238) #11
  %1240 = load i32, ptr %210, align 4, !tbaa !5
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1232, ptr noundef nonnull %.str.5.sink574, i32 noundef %1233, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %1235, ptr noundef %1237, ptr noundef %1239, i32 noundef %1240) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1242:                                             ; preds = %1216
  %1243 = load i32, ptr @test_count, align 4, !tbaa !5
  %1244 = add nsw i32 %1243, 1
  store i32 %1244, ptr @test_count, align 4, !tbaa !5
  %1245 = call zeroext i1 @s2n_kex_includes(ptr noundef null, ptr noundef nonnull @s2n_rsa) #11
  br i1 %1245, label %1246, label %1268

1246:                                             ; preds = %1242
  %1247 = load i32, ptr %210, align 4, !tbaa !5
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = call i32 @s2n_print_stacktrace(ptr noundef %1248) #11
  %1250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1251 = trunc nuw i8 %1250 to i1
  br i1 %1251, label %1252, label %1256

1252:                                             ; preds = %1246
  %1253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1254 = call i32 @fileno(ptr noundef %1253) #11
  %1255 = call i32 @isatty(i32 noundef %1254) #11
  %.not128 = icmp eq i32 %1255, 0
  br i1 %.not128, label %1256, label %1257

1256:                                             ; preds = %1252, %1246
  br label %1257

1257:                                             ; preds = %1252, %1256
  %.str.5.sink583 = phi ptr [ @.str.5, %1256 ], [ @.str.2, %1252 ]
  store i32 %1247, ptr %210, align 4, !tbaa !5
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = load i32, ptr @test_count, align 4, !tbaa !5
  %1260 = load i32, ptr %156, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror(i32 noundef %1260, ptr noundef nonnull @.str.4) #11
  %1262 = load i32, ptr %156, align 4, !tbaa !5
  %1263 = call ptr @s2n_strerror_debug(i32 noundef %1262, ptr noundef nonnull @.str.4) #11
  %1264 = load i32, ptr %210, align 4, !tbaa !5
  %1265 = call ptr @strerror(i32 noundef %1264) #11
  %1266 = load i32, ptr %210, align 4, !tbaa !5
  %1267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1258, ptr noundef nonnull %.str.5.sink583, i32 noundef %1259, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %1261, ptr noundef %1263, ptr noundef %1265, i32 noundef %1266) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1268:                                             ; preds = %1242
  %1269 = call i32 @s2n_cleanup() #11
  %1270 = icmp eq i32 %1269, -1
  br i1 %1270, label %1271, label %1293

1271:                                             ; preds = %1268
  %1272 = load i32, ptr %210, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = call i32 @s2n_print_stacktrace(ptr noundef %1273) #11
  %1275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1276 = trunc nuw i8 %1275 to i1
  br i1 %1276, label %1277, label %1281

1277:                                             ; preds = %1271
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = call i32 @fileno(ptr noundef %1278) #11
  %1280 = call i32 @isatty(i32 noundef %1279) #11
  %.not127 = icmp eq i32 %1280, 0
  br i1 %.not127, label %1281, label %1282

1281:                                             ; preds = %1277, %1271
  br label %1282

1282:                                             ; preds = %1277, %1281
  %.str.5.sink592 = phi ptr [ @.str.5, %1281 ], [ @.str.2, %1277 ]
  store i32 %1272, ptr %210, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = load i32, ptr @test_count, align 4, !tbaa !5
  %1285 = load i32, ptr %156, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror(i32 noundef %1285, ptr noundef nonnull @.str.4) #11
  %1287 = load i32, ptr %156, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror_debug(i32 noundef %1287, ptr noundef nonnull @.str.4) #11
  %1289 = load i32, ptr %210, align 4, !tbaa !5
  %1290 = call ptr @strerror(i32 noundef %1289) #11
  %1291 = load i32, ptr %210, align 4, !tbaa !5
  %1292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1283, ptr noundef nonnull %.str.5.sink592, i32 noundef %1284, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %1286, ptr noundef %1288, ptr noundef %1290, i32 noundef %1291) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1293:                                             ; preds = %1268
  %1294 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %1295 = icmp eq i32 %1294, -1
  br i1 %1295, label %1296, label %1318

1296:                                             ; preds = %1293
  %1297 = load i32, ptr %210, align 4, !tbaa !5
  %1298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1299 = call i32 @s2n_print_stacktrace(ptr noundef %1298) #11
  %1300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1301 = trunc nuw i8 %1300 to i1
  br i1 %1301, label %1302, label %1306

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

1306:                                             ; preds = %1302, %1296
  br label %1307

1307:                                             ; preds = %1302, %1306
  %.str.5.sink601 = phi ptr [ @.str.5, %1306 ], [ @.str.2, %1302 ]
  store i32 %1297, ptr %210, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = load i32, ptr @test_count, align 4, !tbaa !5
  %1310 = load i32, ptr %156, align 4, !tbaa !5
  %1311 = call ptr @s2n_strerror(i32 noundef %1310, ptr noundef nonnull @.str.4) #11
  %1312 = load i32, ptr %156, align 4, !tbaa !5
  %1313 = call ptr @s2n_strerror_debug(i32 noundef %1312, ptr noundef nonnull @.str.4) #11
  %1314 = load i32, ptr %210, align 4, !tbaa !5
  %1315 = call ptr @strerror(i32 noundef %1314) #11
  %1316 = load i32, ptr %210, align 4, !tbaa !5
  %1317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1308, ptr noundef nonnull %.str.5.sink601, i32 noundef %1309, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %1311, ptr noundef %1313, ptr noundef %1315, i32 noundef %1316) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1318:                                             ; preds = %1293
  %1319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1320 = trunc nuw i8 %1319 to i1
  br i1 %1320, label %1321, label %1332

1321:                                             ; preds = %1318
  %1322 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1323 = call i32 @fileno(ptr noundef %1322) #11
  %1324 = call i32 @isatty(i32 noundef %1323) #11
  %.not123 = icmp eq i32 %1324, 0
  br i1 %.not123, label %1332, label %1325

1325:                                             ; preds = %1321
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not125 = icmp eq i32 %1326, 0
  %1327 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not125, label %1330, label %1328

1328:                                             ; preds = %1325
  %1329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1327, ptr noundef nonnull @.str.36, i32 noundef %1326) #11
  br label %1339

1330:                                             ; preds = %1325
  %1331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1327, ptr noundef nonnull @.str.37) #11
  br label %1339

1332:                                             ; preds = %1321, %1318
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not124 = icmp eq i32 %1333, 0
  %1334 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not124, label %1337, label %1335

1335:                                             ; preds = %1332
  %1336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef nonnull @.str.38, i32 noundef %1333) #11
  br label %1339

1337:                                             ; preds = %1332
  %1338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef nonnull @.str.39) #11
  br label %1339

1339:                                             ; preds = %1335, %1337, %1328, %1330
  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 i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

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

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

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

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

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

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

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

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

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

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

declare zeroext i1 @s2n_kex_includes(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 32}
!16 = !{!"s2n_cipher_suite", !6, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !10, i64 32, !6, i64 40, !10, i64 48, !7, i64 56, !7, i64 72, !10, i64 80, !10, i64 88, !6, i64 96, !7, i64 100}


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