; LLVM IR from aws/s2n-tls :: tests/unit (s2n_server_psk_extension_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_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%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_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_psk = type { i32, %struct.s2n_blob, %struct.s2n_blob, i32, i32, i64, %struct.s2n_blob, %struct.s2n_early_data_config, i64 }
%struct.s2n_early_data_config = type { i32, i8, ptr, %struct.s2n_blob, %struct.s2n_blob }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_identity = external dso_local global [14 x i8], align 1
@test_secret = external dso_local global [12 x 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 [88 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 [72 x i8], align 1
@s2n_server_psk_extension = external constant %struct.s2n_extension_type, align 8
@.str.9 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %struct.s2n_result, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_stuffer, align 8
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca %struct.s2n_result, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i16, align 2
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i8, align 1
  %38 = alloca i32, align 4
  %39 = alloca %struct.s2n_stuffer, align 8
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca %struct.s2n_result, align 4
  %44 = alloca i32, align 4
  %45 = alloca i16, align 2
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca %struct.s2n_stuffer, align 8
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca %struct.s2n_result, align 4
  %58 = alloca i32, align 4
  %59 = alloca i16, align 2
  %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 %struct.s2n_stuffer, align 8
  %69 = alloca i32, align 4
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca %struct.s2n_result, align 4
  %73 = alloca i32, align 4
  %74 = alloca i16, align 2
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca %struct.s2n_stuffer, align 8
  %84 = alloca i32, align 4
  %85 = alloca ptr, align 8
  %86 = alloca i32, align 4
  %87 = alloca %struct.s2n_result, align 4
  %88 = alloca i32, align 4
  %89 = alloca i16, align 2
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca ptr, align 8
  %104 = alloca ptr, align 8
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca %struct.s2n_result, align 4
  %110 = alloca i32, align 4
  %111 = alloca %struct.s2n_result, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = 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 %133

133:                                              ; preds = %2
  br label %134

134:                                              ; preds = %133
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %135 = load ptr, ptr @stdout, align 8, !tbaa !9
  %136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %135, ptr noundef @.str, ptr noundef @.str.1) #10
  %137 = load ptr, ptr @stdout, align 8, !tbaa !9
  %138 = call i32 @fflush(ptr noundef %137)
  br label %139

139:                                              ; preds = %134
  %140 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %141 = icmp eq i32 %140, -1
  br i1 %141, label %142, label %193

142:                                              ; preds = %139
  br label %143

143:                                              ; preds = %142
  br label %144

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

151:                                              ; preds = %144
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = call i32 @fileno(ptr noundef %152) #10
  %154 = call i32 @isatty(i32 noundef %153) #10
  %155 = icmp ne i32 %154, 0
  br i1 %155, label %156, label %173

156:                                              ; preds = %151
  %157 = load i32, ptr %6, align 4, !tbaa !5
  %158 = call ptr @__errno_location() #11
  store i32 %157, ptr %158, align 4, !tbaa !5
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = load i32, ptr @test_count, align 4, !tbaa !5
  %161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %162 = load i32, ptr %161, align 4, !tbaa !5
  %163 = call ptr @s2n_strerror(i32 noundef %162, ptr noundef @.str.4)
  %164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = call ptr @s2n_strerror_debug(i32 noundef %165, ptr noundef @.str.4)
  %167 = call ptr @__errno_location() #11
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = call ptr @strerror(i32 noundef %168) #10
  %170 = call ptr @__errno_location() #11
  %171 = load i32, ptr %170, align 4, !tbaa !5
  %172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %159, ptr noundef @.str.2, i32 noundef %160, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 81, ptr noundef %163, ptr noundef %166, ptr noundef %169, i32 noundef %171) #10
  br label %190

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

190:                                              ; preds = %173, %156
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %191

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

192:                                              ; No predecessors!
  br label %193

193:                                              ; preds = %192, %139
  br label %194

194:                                              ; preds = %193
  br label %195

195:                                              ; preds = %194
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = add nsw i32 %196, 1
  store i32 %197, ptr @test_count, align 4, !tbaa !5
  %198 = call i32 @s2n_enable_atexit()
  %199 = icmp eq i32 %198, -1
  br i1 %199, label %200, label %251

200:                                              ; preds = %195
  br label %201

201:                                              ; preds = %200
  br label %202

202:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %203 = call ptr @__errno_location() #11
  %204 = load i32, ptr %203, align 4, !tbaa !5
  store i32 %204, ptr %7, align 4, !tbaa !5
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = call i32 @s2n_print_stacktrace(ptr noundef %205)
  %207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %208 = trunc i8 %207 to i1
  br i1 %208, label %209, label %231

209:                                              ; preds = %202
  %210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %211 = call i32 @fileno(ptr noundef %210) #10
  %212 = call i32 @isatty(i32 noundef %211) #10
  %213 = icmp ne i32 %212, 0
  br i1 %213, label %214, label %231

214:                                              ; preds = %209
  %215 = load i32, ptr %7, align 4, !tbaa !5
  %216 = call ptr @__errno_location() #11
  store i32 %215, ptr %216, align 4, !tbaa !5
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = load i32, ptr @test_count, align 4, !tbaa !5
  %219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %220 = load i32, ptr %219, align 4, !tbaa !5
  %221 = call ptr @s2n_strerror(i32 noundef %220, ptr noundef @.str.4)
  %222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call ptr @s2n_strerror_debug(i32 noundef %223, ptr noundef @.str.4)
  %225 = call ptr @__errno_location() #11
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = call ptr @strerror(i32 noundef %226) #10
  %228 = call ptr @__errno_location() #11
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %217, ptr noundef @.str.2, i32 noundef %218, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 81, ptr noundef %221, ptr noundef %224, ptr noundef %227, i32 noundef %229) #10
  br label %248

231:                                              ; preds = %209, %202
  %232 = load i32, ptr %7, align 4, !tbaa !5
  %233 = call ptr @__errno_location() #11
  store i32 %232, ptr %233, align 4, !tbaa !5
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = load i32, ptr @test_count, align 4, !tbaa !5
  %236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror(i32 noundef %237, ptr noundef @.str.4)
  %239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call ptr @s2n_strerror_debug(i32 noundef %240, ptr noundef @.str.4)
  %242 = call ptr @__errno_location() #11
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call ptr @strerror(i32 noundef %243) #10
  %245 = call ptr @__errno_location() #11
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %234, ptr noundef @.str.5, i32 noundef %235, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 81, ptr noundef %238, ptr noundef %241, ptr noundef %244, i32 noundef %246) #10
  br label %248

248:                                              ; preds = %231, %214
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %249

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

250:                                              ; No predecessors!
  br label %251

251:                                              ; preds = %250, %195
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253
  %255 = call i32 @s2n_init()
  %256 = icmp eq i32 %255, -1
  br i1 %256, label %257, label %308

257:                                              ; preds = %254
  br label %258

258:                                              ; preds = %257
  br label %259

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

266:                                              ; preds = %259
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = call i32 @fileno(ptr noundef %267) #10
  %269 = call i32 @isatty(i32 noundef %268) #10
  %270 = icmp ne i32 %269, 0
  br i1 %270, label %271, label %288

271:                                              ; preds = %266
  %272 = load i32, ptr %8, align 4, !tbaa !5
  %273 = call ptr @__errno_location() #11
  store i32 %272, ptr %273, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %277, ptr noundef @.str.4)
  %279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = call ptr @s2n_strerror_debug(i32 noundef %280, ptr noundef @.str.4)
  %282 = call ptr @__errno_location() #11
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call ptr @strerror(i32 noundef %283) #10
  %285 = call ptr @__errno_location() #11
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %274, ptr noundef @.str.2, i32 noundef %275, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 81, ptr noundef %278, ptr noundef %281, ptr noundef %284, i32 noundef %286) #10
  br label %305

288:                                              ; preds = %266, %259
  %289 = load i32, ptr %8, align 4, !tbaa !5
  %290 = call ptr @__errno_location() #11
  store i32 %289, ptr %290, align 4, !tbaa !5
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %294, ptr noundef @.str.4)
  %296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @s2n_strerror_debug(i32 noundef %297, ptr noundef @.str.4)
  %299 = call ptr @__errno_location() #11
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = call ptr @strerror(i32 noundef %300) #10
  %302 = call ptr @__errno_location() #11
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %291, ptr noundef @.str.5, i32 noundef %292, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 81, ptr noundef %295, ptr noundef %298, ptr noundef %301, i32 noundef %303) #10
  br label %305

305:                                              ; preds = %288, %271
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %306

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

307:                                              ; No predecessors!
  br label %308

308:                                              ; preds = %307, %254
  br label %309

309:                                              ; preds = %308
  br label %310

310:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #10
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  store ptr null, ptr %10, align 8, !tbaa !9
  br label %311

311:                                              ; preds = %310
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = add nsw i32 %312, 1
  store i32 %313, ptr @test_count, align 4, !tbaa !5
  %314 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %314, ptr %10, align 8, !tbaa !9
  %315 = icmp eq ptr %314, null
  br i1 %315, label %316, label %369

316:                                              ; preds = %311
  br label %317

317:                                              ; preds = %316
  br label %318

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

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

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

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

364:                                              ; preds = %347, %330
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %365

365:                                              ; preds = %364
  br label %366

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

367:                                              ; No predecessors!
  br label %368

368:                                              ; preds = %367
  br label %369

369:                                              ; preds = %368, %311
  br label %370

370:                                              ; preds = %369
  br label %371

371:                                              ; preds = %370
  br label %372

372:                                              ; preds = %371
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr @test_count, align 4, !tbaa !5
  %375 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_psk_extension, i32 0, i32 5), align 8, !tbaa !15
  %376 = call zeroext i1 %375(ptr noundef null)
  br i1 %376, label %377, label %430

377:                                              ; preds = %372
  br label %378

378:                                              ; preds = %377
  br label %379

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

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

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

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

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

426:                                              ; preds = %425
  br label %427

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

428:                                              ; No predecessors!
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429, %372
  br label %431

431:                                              ; preds = %430
  br label %432

432:                                              ; preds = %431
  br label %433

433:                                              ; preds = %432
  %434 = load i32, ptr @test_count, align 4, !tbaa !5
  %435 = add nsw i32 %434, 1
  store i32 %435, ptr @test_count, align 4, !tbaa !5
  %436 = load ptr, ptr %10, align 8, !tbaa !9
  %437 = getelementptr inbounds %struct.s2n_connection, ptr %436, i32 0, i32 33
  %438 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %437, i32 0, i32 1
  %439 = call i32 @s2n_array_pushback(ptr noundef %438, ptr noundef %9)
  %440 = getelementptr inbounds %struct.s2n_result, ptr %13, i32 0, i32 0
  store i32 %439, ptr %440, align 4
  %441 = getelementptr inbounds %struct.s2n_result, ptr %13, i32 0, i32 0
  %442 = load i32, ptr %441, align 4
  %443 = call zeroext i1 @s2n_result_is_ok(i32 %442)
  br i1 %443, label %497, label %444

444:                                              ; preds = %433
  br label %445

445:                                              ; preds = %444
  br label %446

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

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

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

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

492:                                              ; preds = %475, %458
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %493

493:                                              ; preds = %492
  br label %494

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

495:                                              ; No predecessors!
  br label %496

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496, %433
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498
  br label %500

500:                                              ; preds = %499
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr @test_count, align 4, !tbaa !5
  %503 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_psk_extension, i32 0, i32 5), align 8, !tbaa !15
  %504 = load ptr, ptr %10, align 8, !tbaa !9
  %505 = call zeroext i1 %503(ptr noundef %504)
  br i1 %505, label %506, label %559

506:                                              ; preds = %500
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %509 = call ptr @__errno_location() #11
  %510 = load i32, ptr %509, align 4, !tbaa !5
  store i32 %510, ptr %15, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @s2n_print_stacktrace(ptr noundef %511)
  %513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %514 = trunc i8 %513 to i1
  br i1 %514, label %515, label %537

515:                                              ; preds = %508
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @fileno(ptr noundef %516) #10
  %518 = call i32 @isatty(i32 noundef %517) #10
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %537

520:                                              ; preds = %515
  %521 = load i32, ptr %15, align 4, !tbaa !5
  %522 = call ptr @__errno_location() #11
  store i32 %521, ptr %522, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef @.str.4)
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef %529, ptr noundef @.str.4)
  %531 = call ptr @__errno_location() #11
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #10
  %534 = call ptr @__errno_location() #11
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef @.str.2, i32 noundef %524, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 93, ptr noundef %527, ptr noundef %530, ptr noundef %533, i32 noundef %535) #10
  br label %554

537:                                              ; preds = %515, %508
  %538 = load i32, ptr %15, align 4, !tbaa !5
  %539 = call ptr @__errno_location() #11
  store i32 %538, ptr %539, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = load i32, ptr @test_count, align 4, !tbaa !5
  %542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror(i32 noundef %543, ptr noundef @.str.4)
  %545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror_debug(i32 noundef %546, ptr noundef @.str.4)
  %548 = call ptr @__errno_location() #11
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @strerror(i32 noundef %549) #10
  %551 = call ptr @__errno_location() #11
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %540, ptr noundef @.str.5, i32 noundef %541, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 93, ptr noundef %544, ptr noundef %547, ptr noundef %550, i32 noundef %552) #10
  br label %554

554:                                              ; preds = %537, %520
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %555

555:                                              ; preds = %554
  br label %556

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

557:                                              ; No predecessors!
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558, %500
  br label %560

560:                                              ; preds = %559
  br label %561

561:                                              ; preds = %560
  %562 = load ptr, ptr %10, align 8, !tbaa !9
  %563 = getelementptr inbounds %struct.s2n_connection, ptr %562, i32 0, i32 33
  %564 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %563, i32 0, i32 3
  store i16 0, ptr %564, align 2, !tbaa !18
  br label %565

565:                                              ; preds = %561
  %566 = load i32, ptr @test_count, align 4, !tbaa !5
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr @test_count, align 4, !tbaa !5
  %568 = load ptr, ptr %10, align 8, !tbaa !9
  %569 = getelementptr inbounds %struct.s2n_connection, ptr %568, i32 0, i32 33
  %570 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %569, i32 0, i32 1
  %571 = load ptr, ptr %10, align 8, !tbaa !9
  %572 = getelementptr inbounds %struct.s2n_connection, ptr %571, i32 0, i32 33
  %573 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %572, i32 0, i32 3
  %574 = load i16, ptr %573, align 2, !tbaa !18
  %575 = zext i16 %574 to i32
  %576 = load ptr, ptr %10, align 8, !tbaa !9
  %577 = getelementptr inbounds %struct.s2n_connection, ptr %576, i32 0, i32 33
  %578 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %577, i32 0, i32 4
  %579 = call i32 @s2n_array_get(ptr noundef %570, i32 noundef %575, ptr noundef %578)
  %580 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %579, ptr %580, align 4
  %581 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %582 = load i32, ptr %581, align 4
  %583 = call zeroext i1 @s2n_result_is_ok(i32 %582)
  br i1 %583, label %637, label %584

584:                                              ; preds = %565
  br label %585

585:                                              ; preds = %584
  br label %586

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

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

598:                                              ; preds = %593
  %599 = load i32, ptr %17, align 4, !tbaa !5
  %600 = call ptr @__errno_location() #11
  store i32 %599, ptr %600, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror(i32 noundef %604, ptr noundef @.str.4)
  %606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror_debug(i32 noundef %607, ptr noundef @.str.4)
  %609 = call ptr @__errno_location() #11
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call ptr @strerror(i32 noundef %610) #10
  %612 = call ptr @__errno_location() #11
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef @.str.2, i32 noundef %602, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 97, ptr noundef %605, ptr noundef %608, ptr noundef %611, i32 noundef %613) #10
  br label %632

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

632:                                              ; preds = %615, %598
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %633

633:                                              ; preds = %632
  br label %634

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

635:                                              ; No predecessors!
  br label %636

636:                                              ; preds = %635
  br label %637

637:                                              ; preds = %636, %565
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638
  br label %640

640:                                              ; preds = %639
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr @test_count, align 4, !tbaa !5
  %643 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_psk_extension, i32 0, i32 5), align 8, !tbaa !15
  %644 = load ptr, ptr %10, align 8, !tbaa !9
  %645 = call zeroext i1 %643(ptr noundef %644)
  br i1 %645, label %699, label %646

646:                                              ; preds = %640
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %649 = call ptr @__errno_location() #11
  %650 = load i32, ptr %649, align 4, !tbaa !5
  store i32 %650, ptr %18, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = call i32 @s2n_print_stacktrace(ptr noundef %651)
  %653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %654 = trunc i8 %653 to i1
  br i1 %654, label %655, label %677

655:                                              ; preds = %648
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = call i32 @fileno(ptr noundef %656) #10
  %658 = call i32 @isatty(i32 noundef %657) #10
  %659 = icmp ne i32 %658, 0
  br i1 %659, label %660, label %677

660:                                              ; preds = %655
  %661 = load i32, ptr %18, align 4, !tbaa !5
  %662 = call ptr @__errno_location() #11
  store i32 %661, ptr %662, align 4, !tbaa !5
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @s2n_strerror(i32 noundef %666, ptr noundef @.str.4)
  %668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror_debug(i32 noundef %669, ptr noundef @.str.4)
  %671 = call ptr @__errno_location() #11
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call ptr @strerror(i32 noundef %672) #10
  %674 = call ptr @__errno_location() #11
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %663, ptr noundef @.str.2, i32 noundef %664, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 98, ptr noundef %667, ptr noundef %670, ptr noundef %673, i32 noundef %675) #10
  br label %694

677:                                              ; preds = %655, %648
  %678 = load i32, ptr %18, align 4, !tbaa !5
  %679 = call ptr @__errno_location() #11
  store i32 %678, ptr %679, align 4, !tbaa !5
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror(i32 noundef %683, ptr noundef @.str.4)
  %685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call ptr @s2n_strerror_debug(i32 noundef %686, ptr noundef @.str.4)
  %688 = call ptr @__errno_location() #11
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call ptr @strerror(i32 noundef %689) #10
  %691 = call ptr @__errno_location() #11
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef @.str.5, i32 noundef %681, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 98, ptr noundef %684, ptr noundef %687, ptr noundef %690, i32 noundef %692) #10
  br label %694

694:                                              ; preds = %677, %660
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %695

695:                                              ; preds = %694
  br label %696

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

697:                                              ; No predecessors!
  br label %698

698:                                              ; preds = %697
  br label %699

699:                                              ; preds = %698, %640
  br label %700

700:                                              ; preds = %699
  br label %701

701:                                              ; preds = %700
  br label %702

702:                                              ; preds = %701
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr @test_count, align 4, !tbaa !5
  %705 = load ptr, ptr %10, align 8, !tbaa !9
  %706 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %705)
  %707 = icmp eq i32 %706, -1
  br i1 %707, label %708, label %761

708:                                              ; preds = %702
  br label %709

709:                                              ; preds = %708
  br label %710

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

717:                                              ; preds = %710
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = call i32 @fileno(ptr noundef %718) #10
  %720 = call i32 @isatty(i32 noundef %719) #10
  %721 = icmp ne i32 %720, 0
  br i1 %721, label %722, label %739

722:                                              ; preds = %717
  %723 = load i32, ptr %19, align 4, !tbaa !5
  %724 = call ptr @__errno_location() #11
  store i32 %723, ptr %724, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror(i32 noundef %728, ptr noundef @.str.4)
  %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_debug(i32 noundef %731, ptr noundef @.str.4)
  %733 = call ptr @__errno_location() #11
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @strerror(i32 noundef %734) #10
  %736 = call ptr @__errno_location() #11
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef @.str.2, i32 noundef %726, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 103, ptr noundef %729, ptr noundef %732, ptr noundef %735, i32 noundef %737) #10
  br label %756

739:                                              ; preds = %717, %710
  %740 = load i32, ptr %19, align 4, !tbaa !5
  %741 = call ptr @__errno_location() #11
  store i32 %740, ptr %741, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror(i32 noundef %745, ptr noundef @.str.4)
  %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_debug(i32 noundef %748, ptr noundef @.str.4)
  %750 = call ptr @__errno_location() #11
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call ptr @strerror(i32 noundef %751) #10
  %753 = call ptr @__errno_location() #11
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef @.str.5, i32 noundef %743, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 103, ptr noundef %746, ptr noundef %749, ptr noundef %752, i32 noundef %754) #10
  br label %756

756:                                              ; preds = %739, %722
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %757

757:                                              ; preds = %756
  br label %758

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

759:                                              ; No predecessors!
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760, %702
  br label %762

762:                                              ; preds = %761
  br label %763

763:                                              ; preds = %762
  %764 = load ptr, ptr %10, align 8, !tbaa !9
  %765 = getelementptr inbounds %struct.s2n_connection, ptr %764, i32 0, i32 23
  store i8 33, ptr %765, align 4, !tbaa !44
  br label %766

766:                                              ; preds = %763
  %767 = load i32, ptr @test_count, align 4, !tbaa !5
  %768 = add nsw i32 %767, 1
  store i32 %768, ptr @test_count, align 4, !tbaa !5
  %769 = load ptr, ptr %10, align 8, !tbaa !9
  %770 = call i32 @s2n_extension_send(ptr noundef @s2n_server_psk_extension, ptr noundef %769, ptr noundef null)
  %771 = icmp eq i32 %770, -1
  br i1 %771, label %772, label %825

772:                                              ; preds = %766
  br label %773

773:                                              ; preds = %772
  br label %774

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

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

786:                                              ; preds = %781
  %787 = load i32, ptr %20, align 4, !tbaa !5
  %788 = call ptr @__errno_location() #11
  store i32 %787, ptr %788, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror(i32 noundef %792, ptr noundef @.str.4)
  %794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror_debug(i32 noundef %795, ptr noundef @.str.4)
  %797 = call ptr @__errno_location() #11
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call ptr @strerror(i32 noundef %798) #10
  %800 = call ptr @__errno_location() #11
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef @.str.2, i32 noundef %790, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 105, ptr noundef %793, ptr noundef %796, ptr noundef %799, i32 noundef %801) #10
  br label %820

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

820:                                              ; preds = %803, %786
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %821

821:                                              ; preds = %820
  br label %822

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

823:                                              ; No predecessors!
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824, %766
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826
  %828 = load ptr, ptr %10, align 8, !tbaa !9
  %829 = getelementptr inbounds %struct.s2n_connection, ptr %828, i32 0, i32 23
  store i8 34, ptr %829, align 4, !tbaa !44
  br label %830

830:                                              ; preds = %827
  br label %831

831:                                              ; preds = %830
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = load ptr, ptr %10, align 8, !tbaa !9
  %835 = call i32 @s2n_extension_send(ptr noundef @s2n_server_psk_extension, ptr noundef %834, ptr noundef null)
  %836 = icmp eq i32 %835, -1
  br i1 %836, label %890, label %837

837:                                              ; preds = %831
  br label %838

838:                                              ; preds = %837
  br label %839

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

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

851:                                              ; preds = %846
  %852 = load i32, ptr %21, align 4, !tbaa !5
  %853 = call ptr @__errno_location() #11
  store i32 %852, ptr %853, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror(i32 noundef %857, ptr noundef @.str.4)
  %859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror_debug(i32 noundef %860, ptr noundef @.str.4)
  %862 = call ptr @__errno_location() #11
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @strerror(i32 noundef %863) #10
  %865 = call ptr @__errno_location() #11
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %854, ptr noundef @.str.2, i32 noundef %855, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 107, ptr noundef %858, ptr noundef %861, ptr noundef %864, i32 noundef %866) #10
  br label %885

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

885:                                              ; preds = %868, %851
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %886

886:                                              ; preds = %885
  br label %887

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

888:                                              ; No predecessors!
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889, %831
  br label %891

891:                                              ; preds = %890
  br label %892

892:                                              ; preds = %891
  br label %893

893:                                              ; preds = %892
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = add nsw i32 %894, 1
  store i32 %895, ptr @test_count, align 4, !tbaa !5
  %896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = icmp eq i32 %897, 0
  br i1 %898, label %899, label %952

899:                                              ; preds = %893
  br label %900

900:                                              ; preds = %899
  br label %901

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

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

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

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

947:                                              ; preds = %930, %913
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %948

948:                                              ; preds = %947
  br label %949

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

950:                                              ; No predecessors!
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951, %893
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953
  br label %955

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

962:                                              ; preds = %955
  br label %963

963:                                              ; preds = %962
  br label %964

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

971:                                              ; preds = %964
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = call i32 @fileno(ptr noundef %972) #10
  %974 = call i32 @isatty(i32 noundef %973) #10
  %975 = icmp ne i32 %974, 0
  br i1 %975, label %976, label %993

976:                                              ; preds = %971
  %977 = load i32, ptr %23, align 4, !tbaa !5
  %978 = call ptr @__errno_location() #11
  store i32 %977, ptr %978, align 4, !tbaa !5
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror(i32 noundef %982, ptr noundef @.str.4)
  %984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror_debug(i32 noundef %985, ptr noundef @.str.4)
  %987 = call ptr @__errno_location() #11
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call ptr @strerror(i32 noundef %988) #10
  %990 = call ptr @__errno_location() #11
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %979, ptr noundef @.str.2, i32 noundef %980, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 107, ptr noundef %983, ptr noundef %986, ptr noundef %989, i32 noundef %991) #10
  br label %1010

993:                                              ; preds = %971, %964
  %994 = load i32, ptr %23, align 4, !tbaa !5
  %995 = call ptr @__errno_location() #11
  store i32 %994, ptr %995, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = load i32, ptr @test_count, align 4, !tbaa !5
  %998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror(i32 noundef %999, ptr noundef @.str.4)
  %1001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror_debug(i32 noundef %1002, ptr noundef @.str.4)
  %1004 = call ptr @__errno_location() #11
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call ptr @strerror(i32 noundef %1005) #10
  %1007 = call ptr @__errno_location() #11
  %1008 = load i32, ptr %1007, align 4, !tbaa !5
  %1009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %996, ptr noundef @.str.5, i32 noundef %997, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1000, ptr noundef %1003, ptr noundef %1006, i32 noundef %1008) #10
  br label %1010

1010:                                             ; preds = %993, %976
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

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

1013:                                             ; No predecessors!
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014, %955
  br label %1016

1016:                                             ; preds = %1015
  br label %1017

1017:                                             ; preds = %1016
  br label %1018

1018:                                             ; preds = %1017
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1019, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1020 = call ptr @__errno_location() #11
  store i32 0, ptr %1020, align 4, !tbaa !5
  br label %1021

1021:                                             ; preds = %1018
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = add nsw i32 %1026, 1
  store i32 %1027, ptr @test_count, align 4, !tbaa !5
  %1028 = load ptr, ptr %10, align 8, !tbaa !9
  %1029 = call i32 @s2n_connection_free(ptr noundef %1028)
  %1030 = icmp eq i32 %1029, -1
  br i1 %1030, label %1031, label %1084

1031:                                             ; preds = %1025
  br label %1032

1032:                                             ; preds = %1031
  br label %1033

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

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

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

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

1079:                                             ; preds = %1062, %1045
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

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

1082:                                             ; No predecessors!
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

1084:                                             ; preds = %1083, %1025
  br label %1085

1085:                                             ; preds = %1084
  br label %1086

1086:                                             ; preds = %1085
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %25) #10
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 40, i1 false)
  br label %1087

1087:                                             ; preds = %1086
  %1088 = load i32, ptr @test_count, align 4, !tbaa !5
  %1089 = add nsw i32 %1088, 1
  store i32 %1089, ptr @test_count, align 4, !tbaa !5
  %1090 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %25, i32 noundef 0)
  %1091 = icmp eq i32 %1090, -1
  br i1 %1091, label %1092, label %1145

1092:                                             ; preds = %1087
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

1094:                                             ; preds = %1093
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %1095 = call ptr @__errno_location() #11
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  store i32 %1096, ptr %26, align 4, !tbaa !5
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = call i32 @s2n_print_stacktrace(ptr noundef %1097)
  %1099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1100 = trunc i8 %1099 to i1
  br i1 %1100, label %1101, label %1123

1101:                                             ; preds = %1094
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = call i32 @fileno(ptr noundef %1102) #10
  %1104 = call i32 @isatty(i32 noundef %1103) #10
  %1105 = icmp ne i32 %1104, 0
  br i1 %1105, label %1106, label %1123

1106:                                             ; preds = %1101
  %1107 = load i32, ptr %26, align 4, !tbaa !5
  %1108 = call ptr @__errno_location() #11
  store i32 %1107, ptr %1108, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = load i32, ptr @test_count, align 4, !tbaa !5
  %1111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1112 = load i32, ptr %1111, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror(i32 noundef %1112, ptr noundef @.str.4)
  %1114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  %1116 = call ptr @s2n_strerror_debug(i32 noundef %1115, ptr noundef @.str.4)
  %1117 = call ptr @__errno_location() #11
  %1118 = load i32, ptr %1117, align 4, !tbaa !5
  %1119 = call ptr @strerror(i32 noundef %1118) #10
  %1120 = call ptr @__errno_location() #11
  %1121 = load i32, ptr %1120, align 4, !tbaa !5
  %1122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1109, ptr noundef @.str.2, i32 noundef %1110, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1113, ptr noundef %1116, ptr noundef %1119, i32 noundef %1121) #10
  br label %1140

1123:                                             ; preds = %1101, %1094
  %1124 = load i32, ptr %26, align 4, !tbaa !5
  %1125 = call ptr @__errno_location() #11
  store i32 %1124, ptr %1125, align 4, !tbaa !5
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = load i32, ptr @test_count, align 4, !tbaa !5
  %1128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1129 = load i32, ptr %1128, align 4, !tbaa !5
  %1130 = call ptr @s2n_strerror(i32 noundef %1129, ptr noundef @.str.4)
  %1131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  %1133 = call ptr @s2n_strerror_debug(i32 noundef %1132, ptr noundef @.str.4)
  %1134 = call ptr @__errno_location() #11
  %1135 = load i32, ptr %1134, align 4, !tbaa !5
  %1136 = call ptr @strerror(i32 noundef %1135) #10
  %1137 = call ptr @__errno_location() #11
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1126, ptr noundef @.str.5, i32 noundef %1127, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1130, ptr noundef %1133, ptr noundef %1136, i32 noundef %1138) #10
  br label %1140

1140:                                             ; preds = %1123, %1106
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1141

1141:                                             ; preds = %1140
  br label %1142

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

1143:                                             ; No predecessors!
  br label %1144

1144:                                             ; preds = %1143
  br label %1145

1145:                                             ; preds = %1144, %1087
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  store ptr null, ptr %27, align 8, !tbaa !9
  br label %1148

1148:                                             ; preds = %1147
  %1149 = load i32, ptr @test_count, align 4, !tbaa !5
  %1150 = add nsw i32 %1149, 1
  store i32 %1150, ptr @test_count, align 4, !tbaa !5
  %1151 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1151, ptr %27, align 8, !tbaa !9
  %1152 = icmp eq ptr %1151, null
  br i1 %1152, label %1153, label %1206

1153:                                             ; preds = %1148
  br label %1154

1154:                                             ; preds = %1153
  br label %1155

1155:                                             ; preds = %1154
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1156 = call ptr @__errno_location() #11
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  store i32 %1157, ptr %28, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @s2n_print_stacktrace(ptr noundef %1158)
  %1160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1161 = trunc i8 %1160 to i1
  br i1 %1161, label %1162, label %1184

1162:                                             ; preds = %1155
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = call i32 @fileno(ptr noundef %1163) #10
  %1165 = call i32 @isatty(i32 noundef %1164) #10
  %1166 = icmp ne i32 %1165, 0
  br i1 %1166, label %1167, label %1184

1167:                                             ; preds = %1162
  %1168 = load i32, ptr %28, align 4, !tbaa !5
  %1169 = call ptr @__errno_location() #11
  store i32 %1168, ptr %1169, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = load i32, ptr @test_count, align 4, !tbaa !5
  %1172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror(i32 noundef %1173, ptr noundef @.str.4)
  %1175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror_debug(i32 noundef %1176, ptr noundef @.str.4)
  %1178 = call ptr @__errno_location() #11
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @strerror(i32 noundef %1179) #10
  %1181 = call ptr @__errno_location() #11
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1170, ptr noundef @.str.2, i32 noundef %1171, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1174, ptr noundef %1177, ptr noundef %1180, i32 noundef %1182) #10
  br label %1201

1184:                                             ; preds = %1162, %1155
  %1185 = load i32, ptr %28, align 4, !tbaa !5
  %1186 = call ptr @__errno_location() #11
  store i32 %1185, ptr %1186, align 4, !tbaa !5
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1190, ptr noundef @.str.4)
  %1192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror_debug(i32 noundef %1193, ptr noundef @.str.4)
  %1195 = call ptr @__errno_location() #11
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #10
  %1198 = call ptr @__errno_location() #11
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1187, ptr noundef @.str.5, i32 noundef %1188, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1191, ptr noundef %1194, ptr noundef %1197, i32 noundef %1199) #10
  br label %1201

1201:                                             ; preds = %1184, %1167
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

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

1204:                                             ; No predecessors!
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

1206:                                             ; preds = %1205, %1148
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr @test_count, align 4, !tbaa !5
  %1212 = load ptr, ptr %27, align 8, !tbaa !9
  %1213 = call i32 @setup_server_psks(ptr noundef %1212)
  %1214 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  store i32 %1213, ptr %1214, align 4
  %1215 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  %1216 = load i32, ptr %1215, align 4
  %1217 = call zeroext i1 @s2n_result_is_ok(i32 %1216)
  br i1 %1217, label %1271, label %1218

1218:                                             ; preds = %1209
  br label %1219

1219:                                             ; preds = %1218
  br label %1220

1220:                                             ; preds = %1219
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  %1221 = call ptr @__errno_location() #11
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  store i32 %1222, ptr %30, align 4, !tbaa !5
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @s2n_print_stacktrace(ptr noundef %1223)
  %1225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1226 = trunc i8 %1225 to i1
  br i1 %1226, label %1227, label %1249

1227:                                             ; preds = %1220
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @fileno(ptr noundef %1228) #10
  %1230 = call i32 @isatty(i32 noundef %1229) #10
  %1231 = icmp ne i32 %1230, 0
  br i1 %1231, label %1232, label %1249

1232:                                             ; preds = %1227
  %1233 = load i32, ptr %30, align 4, !tbaa !5
  %1234 = call ptr @__errno_location() #11
  store i32 %1233, ptr %1234, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call ptr @s2n_strerror(i32 noundef %1238, ptr noundef @.str.4)
  %1240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror_debug(i32 noundef %1241, ptr noundef @.str.4)
  %1243 = call ptr @__errno_location() #11
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call ptr @strerror(i32 noundef %1244) #10
  %1246 = call ptr @__errno_location() #11
  %1247 = load i32, ptr %1246, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1235, ptr noundef @.str.2, i32 noundef %1236, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1239, ptr noundef %1242, ptr noundef %1245, i32 noundef %1247) #10
  br label %1266

1249:                                             ; preds = %1227, %1220
  %1250 = load i32, ptr %30, align 4, !tbaa !5
  %1251 = call ptr @__errno_location() #11
  store i32 %1250, ptr %1251, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror(i32 noundef %1255, ptr noundef @.str.4)
  %1257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @s2n_strerror_debug(i32 noundef %1258, ptr noundef @.str.4)
  %1260 = call ptr @__errno_location() #11
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call ptr @strerror(i32 noundef %1261) #10
  %1263 = call ptr @__errno_location() #11
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1252, ptr noundef @.str.5, i32 noundef %1253, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1256, ptr noundef %1259, ptr noundef %1262, i32 noundef %1264) #10
  br label %1266

1266:                                             ; preds = %1249, %1232
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1267

1267:                                             ; preds = %1266
  br label %1268

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

1269:                                             ; No predecessors!
  br label %1270

1270:                                             ; preds = %1269
  br label %1271

1271:                                             ; preds = %1270, %1209
  br label %1272

1272:                                             ; preds = %1271
  br label %1273

1273:                                             ; preds = %1272
  %1274 = load ptr, ptr %27, align 8, !tbaa !9
  %1275 = getelementptr inbounds %struct.s2n_connection, ptr %1274, i32 0, i32 33
  %1276 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1275, i32 0, i32 3
  store i16 1, ptr %1276, align 2, !tbaa !18
  br label %1277

1277:                                             ; preds = %1273
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = add nsw i32 %1278, 1
  store i32 %1279, ptr @test_count, align 4, !tbaa !5
  %1280 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_psk_extension, i32 0, i32 3), align 8, !tbaa !45
  %1281 = load ptr, ptr %27, align 8, !tbaa !9
  %1282 = call i32 %1280(ptr noundef %1281, ptr noundef %25)
  %1283 = icmp eq i32 %1282, -1
  br i1 %1283, label %1284, label %1337

1284:                                             ; preds = %1277
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

1286:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %1287 = call ptr @__errno_location() #11
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  store i32 %1288, ptr %31, align 4, !tbaa !5
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = call i32 @s2n_print_stacktrace(ptr noundef %1289)
  %1291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1292 = trunc i8 %1291 to i1
  br i1 %1292, label %1293, label %1315

1293:                                             ; preds = %1286
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = call i32 @fileno(ptr noundef %1294) #10
  %1296 = call i32 @isatty(i32 noundef %1295) #10
  %1297 = icmp ne i32 %1296, 0
  br i1 %1297, label %1298, label %1315

1298:                                             ; preds = %1293
  %1299 = load i32, ptr %31, align 4, !tbaa !5
  %1300 = call ptr @__errno_location() #11
  store i32 %1299, ptr %1300, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror(i32 noundef %1304, ptr noundef @.str.4)
  %1306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror_debug(i32 noundef %1307, ptr noundef @.str.4)
  %1309 = call ptr @__errno_location() #11
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call ptr @strerror(i32 noundef %1310) #10
  %1312 = call ptr @__errno_location() #11
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1301, ptr noundef @.str.2, i32 noundef %1302, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1305, ptr noundef %1308, ptr noundef %1311, i32 noundef %1313) #10
  br label %1332

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

1332:                                             ; preds = %1315, %1298
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %1333

1333:                                             ; preds = %1332
  br label %1334

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

1335:                                             ; No predecessors!
  br label %1336

1336:                                             ; preds = %1335
  br label %1337

1337:                                             ; preds = %1336, %1277
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

1339:                                             ; preds = %1338
  call void @llvm.lifetime.start.p0(i64 2, ptr %32) #10
  store i16 0, ptr %32, align 2, !tbaa !46
  br label %1340

1340:                                             ; preds = %1339
  %1341 = load i32, ptr @test_count, align 4, !tbaa !5
  %1342 = add nsw i32 %1341, 1
  store i32 %1342, ptr @test_count, align 4, !tbaa !5
  %1343 = call i32 @s2n_stuffer_read_uint16(ptr noundef %25, ptr noundef %32)
  %1344 = icmp eq i32 %1343, -1
  br i1 %1344, label %1345, label %1398

1345:                                             ; preds = %1340
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1348 = call ptr @__errno_location() #11
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  store i32 %1349, ptr %33, align 4, !tbaa !5
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = call i32 @s2n_print_stacktrace(ptr noundef %1350)
  %1352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1353 = trunc i8 %1352 to i1
  br i1 %1353, label %1354, label %1376

1354:                                             ; preds = %1347
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = call i32 @fileno(ptr noundef %1355) #10
  %1357 = call i32 @isatty(i32 noundef %1356) #10
  %1358 = icmp ne i32 %1357, 0
  br i1 %1358, label %1359, label %1376

1359:                                             ; preds = %1354
  %1360 = load i32, ptr %33, align 4, !tbaa !5
  %1361 = call ptr @__errno_location() #11
  store i32 %1360, ptr %1361, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror(i32 noundef %1365, ptr noundef @.str.4)
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror_debug(i32 noundef %1368, ptr noundef @.str.4)
  %1370 = call ptr @__errno_location() #11
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @strerror(i32 noundef %1371) #10
  %1373 = call ptr @__errno_location() #11
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1362, ptr noundef @.str.2, i32 noundef %1363, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 128, ptr noundef %1366, ptr noundef %1369, ptr noundef %1372, i32 noundef %1374) #10
  br label %1393

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

1393:                                             ; preds = %1376, %1359
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

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

1396:                                             ; No predecessors!
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

1398:                                             ; preds = %1397, %1340
  br label %1399

1399:                                             ; preds = %1398
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = add nsw i32 %1402, 1
  store i32 %1403, ptr @test_count, align 4, !tbaa !5
  %1404 = load i16, ptr %32, align 2, !tbaa !46
  %1405 = zext i16 %1404 to i32
  %1406 = load ptr, ptr %27, align 8, !tbaa !9
  %1407 = getelementptr inbounds %struct.s2n_connection, ptr %1406, i32 0, i32 33
  %1408 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1407, i32 0, i32 3
  %1409 = load i16, ptr %1408, align 2, !tbaa !18
  %1410 = zext i16 %1409 to i32
  %1411 = icmp eq i32 %1405, %1410
  br i1 %1411, label %1465, label %1412

1412:                                             ; preds = %1401
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

1414:                                             ; preds = %1413
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %1415 = call ptr @__errno_location() #11
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  store i32 %1416, ptr %34, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @s2n_print_stacktrace(ptr noundef %1417)
  %1419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1420 = trunc i8 %1419 to i1
  br i1 %1420, label %1421, label %1443

1421:                                             ; preds = %1414
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @fileno(ptr noundef %1422) #10
  %1424 = call i32 @isatty(i32 noundef %1423) #10
  %1425 = icmp ne i32 %1424, 0
  br i1 %1425, label %1426, label %1443

1426:                                             ; preds = %1421
  %1427 = load i32, ptr %34, align 4, !tbaa !5
  %1428 = call ptr @__errno_location() #11
  store i32 %1427, ptr %1428, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = load i32, ptr @test_count, align 4, !tbaa !5
  %1431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror(i32 noundef %1432, ptr noundef @.str.4)
  %1434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror_debug(i32 noundef %1435, ptr noundef @.str.4)
  %1437 = call ptr @__errno_location() #11
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @strerror(i32 noundef %1438) #10
  %1440 = call ptr @__errno_location() #11
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1429, ptr noundef @.str.2, i32 noundef %1430, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 129, ptr noundef %1433, ptr noundef %1436, ptr noundef %1439, i32 noundef %1441) #10
  br label %1460

1443:                                             ; preds = %1421, %1414
  %1444 = load i32, ptr %34, align 4, !tbaa !5
  %1445 = call ptr @__errno_location() #11
  store i32 %1444, ptr %1445, align 4, !tbaa !5
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = load i32, ptr @test_count, align 4, !tbaa !5
  %1448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1449 = load i32, ptr %1448, align 4, !tbaa !5
  %1450 = call ptr @s2n_strerror(i32 noundef %1449, ptr noundef @.str.4)
  %1451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1452 = load i32, ptr %1451, align 4, !tbaa !5
  %1453 = call ptr @s2n_strerror_debug(i32 noundef %1452, ptr noundef @.str.4)
  %1454 = call ptr @__errno_location() #11
  %1455 = load i32, ptr %1454, align 4, !tbaa !5
  %1456 = call ptr @strerror(i32 noundef %1455) #10
  %1457 = call ptr @__errno_location() #11
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1446, ptr noundef @.str.5, i32 noundef %1447, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 129, ptr noundef %1450, ptr noundef %1453, ptr noundef %1456, i32 noundef %1458) #10
  br label %1460

1460:                                             ; preds = %1443, %1426
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1461

1461:                                             ; preds = %1460
  br label %1462

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

1463:                                             ; No predecessors!
  br label %1464

1464:                                             ; preds = %1463
  br label %1465

1465:                                             ; preds = %1464, %1401
  br label %1466

1466:                                             ; preds = %1465
  br label %1467

1467:                                             ; preds = %1466
  br label %1468

1468:                                             ; preds = %1467
  %1469 = load i32, ptr @test_count, align 4, !tbaa !5
  %1470 = add nsw i32 %1469, 1
  store i32 %1470, ptr @test_count, align 4, !tbaa !5
  %1471 = load ptr, ptr %27, align 8, !tbaa !9
  %1472 = call i32 @s2n_connection_free(ptr noundef %1471)
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1474, label %1527

1474:                                             ; preds = %1468
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1477 = call ptr @__errno_location() #11
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  store i32 %1478, ptr %35, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = call i32 @s2n_print_stacktrace(ptr noundef %1479)
  %1481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1482 = trunc i8 %1481 to i1
  br i1 %1482, label %1483, label %1505

1483:                                             ; preds = %1476
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = call i32 @fileno(ptr noundef %1484) #10
  %1486 = call i32 @isatty(i32 noundef %1485) #10
  %1487 = icmp ne i32 %1486, 0
  br i1 %1487, label %1488, label %1505

1488:                                             ; preds = %1483
  %1489 = load i32, ptr %35, align 4, !tbaa !5
  %1490 = call ptr @__errno_location() #11
  store i32 %1489, ptr %1490, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror(i32 noundef %1494, ptr noundef @.str.4)
  %1496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror_debug(i32 noundef %1497, ptr noundef @.str.4)
  %1499 = call ptr @__errno_location() #11
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @strerror(i32 noundef %1500) #10
  %1502 = call ptr @__errno_location() #11
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1491, ptr noundef @.str.2, i32 noundef %1492, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 131, ptr noundef %1495, ptr noundef %1498, ptr noundef %1501, i32 noundef %1503) #10
  br label %1522

1505:                                             ; preds = %1483, %1476
  %1506 = load i32, ptr %35, align 4, !tbaa !5
  %1507 = call ptr @__errno_location() #11
  store i32 %1506, ptr %1507, align 4, !tbaa !5
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror(i32 noundef %1511, ptr noundef @.str.4)
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef @.str.4)
  %1516 = call ptr @__errno_location() #11
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call ptr @strerror(i32 noundef %1517) #10
  %1519 = call ptr @__errno_location() #11
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1508, ptr noundef @.str.5, i32 noundef %1509, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 131, ptr noundef %1512, ptr noundef %1515, ptr noundef %1518, i32 noundef %1520) #10
  br label %1522

1522:                                             ; preds = %1505, %1488
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1523

1523:                                             ; preds = %1522
  br label %1524

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

1525:                                             ; No predecessors!
  br label %1526

1526:                                             ; preds = %1525
  br label %1527

1527:                                             ; preds = %1526, %1468
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

1530:                                             ; preds = %1529
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = add nsw i32 %1531, 1
  store i32 %1532, ptr @test_count, align 4, !tbaa !5
  %1533 = call i32 @s2n_stuffer_free(ptr noundef %25)
  %1534 = icmp eq i32 %1533, -1
  br i1 %1534, label %1535, label %1588

1535:                                             ; preds = %1530
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %1538 = call ptr @__errno_location() #11
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  store i32 %1539, ptr %36, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = call i32 @s2n_print_stacktrace(ptr noundef %1540)
  %1542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1543 = trunc i8 %1542 to i1
  br i1 %1543, label %1544, label %1566

1544:                                             ; preds = %1537
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = call i32 @fileno(ptr noundef %1545) #10
  %1547 = call i32 @isatty(i32 noundef %1546) #10
  %1548 = icmp ne i32 %1547, 0
  br i1 %1548, label %1549, label %1566

1549:                                             ; preds = %1544
  %1550 = load i32, ptr %36, align 4, !tbaa !5
  %1551 = call ptr @__errno_location() #11
  store i32 %1550, ptr %1551, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = load i32, ptr @test_count, align 4, !tbaa !5
  %1554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @s2n_strerror(i32 noundef %1555, ptr noundef @.str.4)
  %1557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call ptr @s2n_strerror_debug(i32 noundef %1558, ptr noundef @.str.4)
  %1560 = call ptr @__errno_location() #11
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call ptr @strerror(i32 noundef %1561) #10
  %1563 = call ptr @__errno_location() #11
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1552, ptr noundef @.str.2, i32 noundef %1553, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 132, ptr noundef %1556, ptr noundef %1559, ptr noundef %1562, i32 noundef %1564) #10
  br label %1583

1566:                                             ; preds = %1544, %1537
  %1567 = load i32, ptr %36, align 4, !tbaa !5
  %1568 = call ptr @__errno_location() #11
  store i32 %1567, ptr %1568, align 4, !tbaa !5
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = load i32, ptr @test_count, align 4, !tbaa !5
  %1571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror(i32 noundef %1572, ptr noundef @.str.4)
  %1574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror_debug(i32 noundef %1575, ptr noundef @.str.4)
  %1577 = call ptr @__errno_location() #11
  %1578 = load i32, ptr %1577, align 4, !tbaa !5
  %1579 = call ptr @strerror(i32 noundef %1578) #10
  %1580 = call ptr @__errno_location() #11
  %1581 = load i32, ptr %1580, align 4, !tbaa !5
  %1582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1569, ptr noundef @.str.5, i32 noundef %1570, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 132, ptr noundef %1573, ptr noundef %1576, ptr noundef %1579, i32 noundef %1581) #10
  br label %1583

1583:                                             ; preds = %1566, %1549
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

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

1586:                                             ; No predecessors!
  br label %1587

1587:                                             ; preds = %1586
  br label %1588

1588:                                             ; preds = %1587, %1530
  br label %1589

1589:                                             ; preds = %1588
  br label %1590

1590:                                             ; preds = %1589
  call void @llvm.lifetime.end.p0(i64 2, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %25) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #10
  store i8 0, ptr %37, align 1, !tbaa !47
  br label %1591

1591:                                             ; preds = %1590
  %1592 = load i32, ptr @test_count, align 4, !tbaa !5
  %1593 = add nsw i32 %1592, 1
  store i32 %1593, ptr @test_count, align 4, !tbaa !5
  %1594 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 51, ptr noundef %37)
  %1595 = icmp eq i32 %1594, -1
  br i1 %1595, label %1596, label %1649

1596:                                             ; preds = %1591
  br label %1597

1597:                                             ; preds = %1596
  br label %1598

1598:                                             ; preds = %1597
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1599 = call ptr @__errno_location() #11
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  store i32 %1600, ptr %38, align 4, !tbaa !5
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = call i32 @s2n_print_stacktrace(ptr noundef %1601)
  %1603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1604 = trunc i8 %1603 to i1
  br i1 %1604, label %1605, label %1627

1605:                                             ; preds = %1598
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = call i32 @fileno(ptr noundef %1606) #10
  %1608 = call i32 @isatty(i32 noundef %1607) #10
  %1609 = icmp ne i32 %1608, 0
  br i1 %1609, label %1610, label %1627

1610:                                             ; preds = %1605
  %1611 = load i32, ptr %38, align 4, !tbaa !5
  %1612 = call ptr @__errno_location() #11
  store i32 %1611, ptr %1612, align 4, !tbaa !5
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror(i32 noundef %1616, ptr noundef @.str.4)
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror_debug(i32 noundef %1619, ptr noundef @.str.4)
  %1621 = call ptr @__errno_location() #11
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @strerror(i32 noundef %1622) #10
  %1624 = call ptr @__errno_location() #11
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1613, ptr noundef @.str.2, i32 noundef %1614, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1617, ptr noundef %1620, ptr noundef %1623, i32 noundef %1625) #10
  br label %1644

1627:                                             ; preds = %1605, %1598
  %1628 = load i32, ptr %38, align 4, !tbaa !5
  %1629 = call ptr @__errno_location() #11
  store i32 %1628, ptr %1629, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = load i32, ptr @test_count, align 4, !tbaa !5
  %1632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror(i32 noundef %1633, ptr noundef @.str.4)
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror_debug(i32 noundef %1636, ptr noundef @.str.4)
  %1638 = call ptr @__errno_location() #11
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @strerror(i32 noundef %1639) #10
  %1641 = call ptr @__errno_location() #11
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1630, ptr noundef @.str.5, i32 noundef %1631, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1634, ptr noundef %1637, ptr noundef %1640, i32 noundef %1642) #10
  br label %1644

1644:                                             ; preds = %1627, %1610
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

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

1647:                                             ; No predecessors!
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648, %1591
  br label %1650

1650:                                             ; preds = %1649
  br label %1651

1651:                                             ; preds = %1650
  call void @llvm.lifetime.start.p0(i64 40, ptr %39) #10
  call void @llvm.memset.p0.i64(ptr align 8 %39, i8 0, i64 40, i1 false)
  br label %1652

1652:                                             ; preds = %1651
  %1653 = load i32, ptr @test_count, align 4, !tbaa !5
  %1654 = add nsw i32 %1653, 1
  store i32 %1654, ptr @test_count, align 4, !tbaa !5
  %1655 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %39, i32 noundef 0)
  %1656 = icmp eq i32 %1655, -1
  br i1 %1656, label %1657, label %1710

1657:                                             ; preds = %1652
  br label %1658

1658:                                             ; preds = %1657
  br label %1659

1659:                                             ; preds = %1658
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  %1660 = call ptr @__errno_location() #11
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  store i32 %1661, ptr %40, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = call i32 @s2n_print_stacktrace(ptr noundef %1662)
  %1664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1665 = trunc i8 %1664 to i1
  br i1 %1665, label %1666, label %1688

1666:                                             ; preds = %1659
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = call i32 @fileno(ptr noundef %1667) #10
  %1669 = call i32 @isatty(i32 noundef %1668) #10
  %1670 = icmp ne i32 %1669, 0
  br i1 %1670, label %1671, label %1688

1671:                                             ; preds = %1666
  %1672 = load i32, ptr %40, align 4, !tbaa !5
  %1673 = call ptr @__errno_location() #11
  store i32 %1672, ptr %1673, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror(i32 noundef %1677, ptr noundef @.str.4)
  %1679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  %1681 = call ptr @s2n_strerror_debug(i32 noundef %1680, ptr noundef @.str.4)
  %1682 = call ptr @__errno_location() #11
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = call ptr @strerror(i32 noundef %1683) #10
  %1685 = call ptr @__errno_location() #11
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef @.str.2, i32 noundef %1675, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 144, ptr noundef %1678, ptr noundef %1681, ptr noundef %1684, i32 noundef %1686) #10
  br label %1705

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

1705:                                             ; preds = %1688, %1671
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

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

1708:                                             ; No predecessors!
  br label %1709

1709:                                             ; preds = %1708
  br label %1710

1710:                                             ; preds = %1709, %1652
  br label %1711

1711:                                             ; preds = %1710
  br label %1712

1712:                                             ; preds = %1711
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  store ptr null, ptr %41, align 8, !tbaa !9
  br label %1713

1713:                                             ; preds = %1712
  %1714 = load i32, ptr @test_count, align 4, !tbaa !5
  %1715 = add nsw i32 %1714, 1
  store i32 %1715, ptr @test_count, align 4, !tbaa !5
  %1716 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1716, ptr %41, align 8, !tbaa !9
  %1717 = icmp eq ptr %1716, null
  br i1 %1717, label %1718, label %1771

1718:                                             ; preds = %1713
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %1721 = call ptr @__errno_location() #11
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  store i32 %1722, ptr %42, align 4, !tbaa !5
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = call i32 @s2n_print_stacktrace(ptr noundef %1723)
  %1725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1726 = trunc i8 %1725 to i1
  br i1 %1726, label %1727, label %1749

1727:                                             ; preds = %1720
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = call i32 @fileno(ptr noundef %1728) #10
  %1730 = call i32 @isatty(i32 noundef %1729) #10
  %1731 = icmp ne i32 %1730, 0
  br i1 %1731, label %1732, label %1749

1732:                                             ; preds = %1727
  %1733 = load i32, ptr %42, align 4, !tbaa !5
  %1734 = call ptr @__errno_location() #11
  store i32 %1733, ptr %1734, align 4, !tbaa !5
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = load i32, ptr @test_count, align 4, !tbaa !5
  %1737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror(i32 noundef %1738, ptr noundef @.str.4)
  %1740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = call ptr @s2n_strerror_debug(i32 noundef %1741, ptr noundef @.str.4)
  %1743 = call ptr @__errno_location() #11
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  %1745 = call ptr @strerror(i32 noundef %1744) #10
  %1746 = call ptr @__errno_location() #11
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1735, ptr noundef @.str.2, i32 noundef %1736, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 147, ptr noundef %1739, ptr noundef %1742, ptr noundef %1745, i32 noundef %1747) #10
  br label %1766

1749:                                             ; preds = %1727, %1720
  %1750 = load i32, ptr %42, align 4, !tbaa !5
  %1751 = call ptr @__errno_location() #11
  store i32 %1750, ptr %1751, align 4, !tbaa !5
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = load i32, ptr @test_count, align 4, !tbaa !5
  %1754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call ptr @s2n_strerror(i32 noundef %1755, ptr noundef @.str.4)
  %1757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @s2n_strerror_debug(i32 noundef %1758, ptr noundef @.str.4)
  %1760 = call ptr @__errno_location() #11
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #10
  %1763 = call ptr @__errno_location() #11
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1752, ptr noundef @.str.5, i32 noundef %1753, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 147, ptr noundef %1756, ptr noundef %1759, ptr noundef %1762, i32 noundef %1764) #10
  br label %1766

1766:                                             ; preds = %1749, %1732
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1767

1767:                                             ; preds = %1766
  br label %1768

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

1769:                                             ; No predecessors!
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770, %1713
  br label %1772

1772:                                             ; preds = %1771
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  %1775 = load i32, ptr @test_count, align 4, !tbaa !5
  %1776 = add nsw i32 %1775, 1
  store i32 %1776, ptr @test_count, align 4, !tbaa !5
  %1777 = load ptr, ptr %41, align 8, !tbaa !9
  %1778 = call i32 @setup_client_psks(ptr noundef %1777)
  %1779 = getelementptr inbounds %struct.s2n_result, ptr %43, i32 0, i32 0
  store i32 %1778, ptr %1779, align 4
  %1780 = getelementptr inbounds %struct.s2n_result, ptr %43, i32 0, i32 0
  %1781 = load i32, ptr %1780, align 4
  %1782 = call zeroext i1 @s2n_result_is_ok(i32 %1781)
  br i1 %1782, label %1836, label %1783

1783:                                             ; preds = %1774
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %1786 = call ptr @__errno_location() #11
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  store i32 %1787, ptr %44, align 4, !tbaa !5
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = call i32 @s2n_print_stacktrace(ptr noundef %1788)
  %1790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1791 = trunc i8 %1790 to i1
  br i1 %1791, label %1792, label %1814

1792:                                             ; preds = %1785
  %1793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1794 = call i32 @fileno(ptr noundef %1793) #10
  %1795 = call i32 @isatty(i32 noundef %1794) #10
  %1796 = icmp ne i32 %1795, 0
  br i1 %1796, label %1797, label %1814

1797:                                             ; preds = %1792
  %1798 = load i32, ptr %44, align 4, !tbaa !5
  %1799 = call ptr @__errno_location() #11
  store i32 %1798, ptr %1799, align 4, !tbaa !5
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = load i32, ptr @test_count, align 4, !tbaa !5
  %1802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = call ptr @s2n_strerror(i32 noundef %1803, ptr noundef @.str.4)
  %1805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call ptr @s2n_strerror_debug(i32 noundef %1806, ptr noundef @.str.4)
  %1808 = call ptr @__errno_location() #11
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @strerror(i32 noundef %1809) #10
  %1811 = call ptr @__errno_location() #11
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1800, ptr noundef @.str.2, i32 noundef %1801, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 149, ptr noundef %1804, ptr noundef %1807, ptr noundef %1810, i32 noundef %1812) #10
  br label %1831

1814:                                             ; preds = %1792, %1785
  %1815 = load i32, ptr %44, align 4, !tbaa !5
  %1816 = call ptr @__errno_location() #11
  store i32 %1815, ptr %1816, align 4, !tbaa !5
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = load i32, ptr @test_count, align 4, !tbaa !5
  %1819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror(i32 noundef %1820, ptr noundef @.str.4)
  %1822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call ptr @s2n_strerror_debug(i32 noundef %1823, ptr noundef @.str.4)
  %1825 = call ptr @__errno_location() #11
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call ptr @strerror(i32 noundef %1826) #10
  %1828 = call ptr @__errno_location() #11
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1817, ptr noundef @.str.5, i32 noundef %1818, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 149, ptr noundef %1821, ptr noundef %1824, ptr noundef %1827, i32 noundef %1829) #10
  br label %1831

1831:                                             ; preds = %1814, %1797
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1832

1832:                                             ; preds = %1831
  br label %1833

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

1834:                                             ; No predecessors!
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

1836:                                             ; preds = %1835, %1774
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

1838:                                             ; preds = %1837
  %1839 = load i8, ptr %37, align 1, !tbaa !47
  %1840 = zext i8 %1839 to i32
  %1841 = srem i32 %1840, 8
  %1842 = shl i32 1, %1841
  %1843 = load ptr, ptr %41, align 8, !tbaa !9
  %1844 = getelementptr inbounds %struct.s2n_connection, ptr %1843, i32 0, i32 11
  %1845 = load i8, ptr %37, align 1, !tbaa !47
  %1846 = zext i8 %1845 to i32
  %1847 = ashr i32 %1846, 3
  %1848 = sext i32 %1847 to i64
  %1849 = getelementptr inbounds [22 x i8], ptr %1844, i64 0, i64 %1848
  %1850 = load i8, ptr %1849, align 1, !tbaa !47
  %1851 = sext i8 %1850 to i32
  %1852 = or i32 %1851, %1842
  %1853 = trunc i32 %1852 to i8
  store i8 %1853, ptr %1849, align 1, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 2, ptr %45) #10
  store i16 1, ptr %45, align 2, !tbaa !46
  %1854 = load ptr, ptr %41, align 8, !tbaa !9
  %1855 = getelementptr inbounds %struct.s2n_connection, ptr %1854, i32 0, i32 23
  store i8 33, ptr %1855, align 4, !tbaa !44
  br label %1856

1856:                                             ; preds = %1838
  %1857 = load i32, ptr @test_count, align 4, !tbaa !5
  %1858 = add nsw i32 %1857, 1
  store i32 %1858, ptr @test_count, align 4, !tbaa !5
  %1859 = load i16, ptr %45, align 2, !tbaa !46
  %1860 = call i32 @s2n_stuffer_write_uint16(ptr noundef %39, i16 noundef zeroext %1859)
  %1861 = icmp eq i32 %1860, -1
  br i1 %1861, label %1862, label %1915

1862:                                             ; preds = %1856
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

1864:                                             ; preds = %1863
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1865 = call ptr @__errno_location() #11
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  store i32 %1866, ptr %46, align 4, !tbaa !5
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = call i32 @s2n_print_stacktrace(ptr noundef %1867)
  %1869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1870 = trunc i8 %1869 to i1
  br i1 %1870, label %1871, label %1893

1871:                                             ; preds = %1864
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = call i32 @fileno(ptr noundef %1872) #10
  %1874 = call i32 @isatty(i32 noundef %1873) #10
  %1875 = icmp ne i32 %1874, 0
  br i1 %1875, label %1876, label %1893

1876:                                             ; preds = %1871
  %1877 = load i32, ptr %46, align 4, !tbaa !5
  %1878 = call ptr @__errno_location() #11
  store i32 %1877, ptr %1878, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror(i32 noundef %1882, ptr noundef @.str.4)
  %1884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror_debug(i32 noundef %1885, ptr noundef @.str.4)
  %1887 = call ptr @__errno_location() #11
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call ptr @strerror(i32 noundef %1888) #10
  %1890 = call ptr @__errno_location() #11
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1879, ptr noundef @.str.2, i32 noundef %1880, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 159, ptr noundef %1883, ptr noundef %1886, ptr noundef %1889, i32 noundef %1891) #10
  br label %1910

1893:                                             ; preds = %1871, %1864
  %1894 = load i32, ptr %46, align 4, !tbaa !5
  %1895 = call ptr @__errno_location() #11
  store i32 %1894, ptr %1895, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror(i32 noundef %1899, ptr noundef @.str.4)
  %1901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror_debug(i32 noundef %1902, ptr noundef @.str.4)
  %1904 = call ptr @__errno_location() #11
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @strerror(i32 noundef %1905) #10
  %1907 = call ptr @__errno_location() #11
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1896, ptr noundef @.str.5, i32 noundef %1897, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 159, ptr noundef %1900, ptr noundef %1903, ptr noundef %1906, i32 noundef %1908) #10
  br label %1910

1910:                                             ; preds = %1893, %1876
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

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

1913:                                             ; No predecessors!
  br label %1914

1914:                                             ; preds = %1913
  br label %1915

1915:                                             ; preds = %1914, %1856
  br label %1916

1916:                                             ; preds = %1915
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = add nsw i32 %1919, 1
  store i32 %1920, ptr @test_count, align 4, !tbaa !5
  %1921 = load ptr, ptr %41, align 8, !tbaa !9
  %1922 = getelementptr inbounds %struct.s2n_connection, ptr %1921, i32 0, i32 33
  %1923 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1922, i32 0, i32 4
  %1924 = load ptr, ptr %1923, align 8, !tbaa !48
  %1925 = icmp eq ptr %1924, null
  br i1 %1925, label %1979, label %1926

1926:                                             ; preds = %1918
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

1928:                                             ; preds = %1927
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %1929 = call ptr @__errno_location() #11
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  store i32 %1930, ptr %47, align 4, !tbaa !5
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = call i32 @s2n_print_stacktrace(ptr noundef %1931)
  %1933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1934 = trunc i8 %1933 to i1
  br i1 %1934, label %1935, label %1957

1935:                                             ; preds = %1928
  %1936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1937 = call i32 @fileno(ptr noundef %1936) #10
  %1938 = call i32 @isatty(i32 noundef %1937) #10
  %1939 = icmp ne i32 %1938, 0
  br i1 %1939, label %1940, label %1957

1940:                                             ; preds = %1935
  %1941 = load i32, ptr %47, align 4, !tbaa !5
  %1942 = call ptr @__errno_location() #11
  store i32 %1941, ptr %1942, align 4, !tbaa !5
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1946 = load i32, ptr %1945, align 4, !tbaa !5
  %1947 = call ptr @s2n_strerror(i32 noundef %1946, ptr noundef @.str.4)
  %1948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call ptr @s2n_strerror_debug(i32 noundef %1949, ptr noundef @.str.4)
  %1951 = call ptr @__errno_location() #11
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @strerror(i32 noundef %1952) #10
  %1954 = call ptr @__errno_location() #11
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1943, ptr noundef @.str.2, i32 noundef %1944, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1947, ptr noundef %1950, ptr noundef %1953, i32 noundef %1955) #10
  br label %1974

1957:                                             ; preds = %1935, %1928
  %1958 = load i32, ptr %47, align 4, !tbaa !5
  %1959 = call ptr @__errno_location() #11
  store i32 %1958, ptr %1959, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @s2n_strerror(i32 noundef %1963, ptr noundef @.str.4)
  %1965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror_debug(i32 noundef %1966, ptr noundef @.str.4)
  %1968 = call ptr @__errno_location() #11
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @strerror(i32 noundef %1969) #10
  %1971 = call ptr @__errno_location() #11
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1960, ptr noundef @.str.5, i32 noundef %1961, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1964, ptr noundef %1967, ptr noundef %1970, i32 noundef %1972) #10
  br label %1974

1974:                                             ; preds = %1957, %1940
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

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

1977:                                             ; No predecessors!
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978, %1918
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  br label %1982

1982:                                             ; preds = %1981
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = load ptr, ptr %41, align 8, !tbaa !9
  %1986 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %1985)
  %1987 = icmp eq i32 %1986, -1
  br i1 %1987, label %1988, label %2041

1988:                                             ; preds = %1982
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

1990:                                             ; preds = %1989
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %1991 = call ptr @__errno_location() #11
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  store i32 %1992, ptr %48, align 4, !tbaa !5
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = call i32 @s2n_print_stacktrace(ptr noundef %1993)
  %1995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1996 = trunc i8 %1995 to i1
  br i1 %1996, label %1997, label %2019

1997:                                             ; preds = %1990
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = call i32 @fileno(ptr noundef %1998) #10
  %2000 = call i32 @isatty(i32 noundef %1999) #10
  %2001 = icmp ne i32 %2000, 0
  br i1 %2001, label %2002, label %2019

2002:                                             ; preds = %1997
  %2003 = load i32, ptr %48, align 4, !tbaa !5
  %2004 = call ptr @__errno_location() #11
  store i32 %2003, ptr %2004, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = load i32, ptr @test_count, align 4, !tbaa !5
  %2007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror(i32 noundef %2008, ptr noundef @.str.4)
  %2010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call ptr @s2n_strerror_debug(i32 noundef %2011, ptr noundef @.str.4)
  %2013 = call ptr @__errno_location() #11
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call ptr @strerror(i32 noundef %2014) #10
  %2016 = call ptr @__errno_location() #11
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2005, ptr noundef @.str.2, i32 noundef %2006, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2009, ptr noundef %2012, ptr noundef %2015, i32 noundef %2017) #10
  br label %2036

2019:                                             ; preds = %1997, %1990
  %2020 = load i32, ptr %48, align 4, !tbaa !5
  %2021 = call ptr @__errno_location() #11
  store i32 %2020, ptr %2021, align 4, !tbaa !5
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = load i32, ptr @test_count, align 4, !tbaa !5
  %2024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @s2n_strerror(i32 noundef %2025, ptr noundef @.str.4)
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror_debug(i32 noundef %2028, ptr noundef @.str.4)
  %2030 = call ptr @__errno_location() #11
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #10
  %2033 = call ptr @__errno_location() #11
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2022, ptr noundef @.str.5, i32 noundef %2023, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2026, ptr noundef %2029, ptr noundef %2032, i32 noundef %2034) #10
  br label %2036

2036:                                             ; preds = %2019, %2002
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

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

2039:                                             ; No predecessors!
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040, %1982
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = add nsw i32 %2045, 1
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = load ptr, ptr %41, align 8, !tbaa !9
  %2048 = call i32 @s2n_extension_recv(ptr noundef @s2n_server_psk_extension, ptr noundef %2047, ptr noundef %39)
  %2049 = icmp eq i32 %2048, -1
  br i1 %2049, label %2050, label %2103

2050:                                             ; preds = %2044
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

2052:                                             ; preds = %2051
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %2053 = call ptr @__errno_location() #11
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  store i32 %2054, ptr %49, align 4, !tbaa !5
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @s2n_print_stacktrace(ptr noundef %2055)
  %2057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2058 = trunc i8 %2057 to i1
  br i1 %2058, label %2059, label %2081

2059:                                             ; preds = %2052
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @fileno(ptr noundef %2060) #10
  %2062 = call i32 @isatty(i32 noundef %2061) #10
  %2063 = icmp ne i32 %2062, 0
  br i1 %2063, label %2064, label %2081

2064:                                             ; preds = %2059
  %2065 = load i32, ptr %49, align 4, !tbaa !5
  %2066 = call ptr @__errno_location() #11
  store i32 %2065, ptr %2066, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror(i32 noundef %2070, ptr noundef @.str.4)
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror_debug(i32 noundef %2073, ptr noundef @.str.4)
  %2075 = call ptr @__errno_location() #11
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #10
  %2078 = call ptr @__errno_location() #11
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2067, ptr noundef @.str.2, i32 noundef %2068, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 163, ptr noundef %2071, ptr noundef %2074, ptr noundef %2077, i32 noundef %2079) #10
  br label %2098

2081:                                             ; preds = %2059, %2052
  %2082 = load i32, ptr %49, align 4, !tbaa !5
  %2083 = call ptr @__errno_location() #11
  store i32 %2082, ptr %2083, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror(i32 noundef %2087, ptr noundef @.str.4)
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror_debug(i32 noundef %2090, ptr noundef @.str.4)
  %2092 = call ptr @__errno_location() #11
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @strerror(i32 noundef %2093) #10
  %2095 = call ptr @__errno_location() #11
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2084, ptr noundef @.str.5, i32 noundef %2085, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 163, ptr noundef %2088, ptr noundef %2091, ptr noundef %2094, i32 noundef %2096) #10
  br label %2098

2098:                                             ; preds = %2081, %2064
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

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

2101:                                             ; No predecessors!
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102, %2044
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = add nsw i32 %2107, 1
  store i32 %2108, ptr @test_count, align 4, !tbaa !5
  %2109 = load ptr, ptr %41, align 8, !tbaa !9
  %2110 = getelementptr inbounds %struct.s2n_connection, ptr %2109, i32 0, i32 33
  %2111 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %2110, i32 0, i32 4
  %2112 = load ptr, ptr %2111, align 8, !tbaa !48
  %2113 = icmp eq ptr %2112, null
  br i1 %2113, label %2167, label %2114

2114:                                             ; preds = %2106
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %2117 = call ptr @__errno_location() #11
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  store i32 %2118, ptr %50, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @s2n_print_stacktrace(ptr noundef %2119)
  %2121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2122 = trunc i8 %2121 to i1
  br i1 %2122, label %2123, label %2145

2123:                                             ; preds = %2116
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = call i32 @fileno(ptr noundef %2124) #10
  %2126 = call i32 @isatty(i32 noundef %2125) #10
  %2127 = icmp ne i32 %2126, 0
  br i1 %2127, label %2128, label %2145

2128:                                             ; preds = %2123
  %2129 = load i32, ptr %50, align 4, !tbaa !5
  %2130 = call ptr @__errno_location() #11
  store i32 %2129, ptr %2130, align 4, !tbaa !5
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2132 = load i32, ptr @test_count, align 4, !tbaa !5
  %2133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @s2n_strerror(i32 noundef %2134, ptr noundef @.str.4)
  %2136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror_debug(i32 noundef %2137, ptr noundef @.str.4)
  %2139 = call ptr @__errno_location() #11
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @strerror(i32 noundef %2140) #10
  %2142 = call ptr @__errno_location() #11
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2131, ptr noundef @.str.2, i32 noundef %2132, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2135, ptr noundef %2138, ptr noundef %2141, i32 noundef %2143) #10
  br label %2162

2145:                                             ; preds = %2123, %2116
  %2146 = load i32, ptr %50, align 4, !tbaa !5
  %2147 = call ptr @__errno_location() #11
  store i32 %2146, ptr %2147, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @s2n_strerror(i32 noundef %2151, ptr noundef @.str.4)
  %2153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror_debug(i32 noundef %2154, ptr noundef @.str.4)
  %2156 = call ptr @__errno_location() #11
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @strerror(i32 noundef %2157) #10
  %2159 = call ptr @__errno_location() #11
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2148, ptr noundef @.str.5, i32 noundef %2149, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2152, ptr noundef %2155, ptr noundef %2158, i32 noundef %2160) #10
  br label %2162

2162:                                             ; preds = %2145, %2128
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

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

2165:                                             ; No predecessors!
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166, %2106
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

2170:                                             ; preds = %2169
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = add nsw i32 %2171, 1
  store i32 %2172, ptr @test_count, align 4, !tbaa !5
  %2173 = load ptr, ptr %41, align 8, !tbaa !9
  %2174 = call i32 @s2n_connection_free(ptr noundef %2173)
  %2175 = icmp eq i32 %2174, -1
  br i1 %2175, label %2176, label %2229

2176:                                             ; preds = %2170
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2179 = call ptr @__errno_location() #11
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  store i32 %2180, ptr %51, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = call i32 @s2n_print_stacktrace(ptr noundef %2181)
  %2183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2184 = trunc i8 %2183 to i1
  br i1 %2184, label %2185, label %2207

2185:                                             ; preds = %2178
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @fileno(ptr noundef %2186) #10
  %2188 = call i32 @isatty(i32 noundef %2187) #10
  %2189 = icmp ne i32 %2188, 0
  br i1 %2189, label %2190, label %2207

2190:                                             ; preds = %2185
  %2191 = load i32, ptr %51, align 4, !tbaa !5
  %2192 = call ptr @__errno_location() #11
  store i32 %2191, ptr %2192, align 4, !tbaa !5
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror(i32 noundef %2196, ptr noundef @.str.4)
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror_debug(i32 noundef %2199, ptr noundef @.str.4)
  %2201 = call ptr @__errno_location() #11
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @strerror(i32 noundef %2202) #10
  %2204 = call ptr @__errno_location() #11
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2193, ptr noundef @.str.2, i32 noundef %2194, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2197, ptr noundef %2200, ptr noundef %2203, i32 noundef %2205) #10
  br label %2224

2207:                                             ; preds = %2185, %2178
  %2208 = load i32, ptr %51, align 4, !tbaa !5
  %2209 = call ptr @__errno_location() #11
  store i32 %2208, ptr %2209, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror(i32 noundef %2213, ptr noundef @.str.4)
  %2215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call ptr @s2n_strerror_debug(i32 noundef %2216, ptr noundef @.str.4)
  %2218 = call ptr @__errno_location() #11
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call ptr @strerror(i32 noundef %2219) #10
  %2221 = call ptr @__errno_location() #11
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2210, ptr noundef @.str.5, i32 noundef %2211, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2214, ptr noundef %2217, ptr noundef %2220, i32 noundef %2222) #10
  br label %2224

2224:                                             ; preds = %2207, %2190
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2225

2225:                                             ; preds = %2224
  br label %2226

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

2227:                                             ; No predecessors!
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228, %2170
  br label %2230

2230:                                             ; preds = %2229
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = add nsw i32 %2233, 1
  store i32 %2234, ptr @test_count, align 4, !tbaa !5
  %2235 = call i32 @s2n_stuffer_free(ptr noundef %39)
  %2236 = icmp eq i32 %2235, -1
  br i1 %2236, label %2237, label %2290

2237:                                             ; preds = %2232
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2240 = call ptr @__errno_location() #11
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  store i32 %2241, ptr %52, align 4, !tbaa !5
  %2242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2243 = call i32 @s2n_print_stacktrace(ptr noundef %2242)
  %2244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2245 = trunc i8 %2244 to i1
  br i1 %2245, label %2246, label %2268

2246:                                             ; preds = %2239
  %2247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2248 = call i32 @fileno(ptr noundef %2247) #10
  %2249 = call i32 @isatty(i32 noundef %2248) #10
  %2250 = icmp ne i32 %2249, 0
  br i1 %2250, label %2251, label %2268

2251:                                             ; preds = %2246
  %2252 = load i32, ptr %52, align 4, !tbaa !5
  %2253 = call ptr @__errno_location() #11
  store i32 %2252, ptr %2253, align 4, !tbaa !5
  %2254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2255 = load i32, ptr @test_count, align 4, !tbaa !5
  %2256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  %2258 = call ptr @s2n_strerror(i32 noundef %2257, ptr noundef @.str.4)
  %2259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2260 = load i32, ptr %2259, align 4, !tbaa !5
  %2261 = call ptr @s2n_strerror_debug(i32 noundef %2260, ptr noundef @.str.4)
  %2262 = call ptr @__errno_location() #11
  %2263 = load i32, ptr %2262, align 4, !tbaa !5
  %2264 = call ptr @strerror(i32 noundef %2263) #10
  %2265 = call ptr @__errno_location() #11
  %2266 = load i32, ptr %2265, align 4, !tbaa !5
  %2267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2254, ptr noundef @.str.2, i32 noundef %2255, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2258, ptr noundef %2261, ptr noundef %2264, i32 noundef %2266) #10
  br label %2285

2268:                                             ; preds = %2246, %2239
  %2269 = load i32, ptr %52, align 4, !tbaa !5
  %2270 = call ptr @__errno_location() #11
  store i32 %2269, ptr %2270, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call ptr @s2n_strerror(i32 noundef %2274, ptr noundef @.str.4)
  %2276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call ptr @s2n_strerror_debug(i32 noundef %2277, ptr noundef @.str.4)
  %2279 = call ptr @__errno_location() #11
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @strerror(i32 noundef %2280) #10
  %2282 = call ptr @__errno_location() #11
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2271, ptr noundef @.str.5, i32 noundef %2272, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2275, ptr noundef %2278, ptr noundef %2281, i32 noundef %2283) #10
  br label %2285

2285:                                             ; preds = %2268, %2251
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2286

2286:                                             ; preds = %2285
  br label %2287

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

2288:                                             ; No predecessors!
  br label %2289

2289:                                             ; preds = %2288
  br label %2290

2290:                                             ; preds = %2289, %2232
  br label %2291

2291:                                             ; preds = %2290
  br label %2292

2292:                                             ; preds = %2291
  call void @llvm.lifetime.end.p0(i64 2, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %39) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %53) #10
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 40, i1 false)
  br label %2293

2293:                                             ; preds = %2292
  %2294 = load i32, ptr @test_count, align 4, !tbaa !5
  %2295 = add nsw i32 %2294, 1
  store i32 %2295, ptr @test_count, align 4, !tbaa !5
  %2296 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %53, i32 noundef 0)
  %2297 = icmp eq i32 %2296, -1
  br i1 %2297, label %2298, label %2351

2298:                                             ; preds = %2293
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2301 = call ptr @__errno_location() #11
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  store i32 %2302, ptr %54, align 4, !tbaa !5
  %2303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2304 = call i32 @s2n_print_stacktrace(ptr noundef %2303)
  %2305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2306 = trunc i8 %2305 to i1
  br i1 %2306, label %2307, label %2329

2307:                                             ; preds = %2300
  %2308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2309 = call i32 @fileno(ptr noundef %2308) #10
  %2310 = call i32 @isatty(i32 noundef %2309) #10
  %2311 = icmp ne i32 %2310, 0
  br i1 %2311, label %2312, label %2329

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

2329:                                             ; preds = %2307, %2300
  %2330 = load i32, ptr %54, align 4, !tbaa !5
  %2331 = call ptr @__errno_location() #11
  store i32 %2330, ptr %2331, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror(i32 noundef %2335, ptr noundef @.str.4)
  %2337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call ptr @s2n_strerror_debug(i32 noundef %2338, ptr noundef @.str.4)
  %2340 = call ptr @__errno_location() #11
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call ptr @strerror(i32 noundef %2341) #10
  %2343 = call ptr @__errno_location() #11
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  %2345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2332, ptr noundef @.str.5, i32 noundef %2333, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 173, ptr noundef %2336, ptr noundef %2339, ptr noundef %2342, i32 noundef %2344) #10
  br label %2346

2346:                                             ; preds = %2329, %2312
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2347

2347:                                             ; preds = %2346
  br label %2348

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

2349:                                             ; No predecessors!
  br label %2350

2350:                                             ; preds = %2349
  br label %2351

2351:                                             ; preds = %2350, %2293
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

2353:                                             ; preds = %2352
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  store ptr null, ptr %55, align 8, !tbaa !9
  br label %2354

2354:                                             ; preds = %2353
  %2355 = load i32, ptr @test_count, align 4, !tbaa !5
  %2356 = add nsw i32 %2355, 1
  store i32 %2356, ptr @test_count, align 4, !tbaa !5
  %2357 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2357, ptr %55, align 8, !tbaa !9
  %2358 = icmp eq ptr %2357, null
  br i1 %2358, label %2359, label %2412

2359:                                             ; preds = %2354
  br label %2360

2360:                                             ; preds = %2359
  br label %2361

2361:                                             ; preds = %2360
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2362 = call ptr @__errno_location() #11
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  store i32 %2363, ptr %56, align 4, !tbaa !5
  %2364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2365 = call i32 @s2n_print_stacktrace(ptr noundef %2364)
  %2366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2367 = trunc i8 %2366 to i1
  br i1 %2367, label %2368, label %2390

2368:                                             ; preds = %2361
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = call i32 @fileno(ptr noundef %2369) #10
  %2371 = call i32 @isatty(i32 noundef %2370) #10
  %2372 = icmp ne i32 %2371, 0
  br i1 %2372, label %2373, label %2390

2373:                                             ; preds = %2368
  %2374 = load i32, ptr %56, align 4, !tbaa !5
  %2375 = call ptr @__errno_location() #11
  store i32 %2374, ptr %2375, align 4, !tbaa !5
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2379, ptr noundef @.str.4)
  %2381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2382 = load i32, ptr %2381, align 4, !tbaa !5
  %2383 = call ptr @s2n_strerror_debug(i32 noundef %2382, ptr noundef @.str.4)
  %2384 = call ptr @__errno_location() #11
  %2385 = load i32, ptr %2384, align 4, !tbaa !5
  %2386 = call ptr @strerror(i32 noundef %2385) #10
  %2387 = call ptr @__errno_location() #11
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  %2389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2376, ptr noundef @.str.2, i32 noundef %2377, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 176, ptr noundef %2380, ptr noundef %2383, ptr noundef %2386, i32 noundef %2388) #10
  br label %2407

2390:                                             ; preds = %2368, %2361
  %2391 = load i32, ptr %56, align 4, !tbaa !5
  %2392 = call ptr @__errno_location() #11
  store i32 %2391, ptr %2392, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror(i32 noundef %2396, ptr noundef @.str.4)
  %2398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror_debug(i32 noundef %2399, ptr noundef @.str.4)
  %2401 = call ptr @__errno_location() #11
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #10
  %2404 = call ptr @__errno_location() #11
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2393, ptr noundef @.str.5, i32 noundef %2394, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 176, ptr noundef %2397, ptr noundef %2400, ptr noundef %2403, i32 noundef %2405) #10
  br label %2407

2407:                                             ; preds = %2390, %2373
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2408

2408:                                             ; preds = %2407
  br label %2409

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

2410:                                             ; No predecessors!
  br label %2411

2411:                                             ; preds = %2410
  br label %2412

2412:                                             ; preds = %2411, %2354
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

2414:                                             ; preds = %2413
  br label %2415

2415:                                             ; preds = %2414
  %2416 = load i32, ptr @test_count, align 4, !tbaa !5
  %2417 = add nsw i32 %2416, 1
  store i32 %2417, ptr @test_count, align 4, !tbaa !5
  %2418 = load ptr, ptr %55, align 8, !tbaa !9
  %2419 = call i32 @setup_client_psks(ptr noundef %2418)
  %2420 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  store i32 %2419, ptr %2420, align 4
  %2421 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  %2422 = load i32, ptr %2421, align 4
  %2423 = call zeroext i1 @s2n_result_is_ok(i32 %2422)
  br i1 %2423, label %2477, label %2424

2424:                                             ; preds = %2415
  br label %2425

2425:                                             ; preds = %2424
  br label %2426

2426:                                             ; preds = %2425
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  %2427 = call ptr @__errno_location() #11
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  store i32 %2428, ptr %58, align 4, !tbaa !5
  %2429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2430 = call i32 @s2n_print_stacktrace(ptr noundef %2429)
  %2431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2432 = trunc i8 %2431 to i1
  br i1 %2432, label %2433, label %2455

2433:                                             ; preds = %2426
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = call i32 @fileno(ptr noundef %2434) #10
  %2436 = call i32 @isatty(i32 noundef %2435) #10
  %2437 = icmp ne i32 %2436, 0
  br i1 %2437, label %2438, label %2455

2438:                                             ; preds = %2433
  %2439 = load i32, ptr %58, align 4, !tbaa !5
  %2440 = call ptr @__errno_location() #11
  store i32 %2439, ptr %2440, align 4, !tbaa !5
  %2441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2442 = load i32, ptr @test_count, align 4, !tbaa !5
  %2443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2444 = load i32, ptr %2443, align 4, !tbaa !5
  %2445 = call ptr @s2n_strerror(i32 noundef %2444, ptr noundef @.str.4)
  %2446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2447 = load i32, ptr %2446, align 4, !tbaa !5
  %2448 = call ptr @s2n_strerror_debug(i32 noundef %2447, ptr noundef @.str.4)
  %2449 = call ptr @__errno_location() #11
  %2450 = load i32, ptr %2449, align 4, !tbaa !5
  %2451 = call ptr @strerror(i32 noundef %2450) #10
  %2452 = call ptr @__errno_location() #11
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  %2454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2441, ptr noundef @.str.2, i32 noundef %2442, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 178, ptr noundef %2445, ptr noundef %2448, ptr noundef %2451, i32 noundef %2453) #10
  br label %2472

2455:                                             ; preds = %2433, %2426
  %2456 = load i32, ptr %58, align 4, !tbaa !5
  %2457 = call ptr @__errno_location() #11
  store i32 %2456, ptr %2457, align 4, !tbaa !5
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = load i32, ptr @test_count, align 4, !tbaa !5
  %2460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2461 = load i32, ptr %2460, align 4, !tbaa !5
  %2462 = call ptr @s2n_strerror(i32 noundef %2461, ptr noundef @.str.4)
  %2463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror_debug(i32 noundef %2464, ptr noundef @.str.4)
  %2466 = call ptr @__errno_location() #11
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call ptr @strerror(i32 noundef %2467) #10
  %2469 = call ptr @__errno_location() #11
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2458, ptr noundef @.str.5, i32 noundef %2459, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 178, ptr noundef %2462, ptr noundef %2465, ptr noundef %2468, i32 noundef %2470) #10
  br label %2472

2472:                                             ; preds = %2455, %2438
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2473

2473:                                             ; preds = %2472
  br label %2474

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

2475:                                             ; No predecessors!
  br label %2476

2476:                                             ; preds = %2475
  br label %2477

2477:                                             ; preds = %2476, %2415
  br label %2478

2478:                                             ; preds = %2477
  br label %2479

2479:                                             ; preds = %2478
  call void @llvm.lifetime.start.p0(i64 2, ptr %59) #10
  store i16 1, ptr %59, align 2, !tbaa !46
  %2480 = load ptr, ptr %55, align 8, !tbaa !9
  %2481 = getelementptr inbounds %struct.s2n_connection, ptr %2480, i32 0, i32 23
  store i8 34, ptr %2481, align 4, !tbaa !44
  br label %2482

2482:                                             ; preds = %2479
  %2483 = load i32, ptr @test_count, align 4, !tbaa !5
  %2484 = add nsw i32 %2483, 1
  store i32 %2484, ptr @test_count, align 4, !tbaa !5
  %2485 = load i16, ptr %59, align 2, !tbaa !46
  %2486 = call i32 @s2n_stuffer_write_uint16(ptr noundef %53, i16 noundef zeroext %2485)
  %2487 = icmp eq i32 %2486, -1
  br i1 %2487, label %2488, label %2541

2488:                                             ; preds = %2482
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2491 = call ptr @__errno_location() #11
  %2492 = load i32, ptr %2491, align 4, !tbaa !5
  store i32 %2492, ptr %60, align 4, !tbaa !5
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = call i32 @s2n_print_stacktrace(ptr noundef %2493)
  %2495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2496 = trunc i8 %2495 to i1
  br i1 %2496, label %2497, label %2519

2497:                                             ; preds = %2490
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = call i32 @fileno(ptr noundef %2498) #10
  %2500 = call i32 @isatty(i32 noundef %2499) #10
  %2501 = icmp ne i32 %2500, 0
  br i1 %2501, label %2502, label %2519

2502:                                             ; preds = %2497
  %2503 = load i32, ptr %60, align 4, !tbaa !5
  %2504 = call ptr @__errno_location() #11
  store i32 %2503, ptr %2504, align 4, !tbaa !5
  %2505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2506 = load i32, ptr @test_count, align 4, !tbaa !5
  %2507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2508 = load i32, ptr %2507, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror(i32 noundef %2508, ptr noundef @.str.4)
  %2510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  %2512 = call ptr @s2n_strerror_debug(i32 noundef %2511, ptr noundef @.str.4)
  %2513 = call ptr @__errno_location() #11
  %2514 = load i32, ptr %2513, align 4, !tbaa !5
  %2515 = call ptr @strerror(i32 noundef %2514) #10
  %2516 = call ptr @__errno_location() #11
  %2517 = load i32, ptr %2516, align 4, !tbaa !5
  %2518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2505, ptr noundef @.str.2, i32 noundef %2506, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 183, ptr noundef %2509, ptr noundef %2512, ptr noundef %2515, i32 noundef %2517) #10
  br label %2536

2519:                                             ; preds = %2497, %2490
  %2520 = load i32, ptr %60, align 4, !tbaa !5
  %2521 = call ptr @__errno_location() #11
  store i32 %2520, ptr %2521, align 4, !tbaa !5
  %2522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2523 = load i32, ptr @test_count, align 4, !tbaa !5
  %2524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror(i32 noundef %2525, ptr noundef @.str.4)
  %2527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call ptr @s2n_strerror_debug(i32 noundef %2528, ptr noundef @.str.4)
  %2530 = call ptr @__errno_location() #11
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = call ptr @strerror(i32 noundef %2531) #10
  %2533 = call ptr @__errno_location() #11
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2522, ptr noundef @.str.5, i32 noundef %2523, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 183, ptr noundef %2526, ptr noundef %2529, ptr noundef %2532, i32 noundef %2534) #10
  br label %2536

2536:                                             ; preds = %2519, %2502
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2537

2537:                                             ; preds = %2536
  br label %2538

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

2539:                                             ; No predecessors!
  br label %2540

2540:                                             ; preds = %2539
  br label %2541

2541:                                             ; preds = %2540, %2482
  br label %2542

2542:                                             ; preds = %2541
  br label %2543

2543:                                             ; preds = %2542
  br label %2544

2544:                                             ; preds = %2543
  %2545 = load i32, ptr @test_count, align 4, !tbaa !5
  %2546 = add nsw i32 %2545, 1
  store i32 %2546, ptr @test_count, align 4, !tbaa !5
  %2547 = load ptr, ptr %55, align 8, !tbaa !9
  %2548 = getelementptr inbounds %struct.s2n_connection, ptr %2547, i32 0, i32 33
  %2549 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %2548, i32 0, i32 4
  %2550 = load ptr, ptr %2549, align 8, !tbaa !48
  %2551 = icmp eq ptr %2550, null
  br i1 %2551, label %2605, label %2552

2552:                                             ; preds = %2544
  br label %2553

2553:                                             ; preds = %2552
  br label %2554

2554:                                             ; preds = %2553
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2555 = call ptr @__errno_location() #11
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  store i32 %2556, ptr %61, align 4, !tbaa !5
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = call i32 @s2n_print_stacktrace(ptr noundef %2557)
  %2559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2560 = trunc i8 %2559 to i1
  br i1 %2560, label %2561, label %2583

2561:                                             ; preds = %2554
  %2562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2563 = call i32 @fileno(ptr noundef %2562) #10
  %2564 = call i32 @isatty(i32 noundef %2563) #10
  %2565 = icmp ne i32 %2564, 0
  br i1 %2565, label %2566, label %2583

2566:                                             ; preds = %2561
  %2567 = load i32, ptr %61, align 4, !tbaa !5
  %2568 = call ptr @__errno_location() #11
  store i32 %2567, ptr %2568, align 4, !tbaa !5
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2572 = load i32, ptr %2571, align 4, !tbaa !5
  %2573 = call ptr @s2n_strerror(i32 noundef %2572, ptr noundef @.str.4)
  %2574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2575 = load i32, ptr %2574, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror_debug(i32 noundef %2575, ptr noundef @.str.4)
  %2577 = call ptr @__errno_location() #11
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call ptr @strerror(i32 noundef %2578) #10
  %2580 = call ptr @__errno_location() #11
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2569, ptr noundef @.str.2, i32 noundef %2570, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 185, ptr noundef %2573, ptr noundef %2576, ptr noundef %2579, i32 noundef %2581) #10
  br label %2600

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

2600:                                             ; preds = %2583, %2566
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2601

2601:                                             ; preds = %2600
  br label %2602

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

2603:                                             ; No predecessors!
  br label %2604

2604:                                             ; preds = %2603
  br label %2605

2605:                                             ; preds = %2604, %2544
  br label %2606

2606:                                             ; preds = %2605
  br label %2607

2607:                                             ; preds = %2606
  br label %2608

2608:                                             ; preds = %2607
  br label %2609

2609:                                             ; preds = %2608
  br label %2610

2610:                                             ; preds = %2609
  %2611 = load i32, ptr @test_count, align 4, !tbaa !5
  %2612 = add nsw i32 %2611, 1
  store i32 %2612, ptr @test_count, align 4, !tbaa !5
  %2613 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_psk_extension, i32 0, i32 4), align 8, !tbaa !49
  %2614 = load ptr, ptr %55, align 8, !tbaa !9
  %2615 = call i32 %2613(ptr noundef %2614, ptr noundef %53)
  %2616 = icmp eq i32 %2615, -1
  br i1 %2616, label %2670, label %2617

2617:                                             ; preds = %2610
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

2619:                                             ; preds = %2618
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2620 = call ptr @__errno_location() #11
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  store i32 %2621, ptr %62, align 4, !tbaa !5
  %2622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2623 = call i32 @s2n_print_stacktrace(ptr noundef %2622)
  %2624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2625 = trunc i8 %2624 to i1
  br i1 %2625, label %2626, label %2648

2626:                                             ; preds = %2619
  %2627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2628 = call i32 @fileno(ptr noundef %2627) #10
  %2629 = call i32 @isatty(i32 noundef %2628) #10
  %2630 = icmp ne i32 %2629, 0
  br i1 %2630, label %2631, label %2648

2631:                                             ; preds = %2626
  %2632 = load i32, ptr %62, align 4, !tbaa !5
  %2633 = call ptr @__errno_location() #11
  store i32 %2632, ptr %2633, align 4, !tbaa !5
  %2634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2635 = load i32, ptr @test_count, align 4, !tbaa !5
  %2636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2637 = load i32, ptr %2636, align 4, !tbaa !5
  %2638 = call ptr @s2n_strerror(i32 noundef %2637, ptr noundef @.str.4)
  %2639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = call ptr @s2n_strerror_debug(i32 noundef %2640, ptr noundef @.str.4)
  %2642 = call ptr @__errno_location() #11
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call ptr @strerror(i32 noundef %2643) #10
  %2645 = call ptr @__errno_location() #11
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2634, ptr noundef @.str.2, i32 noundef %2635, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2638, ptr noundef %2641, ptr noundef %2644, i32 noundef %2646) #10
  br label %2665

2648:                                             ; preds = %2626, %2619
  %2649 = load i32, ptr %62, align 4, !tbaa !5
  %2650 = call ptr @__errno_location() #11
  store i32 %2649, ptr %2650, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror(i32 noundef %2654, ptr noundef @.str.4)
  %2656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror_debug(i32 noundef %2657, ptr noundef @.str.4)
  %2659 = call ptr @__errno_location() #11
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @strerror(i32 noundef %2660) #10
  %2662 = call ptr @__errno_location() #11
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2651, ptr noundef @.str.5, i32 noundef %2652, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2655, ptr noundef %2658, ptr noundef %2661, i32 noundef %2663) #10
  br label %2665

2665:                                             ; preds = %2648, %2631
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2666

2666:                                             ; preds = %2665
  br label %2667

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

2668:                                             ; No predecessors!
  br label %2669

2669:                                             ; preds = %2668
  br label %2670

2670:                                             ; preds = %2669, %2610
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

2672:                                             ; preds = %2671
  br label %2673

2673:                                             ; preds = %2672
  %2674 = load i32, ptr @test_count, align 4, !tbaa !5
  %2675 = add nsw i32 %2674, 1
  store i32 %2675, ptr @test_count, align 4, !tbaa !5
  %2676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = icmp eq i32 %2677, 335544393
  br i1 %2678, label %2732, label %2679

2679:                                             ; preds = %2673
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

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

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

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

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

2727:                                             ; preds = %2710, %2693
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2728

2728:                                             ; preds = %2727
  br label %2729

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

2730:                                             ; No predecessors!
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

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

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733
  br label %2735

2735:                                             ; preds = %2734
  %2736 = load i32, ptr @test_count, align 4, !tbaa !5
  %2737 = add nsw i32 %2736, 1
  store i32 %2737, ptr @test_count, align 4, !tbaa !5
  %2738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = call ptr @s2n_strerror_debug(i32 noundef %2739, ptr noundef @.str.4)
  %2741 = icmp eq ptr %2740, null
  br i1 %2741, label %2742, label %2795

2742:                                             ; preds = %2735
  br label %2743

2743:                                             ; preds = %2742
  br label %2744

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

2751:                                             ; preds = %2744
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = call i32 @fileno(ptr noundef %2752) #10
  %2754 = call i32 @isatty(i32 noundef %2753) #10
  %2755 = icmp ne i32 %2754, 0
  br i1 %2755, label %2756, label %2773

2756:                                             ; preds = %2751
  %2757 = load i32, ptr %64, align 4, !tbaa !5
  %2758 = call ptr @__errno_location() #11
  store i32 %2757, ptr %2758, align 4, !tbaa !5
  %2759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %2761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2762 = load i32, ptr %2761, align 4, !tbaa !5
  %2763 = call ptr @s2n_strerror(i32 noundef %2762, ptr noundef @.str.4)
  %2764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2765 = load i32, ptr %2764, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror_debug(i32 noundef %2765, ptr noundef @.str.4)
  %2767 = call ptr @__errno_location() #11
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call ptr @strerror(i32 noundef %2768) #10
  %2770 = call ptr @__errno_location() #11
  %2771 = load i32, ptr %2770, align 4, !tbaa !5
  %2772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2759, ptr noundef @.str.2, i32 noundef %2760, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2763, ptr noundef %2766, ptr noundef %2769, i32 noundef %2771) #10
  br label %2790

2773:                                             ; preds = %2751, %2744
  %2774 = load i32, ptr %64, align 4, !tbaa !5
  %2775 = call ptr @__errno_location() #11
  store i32 %2774, ptr %2775, align 4, !tbaa !5
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = load i32, ptr @test_count, align 4, !tbaa !5
  %2778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2779 = load i32, ptr %2778, align 4, !tbaa !5
  %2780 = call ptr @s2n_strerror(i32 noundef %2779, ptr noundef @.str.4)
  %2781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call ptr @s2n_strerror_debug(i32 noundef %2782, ptr noundef @.str.4)
  %2784 = call ptr @__errno_location() #11
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = call ptr @strerror(i32 noundef %2785) #10
  %2787 = call ptr @__errno_location() #11
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  %2789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2776, ptr noundef @.str.5, i32 noundef %2777, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2780, ptr noundef %2783, ptr noundef %2786, i32 noundef %2788) #10
  br label %2790

2790:                                             ; preds = %2773, %2756
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2791

2791:                                             ; preds = %2790
  br label %2792

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

2793:                                             ; No predecessors!
  br label %2794

2794:                                             ; preds = %2793
  br label %2795

2795:                                             ; preds = %2794, %2735
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796
  br label %2798

2798:                                             ; preds = %2797
  br label %2799

2799:                                             ; preds = %2798
  br label %2800

2800:                                             ; preds = %2799
  %2801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2801, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2802 = call ptr @__errno_location() #11
  store i32 0, ptr %2802, align 4, !tbaa !5
  br label %2803

2803:                                             ; preds = %2800
  br label %2804

2804:                                             ; preds = %2803
  br label %2805

2805:                                             ; preds = %2804
  br label %2806

2806:                                             ; preds = %2805
  br label %2807

2807:                                             ; preds = %2806
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = add nsw i32 %2808, 1
  store i32 %2809, ptr @test_count, align 4, !tbaa !5
  %2810 = load ptr, ptr %55, align 8, !tbaa !9
  %2811 = getelementptr inbounds %struct.s2n_connection, ptr %2810, i32 0, i32 33
  %2812 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %2811, i32 0, i32 4
  %2813 = load ptr, ptr %2812, align 8, !tbaa !48
  %2814 = icmp eq ptr %2813, null
  br i1 %2814, label %2868, label %2815

2815:                                             ; preds = %2807
  br label %2816

2816:                                             ; preds = %2815
  br label %2817

2817:                                             ; preds = %2816
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2818 = call ptr @__errno_location() #11
  %2819 = load i32, ptr %2818, align 4, !tbaa !5
  store i32 %2819, ptr %65, align 4, !tbaa !5
  %2820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2821 = call i32 @s2n_print_stacktrace(ptr noundef %2820)
  %2822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2823 = trunc i8 %2822 to i1
  br i1 %2823, label %2824, label %2846

2824:                                             ; preds = %2817
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2826 = call i32 @fileno(ptr noundef %2825) #10
  %2827 = call i32 @isatty(i32 noundef %2826) #10
  %2828 = icmp ne i32 %2827, 0
  br i1 %2828, label %2829, label %2846

2829:                                             ; preds = %2824
  %2830 = load i32, ptr %65, align 4, !tbaa !5
  %2831 = call ptr @__errno_location() #11
  store i32 %2830, ptr %2831, align 4, !tbaa !5
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2835, ptr noundef @.str.4)
  %2837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call ptr @s2n_strerror_debug(i32 noundef %2838, ptr noundef @.str.4)
  %2840 = call ptr @__errno_location() #11
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = call ptr @strerror(i32 noundef %2841) #10
  %2843 = call ptr @__errno_location() #11
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  %2845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2832, ptr noundef @.str.2, i32 noundef %2833, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2836, ptr noundef %2839, ptr noundef %2842, i32 noundef %2844) #10
  br label %2863

2846:                                             ; preds = %2824, %2817
  %2847 = load i32, ptr %65, align 4, !tbaa !5
  %2848 = call ptr @__errno_location() #11
  store i32 %2847, ptr %2848, align 4, !tbaa !5
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = load i32, ptr @test_count, align 4, !tbaa !5
  %2851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2852 = load i32, ptr %2851, align 4, !tbaa !5
  %2853 = call ptr @s2n_strerror(i32 noundef %2852, ptr noundef @.str.4)
  %2854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  %2856 = call ptr @s2n_strerror_debug(i32 noundef %2855, ptr noundef @.str.4)
  %2857 = call ptr @__errno_location() #11
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call ptr @strerror(i32 noundef %2858) #10
  %2860 = call ptr @__errno_location() #11
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2849, ptr noundef @.str.5, i32 noundef %2850, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2853, ptr noundef %2856, ptr noundef %2859, i32 noundef %2861) #10
  br label %2863

2863:                                             ; preds = %2846, %2829
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2864

2864:                                             ; preds = %2863
  br label %2865

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

2866:                                             ; No predecessors!
  br label %2867

2867:                                             ; preds = %2866
  br label %2868

2868:                                             ; preds = %2867, %2807
  br label %2869

2869:                                             ; preds = %2868
  br label %2870

2870:                                             ; preds = %2869
  br label %2871

2871:                                             ; preds = %2870
  %2872 = load i32, ptr @test_count, align 4, !tbaa !5
  %2873 = add nsw i32 %2872, 1
  store i32 %2873, ptr @test_count, align 4, !tbaa !5
  %2874 = load ptr, ptr %55, align 8, !tbaa !9
  %2875 = call i32 @s2n_connection_free(ptr noundef %2874)
  %2876 = icmp eq i32 %2875, -1
  br i1 %2876, label %2877, label %2930

2877:                                             ; preds = %2871
  br label %2878

2878:                                             ; preds = %2877
  br label %2879

2879:                                             ; preds = %2878
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %2880 = call ptr @__errno_location() #11
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  store i32 %2881, ptr %66, align 4, !tbaa !5
  %2882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2883 = call i32 @s2n_print_stacktrace(ptr noundef %2882)
  %2884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2885 = trunc i8 %2884 to i1
  br i1 %2885, label %2886, label %2908

2886:                                             ; preds = %2879
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = call i32 @fileno(ptr noundef %2887) #10
  %2889 = call i32 @isatty(i32 noundef %2888) #10
  %2890 = icmp ne i32 %2889, 0
  br i1 %2890, label %2891, label %2908

2891:                                             ; preds = %2886
  %2892 = load i32, ptr %66, align 4, !tbaa !5
  %2893 = call ptr @__errno_location() #11
  store i32 %2892, ptr %2893, align 4, !tbaa !5
  %2894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2895 = load i32, ptr @test_count, align 4, !tbaa !5
  %2896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror(i32 noundef %2897, ptr noundef @.str.4)
  %2899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @s2n_strerror_debug(i32 noundef %2900, ptr noundef @.str.4)
  %2902 = call ptr @__errno_location() #11
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @strerror(i32 noundef %2903) #10
  %2905 = call ptr @__errno_location() #11
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2894, ptr noundef @.str.2, i32 noundef %2895, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 189, ptr noundef %2898, ptr noundef %2901, ptr noundef %2904, i32 noundef %2906) #10
  br label %2925

2908:                                             ; preds = %2886, %2879
  %2909 = load i32, ptr %66, align 4, !tbaa !5
  %2910 = call ptr @__errno_location() #11
  store i32 %2909, ptr %2910, align 4, !tbaa !5
  %2911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2912 = load i32, ptr @test_count, align 4, !tbaa !5
  %2913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call ptr @s2n_strerror(i32 noundef %2914, ptr noundef @.str.4)
  %2916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call ptr @s2n_strerror_debug(i32 noundef %2917, ptr noundef @.str.4)
  %2919 = call ptr @__errno_location() #11
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call ptr @strerror(i32 noundef %2920) #10
  %2922 = call ptr @__errno_location() #11
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2911, ptr noundef @.str.5, i32 noundef %2912, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 189, ptr noundef %2915, ptr noundef %2918, ptr noundef %2921, i32 noundef %2923) #10
  br label %2925

2925:                                             ; preds = %2908, %2891
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %2926

2926:                                             ; preds = %2925
  br label %2927

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

2928:                                             ; No predecessors!
  br label %2929

2929:                                             ; preds = %2928
  br label %2930

2930:                                             ; preds = %2929, %2871
  br label %2931

2931:                                             ; preds = %2930
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

2933:                                             ; preds = %2932
  %2934 = load i32, ptr @test_count, align 4, !tbaa !5
  %2935 = add nsw i32 %2934, 1
  store i32 %2935, ptr @test_count, align 4, !tbaa !5
  %2936 = call i32 @s2n_stuffer_free(ptr noundef %53)
  %2937 = icmp eq i32 %2936, -1
  br i1 %2937, label %2938, label %2991

2938:                                             ; preds = %2933
  br label %2939

2939:                                             ; preds = %2938
  br label %2940

2940:                                             ; preds = %2939
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %2941 = call ptr @__errno_location() #11
  %2942 = load i32, ptr %2941, align 4, !tbaa !5
  store i32 %2942, ptr %67, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = call i32 @s2n_print_stacktrace(ptr noundef %2943)
  %2945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2946 = trunc i8 %2945 to i1
  br i1 %2946, label %2947, label %2969

2947:                                             ; preds = %2940
  %2948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2949 = call i32 @fileno(ptr noundef %2948) #10
  %2950 = call i32 @isatty(i32 noundef %2949) #10
  %2951 = icmp ne i32 %2950, 0
  br i1 %2951, label %2952, label %2969

2952:                                             ; preds = %2947
  %2953 = load i32, ptr %67, align 4, !tbaa !5
  %2954 = call ptr @__errno_location() #11
  store i32 %2953, ptr %2954, align 4, !tbaa !5
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = load i32, ptr @test_count, align 4, !tbaa !5
  %2957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2958 = load i32, ptr %2957, align 4, !tbaa !5
  %2959 = call ptr @s2n_strerror(i32 noundef %2958, ptr noundef @.str.4)
  %2960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  %2962 = call ptr @s2n_strerror_debug(i32 noundef %2961, ptr noundef @.str.4)
  %2963 = call ptr @__errno_location() #11
  %2964 = load i32, ptr %2963, align 4, !tbaa !5
  %2965 = call ptr @strerror(i32 noundef %2964) #10
  %2966 = call ptr @__errno_location() #11
  %2967 = load i32, ptr %2966, align 4, !tbaa !5
  %2968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2955, ptr noundef @.str.2, i32 noundef %2956, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 190, ptr noundef %2959, ptr noundef %2962, ptr noundef %2965, i32 noundef %2967) #10
  br label %2986

2969:                                             ; preds = %2947, %2940
  %2970 = load i32, ptr %67, align 4, !tbaa !5
  %2971 = call ptr @__errno_location() #11
  store i32 %2970, ptr %2971, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror(i32 noundef %2975, ptr noundef @.str.4)
  %2977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call ptr @s2n_strerror_debug(i32 noundef %2978, ptr noundef @.str.4)
  %2980 = call ptr @__errno_location() #11
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call ptr @strerror(i32 noundef %2981) #10
  %2983 = call ptr @__errno_location() #11
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2972, ptr noundef @.str.5, i32 noundef %2973, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 190, ptr noundef %2976, ptr noundef %2979, ptr noundef %2982, i32 noundef %2984) #10
  br label %2986

2986:                                             ; preds = %2969, %2952
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %2987

2987:                                             ; preds = %2986
  br label %2988

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

2989:                                             ; No predecessors!
  br label %2990

2990:                                             ; preds = %2989
  br label %2991

2991:                                             ; preds = %2990, %2933
  br label %2992

2992:                                             ; preds = %2991
  br label %2993

2993:                                             ; preds = %2992
  call void @llvm.lifetime.end.p0(i64 2, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %53) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %68) #10
  call void @llvm.memset.p0.i64(ptr align 8 %68, i8 0, i64 40, i1 false)
  br label %2994

2994:                                             ; preds = %2993
  %2995 = load i32, ptr @test_count, align 4, !tbaa !5
  %2996 = add nsw i32 %2995, 1
  store i32 %2996, ptr @test_count, align 4, !tbaa !5
  %2997 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %68, i32 noundef 0)
  %2998 = icmp eq i32 %2997, -1
  br i1 %2998, label %2999, label %3052

2999:                                             ; preds = %2994
  br label %3000

3000:                                             ; preds = %2999
  br label %3001

3001:                                             ; preds = %3000
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %3002 = call ptr @__errno_location() #11
  %3003 = load i32, ptr %3002, align 4, !tbaa !5
  store i32 %3003, ptr %69, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = call i32 @s2n_print_stacktrace(ptr noundef %3004)
  %3006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3007 = trunc i8 %3006 to i1
  br i1 %3007, label %3008, label %3030

3008:                                             ; preds = %3001
  %3009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3010 = call i32 @fileno(ptr noundef %3009) #10
  %3011 = call i32 @isatty(i32 noundef %3010) #10
  %3012 = icmp ne i32 %3011, 0
  br i1 %3012, label %3013, label %3030

3013:                                             ; preds = %3008
  %3014 = load i32, ptr %69, align 4, !tbaa !5
  %3015 = call ptr @__errno_location() #11
  store i32 %3014, ptr %3015, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = load i32, ptr @test_count, align 4, !tbaa !5
  %3018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  %3020 = call ptr @s2n_strerror(i32 noundef %3019, ptr noundef @.str.4)
  %3021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror_debug(i32 noundef %3022, ptr noundef @.str.4)
  %3024 = call ptr @__errno_location() #11
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @strerror(i32 noundef %3025) #10
  %3027 = call ptr @__errno_location() #11
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3016, ptr noundef @.str.2, i32 noundef %3017, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 196, ptr noundef %3020, ptr noundef %3023, ptr noundef %3026, i32 noundef %3028) #10
  br label %3047

3030:                                             ; preds = %3008, %3001
  %3031 = load i32, ptr %69, align 4, !tbaa !5
  %3032 = call ptr @__errno_location() #11
  store i32 %3031, ptr %3032, align 4, !tbaa !5
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @s2n_strerror(i32 noundef %3036, ptr noundef @.str.4)
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror_debug(i32 noundef %3039, ptr noundef @.str.4)
  %3041 = call ptr @__errno_location() #11
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @strerror(i32 noundef %3042) #10
  %3044 = call ptr @__errno_location() #11
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3033, ptr noundef @.str.5, i32 noundef %3034, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 196, ptr noundef %3037, ptr noundef %3040, ptr noundef %3043, i32 noundef %3045) #10
  br label %3047

3047:                                             ; preds = %3030, %3013
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %3048

3048:                                             ; preds = %3047
  br label %3049

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

3050:                                             ; No predecessors!
  br label %3051

3051:                                             ; preds = %3050
  br label %3052

3052:                                             ; preds = %3051, %2994
  br label %3053

3053:                                             ; preds = %3052
  br label %3054

3054:                                             ; preds = %3053
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  store ptr null, ptr %70, align 8, !tbaa !9
  br label %3055

3055:                                             ; preds = %3054
  %3056 = load i32, ptr @test_count, align 4, !tbaa !5
  %3057 = add nsw i32 %3056, 1
  store i32 %3057, ptr @test_count, align 4, !tbaa !5
  %3058 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3058, ptr %70, align 8, !tbaa !9
  %3059 = icmp eq ptr %3058, null
  br i1 %3059, label %3060, label %3113

3060:                                             ; preds = %3055
  br label %3061

3061:                                             ; preds = %3060
  br label %3062

3062:                                             ; preds = %3061
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3063 = call ptr @__errno_location() #11
  %3064 = load i32, ptr %3063, align 4, !tbaa !5
  store i32 %3064, ptr %71, align 4, !tbaa !5
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = call i32 @s2n_print_stacktrace(ptr noundef %3065)
  %3067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3068 = trunc i8 %3067 to i1
  br i1 %3068, label %3069, label %3091

3069:                                             ; preds = %3062
  %3070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3071 = call i32 @fileno(ptr noundef %3070) #10
  %3072 = call i32 @isatty(i32 noundef %3071) #10
  %3073 = icmp ne i32 %3072, 0
  br i1 %3073, label %3074, label %3091

3074:                                             ; preds = %3069
  %3075 = load i32, ptr %71, align 4, !tbaa !5
  %3076 = call ptr @__errno_location() #11
  store i32 %3075, ptr %3076, align 4, !tbaa !5
  %3077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3078 = load i32, ptr @test_count, align 4, !tbaa !5
  %3079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  %3081 = call ptr @s2n_strerror(i32 noundef %3080, ptr noundef @.str.4)
  %3082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3083 = load i32, ptr %3082, align 4, !tbaa !5
  %3084 = call ptr @s2n_strerror_debug(i32 noundef %3083, ptr noundef @.str.4)
  %3085 = call ptr @__errno_location() #11
  %3086 = load i32, ptr %3085, align 4, !tbaa !5
  %3087 = call ptr @strerror(i32 noundef %3086) #10
  %3088 = call ptr @__errno_location() #11
  %3089 = load i32, ptr %3088, align 4, !tbaa !5
  %3090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3077, ptr noundef @.str.2, i32 noundef %3078, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3081, ptr noundef %3084, ptr noundef %3087, i32 noundef %3089) #10
  br label %3108

3091:                                             ; preds = %3069, %3062
  %3092 = load i32, ptr %71, align 4, !tbaa !5
  %3093 = call ptr @__errno_location() #11
  store i32 %3092, ptr %3093, align 4, !tbaa !5
  %3094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3095 = load i32, ptr @test_count, align 4, !tbaa !5
  %3096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  %3098 = call ptr @s2n_strerror(i32 noundef %3097, ptr noundef @.str.4)
  %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_debug(i32 noundef %3100, ptr noundef @.str.4)
  %3102 = call ptr @__errno_location() #11
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  %3104 = call ptr @strerror(i32 noundef %3103) #10
  %3105 = call ptr @__errno_location() #11
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3094, ptr noundef @.str.5, i32 noundef %3095, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3098, ptr noundef %3101, ptr noundef %3104, i32 noundef %3106) #10
  br label %3108

3108:                                             ; preds = %3091, %3074
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3109

3109:                                             ; preds = %3108
  br label %3110

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

3111:                                             ; No predecessors!
  br label %3112

3112:                                             ; preds = %3111
  br label %3113

3113:                                             ; preds = %3112, %3055
  br label %3114

3114:                                             ; preds = %3113
  br label %3115

3115:                                             ; preds = %3114
  br label %3116

3116:                                             ; preds = %3115
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = add nsw i32 %3117, 1
  store i32 %3118, ptr @test_count, align 4, !tbaa !5
  %3119 = load ptr, ptr %70, align 8, !tbaa !9
  %3120 = call i32 @setup_client_psks(ptr noundef %3119)
  %3121 = getelementptr inbounds %struct.s2n_result, ptr %72, i32 0, i32 0
  store i32 %3120, ptr %3121, align 4
  %3122 = getelementptr inbounds %struct.s2n_result, ptr %72, i32 0, i32 0
  %3123 = load i32, ptr %3122, align 4
  %3124 = call zeroext i1 @s2n_result_is_ok(i32 %3123)
  br i1 %3124, label %3178, label %3125

3125:                                             ; preds = %3116
  br label %3126

3126:                                             ; preds = %3125
  br label %3127

3127:                                             ; preds = %3126
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %3128 = call ptr @__errno_location() #11
  %3129 = load i32, ptr %3128, align 4, !tbaa !5
  store i32 %3129, ptr %73, align 4, !tbaa !5
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = call i32 @s2n_print_stacktrace(ptr noundef %3130)
  %3132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3133 = trunc i8 %3132 to i1
  br i1 %3133, label %3134, label %3156

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

3139:                                             ; preds = %3134
  %3140 = load i32, ptr %73, align 4, !tbaa !5
  %3141 = call ptr @__errno_location() #11
  store i32 %3140, ptr %3141, align 4, !tbaa !5
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = load i32, ptr @test_count, align 4, !tbaa !5
  %3144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = call ptr @s2n_strerror(i32 noundef %3145, ptr noundef @.str.4)
  %3147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3148 = load i32, ptr %3147, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror_debug(i32 noundef %3148, ptr noundef @.str.4)
  %3150 = call ptr @__errno_location() #11
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = call ptr @strerror(i32 noundef %3151) #10
  %3153 = call ptr @__errno_location() #11
  %3154 = load i32, ptr %3153, align 4, !tbaa !5
  %3155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3142, ptr noundef @.str.2, i32 noundef %3143, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 201, ptr noundef %3146, ptr noundef %3149, ptr noundef %3152, i32 noundef %3154) #10
  br label %3173

3156:                                             ; preds = %3134, %3127
  %3157 = load i32, ptr %73, align 4, !tbaa !5
  %3158 = call ptr @__errno_location() #11
  store i32 %3157, ptr %3158, align 4, !tbaa !5
  %3159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3160 = load i32, ptr @test_count, align 4, !tbaa !5
  %3161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  %3163 = call ptr @s2n_strerror(i32 noundef %3162, ptr noundef @.str.4)
  %3164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  %3166 = call ptr @s2n_strerror_debug(i32 noundef %3165, ptr noundef @.str.4)
  %3167 = call ptr @__errno_location() #11
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  %3169 = call ptr @strerror(i32 noundef %3168) #10
  %3170 = call ptr @__errno_location() #11
  %3171 = load i32, ptr %3170, align 4, !tbaa !5
  %3172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3159, ptr noundef @.str.5, i32 noundef %3160, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 201, ptr noundef %3163, ptr noundef %3166, ptr noundef %3169, i32 noundef %3171) #10
  br label %3173

3173:                                             ; preds = %3156, %3139
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3174

3174:                                             ; preds = %3173
  br label %3175

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

3176:                                             ; No predecessors!
  br label %3177

3177:                                             ; preds = %3176
  br label %3178

3178:                                             ; preds = %3177, %3116
  br label %3179

3179:                                             ; preds = %3178
  br label %3180

3180:                                             ; preds = %3179
  %3181 = load i8, ptr %37, align 1, !tbaa !47
  %3182 = zext i8 %3181 to i32
  %3183 = srem i32 %3182, 8
  %3184 = shl i32 1, %3183
  %3185 = load ptr, ptr %70, align 8, !tbaa !9
  %3186 = getelementptr inbounds %struct.s2n_connection, ptr %3185, i32 0, i32 12
  %3187 = load i8, ptr %37, align 1, !tbaa !47
  %3188 = zext i8 %3187 to i32
  %3189 = ashr i32 %3188, 3
  %3190 = sext i32 %3189 to i64
  %3191 = getelementptr inbounds [22 x i8], ptr %3186, i64 0, i64 %3190
  %3192 = load i8, ptr %3191, align 1, !tbaa !47
  %3193 = sext i8 %3192 to i32
  %3194 = or i32 %3193, %3184
  %3195 = trunc i32 %3194 to i8
  store i8 %3195, ptr %3191, align 1, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 2, ptr %74) #10
  store i16 10, ptr %74, align 2, !tbaa !46
  %3196 = load ptr, ptr %70, align 8, !tbaa !9
  %3197 = getelementptr inbounds %struct.s2n_connection, ptr %3196, i32 0, i32 23
  store i8 34, ptr %3197, align 4, !tbaa !44
  br label %3198

3198:                                             ; preds = %3180
  %3199 = load i32, ptr @test_count, align 4, !tbaa !5
  %3200 = add nsw i32 %3199, 1
  store i32 %3200, ptr @test_count, align 4, !tbaa !5
  %3201 = load i16, ptr %74, align 2, !tbaa !46
  %3202 = call i32 @s2n_stuffer_write_uint16(ptr noundef %68, i16 noundef zeroext %3201)
  %3203 = icmp eq i32 %3202, -1
  br i1 %3203, label %3204, label %3257

3204:                                             ; preds = %3198
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

3206:                                             ; preds = %3205
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %3207 = call ptr @__errno_location() #11
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  store i32 %3208, ptr %75, align 4, !tbaa !5
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3210 = call i32 @s2n_print_stacktrace(ptr noundef %3209)
  %3211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3212 = trunc i8 %3211 to i1
  br i1 %3212, label %3213, label %3235

3213:                                             ; preds = %3206
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = call i32 @fileno(ptr noundef %3214) #10
  %3216 = call i32 @isatty(i32 noundef %3215) #10
  %3217 = icmp ne i32 %3216, 0
  br i1 %3217, label %3218, label %3235

3218:                                             ; preds = %3213
  %3219 = load i32, ptr %75, align 4, !tbaa !5
  %3220 = call ptr @__errno_location() #11
  store i32 %3219, ptr %3220, align 4, !tbaa !5
  %3221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3222 = load i32, ptr @test_count, align 4, !tbaa !5
  %3223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  %3225 = call ptr @s2n_strerror(i32 noundef %3224, ptr noundef @.str.4)
  %3226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call ptr @s2n_strerror_debug(i32 noundef %3227, ptr noundef @.str.4)
  %3229 = call ptr @__errno_location() #11
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  %3231 = call ptr @strerror(i32 noundef %3230) #10
  %3232 = call ptr @__errno_location() #11
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3221, ptr noundef @.str.2, i32 noundef %3222, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 212, ptr noundef %3225, ptr noundef %3228, ptr noundef %3231, i32 noundef %3233) #10
  br label %3252

3235:                                             ; preds = %3213, %3206
  %3236 = load i32, ptr %75, align 4, !tbaa !5
  %3237 = call ptr @__errno_location() #11
  store i32 %3236, ptr %3237, align 4, !tbaa !5
  %3238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3239 = load i32, ptr @test_count, align 4, !tbaa !5
  %3240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3241 = load i32, ptr %3240, align 4, !tbaa !5
  %3242 = call ptr @s2n_strerror(i32 noundef %3241, ptr noundef @.str.4)
  %3243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3244 = load i32, ptr %3243, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror_debug(i32 noundef %3244, ptr noundef @.str.4)
  %3246 = call ptr @__errno_location() #11
  %3247 = load i32, ptr %3246, align 4, !tbaa !5
  %3248 = call ptr @strerror(i32 noundef %3247) #10
  %3249 = call ptr @__errno_location() #11
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3238, ptr noundef @.str.5, i32 noundef %3239, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 212, ptr noundef %3242, ptr noundef %3245, ptr noundef %3248, i32 noundef %3250) #10
  br label %3252

3252:                                             ; preds = %3235, %3218
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3253

3253:                                             ; preds = %3252
  br label %3254

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

3255:                                             ; No predecessors!
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256, %3198
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

3259:                                             ; preds = %3258
  br label %3260

3260:                                             ; preds = %3259
  %3261 = load i32, ptr @test_count, align 4, !tbaa !5
  %3262 = add nsw i32 %3261, 1
  store i32 %3262, ptr @test_count, align 4, !tbaa !5
  %3263 = load ptr, ptr %70, align 8, !tbaa !9
  %3264 = getelementptr inbounds %struct.s2n_connection, ptr %3263, i32 0, i32 33
  %3265 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3264, i32 0, i32 4
  %3266 = load ptr, ptr %3265, align 8, !tbaa !48
  %3267 = icmp eq ptr %3266, null
  br i1 %3267, label %3321, label %3268

3268:                                             ; preds = %3260
  br label %3269

3269:                                             ; preds = %3268
  br label %3270

3270:                                             ; preds = %3269
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %3271 = call ptr @__errno_location() #11
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  store i32 %3272, ptr %76, align 4, !tbaa !5
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = call i32 @s2n_print_stacktrace(ptr noundef %3273)
  %3275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3276 = trunc i8 %3275 to i1
  br i1 %3276, label %3277, label %3299

3277:                                             ; preds = %3270
  %3278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3279 = call i32 @fileno(ptr noundef %3278) #10
  %3280 = call i32 @isatty(i32 noundef %3279) #10
  %3281 = icmp ne i32 %3280, 0
  br i1 %3281, label %3282, label %3299

3282:                                             ; preds = %3277
  %3283 = load i32, ptr %76, align 4, !tbaa !5
  %3284 = call ptr @__errno_location() #11
  store i32 %3283, ptr %3284, align 4, !tbaa !5
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = load i32, ptr @test_count, align 4, !tbaa !5
  %3287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3288 = load i32, ptr %3287, align 4, !tbaa !5
  %3289 = call ptr @s2n_strerror(i32 noundef %3288, ptr noundef @.str.4)
  %3290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror_debug(i32 noundef %3291, ptr noundef @.str.4)
  %3293 = call ptr @__errno_location() #11
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @strerror(i32 noundef %3294) #10
  %3296 = call ptr @__errno_location() #11
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3285, ptr noundef @.str.2, i32 noundef %3286, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3289, ptr noundef %3292, ptr noundef %3295, i32 noundef %3297) #10
  br label %3316

3299:                                             ; preds = %3277, %3270
  %3300 = load i32, ptr %76, align 4, !tbaa !5
  %3301 = call ptr @__errno_location() #11
  store i32 %3300, ptr %3301, align 4, !tbaa !5
  %3302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3303 = load i32, ptr @test_count, align 4, !tbaa !5
  %3304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call ptr @s2n_strerror(i32 noundef %3305, ptr noundef @.str.4)
  %3307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call ptr @s2n_strerror_debug(i32 noundef %3308, ptr noundef @.str.4)
  %3310 = call ptr @__errno_location() #11
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call ptr @strerror(i32 noundef %3311) #10
  %3313 = call ptr @__errno_location() #11
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3302, ptr noundef @.str.5, i32 noundef %3303, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3306, ptr noundef %3309, ptr noundef %3312, i32 noundef %3314) #10
  br label %3316

3316:                                             ; preds = %3299, %3282
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3317

3317:                                             ; preds = %3316
  br label %3318

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

3319:                                             ; No predecessors!
  br label %3320

3320:                                             ; preds = %3319
  br label %3321

3321:                                             ; preds = %3320, %3260
  br label %3322

3322:                                             ; preds = %3321
  br label %3323

3323:                                             ; preds = %3322
  br label %3324

3324:                                             ; preds = %3323
  br label %3325

3325:                                             ; preds = %3324
  br label %3326

3326:                                             ; preds = %3325
  %3327 = load i32, ptr @test_count, align 4, !tbaa !5
  %3328 = add nsw i32 %3327, 1
  store i32 %3328, ptr @test_count, align 4, !tbaa !5
  %3329 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_psk_extension, i32 0, i32 4), align 8, !tbaa !49
  %3330 = load ptr, ptr %70, align 8, !tbaa !9
  %3331 = call i32 %3329(ptr noundef %3330, ptr noundef %68)
  %3332 = icmp eq i32 %3331, -1
  br i1 %3332, label %3386, label %3333

3333:                                             ; preds = %3326
  br label %3334

3334:                                             ; preds = %3333
  br label %3335

3335:                                             ; preds = %3334
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3336 = call ptr @__errno_location() #11
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  store i32 %3337, ptr %77, align 4, !tbaa !5
  %3338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3339 = call i32 @s2n_print_stacktrace(ptr noundef %3338)
  %3340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3341 = trunc i8 %3340 to i1
  br i1 %3341, label %3342, label %3364

3342:                                             ; preds = %3335
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @fileno(ptr noundef %3343) #10
  %3345 = call i32 @isatty(i32 noundef %3344) #10
  %3346 = icmp ne i32 %3345, 0
  br i1 %3346, label %3347, label %3364

3347:                                             ; preds = %3342
  %3348 = load i32, ptr %77, align 4, !tbaa !5
  %3349 = call ptr @__errno_location() #11
  store i32 %3348, ptr %3349, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror(i32 noundef %3353, ptr noundef @.str.4)
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror_debug(i32 noundef %3356, ptr noundef @.str.4)
  %3358 = call ptr @__errno_location() #11
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #10
  %3361 = call ptr @__errno_location() #11
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3350, ptr noundef @.str.2, i32 noundef %3351, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3354, ptr noundef %3357, ptr noundef %3360, i32 noundef %3362) #10
  br label %3381

3364:                                             ; preds = %3342, %3335
  %3365 = load i32, ptr %77, align 4, !tbaa !5
  %3366 = call ptr @__errno_location() #11
  store i32 %3365, ptr %3366, align 4, !tbaa !5
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = load i32, ptr @test_count, align 4, !tbaa !5
  %3369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror(i32 noundef %3370, ptr noundef @.str.4)
  %3372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror_debug(i32 noundef %3373, ptr noundef @.str.4)
  %3375 = call ptr @__errno_location() #11
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @strerror(i32 noundef %3376) #10
  %3378 = call ptr @__errno_location() #11
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3367, ptr noundef @.str.5, i32 noundef %3368, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3371, ptr noundef %3374, ptr noundef %3377, i32 noundef %3379) #10
  br label %3381

3381:                                             ; preds = %3364, %3347
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3382

3382:                                             ; preds = %3381
  br label %3383

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

3384:                                             ; No predecessors!
  br label %3385

3385:                                             ; preds = %3384
  br label %3386

3386:                                             ; preds = %3385, %3326
  br label %3387

3387:                                             ; preds = %3386
  br label %3388

3388:                                             ; preds = %3387
  br label %3389

3389:                                             ; preds = %3388
  %3390 = load i32, ptr @test_count, align 4, !tbaa !5
  %3391 = add nsw i32 %3390, 1
  store i32 %3391, ptr @test_count, align 4, !tbaa !5
  %3392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3393 = load i32, ptr %3392, align 4, !tbaa !5
  %3394 = icmp eq i32 %3393, 469762089
  br i1 %3394, label %3448, label %3395

3395:                                             ; preds = %3389
  br label %3396

3396:                                             ; preds = %3395
  br label %3397

3397:                                             ; preds = %3396
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  %3398 = call ptr @__errno_location() #11
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  store i32 %3399, ptr %78, align 4, !tbaa !5
  %3400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3401 = call i32 @s2n_print_stacktrace(ptr noundef %3400)
  %3402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3403 = trunc i8 %3402 to i1
  br i1 %3403, label %3404, label %3426

3404:                                             ; preds = %3397
  %3405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3406 = call i32 @fileno(ptr noundef %3405) #10
  %3407 = call i32 @isatty(i32 noundef %3406) #10
  %3408 = icmp ne i32 %3407, 0
  br i1 %3408, label %3409, label %3426

3409:                                             ; preds = %3404
  %3410 = load i32, ptr %78, align 4, !tbaa !5
  %3411 = call ptr @__errno_location() #11
  store i32 %3410, ptr %3411, align 4, !tbaa !5
  %3412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3413 = load i32, ptr @test_count, align 4, !tbaa !5
  %3414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3415 = load i32, ptr %3414, align 4, !tbaa !5
  %3416 = call ptr @s2n_strerror(i32 noundef %3415, ptr noundef @.str.4)
  %3417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3418 = load i32, ptr %3417, align 4, !tbaa !5
  %3419 = call ptr @s2n_strerror_debug(i32 noundef %3418, ptr noundef @.str.4)
  %3420 = call ptr @__errno_location() #11
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  %3422 = call ptr @strerror(i32 noundef %3421) #10
  %3423 = call ptr @__errno_location() #11
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3412, ptr noundef @.str.2, i32 noundef %3413, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3416, ptr noundef %3419, ptr noundef %3422, i32 noundef %3424) #10
  br label %3443

3426:                                             ; preds = %3404, %3397
  %3427 = load i32, ptr %78, align 4, !tbaa !5
  %3428 = call ptr @__errno_location() #11
  store i32 %3427, ptr %3428, align 4, !tbaa !5
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3432 = load i32, ptr %3431, align 4, !tbaa !5
  %3433 = call ptr @s2n_strerror(i32 noundef %3432, ptr noundef @.str.4)
  %3434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3435 = load i32, ptr %3434, align 4, !tbaa !5
  %3436 = call ptr @s2n_strerror_debug(i32 noundef %3435, ptr noundef @.str.4)
  %3437 = call ptr @__errno_location() #11
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  %3439 = call ptr @strerror(i32 noundef %3438) #10
  %3440 = call ptr @__errno_location() #11
  %3441 = load i32, ptr %3440, align 4, !tbaa !5
  %3442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3429, ptr noundef @.str.5, i32 noundef %3430, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3433, ptr noundef %3436, ptr noundef %3439, i32 noundef %3441) #10
  br label %3443

3443:                                             ; preds = %3426, %3409
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %3444

3444:                                             ; preds = %3443
  br label %3445

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

3446:                                             ; No predecessors!
  br label %3447

3447:                                             ; preds = %3446
  br label %3448

3448:                                             ; preds = %3447, %3389
  br label %3449

3449:                                             ; preds = %3448
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

3451:                                             ; preds = %3450
  %3452 = load i32, ptr @test_count, align 4, !tbaa !5
  %3453 = add nsw i32 %3452, 1
  store i32 %3453, ptr @test_count, align 4, !tbaa !5
  %3454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3455 = load i32, ptr %3454, align 4, !tbaa !5
  %3456 = call ptr @s2n_strerror_debug(i32 noundef %3455, ptr noundef @.str.4)
  %3457 = icmp eq ptr %3456, null
  br i1 %3457, label %3458, label %3511

3458:                                             ; preds = %3451
  br label %3459

3459:                                             ; preds = %3458
  br label %3460

3460:                                             ; preds = %3459
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3461 = call ptr @__errno_location() #11
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  store i32 %3462, ptr %79, align 4, !tbaa !5
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = call i32 @s2n_print_stacktrace(ptr noundef %3463)
  %3465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3466 = trunc i8 %3465 to i1
  br i1 %3466, label %3467, label %3489

3467:                                             ; preds = %3460
  %3468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3469 = call i32 @fileno(ptr noundef %3468) #10
  %3470 = call i32 @isatty(i32 noundef %3469) #10
  %3471 = icmp ne i32 %3470, 0
  br i1 %3471, label %3472, label %3489

3472:                                             ; preds = %3467
  %3473 = load i32, ptr %79, align 4, !tbaa !5
  %3474 = call ptr @__errno_location() #11
  store i32 %3473, ptr %3474, align 4, !tbaa !5
  %3475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3476 = load i32, ptr @test_count, align 4, !tbaa !5
  %3477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3478 = load i32, ptr %3477, align 4, !tbaa !5
  %3479 = call ptr @s2n_strerror(i32 noundef %3478, ptr noundef @.str.4)
  %3480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3481 = load i32, ptr %3480, align 4, !tbaa !5
  %3482 = call ptr @s2n_strerror_debug(i32 noundef %3481, ptr noundef @.str.4)
  %3483 = call ptr @__errno_location() #11
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  %3485 = call ptr @strerror(i32 noundef %3484) #10
  %3486 = call ptr @__errno_location() #11
  %3487 = load i32, ptr %3486, align 4, !tbaa !5
  %3488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3475, ptr noundef @.str.2, i32 noundef %3476, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3479, ptr noundef %3482, ptr noundef %3485, i32 noundef %3487) #10
  br label %3506

3489:                                             ; preds = %3467, %3460
  %3490 = load i32, ptr %79, align 4, !tbaa !5
  %3491 = call ptr @__errno_location() #11
  store i32 %3490, ptr %3491, align 4, !tbaa !5
  %3492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3493 = load i32, ptr @test_count, align 4, !tbaa !5
  %3494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3495 = load i32, ptr %3494, align 4, !tbaa !5
  %3496 = call ptr @s2n_strerror(i32 noundef %3495, ptr noundef @.str.4)
  %3497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3498 = load i32, ptr %3497, align 4, !tbaa !5
  %3499 = call ptr @s2n_strerror_debug(i32 noundef %3498, ptr noundef @.str.4)
  %3500 = call ptr @__errno_location() #11
  %3501 = load i32, ptr %3500, align 4, !tbaa !5
  %3502 = call ptr @strerror(i32 noundef %3501) #10
  %3503 = call ptr @__errno_location() #11
  %3504 = load i32, ptr %3503, align 4, !tbaa !5
  %3505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3492, ptr noundef @.str.5, i32 noundef %3493, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3496, ptr noundef %3499, ptr noundef %3502, i32 noundef %3504) #10
  br label %3506

3506:                                             ; preds = %3489, %3472
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3507

3507:                                             ; preds = %3506
  br label %3508

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

3509:                                             ; No predecessors!
  br label %3510

3510:                                             ; preds = %3509
  br label %3511

3511:                                             ; preds = %3510, %3451
  br label %3512

3512:                                             ; preds = %3511
  br label %3513

3513:                                             ; preds = %3512
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

3515:                                             ; preds = %3514
  br label %3516

3516:                                             ; preds = %3515
  %3517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3517, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3518 = call ptr @__errno_location() #11
  store i32 0, ptr %3518, align 4, !tbaa !5
  br label %3519

3519:                                             ; preds = %3516
  br label %3520

3520:                                             ; preds = %3519
  br label %3521

3521:                                             ; preds = %3520
  br label %3522

3522:                                             ; preds = %3521
  br label %3523

3523:                                             ; preds = %3522
  %3524 = load i32, ptr @test_count, align 4, !tbaa !5
  %3525 = add nsw i32 %3524, 1
  store i32 %3525, ptr @test_count, align 4, !tbaa !5
  %3526 = load ptr, ptr %70, align 8, !tbaa !9
  %3527 = getelementptr inbounds %struct.s2n_connection, ptr %3526, i32 0, i32 33
  %3528 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3527, i32 0, i32 4
  %3529 = load ptr, ptr %3528, align 8, !tbaa !48
  %3530 = icmp eq ptr %3529, null
  br i1 %3530, label %3584, label %3531

3531:                                             ; preds = %3523
  br label %3532

3532:                                             ; preds = %3531
  br label %3533

3533:                                             ; preds = %3532
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %3534 = call ptr @__errno_location() #11
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  store i32 %3535, ptr %80, align 4, !tbaa !5
  %3536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3537 = call i32 @s2n_print_stacktrace(ptr noundef %3536)
  %3538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3539 = trunc i8 %3538 to i1
  br i1 %3539, label %3540, label %3562

3540:                                             ; preds = %3533
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = call i32 @fileno(ptr noundef %3541) #10
  %3543 = call i32 @isatty(i32 noundef %3542) #10
  %3544 = icmp ne i32 %3543, 0
  br i1 %3544, label %3545, label %3562

3545:                                             ; preds = %3540
  %3546 = load i32, ptr %80, align 4, !tbaa !5
  %3547 = call ptr @__errno_location() #11
  store i32 %3546, ptr %3547, align 4, !tbaa !5
  %3548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3549 = load i32, ptr @test_count, align 4, !tbaa !5
  %3550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  %3552 = call ptr @s2n_strerror(i32 noundef %3551, ptr noundef @.str.4)
  %3553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3554 = load i32, ptr %3553, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror_debug(i32 noundef %3554, ptr noundef @.str.4)
  %3556 = call ptr @__errno_location() #11
  %3557 = load i32, ptr %3556, align 4, !tbaa !5
  %3558 = call ptr @strerror(i32 noundef %3557) #10
  %3559 = call ptr @__errno_location() #11
  %3560 = load i32, ptr %3559, align 4, !tbaa !5
  %3561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3548, ptr noundef @.str.2, i32 noundef %3549, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 216, ptr noundef %3552, ptr noundef %3555, ptr noundef %3558, i32 noundef %3560) #10
  br label %3579

3562:                                             ; preds = %3540, %3533
  %3563 = load i32, ptr %80, align 4, !tbaa !5
  %3564 = call ptr @__errno_location() #11
  store i32 %3563, ptr %3564, align 4, !tbaa !5
  %3565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3566 = load i32, ptr @test_count, align 4, !tbaa !5
  %3567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call ptr @s2n_strerror(i32 noundef %3568, ptr noundef @.str.4)
  %3570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  %3572 = call ptr @s2n_strerror_debug(i32 noundef %3571, ptr noundef @.str.4)
  %3573 = call ptr @__errno_location() #11
  %3574 = load i32, ptr %3573, align 4, !tbaa !5
  %3575 = call ptr @strerror(i32 noundef %3574) #10
  %3576 = call ptr @__errno_location() #11
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3565, ptr noundef @.str.5, i32 noundef %3566, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 216, ptr noundef %3569, ptr noundef %3572, ptr noundef %3575, i32 noundef %3577) #10
  br label %3579

3579:                                             ; preds = %3562, %3545
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

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

3582:                                             ; No predecessors!
  br label %3583

3583:                                             ; preds = %3582
  br label %3584

3584:                                             ; preds = %3583, %3523
  br label %3585

3585:                                             ; preds = %3584
  br label %3586

3586:                                             ; preds = %3585
  br label %3587

3587:                                             ; preds = %3586
  %3588 = load i32, ptr @test_count, align 4, !tbaa !5
  %3589 = add nsw i32 %3588, 1
  store i32 %3589, ptr @test_count, align 4, !tbaa !5
  %3590 = load ptr, ptr %70, align 8, !tbaa !9
  %3591 = call i32 @s2n_connection_free(ptr noundef %3590)
  %3592 = icmp eq i32 %3591, -1
  br i1 %3592, label %3593, label %3646

3593:                                             ; preds = %3587
  br label %3594

3594:                                             ; preds = %3593
  br label %3595

3595:                                             ; preds = %3594
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3596 = call ptr @__errno_location() #11
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  store i32 %3597, ptr %81, align 4, !tbaa !5
  %3598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3599 = call i32 @s2n_print_stacktrace(ptr noundef %3598)
  %3600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3601 = trunc i8 %3600 to i1
  br i1 %3601, label %3602, label %3624

3602:                                             ; preds = %3595
  %3603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3604 = call i32 @fileno(ptr noundef %3603) #10
  %3605 = call i32 @isatty(i32 noundef %3604) #10
  %3606 = icmp ne i32 %3605, 0
  br i1 %3606, label %3607, label %3624

3607:                                             ; preds = %3602
  %3608 = load i32, ptr %81, align 4, !tbaa !5
  %3609 = call ptr @__errno_location() #11
  store i32 %3608, ptr %3609, align 4, !tbaa !5
  %3610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3611 = load i32, ptr @test_count, align 4, !tbaa !5
  %3612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3613 = load i32, ptr %3612, align 4, !tbaa !5
  %3614 = call ptr @s2n_strerror(i32 noundef %3613, ptr noundef @.str.4)
  %3615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3616 = load i32, ptr %3615, align 4, !tbaa !5
  %3617 = call ptr @s2n_strerror_debug(i32 noundef %3616, ptr noundef @.str.4)
  %3618 = call ptr @__errno_location() #11
  %3619 = load i32, ptr %3618, align 4, !tbaa !5
  %3620 = call ptr @strerror(i32 noundef %3619) #10
  %3621 = call ptr @__errno_location() #11
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3610, ptr noundef @.str.2, i32 noundef %3611, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 218, ptr noundef %3614, ptr noundef %3617, ptr noundef %3620, i32 noundef %3622) #10
  br label %3641

3624:                                             ; preds = %3602, %3595
  %3625 = load i32, ptr %81, align 4, !tbaa !5
  %3626 = call ptr @__errno_location() #11
  store i32 %3625, ptr %3626, align 4, !tbaa !5
  %3627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3628 = load i32, ptr @test_count, align 4, !tbaa !5
  %3629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  %3631 = call ptr @s2n_strerror(i32 noundef %3630, ptr noundef @.str.4)
  %3632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3633 = load i32, ptr %3632, align 4, !tbaa !5
  %3634 = call ptr @s2n_strerror_debug(i32 noundef %3633, ptr noundef @.str.4)
  %3635 = call ptr @__errno_location() #11
  %3636 = load i32, ptr %3635, align 4, !tbaa !5
  %3637 = call ptr @strerror(i32 noundef %3636) #10
  %3638 = call ptr @__errno_location() #11
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3627, ptr noundef @.str.5, i32 noundef %3628, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 218, ptr noundef %3631, ptr noundef %3634, ptr noundef %3637, i32 noundef %3639) #10
  br label %3641

3641:                                             ; preds = %3624, %3607
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3642

3642:                                             ; preds = %3641
  br label %3643

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

3644:                                             ; No predecessors!
  br label %3645

3645:                                             ; preds = %3644
  br label %3646

3646:                                             ; preds = %3645, %3587
  br label %3647

3647:                                             ; preds = %3646
  br label %3648

3648:                                             ; preds = %3647
  br label %3649

3649:                                             ; preds = %3648
  %3650 = load i32, ptr @test_count, align 4, !tbaa !5
  %3651 = add nsw i32 %3650, 1
  store i32 %3651, ptr @test_count, align 4, !tbaa !5
  %3652 = call i32 @s2n_stuffer_free(ptr noundef %68)
  %3653 = icmp eq i32 %3652, -1
  br i1 %3653, label %3654, label %3707

3654:                                             ; preds = %3649
  br label %3655

3655:                                             ; preds = %3654
  br label %3656

3656:                                             ; preds = %3655
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3657 = call ptr @__errno_location() #11
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  store i32 %3658, ptr %82, align 4, !tbaa !5
  %3659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3660 = call i32 @s2n_print_stacktrace(ptr noundef %3659)
  %3661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3662 = trunc i8 %3661 to i1
  br i1 %3662, label %3663, label %3685

3663:                                             ; preds = %3656
  %3664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3665 = call i32 @fileno(ptr noundef %3664) #10
  %3666 = call i32 @isatty(i32 noundef %3665) #10
  %3667 = icmp ne i32 %3666, 0
  br i1 %3667, label %3668, label %3685

3668:                                             ; preds = %3663
  %3669 = load i32, ptr %82, align 4, !tbaa !5
  %3670 = call ptr @__errno_location() #11
  store i32 %3669, ptr %3670, align 4, !tbaa !5
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = load i32, ptr @test_count, align 4, !tbaa !5
  %3673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3674 = load i32, ptr %3673, align 4, !tbaa !5
  %3675 = call ptr @s2n_strerror(i32 noundef %3674, ptr noundef @.str.4)
  %3676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror_debug(i32 noundef %3677, ptr noundef @.str.4)
  %3679 = call ptr @__errno_location() #11
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @strerror(i32 noundef %3680) #10
  %3682 = call ptr @__errno_location() #11
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3671, ptr noundef @.str.2, i32 noundef %3672, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 219, ptr noundef %3675, ptr noundef %3678, ptr noundef %3681, i32 noundef %3683) #10
  br label %3702

3685:                                             ; preds = %3663, %3656
  %3686 = load i32, ptr %82, align 4, !tbaa !5
  %3687 = call ptr @__errno_location() #11
  store i32 %3686, ptr %3687, align 4, !tbaa !5
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = load i32, ptr @test_count, align 4, !tbaa !5
  %3690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3691 = load i32, ptr %3690, align 4, !tbaa !5
  %3692 = call ptr @s2n_strerror(i32 noundef %3691, ptr noundef @.str.4)
  %3693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3694 = load i32, ptr %3693, align 4, !tbaa !5
  %3695 = call ptr @s2n_strerror_debug(i32 noundef %3694, ptr noundef @.str.4)
  %3696 = call ptr @__errno_location() #11
  %3697 = load i32, ptr %3696, align 4, !tbaa !5
  %3698 = call ptr @strerror(i32 noundef %3697) #10
  %3699 = call ptr @__errno_location() #11
  %3700 = load i32, ptr %3699, align 4, !tbaa !5
  %3701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3688, ptr noundef @.str.5, i32 noundef %3689, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 219, ptr noundef %3692, ptr noundef %3695, ptr noundef %3698, i32 noundef %3700) #10
  br label %3702

3702:                                             ; preds = %3685, %3668
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3703

3703:                                             ; preds = %3702
  br label %3704

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

3705:                                             ; No predecessors!
  br label %3706

3706:                                             ; preds = %3705
  br label %3707

3707:                                             ; preds = %3706, %3649
  br label %3708

3708:                                             ; preds = %3707
  br label %3709

3709:                                             ; preds = %3708
  call void @llvm.lifetime.end.p0(i64 2, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %68) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %83) #10
  call void @llvm.memset.p0.i64(ptr align 8 %83, i8 0, i64 40, i1 false)
  br label %3710

3710:                                             ; preds = %3709
  %3711 = load i32, ptr @test_count, align 4, !tbaa !5
  %3712 = add nsw i32 %3711, 1
  store i32 %3712, ptr @test_count, align 4, !tbaa !5
  %3713 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %83, i32 noundef 0)
  %3714 = icmp eq i32 %3713, -1
  br i1 %3714, label %3715, label %3768

3715:                                             ; preds = %3710
  br label %3716

3716:                                             ; preds = %3715
  br label %3717

3717:                                             ; preds = %3716
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %3718 = call ptr @__errno_location() #11
  %3719 = load i32, ptr %3718, align 4, !tbaa !5
  store i32 %3719, ptr %84, align 4, !tbaa !5
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = call i32 @s2n_print_stacktrace(ptr noundef %3720)
  %3722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3723 = trunc i8 %3722 to i1
  br i1 %3723, label %3724, label %3746

3724:                                             ; preds = %3717
  %3725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3726 = call i32 @fileno(ptr noundef %3725) #10
  %3727 = call i32 @isatty(i32 noundef %3726) #10
  %3728 = icmp ne i32 %3727, 0
  br i1 %3728, label %3729, label %3746

3729:                                             ; preds = %3724
  %3730 = load i32, ptr %84, align 4, !tbaa !5
  %3731 = call ptr @__errno_location() #11
  store i32 %3730, ptr %3731, align 4, !tbaa !5
  %3732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3733 = load i32, ptr @test_count, align 4, !tbaa !5
  %3734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3735 = load i32, ptr %3734, align 4, !tbaa !5
  %3736 = call ptr @s2n_strerror(i32 noundef %3735, ptr noundef @.str.4)
  %3737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call ptr @s2n_strerror_debug(i32 noundef %3738, ptr noundef @.str.4)
  %3740 = call ptr @__errno_location() #11
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call ptr @strerror(i32 noundef %3741) #10
  %3743 = call ptr @__errno_location() #11
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3732, ptr noundef @.str.2, i32 noundef %3733, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 225, ptr noundef %3736, ptr noundef %3739, ptr noundef %3742, i32 noundef %3744) #10
  br label %3763

3746:                                             ; preds = %3724, %3717
  %3747 = load i32, ptr %84, align 4, !tbaa !5
  %3748 = call ptr @__errno_location() #11
  store i32 %3747, ptr %3748, align 4, !tbaa !5
  %3749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3750 = load i32, ptr @test_count, align 4, !tbaa !5
  %3751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3752 = load i32, ptr %3751, align 4, !tbaa !5
  %3753 = call ptr @s2n_strerror(i32 noundef %3752, ptr noundef @.str.4)
  %3754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3755 = load i32, ptr %3754, align 4, !tbaa !5
  %3756 = call ptr @s2n_strerror_debug(i32 noundef %3755, ptr noundef @.str.4)
  %3757 = call ptr @__errno_location() #11
  %3758 = load i32, ptr %3757, align 4, !tbaa !5
  %3759 = call ptr @strerror(i32 noundef %3758) #10
  %3760 = call ptr @__errno_location() #11
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  %3762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3749, ptr noundef @.str.5, i32 noundef %3750, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 225, ptr noundef %3753, ptr noundef %3756, ptr noundef %3759, i32 noundef %3761) #10
  br label %3763

3763:                                             ; preds = %3746, %3729
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3764

3764:                                             ; preds = %3763
  br label %3765

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

3766:                                             ; No predecessors!
  br label %3767

3767:                                             ; preds = %3766
  br label %3768

3768:                                             ; preds = %3767, %3710
  br label %3769

3769:                                             ; preds = %3768
  br label %3770

3770:                                             ; preds = %3769
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  store ptr null, ptr %85, align 8, !tbaa !9
  br label %3771

3771:                                             ; preds = %3770
  %3772 = load i32, ptr @test_count, align 4, !tbaa !5
  %3773 = add nsw i32 %3772, 1
  store i32 %3773, ptr @test_count, align 4, !tbaa !5
  %3774 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3774, ptr %85, align 8, !tbaa !9
  %3775 = icmp eq ptr %3774, null
  br i1 %3775, label %3776, label %3829

3776:                                             ; preds = %3771
  br label %3777

3777:                                             ; preds = %3776
  br label %3778

3778:                                             ; preds = %3777
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  %3779 = call ptr @__errno_location() #11
  %3780 = load i32, ptr %3779, align 4, !tbaa !5
  store i32 %3780, ptr %86, align 4, !tbaa !5
  %3781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3782 = call i32 @s2n_print_stacktrace(ptr noundef %3781)
  %3783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3784 = trunc i8 %3783 to i1
  br i1 %3784, label %3785, label %3807

3785:                                             ; preds = %3778
  %3786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3787 = call i32 @fileno(ptr noundef %3786) #10
  %3788 = call i32 @isatty(i32 noundef %3787) #10
  %3789 = icmp ne i32 %3788, 0
  br i1 %3789, label %3790, label %3807

3790:                                             ; preds = %3785
  %3791 = load i32, ptr %86, align 4, !tbaa !5
  %3792 = call ptr @__errno_location() #11
  store i32 %3791, ptr %3792, align 4, !tbaa !5
  %3793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3796 = load i32, ptr %3795, align 4, !tbaa !5
  %3797 = call ptr @s2n_strerror(i32 noundef %3796, ptr noundef @.str.4)
  %3798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call ptr @s2n_strerror_debug(i32 noundef %3799, ptr noundef @.str.4)
  %3801 = call ptr @__errno_location() #11
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = call ptr @strerror(i32 noundef %3802) #10
  %3804 = call ptr @__errno_location() #11
  %3805 = load i32, ptr %3804, align 4, !tbaa !5
  %3806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3793, ptr noundef @.str.2, i32 noundef %3794, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3797, ptr noundef %3800, ptr noundef %3803, i32 noundef %3805) #10
  br label %3824

3807:                                             ; preds = %3785, %3778
  %3808 = load i32, ptr %86, align 4, !tbaa !5
  %3809 = call ptr @__errno_location() #11
  store i32 %3808, ptr %3809, align 4, !tbaa !5
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = load i32, ptr @test_count, align 4, !tbaa !5
  %3812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3813 = load i32, ptr %3812, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror(i32 noundef %3813, ptr noundef @.str.4)
  %3815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3816 = load i32, ptr %3815, align 4, !tbaa !5
  %3817 = call ptr @s2n_strerror_debug(i32 noundef %3816, ptr noundef @.str.4)
  %3818 = call ptr @__errno_location() #11
  %3819 = load i32, ptr %3818, align 4, !tbaa !5
  %3820 = call ptr @strerror(i32 noundef %3819) #10
  %3821 = call ptr @__errno_location() #11
  %3822 = load i32, ptr %3821, align 4, !tbaa !5
  %3823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3810, ptr noundef @.str.5, i32 noundef %3811, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3814, ptr noundef %3817, ptr noundef %3820, i32 noundef %3822) #10
  br label %3824

3824:                                             ; preds = %3807, %3790
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %3825

3825:                                             ; preds = %3824
  br label %3826

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

3827:                                             ; No predecessors!
  br label %3828

3828:                                             ; preds = %3827
  br label %3829

3829:                                             ; preds = %3828, %3771
  br label %3830

3830:                                             ; preds = %3829
  br label %3831

3831:                                             ; preds = %3830
  br label %3832

3832:                                             ; preds = %3831
  %3833 = load i32, ptr @test_count, align 4, !tbaa !5
  %3834 = add nsw i32 %3833, 1
  store i32 %3834, ptr @test_count, align 4, !tbaa !5
  %3835 = load ptr, ptr %85, align 8, !tbaa !9
  %3836 = call i32 @setup_client_psks(ptr noundef %3835)
  %3837 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  store i32 %3836, ptr %3837, align 4
  %3838 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  %3839 = load i32, ptr %3838, align 4
  %3840 = call zeroext i1 @s2n_result_is_ok(i32 %3839)
  br i1 %3840, label %3894, label %3841

3841:                                             ; preds = %3832
  br label %3842

3842:                                             ; preds = %3841
  br label %3843

3843:                                             ; preds = %3842
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %3844 = call ptr @__errno_location() #11
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  store i32 %3845, ptr %88, align 4, !tbaa !5
  %3846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3847 = call i32 @s2n_print_stacktrace(ptr noundef %3846)
  %3848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3849 = trunc i8 %3848 to i1
  br i1 %3849, label %3850, label %3872

3850:                                             ; preds = %3843
  %3851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3852 = call i32 @fileno(ptr noundef %3851) #10
  %3853 = call i32 @isatty(i32 noundef %3852) #10
  %3854 = icmp ne i32 %3853, 0
  br i1 %3854, label %3855, label %3872

3855:                                             ; preds = %3850
  %3856 = load i32, ptr %88, align 4, !tbaa !5
  %3857 = call ptr @__errno_location() #11
  store i32 %3856, ptr %3857, align 4, !tbaa !5
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = load i32, ptr @test_count, align 4, !tbaa !5
  %3860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3861 = load i32, ptr %3860, align 4, !tbaa !5
  %3862 = call ptr @s2n_strerror(i32 noundef %3861, ptr noundef @.str.4)
  %3863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3864 = load i32, ptr %3863, align 4, !tbaa !5
  %3865 = call ptr @s2n_strerror_debug(i32 noundef %3864, ptr noundef @.str.4)
  %3866 = call ptr @__errno_location() #11
  %3867 = load i32, ptr %3866, align 4, !tbaa !5
  %3868 = call ptr @strerror(i32 noundef %3867) #10
  %3869 = call ptr @__errno_location() #11
  %3870 = load i32, ptr %3869, align 4, !tbaa !5
  %3871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3858, ptr noundef @.str.2, i32 noundef %3859, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3862, ptr noundef %3865, ptr noundef %3868, i32 noundef %3870) #10
  br label %3889

3872:                                             ; preds = %3850, %3843
  %3873 = load i32, ptr %88, align 4, !tbaa !5
  %3874 = call ptr @__errno_location() #11
  store i32 %3873, ptr %3874, align 4, !tbaa !5
  %3875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3876 = load i32, ptr @test_count, align 4, !tbaa !5
  %3877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3878 = load i32, ptr %3877, align 4, !tbaa !5
  %3879 = call ptr @s2n_strerror(i32 noundef %3878, ptr noundef @.str.4)
  %3880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3881 = load i32, ptr %3880, align 4, !tbaa !5
  %3882 = call ptr @s2n_strerror_debug(i32 noundef %3881, ptr noundef @.str.4)
  %3883 = call ptr @__errno_location() #11
  %3884 = load i32, ptr %3883, align 4, !tbaa !5
  %3885 = call ptr @strerror(i32 noundef %3884) #10
  %3886 = call ptr @__errno_location() #11
  %3887 = load i32, ptr %3886, align 4, !tbaa !5
  %3888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3875, ptr noundef @.str.5, i32 noundef %3876, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3879, ptr noundef %3882, ptr noundef %3885, i32 noundef %3887) #10
  br label %3889

3889:                                             ; preds = %3872, %3855
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %3890

3890:                                             ; preds = %3889
  br label %3891

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

3892:                                             ; No predecessors!
  br label %3893

3893:                                             ; preds = %3892
  br label %3894

3894:                                             ; preds = %3893, %3832
  br label %3895

3895:                                             ; preds = %3894
  br label %3896

3896:                                             ; preds = %3895
  %3897 = load i8, ptr %37, align 1, !tbaa !47
  %3898 = zext i8 %3897 to i32
  %3899 = srem i32 %3898, 8
  %3900 = shl i32 1, %3899
  %3901 = load ptr, ptr %85, align 8, !tbaa !9
  %3902 = getelementptr inbounds %struct.s2n_connection, ptr %3901, i32 0, i32 12
  %3903 = load i8, ptr %37, align 1, !tbaa !47
  %3904 = zext i8 %3903 to i32
  %3905 = ashr i32 %3904, 3
  %3906 = sext i32 %3905 to i64
  %3907 = getelementptr inbounds [22 x i8], ptr %3902, i64 0, i64 %3906
  %3908 = load i8, ptr %3907, align 1, !tbaa !47
  %3909 = sext i8 %3908 to i32
  %3910 = or i32 %3909, %3900
  %3911 = trunc i32 %3910 to i8
  store i8 %3911, ptr %3907, align 1, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 2, ptr %89) #10
  store i16 1, ptr %89, align 2, !tbaa !46
  %3912 = load ptr, ptr %85, align 8, !tbaa !9
  %3913 = getelementptr inbounds %struct.s2n_connection, ptr %3912, i32 0, i32 23
  store i8 34, ptr %3913, align 4, !tbaa !44
  br label %3914

3914:                                             ; preds = %3896
  %3915 = load i32, ptr @test_count, align 4, !tbaa !5
  %3916 = add nsw i32 %3915, 1
  store i32 %3916, ptr @test_count, align 4, !tbaa !5
  %3917 = load i16, ptr %89, align 2, !tbaa !46
  %3918 = call i32 @s2n_stuffer_write_uint16(ptr noundef %83, i16 noundef zeroext %3917)
  %3919 = icmp eq i32 %3918, -1
  br i1 %3919, label %3920, label %3973

3920:                                             ; preds = %3914
  br label %3921

3921:                                             ; preds = %3920
  br label %3922

3922:                                             ; preds = %3921
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %3923 = call ptr @__errno_location() #11
  %3924 = load i32, ptr %3923, align 4, !tbaa !5
  store i32 %3924, ptr %90, align 4, !tbaa !5
  %3925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3926 = call i32 @s2n_print_stacktrace(ptr noundef %3925)
  %3927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3928 = trunc i8 %3927 to i1
  br i1 %3928, label %3929, label %3951

3929:                                             ; preds = %3922
  %3930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3931 = call i32 @fileno(ptr noundef %3930) #10
  %3932 = call i32 @isatty(i32 noundef %3931) #10
  %3933 = icmp ne i32 %3932, 0
  br i1 %3933, label %3934, label %3951

3934:                                             ; preds = %3929
  %3935 = load i32, ptr %90, align 4, !tbaa !5
  %3936 = call ptr @__errno_location() #11
  store i32 %3935, ptr %3936, align 4, !tbaa !5
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = load i32, ptr @test_count, align 4, !tbaa !5
  %3939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call ptr @s2n_strerror(i32 noundef %3940, ptr noundef @.str.4)
  %3942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3943 = load i32, ptr %3942, align 4, !tbaa !5
  %3944 = call ptr @s2n_strerror_debug(i32 noundef %3943, ptr noundef @.str.4)
  %3945 = call ptr @__errno_location() #11
  %3946 = load i32, ptr %3945, align 4, !tbaa !5
  %3947 = call ptr @strerror(i32 noundef %3946) #10
  %3948 = call ptr @__errno_location() #11
  %3949 = load i32, ptr %3948, align 4, !tbaa !5
  %3950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3937, ptr noundef @.str.2, i32 noundef %3938, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 240, ptr noundef %3941, ptr noundef %3944, ptr noundef %3947, i32 noundef %3949) #10
  br label %3968

3951:                                             ; preds = %3929, %3922
  %3952 = load i32, ptr %90, align 4, !tbaa !5
  %3953 = call ptr @__errno_location() #11
  store i32 %3952, ptr %3953, align 4, !tbaa !5
  %3954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3955 = load i32, ptr @test_count, align 4, !tbaa !5
  %3956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call ptr @s2n_strerror(i32 noundef %3957, ptr noundef @.str.4)
  %3959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  %3961 = call ptr @s2n_strerror_debug(i32 noundef %3960, ptr noundef @.str.4)
  %3962 = call ptr @__errno_location() #11
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call ptr @strerror(i32 noundef %3963) #10
  %3965 = call ptr @__errno_location() #11
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3954, ptr noundef @.str.5, i32 noundef %3955, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 240, ptr noundef %3958, ptr noundef %3961, ptr noundef %3964, i32 noundef %3966) #10
  br label %3968

3968:                                             ; preds = %3951, %3934
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %3969

3969:                                             ; preds = %3968
  br label %3970

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

3971:                                             ; No predecessors!
  br label %3972

3972:                                             ; preds = %3971
  br label %3973

3973:                                             ; preds = %3972, %3914
  br label %3974

3974:                                             ; preds = %3973
  br label %3975

3975:                                             ; preds = %3974
  br label %3976

3976:                                             ; preds = %3975
  %3977 = load i32, ptr @test_count, align 4, !tbaa !5
  %3978 = add nsw i32 %3977, 1
  store i32 %3978, ptr @test_count, align 4, !tbaa !5
  %3979 = load ptr, ptr %85, align 8, !tbaa !9
  %3980 = getelementptr inbounds %struct.s2n_connection, ptr %3979, i32 0, i32 33
  %3981 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3980, i32 0, i32 4
  %3982 = load ptr, ptr %3981, align 8, !tbaa !48
  %3983 = icmp eq ptr %3982, null
  br i1 %3983, label %4037, label %3984

3984:                                             ; preds = %3976
  br label %3985

3985:                                             ; preds = %3984
  br label %3986

3986:                                             ; preds = %3985
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %3987 = call ptr @__errno_location() #11
  %3988 = load i32, ptr %3987, align 4, !tbaa !5
  store i32 %3988, ptr %91, align 4, !tbaa !5
  %3989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3990 = call i32 @s2n_print_stacktrace(ptr noundef %3989)
  %3991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3992 = trunc i8 %3991 to i1
  br i1 %3992, label %3993, label %4015

3993:                                             ; preds = %3986
  %3994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3995 = call i32 @fileno(ptr noundef %3994) #10
  %3996 = call i32 @isatty(i32 noundef %3995) #10
  %3997 = icmp ne i32 %3996, 0
  br i1 %3997, label %3998, label %4015

3998:                                             ; preds = %3993
  %3999 = load i32, ptr %91, align 4, !tbaa !5
  %4000 = call ptr @__errno_location() #11
  store i32 %3999, ptr %4000, align 4, !tbaa !5
  %4001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4002 = load i32, ptr @test_count, align 4, !tbaa !5
  %4003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4004 = load i32, ptr %4003, align 4, !tbaa !5
  %4005 = call ptr @s2n_strerror(i32 noundef %4004, ptr noundef @.str.4)
  %4006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4007 = load i32, ptr %4006, align 4, !tbaa !5
  %4008 = call ptr @s2n_strerror_debug(i32 noundef %4007, ptr noundef @.str.4)
  %4009 = call ptr @__errno_location() #11
  %4010 = load i32, ptr %4009, align 4, !tbaa !5
  %4011 = call ptr @strerror(i32 noundef %4010) #10
  %4012 = call ptr @__errno_location() #11
  %4013 = load i32, ptr %4012, align 4, !tbaa !5
  %4014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4001, ptr noundef @.str.2, i32 noundef %4002, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 242, ptr noundef %4005, ptr noundef %4008, ptr noundef %4011, i32 noundef %4013) #10
  br label %4032

4015:                                             ; preds = %3993, %3986
  %4016 = load i32, ptr %91, align 4, !tbaa !5
  %4017 = call ptr @__errno_location() #11
  store i32 %4016, ptr %4017, align 4, !tbaa !5
  %4018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4019 = load i32, ptr @test_count, align 4, !tbaa !5
  %4020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4021 = load i32, ptr %4020, align 4, !tbaa !5
  %4022 = call ptr @s2n_strerror(i32 noundef %4021, ptr noundef @.str.4)
  %4023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call ptr @s2n_strerror_debug(i32 noundef %4024, ptr noundef @.str.4)
  %4026 = call ptr @__errno_location() #11
  %4027 = load i32, ptr %4026, align 4, !tbaa !5
  %4028 = call ptr @strerror(i32 noundef %4027) #10
  %4029 = call ptr @__errno_location() #11
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4018, ptr noundef @.str.5, i32 noundef %4019, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 242, ptr noundef %4022, ptr noundef %4025, ptr noundef %4028, i32 noundef %4030) #10
  br label %4032

4032:                                             ; preds = %4015, %3998
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %4033

4033:                                             ; preds = %4032
  br label %4034

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

4035:                                             ; No predecessors!
  br label %4036

4036:                                             ; preds = %4035
  br label %4037

4037:                                             ; preds = %4036, %3976
  br label %4038

4038:                                             ; preds = %4037
  br label %4039

4039:                                             ; preds = %4038
  br label %4040

4040:                                             ; preds = %4039
  %4041 = load i32, ptr @test_count, align 4, !tbaa !5
  %4042 = add nsw i32 %4041, 1
  store i32 %4042, ptr @test_count, align 4, !tbaa !5
  %4043 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_psk_extension, i32 0, i32 4), align 8, !tbaa !49
  %4044 = load ptr, ptr %85, align 8, !tbaa !9
  %4045 = call i32 %4043(ptr noundef %4044, ptr noundef %83)
  %4046 = icmp eq i32 %4045, -1
  br i1 %4046, label %4047, label %4100

4047:                                             ; preds = %4040
  br label %4048

4048:                                             ; preds = %4047
  br label %4049

4049:                                             ; preds = %4048
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %4050 = call ptr @__errno_location() #11
  %4051 = load i32, ptr %4050, align 4, !tbaa !5
  store i32 %4051, ptr %92, align 4, !tbaa !5
  %4052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4053 = call i32 @s2n_print_stacktrace(ptr noundef %4052)
  %4054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4055 = trunc i8 %4054 to i1
  br i1 %4055, label %4056, label %4078

4056:                                             ; preds = %4049
  %4057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4058 = call i32 @fileno(ptr noundef %4057) #10
  %4059 = call i32 @isatty(i32 noundef %4058) #10
  %4060 = icmp ne i32 %4059, 0
  br i1 %4060, label %4061, label %4078

4061:                                             ; preds = %4056
  %4062 = load i32, ptr %92, align 4, !tbaa !5
  %4063 = call ptr @__errno_location() #11
  store i32 %4062, ptr %4063, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = load i32, ptr @test_count, align 4, !tbaa !5
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror(i32 noundef %4067, ptr noundef @.str.4)
  %4069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @s2n_strerror_debug(i32 noundef %4070, ptr noundef @.str.4)
  %4072 = call ptr @__errno_location() #11
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @strerror(i32 noundef %4073) #10
  %4075 = call ptr @__errno_location() #11
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4064, ptr noundef @.str.2, i32 noundef %4065, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 243, ptr noundef %4068, ptr noundef %4071, ptr noundef %4074, i32 noundef %4076) #10
  br label %4095

4078:                                             ; preds = %4056, %4049
  %4079 = load i32, ptr %92, align 4, !tbaa !5
  %4080 = call ptr @__errno_location() #11
  store i32 %4079, ptr %4080, align 4, !tbaa !5
  %4081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4082 = load i32, ptr @test_count, align 4, !tbaa !5
  %4083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call ptr @s2n_strerror(i32 noundef %4084, ptr noundef @.str.4)
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror_debug(i32 noundef %4087, ptr noundef @.str.4)
  %4089 = call ptr @__errno_location() #11
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @strerror(i32 noundef %4090) #10
  %4092 = call ptr @__errno_location() #11
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4081, ptr noundef @.str.5, i32 noundef %4082, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 243, ptr noundef %4085, ptr noundef %4088, ptr noundef %4091, i32 noundef %4093) #10
  br label %4095

4095:                                             ; preds = %4078, %4061
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %4096

4096:                                             ; preds = %4095
  br label %4097

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

4098:                                             ; No predecessors!
  br label %4099

4099:                                             ; preds = %4098
  br label %4100

4100:                                             ; preds = %4099, %4040
  br label %4101

4101:                                             ; preds = %4100
  br label %4102

4102:                                             ; preds = %4101
  br label %4103

4103:                                             ; preds = %4102
  %4104 = load i32, ptr @test_count, align 4, !tbaa !5
  %4105 = add nsw i32 %4104, 1
  store i32 %4105, ptr @test_count, align 4, !tbaa !5
  %4106 = load ptr, ptr %85, align 8, !tbaa !9
  %4107 = getelementptr inbounds %struct.s2n_connection, ptr %4106, i32 0, i32 33
  %4108 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %4107, i32 0, i32 5
  %4109 = load i32, ptr %4108, align 8, !tbaa !50
  %4110 = icmp eq i32 %4109, 2
  br i1 %4110, label %4164, label %4111

4111:                                             ; preds = %4103
  br label %4112

4112:                                             ; preds = %4111
  br label %4113

4113:                                             ; preds = %4112
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  %4114 = call ptr @__errno_location() #11
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  store i32 %4115, ptr %93, align 4, !tbaa !5
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = call i32 @s2n_print_stacktrace(ptr noundef %4116)
  %4118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4119 = trunc i8 %4118 to i1
  br i1 %4119, label %4120, label %4142

4120:                                             ; preds = %4113
  %4121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4122 = call i32 @fileno(ptr noundef %4121) #10
  %4123 = call i32 @isatty(i32 noundef %4122) #10
  %4124 = icmp ne i32 %4123, 0
  br i1 %4124, label %4125, label %4142

4125:                                             ; preds = %4120
  %4126 = load i32, ptr %93, align 4, !tbaa !5
  %4127 = call ptr @__errno_location() #11
  store i32 %4126, ptr %4127, align 4, !tbaa !5
  %4128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4129 = load i32, ptr @test_count, align 4, !tbaa !5
  %4130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4131 = load i32, ptr %4130, align 4, !tbaa !5
  %4132 = call ptr @s2n_strerror(i32 noundef %4131, ptr noundef @.str.4)
  %4133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4134 = load i32, ptr %4133, align 4, !tbaa !5
  %4135 = call ptr @s2n_strerror_debug(i32 noundef %4134, ptr noundef @.str.4)
  %4136 = call ptr @__errno_location() #11
  %4137 = load i32, ptr %4136, align 4, !tbaa !5
  %4138 = call ptr @strerror(i32 noundef %4137) #10
  %4139 = call ptr @__errno_location() #11
  %4140 = load i32, ptr %4139, align 4, !tbaa !5
  %4141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4128, ptr noundef @.str.2, i32 noundef %4129, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 246, ptr noundef %4132, ptr noundef %4135, ptr noundef %4138, i32 noundef %4140) #10
  br label %4159

4142:                                             ; preds = %4120, %4113
  %4143 = load i32, ptr %93, align 4, !tbaa !5
  %4144 = call ptr @__errno_location() #11
  store i32 %4143, ptr %4144, align 4, !tbaa !5
  %4145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4146 = load i32, ptr @test_count, align 4, !tbaa !5
  %4147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call ptr @s2n_strerror(i32 noundef %4148, ptr noundef @.str.4)
  %4150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror_debug(i32 noundef %4151, ptr noundef @.str.4)
  %4153 = call ptr @__errno_location() #11
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  %4155 = call ptr @strerror(i32 noundef %4154) #10
  %4156 = call ptr @__errno_location() #11
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  %4158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4145, ptr noundef @.str.5, i32 noundef %4146, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 246, ptr noundef %4149, ptr noundef %4152, ptr noundef %4155, i32 noundef %4157) #10
  br label %4159

4159:                                             ; preds = %4142, %4125
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %4160

4160:                                             ; preds = %4159
  br label %4161

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

4162:                                             ; No predecessors!
  br label %4163

4163:                                             ; preds = %4162
  br label %4164

4164:                                             ; preds = %4163, %4103
  br label %4165

4165:                                             ; preds = %4164
  br label %4166

4166:                                             ; preds = %4165
  br label %4167

4167:                                             ; preds = %4166
  %4168 = load i32, ptr @test_count, align 4, !tbaa !5
  %4169 = add nsw i32 %4168, 1
  store i32 %4169, ptr @test_count, align 4, !tbaa !5
  %4170 = load ptr, ptr %85, align 8, !tbaa !9
  %4171 = getelementptr inbounds %struct.s2n_connection, ptr %4170, i32 0, i32 33
  %4172 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %4171, i32 0, i32 3
  %4173 = load i16, ptr %4172, align 2, !tbaa !18
  %4174 = zext i16 %4173 to i32
  %4175 = icmp eq i32 %4174, 1
  br i1 %4175, label %4229, label %4176

4176:                                             ; preds = %4167
  br label %4177

4177:                                             ; preds = %4176
  br label %4178

4178:                                             ; preds = %4177
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %4179 = call ptr @__errno_location() #11
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  store i32 %4180, ptr %94, align 4, !tbaa !5
  %4181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4182 = call i32 @s2n_print_stacktrace(ptr noundef %4181)
  %4183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4184 = trunc i8 %4183 to i1
  br i1 %4184, label %4185, label %4207

4185:                                             ; preds = %4178
  %4186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4187 = call i32 @fileno(ptr noundef %4186) #10
  %4188 = call i32 @isatty(i32 noundef %4187) #10
  %4189 = icmp ne i32 %4188, 0
  br i1 %4189, label %4190, label %4207

4190:                                             ; preds = %4185
  %4191 = load i32, ptr %94, align 4, !tbaa !5
  %4192 = call ptr @__errno_location() #11
  store i32 %4191, ptr %4192, align 4, !tbaa !5
  %4193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4194 = load i32, ptr @test_count, align 4, !tbaa !5
  %4195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4196 = load i32, ptr %4195, align 4, !tbaa !5
  %4197 = call ptr @s2n_strerror(i32 noundef %4196, ptr noundef @.str.4)
  %4198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  %4200 = call ptr @s2n_strerror_debug(i32 noundef %4199, ptr noundef @.str.4)
  %4201 = call ptr @__errno_location() #11
  %4202 = load i32, ptr %4201, align 4, !tbaa !5
  %4203 = call ptr @strerror(i32 noundef %4202) #10
  %4204 = call ptr @__errno_location() #11
  %4205 = load i32, ptr %4204, align 4, !tbaa !5
  %4206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4193, ptr noundef @.str.2, i32 noundef %4194, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 247, ptr noundef %4197, ptr noundef %4200, ptr noundef %4203, i32 noundef %4205) #10
  br label %4224

4207:                                             ; preds = %4185, %4178
  %4208 = load i32, ptr %94, align 4, !tbaa !5
  %4209 = call ptr @__errno_location() #11
  store i32 %4208, ptr %4209, align 4, !tbaa !5
  %4210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4211 = load i32, ptr @test_count, align 4, !tbaa !5
  %4212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4213 = load i32, ptr %4212, align 4, !tbaa !5
  %4214 = call ptr @s2n_strerror(i32 noundef %4213, ptr noundef @.str.4)
  %4215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4216 = load i32, ptr %4215, align 4, !tbaa !5
  %4217 = call ptr @s2n_strerror_debug(i32 noundef %4216, ptr noundef @.str.4)
  %4218 = call ptr @__errno_location() #11
  %4219 = load i32, ptr %4218, align 4, !tbaa !5
  %4220 = call ptr @strerror(i32 noundef %4219) #10
  %4221 = call ptr @__errno_location() #11
  %4222 = load i32, ptr %4221, align 4, !tbaa !5
  %4223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4210, ptr noundef @.str.5, i32 noundef %4211, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 247, ptr noundef %4214, ptr noundef %4217, ptr noundef %4220, i32 noundef %4222) #10
  br label %4224

4224:                                             ; preds = %4207, %4190
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %4225

4225:                                             ; preds = %4224
  br label %4226

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

4227:                                             ; No predecessors!
  br label %4228

4228:                                             ; preds = %4227
  br label %4229

4229:                                             ; preds = %4228, %4167
  br label %4230

4230:                                             ; preds = %4229
  br label %4231

4231:                                             ; preds = %4230
  br label %4232

4232:                                             ; preds = %4231
  %4233 = load i32, ptr @test_count, align 4, !tbaa !5
  %4234 = add nsw i32 %4233, 1
  store i32 %4234, ptr @test_count, align 4, !tbaa !5
  %4235 = load ptr, ptr %85, align 8, !tbaa !9
  %4236 = getelementptr inbounds %struct.s2n_connection, ptr %4235, i32 0, i32 33
  %4237 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %4236, i32 0, i32 4
  %4238 = load ptr, ptr %4237, align 8, !tbaa !48
  %4239 = getelementptr inbounds %struct.s2n_psk, ptr %4238, i32 0, i32 1
  %4240 = getelementptr inbounds %struct.s2n_blob, ptr %4239, i32 0, i32 1
  %4241 = load i32, ptr %4240, align 8, !tbaa !51
  %4242 = zext i32 %4241 to i64
  %4243 = icmp eq i64 %4242, 14
  br i1 %4243, label %4297, label %4244

4244:                                             ; preds = %4232
  br label %4245

4245:                                             ; preds = %4244
  br label %4246

4246:                                             ; preds = %4245
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  %4247 = call ptr @__errno_location() #11
  %4248 = load i32, ptr %4247, align 4, !tbaa !5
  store i32 %4248, ptr %95, align 4, !tbaa !5
  %4249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4250 = call i32 @s2n_print_stacktrace(ptr noundef %4249)
  %4251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4252 = trunc i8 %4251 to i1
  br i1 %4252, label %4253, label %4275

4253:                                             ; preds = %4246
  %4254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4255 = call i32 @fileno(ptr noundef %4254) #10
  %4256 = call i32 @isatty(i32 noundef %4255) #10
  %4257 = icmp ne i32 %4256, 0
  br i1 %4257, label %4258, label %4275

4258:                                             ; preds = %4253
  %4259 = load i32, ptr %95, align 4, !tbaa !5
  %4260 = call ptr @__errno_location() #11
  store i32 %4259, ptr %4260, align 4, !tbaa !5
  %4261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4262 = load i32, ptr @test_count, align 4, !tbaa !5
  %4263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call ptr @s2n_strerror(i32 noundef %4264, ptr noundef @.str.4)
  %4266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call ptr @s2n_strerror_debug(i32 noundef %4267, ptr noundef @.str.4)
  %4269 = call ptr @__errno_location() #11
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  %4271 = call ptr @strerror(i32 noundef %4270) #10
  %4272 = call ptr @__errno_location() #11
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4261, ptr noundef @.str.2, i32 noundef %4262, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 248, ptr noundef %4265, ptr noundef %4268, ptr noundef %4271, i32 noundef %4273) #10
  br label %4292

4275:                                             ; preds = %4253, %4246
  %4276 = load i32, ptr %95, align 4, !tbaa !5
  %4277 = call ptr @__errno_location() #11
  store i32 %4276, ptr %4277, align 4, !tbaa !5
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = load i32, ptr @test_count, align 4, !tbaa !5
  %4280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4281 = load i32, ptr %4280, align 4, !tbaa !5
  %4282 = call ptr @s2n_strerror(i32 noundef %4281, ptr noundef @.str.4)
  %4283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4284 = load i32, ptr %4283, align 4, !tbaa !5
  %4285 = call ptr @s2n_strerror_debug(i32 noundef %4284, ptr noundef @.str.4)
  %4286 = call ptr @__errno_location() #11
  %4287 = load i32, ptr %4286, align 4, !tbaa !5
  %4288 = call ptr @strerror(i32 noundef %4287) #10
  %4289 = call ptr @__errno_location() #11
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4278, ptr noundef @.str.5, i32 noundef %4279, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 248, ptr noundef %4282, ptr noundef %4285, ptr noundef %4288, i32 noundef %4290) #10
  br label %4292

4292:                                             ; preds = %4275, %4258
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %4293

4293:                                             ; preds = %4292
  br label %4294

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

4295:                                             ; No predecessors!
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296, %4232
  br label %4298

4298:                                             ; preds = %4297
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299
  br label %4301

4301:                                             ; preds = %4300
  %4302 = load i32, ptr @test_count, align 4, !tbaa !5
  %4303 = add nsw i32 %4302, 1
  store i32 %4303, ptr @test_count, align 4, !tbaa !5
  %4304 = load ptr, ptr %85, align 8, !tbaa !9
  %4305 = getelementptr inbounds %struct.s2n_connection, ptr %4304, i32 0, i32 33
  %4306 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %4305, i32 0, i32 4
  %4307 = load ptr, ptr %4306, align 8, !tbaa !48
  %4308 = getelementptr inbounds %struct.s2n_psk, ptr %4307, i32 0, i32 1
  %4309 = getelementptr inbounds %struct.s2n_blob, ptr %4308, i32 0, i32 0
  %4310 = load ptr, ptr %4309, align 8, !tbaa !54
  %4311 = call i32 @memcmp(ptr noundef %4310, ptr noundef @test_identity, i64 noundef 14) #13
  %4312 = icmp eq i32 %4311, 0
  br i1 %4312, label %4366, label %4313

4313:                                             ; preds = %4301
  br label %4314

4314:                                             ; preds = %4313
  br label %4315

4315:                                             ; preds = %4314
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %4316 = call ptr @__errno_location() #11
  %4317 = load i32, ptr %4316, align 4, !tbaa !5
  store i32 %4317, ptr %96, align 4, !tbaa !5
  %4318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4319 = call i32 @s2n_print_stacktrace(ptr noundef %4318)
  %4320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4321 = trunc i8 %4320 to i1
  br i1 %4321, label %4322, label %4344

4322:                                             ; preds = %4315
  %4323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4324 = call i32 @fileno(ptr noundef %4323) #10
  %4325 = call i32 @isatty(i32 noundef %4324) #10
  %4326 = icmp ne i32 %4325, 0
  br i1 %4326, label %4327, label %4344

4327:                                             ; preds = %4322
  %4328 = load i32, ptr %96, align 4, !tbaa !5
  %4329 = call ptr @__errno_location() #11
  store i32 %4328, ptr %4329, align 4, !tbaa !5
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = load i32, ptr @test_count, align 4, !tbaa !5
  %4332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call ptr @s2n_strerror(i32 noundef %4333, ptr noundef @.str.4)
  %4335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  %4337 = call ptr @s2n_strerror_debug(i32 noundef %4336, ptr noundef @.str.4)
  %4338 = call ptr @__errno_location() #11
  %4339 = load i32, ptr %4338, align 4, !tbaa !5
  %4340 = call ptr @strerror(i32 noundef %4339) #10
  %4341 = call ptr @__errno_location() #11
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  %4343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4330, ptr noundef @.str.2, i32 noundef %4331, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 249, ptr noundef %4334, ptr noundef %4337, ptr noundef %4340, i32 noundef %4342) #10
  br label %4361

4344:                                             ; preds = %4322, %4315
  %4345 = load i32, ptr %96, align 4, !tbaa !5
  %4346 = call ptr @__errno_location() #11
  store i32 %4345, ptr %4346, align 4, !tbaa !5
  %4347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4348 = load i32, ptr @test_count, align 4, !tbaa !5
  %4349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4350 = load i32, ptr %4349, align 4, !tbaa !5
  %4351 = call ptr @s2n_strerror(i32 noundef %4350, ptr noundef @.str.4)
  %4352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4353 = load i32, ptr %4352, align 4, !tbaa !5
  %4354 = call ptr @s2n_strerror_debug(i32 noundef %4353, ptr noundef @.str.4)
  %4355 = call ptr @__errno_location() #11
  %4356 = load i32, ptr %4355, align 4, !tbaa !5
  %4357 = call ptr @strerror(i32 noundef %4356) #10
  %4358 = call ptr @__errno_location() #11
  %4359 = load i32, ptr %4358, align 4, !tbaa !5
  %4360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4347, ptr noundef @.str.5, i32 noundef %4348, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 249, ptr noundef %4351, ptr noundef %4354, ptr noundef %4357, i32 noundef %4359) #10
  br label %4361

4361:                                             ; preds = %4344, %4327
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4362

4362:                                             ; preds = %4361
  br label %4363

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

4364:                                             ; No predecessors!
  br label %4365

4365:                                             ; preds = %4364
  br label %4366

4366:                                             ; preds = %4365, %4301
  br label %4367

4367:                                             ; preds = %4366
  br label %4368

4368:                                             ; preds = %4367
  br label %4369

4369:                                             ; preds = %4368
  br label %4370

4370:                                             ; preds = %4369
  br label %4371

4371:                                             ; preds = %4370
  %4372 = load i32, ptr @test_count, align 4, !tbaa !5
  %4373 = add nsw i32 %4372, 1
  store i32 %4373, ptr @test_count, align 4, !tbaa !5
  %4374 = load ptr, ptr %85, align 8, !tbaa !9
  %4375 = getelementptr inbounds %struct.s2n_connection, ptr %4374, i32 0, i32 33
  %4376 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %4375, i32 0, i32 4
  %4377 = load ptr, ptr %4376, align 8, !tbaa !48
  %4378 = getelementptr inbounds %struct.s2n_psk, ptr %4377, i32 0, i32 2
  %4379 = getelementptr inbounds %struct.s2n_blob, ptr %4378, i32 0, i32 1
  %4380 = load i32, ptr %4379, align 8, !tbaa !55
  %4381 = zext i32 %4380 to i64
  %4382 = icmp eq i64 %4381, 12
  br i1 %4382, label %4436, label %4383

4383:                                             ; preds = %4371
  br label %4384

4384:                                             ; preds = %4383
  br label %4385

4385:                                             ; preds = %4384
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  %4386 = call ptr @__errno_location() #11
  %4387 = load i32, ptr %4386, align 4, !tbaa !5
  store i32 %4387, ptr %97, align 4, !tbaa !5
  %4388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4389 = call i32 @s2n_print_stacktrace(ptr noundef %4388)
  %4390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4391 = trunc i8 %4390 to i1
  br i1 %4391, label %4392, label %4414

4392:                                             ; preds = %4385
  %4393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4394 = call i32 @fileno(ptr noundef %4393) #10
  %4395 = call i32 @isatty(i32 noundef %4394) #10
  %4396 = icmp ne i32 %4395, 0
  br i1 %4396, label %4397, label %4414

4397:                                             ; preds = %4392
  %4398 = load i32, ptr %97, align 4, !tbaa !5
  %4399 = call ptr @__errno_location() #11
  store i32 %4398, ptr %4399, align 4, !tbaa !5
  %4400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4401 = load i32, ptr @test_count, align 4, !tbaa !5
  %4402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4403 = load i32, ptr %4402, align 4, !tbaa !5
  %4404 = call ptr @s2n_strerror(i32 noundef %4403, ptr noundef @.str.4)
  %4405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4406 = load i32, ptr %4405, align 4, !tbaa !5
  %4407 = call ptr @s2n_strerror_debug(i32 noundef %4406, ptr noundef @.str.4)
  %4408 = call ptr @__errno_location() #11
  %4409 = load i32, ptr %4408, align 4, !tbaa !5
  %4410 = call ptr @strerror(i32 noundef %4409) #10
  %4411 = call ptr @__errno_location() #11
  %4412 = load i32, ptr %4411, align 4, !tbaa !5
  %4413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4400, ptr noundef @.str.2, i32 noundef %4401, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 250, ptr noundef %4404, ptr noundef %4407, ptr noundef %4410, i32 noundef %4412) #10
  br label %4431

4414:                                             ; preds = %4392, %4385
  %4415 = load i32, ptr %97, align 4, !tbaa !5
  %4416 = call ptr @__errno_location() #11
  store i32 %4415, ptr %4416, align 4, !tbaa !5
  %4417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4418 = load i32, ptr @test_count, align 4, !tbaa !5
  %4419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4420 = load i32, ptr %4419, align 4, !tbaa !5
  %4421 = call ptr @s2n_strerror(i32 noundef %4420, ptr noundef @.str.4)
  %4422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4423 = load i32, ptr %4422, align 4, !tbaa !5
  %4424 = call ptr @s2n_strerror_debug(i32 noundef %4423, ptr noundef @.str.4)
  %4425 = call ptr @__errno_location() #11
  %4426 = load i32, ptr %4425, align 4, !tbaa !5
  %4427 = call ptr @strerror(i32 noundef %4426) #10
  %4428 = call ptr @__errno_location() #11
  %4429 = load i32, ptr %4428, align 4, !tbaa !5
  %4430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4417, ptr noundef @.str.5, i32 noundef %4418, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 250, ptr noundef %4421, ptr noundef %4424, ptr noundef %4427, i32 noundef %4429) #10
  br label %4431

4431:                                             ; preds = %4414, %4397
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  br label %4432

4432:                                             ; preds = %4431
  br label %4433

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

4434:                                             ; No predecessors!
  br label %4435

4435:                                             ; preds = %4434
  br label %4436

4436:                                             ; preds = %4435, %4371
  br label %4437

4437:                                             ; preds = %4436
  br label %4438

4438:                                             ; preds = %4437
  br label %4439

4439:                                             ; preds = %4438
  br label %4440

4440:                                             ; preds = %4439
  %4441 = load i32, ptr @test_count, align 4, !tbaa !5
  %4442 = add nsw i32 %4441, 1
  store i32 %4442, ptr @test_count, align 4, !tbaa !5
  %4443 = load ptr, ptr %85, align 8, !tbaa !9
  %4444 = getelementptr inbounds %struct.s2n_connection, ptr %4443, i32 0, i32 33
  %4445 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %4444, i32 0, i32 4
  %4446 = load ptr, ptr %4445, align 8, !tbaa !48
  %4447 = getelementptr inbounds %struct.s2n_psk, ptr %4446, i32 0, i32 2
  %4448 = getelementptr inbounds %struct.s2n_blob, ptr %4447, i32 0, i32 0
  %4449 = load ptr, ptr %4448, align 8, !tbaa !56
  %4450 = call i32 @memcmp(ptr noundef %4449, ptr noundef @test_secret, i64 noundef 12) #13
  %4451 = icmp eq i32 %4450, 0
  br i1 %4451, label %4505, label %4452

4452:                                             ; preds = %4440
  br label %4453

4453:                                             ; preds = %4452
  br label %4454

4454:                                             ; preds = %4453
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  %4455 = call ptr @__errno_location() #11
  %4456 = load i32, ptr %4455, align 4, !tbaa !5
  store i32 %4456, ptr %98, align 4, !tbaa !5
  %4457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4458 = call i32 @s2n_print_stacktrace(ptr noundef %4457)
  %4459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4460 = trunc i8 %4459 to i1
  br i1 %4460, label %4461, label %4483

4461:                                             ; preds = %4454
  %4462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4463 = call i32 @fileno(ptr noundef %4462) #10
  %4464 = call i32 @isatty(i32 noundef %4463) #10
  %4465 = icmp ne i32 %4464, 0
  br i1 %4465, label %4466, label %4483

4466:                                             ; preds = %4461
  %4467 = load i32, ptr %98, align 4, !tbaa !5
  %4468 = call ptr @__errno_location() #11
  store i32 %4467, ptr %4468, align 4, !tbaa !5
  %4469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4470 = load i32, ptr @test_count, align 4, !tbaa !5
  %4471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4472 = load i32, ptr %4471, align 4, !tbaa !5
  %4473 = call ptr @s2n_strerror(i32 noundef %4472, ptr noundef @.str.4)
  %4474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4475 = load i32, ptr %4474, align 4, !tbaa !5
  %4476 = call ptr @s2n_strerror_debug(i32 noundef %4475, ptr noundef @.str.4)
  %4477 = call ptr @__errno_location() #11
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  %4479 = call ptr @strerror(i32 noundef %4478) #10
  %4480 = call ptr @__errno_location() #11
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4469, ptr noundef @.str.2, i32 noundef %4470, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 251, ptr noundef %4473, ptr noundef %4476, ptr noundef %4479, i32 noundef %4481) #10
  br label %4500

4483:                                             ; preds = %4461, %4454
  %4484 = load i32, ptr %98, align 4, !tbaa !5
  %4485 = call ptr @__errno_location() #11
  store i32 %4484, ptr %4485, align 4, !tbaa !5
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4487 = load i32, ptr @test_count, align 4, !tbaa !5
  %4488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4489 = load i32, ptr %4488, align 4, !tbaa !5
  %4490 = call ptr @s2n_strerror(i32 noundef %4489, ptr noundef @.str.4)
  %4491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4492 = load i32, ptr %4491, align 4, !tbaa !5
  %4493 = call ptr @s2n_strerror_debug(i32 noundef %4492, ptr noundef @.str.4)
  %4494 = call ptr @__errno_location() #11
  %4495 = load i32, ptr %4494, align 4, !tbaa !5
  %4496 = call ptr @strerror(i32 noundef %4495) #10
  %4497 = call ptr @__errno_location() #11
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4486, ptr noundef @.str.5, i32 noundef %4487, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 251, ptr noundef %4490, ptr noundef %4493, ptr noundef %4496, i32 noundef %4498) #10
  br label %4500

4500:                                             ; preds = %4483, %4466
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %4501

4501:                                             ; preds = %4500
  br label %4502

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

4503:                                             ; No predecessors!
  br label %4504

4504:                                             ; preds = %4503
  br label %4505

4505:                                             ; preds = %4504, %4440
  br label %4506

4506:                                             ; preds = %4505
  br label %4507

4507:                                             ; preds = %4506
  br label %4508

4508:                                             ; preds = %4507
  br label %4509

4509:                                             ; preds = %4508
  br label %4510

4510:                                             ; preds = %4509
  %4511 = load i32, ptr @test_count, align 4, !tbaa !5
  %4512 = add nsw i32 %4511, 1
  store i32 %4512, ptr @test_count, align 4, !tbaa !5
  %4513 = load ptr, ptr %85, align 8, !tbaa !9
  %4514 = getelementptr inbounds %struct.s2n_connection, ptr %4513, i32 0, i32 33
  %4515 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %4514, i32 0, i32 4
  %4516 = load ptr, ptr %4515, align 8, !tbaa !48
  %4517 = getelementptr inbounds %struct.s2n_psk, ptr %4516, i32 0, i32 3
  %4518 = load i32, ptr %4517, align 8, !tbaa !57
  %4519 = icmp eq i32 %4518, 5
  br i1 %4519, label %4573, label %4520

4520:                                             ; preds = %4510
  br label %4521

4521:                                             ; preds = %4520
  br label %4522

4522:                                             ; preds = %4521
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  %4523 = call ptr @__errno_location() #11
  %4524 = load i32, ptr %4523, align 4, !tbaa !5
  store i32 %4524, ptr %99, align 4, !tbaa !5
  %4525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4526 = call i32 @s2n_print_stacktrace(ptr noundef %4525)
  %4527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4528 = trunc i8 %4527 to i1
  br i1 %4528, label %4529, label %4551

4529:                                             ; preds = %4522
  %4530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4531 = call i32 @fileno(ptr noundef %4530) #10
  %4532 = call i32 @isatty(i32 noundef %4531) #10
  %4533 = icmp ne i32 %4532, 0
  br i1 %4533, label %4534, label %4551

4534:                                             ; preds = %4529
  %4535 = load i32, ptr %99, align 4, !tbaa !5
  %4536 = call ptr @__errno_location() #11
  store i32 %4535, ptr %4536, align 4, !tbaa !5
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = load i32, ptr @test_count, align 4, !tbaa !5
  %4539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4540 = load i32, ptr %4539, align 4, !tbaa !5
  %4541 = call ptr @s2n_strerror(i32 noundef %4540, ptr noundef @.str.4)
  %4542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4543 = load i32, ptr %4542, align 4, !tbaa !5
  %4544 = call ptr @s2n_strerror_debug(i32 noundef %4543, ptr noundef @.str.4)
  %4545 = call ptr @__errno_location() #11
  %4546 = load i32, ptr %4545, align 4, !tbaa !5
  %4547 = call ptr @strerror(i32 noundef %4546) #10
  %4548 = call ptr @__errno_location() #11
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  %4550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4537, ptr noundef @.str.2, i32 noundef %4538, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 252, ptr noundef %4541, ptr noundef %4544, ptr noundef %4547, i32 noundef %4549) #10
  br label %4568

4551:                                             ; preds = %4529, %4522
  %4552 = load i32, ptr %99, align 4, !tbaa !5
  %4553 = call ptr @__errno_location() #11
  store i32 %4552, ptr %4553, align 4, !tbaa !5
  %4554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4555 = load i32, ptr @test_count, align 4, !tbaa !5
  %4556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4557 = load i32, ptr %4556, align 4, !tbaa !5
  %4558 = call ptr @s2n_strerror(i32 noundef %4557, ptr noundef @.str.4)
  %4559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call ptr @s2n_strerror_debug(i32 noundef %4560, ptr noundef @.str.4)
  %4562 = call ptr @__errno_location() #11
  %4563 = load i32, ptr %4562, align 4, !tbaa !5
  %4564 = call ptr @strerror(i32 noundef %4563) #10
  %4565 = call ptr @__errno_location() #11
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4554, ptr noundef @.str.5, i32 noundef %4555, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 252, ptr noundef %4558, ptr noundef %4561, ptr noundef %4564, i32 noundef %4566) #10
  br label %4568

4568:                                             ; preds = %4551, %4534
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %4569

4569:                                             ; preds = %4568
  br label %4570

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

4571:                                             ; No predecessors!
  br label %4572

4572:                                             ; preds = %4571
  br label %4573

4573:                                             ; preds = %4572, %4510
  br label %4574

4574:                                             ; preds = %4573
  br label %4575

4575:                                             ; preds = %4574
  br label %4576

4576:                                             ; preds = %4575
  %4577 = load i32, ptr @test_count, align 4, !tbaa !5
  %4578 = add nsw i32 %4577, 1
  store i32 %4578, ptr @test_count, align 4, !tbaa !5
  %4579 = load ptr, ptr %85, align 8, !tbaa !9
  %4580 = call i32 @s2n_connection_free(ptr noundef %4579)
  %4581 = icmp eq i32 %4580, -1
  br i1 %4581, label %4582, label %4635

4582:                                             ; preds = %4576
  br label %4583

4583:                                             ; preds = %4582
  br label %4584

4584:                                             ; preds = %4583
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %4585 = call ptr @__errno_location() #11
  %4586 = load i32, ptr %4585, align 4, !tbaa !5
  store i32 %4586, ptr %100, align 4, !tbaa !5
  %4587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4588 = call i32 @s2n_print_stacktrace(ptr noundef %4587)
  %4589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4590 = trunc i8 %4589 to i1
  br i1 %4590, label %4591, label %4613

4591:                                             ; preds = %4584
  %4592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4593 = call i32 @fileno(ptr noundef %4592) #10
  %4594 = call i32 @isatty(i32 noundef %4593) #10
  %4595 = icmp ne i32 %4594, 0
  br i1 %4595, label %4596, label %4613

4596:                                             ; preds = %4591
  %4597 = load i32, ptr %100, align 4, !tbaa !5
  %4598 = call ptr @__errno_location() #11
  store i32 %4597, ptr %4598, align 4, !tbaa !5
  %4599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4600 = load i32, ptr @test_count, align 4, !tbaa !5
  %4601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4602 = load i32, ptr %4601, align 4, !tbaa !5
  %4603 = call ptr @s2n_strerror(i32 noundef %4602, ptr noundef @.str.4)
  %4604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4605 = load i32, ptr %4604, align 4, !tbaa !5
  %4606 = call ptr @s2n_strerror_debug(i32 noundef %4605, ptr noundef @.str.4)
  %4607 = call ptr @__errno_location() #11
  %4608 = load i32, ptr %4607, align 4, !tbaa !5
  %4609 = call ptr @strerror(i32 noundef %4608) #10
  %4610 = call ptr @__errno_location() #11
  %4611 = load i32, ptr %4610, align 4, !tbaa !5
  %4612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4599, ptr noundef @.str.2, i32 noundef %4600, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 254, ptr noundef %4603, ptr noundef %4606, ptr noundef %4609, i32 noundef %4611) #10
  br label %4630

4613:                                             ; preds = %4591, %4584
  %4614 = load i32, ptr %100, align 4, !tbaa !5
  %4615 = call ptr @__errno_location() #11
  store i32 %4614, ptr %4615, align 4, !tbaa !5
  %4616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4617 = load i32, ptr @test_count, align 4, !tbaa !5
  %4618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call ptr @s2n_strerror(i32 noundef %4619, ptr noundef @.str.4)
  %4621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call ptr @s2n_strerror_debug(i32 noundef %4622, ptr noundef @.str.4)
  %4624 = call ptr @__errno_location() #11
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call ptr @strerror(i32 noundef %4625) #10
  %4627 = call ptr @__errno_location() #11
  %4628 = load i32, ptr %4627, align 4, !tbaa !5
  %4629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4616, ptr noundef @.str.5, i32 noundef %4617, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 254, ptr noundef %4620, ptr noundef %4623, ptr noundef %4626, i32 noundef %4628) #10
  br label %4630

4630:                                             ; preds = %4613, %4596
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %4631

4631:                                             ; preds = %4630
  br label %4632

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

4633:                                             ; No predecessors!
  br label %4634

4634:                                             ; preds = %4633
  br label %4635

4635:                                             ; preds = %4634, %4576
  br label %4636

4636:                                             ; preds = %4635
  br label %4637

4637:                                             ; preds = %4636
  br label %4638

4638:                                             ; preds = %4637
  %4639 = load i32, ptr @test_count, align 4, !tbaa !5
  %4640 = add nsw i32 %4639, 1
  store i32 %4640, ptr @test_count, align 4, !tbaa !5
  %4641 = call i32 @s2n_stuffer_free(ptr noundef %83)
  %4642 = icmp eq i32 %4641, -1
  br i1 %4642, label %4643, label %4696

4643:                                             ; preds = %4638
  br label %4644

4644:                                             ; preds = %4643
  br label %4645

4645:                                             ; preds = %4644
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  %4646 = call ptr @__errno_location() #11
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  store i32 %4647, ptr %101, align 4, !tbaa !5
  %4648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4649 = call i32 @s2n_print_stacktrace(ptr noundef %4648)
  %4650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4651 = trunc i8 %4650 to i1
  br i1 %4651, label %4652, label %4674

4652:                                             ; preds = %4645
  %4653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4654 = call i32 @fileno(ptr noundef %4653) #10
  %4655 = call i32 @isatty(i32 noundef %4654) #10
  %4656 = icmp ne i32 %4655, 0
  br i1 %4656, label %4657, label %4674

4657:                                             ; preds = %4652
  %4658 = load i32, ptr %101, align 4, !tbaa !5
  %4659 = call ptr @__errno_location() #11
  store i32 %4658, ptr %4659, align 4, !tbaa !5
  %4660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4661 = load i32, ptr @test_count, align 4, !tbaa !5
  %4662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4663 = load i32, ptr %4662, align 4, !tbaa !5
  %4664 = call ptr @s2n_strerror(i32 noundef %4663, ptr noundef @.str.4)
  %4665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4666 = load i32, ptr %4665, align 4, !tbaa !5
  %4667 = call ptr @s2n_strerror_debug(i32 noundef %4666, ptr noundef @.str.4)
  %4668 = call ptr @__errno_location() #11
  %4669 = load i32, ptr %4668, align 4, !tbaa !5
  %4670 = call ptr @strerror(i32 noundef %4669) #10
  %4671 = call ptr @__errno_location() #11
  %4672 = load i32, ptr %4671, align 4, !tbaa !5
  %4673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4660, ptr noundef @.str.2, i32 noundef %4661, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4664, ptr noundef %4667, ptr noundef %4670, i32 noundef %4672) #10
  br label %4691

4674:                                             ; preds = %4652, %4645
  %4675 = load i32, ptr %101, align 4, !tbaa !5
  %4676 = call ptr @__errno_location() #11
  store i32 %4675, ptr %4676, align 4, !tbaa !5
  %4677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4678 = load i32, ptr @test_count, align 4, !tbaa !5
  %4679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4680 = load i32, ptr %4679, align 4, !tbaa !5
  %4681 = call ptr @s2n_strerror(i32 noundef %4680, ptr noundef @.str.4)
  %4682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4683 = load i32, ptr %4682, align 4, !tbaa !5
  %4684 = call ptr @s2n_strerror_debug(i32 noundef %4683, ptr noundef @.str.4)
  %4685 = call ptr @__errno_location() #11
  %4686 = load i32, ptr %4685, align 4, !tbaa !5
  %4687 = call ptr @strerror(i32 noundef %4686) #10
  %4688 = call ptr @__errno_location() #11
  %4689 = load i32, ptr %4688, align 4, !tbaa !5
  %4690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4677, ptr noundef @.str.5, i32 noundef %4678, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4681, ptr noundef %4684, ptr noundef %4687, i32 noundef %4689) #10
  br label %4691

4691:                                             ; preds = %4674, %4657
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %4692

4692:                                             ; preds = %4691
  br label %4693

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

4694:                                             ; No predecessors!
  br label %4695

4695:                                             ; preds = %4694
  br label %4696

4696:                                             ; preds = %4695, %4638
  br label %4697

4697:                                             ; preds = %4696
  br label %4698

4698:                                             ; preds = %4697
  call void @llvm.lifetime.end.p0(i64 2, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #10
  %4699 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %4699, label %4700, label %6329

4700:                                             ; preds = %4698
  br label %4701

4701:                                             ; preds = %4700
  %4702 = load i32, ptr @test_count, align 4, !tbaa !5
  %4703 = add nsw i32 %4702, 1
  store i32 %4703, ptr @test_count, align 4, !tbaa !5
  %4704 = call i32 (...) @s2n_enable_tls13_in_test()
  %4705 = icmp eq i32 %4704, -1
  br i1 %4705, label %4706, label %4757

4706:                                             ; preds = %4701
  br label %4707

4707:                                             ; preds = %4706
  br label %4708

4708:                                             ; preds = %4707
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %4709 = call ptr @__errno_location() #11
  %4710 = load i32, ptr %4709, align 4, !tbaa !5
  store i32 %4710, ptr %102, align 4, !tbaa !5
  %4711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4712 = call i32 @s2n_print_stacktrace(ptr noundef %4711)
  %4713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4714 = trunc i8 %4713 to i1
  br i1 %4714, label %4715, label %4737

4715:                                             ; preds = %4708
  %4716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4717 = call i32 @fileno(ptr noundef %4716) #10
  %4718 = call i32 @isatty(i32 noundef %4717) #10
  %4719 = icmp ne i32 %4718, 0
  br i1 %4719, label %4720, label %4737

4720:                                             ; preds = %4715
  %4721 = load i32, ptr %102, align 4, !tbaa !5
  %4722 = call ptr @__errno_location() #11
  store i32 %4721, ptr %4722, align 4, !tbaa !5
  %4723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4724 = load i32, ptr @test_count, align 4, !tbaa !5
  %4725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4726 = load i32, ptr %4725, align 4, !tbaa !5
  %4727 = call ptr @s2n_strerror(i32 noundef %4726, ptr noundef @.str.4)
  %4728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4729 = load i32, ptr %4728, align 4, !tbaa !5
  %4730 = call ptr @s2n_strerror_debug(i32 noundef %4729, ptr noundef @.str.4)
  %4731 = call ptr @__errno_location() #11
  %4732 = load i32, ptr %4731, align 4, !tbaa !5
  %4733 = call ptr @strerror(i32 noundef %4732) #10
  %4734 = call ptr @__errno_location() #11
  %4735 = load i32, ptr %4734, align 4, !tbaa !5
  %4736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4723, ptr noundef @.str.2, i32 noundef %4724, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 262, ptr noundef %4727, ptr noundef %4730, ptr noundef %4733, i32 noundef %4735) #10
  br label %4754

4737:                                             ; preds = %4715, %4708
  %4738 = load i32, ptr %102, align 4, !tbaa !5
  %4739 = call ptr @__errno_location() #11
  store i32 %4738, ptr %4739, align 4, !tbaa !5
  %4740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4741 = load i32, ptr @test_count, align 4, !tbaa !5
  %4742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4743 = load i32, ptr %4742, align 4, !tbaa !5
  %4744 = call ptr @s2n_strerror(i32 noundef %4743, ptr noundef @.str.4)
  %4745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4746 = load i32, ptr %4745, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror_debug(i32 noundef %4746, ptr noundef @.str.4)
  %4748 = call ptr @__errno_location() #11
  %4749 = load i32, ptr %4748, align 4, !tbaa !5
  %4750 = call ptr @strerror(i32 noundef %4749) #10
  %4751 = call ptr @__errno_location() #11
  %4752 = load i32, ptr %4751, align 4, !tbaa !5
  %4753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4740, ptr noundef @.str.5, i32 noundef %4741, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 262, ptr noundef %4744, ptr noundef %4747, ptr noundef %4750, i32 noundef %4752) #10
  br label %4754

4754:                                             ; preds = %4737, %4720
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4755

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

4756:                                             ; No predecessors!
  br label %4757

4757:                                             ; preds = %4756, %4701
  br label %4758

4758:                                             ; preds = %4757
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #10
  store ptr null, ptr %103, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #10
  store ptr null, ptr %104, align 8, !tbaa !9
  br label %4759

4759:                                             ; preds = %4758
  %4760 = load i32, ptr @test_count, align 4, !tbaa !5
  %4761 = add nsw i32 %4760, 1
  store i32 %4761, ptr @test_count, align 4, !tbaa !5
  %4762 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4762, ptr %103, align 8, !tbaa !9
  %4763 = icmp eq ptr %4762, null
  br i1 %4763, label %4764, label %4817

4764:                                             ; preds = %4759
  br label %4765

4765:                                             ; preds = %4764
  br label %4766

4766:                                             ; preds = %4765
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %4767 = call ptr @__errno_location() #11
  %4768 = load i32, ptr %4767, align 4, !tbaa !5
  store i32 %4768, ptr %105, align 4, !tbaa !5
  %4769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4770 = call i32 @s2n_print_stacktrace(ptr noundef %4769)
  %4771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4772 = trunc i8 %4771 to i1
  br i1 %4772, label %4773, label %4795

4773:                                             ; preds = %4766
  %4774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4775 = call i32 @fileno(ptr noundef %4774) #10
  %4776 = call i32 @isatty(i32 noundef %4775) #10
  %4777 = icmp ne i32 %4776, 0
  br i1 %4777, label %4778, label %4795

4778:                                             ; preds = %4773
  %4779 = load i32, ptr %105, align 4, !tbaa !5
  %4780 = call ptr @__errno_location() #11
  store i32 %4779, ptr %4780, align 4, !tbaa !5
  %4781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4782 = load i32, ptr @test_count, align 4, !tbaa !5
  %4783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4784 = load i32, ptr %4783, align 4, !tbaa !5
  %4785 = call ptr @s2n_strerror(i32 noundef %4784, ptr noundef @.str.4)
  %4786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call ptr @s2n_strerror_debug(i32 noundef %4787, ptr noundef @.str.4)
  %4789 = call ptr @__errno_location() #11
  %4790 = load i32, ptr %4789, align 4, !tbaa !5
  %4791 = call ptr @strerror(i32 noundef %4790) #10
  %4792 = call ptr @__errno_location() #11
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4781, ptr noundef @.str.2, i32 noundef %4782, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 264, ptr noundef %4785, ptr noundef %4788, ptr noundef %4791, i32 noundef %4793) #10
  br label %4812

4795:                                             ; preds = %4773, %4766
  %4796 = load i32, ptr %105, align 4, !tbaa !5
  %4797 = call ptr @__errno_location() #11
  store i32 %4796, ptr %4797, align 4, !tbaa !5
  %4798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4799 = load i32, ptr @test_count, align 4, !tbaa !5
  %4800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4801 = load i32, ptr %4800, align 4, !tbaa !5
  %4802 = call ptr @s2n_strerror(i32 noundef %4801, ptr noundef @.str.4)
  %4803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4804 = load i32, ptr %4803, align 4, !tbaa !5
  %4805 = call ptr @s2n_strerror_debug(i32 noundef %4804, ptr noundef @.str.4)
  %4806 = call ptr @__errno_location() #11
  %4807 = load i32, ptr %4806, align 4, !tbaa !5
  %4808 = call ptr @strerror(i32 noundef %4807) #10
  %4809 = call ptr @__errno_location() #11
  %4810 = load i32, ptr %4809, align 4, !tbaa !5
  %4811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4798, ptr noundef @.str.5, i32 noundef %4799, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 264, ptr noundef %4802, ptr noundef %4805, ptr noundef %4808, i32 noundef %4810) #10
  br label %4812

4812:                                             ; preds = %4795, %4778
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4813

4813:                                             ; preds = %4812
  br label %4814

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

4815:                                             ; No predecessors!
  br label %4816

4816:                                             ; preds = %4815
  br label %4817

4817:                                             ; preds = %4816, %4759
  br label %4818

4818:                                             ; preds = %4817
  br label %4819

4819:                                             ; preds = %4818
  br label %4820

4820:                                             ; preds = %4819
  %4821 = load i32, ptr @test_count, align 4, !tbaa !5
  %4822 = add nsw i32 %4821, 1
  store i32 %4822, ptr @test_count, align 4, !tbaa !5
  %4823 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4823, ptr %104, align 8, !tbaa !9
  %4824 = icmp eq ptr %4823, null
  br i1 %4824, label %4825, label %4878

4825:                                             ; preds = %4820
  br label %4826

4826:                                             ; preds = %4825
  br label %4827

4827:                                             ; preds = %4826
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %4828 = call ptr @__errno_location() #11
  %4829 = load i32, ptr %4828, align 4, !tbaa !5
  store i32 %4829, ptr %106, align 4, !tbaa !5
  %4830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4831 = call i32 @s2n_print_stacktrace(ptr noundef %4830)
  %4832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4833 = trunc i8 %4832 to i1
  br i1 %4833, label %4834, label %4856

4834:                                             ; preds = %4827
  %4835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4836 = call i32 @fileno(ptr noundef %4835) #10
  %4837 = call i32 @isatty(i32 noundef %4836) #10
  %4838 = icmp ne i32 %4837, 0
  br i1 %4838, label %4839, label %4856

4839:                                             ; preds = %4834
  %4840 = load i32, ptr %106, align 4, !tbaa !5
  %4841 = call ptr @__errno_location() #11
  store i32 %4840, ptr %4841, align 4, !tbaa !5
  %4842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4843 = load i32, ptr @test_count, align 4, !tbaa !5
  %4844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4845 = load i32, ptr %4844, align 4, !tbaa !5
  %4846 = call ptr @s2n_strerror(i32 noundef %4845, ptr noundef @.str.4)
  %4847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4848 = load i32, ptr %4847, align 4, !tbaa !5
  %4849 = call ptr @s2n_strerror_debug(i32 noundef %4848, ptr noundef @.str.4)
  %4850 = call ptr @__errno_location() #11
  %4851 = load i32, ptr %4850, align 4, !tbaa !5
  %4852 = call ptr @strerror(i32 noundef %4851) #10
  %4853 = call ptr @__errno_location() #11
  %4854 = load i32, ptr %4853, align 4, !tbaa !5
  %4855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4842, ptr noundef @.str.2, i32 noundef %4843, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 265, ptr noundef %4846, ptr noundef %4849, ptr noundef %4852, i32 noundef %4854) #10
  br label %4873

4856:                                             ; preds = %4834, %4827
  %4857 = load i32, ptr %106, align 4, !tbaa !5
  %4858 = call ptr @__errno_location() #11
  store i32 %4857, ptr %4858, align 4, !tbaa !5
  %4859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4860 = load i32, ptr @test_count, align 4, !tbaa !5
  %4861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4862 = load i32, ptr %4861, align 4, !tbaa !5
  %4863 = call ptr @s2n_strerror(i32 noundef %4862, ptr noundef @.str.4)
  %4864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call ptr @s2n_strerror_debug(i32 noundef %4865, ptr noundef @.str.4)
  %4867 = call ptr @__errno_location() #11
  %4868 = load i32, ptr %4867, align 4, !tbaa !5
  %4869 = call ptr @strerror(i32 noundef %4868) #10
  %4870 = call ptr @__errno_location() #11
  %4871 = load i32, ptr %4870, align 4, !tbaa !5
  %4872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4859, ptr noundef @.str.5, i32 noundef %4860, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 265, ptr noundef %4863, ptr noundef %4866, ptr noundef %4869, i32 noundef %4871) #10
  br label %4873

4873:                                             ; preds = %4856, %4839
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %4874

4874:                                             ; preds = %4873
  br label %4875

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

4876:                                             ; No predecessors!
  br label %4877

4877:                                             ; preds = %4876
  br label %4878

4878:                                             ; preds = %4877, %4820
  br label %4879

4879:                                             ; preds = %4878
  br label %4880

4880:                                             ; preds = %4879
  br label %4881

4881:                                             ; preds = %4880
  %4882 = load i32, ptr @test_count, align 4, !tbaa !5
  %4883 = add nsw i32 %4882, 1
  store i32 %4883, ptr @test_count, align 4, !tbaa !5
  %4884 = load ptr, ptr %103, align 8, !tbaa !9
  %4885 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4884, ptr noundef @.str.47)
  %4886 = icmp eq i32 %4885, -1
  br i1 %4886, label %4887, label %4940

4887:                                             ; preds = %4881
  br label %4888

4888:                                             ; preds = %4887
  br label %4889

4889:                                             ; preds = %4888
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %4890 = call ptr @__errno_location() #11
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  store i32 %4891, ptr %107, align 4, !tbaa !5
  %4892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4893 = call i32 @s2n_print_stacktrace(ptr noundef %4892)
  %4894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4895 = trunc i8 %4894 to i1
  br i1 %4895, label %4896, label %4918

4896:                                             ; preds = %4889
  %4897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4898 = call i32 @fileno(ptr noundef %4897) #10
  %4899 = call i32 @isatty(i32 noundef %4898) #10
  %4900 = icmp ne i32 %4899, 0
  br i1 %4900, label %4901, label %4918

4901:                                             ; preds = %4896
  %4902 = load i32, ptr %107, align 4, !tbaa !5
  %4903 = call ptr @__errno_location() #11
  store i32 %4902, ptr %4903, align 4, !tbaa !5
  %4904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4905 = load i32, ptr @test_count, align 4, !tbaa !5
  %4906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  %4908 = call ptr @s2n_strerror(i32 noundef %4907, ptr noundef @.str.4)
  %4909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call ptr @s2n_strerror_debug(i32 noundef %4910, ptr noundef @.str.4)
  %4912 = call ptr @__errno_location() #11
  %4913 = load i32, ptr %4912, align 4, !tbaa !5
  %4914 = call ptr @strerror(i32 noundef %4913) #10
  %4915 = call ptr @__errno_location() #11
  %4916 = load i32, ptr %4915, align 4, !tbaa !5
  %4917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4904, ptr noundef @.str.2, i32 noundef %4905, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 266, ptr noundef %4908, ptr noundef %4911, ptr noundef %4914, i32 noundef %4916) #10
  br label %4935

4918:                                             ; preds = %4896, %4889
  %4919 = load i32, ptr %107, align 4, !tbaa !5
  %4920 = call ptr @__errno_location() #11
  store i32 %4919, ptr %4920, align 4, !tbaa !5
  %4921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4922 = load i32, ptr @test_count, align 4, !tbaa !5
  %4923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror(i32 noundef %4924, ptr noundef @.str.4)
  %4926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @s2n_strerror_debug(i32 noundef %4927, ptr noundef @.str.4)
  %4929 = call ptr @__errno_location() #11
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call ptr @strerror(i32 noundef %4930) #10
  %4932 = call ptr @__errno_location() #11
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  %4934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4921, ptr noundef @.str.5, i32 noundef %4922, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 266, ptr noundef %4925, ptr noundef %4928, ptr noundef %4931, i32 noundef %4933) #10
  br label %4935

4935:                                             ; preds = %4918, %4901
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

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

4938:                                             ; No predecessors!
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

4940:                                             ; preds = %4939, %4881
  br label %4941

4941:                                             ; preds = %4940
  br label %4942

4942:                                             ; preds = %4941
  br label %4943

4943:                                             ; preds = %4942
  %4944 = load i32, ptr @test_count, align 4, !tbaa !5
  %4945 = add nsw i32 %4944, 1
  store i32 %4945, ptr @test_count, align 4, !tbaa !5
  %4946 = load ptr, ptr %104, align 8, !tbaa !9
  %4947 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4946, ptr noundef @.str.47)
  %4948 = icmp eq i32 %4947, -1
  br i1 %4948, label %4949, label %5002

4949:                                             ; preds = %4943
  br label %4950

4950:                                             ; preds = %4949
  br label %4951

4951:                                             ; preds = %4950
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  %4952 = call ptr @__errno_location() #11
  %4953 = load i32, ptr %4952, align 4, !tbaa !5
  store i32 %4953, ptr %108, align 4, !tbaa !5
  %4954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4955 = call i32 @s2n_print_stacktrace(ptr noundef %4954)
  %4956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4957 = trunc i8 %4956 to i1
  br i1 %4957, label %4958, label %4980

4958:                                             ; preds = %4951
  %4959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4960 = call i32 @fileno(ptr noundef %4959) #10
  %4961 = call i32 @isatty(i32 noundef %4960) #10
  %4962 = icmp ne i32 %4961, 0
  br i1 %4962, label %4963, label %4980

4963:                                             ; preds = %4958
  %4964 = load i32, ptr %108, align 4, !tbaa !5
  %4965 = call ptr @__errno_location() #11
  store i32 %4964, ptr %4965, align 4, !tbaa !5
  %4966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4967 = load i32, ptr @test_count, align 4, !tbaa !5
  %4968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  %4970 = call ptr @s2n_strerror(i32 noundef %4969, ptr noundef @.str.4)
  %4971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call ptr @s2n_strerror_debug(i32 noundef %4972, ptr noundef @.str.4)
  %4974 = call ptr @__errno_location() #11
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call ptr @strerror(i32 noundef %4975) #10
  %4977 = call ptr @__errno_location() #11
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4966, ptr noundef @.str.2, i32 noundef %4967, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 267, ptr noundef %4970, ptr noundef %4973, ptr noundef %4976, i32 noundef %4978) #10
  br label %4997

4980:                                             ; preds = %4958, %4951
  %4981 = load i32, ptr %108, align 4, !tbaa !5
  %4982 = call ptr @__errno_location() #11
  store i32 %4981, ptr %4982, align 4, !tbaa !5
  %4983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4984 = load i32, ptr @test_count, align 4, !tbaa !5
  %4985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4986 = load i32, ptr %4985, align 4, !tbaa !5
  %4987 = call ptr @s2n_strerror(i32 noundef %4986, ptr noundef @.str.4)
  %4988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4989 = load i32, ptr %4988, align 4, !tbaa !5
  %4990 = call ptr @s2n_strerror_debug(i32 noundef %4989, ptr noundef @.str.4)
  %4991 = call ptr @__errno_location() #11
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call ptr @strerror(i32 noundef %4992) #10
  %4994 = call ptr @__errno_location() #11
  %4995 = load i32, ptr %4994, align 4, !tbaa !5
  %4996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4983, ptr noundef @.str.5, i32 noundef %4984, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 267, ptr noundef %4987, ptr noundef %4990, ptr noundef %4993, i32 noundef %4995) #10
  br label %4997

4997:                                             ; preds = %4980, %4963
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %4998

4998:                                             ; preds = %4997
  br label %4999

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

5000:                                             ; No predecessors!
  br label %5001

5001:                                             ; preds = %5000
  br label %5002

5002:                                             ; preds = %5001, %4943
  br label %5003

5003:                                             ; preds = %5002
  br label %5004

5004:                                             ; preds = %5003
  br label %5005

5005:                                             ; preds = %5004
  %5006 = load i32, ptr @test_count, align 4, !tbaa !5
  %5007 = add nsw i32 %5006, 1
  store i32 %5007, ptr @test_count, align 4, !tbaa !5
  %5008 = load ptr, ptr %103, align 8, !tbaa !9
  %5009 = call i32 @setup_client_psks(ptr noundef %5008)
  %5010 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %5009, ptr %5010, align 4
  %5011 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  %5012 = load i32, ptr %5011, align 4
  %5013 = call zeroext i1 @s2n_result_is_ok(i32 %5012)
  br i1 %5013, label %5067, label %5014

5014:                                             ; preds = %5005
  br label %5015

5015:                                             ; preds = %5014
  br label %5016

5016:                                             ; preds = %5015
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #10
  %5017 = call ptr @__errno_location() #11
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  store i32 %5018, ptr %110, align 4, !tbaa !5
  %5019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5020 = call i32 @s2n_print_stacktrace(ptr noundef %5019)
  %5021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5022 = trunc i8 %5021 to i1
  br i1 %5022, label %5023, label %5045

5023:                                             ; preds = %5016
  %5024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5025 = call i32 @fileno(ptr noundef %5024) #10
  %5026 = call i32 @isatty(i32 noundef %5025) #10
  %5027 = icmp ne i32 %5026, 0
  br i1 %5027, label %5028, label %5045

5028:                                             ; preds = %5023
  %5029 = load i32, ptr %110, align 4, !tbaa !5
  %5030 = call ptr @__errno_location() #11
  store i32 %5029, ptr %5030, align 4, !tbaa !5
  %5031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5032 = load i32, ptr @test_count, align 4, !tbaa !5
  %5033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call ptr @s2n_strerror(i32 noundef %5034, ptr noundef @.str.4)
  %5036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5037 = load i32, ptr %5036, align 4, !tbaa !5
  %5038 = call ptr @s2n_strerror_debug(i32 noundef %5037, ptr noundef @.str.4)
  %5039 = call ptr @__errno_location() #11
  %5040 = load i32, ptr %5039, align 4, !tbaa !5
  %5041 = call ptr @strerror(i32 noundef %5040) #10
  %5042 = call ptr @__errno_location() #11
  %5043 = load i32, ptr %5042, align 4, !tbaa !5
  %5044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5031, ptr noundef @.str.2, i32 noundef %5032, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5035, ptr noundef %5038, ptr noundef %5041, i32 noundef %5043) #10
  br label %5062

5045:                                             ; preds = %5023, %5016
  %5046 = load i32, ptr %110, align 4, !tbaa !5
  %5047 = call ptr @__errno_location() #11
  store i32 %5046, ptr %5047, align 4, !tbaa !5
  %5048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5049 = load i32, ptr @test_count, align 4, !tbaa !5
  %5050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5051 = load i32, ptr %5050, align 4, !tbaa !5
  %5052 = call ptr @s2n_strerror(i32 noundef %5051, ptr noundef @.str.4)
  %5053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5054 = load i32, ptr %5053, align 4, !tbaa !5
  %5055 = call ptr @s2n_strerror_debug(i32 noundef %5054, ptr noundef @.str.4)
  %5056 = call ptr @__errno_location() #11
  %5057 = load i32, ptr %5056, align 4, !tbaa !5
  %5058 = call ptr @strerror(i32 noundef %5057) #10
  %5059 = call ptr @__errno_location() #11
  %5060 = load i32, ptr %5059, align 4, !tbaa !5
  %5061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5048, ptr noundef @.str.5, i32 noundef %5049, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5052, ptr noundef %5055, ptr noundef %5058, i32 noundef %5060) #10
  br label %5062

5062:                                             ; preds = %5045, %5028
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %5063

5063:                                             ; preds = %5062
  br label %5064

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

5065:                                             ; No predecessors!
  br label %5066

5066:                                             ; preds = %5065
  br label %5067

5067:                                             ; preds = %5066, %5005
  br label %5068

5068:                                             ; preds = %5067
  br label %5069

5069:                                             ; preds = %5068
  br label %5070

5070:                                             ; preds = %5069
  %5071 = load i32, ptr @test_count, align 4, !tbaa !5
  %5072 = add nsw i32 %5071, 1
  store i32 %5072, ptr @test_count, align 4, !tbaa !5
  %5073 = load ptr, ptr %104, align 8, !tbaa !9
  %5074 = call i32 @setup_server_psks(ptr noundef %5073)
  %5075 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  store i32 %5074, ptr %5075, align 4
  %5076 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  %5077 = load i32, ptr %5076, align 4
  %5078 = call zeroext i1 @s2n_result_is_ok(i32 %5077)
  br i1 %5078, label %5132, label %5079

5079:                                             ; preds = %5070
  br label %5080

5080:                                             ; preds = %5079
  br label %5081

5081:                                             ; preds = %5080
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #10
  %5082 = call ptr @__errno_location() #11
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  store i32 %5083, ptr %112, align 4, !tbaa !5
  %5084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5085 = call i32 @s2n_print_stacktrace(ptr noundef %5084)
  %5086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5087 = trunc i8 %5086 to i1
  br i1 %5087, label %5088, label %5110

5088:                                             ; preds = %5081
  %5089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5090 = call i32 @fileno(ptr noundef %5089) #10
  %5091 = call i32 @isatty(i32 noundef %5090) #10
  %5092 = icmp ne i32 %5091, 0
  br i1 %5092, label %5093, label %5110

5093:                                             ; preds = %5088
  %5094 = load i32, ptr %112, align 4, !tbaa !5
  %5095 = call ptr @__errno_location() #11
  store i32 %5094, ptr %5095, align 4, !tbaa !5
  %5096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5097 = load i32, ptr @test_count, align 4, !tbaa !5
  %5098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5099 = load i32, ptr %5098, align 4, !tbaa !5
  %5100 = call ptr @s2n_strerror(i32 noundef %5099, ptr noundef @.str.4)
  %5101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5102 = load i32, ptr %5101, align 4, !tbaa !5
  %5103 = call ptr @s2n_strerror_debug(i32 noundef %5102, ptr noundef @.str.4)
  %5104 = call ptr @__errno_location() #11
  %5105 = load i32, ptr %5104, align 4, !tbaa !5
  %5106 = call ptr @strerror(i32 noundef %5105) #10
  %5107 = call ptr @__errno_location() #11
  %5108 = load i32, ptr %5107, align 4, !tbaa !5
  %5109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5096, ptr noundef @.str.2, i32 noundef %5097, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 270, ptr noundef %5100, ptr noundef %5103, ptr noundef %5106, i32 noundef %5108) #10
  br label %5127

5110:                                             ; preds = %5088, %5081
  %5111 = load i32, ptr %112, align 4, !tbaa !5
  %5112 = call ptr @__errno_location() #11
  store i32 %5111, ptr %5112, align 4, !tbaa !5
  %5113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5114 = load i32, ptr @test_count, align 4, !tbaa !5
  %5115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5116 = load i32, ptr %5115, align 4, !tbaa !5
  %5117 = call ptr @s2n_strerror(i32 noundef %5116, ptr noundef @.str.4)
  %5118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5119 = load i32, ptr %5118, align 4, !tbaa !5
  %5120 = call ptr @s2n_strerror_debug(i32 noundef %5119, ptr noundef @.str.4)
  %5121 = call ptr @__errno_location() #11
  %5122 = load i32, ptr %5121, align 4, !tbaa !5
  %5123 = call ptr @strerror(i32 noundef %5122) #10
  %5124 = call ptr @__errno_location() #11
  %5125 = load i32, ptr %5124, align 4, !tbaa !5
  %5126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5113, ptr noundef @.str.5, i32 noundef %5114, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 270, ptr noundef %5117, ptr noundef %5120, ptr noundef %5123, i32 noundef %5125) #10
  br label %5127

5127:                                             ; preds = %5110, %5093
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %5128

5128:                                             ; preds = %5127
  br label %5129

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

5130:                                             ; No predecessors!
  br label %5131

5131:                                             ; preds = %5130
  br label %5132

5132:                                             ; preds = %5131, %5070
  br label %5133

5133:                                             ; preds = %5132
  br label %5134

5134:                                             ; preds = %5133
  br label %5135

5135:                                             ; preds = %5134
  %5136 = load i32, ptr @test_count, align 4, !tbaa !5
  %5137 = add nsw i32 %5136, 1
  store i32 %5137, ptr @test_count, align 4, !tbaa !5
  %5138 = load ptr, ptr %103, align 8, !tbaa !9
  %5139 = call i32 @s2n_client_hello_send(ptr noundef %5138)
  %5140 = icmp eq i32 %5139, -1
  br i1 %5140, label %5141, label %5194

5141:                                             ; preds = %5135
  br label %5142

5142:                                             ; preds = %5141
  br label %5143

5143:                                             ; preds = %5142
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #10
  %5144 = call ptr @__errno_location() #11
  %5145 = load i32, ptr %5144, align 4, !tbaa !5
  store i32 %5145, ptr %113, align 4, !tbaa !5
  %5146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5147 = call i32 @s2n_print_stacktrace(ptr noundef %5146)
  %5148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5149 = trunc i8 %5148 to i1
  br i1 %5149, label %5150, label %5172

5150:                                             ; preds = %5143
  %5151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5152 = call i32 @fileno(ptr noundef %5151) #10
  %5153 = call i32 @isatty(i32 noundef %5152) #10
  %5154 = icmp ne i32 %5153, 0
  br i1 %5154, label %5155, label %5172

5155:                                             ; preds = %5150
  %5156 = load i32, ptr %113, align 4, !tbaa !5
  %5157 = call ptr @__errno_location() #11
  store i32 %5156, ptr %5157, align 4, !tbaa !5
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = load i32, ptr @test_count, align 4, !tbaa !5
  %5160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5161 = load i32, ptr %5160, align 4, !tbaa !5
  %5162 = call ptr @s2n_strerror(i32 noundef %5161, ptr noundef @.str.4)
  %5163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call ptr @s2n_strerror_debug(i32 noundef %5164, ptr noundef @.str.4)
  %5166 = call ptr @__errno_location() #11
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call ptr @strerror(i32 noundef %5167) #10
  %5169 = call ptr @__errno_location() #11
  %5170 = load i32, ptr %5169, align 4, !tbaa !5
  %5171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5158, ptr noundef @.str.2, i32 noundef %5159, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5162, ptr noundef %5165, ptr noundef %5168, i32 noundef %5170) #10
  br label %5189

5172:                                             ; preds = %5150, %5143
  %5173 = load i32, ptr %113, align 4, !tbaa !5
  %5174 = call ptr @__errno_location() #11
  store i32 %5173, ptr %5174, align 4, !tbaa !5
  %5175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5176 = load i32, ptr @test_count, align 4, !tbaa !5
  %5177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5178 = load i32, ptr %5177, align 4, !tbaa !5
  %5179 = call ptr @s2n_strerror(i32 noundef %5178, ptr noundef @.str.4)
  %5180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5181 = load i32, ptr %5180, align 4, !tbaa !5
  %5182 = call ptr @s2n_strerror_debug(i32 noundef %5181, ptr noundef @.str.4)
  %5183 = call ptr @__errno_location() #11
  %5184 = load i32, ptr %5183, align 4, !tbaa !5
  %5185 = call ptr @strerror(i32 noundef %5184) #10
  %5186 = call ptr @__errno_location() #11
  %5187 = load i32, ptr %5186, align 4, !tbaa !5
  %5188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5175, ptr noundef @.str.5, i32 noundef %5176, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5179, ptr noundef %5182, ptr noundef %5185, i32 noundef %5187) #10
  br label %5189

5189:                                             ; preds = %5172, %5155
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  br label %5190

5190:                                             ; preds = %5189
  br label %5191

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

5192:                                             ; No predecessors!
  br label %5193

5193:                                             ; preds = %5192
  br label %5194

5194:                                             ; preds = %5193, %5135
  br label %5195

5195:                                             ; preds = %5194
  br label %5196

5196:                                             ; preds = %5195
  br label %5197

5197:                                             ; preds = %5196
  %5198 = load i32, ptr @test_count, align 4, !tbaa !5
  %5199 = add nsw i32 %5198, 1
  store i32 %5199, ptr @test_count, align 4, !tbaa !5
  %5200 = load ptr, ptr %103, align 8, !tbaa !9
  %5201 = getelementptr inbounds %struct.s2n_connection, ptr %5200, i32 0, i32 52
  %5202 = getelementptr inbounds %struct.s2n_handshake, ptr %5201, i32 0, i32 0
  %5203 = load ptr, ptr %104, align 8, !tbaa !9
  %5204 = getelementptr inbounds %struct.s2n_connection, ptr %5203, i32 0, i32 52
  %5205 = getelementptr inbounds %struct.s2n_handshake, ptr %5204, i32 0, i32 0
  %5206 = load ptr, ptr %103, align 8, !tbaa !9
  %5207 = getelementptr inbounds %struct.s2n_connection, ptr %5206, i32 0, i32 52
  %5208 = getelementptr inbounds %struct.s2n_handshake, ptr %5207, i32 0, i32 0
  %5209 = getelementptr inbounds %struct.s2n_stuffer, ptr %5208, i32 0, i32 2
  %5210 = load i32, ptr %5209, align 4, !tbaa !58
  %5211 = load ptr, ptr %103, align 8, !tbaa !9
  %5212 = getelementptr inbounds %struct.s2n_connection, ptr %5211, i32 0, i32 52
  %5213 = getelementptr inbounds %struct.s2n_handshake, ptr %5212, i32 0, i32 0
  %5214 = getelementptr inbounds %struct.s2n_stuffer, ptr %5213, i32 0, i32 1
  %5215 = load i32, ptr %5214, align 8, !tbaa !59
  %5216 = sub i32 %5210, %5215
  %5217 = call i32 @s2n_stuffer_copy(ptr noundef %5202, ptr noundef %5205, i32 noundef %5216)
  %5218 = icmp eq i32 %5217, -1
  br i1 %5218, label %5219, label %5272

5219:                                             ; preds = %5197
  br label %5220

5220:                                             ; preds = %5219
  br label %5221

5221:                                             ; preds = %5220
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #10
  %5222 = call ptr @__errno_location() #11
  %5223 = load i32, ptr %5222, align 4, !tbaa !5
  store i32 %5223, ptr %114, align 4, !tbaa !5
  %5224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5225 = call i32 @s2n_print_stacktrace(ptr noundef %5224)
  %5226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5227 = trunc i8 %5226 to i1
  br i1 %5227, label %5228, label %5250

5228:                                             ; preds = %5221
  %5229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5230 = call i32 @fileno(ptr noundef %5229) #10
  %5231 = call i32 @isatty(i32 noundef %5230) #10
  %5232 = icmp ne i32 %5231, 0
  br i1 %5232, label %5233, label %5250

5233:                                             ; preds = %5228
  %5234 = load i32, ptr %114, align 4, !tbaa !5
  %5235 = call ptr @__errno_location() #11
  store i32 %5234, ptr %5235, align 4, !tbaa !5
  %5236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5237 = load i32, ptr @test_count, align 4, !tbaa !5
  %5238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5239 = load i32, ptr %5238, align 4, !tbaa !5
  %5240 = call ptr @s2n_strerror(i32 noundef %5239, ptr noundef @.str.4)
  %5241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5242 = load i32, ptr %5241, align 4, !tbaa !5
  %5243 = call ptr @s2n_strerror_debug(i32 noundef %5242, ptr noundef @.str.4)
  %5244 = call ptr @__errno_location() #11
  %5245 = load i32, ptr %5244, align 4, !tbaa !5
  %5246 = call ptr @strerror(i32 noundef %5245) #10
  %5247 = call ptr @__errno_location() #11
  %5248 = load i32, ptr %5247, align 4, !tbaa !5
  %5249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5236, ptr noundef @.str.2, i32 noundef %5237, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 274, ptr noundef %5240, ptr noundef %5243, ptr noundef %5246, i32 noundef %5248) #10
  br label %5267

5250:                                             ; preds = %5228, %5221
  %5251 = load i32, ptr %114, align 4, !tbaa !5
  %5252 = call ptr @__errno_location() #11
  store i32 %5251, ptr %5252, align 4, !tbaa !5
  %5253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5254 = load i32, ptr @test_count, align 4, !tbaa !5
  %5255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5256 = load i32, ptr %5255, align 4, !tbaa !5
  %5257 = call ptr @s2n_strerror(i32 noundef %5256, ptr noundef @.str.4)
  %5258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5259 = load i32, ptr %5258, align 4, !tbaa !5
  %5260 = call ptr @s2n_strerror_debug(i32 noundef %5259, ptr noundef @.str.4)
  %5261 = call ptr @__errno_location() #11
  %5262 = load i32, ptr %5261, align 4, !tbaa !5
  %5263 = call ptr @strerror(i32 noundef %5262) #10
  %5264 = call ptr @__errno_location() #11
  %5265 = load i32, ptr %5264, align 4, !tbaa !5
  %5266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5253, ptr noundef @.str.5, i32 noundef %5254, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 274, ptr noundef %5257, ptr noundef %5260, ptr noundef %5263, i32 noundef %5265) #10
  br label %5267

5267:                                             ; preds = %5250, %5233
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %5268

5268:                                             ; preds = %5267
  br label %5269

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

5270:                                             ; No predecessors!
  br label %5271

5271:                                             ; preds = %5270
  br label %5272

5272:                                             ; preds = %5271, %5197
  br label %5273

5273:                                             ; preds = %5272
  br label %5274

5274:                                             ; preds = %5273
  br label %5275

5275:                                             ; preds = %5274
  %5276 = load i32, ptr @test_count, align 4, !tbaa !5
  %5277 = add nsw i32 %5276, 1
  store i32 %5277, ptr @test_count, align 4, !tbaa !5
  %5278 = load ptr, ptr %104, align 8, !tbaa !9
  %5279 = call i32 @s2n_client_hello_recv(ptr noundef %5278)
  %5280 = icmp eq i32 %5279, -1
  br i1 %5280, label %5281, label %5334

5281:                                             ; preds = %5275
  br label %5282

5282:                                             ; preds = %5281
  br label %5283

5283:                                             ; preds = %5282
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #10
  %5284 = call ptr @__errno_location() #11
  %5285 = load i32, ptr %5284, align 4, !tbaa !5
  store i32 %5285, ptr %115, align 4, !tbaa !5
  %5286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5287 = call i32 @s2n_print_stacktrace(ptr noundef %5286)
  %5288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5289 = trunc i8 %5288 to i1
  br i1 %5289, label %5290, label %5312

5290:                                             ; preds = %5283
  %5291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5292 = call i32 @fileno(ptr noundef %5291) #10
  %5293 = call i32 @isatty(i32 noundef %5292) #10
  %5294 = icmp ne i32 %5293, 0
  br i1 %5294, label %5295, label %5312

5295:                                             ; preds = %5290
  %5296 = load i32, ptr %115, align 4, !tbaa !5
  %5297 = call ptr @__errno_location() #11
  store i32 %5296, ptr %5297, align 4, !tbaa !5
  %5298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5299 = load i32, ptr @test_count, align 4, !tbaa !5
  %5300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5301 = load i32, ptr %5300, align 4, !tbaa !5
  %5302 = call ptr @s2n_strerror(i32 noundef %5301, ptr noundef @.str.4)
  %5303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5304 = load i32, ptr %5303, align 4, !tbaa !5
  %5305 = call ptr @s2n_strerror_debug(i32 noundef %5304, ptr noundef @.str.4)
  %5306 = call ptr @__errno_location() #11
  %5307 = load i32, ptr %5306, align 4, !tbaa !5
  %5308 = call ptr @strerror(i32 noundef %5307) #10
  %5309 = call ptr @__errno_location() #11
  %5310 = load i32, ptr %5309, align 4, !tbaa !5
  %5311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5298, ptr noundef @.str.2, i32 noundef %5299, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5302, ptr noundef %5305, ptr noundef %5308, i32 noundef %5310) #10
  br label %5329

5312:                                             ; preds = %5290, %5283
  %5313 = load i32, ptr %115, align 4, !tbaa !5
  %5314 = call ptr @__errno_location() #11
  store i32 %5313, ptr %5314, align 4, !tbaa !5
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = load i32, ptr @test_count, align 4, !tbaa !5
  %5317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5318 = load i32, ptr %5317, align 4, !tbaa !5
  %5319 = call ptr @s2n_strerror(i32 noundef %5318, ptr noundef @.str.4)
  %5320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5321 = load i32, ptr %5320, align 4, !tbaa !5
  %5322 = call ptr @s2n_strerror_debug(i32 noundef %5321, ptr noundef @.str.4)
  %5323 = call ptr @__errno_location() #11
  %5324 = load i32, ptr %5323, align 4, !tbaa !5
  %5325 = call ptr @strerror(i32 noundef %5324) #10
  %5326 = call ptr @__errno_location() #11
  %5327 = load i32, ptr %5326, align 4, !tbaa !5
  %5328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5315, ptr noundef @.str.5, i32 noundef %5316, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5319, ptr noundef %5322, ptr noundef %5325, i32 noundef %5327) #10
  br label %5329

5329:                                             ; preds = %5312, %5295
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  br label %5330

5330:                                             ; preds = %5329
  br label %5331

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

5332:                                             ; No predecessors!
  br label %5333

5333:                                             ; preds = %5332
  br label %5334

5334:                                             ; preds = %5333, %5275
  br label %5335

5335:                                             ; preds = %5334
  br label %5336

5336:                                             ; preds = %5335
  br label %5337

5337:                                             ; preds = %5336
  %5338 = load i32, ptr @test_count, align 4, !tbaa !5
  %5339 = add nsw i32 %5338, 1
  store i32 %5339, ptr @test_count, align 4, !tbaa !5
  %5340 = load ptr, ptr %104, align 8, !tbaa !9
  %5341 = getelementptr inbounds %struct.s2n_connection, ptr %5340, i32 0, i32 33
  %5342 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %5341, i32 0, i32 3
  %5343 = load i16, ptr %5342, align 2, !tbaa !18
  %5344 = zext i16 %5343 to i32
  %5345 = icmp eq i32 %5344, 1
  br i1 %5345, label %5399, label %5346

5346:                                             ; preds = %5337
  br label %5347

5347:                                             ; preds = %5346
  br label %5348

5348:                                             ; preds = %5347
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %5349 = call ptr @__errno_location() #11
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  store i32 %5350, ptr %116, align 4, !tbaa !5
  %5351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5352 = call i32 @s2n_print_stacktrace(ptr noundef %5351)
  %5353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5354 = trunc i8 %5353 to i1
  br i1 %5354, label %5355, label %5377

5355:                                             ; preds = %5348
  %5356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5357 = call i32 @fileno(ptr noundef %5356) #10
  %5358 = call i32 @isatty(i32 noundef %5357) #10
  %5359 = icmp ne i32 %5358, 0
  br i1 %5359, label %5360, label %5377

5360:                                             ; preds = %5355
  %5361 = load i32, ptr %116, align 4, !tbaa !5
  %5362 = call ptr @__errno_location() #11
  store i32 %5361, ptr %5362, align 4, !tbaa !5
  %5363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5364 = load i32, ptr @test_count, align 4, !tbaa !5
  %5365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5366 = load i32, ptr %5365, align 4, !tbaa !5
  %5367 = call ptr @s2n_strerror(i32 noundef %5366, ptr noundef @.str.4)
  %5368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5369 = load i32, ptr %5368, align 4, !tbaa !5
  %5370 = call ptr @s2n_strerror_debug(i32 noundef %5369, ptr noundef @.str.4)
  %5371 = call ptr @__errno_location() #11
  %5372 = load i32, ptr %5371, align 4, !tbaa !5
  %5373 = call ptr @strerror(i32 noundef %5372) #10
  %5374 = call ptr @__errno_location() #11
  %5375 = load i32, ptr %5374, align 4, !tbaa !5
  %5376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5363, ptr noundef @.str.2, i32 noundef %5364, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 278, ptr noundef %5367, ptr noundef %5370, ptr noundef %5373, i32 noundef %5375) #10
  br label %5394

5377:                                             ; preds = %5355, %5348
  %5378 = load i32, ptr %116, align 4, !tbaa !5
  %5379 = call ptr @__errno_location() #11
  store i32 %5378, ptr %5379, align 4, !tbaa !5
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = load i32, ptr @test_count, align 4, !tbaa !5
  %5382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5383 = load i32, ptr %5382, align 4, !tbaa !5
  %5384 = call ptr @s2n_strerror(i32 noundef %5383, ptr noundef @.str.4)
  %5385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5386 = load i32, ptr %5385, align 4, !tbaa !5
  %5387 = call ptr @s2n_strerror_debug(i32 noundef %5386, ptr noundef @.str.4)
  %5388 = call ptr @__errno_location() #11
  %5389 = load i32, ptr %5388, align 4, !tbaa !5
  %5390 = call ptr @strerror(i32 noundef %5389) #10
  %5391 = call ptr @__errno_location() #11
  %5392 = load i32, ptr %5391, align 4, !tbaa !5
  %5393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5380, ptr noundef @.str.5, i32 noundef %5381, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 278, ptr noundef %5384, ptr noundef %5387, ptr noundef %5390, i32 noundef %5392) #10
  br label %5394

5394:                                             ; preds = %5377, %5360
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %5395

5395:                                             ; preds = %5394
  br label %5396

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

5397:                                             ; No predecessors!
  br label %5398

5398:                                             ; preds = %5397
  br label %5399

5399:                                             ; preds = %5398, %5337
  br label %5400

5400:                                             ; preds = %5399
  br label %5401

5401:                                             ; preds = %5400
  br label %5402

5402:                                             ; preds = %5401
  %5403 = load i32, ptr @test_count, align 4, !tbaa !5
  %5404 = add nsw i32 %5403, 1
  store i32 %5404, ptr @test_count, align 4, !tbaa !5
  %5405 = load ptr, ptr %104, align 8, !tbaa !9
  %5406 = call i32 @s2n_server_hello_send(ptr noundef %5405)
  %5407 = icmp eq i32 %5406, -1
  br i1 %5407, label %5408, label %5461

5408:                                             ; preds = %5402
  br label %5409

5409:                                             ; preds = %5408
  br label %5410

5410:                                             ; preds = %5409
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %5411 = call ptr @__errno_location() #11
  %5412 = load i32, ptr %5411, align 4, !tbaa !5
  store i32 %5412, ptr %117, align 4, !tbaa !5
  %5413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5414 = call i32 @s2n_print_stacktrace(ptr noundef %5413)
  %5415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5416 = trunc i8 %5415 to i1
  br i1 %5416, label %5417, label %5439

5417:                                             ; preds = %5410
  %5418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5419 = call i32 @fileno(ptr noundef %5418) #10
  %5420 = call i32 @isatty(i32 noundef %5419) #10
  %5421 = icmp ne i32 %5420, 0
  br i1 %5421, label %5422, label %5439

5422:                                             ; preds = %5417
  %5423 = load i32, ptr %117, align 4, !tbaa !5
  %5424 = call ptr @__errno_location() #11
  store i32 %5423, ptr %5424, align 4, !tbaa !5
  %5425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5426 = load i32, ptr @test_count, align 4, !tbaa !5
  %5427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5428 = load i32, ptr %5427, align 4, !tbaa !5
  %5429 = call ptr @s2n_strerror(i32 noundef %5428, ptr noundef @.str.4)
  %5430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call ptr @s2n_strerror_debug(i32 noundef %5431, ptr noundef @.str.4)
  %5433 = call ptr @__errno_location() #11
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call ptr @strerror(i32 noundef %5434) #10
  %5436 = call ptr @__errno_location() #11
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  %5438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5425, ptr noundef @.str.2, i32 noundef %5426, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5429, ptr noundef %5432, ptr noundef %5435, i32 noundef %5437) #10
  br label %5456

5439:                                             ; preds = %5417, %5410
  %5440 = load i32, ptr %117, align 4, !tbaa !5
  %5441 = call ptr @__errno_location() #11
  store i32 %5440, ptr %5441, align 4, !tbaa !5
  %5442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5443 = load i32, ptr @test_count, align 4, !tbaa !5
  %5444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = call ptr @s2n_strerror(i32 noundef %5445, ptr noundef @.str.4)
  %5447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @s2n_strerror_debug(i32 noundef %5448, ptr noundef @.str.4)
  %5450 = call ptr @__errno_location() #11
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @strerror(i32 noundef %5451) #10
  %5453 = call ptr @__errno_location() #11
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5442, ptr noundef @.str.5, i32 noundef %5443, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5446, ptr noundef %5449, ptr noundef %5452, i32 noundef %5454) #10
  br label %5456

5456:                                             ; preds = %5439, %5422
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %5457

5457:                                             ; preds = %5456
  br label %5458

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

5459:                                             ; No predecessors!
  br label %5460

5460:                                             ; preds = %5459
  br label %5461

5461:                                             ; preds = %5460, %5402
  br label %5462

5462:                                             ; preds = %5461
  br label %5463

5463:                                             ; preds = %5462
  br label %5464

5464:                                             ; preds = %5463
  %5465 = load i32, ptr @test_count, align 4, !tbaa !5
  %5466 = add nsw i32 %5465, 1
  store i32 %5466, ptr @test_count, align 4, !tbaa !5
  %5467 = load ptr, ptr %103, align 8, !tbaa !9
  %5468 = getelementptr inbounds %struct.s2n_connection, ptr %5467, i32 0, i32 52
  %5469 = getelementptr inbounds %struct.s2n_handshake, ptr %5468, i32 0, i32 0
  %5470 = call i32 @s2n_stuffer_wipe(ptr noundef %5469)
  %5471 = icmp eq i32 %5470, -1
  br i1 %5471, label %5472, label %5525

5472:                                             ; preds = %5464
  br label %5473

5473:                                             ; preds = %5472
  br label %5474

5474:                                             ; preds = %5473
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %5475 = call ptr @__errno_location() #11
  %5476 = load i32, ptr %5475, align 4, !tbaa !5
  store i32 %5476, ptr %118, align 4, !tbaa !5
  %5477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5478 = call i32 @s2n_print_stacktrace(ptr noundef %5477)
  %5479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5480 = trunc i8 %5479 to i1
  br i1 %5480, label %5481, label %5503

5481:                                             ; preds = %5474
  %5482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5483 = call i32 @fileno(ptr noundef %5482) #10
  %5484 = call i32 @isatty(i32 noundef %5483) #10
  %5485 = icmp ne i32 %5484, 0
  br i1 %5485, label %5486, label %5503

5486:                                             ; preds = %5481
  %5487 = load i32, ptr %118, align 4, !tbaa !5
  %5488 = call ptr @__errno_location() #11
  store i32 %5487, ptr %5488, align 4, !tbaa !5
  %5489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5490 = load i32, ptr @test_count, align 4, !tbaa !5
  %5491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5492 = load i32, ptr %5491, align 4, !tbaa !5
  %5493 = call ptr @s2n_strerror(i32 noundef %5492, ptr noundef @.str.4)
  %5494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5495 = load i32, ptr %5494, align 4, !tbaa !5
  %5496 = call ptr @s2n_strerror_debug(i32 noundef %5495, ptr noundef @.str.4)
  %5497 = call ptr @__errno_location() #11
  %5498 = load i32, ptr %5497, align 4, !tbaa !5
  %5499 = call ptr @strerror(i32 noundef %5498) #10
  %5500 = call ptr @__errno_location() #11
  %5501 = load i32, ptr %5500, align 4, !tbaa !5
  %5502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5489, ptr noundef @.str.2, i32 noundef %5490, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5493, ptr noundef %5496, ptr noundef %5499, i32 noundef %5501) #10
  br label %5520

5503:                                             ; preds = %5481, %5474
  %5504 = load i32, ptr %118, align 4, !tbaa !5
  %5505 = call ptr @__errno_location() #11
  store i32 %5504, ptr %5505, align 4, !tbaa !5
  %5506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5507 = load i32, ptr @test_count, align 4, !tbaa !5
  %5508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5509 = load i32, ptr %5508, align 4, !tbaa !5
  %5510 = call ptr @s2n_strerror(i32 noundef %5509, ptr noundef @.str.4)
  %5511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  %5513 = call ptr @s2n_strerror_debug(i32 noundef %5512, ptr noundef @.str.4)
  %5514 = call ptr @__errno_location() #11
  %5515 = load i32, ptr %5514, align 4, !tbaa !5
  %5516 = call ptr @strerror(i32 noundef %5515) #10
  %5517 = call ptr @__errno_location() #11
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  %5519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5506, ptr noundef @.str.5, i32 noundef %5507, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5510, ptr noundef %5513, ptr noundef %5516, i32 noundef %5518) #10
  br label %5520

5520:                                             ; preds = %5503, %5486
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %5521

5521:                                             ; preds = %5520
  br label %5522

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

5523:                                             ; No predecessors!
  br label %5524

5524:                                             ; preds = %5523
  br label %5525

5525:                                             ; preds = %5524, %5464
  br label %5526

5526:                                             ; preds = %5525
  br label %5527

5527:                                             ; preds = %5526
  br label %5528

5528:                                             ; preds = %5527
  %5529 = load i32, ptr @test_count, align 4, !tbaa !5
  %5530 = add nsw i32 %5529, 1
  store i32 %5530, ptr @test_count, align 4, !tbaa !5
  %5531 = load ptr, ptr %104, align 8, !tbaa !9
  %5532 = getelementptr inbounds %struct.s2n_connection, ptr %5531, i32 0, i32 52
  %5533 = getelementptr inbounds %struct.s2n_handshake, ptr %5532, i32 0, i32 0
  %5534 = load ptr, ptr %103, align 8, !tbaa !9
  %5535 = getelementptr inbounds %struct.s2n_connection, ptr %5534, i32 0, i32 52
  %5536 = getelementptr inbounds %struct.s2n_handshake, ptr %5535, i32 0, i32 0
  %5537 = load ptr, ptr %104, align 8, !tbaa !9
  %5538 = getelementptr inbounds %struct.s2n_connection, ptr %5537, i32 0, i32 52
  %5539 = getelementptr inbounds %struct.s2n_handshake, ptr %5538, i32 0, i32 0
  %5540 = getelementptr inbounds %struct.s2n_stuffer, ptr %5539, i32 0, i32 2
  %5541 = load i32, ptr %5540, align 4, !tbaa !58
  %5542 = load ptr, ptr %104, align 8, !tbaa !9
  %5543 = getelementptr inbounds %struct.s2n_connection, ptr %5542, i32 0, i32 52
  %5544 = getelementptr inbounds %struct.s2n_handshake, ptr %5543, i32 0, i32 0
  %5545 = getelementptr inbounds %struct.s2n_stuffer, ptr %5544, i32 0, i32 1
  %5546 = load i32, ptr %5545, align 8, !tbaa !59
  %5547 = sub i32 %5541, %5546
  %5548 = call i32 @s2n_stuffer_copy(ptr noundef %5533, ptr noundef %5536, i32 noundef %5547)
  %5549 = icmp eq i32 %5548, -1
  br i1 %5549, label %5550, label %5603

5550:                                             ; preds = %5528
  br label %5551

5551:                                             ; preds = %5550
  br label %5552

5552:                                             ; preds = %5551
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %5553 = call ptr @__errno_location() #11
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  store i32 %5554, ptr %119, align 4, !tbaa !5
  %5555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5556 = call i32 @s2n_print_stacktrace(ptr noundef %5555)
  %5557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5558 = trunc i8 %5557 to i1
  br i1 %5558, label %5559, label %5581

5559:                                             ; preds = %5552
  %5560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5561 = call i32 @fileno(ptr noundef %5560) #10
  %5562 = call i32 @isatty(i32 noundef %5561) #10
  %5563 = icmp ne i32 %5562, 0
  br i1 %5563, label %5564, label %5581

5564:                                             ; preds = %5559
  %5565 = load i32, ptr %119, align 4, !tbaa !5
  %5566 = call ptr @__errno_location() #11
  store i32 %5565, ptr %5566, align 4, !tbaa !5
  %5567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5568 = load i32, ptr @test_count, align 4, !tbaa !5
  %5569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5570 = load i32, ptr %5569, align 4, !tbaa !5
  %5571 = call ptr @s2n_strerror(i32 noundef %5570, ptr noundef @.str.4)
  %5572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5573 = load i32, ptr %5572, align 4, !tbaa !5
  %5574 = call ptr @s2n_strerror_debug(i32 noundef %5573, ptr noundef @.str.4)
  %5575 = call ptr @__errno_location() #11
  %5576 = load i32, ptr %5575, align 4, !tbaa !5
  %5577 = call ptr @strerror(i32 noundef %5576) #10
  %5578 = call ptr @__errno_location() #11
  %5579 = load i32, ptr %5578, align 4, !tbaa !5
  %5580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5567, ptr noundef @.str.2, i32 noundef %5568, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 284, ptr noundef %5571, ptr noundef %5574, ptr noundef %5577, i32 noundef %5579) #10
  br label %5598

5581:                                             ; preds = %5559, %5552
  %5582 = load i32, ptr %119, align 4, !tbaa !5
  %5583 = call ptr @__errno_location() #11
  store i32 %5582, ptr %5583, align 4, !tbaa !5
  %5584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5585 = load i32, ptr @test_count, align 4, !tbaa !5
  %5586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call ptr @s2n_strerror(i32 noundef %5587, ptr noundef @.str.4)
  %5589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = call ptr @s2n_strerror_debug(i32 noundef %5590, ptr noundef @.str.4)
  %5592 = call ptr @__errno_location() #11
  %5593 = load i32, ptr %5592, align 4, !tbaa !5
  %5594 = call ptr @strerror(i32 noundef %5593) #10
  %5595 = call ptr @__errno_location() #11
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  %5597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5584, ptr noundef @.str.5, i32 noundef %5585, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 284, ptr noundef %5588, ptr noundef %5591, ptr noundef %5594, i32 noundef %5596) #10
  br label %5598

5598:                                             ; preds = %5581, %5564
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %5599

5599:                                             ; preds = %5598
  br label %5600

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

5601:                                             ; No predecessors!
  br label %5602

5602:                                             ; preds = %5601
  br label %5603

5603:                                             ; preds = %5602, %5528
  br label %5604

5604:                                             ; preds = %5603
  br label %5605

5605:                                             ; preds = %5604
  br label %5606

5606:                                             ; preds = %5605
  %5607 = load i32, ptr @test_count, align 4, !tbaa !5
  %5608 = add nsw i32 %5607, 1
  store i32 %5608, ptr @test_count, align 4, !tbaa !5
  %5609 = load ptr, ptr %103, align 8, !tbaa !9
  %5610 = getelementptr inbounds %struct.s2n_connection, ptr %5609, i32 0, i32 33
  %5611 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %5610, i32 0, i32 4
  %5612 = load ptr, ptr %5611, align 8, !tbaa !48
  %5613 = icmp eq ptr %5612, null
  br i1 %5613, label %5667, label %5614

5614:                                             ; preds = %5606
  br label %5615

5615:                                             ; preds = %5614
  br label %5616

5616:                                             ; preds = %5615
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %5617 = call ptr @__errno_location() #11
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  store i32 %5618, ptr %120, align 4, !tbaa !5
  %5619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5620 = call i32 @s2n_print_stacktrace(ptr noundef %5619)
  %5621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5622 = trunc i8 %5621 to i1
  br i1 %5622, label %5623, label %5645

5623:                                             ; preds = %5616
  %5624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5625 = call i32 @fileno(ptr noundef %5624) #10
  %5626 = call i32 @isatty(i32 noundef %5625) #10
  %5627 = icmp ne i32 %5626, 0
  br i1 %5627, label %5628, label %5645

5628:                                             ; preds = %5623
  %5629 = load i32, ptr %120, align 4, !tbaa !5
  %5630 = call ptr @__errno_location() #11
  store i32 %5629, ptr %5630, align 4, !tbaa !5
  %5631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5632 = load i32, ptr @test_count, align 4, !tbaa !5
  %5633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @s2n_strerror(i32 noundef %5634, ptr noundef @.str.4)
  %5636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call ptr @s2n_strerror_debug(i32 noundef %5637, ptr noundef @.str.4)
  %5639 = call ptr @__errno_location() #11
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  %5641 = call ptr @strerror(i32 noundef %5640) #10
  %5642 = call ptr @__errno_location() #11
  %5643 = load i32, ptr %5642, align 4, !tbaa !5
  %5644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5631, ptr noundef @.str.2, i32 noundef %5632, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5635, ptr noundef %5638, ptr noundef %5641, i32 noundef %5643) #10
  br label %5662

5645:                                             ; preds = %5623, %5616
  %5646 = load i32, ptr %120, align 4, !tbaa !5
  %5647 = call ptr @__errno_location() #11
  store i32 %5646, ptr %5647, align 4, !tbaa !5
  %5648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5649 = load i32, ptr @test_count, align 4, !tbaa !5
  %5650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @s2n_strerror(i32 noundef %5651, ptr noundef @.str.4)
  %5653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call ptr @s2n_strerror_debug(i32 noundef %5654, ptr noundef @.str.4)
  %5656 = call ptr @__errno_location() #11
  %5657 = load i32, ptr %5656, align 4, !tbaa !5
  %5658 = call ptr @strerror(i32 noundef %5657) #10
  %5659 = call ptr @__errno_location() #11
  %5660 = load i32, ptr %5659, align 4, !tbaa !5
  %5661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5648, ptr noundef @.str.5, i32 noundef %5649, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5652, ptr noundef %5655, ptr noundef %5658, i32 noundef %5660) #10
  br label %5662

5662:                                             ; preds = %5645, %5628
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %5663

5663:                                             ; preds = %5662
  br label %5664

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

5665:                                             ; No predecessors!
  br label %5666

5666:                                             ; preds = %5665
  br label %5667

5667:                                             ; preds = %5666, %5606
  br label %5668

5668:                                             ; preds = %5667
  br label %5669

5669:                                             ; preds = %5668
  br label %5670

5670:                                             ; preds = %5669
  %5671 = load i32, ptr @test_count, align 4, !tbaa !5
  %5672 = add nsw i32 %5671, 1
  store i32 %5672, ptr @test_count, align 4, !tbaa !5
  %5673 = load ptr, ptr %103, align 8, !tbaa !9
  %5674 = call i32 @s2n_server_hello_recv(ptr noundef %5673)
  %5675 = icmp eq i32 %5674, -1
  br i1 %5675, label %5676, label %5729

5676:                                             ; preds = %5670
  br label %5677

5677:                                             ; preds = %5676
  br label %5678

5678:                                             ; preds = %5677
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %5679 = call ptr @__errno_location() #11
  %5680 = load i32, ptr %5679, align 4, !tbaa !5
  store i32 %5680, ptr %121, align 4, !tbaa !5
  %5681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5682 = call i32 @s2n_print_stacktrace(ptr noundef %5681)
  %5683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5684 = trunc i8 %5683 to i1
  br i1 %5684, label %5685, label %5707

5685:                                             ; preds = %5678
  %5686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5687 = call i32 @fileno(ptr noundef %5686) #10
  %5688 = call i32 @isatty(i32 noundef %5687) #10
  %5689 = icmp ne i32 %5688, 0
  br i1 %5689, label %5690, label %5707

5690:                                             ; preds = %5685
  %5691 = load i32, ptr %121, align 4, !tbaa !5
  %5692 = call ptr @__errno_location() #11
  store i32 %5691, ptr %5692, align 4, !tbaa !5
  %5693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5694 = load i32, ptr @test_count, align 4, !tbaa !5
  %5695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5696 = load i32, ptr %5695, align 4, !tbaa !5
  %5697 = call ptr @s2n_strerror(i32 noundef %5696, ptr noundef @.str.4)
  %5698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5699 = load i32, ptr %5698, align 4, !tbaa !5
  %5700 = call ptr @s2n_strerror_debug(i32 noundef %5699, ptr noundef @.str.4)
  %5701 = call ptr @__errno_location() #11
  %5702 = load i32, ptr %5701, align 4, !tbaa !5
  %5703 = call ptr @strerror(i32 noundef %5702) #10
  %5704 = call ptr @__errno_location() #11
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5693, ptr noundef @.str.2, i32 noundef %5694, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 287, ptr noundef %5697, ptr noundef %5700, ptr noundef %5703, i32 noundef %5705) #10
  br label %5724

5707:                                             ; preds = %5685, %5678
  %5708 = load i32, ptr %121, align 4, !tbaa !5
  %5709 = call ptr @__errno_location() #11
  store i32 %5708, ptr %5709, align 4, !tbaa !5
  %5710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5711 = load i32, ptr @test_count, align 4, !tbaa !5
  %5712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5713 = load i32, ptr %5712, align 4, !tbaa !5
  %5714 = call ptr @s2n_strerror(i32 noundef %5713, ptr noundef @.str.4)
  %5715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5716 = load i32, ptr %5715, align 4, !tbaa !5
  %5717 = call ptr @s2n_strerror_debug(i32 noundef %5716, ptr noundef @.str.4)
  %5718 = call ptr @__errno_location() #11
  %5719 = load i32, ptr %5718, align 4, !tbaa !5
  %5720 = call ptr @strerror(i32 noundef %5719) #10
  %5721 = call ptr @__errno_location() #11
  %5722 = load i32, ptr %5721, align 4, !tbaa !5
  %5723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5710, ptr noundef @.str.5, i32 noundef %5711, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 287, ptr noundef %5714, ptr noundef %5717, ptr noundef %5720, i32 noundef %5722) #10
  br label %5724

5724:                                             ; preds = %5707, %5690
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %5725

5725:                                             ; preds = %5724
  br label %5726

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

5727:                                             ; No predecessors!
  br label %5728

5728:                                             ; preds = %5727
  br label %5729

5729:                                             ; preds = %5728, %5670
  br label %5730

5730:                                             ; preds = %5729
  br label %5731

5731:                                             ; preds = %5730
  br label %5732

5732:                                             ; preds = %5731
  %5733 = load i32, ptr @test_count, align 4, !tbaa !5
  %5734 = add nsw i32 %5733, 1
  store i32 %5734, ptr @test_count, align 4, !tbaa !5
  %5735 = load ptr, ptr %103, align 8, !tbaa !9
  %5736 = getelementptr inbounds %struct.s2n_connection, ptr %5735, i32 0, i32 33
  %5737 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %5736, i32 0, i32 5
  %5738 = load i32, ptr %5737, align 8, !tbaa !50
  %5739 = icmp eq i32 %5738, 2
  br i1 %5739, label %5793, label %5740

5740:                                             ; preds = %5732
  br label %5741

5741:                                             ; preds = %5740
  br label %5742

5742:                                             ; preds = %5741
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #10
  %5743 = call ptr @__errno_location() #11
  %5744 = load i32, ptr %5743, align 4, !tbaa !5
  store i32 %5744, ptr %122, align 4, !tbaa !5
  %5745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5746 = call i32 @s2n_print_stacktrace(ptr noundef %5745)
  %5747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5748 = trunc i8 %5747 to i1
  br i1 %5748, label %5749, label %5771

5749:                                             ; preds = %5742
  %5750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5751 = call i32 @fileno(ptr noundef %5750) #10
  %5752 = call i32 @isatty(i32 noundef %5751) #10
  %5753 = icmp ne i32 %5752, 0
  br i1 %5753, label %5754, label %5771

5754:                                             ; preds = %5749
  %5755 = load i32, ptr %122, align 4, !tbaa !5
  %5756 = call ptr @__errno_location() #11
  store i32 %5755, ptr %5756, align 4, !tbaa !5
  %5757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5758 = load i32, ptr @test_count, align 4, !tbaa !5
  %5759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5760 = load i32, ptr %5759, align 4, !tbaa !5
  %5761 = call ptr @s2n_strerror(i32 noundef %5760, ptr noundef @.str.4)
  %5762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5763 = load i32, ptr %5762, align 4, !tbaa !5
  %5764 = call ptr @s2n_strerror_debug(i32 noundef %5763, ptr noundef @.str.4)
  %5765 = call ptr @__errno_location() #11
  %5766 = load i32, ptr %5765, align 4, !tbaa !5
  %5767 = call ptr @strerror(i32 noundef %5766) #10
  %5768 = call ptr @__errno_location() #11
  %5769 = load i32, ptr %5768, align 4, !tbaa !5
  %5770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5757, ptr noundef @.str.2, i32 noundef %5758, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 290, ptr noundef %5761, ptr noundef %5764, ptr noundef %5767, i32 noundef %5769) #10
  br label %5788

5771:                                             ; preds = %5749, %5742
  %5772 = load i32, ptr %122, align 4, !tbaa !5
  %5773 = call ptr @__errno_location() #11
  store i32 %5772, ptr %5773, align 4, !tbaa !5
  %5774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5775 = load i32, ptr @test_count, align 4, !tbaa !5
  %5776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = call ptr @s2n_strerror(i32 noundef %5777, ptr noundef @.str.4)
  %5779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5780 = load i32, ptr %5779, align 4, !tbaa !5
  %5781 = call ptr @s2n_strerror_debug(i32 noundef %5780, ptr noundef @.str.4)
  %5782 = call ptr @__errno_location() #11
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call ptr @strerror(i32 noundef %5783) #10
  %5785 = call ptr @__errno_location() #11
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5774, ptr noundef @.str.5, i32 noundef %5775, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 290, ptr noundef %5778, ptr noundef %5781, ptr noundef %5784, i32 noundef %5786) #10
  br label %5788

5788:                                             ; preds = %5771, %5754
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %5789

5789:                                             ; preds = %5788
  br label %5790

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

5791:                                             ; No predecessors!
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

5793:                                             ; preds = %5792, %5732
  br label %5794

5794:                                             ; preds = %5793
  br label %5795

5795:                                             ; preds = %5794
  br label %5796

5796:                                             ; preds = %5795
  %5797 = load i32, ptr @test_count, align 4, !tbaa !5
  %5798 = add nsw i32 %5797, 1
  store i32 %5798, ptr @test_count, align 4, !tbaa !5
  %5799 = load ptr, ptr %103, align 8, !tbaa !9
  %5800 = getelementptr inbounds %struct.s2n_connection, ptr %5799, i32 0, i32 33
  %5801 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %5800, i32 0, i32 3
  %5802 = load i16, ptr %5801, align 2, !tbaa !18
  %5803 = zext i16 %5802 to i32
  %5804 = icmp eq i32 %5803, 1
  br i1 %5804, label %5858, label %5805

5805:                                             ; preds = %5796
  br label %5806

5806:                                             ; preds = %5805
  br label %5807

5807:                                             ; preds = %5806
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %5808 = call ptr @__errno_location() #11
  %5809 = load i32, ptr %5808, align 4, !tbaa !5
  store i32 %5809, ptr %123, align 4, !tbaa !5
  %5810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5811 = call i32 @s2n_print_stacktrace(ptr noundef %5810)
  %5812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5813 = trunc i8 %5812 to i1
  br i1 %5813, label %5814, label %5836

5814:                                             ; preds = %5807
  %5815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5816 = call i32 @fileno(ptr noundef %5815) #10
  %5817 = call i32 @isatty(i32 noundef %5816) #10
  %5818 = icmp ne i32 %5817, 0
  br i1 %5818, label %5819, label %5836

5819:                                             ; preds = %5814
  %5820 = load i32, ptr %123, align 4, !tbaa !5
  %5821 = call ptr @__errno_location() #11
  store i32 %5820, ptr %5821, align 4, !tbaa !5
  %5822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5823 = load i32, ptr @test_count, align 4, !tbaa !5
  %5824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5825 = load i32, ptr %5824, align 4, !tbaa !5
  %5826 = call ptr @s2n_strerror(i32 noundef %5825, ptr noundef @.str.4)
  %5827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  %5829 = call ptr @s2n_strerror_debug(i32 noundef %5828, ptr noundef @.str.4)
  %5830 = call ptr @__errno_location() #11
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  %5832 = call ptr @strerror(i32 noundef %5831) #10
  %5833 = call ptr @__errno_location() #11
  %5834 = load i32, ptr %5833, align 4, !tbaa !5
  %5835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5822, ptr noundef @.str.2, i32 noundef %5823, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 291, ptr noundef %5826, ptr noundef %5829, ptr noundef %5832, i32 noundef %5834) #10
  br label %5853

5836:                                             ; preds = %5814, %5807
  %5837 = load i32, ptr %123, align 4, !tbaa !5
  %5838 = call ptr @__errno_location() #11
  store i32 %5837, ptr %5838, align 4, !tbaa !5
  %5839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5840 = load i32, ptr @test_count, align 4, !tbaa !5
  %5841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5842 = load i32, ptr %5841, align 4, !tbaa !5
  %5843 = call ptr @s2n_strerror(i32 noundef %5842, ptr noundef @.str.4)
  %5844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5845 = load i32, ptr %5844, align 4, !tbaa !5
  %5846 = call ptr @s2n_strerror_debug(i32 noundef %5845, ptr noundef @.str.4)
  %5847 = call ptr @__errno_location() #11
  %5848 = load i32, ptr %5847, align 4, !tbaa !5
  %5849 = call ptr @strerror(i32 noundef %5848) #10
  %5850 = call ptr @__errno_location() #11
  %5851 = load i32, ptr %5850, align 4, !tbaa !5
  %5852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5839, ptr noundef @.str.5, i32 noundef %5840, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 291, ptr noundef %5843, ptr noundef %5846, ptr noundef %5849, i32 noundef %5851) #10
  br label %5853

5853:                                             ; preds = %5836, %5819
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5854

5854:                                             ; preds = %5853
  br label %5855

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

5856:                                             ; No predecessors!
  br label %5857

5857:                                             ; preds = %5856
  br label %5858

5858:                                             ; preds = %5857, %5796
  br label %5859

5859:                                             ; preds = %5858
  br label %5860

5860:                                             ; preds = %5859
  br label %5861

5861:                                             ; preds = %5860
  %5862 = load i32, ptr @test_count, align 4, !tbaa !5
  %5863 = add nsw i32 %5862, 1
  store i32 %5863, ptr @test_count, align 4, !tbaa !5
  %5864 = load ptr, ptr %103, align 8, !tbaa !9
  %5865 = getelementptr inbounds %struct.s2n_connection, ptr %5864, i32 0, i32 33
  %5866 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %5865, i32 0, i32 4
  %5867 = load ptr, ptr %5866, align 8, !tbaa !48
  %5868 = getelementptr inbounds %struct.s2n_psk, ptr %5867, i32 0, i32 1
  %5869 = getelementptr inbounds %struct.s2n_blob, ptr %5868, i32 0, i32 1
  %5870 = load i32, ptr %5869, align 8, !tbaa !51
  %5871 = zext i32 %5870 to i64
  %5872 = icmp eq i64 %5871, 14
  br i1 %5872, label %5926, label %5873

5873:                                             ; preds = %5861
  br label %5874

5874:                                             ; preds = %5873
  br label %5875

5875:                                             ; preds = %5874
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  %5876 = call ptr @__errno_location() #11
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  store i32 %5877, ptr %124, align 4, !tbaa !5
  %5878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5879 = call i32 @s2n_print_stacktrace(ptr noundef %5878)
  %5880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5881 = trunc i8 %5880 to i1
  br i1 %5881, label %5882, label %5904

5882:                                             ; preds = %5875
  %5883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5884 = call i32 @fileno(ptr noundef %5883) #10
  %5885 = call i32 @isatty(i32 noundef %5884) #10
  %5886 = icmp ne i32 %5885, 0
  br i1 %5886, label %5887, label %5904

5887:                                             ; preds = %5882
  %5888 = load i32, ptr %124, align 4, !tbaa !5
  %5889 = call ptr @__errno_location() #11
  store i32 %5888, ptr %5889, align 4, !tbaa !5
  %5890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5891 = load i32, ptr @test_count, align 4, !tbaa !5
  %5892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5893 = load i32, ptr %5892, align 4, !tbaa !5
  %5894 = call ptr @s2n_strerror(i32 noundef %5893, ptr noundef @.str.4)
  %5895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5896 = load i32, ptr %5895, align 4, !tbaa !5
  %5897 = call ptr @s2n_strerror_debug(i32 noundef %5896, ptr noundef @.str.4)
  %5898 = call ptr @__errno_location() #11
  %5899 = load i32, ptr %5898, align 4, !tbaa !5
  %5900 = call ptr @strerror(i32 noundef %5899) #10
  %5901 = call ptr @__errno_location() #11
  %5902 = load i32, ptr %5901, align 4, !tbaa !5
  %5903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5890, ptr noundef @.str.2, i32 noundef %5891, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5894, ptr noundef %5897, ptr noundef %5900, i32 noundef %5902) #10
  br label %5921

5904:                                             ; preds = %5882, %5875
  %5905 = load i32, ptr %124, align 4, !tbaa !5
  %5906 = call ptr @__errno_location() #11
  store i32 %5905, ptr %5906, align 4, !tbaa !5
  %5907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5908 = load i32, ptr @test_count, align 4, !tbaa !5
  %5909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5910 = load i32, ptr %5909, align 4, !tbaa !5
  %5911 = call ptr @s2n_strerror(i32 noundef %5910, ptr noundef @.str.4)
  %5912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  %5914 = call ptr @s2n_strerror_debug(i32 noundef %5913, ptr noundef @.str.4)
  %5915 = call ptr @__errno_location() #11
  %5916 = load i32, ptr %5915, align 4, !tbaa !5
  %5917 = call ptr @strerror(i32 noundef %5916) #10
  %5918 = call ptr @__errno_location() #11
  %5919 = load i32, ptr %5918, align 4, !tbaa !5
  %5920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5907, ptr noundef @.str.5, i32 noundef %5908, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5911, ptr noundef %5914, ptr noundef %5917, i32 noundef %5919) #10
  br label %5921

5921:                                             ; preds = %5904, %5887
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %5922

5922:                                             ; preds = %5921
  br label %5923

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

5924:                                             ; No predecessors!
  br label %5925

5925:                                             ; preds = %5924
  br label %5926

5926:                                             ; preds = %5925, %5861
  br label %5927

5927:                                             ; preds = %5926
  br label %5928

5928:                                             ; preds = %5927
  br label %5929

5929:                                             ; preds = %5928
  br label %5930

5930:                                             ; preds = %5929
  %5931 = load i32, ptr @test_count, align 4, !tbaa !5
  %5932 = add nsw i32 %5931, 1
  store i32 %5932, ptr @test_count, align 4, !tbaa !5
  %5933 = load ptr, ptr %103, align 8, !tbaa !9
  %5934 = getelementptr inbounds %struct.s2n_connection, ptr %5933, i32 0, i32 33
  %5935 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %5934, i32 0, i32 4
  %5936 = load ptr, ptr %5935, align 8, !tbaa !48
  %5937 = getelementptr inbounds %struct.s2n_psk, ptr %5936, i32 0, i32 1
  %5938 = getelementptr inbounds %struct.s2n_blob, ptr %5937, i32 0, i32 0
  %5939 = load ptr, ptr %5938, align 8, !tbaa !54
  %5940 = call i32 @memcmp(ptr noundef %5939, ptr noundef @test_identity, i64 noundef 14) #13
  %5941 = icmp eq i32 %5940, 0
  br i1 %5941, label %5995, label %5942

5942:                                             ; preds = %5930
  br label %5943

5943:                                             ; preds = %5942
  br label %5944

5944:                                             ; preds = %5943
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %5945 = call ptr @__errno_location() #11
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  store i32 %5946, ptr %125, align 4, !tbaa !5
  %5947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5948 = call i32 @s2n_print_stacktrace(ptr noundef %5947)
  %5949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5950 = trunc i8 %5949 to i1
  br i1 %5950, label %5951, label %5973

5951:                                             ; preds = %5944
  %5952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5953 = call i32 @fileno(ptr noundef %5952) #10
  %5954 = call i32 @isatty(i32 noundef %5953) #10
  %5955 = icmp ne i32 %5954, 0
  br i1 %5955, label %5956, label %5973

5956:                                             ; preds = %5951
  %5957 = load i32, ptr %125, align 4, !tbaa !5
  %5958 = call ptr @__errno_location() #11
  store i32 %5957, ptr %5958, align 4, !tbaa !5
  %5959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5960 = load i32, ptr @test_count, align 4, !tbaa !5
  %5961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5962 = load i32, ptr %5961, align 4, !tbaa !5
  %5963 = call ptr @s2n_strerror(i32 noundef %5962, ptr noundef @.str.4)
  %5964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5965 = load i32, ptr %5964, align 4, !tbaa !5
  %5966 = call ptr @s2n_strerror_debug(i32 noundef %5965, ptr noundef @.str.4)
  %5967 = call ptr @__errno_location() #11
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  %5969 = call ptr @strerror(i32 noundef %5968) #10
  %5970 = call ptr @__errno_location() #11
  %5971 = load i32, ptr %5970, align 4, !tbaa !5
  %5972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5959, ptr noundef @.str.2, i32 noundef %5960, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 293, ptr noundef %5963, ptr noundef %5966, ptr noundef %5969, i32 noundef %5971) #10
  br label %5990

5973:                                             ; preds = %5951, %5944
  %5974 = load i32, ptr %125, align 4, !tbaa !5
  %5975 = call ptr @__errno_location() #11
  store i32 %5974, ptr %5975, align 4, !tbaa !5
  %5976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5977 = load i32, ptr @test_count, align 4, !tbaa !5
  %5978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  %5980 = call ptr @s2n_strerror(i32 noundef %5979, ptr noundef @.str.4)
  %5981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5982 = load i32, ptr %5981, align 4, !tbaa !5
  %5983 = call ptr @s2n_strerror_debug(i32 noundef %5982, ptr noundef @.str.4)
  %5984 = call ptr @__errno_location() #11
  %5985 = load i32, ptr %5984, align 4, !tbaa !5
  %5986 = call ptr @strerror(i32 noundef %5985) #10
  %5987 = call ptr @__errno_location() #11
  %5988 = load i32, ptr %5987, align 4, !tbaa !5
  %5989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5976, ptr noundef @.str.5, i32 noundef %5977, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 293, ptr noundef %5980, ptr noundef %5983, ptr noundef %5986, i32 noundef %5988) #10
  br label %5990

5990:                                             ; preds = %5973, %5956
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %5991

5991:                                             ; preds = %5990
  br label %5992

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

5993:                                             ; No predecessors!
  br label %5994

5994:                                             ; preds = %5993
  br label %5995

5995:                                             ; preds = %5994, %5930
  br label %5996

5996:                                             ; preds = %5995
  br label %5997

5997:                                             ; preds = %5996
  br label %5998

5998:                                             ; preds = %5997
  br label %5999

5999:                                             ; preds = %5998
  br label %6000

6000:                                             ; preds = %5999
  %6001 = load i32, ptr @test_count, align 4, !tbaa !5
  %6002 = add nsw i32 %6001, 1
  store i32 %6002, ptr @test_count, align 4, !tbaa !5
  %6003 = load ptr, ptr %103, align 8, !tbaa !9
  %6004 = getelementptr inbounds %struct.s2n_connection, ptr %6003, i32 0, i32 33
  %6005 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %6004, i32 0, i32 4
  %6006 = load ptr, ptr %6005, align 8, !tbaa !48
  %6007 = getelementptr inbounds %struct.s2n_psk, ptr %6006, i32 0, i32 2
  %6008 = getelementptr inbounds %struct.s2n_blob, ptr %6007, i32 0, i32 1
  %6009 = load i32, ptr %6008, align 8, !tbaa !55
  %6010 = zext i32 %6009 to i64
  %6011 = icmp eq i64 %6010, 12
  br i1 %6011, label %6065, label %6012

6012:                                             ; preds = %6000
  br label %6013

6013:                                             ; preds = %6012
  br label %6014

6014:                                             ; preds = %6013
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %6015 = call ptr @__errno_location() #11
  %6016 = load i32, ptr %6015, align 4, !tbaa !5
  store i32 %6016, ptr %126, align 4, !tbaa !5
  %6017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6018 = call i32 @s2n_print_stacktrace(ptr noundef %6017)
  %6019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6020 = trunc i8 %6019 to i1
  br i1 %6020, label %6021, label %6043

6021:                                             ; preds = %6014
  %6022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6023 = call i32 @fileno(ptr noundef %6022) #10
  %6024 = call i32 @isatty(i32 noundef %6023) #10
  %6025 = icmp ne i32 %6024, 0
  br i1 %6025, label %6026, label %6043

6026:                                             ; preds = %6021
  %6027 = load i32, ptr %126, align 4, !tbaa !5
  %6028 = call ptr @__errno_location() #11
  store i32 %6027, ptr %6028, align 4, !tbaa !5
  %6029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6030 = load i32, ptr @test_count, align 4, !tbaa !5
  %6031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6032 = load i32, ptr %6031, align 4, !tbaa !5
  %6033 = call ptr @s2n_strerror(i32 noundef %6032, ptr noundef @.str.4)
  %6034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6035 = load i32, ptr %6034, align 4, !tbaa !5
  %6036 = call ptr @s2n_strerror_debug(i32 noundef %6035, ptr noundef @.str.4)
  %6037 = call ptr @__errno_location() #11
  %6038 = load i32, ptr %6037, align 4, !tbaa !5
  %6039 = call ptr @strerror(i32 noundef %6038) #10
  %6040 = call ptr @__errno_location() #11
  %6041 = load i32, ptr %6040, align 4, !tbaa !5
  %6042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6029, ptr noundef @.str.2, i32 noundef %6030, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6033, ptr noundef %6036, ptr noundef %6039, i32 noundef %6041) #10
  br label %6060

6043:                                             ; preds = %6021, %6014
  %6044 = load i32, ptr %126, align 4, !tbaa !5
  %6045 = call ptr @__errno_location() #11
  store i32 %6044, ptr %6045, align 4, !tbaa !5
  %6046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6047 = load i32, ptr @test_count, align 4, !tbaa !5
  %6048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6049 = load i32, ptr %6048, align 4, !tbaa !5
  %6050 = call ptr @s2n_strerror(i32 noundef %6049, ptr noundef @.str.4)
  %6051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6052 = load i32, ptr %6051, align 4, !tbaa !5
  %6053 = call ptr @s2n_strerror_debug(i32 noundef %6052, ptr noundef @.str.4)
  %6054 = call ptr @__errno_location() #11
  %6055 = load i32, ptr %6054, align 4, !tbaa !5
  %6056 = call ptr @strerror(i32 noundef %6055) #10
  %6057 = call ptr @__errno_location() #11
  %6058 = load i32, ptr %6057, align 4, !tbaa !5
  %6059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6046, ptr noundef @.str.5, i32 noundef %6047, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6050, ptr noundef %6053, ptr noundef %6056, i32 noundef %6058) #10
  br label %6060

6060:                                             ; preds = %6043, %6026
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %6061

6061:                                             ; preds = %6060
  br label %6062

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

6063:                                             ; No predecessors!
  br label %6064

6064:                                             ; preds = %6063
  br label %6065

6065:                                             ; preds = %6064, %6000
  br label %6066

6066:                                             ; preds = %6065
  br label %6067

6067:                                             ; preds = %6066
  br label %6068

6068:                                             ; preds = %6067
  br label %6069

6069:                                             ; preds = %6068
  %6070 = load i32, ptr @test_count, align 4, !tbaa !5
  %6071 = add nsw i32 %6070, 1
  store i32 %6071, ptr @test_count, align 4, !tbaa !5
  %6072 = load ptr, ptr %103, align 8, !tbaa !9
  %6073 = getelementptr inbounds %struct.s2n_connection, ptr %6072, i32 0, i32 33
  %6074 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %6073, i32 0, i32 4
  %6075 = load ptr, ptr %6074, align 8, !tbaa !48
  %6076 = getelementptr inbounds %struct.s2n_psk, ptr %6075, i32 0, i32 2
  %6077 = getelementptr inbounds %struct.s2n_blob, ptr %6076, i32 0, i32 0
  %6078 = load ptr, ptr %6077, align 8, !tbaa !56
  %6079 = call i32 @memcmp(ptr noundef %6078, ptr noundef @test_secret, i64 noundef 12) #13
  %6080 = icmp eq i32 %6079, 0
  br i1 %6080, label %6134, label %6081

6081:                                             ; preds = %6069
  br label %6082

6082:                                             ; preds = %6081
  br label %6083

6083:                                             ; preds = %6082
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %6084 = call ptr @__errno_location() #11
  %6085 = load i32, ptr %6084, align 4, !tbaa !5
  store i32 %6085, ptr %127, align 4, !tbaa !5
  %6086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6087 = call i32 @s2n_print_stacktrace(ptr noundef %6086)
  %6088 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6089 = trunc i8 %6088 to i1
  br i1 %6089, label %6090, label %6112

6090:                                             ; preds = %6083
  %6091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6092 = call i32 @fileno(ptr noundef %6091) #10
  %6093 = call i32 @isatty(i32 noundef %6092) #10
  %6094 = icmp ne i32 %6093, 0
  br i1 %6094, label %6095, label %6112

6095:                                             ; preds = %6090
  %6096 = load i32, ptr %127, align 4, !tbaa !5
  %6097 = call ptr @__errno_location() #11
  store i32 %6096, ptr %6097, align 4, !tbaa !5
  %6098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6099 = load i32, ptr @test_count, align 4, !tbaa !5
  %6100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6101 = load i32, ptr %6100, align 4, !tbaa !5
  %6102 = call ptr @s2n_strerror(i32 noundef %6101, ptr noundef @.str.4)
  %6103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6104 = load i32, ptr %6103, align 4, !tbaa !5
  %6105 = call ptr @s2n_strerror_debug(i32 noundef %6104, ptr noundef @.str.4)
  %6106 = call ptr @__errno_location() #11
  %6107 = load i32, ptr %6106, align 4, !tbaa !5
  %6108 = call ptr @strerror(i32 noundef %6107) #10
  %6109 = call ptr @__errno_location() #11
  %6110 = load i32, ptr %6109, align 4, !tbaa !5
  %6111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6098, ptr noundef @.str.2, i32 noundef %6099, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 295, ptr noundef %6102, ptr noundef %6105, ptr noundef %6108, i32 noundef %6110) #10
  br label %6129

6112:                                             ; preds = %6090, %6083
  %6113 = load i32, ptr %127, align 4, !tbaa !5
  %6114 = call ptr @__errno_location() #11
  store i32 %6113, ptr %6114, align 4, !tbaa !5
  %6115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6116 = load i32, ptr @test_count, align 4, !tbaa !5
  %6117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6118 = load i32, ptr %6117, align 4, !tbaa !5
  %6119 = call ptr @s2n_strerror(i32 noundef %6118, ptr noundef @.str.4)
  %6120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6121 = load i32, ptr %6120, align 4, !tbaa !5
  %6122 = call ptr @s2n_strerror_debug(i32 noundef %6121, ptr noundef @.str.4)
  %6123 = call ptr @__errno_location() #11
  %6124 = load i32, ptr %6123, align 4, !tbaa !5
  %6125 = call ptr @strerror(i32 noundef %6124) #10
  %6126 = call ptr @__errno_location() #11
  %6127 = load i32, ptr %6126, align 4, !tbaa !5
  %6128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6115, ptr noundef @.str.5, i32 noundef %6116, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 295, ptr noundef %6119, ptr noundef %6122, ptr noundef %6125, i32 noundef %6127) #10
  br label %6129

6129:                                             ; preds = %6112, %6095
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %6130

6130:                                             ; preds = %6129
  br label %6131

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

6132:                                             ; No predecessors!
  br label %6133

6133:                                             ; preds = %6132
  br label %6134

6134:                                             ; preds = %6133, %6069
  br label %6135

6135:                                             ; preds = %6134
  br label %6136

6136:                                             ; preds = %6135
  br label %6137

6137:                                             ; preds = %6136
  br label %6138

6138:                                             ; preds = %6137
  br label %6139

6139:                                             ; preds = %6138
  %6140 = load i32, ptr @test_count, align 4, !tbaa !5
  %6141 = add nsw i32 %6140, 1
  store i32 %6141, ptr @test_count, align 4, !tbaa !5
  %6142 = load ptr, ptr %103, align 8, !tbaa !9
  %6143 = getelementptr inbounds %struct.s2n_connection, ptr %6142, i32 0, i32 33
  %6144 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %6143, i32 0, i32 4
  %6145 = load ptr, ptr %6144, align 8, !tbaa !48
  %6146 = getelementptr inbounds %struct.s2n_psk, ptr %6145, i32 0, i32 3
  %6147 = load i32, ptr %6146, align 8, !tbaa !57
  %6148 = icmp eq i32 %6147, 5
  br i1 %6148, label %6202, label %6149

6149:                                             ; preds = %6139
  br label %6150

6150:                                             ; preds = %6149
  br label %6151

6151:                                             ; preds = %6150
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  %6152 = call ptr @__errno_location() #11
  %6153 = load i32, ptr %6152, align 4, !tbaa !5
  store i32 %6153, ptr %128, align 4, !tbaa !5
  %6154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6155 = call i32 @s2n_print_stacktrace(ptr noundef %6154)
  %6156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6157 = trunc i8 %6156 to i1
  br i1 %6157, label %6158, label %6180

6158:                                             ; preds = %6151
  %6159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6160 = call i32 @fileno(ptr noundef %6159) #10
  %6161 = call i32 @isatty(i32 noundef %6160) #10
  %6162 = icmp ne i32 %6161, 0
  br i1 %6162, label %6163, label %6180

6163:                                             ; preds = %6158
  %6164 = load i32, ptr %128, align 4, !tbaa !5
  %6165 = call ptr @__errno_location() #11
  store i32 %6164, ptr %6165, align 4, !tbaa !5
  %6166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6167 = load i32, ptr @test_count, align 4, !tbaa !5
  %6168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6169 = load i32, ptr %6168, align 4, !tbaa !5
  %6170 = call ptr @s2n_strerror(i32 noundef %6169, ptr noundef @.str.4)
  %6171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6172 = load i32, ptr %6171, align 4, !tbaa !5
  %6173 = call ptr @s2n_strerror_debug(i32 noundef %6172, ptr noundef @.str.4)
  %6174 = call ptr @__errno_location() #11
  %6175 = load i32, ptr %6174, align 4, !tbaa !5
  %6176 = call ptr @strerror(i32 noundef %6175) #10
  %6177 = call ptr @__errno_location() #11
  %6178 = load i32, ptr %6177, align 4, !tbaa !5
  %6179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6166, ptr noundef @.str.2, i32 noundef %6167, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6170, ptr noundef %6173, ptr noundef %6176, i32 noundef %6178) #10
  br label %6197

6180:                                             ; preds = %6158, %6151
  %6181 = load i32, ptr %128, align 4, !tbaa !5
  %6182 = call ptr @__errno_location() #11
  store i32 %6181, ptr %6182, align 4, !tbaa !5
  %6183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6184 = load i32, ptr @test_count, align 4, !tbaa !5
  %6185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6186 = load i32, ptr %6185, align 4, !tbaa !5
  %6187 = call ptr @s2n_strerror(i32 noundef %6186, ptr noundef @.str.4)
  %6188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6189 = load i32, ptr %6188, align 4, !tbaa !5
  %6190 = call ptr @s2n_strerror_debug(i32 noundef %6189, ptr noundef @.str.4)
  %6191 = call ptr @__errno_location() #11
  %6192 = load i32, ptr %6191, align 4, !tbaa !5
  %6193 = call ptr @strerror(i32 noundef %6192) #10
  %6194 = call ptr @__errno_location() #11
  %6195 = load i32, ptr %6194, align 4, !tbaa !5
  %6196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6183, ptr noundef @.str.5, i32 noundef %6184, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6187, ptr noundef %6190, ptr noundef %6193, i32 noundef %6195) #10
  br label %6197

6197:                                             ; preds = %6180, %6163
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %6198

6198:                                             ; preds = %6197
  br label %6199

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

6200:                                             ; No predecessors!
  br label %6201

6201:                                             ; preds = %6200
  br label %6202

6202:                                             ; preds = %6201, %6139
  br label %6203

6203:                                             ; preds = %6202
  br label %6204

6204:                                             ; preds = %6203
  br label %6205

6205:                                             ; preds = %6204
  %6206 = load i32, ptr @test_count, align 4, !tbaa !5
  %6207 = add nsw i32 %6206, 1
  store i32 %6207, ptr @test_count, align 4, !tbaa !5
  %6208 = load ptr, ptr %104, align 8, !tbaa !9
  %6209 = call i32 @s2n_connection_free(ptr noundef %6208)
  %6210 = icmp eq i32 %6209, -1
  br i1 %6210, label %6211, label %6264

6211:                                             ; preds = %6205
  br label %6212

6212:                                             ; preds = %6211
  br label %6213

6213:                                             ; preds = %6212
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %6214 = call ptr @__errno_location() #11
  %6215 = load i32, ptr %6214, align 4, !tbaa !5
  store i32 %6215, ptr %129, align 4, !tbaa !5
  %6216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6217 = call i32 @s2n_print_stacktrace(ptr noundef %6216)
  %6218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6219 = trunc i8 %6218 to i1
  br i1 %6219, label %6220, label %6242

6220:                                             ; preds = %6213
  %6221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6222 = call i32 @fileno(ptr noundef %6221) #10
  %6223 = call i32 @isatty(i32 noundef %6222) #10
  %6224 = icmp ne i32 %6223, 0
  br i1 %6224, label %6225, label %6242

6225:                                             ; preds = %6220
  %6226 = load i32, ptr %129, align 4, !tbaa !5
  %6227 = call ptr @__errno_location() #11
  store i32 %6226, ptr %6227, align 4, !tbaa !5
  %6228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6229 = load i32, ptr @test_count, align 4, !tbaa !5
  %6230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6231 = load i32, ptr %6230, align 4, !tbaa !5
  %6232 = call ptr @s2n_strerror(i32 noundef %6231, ptr noundef @.str.4)
  %6233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6234 = load i32, ptr %6233, align 4, !tbaa !5
  %6235 = call ptr @s2n_strerror_debug(i32 noundef %6234, ptr noundef @.str.4)
  %6236 = call ptr @__errno_location() #11
  %6237 = load i32, ptr %6236, align 4, !tbaa !5
  %6238 = call ptr @strerror(i32 noundef %6237) #10
  %6239 = call ptr @__errno_location() #11
  %6240 = load i32, ptr %6239, align 4, !tbaa !5
  %6241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6228, ptr noundef @.str.2, i32 noundef %6229, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 298, ptr noundef %6232, ptr noundef %6235, ptr noundef %6238, i32 noundef %6240) #10
  br label %6259

6242:                                             ; preds = %6220, %6213
  %6243 = load i32, ptr %129, align 4, !tbaa !5
  %6244 = call ptr @__errno_location() #11
  store i32 %6243, ptr %6244, align 4, !tbaa !5
  %6245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6246 = load i32, ptr @test_count, align 4, !tbaa !5
  %6247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  %6249 = call ptr @s2n_strerror(i32 noundef %6248, ptr noundef @.str.4)
  %6250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6251 = load i32, ptr %6250, align 4, !tbaa !5
  %6252 = call ptr @s2n_strerror_debug(i32 noundef %6251, ptr noundef @.str.4)
  %6253 = call ptr @__errno_location() #11
  %6254 = load i32, ptr %6253, align 4, !tbaa !5
  %6255 = call ptr @strerror(i32 noundef %6254) #10
  %6256 = call ptr @__errno_location() #11
  %6257 = load i32, ptr %6256, align 4, !tbaa !5
  %6258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6245, ptr noundef @.str.5, i32 noundef %6246, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 298, ptr noundef %6249, ptr noundef %6252, ptr noundef %6255, i32 noundef %6257) #10
  br label %6259

6259:                                             ; preds = %6242, %6225
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %6260

6260:                                             ; preds = %6259
  br label %6261

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

6262:                                             ; No predecessors!
  br label %6263

6263:                                             ; preds = %6262
  br label %6264

6264:                                             ; preds = %6263, %6205
  br label %6265

6265:                                             ; preds = %6264
  br label %6266

6266:                                             ; preds = %6265
  br label %6267

6267:                                             ; preds = %6266
  %6268 = load i32, ptr @test_count, align 4, !tbaa !5
  %6269 = add nsw i32 %6268, 1
  store i32 %6269, ptr @test_count, align 4, !tbaa !5
  %6270 = load ptr, ptr %103, align 8, !tbaa !9
  %6271 = call i32 @s2n_connection_free(ptr noundef %6270)
  %6272 = icmp eq i32 %6271, -1
  br i1 %6272, label %6273, label %6326

6273:                                             ; preds = %6267
  br label %6274

6274:                                             ; preds = %6273
  br label %6275

6275:                                             ; preds = %6274
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %6276 = call ptr @__errno_location() #11
  %6277 = load i32, ptr %6276, align 4, !tbaa !5
  store i32 %6277, ptr %130, align 4, !tbaa !5
  %6278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6279 = call i32 @s2n_print_stacktrace(ptr noundef %6278)
  %6280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6281 = trunc i8 %6280 to i1
  br i1 %6281, label %6282, label %6304

6282:                                             ; preds = %6275
  %6283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6284 = call i32 @fileno(ptr noundef %6283) #10
  %6285 = call i32 @isatty(i32 noundef %6284) #10
  %6286 = icmp ne i32 %6285, 0
  br i1 %6286, label %6287, label %6304

6287:                                             ; preds = %6282
  %6288 = load i32, ptr %130, align 4, !tbaa !5
  %6289 = call ptr @__errno_location() #11
  store i32 %6288, ptr %6289, align 4, !tbaa !5
  %6290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6291 = load i32, ptr @test_count, align 4, !tbaa !5
  %6292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6293 = load i32, ptr %6292, align 4, !tbaa !5
  %6294 = call ptr @s2n_strerror(i32 noundef %6293, ptr noundef @.str.4)
  %6295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6296 = load i32, ptr %6295, align 4, !tbaa !5
  %6297 = call ptr @s2n_strerror_debug(i32 noundef %6296, ptr noundef @.str.4)
  %6298 = call ptr @__errno_location() #11
  %6299 = load i32, ptr %6298, align 4, !tbaa !5
  %6300 = call ptr @strerror(i32 noundef %6299) #10
  %6301 = call ptr @__errno_location() #11
  %6302 = load i32, ptr %6301, align 4, !tbaa !5
  %6303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6290, ptr noundef @.str.2, i32 noundef %6291, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 299, ptr noundef %6294, ptr noundef %6297, ptr noundef %6300, i32 noundef %6302) #10
  br label %6321

6304:                                             ; preds = %6282, %6275
  %6305 = load i32, ptr %130, align 4, !tbaa !5
  %6306 = call ptr @__errno_location() #11
  store i32 %6305, ptr %6306, align 4, !tbaa !5
  %6307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6308 = load i32, ptr @test_count, align 4, !tbaa !5
  %6309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6310 = load i32, ptr %6309, align 4, !tbaa !5
  %6311 = call ptr @s2n_strerror(i32 noundef %6310, ptr noundef @.str.4)
  %6312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6313 = load i32, ptr %6312, align 4, !tbaa !5
  %6314 = call ptr @s2n_strerror_debug(i32 noundef %6313, ptr noundef @.str.4)
  %6315 = call ptr @__errno_location() #11
  %6316 = load i32, ptr %6315, align 4, !tbaa !5
  %6317 = call ptr @strerror(i32 noundef %6316) #10
  %6318 = call ptr @__errno_location() #11
  %6319 = load i32, ptr %6318, align 4, !tbaa !5
  %6320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6307, ptr noundef @.str.5, i32 noundef %6308, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 299, ptr noundef %6311, ptr noundef %6314, ptr noundef %6317, i32 noundef %6319) #10
  br label %6321

6321:                                             ; preds = %6304, %6287
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %6322

6322:                                             ; preds = %6321
  br label %6323

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

6324:                                             ; No predecessors!
  br label %6325

6325:                                             ; preds = %6324
  br label %6326

6326:                                             ; preds = %6325, %6267
  br label %6327

6327:                                             ; preds = %6326
  br label %6328

6328:                                             ; preds = %6327
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #10
  br label %6329

6329:                                             ; preds = %6328, %4698
  br label %6330

6330:                                             ; preds = %6329
  br label %6331

6331:                                             ; preds = %6330
  %6332 = call i32 @s2n_cleanup()
  %6333 = icmp eq i32 %6332, -1
  br i1 %6333, label %6334, label %6385

6334:                                             ; preds = %6331
  br label %6335

6335:                                             ; preds = %6334
  br label %6336

6336:                                             ; preds = %6335
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %6337 = call ptr @__errno_location() #11
  %6338 = load i32, ptr %6337, align 4, !tbaa !5
  store i32 %6338, ptr %131, align 4, !tbaa !5
  %6339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6340 = call i32 @s2n_print_stacktrace(ptr noundef %6339)
  %6341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6342 = trunc i8 %6341 to i1
  br i1 %6342, label %6343, label %6365

6343:                                             ; preds = %6336
  %6344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6345 = call i32 @fileno(ptr noundef %6344) #10
  %6346 = call i32 @isatty(i32 noundef %6345) #10
  %6347 = icmp ne i32 %6346, 0
  br i1 %6347, label %6348, label %6365

6348:                                             ; preds = %6343
  %6349 = load i32, ptr %131, align 4, !tbaa !5
  %6350 = call ptr @__errno_location() #11
  store i32 %6349, ptr %6350, align 4, !tbaa !5
  %6351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6352 = load i32, ptr @test_count, align 4, !tbaa !5
  %6353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6354 = load i32, ptr %6353, align 4, !tbaa !5
  %6355 = call ptr @s2n_strerror(i32 noundef %6354, ptr noundef @.str.4)
  %6356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6357 = load i32, ptr %6356, align 4, !tbaa !5
  %6358 = call ptr @s2n_strerror_debug(i32 noundef %6357, ptr noundef @.str.4)
  %6359 = call ptr @__errno_location() #11
  %6360 = load i32, ptr %6359, align 4, !tbaa !5
  %6361 = call ptr @strerror(i32 noundef %6360) #10
  %6362 = call ptr @__errno_location() #11
  %6363 = load i32, ptr %6362, align 4, !tbaa !5
  %6364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6351, ptr noundef @.str.2, i32 noundef %6352, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 302, ptr noundef %6355, ptr noundef %6358, ptr noundef %6361, i32 noundef %6363) #10
  br label %6382

6365:                                             ; preds = %6343, %6336
  %6366 = load i32, ptr %131, align 4, !tbaa !5
  %6367 = call ptr @__errno_location() #11
  store i32 %6366, ptr %6367, align 4, !tbaa !5
  %6368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6369 = load i32, ptr @test_count, align 4, !tbaa !5
  %6370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call ptr @s2n_strerror(i32 noundef %6371, ptr noundef @.str.4)
  %6373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call ptr @s2n_strerror_debug(i32 noundef %6374, ptr noundef @.str.4)
  %6376 = call ptr @__errno_location() #11
  %6377 = load i32, ptr %6376, align 4, !tbaa !5
  %6378 = call ptr @strerror(i32 noundef %6377) #10
  %6379 = call ptr @__errno_location() #11
  %6380 = load i32, ptr %6379, align 4, !tbaa !5
  %6381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6368, ptr noundef @.str.5, i32 noundef %6369, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 302, ptr noundef %6372, ptr noundef %6375, ptr noundef %6378, i32 noundef %6380) #10
  br label %6382

6382:                                             ; preds = %6365, %6348
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %6383

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

6384:                                             ; No predecessors!
  br label %6385

6385:                                             ; preds = %6384, %6331
  br label %6386

6386:                                             ; preds = %6385
  br label %6387

6387:                                             ; preds = %6386
  br label %6388

6388:                                             ; preds = %6387
  %6389 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %6390 = icmp eq i32 %6389, -1
  br i1 %6390, label %6391, label %6442

6391:                                             ; preds = %6388
  br label %6392

6392:                                             ; preds = %6391
  br label %6393

6393:                                             ; preds = %6392
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %6394 = call ptr @__errno_location() #11
  %6395 = load i32, ptr %6394, align 4, !tbaa !5
  store i32 %6395, ptr %132, align 4, !tbaa !5
  %6396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6397 = call i32 @s2n_print_stacktrace(ptr noundef %6396)
  %6398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6399 = trunc i8 %6398 to i1
  br i1 %6399, label %6400, label %6422

6400:                                             ; preds = %6393
  %6401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6402 = call i32 @fileno(ptr noundef %6401) #10
  %6403 = call i32 @isatty(i32 noundef %6402) #10
  %6404 = icmp ne i32 %6403, 0
  br i1 %6404, label %6405, label %6422

6405:                                             ; preds = %6400
  %6406 = load i32, ptr %132, align 4, !tbaa !5
  %6407 = call ptr @__errno_location() #11
  store i32 %6406, ptr %6407, align 4, !tbaa !5
  %6408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6409 = load i32, ptr @test_count, align 4, !tbaa !5
  %6410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call ptr @s2n_strerror(i32 noundef %6411, ptr noundef @.str.4)
  %6413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6414 = load i32, ptr %6413, align 4, !tbaa !5
  %6415 = call ptr @s2n_strerror_debug(i32 noundef %6414, ptr noundef @.str.4)
  %6416 = call ptr @__errno_location() #11
  %6417 = load i32, ptr %6416, align 4, !tbaa !5
  %6418 = call ptr @strerror(i32 noundef %6417) #10
  %6419 = call ptr @__errno_location() #11
  %6420 = load i32, ptr %6419, align 4, !tbaa !5
  %6421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6408, ptr noundef @.str.2, i32 noundef %6409, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 302, ptr noundef %6412, ptr noundef %6415, ptr noundef %6418, i32 noundef %6420) #10
  br label %6439

6422:                                             ; preds = %6400, %6393
  %6423 = load i32, ptr %132, align 4, !tbaa !5
  %6424 = call ptr @__errno_location() #11
  store i32 %6423, ptr %6424, align 4, !tbaa !5
  %6425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6426 = load i32, ptr @test_count, align 4, !tbaa !5
  %6427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6428 = load i32, ptr %6427, align 4, !tbaa !5
  %6429 = call ptr @s2n_strerror(i32 noundef %6428, ptr noundef @.str.4)
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror_debug(i32 noundef %6431, ptr noundef @.str.4)
  %6433 = call ptr @__errno_location() #11
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @strerror(i32 noundef %6434) #10
  %6436 = call ptr @__errno_location() #11
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6425, ptr noundef @.str.5, i32 noundef %6426, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 302, ptr noundef %6429, ptr noundef %6432, ptr noundef %6435, i32 noundef %6437) #10
  br label %6439

6439:                                             ; preds = %6422, %6405
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %6440

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

6441:                                             ; No predecessors!
  br label %6442

6442:                                             ; preds = %6441, %6388
  br label %6443

6443:                                             ; preds = %6442
  %6444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6445 = trunc i8 %6444 to i1
  br i1 %6445, label %6446, label %6462

6446:                                             ; preds = %6443
  %6447 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6448 = call i32 @fileno(ptr noundef %6447) #10
  %6449 = call i32 @isatty(i32 noundef %6448) #10
  %6450 = icmp ne i32 %6449, 0
  br i1 %6450, label %6451, label %6462

6451:                                             ; preds = %6446
  %6452 = load i32, ptr @test_count, align 4, !tbaa !5
  %6453 = icmp ne i32 %6452, 0
  br i1 %6453, label %6454, label %6458

6454:                                             ; preds = %6451
  %6455 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6456 = load i32, ptr @test_count, align 4, !tbaa !5
  %6457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6455, ptr noundef @.str.70, i32 noundef %6456) #10
  br label %6461

6458:                                             ; preds = %6451
  %6459 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6459, ptr noundef @.str.71) #10
  br label %6461

6461:                                             ; preds = %6458, %6454
  br label %6473

6462:                                             ; preds = %6446, %6443
  %6463 = load i32, ptr @test_count, align 4, !tbaa !5
  %6464 = icmp ne i32 %6463, 0
  br i1 %6464, label %6465, label %6469

6465:                                             ; preds = %6462
  %6466 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6467 = load i32, ptr @test_count, align 4, !tbaa !5
  %6468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6466, ptr noundef @.str.72, i32 noundef %6467) #10
  br label %6472

6469:                                             ; preds = %6462
  %6470 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6470, ptr noundef @.str.73) #10
  br label %6472

6472:                                             ; preds = %6469, %6465
  br label %6473

6473:                                             ; preds = %6472, %6461
  store i32 0, ptr %3, align 4
  br label %6475

6474:                                             ; No predecessors!
  br label %6475

6475:                                             ; preds = %6474, %6473
  %6476 = load i32, ptr %3, align 4
  ret i32 %6476
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

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

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

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_connection_free(ptr noundef) #2

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

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) #2

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

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #9

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_enable_tls13_in_test(...) #2

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

declare i32 @s2n_client_hello_send(ptr noundef) #2

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

declare i32 @s2n_client_hello_recv(ptr noundef) #2

declare i32 @s2n_server_hello_send(ptr noundef) #2

declare i32 @s2n_stuffer_wipe(ptr noundef) #2

declare i32 @s2n_server_hello_recv(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 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind willreturn memory(read) "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 }
attributes #13 = { nounwind willreturn memory(read) }

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


; 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_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_identity = external dso_local global [14 x i8], align 1
@test_secret = external dso_local global [12 x 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 [88 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 [72 x i8], align 1
@s2n_server_psk_extension = external constant %struct.s2n_extension_type, align 8
@.str.9 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [153 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

24:                                               ; preds = %17
  %25 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26 = tail call i32 @fileno(ptr noundef %25) #11
  %27 = tail call i32 @isatty(i32 noundef %26) #11
  %.not399 = icmp eq i32 %27, 0
  br i1 %.not399, label %28, label %29

28:                                               ; preds = %24, %17
  br label %29

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

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

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

53:                                               ; preds = %46
  %54 = load ptr, ptr @stderr, align 8, !tbaa !9
  %55 = tail call i32 @fileno(ptr noundef %54) #11
  %56 = tail call i32 @isatty(i32 noundef %55) #11
  %.not398 = icmp eq i32 %56, 0
  br i1 %.not398, label %57, label %58

57:                                               ; preds = %53, %46
  br label %58

58:                                               ; preds = %53, %57
  %.str.5.sink410 = phi ptr [ @.str.5, %57 ], [ @.str.2, %53 ]
  store i32 %48, ptr %47, align 4, !tbaa !5
  %59 = load ptr, ptr @stderr, align 8, !tbaa !9
  %60 = load i32, ptr @test_count, align 4, !tbaa !5
  %61 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %62 = load i32, ptr %61, align 4, !tbaa !5
  %63 = tail call ptr @s2n_strerror(i32 noundef %62, ptr noundef nonnull @.str.4) #11
  %64 = load i32, ptr %61, align 4, !tbaa !5
  %65 = tail call ptr @s2n_strerror_debug(i32 noundef %64, ptr noundef nonnull @.str.4) #11
  %66 = load i32, ptr %47, align 4, !tbaa !5
  %67 = tail call ptr @strerror(i32 noundef %66) #11
  %68 = load i32, ptr %47, align 4, !tbaa !5
  %69 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef nonnull %.str.5.sink410, i32 noundef %60, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %63, ptr noundef %65, ptr noundef %67, i32 noundef %68) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

70:                                               ; preds = %41
  %71 = tail call i32 @s2n_init() #11
  %72 = icmp eq i32 %71, -1
  br i1 %72, label %73, label %97

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

80:                                               ; preds = %73
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = tail call i32 @fileno(ptr noundef %81) #11
  %83 = tail call i32 @isatty(i32 noundef %82) #11
  %.not397 = icmp eq i32 %83, 0
  br i1 %.not397, label %84, label %85

84:                                               ; preds = %80, %73
  br label %85

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

97:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  store ptr null, ptr %3, align 8, !tbaa !9
  %98 = load i32, ptr @test_count, align 4, !tbaa !5
  %99 = add nsw i32 %98, 1
  store i32 %99, ptr @test_count, align 4, !tbaa !5
  %100 = tail call ptr @s2n_connection_new(i32 noundef 0) #11
  %101 = icmp eq ptr %100, null
  br i1 %101, label %102, label %126

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

109:                                              ; preds = %102
  %110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %111 = tail call i32 @fileno(ptr noundef %110) #11
  %112 = tail call i32 @isatty(i32 noundef %111) #11
  %.not396 = icmp eq i32 %112, 0
  br i1 %.not396, label %113, label %114

113:                                              ; preds = %109, %102
  br label %114

114:                                              ; preds = %109, %113
  %.str.5.sink432 = phi ptr [ @.str.5, %113 ], [ @.str.2, %109 ]
  store i32 %104, ptr %103, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = load i32, ptr @test_count, align 4, !tbaa !5
  %117 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = tail call ptr @s2n_strerror(i32 noundef %118, ptr noundef nonnull @.str.4) #11
  %120 = load i32, ptr %117, align 4, !tbaa !5
  %121 = tail call ptr @s2n_strerror_debug(i32 noundef %120, ptr noundef nonnull @.str.4) #11
  %122 = load i32, ptr %103, align 4, !tbaa !5
  %123 = tail call ptr @strerror(i32 noundef %122) #11
  %124 = load i32, ptr %103, align 4, !tbaa !5
  %125 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %115, ptr noundef nonnull %.str.5.sink432, i32 noundef %116, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %119, ptr noundef %121, ptr noundef %123, i32 noundef %124) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

126:                                              ; preds = %97
  %127 = load i32, ptr @test_count, align 4, !tbaa !5
  %128 = add nsw i32 %127, 1
  store i32 %128, ptr @test_count, align 4, !tbaa !5
  %129 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_psk_extension, i64 24), align 8, !tbaa !15
  %130 = tail call zeroext i1 %129(ptr noundef null) #11
  br i1 %130, label %131, label %155

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

138:                                              ; preds = %131
  %139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %140 = tail call i32 @fileno(ptr noundef %139) #11
  %141 = tail call i32 @isatty(i32 noundef %140) #11
  %.not395 = icmp eq i32 %141, 0
  br i1 %.not395, label %142, label %143

142:                                              ; preds = %138, %131
  br label %143

143:                                              ; preds = %138, %142
  %.str.5.sink443 = phi ptr [ @.str.5, %142 ], [ @.str.2, %138 ]
  store i32 %133, ptr %132, align 4, !tbaa !5
  %144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %145 = load i32, ptr @test_count, align 4, !tbaa !5
  %146 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %147 = load i32, ptr %146, align 4, !tbaa !5
  %148 = tail call ptr @s2n_strerror(i32 noundef %147, ptr noundef nonnull @.str.4) #11
  %149 = load i32, ptr %146, align 4, !tbaa !5
  %150 = tail call ptr @s2n_strerror_debug(i32 noundef %149, ptr noundef nonnull @.str.4) #11
  %151 = load i32, ptr %132, align 4, !tbaa !5
  %152 = tail call ptr @strerror(i32 noundef %151) #11
  %153 = load i32, ptr %132, align 4, !tbaa !5
  %154 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %144, ptr noundef nonnull %.str.5.sink443, i32 noundef %145, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %148, ptr noundef %150, ptr noundef %152, i32 noundef %153) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

155:                                              ; preds = %126
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr @test_count, align 4, !tbaa !5
  %158 = getelementptr inbounds i8, ptr %100, i64 1696
  %159 = call i32 @s2n_array_pushback(ptr noundef nonnull %158, ptr noundef nonnull %3) #11
  %160 = call zeroext i1 @s2n_result_is_ok(i32 %159)
  br i1 %160, label %185, label %161

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

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

172:                                              ; preds = %168, %161
  br label %173

173:                                              ; preds = %168, %172
  %.str.5.sink454 = phi ptr [ @.str.5, %172 ], [ @.str.2, %168 ]
  store i32 %163, ptr %162, align 4, !tbaa !5
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = load i32, ptr @test_count, align 4, !tbaa !5
  %176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call ptr @s2n_strerror(i32 noundef %177, ptr noundef nonnull @.str.4) #11
  %179 = load i32, ptr %176, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror_debug(i32 noundef %179, ptr noundef nonnull @.str.4) #11
  %181 = load i32, ptr %162, align 4, !tbaa !5
  %182 = call ptr @strerror(i32 noundef %181) #11
  %183 = load i32, ptr %162, align 4, !tbaa !5
  %184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %174, ptr noundef nonnull %.str.5.sink454, i32 noundef %175, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %178, ptr noundef %180, ptr noundef %182, i32 noundef %183) #13
  call void @exit(i32 noundef 1) #14
  unreachable

185:                                              ; preds = %155
  %186 = load i32, ptr @test_count, align 4, !tbaa !5
  %187 = add nsw i32 %186, 1
  store i32 %187, ptr @test_count, align 4, !tbaa !5
  %188 = call zeroext i1 %129(ptr noundef nonnull %100) #11
  br i1 %188, label %189, label %213

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

196:                                              ; preds = %189
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = call i32 @fileno(ptr noundef %197) #11
  %199 = call i32 @isatty(i32 noundef %198) #11
  %.not394 = icmp eq i32 %199, 0
  br i1 %.not394, label %200, label %201

200:                                              ; preds = %196, %189
  br label %201

201:                                              ; preds = %196, %200
  %.str.5.sink465 = phi ptr [ @.str.5, %200 ], [ @.str.2, %196 ]
  store i32 %191, ptr %190, align 4, !tbaa !5
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = load i32, ptr @test_count, align 4, !tbaa !5
  %204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = call ptr @s2n_strerror(i32 noundef %205, ptr noundef nonnull @.str.4) #11
  %207 = load i32, ptr %204, align 4, !tbaa !5
  %208 = call ptr @s2n_strerror_debug(i32 noundef %207, ptr noundef nonnull @.str.4) #11
  %209 = load i32, ptr %190, align 4, !tbaa !5
  %210 = call ptr @strerror(i32 noundef %209) #11
  %211 = load i32, ptr %190, align 4, !tbaa !5
  %212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %202, ptr noundef nonnull %.str.5.sink465, i32 noundef %203, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %206, ptr noundef %208, ptr noundef %210, i32 noundef %211) #13
  call void @exit(i32 noundef 1) #14
  unreachable

213:                                              ; preds = %185
  %214 = getelementptr inbounds i8, ptr %100, i64 1730
  store i16 0, ptr %214, align 2, !tbaa !18
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = add nsw i32 %215, 1
  store i32 %216, ptr @test_count, align 4, !tbaa !5
  %217 = getelementptr inbounds i8, ptr %100, i64 1736
  %218 = call i32 @s2n_array_get(ptr noundef nonnull %158, i32 noundef 0, ptr noundef nonnull %217) #11
  %219 = call zeroext i1 @s2n_result_is_ok(i32 %218)
  br i1 %219, label %244, label %220

220:                                              ; preds = %213
  %221 = tail call ptr @__errno_location() #12
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = call i32 @s2n_print_stacktrace(ptr noundef %223) #11
  %225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %226 = trunc nuw i8 %225 to i1
  br i1 %226, label %227, label %231

227:                                              ; preds = %220
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = call i32 @fileno(ptr noundef %228) #11
  %230 = call i32 @isatty(i32 noundef %229) #11
  %.not297 = icmp eq i32 %230, 0
  br i1 %.not297, label %231, label %232

231:                                              ; preds = %227, %220
  br label %232

232:                                              ; preds = %227, %231
  %.str.5.sink476 = phi ptr [ @.str.5, %231 ], [ @.str.2, %227 ]
  store i32 %222, ptr %221, align 4, !tbaa !5
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = load i32, ptr @test_count, align 4, !tbaa !5
  %235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call ptr @s2n_strerror(i32 noundef %236, ptr noundef nonnull @.str.4) #11
  %238 = load i32, ptr %235, align 4, !tbaa !5
  %239 = call ptr @s2n_strerror_debug(i32 noundef %238, ptr noundef nonnull @.str.4) #11
  %240 = load i32, ptr %221, align 4, !tbaa !5
  %241 = call ptr @strerror(i32 noundef %240) #11
  %242 = load i32, ptr %221, align 4, !tbaa !5
  %243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %233, ptr noundef nonnull %.str.5.sink476, i32 noundef %234, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %237, ptr noundef %239, ptr noundef %241, i32 noundef %242) #13
  call void @exit(i32 noundef 1) #14
  unreachable

244:                                              ; preds = %213
  %245 = load i32, ptr @test_count, align 4, !tbaa !5
  %246 = add nsw i32 %245, 1
  store i32 %246, ptr @test_count, align 4, !tbaa !5
  %247 = call zeroext i1 %129(ptr noundef nonnull %100) #11
  br i1 %247, label %272, label %248

248:                                              ; preds = %244
  %249 = tail call ptr @__errno_location() #12
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = call i32 @s2n_print_stacktrace(ptr noundef %251) #11
  %253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %254 = trunc nuw i8 %253 to i1
  br i1 %254, label %255, label %259

255:                                              ; preds = %248
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @fileno(ptr noundef %256) #11
  %258 = call i32 @isatty(i32 noundef %257) #11
  %.not298 = icmp eq i32 %258, 0
  br i1 %.not298, label %259, label %260

259:                                              ; preds = %255, %248
  br label %260

260:                                              ; preds = %255, %259
  %.str.5.sink487 = phi ptr [ @.str.5, %259 ], [ @.str.2, %255 ]
  store i32 %250, ptr %249, align 4, !tbaa !5
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = call ptr @s2n_strerror(i32 noundef %264, ptr noundef nonnull @.str.4) #11
  %266 = load i32, ptr %263, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror_debug(i32 noundef %266, ptr noundef nonnull @.str.4) #11
  %268 = load i32, ptr %249, align 4, !tbaa !5
  %269 = call ptr @strerror(i32 noundef %268) #11
  %270 = load i32, ptr %249, align 4, !tbaa !5
  %271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %261, ptr noundef nonnull %.str.5.sink487, i32 noundef %262, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %265, ptr noundef %267, ptr noundef %269, i32 noundef %270) #13
  call void @exit(i32 noundef 1) #14
  unreachable

272:                                              ; preds = %244
  %273 = load i32, ptr @test_count, align 4, !tbaa !5
  %274 = add nsw i32 %273, 1
  store i32 %274, ptr @test_count, align 4, !tbaa !5
  %275 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %100) #11
  %276 = icmp eq i32 %275, -1
  br i1 %276, label %277, label %301

277:                                              ; preds = %272
  %278 = tail call ptr @__errno_location() #12
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @s2n_print_stacktrace(ptr noundef %280) #11
  %282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %283 = trunc nuw i8 %282 to i1
  br i1 %283, label %284, label %288

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

288:                                              ; preds = %284, %277
  br label %289

289:                                              ; preds = %284, %288
  %.str.5.sink498 = phi ptr [ @.str.5, %288 ], [ @.str.2, %284 ]
  store i32 %279, ptr %278, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call ptr @s2n_strerror(i32 noundef %293, ptr noundef nonnull @.str.4) #11
  %295 = load i32, ptr %292, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror_debug(i32 noundef %295, ptr noundef nonnull @.str.4) #11
  %297 = load i32, ptr %278, align 4, !tbaa !5
  %298 = call ptr @strerror(i32 noundef %297) #11
  %299 = load i32, ptr %278, align 4, !tbaa !5
  %300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef nonnull %.str.5.sink498, i32 noundef %291, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %294, ptr noundef %296, ptr noundef %298, i32 noundef %299) #13
  call void @exit(i32 noundef 1) #14
  unreachable

301:                                              ; preds = %272
  %302 = getelementptr inbounds i8, ptr %100, i64 220
  store i8 33, ptr %302, align 4, !tbaa !44
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = add nsw i32 %303, 1
  store i32 %304, ptr @test_count, align 4, !tbaa !5
  %305 = call i32 @s2n_extension_send(ptr noundef nonnull @s2n_server_psk_extension, ptr noundef nonnull %100, ptr noundef null) #11
  %306 = icmp eq i32 %305, -1
  br i1 %306, label %307, label %331

307:                                              ; preds = %301
  %308 = tail call ptr @__errno_location() #12
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = call i32 @s2n_print_stacktrace(ptr noundef %310) #11
  %312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %313 = trunc nuw i8 %312 to i1
  br i1 %313, label %314, label %318

314:                                              ; preds = %307
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = call i32 @fileno(ptr noundef %315) #11
  %317 = call i32 @isatty(i32 noundef %316) #11
  %.not392 = icmp eq i32 %317, 0
  br i1 %.not392, label %318, label %319

318:                                              ; preds = %314, %307
  br label %319

319:                                              ; preds = %314, %318
  %.str.5.sink509 = phi ptr [ @.str.5, %318 ], [ @.str.2, %314 ]
  store i32 %309, ptr %308, align 4, !tbaa !5
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = call ptr @s2n_strerror(i32 noundef %323, ptr noundef nonnull @.str.4) #11
  %325 = load i32, ptr %322, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror_debug(i32 noundef %325, ptr noundef nonnull @.str.4) #11
  %327 = load i32, ptr %308, align 4, !tbaa !5
  %328 = call ptr @strerror(i32 noundef %327) #11
  %329 = load i32, ptr %308, align 4, !tbaa !5
  %330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %320, ptr noundef nonnull %.str.5.sink509, i32 noundef %321, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %324, ptr noundef %326, ptr noundef %328, i32 noundef %329) #13
  call void @exit(i32 noundef 1) #14
  unreachable

331:                                              ; preds = %301
  store i8 34, ptr %302, align 4, !tbaa !44
  %332 = load i32, ptr @test_count, align 4, !tbaa !5
  %333 = add nsw i32 %332, 1
  store i32 %333, ptr @test_count, align 4, !tbaa !5
  %334 = call i32 @s2n_extension_send(ptr noundef nonnull @s2n_server_psk_extension, ptr noundef nonnull %100, ptr noundef null) #11
  %335 = icmp eq i32 %334, -1
  br i1 %335, label %360, label %336

336:                                              ; preds = %331
  %337 = tail call ptr @__errno_location() #12
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @s2n_print_stacktrace(ptr noundef %339) #11
  %341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %342 = trunc nuw i8 %341 to i1
  br i1 %342, label %343, label %347

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

347:                                              ; preds = %343, %336
  br label %348

348:                                              ; preds = %343, %347
  %.str.5.sink520 = phi ptr [ @.str.5, %347 ], [ @.str.2, %343 ]
  store i32 %338, ptr %337, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @s2n_strerror(i32 noundef %352, ptr noundef nonnull @.str.4) #11
  %354 = load i32, ptr %351, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror_debug(i32 noundef %354, ptr noundef nonnull @.str.4) #11
  %356 = load i32, ptr %337, align 4, !tbaa !5
  %357 = call ptr @strerror(i32 noundef %356) #11
  %358 = load i32, ptr %337, align 4, !tbaa !5
  %359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %349, ptr noundef nonnull %.str.5.sink520, i32 noundef %350, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %353, ptr noundef %355, ptr noundef %357, i32 noundef %358) #13
  call void @exit(i32 noundef 1) #14
  unreachable

360:                                              ; preds = %331
  %361 = load i32, ptr @test_count, align 4, !tbaa !5
  %362 = add nsw i32 %361, 1
  store i32 %362, ptr @test_count, align 4, !tbaa !5
  %363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = icmp eq i32 %364, 0
  br i1 %365, label %366, label %389

366:                                              ; preds = %360
  %367 = tail call ptr @__errno_location() #12
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = call i32 @s2n_print_stacktrace(ptr noundef %369) #11
  %371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %372 = trunc nuw i8 %371 to i1
  br i1 %372, label %373, label %377

373:                                              ; preds = %366
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = call i32 @fileno(ptr noundef %374) #11
  %376 = call i32 @isatty(i32 noundef %375) #11
  %.not391 = icmp eq i32 %376, 0
  br i1 %.not391, label %377, label %378

377:                                              ; preds = %373, %366
  br label %378

378:                                              ; preds = %373, %377
  %.str.5.sink531 = phi ptr [ @.str.5, %377 ], [ @.str.2, %373 ]
  store i32 %368, ptr %367, align 4, !tbaa !5
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = load i32, ptr @test_count, align 4, !tbaa !5
  %381 = load i32, ptr %363, align 4, !tbaa !5
  %382 = call ptr @s2n_strerror(i32 noundef %381, ptr noundef nonnull @.str.4) #11
  %383 = load i32, ptr %363, align 4, !tbaa !5
  %384 = call ptr @s2n_strerror_debug(i32 noundef %383, ptr noundef nonnull @.str.4) #11
  %385 = load i32, ptr %367, align 4, !tbaa !5
  %386 = call ptr @strerror(i32 noundef %385) #11
  %387 = load i32, ptr %367, align 4, !tbaa !5
  %388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %379, ptr noundef nonnull %.str.5.sink531, i32 noundef %380, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %382, ptr noundef %384, ptr noundef %386, i32 noundef %387) #13
  call void @exit(i32 noundef 1) #14
  unreachable

389:                                              ; preds = %360
  %390 = add nsw i32 %361, 2
  store i32 %390, ptr @test_count, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror_debug(i32 noundef %364, ptr noundef nonnull @.str.4) #11
  %392 = icmp eq ptr %391, null
  br i1 %392, label %393, label %416

393:                                              ; preds = %389
  %394 = tail call ptr @__errno_location() #12
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = call i32 @s2n_print_stacktrace(ptr noundef %396) #11
  %398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %399 = trunc nuw i8 %398 to i1
  br i1 %399, label %400, label %404

400:                                              ; preds = %393
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = call i32 @fileno(ptr noundef %401) #11
  %403 = call i32 @isatty(i32 noundef %402) #11
  %.not390 = icmp eq i32 %403, 0
  br i1 %.not390, label %404, label %405

404:                                              ; preds = %400, %393
  br label %405

405:                                              ; preds = %400, %404
  %.str.5.sink540 = phi ptr [ @.str.5, %404 ], [ @.str.2, %400 ]
  store i32 %395, ptr %394, align 4, !tbaa !5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = load i32, ptr @test_count, align 4, !tbaa !5
  %408 = load i32, ptr %363, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror(i32 noundef %408, ptr noundef nonnull @.str.4) #11
  %410 = load i32, ptr %363, align 4, !tbaa !5
  %411 = call ptr @s2n_strerror_debug(i32 noundef %410, ptr noundef nonnull @.str.4) #11
  %412 = load i32, ptr %394, align 4, !tbaa !5
  %413 = call ptr @strerror(i32 noundef %412) #11
  %414 = load i32, ptr %394, align 4, !tbaa !5
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %406, ptr noundef nonnull %.str.5.sink540, i32 noundef %407, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %409, ptr noundef %411, ptr noundef %413, i32 noundef %414) #13
  call void @exit(i32 noundef 1) #14
  unreachable

416:                                              ; preds = %389
  store i32 0, ptr %363, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %417 = tail call ptr @__errno_location() #12
  store i32 0, ptr %417, align 4, !tbaa !5
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = add nsw i32 %418, 1
  store i32 %419, ptr @test_count, align 4, !tbaa !5
  %420 = call i32 @s2n_connection_free(ptr noundef nonnull %100) #11
  %421 = icmp eq i32 %420, -1
  br i1 %421, label %422, label %444

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

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

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

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

444:                                              ; preds = %416
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %4, i8 0, i64 40, i1 false)
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr @test_count, align 4, !tbaa !5
  %447 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %4, i32 noundef 0) #11
  %448 = icmp eq i32 %447, -1
  br i1 %448, label %449, label %471

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

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

459:                                              ; preds = %455, %449
  br label %460

460:                                              ; preds = %455, %459
  %.str.5.sink558 = phi ptr [ @.str.5, %459 ], [ @.str.2, %455 ]
  store i32 %450, ptr %417, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %463 = load i32, ptr %363, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror(i32 noundef %463, ptr noundef nonnull @.str.4) #11
  %465 = load i32, ptr %363, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror_debug(i32 noundef %465, ptr noundef nonnull @.str.4) #11
  %467 = load i32, ptr %417, align 4, !tbaa !5
  %468 = call ptr @strerror(i32 noundef %467) #11
  %469 = load i32, ptr %417, align 4, !tbaa !5
  %470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %461, ptr noundef nonnull %.str.5.sink558, i32 noundef %462, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %464, ptr noundef %466, ptr noundef %468, i32 noundef %469) #13
  call void @exit(i32 noundef 1) #14
  unreachable

471:                                              ; preds = %444
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr @test_count, align 4, !tbaa !5
  %474 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %475 = icmp eq ptr %474, null
  br i1 %475, label %476, label %498

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

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

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

487:                                              ; preds = %482, %486
  %.str.5.sink567 = phi ptr [ @.str.5, %486 ], [ @.str.2, %482 ]
  store i32 %477, ptr %417, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = load i32, ptr %363, align 4, !tbaa !5
  %491 = call ptr @s2n_strerror(i32 noundef %490, ptr noundef nonnull @.str.4) #11
  %492 = load i32, ptr %363, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror_debug(i32 noundef %492, ptr noundef nonnull @.str.4) #11
  %494 = load i32, ptr %417, align 4, !tbaa !5
  %495 = call ptr @strerror(i32 noundef %494) #11
  %496 = load i32, ptr %417, align 4, !tbaa !5
  %497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %488, ptr noundef nonnull %.str.5.sink567, i32 noundef %489, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %491, ptr noundef %493, ptr noundef %495, i32 noundef %496) #13
  call void @exit(i32 noundef 1) #14
  unreachable

498:                                              ; preds = %471
  %499 = load i32, ptr @test_count, align 4, !tbaa !5
  %500 = add nsw i32 %499, 1
  store i32 %500, ptr @test_count, align 4, !tbaa !5
  %501 = call i32 @setup_server_psks(ptr noundef nonnull %474)
  %502 = call zeroext i1 @s2n_result_is_ok(i32 %501)
  br i1 %502, label %525, label %503

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

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

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

514:                                              ; preds = %509, %513
  %.str.5.sink576 = phi ptr [ @.str.5, %513 ], [ @.str.2, %509 ]
  store i32 %504, ptr %417, align 4, !tbaa !5
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = load i32, ptr @test_count, align 4, !tbaa !5
  %517 = load i32, ptr %363, align 4, !tbaa !5
  %518 = call ptr @s2n_strerror(i32 noundef %517, ptr noundef nonnull @.str.4) #11
  %519 = load i32, ptr %363, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror_debug(i32 noundef %519, ptr noundef nonnull @.str.4) #11
  %521 = load i32, ptr %417, align 4, !tbaa !5
  %522 = call ptr @strerror(i32 noundef %521) #11
  %523 = load i32, ptr %417, align 4, !tbaa !5
  %524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %515, ptr noundef nonnull %.str.5.sink576, i32 noundef %516, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %518, ptr noundef %520, ptr noundef %522, i32 noundef %523) #13
  call void @exit(i32 noundef 1) #14
  unreachable

525:                                              ; preds = %498
  %526 = getelementptr inbounds i8, ptr %474, i64 1730
  store i16 1, ptr %526, align 2, !tbaa !18
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = add nsw i32 %527, 1
  store i32 %528, ptr @test_count, align 4, !tbaa !5
  %529 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_psk_extension, i64 8), align 8, !tbaa !45
  %530 = call i32 %529(ptr noundef nonnull %474, ptr noundef nonnull %4) #11
  %531 = icmp eq i32 %530, -1
  br i1 %531, label %532, label %554

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

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

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

543:                                              ; preds = %538, %542
  %.str.5.sink585 = phi ptr [ @.str.5, %542 ], [ @.str.2, %538 ]
  store i32 %533, ptr %417, align 4, !tbaa !5
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = load i32, ptr @test_count, align 4, !tbaa !5
  %546 = load i32, ptr %363, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror(i32 noundef %546, ptr noundef nonnull @.str.4) #11
  %548 = load i32, ptr %363, align 4, !tbaa !5
  %549 = call ptr @s2n_strerror_debug(i32 noundef %548, ptr noundef nonnull @.str.4) #11
  %550 = load i32, ptr %417, align 4, !tbaa !5
  %551 = call ptr @strerror(i32 noundef %550) #11
  %552 = load i32, ptr %417, align 4, !tbaa !5
  %553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %544, ptr noundef nonnull %.str.5.sink585, i32 noundef %545, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %547, ptr noundef %549, ptr noundef %551, i32 noundef %552) #13
  call void @exit(i32 noundef 1) #14
  unreachable

554:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #11
  store i16 0, ptr %5, align 2, !tbaa !46
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = add nsw i32 %555, 1
  store i32 %556, ptr @test_count, align 4, !tbaa !5
  %557 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %4, ptr noundef nonnull %5) #11
  %558 = icmp eq i32 %557, -1
  br i1 %558, label %559, label %581

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

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

569:                                              ; preds = %565, %559
  br label %570

570:                                              ; preds = %565, %569
  %.str.5.sink594 = phi ptr [ @.str.5, %569 ], [ @.str.2, %565 ]
  store i32 %560, ptr %417, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = load i32, ptr @test_count, align 4, !tbaa !5
  %573 = load i32, ptr %363, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror(i32 noundef %573, ptr noundef nonnull @.str.4) #11
  %575 = load i32, ptr %363, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror_debug(i32 noundef %575, ptr noundef nonnull @.str.4) #11
  %577 = load i32, ptr %417, align 4, !tbaa !5
  %578 = call ptr @strerror(i32 noundef %577) #11
  %579 = load i32, ptr %417, align 4, !tbaa !5
  %580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %571, ptr noundef nonnull %.str.5.sink594, i32 noundef %572, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %574, ptr noundef %576, ptr noundef %578, i32 noundef %579) #13
  call void @exit(i32 noundef 1) #14
  unreachable

581:                                              ; preds = %554
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = add nsw i32 %582, 1
  store i32 %583, ptr @test_count, align 4, !tbaa !5
  %584 = load i16, ptr %5, align 2, !tbaa !46
  %585 = load i16, ptr %526, align 2, !tbaa !18
  %586 = icmp eq i16 %584, %585
  br i1 %586, label %609, label %587

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

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

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

598:                                              ; preds = %593, %597
  %.str.5.sink603 = phi ptr [ @.str.5, %597 ], [ @.str.2, %593 ]
  store i32 %588, ptr %417, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = load i32, ptr %363, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror(i32 noundef %601, ptr noundef nonnull @.str.4) #11
  %603 = load i32, ptr %363, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror_debug(i32 noundef %603, ptr noundef nonnull @.str.4) #11
  %605 = load i32, ptr %417, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #11
  %607 = load i32, ptr %417, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.5.sink603, i32 noundef %600, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %602, ptr noundef %604, ptr noundef %606, i32 noundef %607) #13
  call void @exit(i32 noundef 1) #14
  unreachable

609:                                              ; preds = %581
  %610 = add nsw i32 %582, 2
  store i32 %610, ptr @test_count, align 4, !tbaa !5
  %611 = call i32 @s2n_connection_free(ptr noundef nonnull %474) #11
  %612 = icmp eq i32 %611, -1
  br i1 %612, label %613, label %635

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

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

623:                                              ; preds = %619, %613
  br label %624

624:                                              ; preds = %619, %623
  %.str.5.sink612 = phi ptr [ @.str.5, %623 ], [ @.str.2, %619 ]
  store i32 %614, ptr %417, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = load i32, ptr %363, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror(i32 noundef %627, ptr noundef nonnull @.str.4) #11
  %629 = load i32, ptr %363, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror_debug(i32 noundef %629, ptr noundef nonnull @.str.4) #11
  %631 = load i32, ptr %417, align 4, !tbaa !5
  %632 = call ptr @strerror(i32 noundef %631) #11
  %633 = load i32, ptr %417, align 4, !tbaa !5
  %634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %625, ptr noundef nonnull %.str.5.sink612, i32 noundef %626, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %628, ptr noundef %630, ptr noundef %632, i32 noundef %633) #13
  call void @exit(i32 noundef 1) #14
  unreachable

635:                                              ; preds = %609
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = add nsw i32 %636, 1
  store i32 %637, ptr @test_count, align 4, !tbaa !5
  %638 = call i32 @s2n_stuffer_free(ptr noundef nonnull %4) #11
  %639 = icmp eq i32 %638, -1
  br i1 %639, label %640, label %662

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

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

650:                                              ; preds = %646, %640
  br label %651

651:                                              ; preds = %646, %650
  %.str.5.sink621 = phi ptr [ @.str.5, %650 ], [ @.str.2, %646 ]
  store i32 %641, ptr %417, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = load i32, ptr %363, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror(i32 noundef %654, ptr noundef nonnull @.str.4) #11
  %656 = load i32, ptr %363, align 4, !tbaa !5
  %657 = call ptr @s2n_strerror_debug(i32 noundef %656, ptr noundef nonnull @.str.4) #11
  %658 = load i32, ptr %417, align 4, !tbaa !5
  %659 = call ptr @strerror(i32 noundef %658) #11
  %660 = load i32, ptr %417, align 4, !tbaa !5
  %661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef nonnull %.str.5.sink621, i32 noundef %653, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %655, ptr noundef %657, ptr noundef %659, i32 noundef %660) #13
  call void @exit(i32 noundef 1) #14
  unreachable

662:                                              ; preds = %635
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #11
  store i8 0, ptr %6, align 1, !tbaa !47
  %663 = load i32, ptr @test_count, align 4, !tbaa !5
  %664 = add nsw i32 %663, 1
  store i32 %664, ptr @test_count, align 4, !tbaa !5
  %665 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 51, ptr noundef nonnull %6) #11
  %666 = icmp eq i32 %665, -1
  br i1 %666, label %667, label %689

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

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

677:                                              ; preds = %673, %667
  br label %678

678:                                              ; preds = %673, %677
  %.str.5.sink630 = phi ptr [ @.str.5, %677 ], [ @.str.2, %673 ]
  store i32 %668, ptr %417, align 4, !tbaa !5
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = load i32, ptr %363, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror(i32 noundef %681, ptr noundef nonnull @.str.4) #11
  %683 = load i32, ptr %363, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror_debug(i32 noundef %683, ptr noundef nonnull @.str.4) #11
  %685 = load i32, ptr %417, align 4, !tbaa !5
  %686 = call ptr @strerror(i32 noundef %685) #11
  %687 = load i32, ptr %417, align 4, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %679, ptr noundef nonnull %.str.5.sink630, i32 noundef %680, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %682, ptr noundef %684, ptr noundef %686, i32 noundef %687) #13
  call void @exit(i32 noundef 1) #14
  unreachable

689:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr @test_count, align 4, !tbaa !5
  %692 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #11
  %693 = icmp eq i32 %692, -1
  br i1 %693, label %694, label %716

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

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

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

705:                                              ; preds = %700, %704
  %.str.5.sink639 = phi ptr [ @.str.5, %704 ], [ @.str.2, %700 ]
  store i32 %695, ptr %417, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = load i32, ptr %363, align 4, !tbaa !5
  %709 = call ptr @s2n_strerror(i32 noundef %708, ptr noundef nonnull @.str.4) #11
  %710 = load i32, ptr %363, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror_debug(i32 noundef %710, ptr noundef nonnull @.str.4) #11
  %712 = load i32, ptr %417, align 4, !tbaa !5
  %713 = call ptr @strerror(i32 noundef %712) #11
  %714 = load i32, ptr %417, align 4, !tbaa !5
  %715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef nonnull %.str.5.sink639, i32 noundef %707, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %709, ptr noundef %711, ptr noundef %713, i32 noundef %714) #13
  call void @exit(i32 noundef 1) #14
  unreachable

716:                                              ; preds = %689
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = add nsw i32 %717, 1
  store i32 %718, ptr @test_count, align 4, !tbaa !5
  %719 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %720 = icmp eq ptr %719, null
  br i1 %720, label %721, label %743

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

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

731:                                              ; preds = %727, %721
  br label %732

732:                                              ; preds = %727, %731
  %.str.5.sink648 = phi ptr [ @.str.5, %731 ], [ @.str.2, %727 ]
  store i32 %722, ptr %417, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = load i32, ptr %363, align 4, !tbaa !5
  %736 = call ptr @s2n_strerror(i32 noundef %735, ptr noundef nonnull @.str.4) #11
  %737 = load i32, ptr %363, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror_debug(i32 noundef %737, ptr noundef nonnull @.str.4) #11
  %739 = load i32, ptr %417, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #11
  %741 = load i32, ptr %417, align 4, !tbaa !5
  %742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull %.str.5.sink648, i32 noundef %734, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %736, ptr noundef %738, ptr noundef %740, i32 noundef %741) #13
  call void @exit(i32 noundef 1) #14
  unreachable

743:                                              ; preds = %716
  %744 = load i32, ptr @test_count, align 4, !tbaa !5
  %745 = add nsw i32 %744, 1
  store i32 %745, ptr @test_count, align 4, !tbaa !5
  %746 = call i32 @setup_client_psks(ptr noundef nonnull %719)
  %747 = call zeroext i1 @s2n_result_is_ok(i32 %746)
  br i1 %747, label %770, label %748

748:                                              ; preds = %743
  %749 = load i32, ptr %417, 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
  %.not302 = icmp eq i32 %757, 0
  br i1 %.not302, label %758, label %759

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

759:                                              ; preds = %754, %758
  %.str.5.sink657 = phi ptr [ @.str.5, %758 ], [ @.str.2, %754 ]
  store i32 %749, ptr %417, 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 %363, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror(i32 noundef %762, ptr noundef nonnull @.str.4) #11
  %764 = load i32, ptr %363, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror_debug(i32 noundef %764, ptr noundef nonnull @.str.4) #11
  %766 = load i32, ptr %417, align 4, !tbaa !5
  %767 = call ptr @strerror(i32 noundef %766) #11
  %768 = load i32, ptr %417, align 4, !tbaa !5
  %769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %760, ptr noundef nonnull %.str.5.sink657, i32 noundef %761, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %763, ptr noundef %765, ptr noundef %767, i32 noundef %768) #13
  call void @exit(i32 noundef 1) #14
  unreachable

770:                                              ; preds = %743
  %771 = load i8, ptr %6, align 1, !tbaa !47
  %772 = and i8 %771, 7
  %773 = shl nuw i8 1, %772
  %774 = getelementptr inbounds i8, ptr %719, i64 102
  %775 = lshr i8 %771, 3
  %776 = zext nneg i8 %775 to i64
  %777 = getelementptr inbounds [22 x i8], ptr %774, i64 0, i64 %776
  %778 = load i8, ptr %777, align 1, !tbaa !47
  %779 = or i8 %773, %778
  store i8 %779, ptr %777, align 1, !tbaa !47
  %780 = getelementptr inbounds i8, ptr %719, i64 220
  store i8 33, ptr %780, align 4, !tbaa !44
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = add nsw i32 %781, 1
  store i32 %782, ptr @test_count, align 4, !tbaa !5
  %783 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %7, i16 noundef zeroext 1) #11
  %784 = icmp eq i32 %783, -1
  br i1 %784, label %785, label %807

785:                                              ; preds = %770
  %786 = load i32, ptr %417, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = call i32 @s2n_print_stacktrace(ptr noundef %787) #11
  %789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %790 = trunc nuw i8 %789 to i1
  br i1 %790, label %791, label %795

791:                                              ; preds = %785
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = call i32 @fileno(ptr noundef %792) #11
  %794 = call i32 @isatty(i32 noundef %793) #11
  %.not379 = icmp eq i32 %794, 0
  br i1 %.not379, label %795, label %796

795:                                              ; preds = %791, %785
  br label %796

796:                                              ; preds = %791, %795
  %.str.5.sink666 = phi ptr [ @.str.5, %795 ], [ @.str.2, %791 ]
  store i32 %786, ptr %417, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = load i32, ptr %363, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror(i32 noundef %799, ptr noundef nonnull @.str.4) #11
  %801 = load i32, ptr %363, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror_debug(i32 noundef %801, ptr noundef nonnull @.str.4) #11
  %803 = load i32, ptr %417, align 4, !tbaa !5
  %804 = call ptr @strerror(i32 noundef %803) #11
  %805 = load i32, ptr %417, align 4, !tbaa !5
  %806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef nonnull %.str.5.sink666, i32 noundef %798, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %800, ptr noundef %802, ptr noundef %804, i32 noundef %805) #13
  call void @exit(i32 noundef 1) #14
  unreachable

807:                                              ; preds = %770
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = add nsw i32 %808, 1
  store i32 %809, ptr @test_count, align 4, !tbaa !5
  %810 = getelementptr inbounds i8, ptr %719, i64 1736
  %811 = load ptr, ptr %810, align 8, !tbaa !48
  %812 = icmp eq ptr %811, null
  br i1 %812, label %835, label %813

813:                                              ; preds = %807
  %814 = load i32, ptr %417, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = call i32 @s2n_print_stacktrace(ptr noundef %815) #11
  %817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %818 = trunc nuw i8 %817 to i1
  br i1 %818, label %819, label %823

819:                                              ; preds = %813
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @fileno(ptr noundef %820) #11
  %822 = call i32 @isatty(i32 noundef %821) #11
  %.not303 = icmp eq i32 %822, 0
  br i1 %.not303, label %823, label %824

823:                                              ; preds = %819, %813
  br label %824

824:                                              ; preds = %819, %823
  %.str.5.sink675 = phi ptr [ @.str.5, %823 ], [ @.str.2, %819 ]
  store i32 %814, ptr %417, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = load i32, ptr @test_count, align 4, !tbaa !5
  %827 = load i32, ptr %363, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror(i32 noundef %827, ptr noundef nonnull @.str.4) #11
  %829 = load i32, ptr %363, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror_debug(i32 noundef %829, ptr noundef nonnull @.str.4) #11
  %831 = load i32, ptr %417, align 4, !tbaa !5
  %832 = call ptr @strerror(i32 noundef %831) #11
  %833 = load i32, ptr %417, align 4, !tbaa !5
  %834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %825, ptr noundef nonnull %.str.5.sink675, i32 noundef %826, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %828, ptr noundef %830, ptr noundef %832, i32 noundef %833) #13
  call void @exit(i32 noundef 1) #14
  unreachable

835:                                              ; preds = %807
  %836 = add nsw i32 %808, 2
  store i32 %836, ptr @test_count, align 4, !tbaa !5
  %837 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %719) #11
  %838 = icmp eq i32 %837, -1
  br i1 %838, label %839, label %861

839:                                              ; preds = %835
  %840 = load i32, ptr %417, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @s2n_print_stacktrace(ptr noundef %841) #11
  %843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %844 = trunc nuw i8 %843 to i1
  br i1 %844, label %845, label %849

845:                                              ; preds = %839
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = call i32 @fileno(ptr noundef %846) #11
  %848 = call i32 @isatty(i32 noundef %847) #11
  %.not378 = icmp eq i32 %848, 0
  br i1 %.not378, label %849, label %850

849:                                              ; preds = %845, %839
  br label %850

850:                                              ; preds = %845, %849
  %.str.5.sink684 = phi ptr [ @.str.5, %849 ], [ @.str.2, %845 ]
  store i32 %840, ptr %417, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = load i32, ptr %363, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror(i32 noundef %853, ptr noundef nonnull @.str.4) #11
  %855 = load i32, ptr %363, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror_debug(i32 noundef %855, ptr noundef nonnull @.str.4) #11
  %857 = load i32, ptr %417, align 4, !tbaa !5
  %858 = call ptr @strerror(i32 noundef %857) #11
  %859 = load i32, ptr %417, align 4, !tbaa !5
  %860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef nonnull %.str.5.sink684, i32 noundef %852, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %854, ptr noundef %856, ptr noundef %858, i32 noundef %859) #13
  call void @exit(i32 noundef 1) #14
  unreachable

861:                                              ; preds = %835
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = add nsw i32 %862, 1
  store i32 %863, ptr @test_count, align 4, !tbaa !5
  %864 = call i32 @s2n_extension_recv(ptr noundef nonnull @s2n_server_psk_extension, ptr noundef nonnull %719, ptr noundef nonnull %7) #11
  %865 = icmp eq i32 %864, -1
  br i1 %865, label %866, label %888

866:                                              ; preds = %861
  %867 = load i32, ptr %417, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @s2n_print_stacktrace(ptr noundef %868) #11
  %870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %871 = trunc nuw i8 %870 to i1
  br i1 %871, label %872, label %876

872:                                              ; preds = %866
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = call i32 @fileno(ptr noundef %873) #11
  %875 = call i32 @isatty(i32 noundef %874) #11
  %.not377 = icmp eq i32 %875, 0
  br i1 %.not377, label %876, label %877

876:                                              ; preds = %872, %866
  br label %877

877:                                              ; preds = %872, %876
  %.str.5.sink693 = phi ptr [ @.str.5, %876 ], [ @.str.2, %872 ]
  store i32 %867, ptr %417, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = load i32, ptr %363, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror(i32 noundef %880, ptr noundef nonnull @.str.4) #11
  %882 = load i32, ptr %363, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror_debug(i32 noundef %882, ptr noundef nonnull @.str.4) #11
  %884 = load i32, ptr %417, align 4, !tbaa !5
  %885 = call ptr @strerror(i32 noundef %884) #11
  %886 = load i32, ptr %417, align 4, !tbaa !5
  %887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef nonnull %.str.5.sink693, i32 noundef %879, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %881, ptr noundef %883, ptr noundef %885, i32 noundef %886) #13
  call void @exit(i32 noundef 1) #14
  unreachable

888:                                              ; preds = %861
  %889 = load i32, ptr @test_count, align 4, !tbaa !5
  %890 = add nsw i32 %889, 1
  store i32 %890, ptr @test_count, align 4, !tbaa !5
  %891 = load ptr, ptr %810, align 8, !tbaa !48
  %892 = icmp eq ptr %891, null
  br i1 %892, label %915, label %893

893:                                              ; preds = %888
  %894 = load i32, ptr %417, align 4, !tbaa !5
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = call i32 @s2n_print_stacktrace(ptr noundef %895) #11
  %897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %898 = trunc nuw i8 %897 to i1
  br i1 %898, label %899, label %903

899:                                              ; preds = %893
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = call i32 @fileno(ptr noundef %900) #11
  %902 = call i32 @isatty(i32 noundef %901) #11
  %.not304 = icmp eq i32 %902, 0
  br i1 %.not304, label %903, label %904

903:                                              ; preds = %899, %893
  br label %904

904:                                              ; preds = %899, %903
  %.str.5.sink702 = phi ptr [ @.str.5, %903 ], [ @.str.2, %899 ]
  store i32 %894, ptr %417, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = load i32, ptr %363, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror(i32 noundef %907, ptr noundef nonnull @.str.4) #11
  %909 = load i32, ptr %363, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror_debug(i32 noundef %909, ptr noundef nonnull @.str.4) #11
  %911 = load i32, ptr %417, align 4, !tbaa !5
  %912 = call ptr @strerror(i32 noundef %911) #11
  %913 = load i32, ptr %417, align 4, !tbaa !5
  %914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef nonnull %.str.5.sink702, i32 noundef %906, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 164, ptr noundef %908, ptr noundef %910, ptr noundef %912, i32 noundef %913) #13
  call void @exit(i32 noundef 1) #14
  unreachable

915:                                              ; preds = %888
  %916 = add nsw i32 %889, 2
  store i32 %916, ptr @test_count, align 4, !tbaa !5
  %917 = call i32 @s2n_connection_free(ptr noundef nonnull %719) #11
  %918 = icmp eq i32 %917, -1
  br i1 %918, label %919, label %941

919:                                              ; preds = %915
  %920 = load i32, ptr %417, align 4, !tbaa !5
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = call i32 @s2n_print_stacktrace(ptr noundef %921) #11
  %923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %924 = trunc nuw i8 %923 to i1
  br i1 %924, label %925, label %929

925:                                              ; preds = %919
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = call i32 @fileno(ptr noundef %926) #11
  %928 = call i32 @isatty(i32 noundef %927) #11
  %.not376 = icmp eq i32 %928, 0
  br i1 %.not376, label %929, label %930

929:                                              ; preds = %925, %919
  br label %930

930:                                              ; preds = %925, %929
  %.str.5.sink711 = phi ptr [ @.str.5, %929 ], [ @.str.2, %925 ]
  store i32 %920, ptr %417, align 4, !tbaa !5
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = load i32, ptr @test_count, align 4, !tbaa !5
  %933 = load i32, ptr %363, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef nonnull @.str.4) #11
  %935 = load i32, ptr %363, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror_debug(i32 noundef %935, ptr noundef nonnull @.str.4) #11
  %937 = load i32, ptr %417, align 4, !tbaa !5
  %938 = call ptr @strerror(i32 noundef %937) #11
  %939 = load i32, ptr %417, align 4, !tbaa !5
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %931, ptr noundef nonnull %.str.5.sink711, i32 noundef %932, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %934, ptr noundef %936, ptr noundef %938, i32 noundef %939) #13
  call void @exit(i32 noundef 1) #14
  unreachable

941:                                              ; preds = %915
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = add nsw i32 %942, 1
  store i32 %943, ptr @test_count, align 4, !tbaa !5
  %944 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #11
  %945 = icmp eq i32 %944, -1
  br i1 %945, label %946, label %968

946:                                              ; preds = %941
  %947 = load i32, ptr %417, align 4, !tbaa !5
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @s2n_print_stacktrace(ptr noundef %948) #11
  %950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %951 = trunc nuw i8 %950 to i1
  br i1 %951, label %952, label %956

952:                                              ; preds = %946
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = call i32 @fileno(ptr noundef %953) #11
  %955 = call i32 @isatty(i32 noundef %954) #11
  %.not375 = icmp eq i32 %955, 0
  br i1 %.not375, label %956, label %957

956:                                              ; preds = %952, %946
  br label %957

957:                                              ; preds = %952, %956
  %.str.5.sink720 = phi ptr [ @.str.5, %956 ], [ @.str.2, %952 ]
  store i32 %947, ptr %417, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = load i32, ptr @test_count, align 4, !tbaa !5
  %960 = load i32, ptr %363, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef nonnull @.str.4) #11
  %962 = load i32, ptr %363, align 4, !tbaa !5
  %963 = call ptr @s2n_strerror_debug(i32 noundef %962, ptr noundef nonnull @.str.4) #11
  %964 = load i32, ptr %417, align 4, !tbaa !5
  %965 = call ptr @strerror(i32 noundef %964) #11
  %966 = load i32, ptr %417, align 4, !tbaa !5
  %967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %958, ptr noundef nonnull %.str.5.sink720, i32 noundef %959, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %961, ptr noundef %963, ptr noundef %965, i32 noundef %966) #13
  call void @exit(i32 noundef 1) #14
  unreachable

968:                                              ; preds = %941
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = add nsw i32 %969, 1
  store i32 %970, ptr @test_count, align 4, !tbaa !5
  %971 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #11
  %972 = icmp eq i32 %971, -1
  br i1 %972, label %973, label %995

973:                                              ; preds = %968
  %974 = load i32, ptr %417, align 4, !tbaa !5
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = call i32 @s2n_print_stacktrace(ptr noundef %975) #11
  %977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %978 = trunc nuw i8 %977 to i1
  br i1 %978, label %979, label %983

979:                                              ; preds = %973
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = call i32 @fileno(ptr noundef %980) #11
  %982 = call i32 @isatty(i32 noundef %981) #11
  %.not374 = icmp eq i32 %982, 0
  br i1 %.not374, label %983, label %984

983:                                              ; preds = %979, %973
  br label %984

984:                                              ; preds = %979, %983
  %.str.5.sink729 = phi ptr [ @.str.5, %983 ], [ @.str.2, %979 ]
  store i32 %974, ptr %417, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = load i32, ptr @test_count, align 4, !tbaa !5
  %987 = load i32, ptr %363, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror(i32 noundef %987, ptr noundef nonnull @.str.4) #11
  %989 = load i32, ptr %363, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror_debug(i32 noundef %989, ptr noundef nonnull @.str.4) #11
  %991 = load i32, ptr %417, align 4, !tbaa !5
  %992 = call ptr @strerror(i32 noundef %991) #11
  %993 = load i32, ptr %417, align 4, !tbaa !5
  %994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %985, ptr noundef nonnull %.str.5.sink729, i32 noundef %986, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %988, ptr noundef %990, ptr noundef %992, i32 noundef %993) #13
  call void @exit(i32 noundef 1) #14
  unreachable

995:                                              ; preds = %968
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = add nsw i32 %996, 1
  store i32 %997, ptr @test_count, align 4, !tbaa !5
  %998 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %999 = icmp eq ptr %998, null
  br i1 %999, label %1000, label %1022

1000:                                             ; preds = %995
  %1001 = load i32, ptr %417, align 4, !tbaa !5
  %1002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1003 = call i32 @s2n_print_stacktrace(ptr noundef %1002) #11
  %1004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1005 = trunc nuw i8 %1004 to i1
  br i1 %1005, label %1006, label %1010

1006:                                             ; preds = %1000
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = call i32 @fileno(ptr noundef %1007) #11
  %1009 = call i32 @isatty(i32 noundef %1008) #11
  %.not373 = icmp eq i32 %1009, 0
  br i1 %.not373, label %1010, label %1011

1010:                                             ; preds = %1006, %1000
  br label %1011

1011:                                             ; preds = %1006, %1010
  %.str.5.sink738 = phi ptr [ @.str.5, %1010 ], [ @.str.2, %1006 ]
  store i32 %1001, ptr %417, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = load i32, ptr @test_count, align 4, !tbaa !5
  %1014 = load i32, ptr %363, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror(i32 noundef %1014, ptr noundef nonnull @.str.4) #11
  %1016 = load i32, ptr %363, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror_debug(i32 noundef %1016, ptr noundef nonnull @.str.4) #11
  %1018 = load i32, ptr %417, align 4, !tbaa !5
  %1019 = call ptr @strerror(i32 noundef %1018) #11
  %1020 = load i32, ptr %417, align 4, !tbaa !5
  %1021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1012, ptr noundef nonnull %.str.5.sink738, i32 noundef %1013, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1015, ptr noundef %1017, ptr noundef %1019, i32 noundef %1020) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1022:                                             ; preds = %995
  %1023 = load i32, ptr @test_count, align 4, !tbaa !5
  %1024 = add nsw i32 %1023, 1
  store i32 %1024, ptr @test_count, align 4, !tbaa !5
  %1025 = call i32 @setup_client_psks(ptr noundef nonnull %998)
  %1026 = call zeroext i1 @s2n_result_is_ok(i32 %1025)
  br i1 %1026, label %1049, label %1027

1027:                                             ; preds = %1022
  %1028 = load i32, ptr %417, align 4, !tbaa !5
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = call i32 @s2n_print_stacktrace(ptr noundef %1029) #11
  %1031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1032 = trunc nuw i8 %1031 to i1
  br i1 %1032, label %1033, label %1037

1033:                                             ; preds = %1027
  %1034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1035 = call i32 @fileno(ptr noundef %1034) #11
  %1036 = call i32 @isatty(i32 noundef %1035) #11
  %.not305 = icmp eq i32 %1036, 0
  br i1 %.not305, label %1037, label %1038

1037:                                             ; preds = %1033, %1027
  br label %1038

1038:                                             ; preds = %1033, %1037
  %.str.5.sink747 = phi ptr [ @.str.5, %1037 ], [ @.str.2, %1033 ]
  store i32 %1028, ptr %417, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = load i32, ptr @test_count, align 4, !tbaa !5
  %1041 = load i32, ptr %363, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror(i32 noundef %1041, ptr noundef nonnull @.str.4) #11
  %1043 = load i32, ptr %363, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror_debug(i32 noundef %1043, ptr noundef nonnull @.str.4) #11
  %1045 = load i32, ptr %417, align 4, !tbaa !5
  %1046 = call ptr @strerror(i32 noundef %1045) #11
  %1047 = load i32, ptr %417, align 4, !tbaa !5
  %1048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1039, ptr noundef nonnull %.str.5.sink747, i32 noundef %1040, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1042, ptr noundef %1044, ptr noundef %1046, i32 noundef %1047) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1049:                                             ; preds = %1022
  %1050 = getelementptr inbounds i8, ptr %998, i64 220
  store i8 34, ptr %1050, align 4, !tbaa !44
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = add nsw i32 %1051, 1
  store i32 %1052, ptr @test_count, align 4, !tbaa !5
  %1053 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %8, i16 noundef zeroext 1) #11
  %1054 = icmp eq i32 %1053, -1
  br i1 %1054, label %1055, label %1077

1055:                                             ; preds = %1049
  %1056 = load i32, ptr %417, align 4, !tbaa !5
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @s2n_print_stacktrace(ptr noundef %1057) #11
  %1059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1060 = trunc nuw i8 %1059 to i1
  br i1 %1060, label %1061, label %1065

1061:                                             ; preds = %1055
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = call i32 @fileno(ptr noundef %1062) #11
  %1064 = call i32 @isatty(i32 noundef %1063) #11
  %.not372 = icmp eq i32 %1064, 0
  br i1 %.not372, label %1065, label %1066

1065:                                             ; preds = %1061, %1055
  br label %1066

1066:                                             ; preds = %1061, %1065
  %.str.5.sink756 = phi ptr [ @.str.5, %1065 ], [ @.str.2, %1061 ]
  store i32 %1056, ptr %417, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = load i32, ptr @test_count, align 4, !tbaa !5
  %1069 = load i32, ptr %363, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror(i32 noundef %1069, ptr noundef nonnull @.str.4) #11
  %1071 = load i32, ptr %363, align 4, !tbaa !5
  %1072 = call ptr @s2n_strerror_debug(i32 noundef %1071, ptr noundef nonnull @.str.4) #11
  %1073 = load i32, ptr %417, align 4, !tbaa !5
  %1074 = call ptr @strerror(i32 noundef %1073) #11
  %1075 = load i32, ptr %417, align 4, !tbaa !5
  %1076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1067, ptr noundef nonnull %.str.5.sink756, i32 noundef %1068, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1070, ptr noundef %1072, ptr noundef %1074, i32 noundef %1075) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1077:                                             ; preds = %1049
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = add nsw i32 %1078, 1
  store i32 %1079, ptr @test_count, align 4, !tbaa !5
  %1080 = getelementptr inbounds i8, ptr %998, i64 1736
  %1081 = load ptr, ptr %1080, align 8, !tbaa !48
  %1082 = icmp eq ptr %1081, null
  br i1 %1082, label %1105, label %1083

1083:                                             ; preds = %1077
  %1084 = load i32, ptr %417, align 4, !tbaa !5
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = call i32 @s2n_print_stacktrace(ptr noundef %1085) #11
  %1087 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1088 = trunc nuw i8 %1087 to i1
  br i1 %1088, label %1089, label %1093

1089:                                             ; preds = %1083
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = call i32 @fileno(ptr noundef %1090) #11
  %1092 = call i32 @isatty(i32 noundef %1091) #11
  %.not306 = icmp eq i32 %1092, 0
  br i1 %.not306, label %1093, label %1094

1093:                                             ; preds = %1089, %1083
  br label %1094

1094:                                             ; preds = %1089, %1093
  %.str.5.sink765 = phi ptr [ @.str.5, %1093 ], [ @.str.2, %1089 ]
  store i32 %1084, ptr %417, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = load i32, ptr %363, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror(i32 noundef %1097, ptr noundef nonnull @.str.4) #11
  %1099 = load i32, ptr %363, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef nonnull @.str.4) #11
  %1101 = load i32, ptr %417, align 4, !tbaa !5
  %1102 = call ptr @strerror(i32 noundef %1101) #11
  %1103 = load i32, ptr %417, align 4, !tbaa !5
  %1104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1095, ptr noundef nonnull %.str.5.sink765, i32 noundef %1096, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1098, ptr noundef %1100, ptr noundef %1102, i32 noundef %1103) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1105:                                             ; preds = %1077
  %1106 = add nsw i32 %1078, 2
  store i32 %1106, ptr @test_count, align 4, !tbaa !5
  %1107 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_psk_extension, i64 16), align 8, !tbaa !49
  %1108 = call i32 %1107(ptr noundef nonnull %998, ptr noundef nonnull %8) #11
  %1109 = icmp eq i32 %1108, -1
  br i1 %1109, label %1132, label %1110

1110:                                             ; preds = %1105
  %1111 = load i32, ptr %417, align 4, !tbaa !5
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = call i32 @s2n_print_stacktrace(ptr noundef %1112) #11
  %1114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1115 = trunc nuw i8 %1114 to i1
  br i1 %1115, label %1116, label %1120

1116:                                             ; preds = %1110
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = call i32 @fileno(ptr noundef %1117) #11
  %1119 = call i32 @isatty(i32 noundef %1118) #11
  %.not307 = icmp eq i32 %1119, 0
  br i1 %.not307, label %1120, label %1121

1120:                                             ; preds = %1116, %1110
  br label %1121

1121:                                             ; preds = %1116, %1120
  %.str.5.sink774 = phi ptr [ @.str.5, %1120 ], [ @.str.2, %1116 ]
  store i32 %1111, ptr %417, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = load i32, ptr %363, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror(i32 noundef %1124, ptr noundef nonnull @.str.4) #11
  %1126 = load i32, ptr %363, align 4, !tbaa !5
  %1127 = call ptr @s2n_strerror_debug(i32 noundef %1126, ptr noundef nonnull @.str.4) #11
  %1128 = load i32, ptr %417, align 4, !tbaa !5
  %1129 = call ptr @strerror(i32 noundef %1128) #11
  %1130 = load i32, ptr %417, align 4, !tbaa !5
  %1131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef nonnull %.str.5.sink774, i32 noundef %1123, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1125, ptr noundef %1127, ptr noundef %1129, i32 noundef %1130) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1132:                                             ; preds = %1105
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = add nsw i32 %1133, 1
  store i32 %1134, ptr @test_count, align 4, !tbaa !5
  %1135 = load i32, ptr %363, align 4, !tbaa !5
  %1136 = icmp eq i32 %1135, 335544393
  br i1 %1136, label %1159, label %1137

1137:                                             ; preds = %1132
  %1138 = load i32, ptr %417, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = call i32 @s2n_print_stacktrace(ptr noundef %1139) #11
  %1141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1142 = trunc nuw i8 %1141 to i1
  br i1 %1142, label %1143, label %1147

1143:                                             ; preds = %1137
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = call i32 @fileno(ptr noundef %1144) #11
  %1146 = call i32 @isatty(i32 noundef %1145) #11
  %.not308 = icmp eq i32 %1146, 0
  br i1 %.not308, label %1147, label %1148

1147:                                             ; preds = %1143, %1137
  br label %1148

1148:                                             ; preds = %1143, %1147
  %.str.5.sink783 = phi ptr [ @.str.5, %1147 ], [ @.str.2, %1143 ]
  store i32 %1138, ptr %417, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = load i32, ptr %363, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror(i32 noundef %1151, ptr noundef nonnull @.str.4) #11
  %1153 = load i32, ptr %363, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror_debug(i32 noundef %1153, ptr noundef nonnull @.str.4) #11
  %1155 = load i32, ptr %417, align 4, !tbaa !5
  %1156 = call ptr @strerror(i32 noundef %1155) #11
  %1157 = load i32, ptr %417, align 4, !tbaa !5
  %1158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef nonnull %.str.5.sink783, i32 noundef %1150, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1152, ptr noundef %1154, ptr noundef %1156, i32 noundef %1157) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1159:                                             ; preds = %1132
  %1160 = add nsw i32 %1133, 2
  store i32 %1160, ptr @test_count, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #11
  %1162 = icmp eq ptr %1161, null
  br i1 %1162, label %1163, label %1185

1163:                                             ; preds = %1159
  %1164 = load i32, ptr %417, align 4, !tbaa !5
  %1165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1166 = call i32 @s2n_print_stacktrace(ptr noundef %1165) #11
  %1167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1168 = trunc nuw i8 %1167 to i1
  br i1 %1168, label %1169, label %1173

1169:                                             ; preds = %1163
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = call i32 @fileno(ptr noundef %1170) #11
  %1172 = call i32 @isatty(i32 noundef %1171) #11
  %.not371 = icmp eq i32 %1172, 0
  br i1 %.not371, label %1173, label %1174

1173:                                             ; preds = %1169, %1163
  br label %1174

1174:                                             ; preds = %1169, %1173
  %.str.5.sink792 = phi ptr [ @.str.5, %1173 ], [ @.str.2, %1169 ]
  store i32 %1164, ptr %417, align 4, !tbaa !5
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = load i32, ptr @test_count, align 4, !tbaa !5
  %1177 = load i32, ptr %363, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror(i32 noundef %1177, ptr noundef nonnull @.str.4) #11
  %1179 = load i32, ptr %363, align 4, !tbaa !5
  %1180 = call ptr @s2n_strerror_debug(i32 noundef %1179, ptr noundef nonnull @.str.4) #11
  %1181 = load i32, ptr %417, align 4, !tbaa !5
  %1182 = call ptr @strerror(i32 noundef %1181) #11
  %1183 = load i32, ptr %417, align 4, !tbaa !5
  %1184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1175, ptr noundef nonnull %.str.5.sink792, i32 noundef %1176, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1178, ptr noundef %1180, ptr noundef %1182, i32 noundef %1183) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1185:                                             ; preds = %1159
  store i32 0, ptr %363, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %417, align 4, !tbaa !5
  %1186 = load i32, ptr @test_count, align 4, !tbaa !5
  %1187 = add nsw i32 %1186, 1
  store i32 %1187, ptr @test_count, align 4, !tbaa !5
  %1188 = load ptr, ptr %1080, align 8, !tbaa !48
  %1189 = icmp eq ptr %1188, null
  br i1 %1189, label %1212, label %1190

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

1196:                                             ; preds = %1190
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = call i32 @fileno(ptr noundef %1197) #11
  %1199 = call i32 @isatty(i32 noundef %1198) #11
  %.not309 = icmp eq i32 %1199, 0
  br i1 %.not309, label %1200, label %1201

1200:                                             ; preds = %1196, %1190
  br label %1201

1201:                                             ; preds = %1196, %1200
  %.str.5.sink801 = phi ptr [ @.str.5, %1200 ], [ @.str.2, %1196 ]
  store i32 %1191, ptr %417, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %1204 = load i32, ptr %363, align 4, !tbaa !5
  %1205 = call ptr @s2n_strerror(i32 noundef %1204, ptr noundef nonnull @.str.4) #11
  %1206 = load i32, ptr %363, align 4, !tbaa !5
  %1207 = call ptr @s2n_strerror_debug(i32 noundef %1206, ptr noundef nonnull @.str.4) #11
  %1208 = load i32, ptr %417, align 4, !tbaa !5
  %1209 = call ptr @strerror(i32 noundef %1208) #11
  %1210 = load i32, ptr %417, align 4, !tbaa !5
  %1211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1202, ptr noundef nonnull %.str.5.sink801, i32 noundef %1203, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1205, ptr noundef %1207, ptr noundef %1209, i32 noundef %1210) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1212:                                             ; preds = %1185
  %1213 = add nsw i32 %1186, 2
  store i32 %1213, ptr @test_count, align 4, !tbaa !5
  %1214 = call i32 @s2n_connection_free(ptr noundef nonnull %998) #11
  %1215 = icmp eq i32 %1214, -1
  br i1 %1215, label %1216, label %1238

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

1222:                                             ; preds = %1216
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @fileno(ptr noundef %1223) #11
  %1225 = call i32 @isatty(i32 noundef %1224) #11
  %.not370 = icmp eq i32 %1225, 0
  br i1 %.not370, label %1226, label %1227

1226:                                             ; preds = %1222, %1216
  br label %1227

1227:                                             ; preds = %1222, %1226
  %.str.5.sink810 = phi ptr [ @.str.5, %1226 ], [ @.str.2, %1222 ]
  store i32 %1217, ptr %417, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = load i32, ptr %363, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror(i32 noundef %1230, ptr noundef nonnull @.str.4) #11
  %1232 = load i32, ptr %363, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror_debug(i32 noundef %1232, ptr noundef nonnull @.str.4) #11
  %1234 = load i32, ptr %417, align 4, !tbaa !5
  %1235 = call ptr @strerror(i32 noundef %1234) #11
  %1236 = load i32, ptr %417, align 4, !tbaa !5
  %1237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef nonnull %.str.5.sink810, i32 noundef %1229, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %1231, ptr noundef %1233, ptr noundef %1235, i32 noundef %1236) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1238:                                             ; preds = %1212
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = add nsw i32 %1239, 1
  store i32 %1240, ptr @test_count, align 4, !tbaa !5
  %1241 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #11
  %1242 = icmp eq i32 %1241, -1
  br i1 %1242, label %1243, label %1265

1243:                                             ; preds = %1238
  %1244 = load i32, ptr %417, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = call i32 @s2n_print_stacktrace(ptr noundef %1245) #11
  %1247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1248 = trunc nuw i8 %1247 to i1
  br i1 %1248, label %1249, label %1253

1249:                                             ; preds = %1243
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = call i32 @fileno(ptr noundef %1250) #11
  %1252 = call i32 @isatty(i32 noundef %1251) #11
  %.not369 = icmp eq i32 %1252, 0
  br i1 %.not369, label %1253, label %1254

1253:                                             ; preds = %1249, %1243
  br label %1254

1254:                                             ; preds = %1249, %1253
  %.str.5.sink819 = phi ptr [ @.str.5, %1253 ], [ @.str.2, %1249 ]
  store i32 %1244, ptr %417, align 4, !tbaa !5
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = load i32, ptr @test_count, align 4, !tbaa !5
  %1257 = load i32, ptr %363, align 4, !tbaa !5
  %1258 = call ptr @s2n_strerror(i32 noundef %1257, ptr noundef nonnull @.str.4) #11
  %1259 = load i32, ptr %363, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror_debug(i32 noundef %1259, ptr noundef nonnull @.str.4) #11
  %1261 = load i32, ptr %417, align 4, !tbaa !5
  %1262 = call ptr @strerror(i32 noundef %1261) #11
  %1263 = load i32, ptr %417, align 4, !tbaa !5
  %1264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1255, ptr noundef nonnull %.str.5.sink819, i32 noundef %1256, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1258, ptr noundef %1260, ptr noundef %1262, i32 noundef %1263) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1265:                                             ; preds = %1238
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %1266 = load i32, ptr @test_count, align 4, !tbaa !5
  %1267 = add nsw i32 %1266, 1
  store i32 %1267, ptr @test_count, align 4, !tbaa !5
  %1268 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #11
  %1269 = icmp eq i32 %1268, -1
  br i1 %1269, label %1270, label %1292

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

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

1280:                                             ; preds = %1276, %1270
  br label %1281

1281:                                             ; preds = %1276, %1280
  %.str.5.sink828 = phi ptr [ @.str.5, %1280 ], [ @.str.2, %1276 ]
  store i32 %1271, ptr %417, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = load i32, ptr @test_count, align 4, !tbaa !5
  %1284 = load i32, ptr %363, align 4, !tbaa !5
  %1285 = call ptr @s2n_strerror(i32 noundef %1284, ptr noundef nonnull @.str.4) #11
  %1286 = load i32, ptr %363, align 4, !tbaa !5
  %1287 = call ptr @s2n_strerror_debug(i32 noundef %1286, ptr noundef nonnull @.str.4) #11
  %1288 = load i32, ptr %417, align 4, !tbaa !5
  %1289 = call ptr @strerror(i32 noundef %1288) #11
  %1290 = load i32, ptr %417, align 4, !tbaa !5
  %1291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1282, ptr noundef nonnull %.str.5.sink828, i32 noundef %1283, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1285, ptr noundef %1287, ptr noundef %1289, i32 noundef %1290) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1292:                                             ; preds = %1265
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = add nsw i32 %1293, 1
  store i32 %1294, ptr @test_count, align 4, !tbaa !5
  %1295 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %1296 = icmp eq ptr %1295, null
  br i1 %1296, label %1297, label %1319

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

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

1307:                                             ; preds = %1303, %1297
  br label %1308

1308:                                             ; preds = %1303, %1307
  %.str.5.sink837 = phi ptr [ @.str.5, %1307 ], [ @.str.2, %1303 ]
  store i32 %1298, ptr %417, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = load i32, ptr @test_count, align 4, !tbaa !5
  %1311 = load i32, ptr %363, align 4, !tbaa !5
  %1312 = call ptr @s2n_strerror(i32 noundef %1311, ptr noundef nonnull @.str.4) #11
  %1313 = load i32, ptr %363, align 4, !tbaa !5
  %1314 = call ptr @s2n_strerror_debug(i32 noundef %1313, ptr noundef nonnull @.str.4) #11
  %1315 = load i32, ptr %417, align 4, !tbaa !5
  %1316 = call ptr @strerror(i32 noundef %1315) #11
  %1317 = load i32, ptr %417, align 4, !tbaa !5
  %1318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1309, ptr noundef nonnull %.str.5.sink837, i32 noundef %1310, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1312, ptr noundef %1314, ptr noundef %1316, i32 noundef %1317) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1319:                                             ; preds = %1292
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = add nsw i32 %1320, 1
  store i32 %1321, ptr @test_count, align 4, !tbaa !5
  %1322 = call i32 @setup_client_psks(ptr noundef nonnull %1295)
  %1323 = call zeroext i1 @s2n_result_is_ok(i32 %1322)
  br i1 %1323, label %1346, label %1324

1324:                                             ; preds = %1319
  %1325 = load i32, ptr %417, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = call i32 @s2n_print_stacktrace(ptr noundef %1326) #11
  %1328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1329 = trunc nuw i8 %1328 to i1
  br i1 %1329, label %1330, label %1334

1330:                                             ; preds = %1324
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = call i32 @fileno(ptr noundef %1331) #11
  %1333 = call i32 @isatty(i32 noundef %1332) #11
  %.not310 = icmp eq i32 %1333, 0
  br i1 %.not310, label %1334, label %1335

1334:                                             ; preds = %1330, %1324
  br label %1335

1335:                                             ; preds = %1330, %1334
  %.str.5.sink846 = phi ptr [ @.str.5, %1334 ], [ @.str.2, %1330 ]
  store i32 %1325, ptr %417, align 4, !tbaa !5
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = load i32, ptr %363, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror(i32 noundef %1338, ptr noundef nonnull @.str.4) #11
  %1340 = load i32, ptr %363, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef nonnull @.str.4) #11
  %1342 = load i32, ptr %417, align 4, !tbaa !5
  %1343 = call ptr @strerror(i32 noundef %1342) #11
  %1344 = load i32, ptr %417, align 4, !tbaa !5
  %1345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1336, ptr noundef nonnull %.str.5.sink846, i32 noundef %1337, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1339, ptr noundef %1341, ptr noundef %1343, i32 noundef %1344) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1346:                                             ; preds = %1319
  %1347 = load i8, ptr %6, align 1, !tbaa !47
  %1348 = and i8 %1347, 7
  %1349 = shl nuw i8 1, %1348
  %1350 = getelementptr inbounds i8, ptr %1295, i64 124
  %1351 = lshr i8 %1347, 3
  %1352 = zext nneg i8 %1351 to i64
  %1353 = getelementptr inbounds [22 x i8], ptr %1350, i64 0, i64 %1352
  %1354 = load i8, ptr %1353, align 1, !tbaa !47
  %1355 = or i8 %1349, %1354
  store i8 %1355, ptr %1353, align 1, !tbaa !47
  %1356 = getelementptr inbounds i8, ptr %1295, i64 220
  store i8 34, ptr %1356, align 4, !tbaa !44
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = add nsw i32 %1357, 1
  store i32 %1358, ptr @test_count, align 4, !tbaa !5
  %1359 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %9, i16 noundef zeroext 10) #11
  %1360 = icmp eq i32 %1359, -1
  br i1 %1360, label %1361, label %1383

1361:                                             ; preds = %1346
  %1362 = load i32, ptr %417, align 4, !tbaa !5
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = call i32 @s2n_print_stacktrace(ptr noundef %1363) #11
  %1365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1366 = trunc nuw i8 %1365 to i1
  br i1 %1366, label %1367, label %1371

1367:                                             ; preds = %1361
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = call i32 @fileno(ptr noundef %1368) #11
  %1370 = call i32 @isatty(i32 noundef %1369) #11
  %.not366 = icmp eq i32 %1370, 0
  br i1 %.not366, label %1371, label %1372

1371:                                             ; preds = %1367, %1361
  br label %1372

1372:                                             ; preds = %1367, %1371
  %.str.5.sink855 = phi ptr [ @.str.5, %1371 ], [ @.str.2, %1367 ]
  store i32 %1362, ptr %417, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = load i32, ptr @test_count, align 4, !tbaa !5
  %1375 = load i32, ptr %363, align 4, !tbaa !5
  %1376 = call ptr @s2n_strerror(i32 noundef %1375, ptr noundef nonnull @.str.4) #11
  %1377 = load i32, ptr %363, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror_debug(i32 noundef %1377, ptr noundef nonnull @.str.4) #11
  %1379 = load i32, ptr %417, align 4, !tbaa !5
  %1380 = call ptr @strerror(i32 noundef %1379) #11
  %1381 = load i32, ptr %417, align 4, !tbaa !5
  %1382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1373, ptr noundef nonnull %.str.5.sink855, i32 noundef %1374, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %1376, ptr noundef %1378, ptr noundef %1380, i32 noundef %1381) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1383:                                             ; preds = %1346
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = add nsw i32 %1384, 1
  store i32 %1385, ptr @test_count, align 4, !tbaa !5
  %1386 = getelementptr inbounds i8, ptr %1295, i64 1736
  %1387 = load ptr, ptr %1386, align 8, !tbaa !48
  %1388 = icmp eq ptr %1387, null
  br i1 %1388, label %1411, label %1389

1389:                                             ; preds = %1383
  %1390 = load i32, ptr %417, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @s2n_print_stacktrace(ptr noundef %1391) #11
  %1393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1394 = trunc nuw i8 %1393 to i1
  br i1 %1394, label %1395, label %1399

1395:                                             ; preds = %1389
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = call i32 @fileno(ptr noundef %1396) #11
  %1398 = call i32 @isatty(i32 noundef %1397) #11
  %.not311 = icmp eq i32 %1398, 0
  br i1 %.not311, label %1399, label %1400

1399:                                             ; preds = %1395, %1389
  br label %1400

1400:                                             ; preds = %1395, %1399
  %.str.5.sink864 = phi ptr [ @.str.5, %1399 ], [ @.str.2, %1395 ]
  store i32 %1390, ptr %417, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = load i32, ptr %363, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror(i32 noundef %1403, ptr noundef nonnull @.str.4) #11
  %1405 = load i32, ptr %363, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror_debug(i32 noundef %1405, ptr noundef nonnull @.str.4) #11
  %1407 = load i32, ptr %417, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #11
  %1409 = load i32, ptr %417, align 4, !tbaa !5
  %1410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef nonnull %.str.5.sink864, i32 noundef %1402, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %1404, ptr noundef %1406, ptr noundef %1408, i32 noundef %1409) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1411:                                             ; preds = %1383
  %1412 = add nsw i32 %1384, 2
  store i32 %1412, ptr @test_count, align 4, !tbaa !5
  %1413 = call i32 %1107(ptr noundef nonnull %1295, ptr noundef nonnull %9) #11
  %1414 = icmp eq i32 %1413, -1
  br i1 %1414, label %1437, label %1415

1415:                                             ; preds = %1411
  %1416 = load i32, ptr %417, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @s2n_print_stacktrace(ptr noundef %1417) #11
  %1419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1420 = trunc nuw i8 %1419 to i1
  br i1 %1420, label %1421, label %1425

1421:                                             ; preds = %1415
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @fileno(ptr noundef %1422) #11
  %1424 = call i32 @isatty(i32 noundef %1423) #11
  %.not312 = icmp eq i32 %1424, 0
  br i1 %.not312, label %1425, label %1426

1425:                                             ; preds = %1421, %1415
  br label %1426

1426:                                             ; preds = %1421, %1425
  %.str.5.sink873 = phi ptr [ @.str.5, %1425 ], [ @.str.2, %1421 ]
  store i32 %1416, ptr %417, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = load i32, ptr %363, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror(i32 noundef %1429, ptr noundef nonnull @.str.4) #11
  %1431 = load i32, ptr %363, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef nonnull @.str.4) #11
  %1433 = load i32, ptr %417, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #11
  %1435 = load i32, ptr %417, align 4, !tbaa !5
  %1436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef nonnull %.str.5.sink873, i32 noundef %1428, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1430, ptr noundef %1432, ptr noundef %1434, i32 noundef %1435) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1437:                                             ; preds = %1411
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = add nsw i32 %1438, 1
  store i32 %1439, ptr @test_count, align 4, !tbaa !5
  %1440 = load i32, ptr %363, align 4, !tbaa !5
  %1441 = icmp eq i32 %1440, 469762089
  br i1 %1441, label %1464, label %1442

1442:                                             ; preds = %1437
  %1443 = load i32, ptr %417, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = call i32 @s2n_print_stacktrace(ptr noundef %1444) #11
  %1446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1447 = trunc nuw i8 %1446 to i1
  br i1 %1447, label %1448, label %1452

1448:                                             ; preds = %1442
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @fileno(ptr noundef %1449) #11
  %1451 = call i32 @isatty(i32 noundef %1450) #11
  %.not313 = icmp eq i32 %1451, 0
  br i1 %.not313, label %1452, label %1453

1452:                                             ; preds = %1448, %1442
  br label %1453

1453:                                             ; preds = %1448, %1452
  %.str.5.sink882 = phi ptr [ @.str.5, %1452 ], [ @.str.2, %1448 ]
  store i32 %1443, ptr %417, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %1456 = load i32, ptr %363, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror(i32 noundef %1456, ptr noundef nonnull @.str.4) #11
  %1458 = load i32, ptr %363, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror_debug(i32 noundef %1458, ptr noundef nonnull @.str.4) #11
  %1460 = load i32, ptr %417, align 4, !tbaa !5
  %1461 = call ptr @strerror(i32 noundef %1460) #11
  %1462 = load i32, ptr %417, align 4, !tbaa !5
  %1463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1454, ptr noundef nonnull %.str.5.sink882, i32 noundef %1455, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1457, ptr noundef %1459, ptr noundef %1461, i32 noundef %1462) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1464:                                             ; preds = %1437
  %1465 = add nsw i32 %1438, 2
  store i32 %1465, ptr @test_count, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #11
  %1467 = icmp eq ptr %1466, null
  br i1 %1467, label %1468, label %1490

1468:                                             ; preds = %1464
  %1469 = load i32, ptr %417, align 4, !tbaa !5
  %1470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1471 = call i32 @s2n_print_stacktrace(ptr noundef %1470) #11
  %1472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1473 = trunc nuw i8 %1472 to i1
  br i1 %1473, label %1474, label %1478

1474:                                             ; preds = %1468
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @fileno(ptr noundef %1475) #11
  %1477 = call i32 @isatty(i32 noundef %1476) #11
  %.not365 = icmp eq i32 %1477, 0
  br i1 %.not365, label %1478, label %1479

1478:                                             ; preds = %1474, %1468
  br label %1479

1479:                                             ; preds = %1474, %1478
  %.str.5.sink891 = phi ptr [ @.str.5, %1478 ], [ @.str.2, %1474 ]
  store i32 %1469, ptr %417, align 4, !tbaa !5
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = load i32, ptr %363, align 4, !tbaa !5
  %1483 = call ptr @s2n_strerror(i32 noundef %1482, ptr noundef nonnull @.str.4) #11
  %1484 = load i32, ptr %363, align 4, !tbaa !5
  %1485 = call ptr @s2n_strerror_debug(i32 noundef %1484, ptr noundef nonnull @.str.4) #11
  %1486 = load i32, ptr %417, align 4, !tbaa !5
  %1487 = call ptr @strerror(i32 noundef %1486) #11
  %1488 = load i32, ptr %417, align 4, !tbaa !5
  %1489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1480, ptr noundef nonnull %.str.5.sink891, i32 noundef %1481, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1483, ptr noundef %1485, ptr noundef %1487, i32 noundef %1488) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1490:                                             ; preds = %1464
  store i32 0, ptr %363, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %417, align 4, !tbaa !5
  %1491 = load i32, ptr @test_count, align 4, !tbaa !5
  %1492 = add nsw i32 %1491, 1
  store i32 %1492, ptr @test_count, align 4, !tbaa !5
  %1493 = load ptr, ptr %1386, align 8, !tbaa !48
  %1494 = icmp eq ptr %1493, null
  br i1 %1494, label %1517, label %1495

1495:                                             ; preds = %1490
  %1496 = load i32, ptr %417, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = call i32 @s2n_print_stacktrace(ptr noundef %1497) #11
  %1499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1500 = trunc nuw i8 %1499 to i1
  br i1 %1500, label %1501, label %1505

1501:                                             ; preds = %1495
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = call i32 @fileno(ptr noundef %1502) #11
  %1504 = call i32 @isatty(i32 noundef %1503) #11
  %.not314 = icmp eq i32 %1504, 0
  br i1 %.not314, label %1505, label %1506

1505:                                             ; preds = %1501, %1495
  br label %1506

1506:                                             ; preds = %1501, %1505
  %.str.5.sink900 = phi ptr [ @.str.5, %1505 ], [ @.str.2, %1501 ]
  store i32 %1496, ptr %417, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = load i32, ptr %363, align 4, !tbaa !5
  %1510 = call ptr @s2n_strerror(i32 noundef %1509, ptr noundef nonnull @.str.4) #11
  %1511 = load i32, ptr %363, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror_debug(i32 noundef %1511, ptr noundef nonnull @.str.4) #11
  %1513 = load i32, ptr %417, align 4, !tbaa !5
  %1514 = call ptr @strerror(i32 noundef %1513) #11
  %1515 = load i32, ptr %417, align 4, !tbaa !5
  %1516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1507, ptr noundef nonnull %.str.5.sink900, i32 noundef %1508, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %1510, ptr noundef %1512, ptr noundef %1514, i32 noundef %1515) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1517:                                             ; preds = %1490
  %1518 = add nsw i32 %1491, 2
  store i32 %1518, ptr @test_count, align 4, !tbaa !5
  %1519 = call i32 @s2n_connection_free(ptr noundef nonnull %1295) #11
  %1520 = icmp eq i32 %1519, -1
  br i1 %1520, label %1521, label %1543

1521:                                             ; preds = %1517
  %1522 = load i32, ptr %417, align 4, !tbaa !5
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = call i32 @s2n_print_stacktrace(ptr noundef %1523) #11
  %1525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1526 = trunc nuw i8 %1525 to i1
  br i1 %1526, label %1527, label %1531

1527:                                             ; preds = %1521
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = call i32 @fileno(ptr noundef %1528) #11
  %1530 = call i32 @isatty(i32 noundef %1529) #11
  %.not364 = icmp eq i32 %1530, 0
  br i1 %.not364, label %1531, label %1532

1531:                                             ; preds = %1527, %1521
  br label %1532

1532:                                             ; preds = %1527, %1531
  %.str.5.sink909 = phi ptr [ @.str.5, %1531 ], [ @.str.2, %1527 ]
  store i32 %1522, ptr %417, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = load i32, ptr @test_count, align 4, !tbaa !5
  %1535 = load i32, ptr %363, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror(i32 noundef %1535, ptr noundef nonnull @.str.4) #11
  %1537 = load i32, ptr %363, align 4, !tbaa !5
  %1538 = call ptr @s2n_strerror_debug(i32 noundef %1537, ptr noundef nonnull @.str.4) #11
  %1539 = load i32, ptr %417, align 4, !tbaa !5
  %1540 = call ptr @strerror(i32 noundef %1539) #11
  %1541 = load i32, ptr %417, align 4, !tbaa !5
  %1542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1533, ptr noundef nonnull %.str.5.sink909, i32 noundef %1534, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %1536, ptr noundef %1538, ptr noundef %1540, i32 noundef %1541) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1543:                                             ; preds = %1517
  %1544 = load i32, ptr @test_count, align 4, !tbaa !5
  %1545 = add nsw i32 %1544, 1
  store i32 %1545, ptr @test_count, align 4, !tbaa !5
  %1546 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #11
  %1547 = icmp eq i32 %1546, -1
  br i1 %1547, label %1548, label %1570

1548:                                             ; preds = %1543
  %1549 = load i32, ptr %417, align 4, !tbaa !5
  %1550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1551 = call i32 @s2n_print_stacktrace(ptr noundef %1550) #11
  %1552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1553 = trunc nuw i8 %1552 to i1
  br i1 %1553, label %1554, label %1558

1554:                                             ; preds = %1548
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = call i32 @fileno(ptr noundef %1555) #11
  %1557 = call i32 @isatty(i32 noundef %1556) #11
  %.not363 = icmp eq i32 %1557, 0
  br i1 %.not363, label %1558, label %1559

1558:                                             ; preds = %1554, %1548
  br label %1559

1559:                                             ; preds = %1554, %1558
  %.str.5.sink918 = phi ptr [ @.str.5, %1558 ], [ @.str.2, %1554 ]
  store i32 %1549, ptr %417, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %1562 = load i32, ptr %363, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror(i32 noundef %1562, ptr noundef nonnull @.str.4) #11
  %1564 = load i32, ptr %363, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror_debug(i32 noundef %1564, ptr noundef nonnull @.str.4) #11
  %1566 = load i32, ptr %417, align 4, !tbaa !5
  %1567 = call ptr @strerror(i32 noundef %1566) #11
  %1568 = load i32, ptr %417, align 4, !tbaa !5
  %1569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1560, ptr noundef nonnull %.str.5.sink918, i32 noundef %1561, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %1563, ptr noundef %1565, ptr noundef %1567, i32 noundef %1568) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1570:                                             ; preds = %1543
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, i8 0, i64 40, i1 false)
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = add nsw i32 %1571, 1
  store i32 %1572, ptr @test_count, align 4, !tbaa !5
  %1573 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %10, i32 noundef 0) #11
  %1574 = icmp eq i32 %1573, -1
  br i1 %1574, label %1575, label %1597

1575:                                             ; preds = %1570
  %1576 = load i32, ptr %417, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @s2n_print_stacktrace(ptr noundef %1577) #11
  %1579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1580 = trunc nuw i8 %1579 to i1
  br i1 %1580, label %1581, label %1585

1581:                                             ; preds = %1575
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = call i32 @fileno(ptr noundef %1582) #11
  %1584 = call i32 @isatty(i32 noundef %1583) #11
  %.not362 = icmp eq i32 %1584, 0
  br i1 %.not362, label %1585, label %1586

1585:                                             ; preds = %1581, %1575
  br label %1586

1586:                                             ; preds = %1581, %1585
  %.str.5.sink927 = phi ptr [ @.str.5, %1585 ], [ @.str.2, %1581 ]
  store i32 %1576, ptr %417, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %1589 = load i32, ptr %363, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror(i32 noundef %1589, ptr noundef nonnull @.str.4) #11
  %1591 = load i32, ptr %363, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror_debug(i32 noundef %1591, ptr noundef nonnull @.str.4) #11
  %1593 = load i32, ptr %417, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #11
  %1595 = load i32, ptr %417, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1587, ptr noundef nonnull %.str.5.sink927, i32 noundef %1588, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %1590, ptr noundef %1592, ptr noundef %1594, i32 noundef %1595) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1597:                                             ; preds = %1570
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = add nsw i32 %1598, 1
  store i32 %1599, ptr @test_count, align 4, !tbaa !5
  %1600 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %1601 = icmp eq ptr %1600, null
  br i1 %1601, label %1602, label %1624

1602:                                             ; preds = %1597
  %1603 = load i32, ptr %417, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @s2n_print_stacktrace(ptr noundef %1604) #11
  %1606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1607 = trunc nuw i8 %1606 to i1
  br i1 %1607, label %1608, label %1612

1608:                                             ; preds = %1602
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @fileno(ptr noundef %1609) #11
  %1611 = call i32 @isatty(i32 noundef %1610) #11
  %.not361 = icmp eq i32 %1611, 0
  br i1 %.not361, label %1612, label %1613

1612:                                             ; preds = %1608, %1602
  br label %1613

1613:                                             ; preds = %1608, %1612
  %.str.5.sink936 = phi ptr [ @.str.5, %1612 ], [ @.str.2, %1608 ]
  store i32 %1603, ptr %417, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = load i32, ptr %363, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror(i32 noundef %1616, ptr noundef nonnull @.str.4) #11
  %1618 = load i32, ptr %363, align 4, !tbaa !5
  %1619 = call ptr @s2n_strerror_debug(i32 noundef %1618, ptr noundef nonnull @.str.4) #11
  %1620 = load i32, ptr %417, align 4, !tbaa !5
  %1621 = call ptr @strerror(i32 noundef %1620) #11
  %1622 = load i32, ptr %417, align 4, !tbaa !5
  %1623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1614, ptr noundef nonnull %.str.5.sink936, i32 noundef %1615, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1617, ptr noundef %1619, ptr noundef %1621, i32 noundef %1622) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1624:                                             ; preds = %1597
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = add nsw i32 %1625, 1
  store i32 %1626, ptr @test_count, align 4, !tbaa !5
  %1627 = call i32 @setup_client_psks(ptr noundef nonnull %1600)
  %1628 = call zeroext i1 @s2n_result_is_ok(i32 %1627)
  br i1 %1628, label %1651, label %1629

1629:                                             ; preds = %1624
  %1630 = load i32, ptr %417, align 4, !tbaa !5
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = call i32 @s2n_print_stacktrace(ptr noundef %1631) #11
  %1633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1634 = trunc nuw i8 %1633 to i1
  br i1 %1634, label %1635, label %1639

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

1639:                                             ; preds = %1635, %1629
  br label %1640

1640:                                             ; preds = %1635, %1639
  %.str.5.sink945 = phi ptr [ @.str.5, %1639 ], [ @.str.2, %1635 ]
  store i32 %1630, ptr %417, align 4, !tbaa !5
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = load i32, ptr @test_count, align 4, !tbaa !5
  %1643 = load i32, ptr %363, align 4, !tbaa !5
  %1644 = call ptr @s2n_strerror(i32 noundef %1643, ptr noundef nonnull @.str.4) #11
  %1645 = load i32, ptr %363, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror_debug(i32 noundef %1645, ptr noundef nonnull @.str.4) #11
  %1647 = load i32, ptr %417, align 4, !tbaa !5
  %1648 = call ptr @strerror(i32 noundef %1647) #11
  %1649 = load i32, ptr %417, align 4, !tbaa !5
  %1650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1641, ptr noundef nonnull %.str.5.sink945, i32 noundef %1642, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1644, ptr noundef %1646, ptr noundef %1648, i32 noundef %1649) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1651:                                             ; preds = %1624
  %1652 = load i8, ptr %6, align 1, !tbaa !47
  %1653 = and i8 %1652, 7
  %1654 = shl nuw i8 1, %1653
  %1655 = getelementptr inbounds i8, ptr %1600, i64 124
  %1656 = lshr i8 %1652, 3
  %1657 = zext nneg i8 %1656 to i64
  %1658 = getelementptr inbounds [22 x i8], ptr %1655, i64 0, i64 %1657
  %1659 = load i8, ptr %1658, align 1, !tbaa !47
  %1660 = or i8 %1654, %1659
  store i8 %1660, ptr %1658, align 1, !tbaa !47
  %1661 = getelementptr inbounds i8, ptr %1600, i64 220
  store i8 34, ptr %1661, align 4, !tbaa !44
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = add nsw i32 %1662, 1
  store i32 %1663, ptr @test_count, align 4, !tbaa !5
  %1664 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %10, i16 noundef zeroext 1) #11
  %1665 = icmp eq i32 %1664, -1
  br i1 %1665, label %1666, label %1688

1666:                                             ; preds = %1651
  %1667 = load i32, ptr %417, align 4, !tbaa !5
  %1668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1669 = call i32 @s2n_print_stacktrace(ptr noundef %1668) #11
  %1670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1671 = trunc nuw i8 %1670 to i1
  br i1 %1671, label %1672, label %1676

1672:                                             ; preds = %1666
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = call i32 @fileno(ptr noundef %1673) #11
  %1675 = call i32 @isatty(i32 noundef %1674) #11
  %.not360 = icmp eq i32 %1675, 0
  br i1 %.not360, label %1676, label %1677

1676:                                             ; preds = %1672, %1666
  br label %1677

1677:                                             ; preds = %1672, %1676
  %.str.5.sink954 = phi ptr [ @.str.5, %1676 ], [ @.str.2, %1672 ]
  store i32 %1667, ptr %417, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = load i32, ptr %363, align 4, !tbaa !5
  %1681 = call ptr @s2n_strerror(i32 noundef %1680, ptr noundef nonnull @.str.4) #11
  %1682 = load i32, ptr %363, align 4, !tbaa !5
  %1683 = call ptr @s2n_strerror_debug(i32 noundef %1682, ptr noundef nonnull @.str.4) #11
  %1684 = load i32, ptr %417, align 4, !tbaa !5
  %1685 = call ptr @strerror(i32 noundef %1684) #11
  %1686 = load i32, ptr %417, align 4, !tbaa !5
  %1687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1678, ptr noundef nonnull %.str.5.sink954, i32 noundef %1679, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %1681, ptr noundef %1683, ptr noundef %1685, i32 noundef %1686) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1688:                                             ; preds = %1651
  %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 = getelementptr inbounds i8, ptr %1600, i64 1736
  %1692 = load ptr, ptr %1691, align 8, !tbaa !48
  %1693 = icmp eq ptr %1692, null
  br i1 %1693, label %1716, label %1694

1694:                                             ; preds = %1688
  %1695 = load i32, ptr %417, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @s2n_print_stacktrace(ptr noundef %1696) #11
  %1698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1699 = trunc nuw i8 %1698 to i1
  br i1 %1699, label %1700, label %1704

1700:                                             ; preds = %1694
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @fileno(ptr noundef %1701) #11
  %1703 = call i32 @isatty(i32 noundef %1702) #11
  %.not316 = icmp eq i32 %1703, 0
  br i1 %.not316, label %1704, label %1705

1704:                                             ; preds = %1700, %1694
  br label %1705

1705:                                             ; preds = %1700, %1704
  %.str.5.sink963 = phi ptr [ @.str.5, %1704 ], [ @.str.2, %1700 ]
  store i32 %1695, ptr %417, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = load i32, ptr %363, align 4, !tbaa !5
  %1709 = call ptr @s2n_strerror(i32 noundef %1708, ptr noundef nonnull @.str.4) #11
  %1710 = load i32, ptr %363, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror_debug(i32 noundef %1710, ptr noundef nonnull @.str.4) #11
  %1712 = load i32, ptr %417, align 4, !tbaa !5
  %1713 = call ptr @strerror(i32 noundef %1712) #11
  %1714 = load i32, ptr %417, align 4, !tbaa !5
  %1715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef nonnull %.str.5.sink963, i32 noundef %1707, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %1709, ptr noundef %1711, ptr noundef %1713, i32 noundef %1714) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1716:                                             ; preds = %1688
  %1717 = add nsw i32 %1689, 2
  store i32 %1717, ptr @test_count, align 4, !tbaa !5
  %1718 = call i32 %1107(ptr noundef nonnull %1600, ptr noundef nonnull %10) #11
  %1719 = icmp eq i32 %1718, -1
  br i1 %1719, label %1720, label %1742

1720:                                             ; preds = %1716
  %1721 = load i32, ptr %417, align 4, !tbaa !5
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @s2n_print_stacktrace(ptr noundef %1722) #11
  %1724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1725 = trunc nuw i8 %1724 to i1
  br i1 %1725, label %1726, label %1730

1726:                                             ; preds = %1720
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = call i32 @fileno(ptr noundef %1727) #11
  %1729 = call i32 @isatty(i32 noundef %1728) #11
  %.not359 = icmp eq i32 %1729, 0
  br i1 %.not359, label %1730, label %1731

1730:                                             ; preds = %1726, %1720
  br label %1731

1731:                                             ; preds = %1726, %1730
  %.str.5.sink972 = phi ptr [ @.str.5, %1730 ], [ @.str.2, %1726 ]
  store i32 %1721, ptr %417, align 4, !tbaa !5
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = load i32, ptr @test_count, align 4, !tbaa !5
  %1734 = load i32, ptr %363, align 4, !tbaa !5
  %1735 = call ptr @s2n_strerror(i32 noundef %1734, ptr noundef nonnull @.str.4) #11
  %1736 = load i32, ptr %363, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror_debug(i32 noundef %1736, ptr noundef nonnull @.str.4) #11
  %1738 = load i32, ptr %417, align 4, !tbaa !5
  %1739 = call ptr @strerror(i32 noundef %1738) #11
  %1740 = load i32, ptr %417, align 4, !tbaa !5
  %1741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1732, ptr noundef nonnull %.str.5.sink972, i32 noundef %1733, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %1735, ptr noundef %1737, ptr noundef %1739, i32 noundef %1740) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1742:                                             ; preds = %1716
  %1743 = load i32, ptr @test_count, align 4, !tbaa !5
  %1744 = add nsw i32 %1743, 1
  store i32 %1744, ptr @test_count, align 4, !tbaa !5
  %1745 = getelementptr inbounds i8, ptr %1600, i64 1744
  %1746 = load i32, ptr %1745, align 8, !tbaa !50
  %1747 = icmp eq i32 %1746, 2
  br i1 %1747, label %1770, label %1748

1748:                                             ; preds = %1742
  %1749 = load i32, ptr %417, align 4, !tbaa !5
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @s2n_print_stacktrace(ptr noundef %1750) #11
  %1752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1753 = trunc nuw i8 %1752 to i1
  br i1 %1753, label %1754, label %1758

1754:                                             ; preds = %1748
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = call i32 @fileno(ptr noundef %1755) #11
  %1757 = call i32 @isatty(i32 noundef %1756) #11
  %.not317 = icmp eq i32 %1757, 0
  br i1 %.not317, label %1758, label %1759

1758:                                             ; preds = %1754, %1748
  br label %1759

1759:                                             ; preds = %1754, %1758
  %.str.5.sink981 = phi ptr [ @.str.5, %1758 ], [ @.str.2, %1754 ]
  store i32 %1749, ptr %417, align 4, !tbaa !5
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = load i32, ptr %363, align 4, !tbaa !5
  %1763 = call ptr @s2n_strerror(i32 noundef %1762, ptr noundef nonnull @.str.4) #11
  %1764 = load i32, ptr %363, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror_debug(i32 noundef %1764, ptr noundef nonnull @.str.4) #11
  %1766 = load i32, ptr %417, align 4, !tbaa !5
  %1767 = call ptr @strerror(i32 noundef %1766) #11
  %1768 = load i32, ptr %417, align 4, !tbaa !5
  %1769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1760, ptr noundef nonnull %.str.5.sink981, i32 noundef %1761, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %1763, ptr noundef %1765, ptr noundef %1767, i32 noundef %1768) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1770:                                             ; preds = %1742
  %1771 = add nsw i32 %1743, 2
  store i32 %1771, ptr @test_count, align 4, !tbaa !5
  %1772 = getelementptr inbounds i8, ptr %1600, i64 1730
  %1773 = load i16, ptr %1772, align 2, !tbaa !18
  %1774 = icmp eq i16 %1773, 1
  br i1 %1774, label %1797, label %1775

1775:                                             ; preds = %1770
  %1776 = load i32, ptr %417, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @s2n_print_stacktrace(ptr noundef %1777) #11
  %1779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1780 = trunc nuw i8 %1779 to i1
  br i1 %1780, label %1781, label %1785

1781:                                             ; preds = %1775
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = call i32 @fileno(ptr noundef %1782) #11
  %1784 = call i32 @isatty(i32 noundef %1783) #11
  %.not318 = icmp eq i32 %1784, 0
  br i1 %.not318, label %1785, label %1786

1785:                                             ; preds = %1781, %1775
  br label %1786

1786:                                             ; preds = %1781, %1785
  %.str.5.sink990 = phi ptr [ @.str.5, %1785 ], [ @.str.2, %1781 ]
  store i32 %1776, ptr %417, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = load i32, ptr @test_count, align 4, !tbaa !5
  %1789 = load i32, ptr %363, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef nonnull @.str.4) #11
  %1791 = load i32, ptr %363, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror_debug(i32 noundef %1791, ptr noundef nonnull @.str.4) #11
  %1793 = load i32, ptr %417, align 4, !tbaa !5
  %1794 = call ptr @strerror(i32 noundef %1793) #11
  %1795 = load i32, ptr %417, align 4, !tbaa !5
  %1796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1787, ptr noundef nonnull %.str.5.sink990, i32 noundef %1788, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %1790, ptr noundef %1792, ptr noundef %1794, i32 noundef %1795) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1797:                                             ; preds = %1770
  %1798 = add nsw i32 %1743, 3
  store i32 %1798, ptr @test_count, align 4, !tbaa !5
  %1799 = load ptr, ptr %1691, align 8, !tbaa !48
  %1800 = getelementptr inbounds i8, ptr %1799, i64 16
  %1801 = load i32, ptr %1800, align 8, !tbaa !51
  %1802 = icmp eq i32 %1801, 14
  br i1 %1802, label %1825, label %1803

1803:                                             ; preds = %1797
  %1804 = load i32, ptr %417, align 4, !tbaa !5
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = call i32 @s2n_print_stacktrace(ptr noundef %1805) #11
  %1807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1808 = trunc nuw i8 %1807 to i1
  br i1 %1808, label %1809, label %1813

1809:                                             ; preds = %1803
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = call i32 @fileno(ptr noundef %1810) #11
  %1812 = call i32 @isatty(i32 noundef %1811) #11
  %.not319 = icmp eq i32 %1812, 0
  br i1 %.not319, label %1813, label %1814

1813:                                             ; preds = %1809, %1803
  br label %1814

1814:                                             ; preds = %1809, %1813
  %.str.5.sink999 = phi ptr [ @.str.5, %1813 ], [ @.str.2, %1809 ]
  store i32 %1804, ptr %417, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = load i32, ptr %363, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef nonnull @.str.4) #11
  %1819 = load i32, ptr %363, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror_debug(i32 noundef %1819, ptr noundef nonnull @.str.4) #11
  %1821 = load i32, ptr %417, align 4, !tbaa !5
  %1822 = call ptr @strerror(i32 noundef %1821) #11
  %1823 = load i32, ptr %417, align 4, !tbaa !5
  %1824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef nonnull %.str.5.sink999, i32 noundef %1816, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %1818, ptr noundef %1820, ptr noundef %1822, i32 noundef %1823) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1825:                                             ; preds = %1797
  %1826 = add nsw i32 %1743, 4
  store i32 %1826, ptr @test_count, align 4, !tbaa !5
  %1827 = getelementptr inbounds i8, ptr %1799, i64 8
  %1828 = load ptr, ptr %1827, align 8, !tbaa !54
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(14) %1828, ptr noundef nonnull dereferenceable(14) @test_identity, i64 14)
  %1829 = icmp eq i32 %bcmp, 0
  br i1 %1829, label %1852, label %1830

1830:                                             ; preds = %1825
  %1831 = load i32, ptr %417, align 4, !tbaa !5
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = call i32 @s2n_print_stacktrace(ptr noundef %1832) #11
  %1834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1835 = trunc nuw i8 %1834 to i1
  br i1 %1835, label %1836, label %1840

1836:                                             ; preds = %1830
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = call i32 @fileno(ptr noundef %1837) #11
  %1839 = call i32 @isatty(i32 noundef %1838) #11
  %.not320 = icmp eq i32 %1839, 0
  br i1 %.not320, label %1840, label %1841

1840:                                             ; preds = %1836, %1830
  br label %1841

1841:                                             ; preds = %1836, %1840
  %.str.5.sink1008 = phi ptr [ @.str.5, %1840 ], [ @.str.2, %1836 ]
  store i32 %1831, ptr %417, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = load i32, ptr @test_count, align 4, !tbaa !5
  %1844 = load i32, ptr %363, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror(i32 noundef %1844, ptr noundef nonnull @.str.4) #11
  %1846 = load i32, ptr %363, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror_debug(i32 noundef %1846, ptr noundef nonnull @.str.4) #11
  %1848 = load i32, ptr %417, align 4, !tbaa !5
  %1849 = call ptr @strerror(i32 noundef %1848) #11
  %1850 = load i32, ptr %417, align 4, !tbaa !5
  %1851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1842, ptr noundef nonnull %.str.5.sink1008, i32 noundef %1843, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %1845, ptr noundef %1847, ptr noundef %1849, i32 noundef %1850) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1852:                                             ; preds = %1825
  %1853 = add nsw i32 %1743, 5
  store i32 %1853, ptr @test_count, align 4, !tbaa !5
  %1854 = getelementptr inbounds i8, ptr %1799, i64 40
  %1855 = load i32, ptr %1854, align 8, !tbaa !55
  %1856 = icmp eq i32 %1855, 12
  br i1 %1856, label %1879, label %1857

1857:                                             ; preds = %1852
  %1858 = load i32, ptr %417, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = call i32 @s2n_print_stacktrace(ptr noundef %1859) #11
  %1861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1862 = trunc nuw i8 %1861 to i1
  br i1 %1862, label %1863, label %1867

1863:                                             ; preds = %1857
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @fileno(ptr noundef %1864) #11
  %1866 = call i32 @isatty(i32 noundef %1865) #11
  %.not321 = icmp eq i32 %1866, 0
  br i1 %.not321, label %1867, label %1868

1867:                                             ; preds = %1863, %1857
  br label %1868

1868:                                             ; preds = %1863, %1867
  %.str.5.sink1017 = phi ptr [ @.str.5, %1867 ], [ @.str.2, %1863 ]
  store i32 %1858, ptr %417, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = load i32, ptr %363, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef nonnull @.str.4) #11
  %1873 = load i32, ptr %363, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror_debug(i32 noundef %1873, ptr noundef nonnull @.str.4) #11
  %1875 = load i32, ptr %417, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #11
  %1877 = load i32, ptr %417, align 4, !tbaa !5
  %1878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1869, ptr noundef nonnull %.str.5.sink1017, i32 noundef %1870, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %1872, ptr noundef %1874, ptr noundef %1876, i32 noundef %1877) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1879:                                             ; preds = %1852
  %1880 = add nsw i32 %1743, 6
  store i32 %1880, ptr @test_count, align 4, !tbaa !5
  %1881 = getelementptr inbounds i8, ptr %1799, i64 32
  %1882 = load ptr, ptr %1881, align 8, !tbaa !56
  %bcmp322 = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %1882, ptr noundef nonnull dereferenceable(12) @test_secret, i64 12)
  %1883 = icmp eq i32 %bcmp322, 0
  br i1 %1883, label %1906, label %1884

1884:                                             ; preds = %1879
  %1885 = load i32, ptr %417, align 4, !tbaa !5
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = call i32 @s2n_print_stacktrace(ptr noundef %1886) #11
  %1888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1889 = trunc nuw i8 %1888 to i1
  br i1 %1889, label %1890, label %1894

1890:                                             ; preds = %1884
  %1891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1892 = call i32 @fileno(ptr noundef %1891) #11
  %1893 = call i32 @isatty(i32 noundef %1892) #11
  %.not323 = icmp eq i32 %1893, 0
  br i1 %.not323, label %1894, label %1895

1894:                                             ; preds = %1890, %1884
  br label %1895

1895:                                             ; preds = %1890, %1894
  %.str.5.sink1026 = phi ptr [ @.str.5, %1894 ], [ @.str.2, %1890 ]
  store i32 %1885, ptr %417, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = load i32, ptr %363, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror(i32 noundef %1898, ptr noundef nonnull @.str.4) #11
  %1900 = load i32, ptr %363, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror_debug(i32 noundef %1900, ptr noundef nonnull @.str.4) #11
  %1902 = load i32, ptr %417, align 4, !tbaa !5
  %1903 = call ptr @strerror(i32 noundef %1902) #11
  %1904 = load i32, ptr %417, align 4, !tbaa !5
  %1905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1896, ptr noundef nonnull %.str.5.sink1026, i32 noundef %1897, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %1899, ptr noundef %1901, ptr noundef %1903, i32 noundef %1904) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1906:                                             ; preds = %1879
  %1907 = add nsw i32 %1743, 7
  store i32 %1907, ptr @test_count, align 4, !tbaa !5
  %1908 = getelementptr inbounds i8, ptr %1799, i64 56
  %1909 = load i32, ptr %1908, align 8, !tbaa !57
  %1910 = icmp eq i32 %1909, 5
  br i1 %1910, label %1933, label %1911

1911:                                             ; preds = %1906
  %1912 = load i32, ptr %417, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = call i32 @s2n_print_stacktrace(ptr noundef %1913) #11
  %1915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1916 = trunc nuw i8 %1915 to i1
  br i1 %1916, label %1917, label %1921

1917:                                             ; preds = %1911
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = call i32 @fileno(ptr noundef %1918) #11
  %1920 = call i32 @isatty(i32 noundef %1919) #11
  %.not324 = icmp eq i32 %1920, 0
  br i1 %.not324, label %1921, label %1922

1921:                                             ; preds = %1917, %1911
  br label %1922

1922:                                             ; preds = %1917, %1921
  %.str.5.sink1035 = phi ptr [ @.str.5, %1921 ], [ @.str.2, %1917 ]
  store i32 %1912, ptr %417, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = load i32, ptr @test_count, align 4, !tbaa !5
  %1925 = load i32, ptr %363, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror(i32 noundef %1925, ptr noundef nonnull @.str.4) #11
  %1927 = load i32, ptr %363, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror_debug(i32 noundef %1927, ptr noundef nonnull @.str.4) #11
  %1929 = load i32, ptr %417, align 4, !tbaa !5
  %1930 = call ptr @strerror(i32 noundef %1929) #11
  %1931 = load i32, ptr %417, align 4, !tbaa !5
  %1932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1923, ptr noundef nonnull %.str.5.sink1035, i32 noundef %1924, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %1926, ptr noundef %1928, ptr noundef %1930, i32 noundef %1931) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1933:                                             ; preds = %1906
  %1934 = add nsw i32 %1743, 8
  store i32 %1934, ptr @test_count, align 4, !tbaa !5
  %1935 = call i32 @s2n_connection_free(ptr noundef nonnull %1600) #11
  %1936 = icmp eq i32 %1935, -1
  br i1 %1936, label %1937, label %1959

1937:                                             ; preds = %1933
  %1938 = load i32, ptr %417, align 4, !tbaa !5
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = call i32 @s2n_print_stacktrace(ptr noundef %1939) #11
  %1941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1942 = trunc nuw i8 %1941 to i1
  br i1 %1942, label %1943, label %1947

1943:                                             ; preds = %1937
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = call i32 @fileno(ptr noundef %1944) #11
  %1946 = call i32 @isatty(i32 noundef %1945) #11
  %.not358 = icmp eq i32 %1946, 0
  br i1 %.not358, label %1947, label %1948

1947:                                             ; preds = %1943, %1937
  br label %1948

1948:                                             ; preds = %1943, %1947
  %.str.5.sink1044 = phi ptr [ @.str.5, %1947 ], [ @.str.2, %1943 ]
  store i32 %1938, ptr %417, align 4, !tbaa !5
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = load i32, ptr @test_count, align 4, !tbaa !5
  %1951 = load i32, ptr %363, align 4, !tbaa !5
  %1952 = call ptr @s2n_strerror(i32 noundef %1951, ptr noundef nonnull @.str.4) #11
  %1953 = load i32, ptr %363, align 4, !tbaa !5
  %1954 = call ptr @s2n_strerror_debug(i32 noundef %1953, ptr noundef nonnull @.str.4) #11
  %1955 = load i32, ptr %417, align 4, !tbaa !5
  %1956 = call ptr @strerror(i32 noundef %1955) #11
  %1957 = load i32, ptr %417, align 4, !tbaa !5
  %1958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1949, ptr noundef nonnull %.str.5.sink1044, i32 noundef %1950, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %1952, ptr noundef %1954, ptr noundef %1956, i32 noundef %1957) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1959:                                             ; preds = %1933
  %1960 = load i32, ptr @test_count, align 4, !tbaa !5
  %1961 = add nsw i32 %1960, 1
  store i32 %1961, ptr @test_count, align 4, !tbaa !5
  %1962 = call i32 @s2n_stuffer_free(ptr noundef nonnull %10) #11
  %1963 = icmp eq i32 %1962, -1
  br i1 %1963, label %1964, label %1986

1964:                                             ; preds = %1959
  %1965 = load i32, ptr %417, align 4, !tbaa !5
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = call i32 @s2n_print_stacktrace(ptr noundef %1966) #11
  %1968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1969 = trunc nuw i8 %1968 to i1
  br i1 %1969, label %1970, label %1974

1970:                                             ; preds = %1964
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = call i32 @fileno(ptr noundef %1971) #11
  %1973 = call i32 @isatty(i32 noundef %1972) #11
  %.not357 = icmp eq i32 %1973, 0
  br i1 %.not357, label %1974, label %1975

1974:                                             ; preds = %1970, %1964
  br label %1975

1975:                                             ; preds = %1970, %1974
  %.str.5.sink1053 = phi ptr [ @.str.5, %1974 ], [ @.str.2, %1970 ]
  store i32 %1965, ptr %417, align 4, !tbaa !5
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = load i32, ptr @test_count, align 4, !tbaa !5
  %1978 = load i32, ptr %363, align 4, !tbaa !5
  %1979 = call ptr @s2n_strerror(i32 noundef %1978, ptr noundef nonnull @.str.4) #11
  %1980 = load i32, ptr %363, align 4, !tbaa !5
  %1981 = call ptr @s2n_strerror_debug(i32 noundef %1980, ptr noundef nonnull @.str.4) #11
  %1982 = load i32, ptr %417, align 4, !tbaa !5
  %1983 = call ptr @strerror(i32 noundef %1982) #11
  %1984 = load i32, ptr %417, align 4, !tbaa !5
  %1985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1976, ptr noundef nonnull %.str.5.sink1053, i32 noundef %1977, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %1979, ptr noundef %1981, ptr noundef %1983, i32 noundef %1984) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1986:                                             ; preds = %1959
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #11
  %1987 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %1987, label %1988, label %2676

1988:                                             ; preds = %1986
  %1989 = load i32, ptr @test_count, align 4, !tbaa !5
  %1990 = add nsw i32 %1989, 1
  store i32 %1990, ptr @test_count, align 4, !tbaa !5
  %1991 = call i32 (...) @s2n_enable_tls13_in_test() #11
  %1992 = icmp eq i32 %1991, -1
  br i1 %1992, label %1993, label %2015

1993:                                             ; preds = %1988
  %1994 = load i32, ptr %417, align 4, !tbaa !5
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = call i32 @s2n_print_stacktrace(ptr noundef %1995) #11
  %1997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1998 = trunc nuw i8 %1997 to i1
  br i1 %1998, label %1999, label %2003

1999:                                             ; preds = %1993
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = call i32 @fileno(ptr noundef %2000) #11
  %2002 = call i32 @isatty(i32 noundef %2001) #11
  %.not356 = icmp eq i32 %2002, 0
  br i1 %.not356, label %2003, label %2004

2003:                                             ; preds = %1999, %1993
  br label %2004

2004:                                             ; preds = %1999, %2003
  %.str.5.sink1062 = phi ptr [ @.str.5, %2003 ], [ @.str.2, %1999 ]
  store i32 %1994, ptr %417, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = load i32, ptr @test_count, align 4, !tbaa !5
  %2007 = load i32, ptr %363, align 4, !tbaa !5
  %2008 = call ptr @s2n_strerror(i32 noundef %2007, ptr noundef nonnull @.str.4) #11
  %2009 = load i32, ptr %363, align 4, !tbaa !5
  %2010 = call ptr @s2n_strerror_debug(i32 noundef %2009, ptr noundef nonnull @.str.4) #11
  %2011 = load i32, ptr %417, align 4, !tbaa !5
  %2012 = call ptr @strerror(i32 noundef %2011) #11
  %2013 = load i32, ptr %417, align 4, !tbaa !5
  %2014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2005, ptr noundef nonnull %.str.5.sink1062, i32 noundef %2006, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2008, ptr noundef %2010, ptr noundef %2012, i32 noundef %2013) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2015:                                             ; preds = %1988
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = add nsw i32 %2016, 1
  store i32 %2017, ptr @test_count, align 4, !tbaa !5
  %2018 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %2019 = icmp eq ptr %2018, null
  br i1 %2019, label %2020, label %2042

2020:                                             ; preds = %2015
  %2021 = load i32, ptr %417, align 4, !tbaa !5
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = call i32 @s2n_print_stacktrace(ptr noundef %2022) #11
  %2024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2025 = trunc nuw i8 %2024 to i1
  br i1 %2025, label %2026, label %2030

2026:                                             ; preds = %2020
  %2027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2028 = call i32 @fileno(ptr noundef %2027) #11
  %2029 = call i32 @isatty(i32 noundef %2028) #11
  %.not355 = icmp eq i32 %2029, 0
  br i1 %.not355, label %2030, label %2031

2030:                                             ; preds = %2026, %2020
  br label %2031

2031:                                             ; preds = %2026, %2030
  %.str.5.sink1071 = phi ptr [ @.str.5, %2030 ], [ @.str.2, %2026 ]
  store i32 %2021, ptr %417, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = load i32, ptr @test_count, align 4, !tbaa !5
  %2034 = load i32, ptr %363, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror(i32 noundef %2034, ptr noundef nonnull @.str.4) #11
  %2036 = load i32, ptr %363, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror_debug(i32 noundef %2036, ptr noundef nonnull @.str.4) #11
  %2038 = load i32, ptr %417, align 4, !tbaa !5
  %2039 = call ptr @strerror(i32 noundef %2038) #11
  %2040 = load i32, ptr %417, align 4, !tbaa !5
  %2041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2032, ptr noundef nonnull %.str.5.sink1071, i32 noundef %2033, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %2035, ptr noundef %2037, ptr noundef %2039, i32 noundef %2040) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2042:                                             ; preds = %2015
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = add nsw i32 %2043, 1
  store i32 %2044, ptr @test_count, align 4, !tbaa !5
  %2045 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %2046 = icmp eq ptr %2045, null
  br i1 %2046, label %2047, label %2069

2047:                                             ; preds = %2042
  %2048 = load i32, ptr %417, align 4, !tbaa !5
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @s2n_print_stacktrace(ptr noundef %2049) #11
  %2051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2052 = trunc nuw i8 %2051 to i1
  br i1 %2052, label %2053, label %2057

2053:                                             ; preds = %2047
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = call i32 @fileno(ptr noundef %2054) #11
  %2056 = call i32 @isatty(i32 noundef %2055) #11
  %.not354 = icmp eq i32 %2056, 0
  br i1 %.not354, label %2057, label %2058

2057:                                             ; preds = %2053, %2047
  br label %2058

2058:                                             ; preds = %2053, %2057
  %.str.5.sink1080 = phi ptr [ @.str.5, %2057 ], [ @.str.2, %2053 ]
  store i32 %2048, ptr %417, align 4, !tbaa !5
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = load i32, ptr @test_count, align 4, !tbaa !5
  %2061 = load i32, ptr %363, align 4, !tbaa !5
  %2062 = call ptr @s2n_strerror(i32 noundef %2061, ptr noundef nonnull @.str.4) #11
  %2063 = load i32, ptr %363, align 4, !tbaa !5
  %2064 = call ptr @s2n_strerror_debug(i32 noundef %2063, ptr noundef nonnull @.str.4) #11
  %2065 = load i32, ptr %417, align 4, !tbaa !5
  %2066 = call ptr @strerror(i32 noundef %2065) #11
  %2067 = load i32, ptr %417, align 4, !tbaa !5
  %2068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2059, ptr noundef nonnull %.str.5.sink1080, i32 noundef %2060, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %2062, ptr noundef %2064, ptr noundef %2066, i32 noundef %2067) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2069:                                             ; preds = %2042
  %2070 = load i32, ptr @test_count, align 4, !tbaa !5
  %2071 = add nsw i32 %2070, 1
  store i32 %2071, ptr @test_count, align 4, !tbaa !5
  %2072 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2018, ptr noundef nonnull @.str.47) #11
  %2073 = icmp eq i32 %2072, -1
  br i1 %2073, label %2074, label %2096

2074:                                             ; preds = %2069
  %2075 = load i32, ptr %417, align 4, !tbaa !5
  %2076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2077 = call i32 @s2n_print_stacktrace(ptr noundef %2076) #11
  %2078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2079 = trunc nuw i8 %2078 to i1
  br i1 %2079, label %2080, label %2084

2080:                                             ; preds = %2074
  %2081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2082 = call i32 @fileno(ptr noundef %2081) #11
  %2083 = call i32 @isatty(i32 noundef %2082) #11
  %.not353 = icmp eq i32 %2083, 0
  br i1 %.not353, label %2084, label %2085

2084:                                             ; preds = %2080, %2074
  br label %2085

2085:                                             ; preds = %2080, %2084
  %.str.5.sink1089 = phi ptr [ @.str.5, %2084 ], [ @.str.2, %2080 ]
  store i32 %2075, ptr %417, align 4, !tbaa !5
  %2086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2087 = load i32, ptr @test_count, align 4, !tbaa !5
  %2088 = load i32, ptr %363, align 4, !tbaa !5
  %2089 = call ptr @s2n_strerror(i32 noundef %2088, ptr noundef nonnull @.str.4) #11
  %2090 = load i32, ptr %363, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror_debug(i32 noundef %2090, ptr noundef nonnull @.str.4) #11
  %2092 = load i32, ptr %417, align 4, !tbaa !5
  %2093 = call ptr @strerror(i32 noundef %2092) #11
  %2094 = load i32, ptr %417, align 4, !tbaa !5
  %2095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2086, ptr noundef nonnull %.str.5.sink1089, i32 noundef %2087, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %2089, ptr noundef %2091, ptr noundef %2093, i32 noundef %2094) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2096:                                             ; preds = %2069
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = add nsw i32 %2097, 1
  store i32 %2098, ptr @test_count, align 4, !tbaa !5
  %2099 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2045, ptr noundef nonnull @.str.47) #11
  %2100 = icmp eq i32 %2099, -1
  br i1 %2100, label %2101, label %2123

2101:                                             ; preds = %2096
  %2102 = load i32, ptr %417, align 4, !tbaa !5
  %2103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2104 = call i32 @s2n_print_stacktrace(ptr noundef %2103) #11
  %2105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2106 = trunc nuw i8 %2105 to i1
  br i1 %2106, label %2107, label %2111

2107:                                             ; preds = %2101
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = call i32 @fileno(ptr noundef %2108) #11
  %2110 = call i32 @isatty(i32 noundef %2109) #11
  %.not352 = icmp eq i32 %2110, 0
  br i1 %.not352, label %2111, label %2112

2111:                                             ; preds = %2107, %2101
  br label %2112

2112:                                             ; preds = %2107, %2111
  %.str.5.sink1098 = phi ptr [ @.str.5, %2111 ], [ @.str.2, %2107 ]
  store i32 %2102, ptr %417, align 4, !tbaa !5
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = load i32, ptr @test_count, align 4, !tbaa !5
  %2115 = load i32, ptr %363, align 4, !tbaa !5
  %2116 = call ptr @s2n_strerror(i32 noundef %2115, ptr noundef nonnull @.str.4) #11
  %2117 = load i32, ptr %363, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror_debug(i32 noundef %2117, ptr noundef nonnull @.str.4) #11
  %2119 = load i32, ptr %417, align 4, !tbaa !5
  %2120 = call ptr @strerror(i32 noundef %2119) #11
  %2121 = load i32, ptr %417, align 4, !tbaa !5
  %2122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2113, ptr noundef nonnull %.str.5.sink1098, i32 noundef %2114, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %2116, ptr noundef %2118, ptr noundef %2120, i32 noundef %2121) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2123:                                             ; preds = %2096
  %2124 = load i32, ptr @test_count, align 4, !tbaa !5
  %2125 = add nsw i32 %2124, 1
  store i32 %2125, ptr @test_count, align 4, !tbaa !5
  %2126 = call i32 @setup_client_psks(ptr noundef nonnull %2018)
  %2127 = call zeroext i1 @s2n_result_is_ok(i32 %2126)
  br i1 %2127, label %2150, label %2128

2128:                                             ; preds = %2123
  %2129 = load i32, ptr %417, align 4, !tbaa !5
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = call i32 @s2n_print_stacktrace(ptr noundef %2130) #11
  %2132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2133 = trunc nuw i8 %2132 to i1
  br i1 %2133, label %2134, label %2138

2134:                                             ; preds = %2128
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = call i32 @fileno(ptr noundef %2135) #11
  %2137 = call i32 @isatty(i32 noundef %2136) #11
  %.not325 = icmp eq i32 %2137, 0
  br i1 %.not325, label %2138, label %2139

2138:                                             ; preds = %2134, %2128
  br label %2139

2139:                                             ; preds = %2134, %2138
  %.str.5.sink1107 = phi ptr [ @.str.5, %2138 ], [ @.str.2, %2134 ]
  store i32 %2129, ptr %417, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = load i32, ptr @test_count, align 4, !tbaa !5
  %2142 = load i32, ptr %363, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror(i32 noundef %2142, ptr noundef nonnull @.str.4) #11
  %2144 = load i32, ptr %363, align 4, !tbaa !5
  %2145 = call ptr @s2n_strerror_debug(i32 noundef %2144, ptr noundef nonnull @.str.4) #11
  %2146 = load i32, ptr %417, align 4, !tbaa !5
  %2147 = call ptr @strerror(i32 noundef %2146) #11
  %2148 = load i32, ptr %417, align 4, !tbaa !5
  %2149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2140, ptr noundef nonnull %.str.5.sink1107, i32 noundef %2141, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2143, ptr noundef %2145, ptr noundef %2147, i32 noundef %2148) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2150:                                             ; preds = %2123
  %2151 = load i32, ptr @test_count, align 4, !tbaa !5
  %2152 = add nsw i32 %2151, 1
  store i32 %2152, ptr @test_count, align 4, !tbaa !5
  %2153 = call i32 @setup_server_psks(ptr noundef nonnull %2045)
  %2154 = call zeroext i1 @s2n_result_is_ok(i32 %2153)
  br i1 %2154, label %2177, label %2155

2155:                                             ; preds = %2150
  %2156 = load i32, ptr %417, align 4, !tbaa !5
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = call i32 @s2n_print_stacktrace(ptr noundef %2157) #11
  %2159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2160 = trunc nuw i8 %2159 to i1
  br i1 %2160, label %2161, label %2165

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

2165:                                             ; preds = %2161, %2155
  br label %2166

2166:                                             ; preds = %2161, %2165
  %.str.5.sink1116 = phi ptr [ @.str.5, %2165 ], [ @.str.2, %2161 ]
  store i32 %2156, ptr %417, align 4, !tbaa !5
  %2167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2168 = load i32, ptr @test_count, align 4, !tbaa !5
  %2169 = load i32, ptr %363, align 4, !tbaa !5
  %2170 = call ptr @s2n_strerror(i32 noundef %2169, ptr noundef nonnull @.str.4) #11
  %2171 = load i32, ptr %363, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror_debug(i32 noundef %2171, ptr noundef nonnull @.str.4) #11
  %2173 = load i32, ptr %417, align 4, !tbaa !5
  %2174 = call ptr @strerror(i32 noundef %2173) #11
  %2175 = load i32, ptr %417, align 4, !tbaa !5
  %2176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2167, ptr noundef nonnull %.str.5.sink1116, i32 noundef %2168, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %2170, ptr noundef %2172, ptr noundef %2174, i32 noundef %2175) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2177:                                             ; preds = %2150
  %2178 = load i32, ptr @test_count, align 4, !tbaa !5
  %2179 = add nsw i32 %2178, 1
  store i32 %2179, ptr @test_count, align 4, !tbaa !5
  %2180 = call i32 @s2n_client_hello_send(ptr noundef nonnull %2018) #11
  %2181 = icmp eq i32 %2180, -1
  br i1 %2181, label %2182, label %2204

2182:                                             ; preds = %2177
  %2183 = load i32, ptr %417, align 4, !tbaa !5
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @s2n_print_stacktrace(ptr noundef %2184) #11
  %2186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2187 = trunc nuw i8 %2186 to i1
  br i1 %2187, label %2188, label %2192

2188:                                             ; preds = %2182
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = call i32 @fileno(ptr noundef %2189) #11
  %2191 = call i32 @isatty(i32 noundef %2190) #11
  %.not351 = icmp eq i32 %2191, 0
  br i1 %.not351, label %2192, label %2193

2192:                                             ; preds = %2188, %2182
  br label %2193

2193:                                             ; preds = %2188, %2192
  %.str.5.sink1125 = phi ptr [ @.str.5, %2192 ], [ @.str.2, %2188 ]
  store i32 %2183, ptr %417, align 4, !tbaa !5
  %2194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2195 = load i32, ptr @test_count, align 4, !tbaa !5
  %2196 = load i32, ptr %363, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror(i32 noundef %2196, ptr noundef nonnull @.str.4) #11
  %2198 = load i32, ptr %363, align 4, !tbaa !5
  %2199 = call ptr @s2n_strerror_debug(i32 noundef %2198, ptr noundef nonnull @.str.4) #11
  %2200 = load i32, ptr %417, align 4, !tbaa !5
  %2201 = call ptr @strerror(i32 noundef %2200) #11
  %2202 = load i32, ptr %417, align 4, !tbaa !5
  %2203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2194, ptr noundef nonnull %.str.5.sink1125, i32 noundef %2195, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2197, ptr noundef %2199, ptr noundef %2201, i32 noundef %2202) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2204:                                             ; preds = %2177
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %2206 = add nsw i32 %2205, 1
  store i32 %2206, ptr @test_count, align 4, !tbaa !5
  %2207 = getelementptr inbounds i8, ptr %2018, i64 2016
  %2208 = getelementptr inbounds i8, ptr %2045, i64 2016
  %2209 = getelementptr inbounds i8, ptr %2018, i64 2044
  %2210 = load i32, ptr %2209, align 4, !tbaa !58
  %2211 = getelementptr inbounds i8, ptr %2018, i64 2040
  %2212 = load i32, ptr %2211, align 8, !tbaa !59
  %2213 = sub i32 %2210, %2212
  %2214 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %2207, ptr noundef nonnull %2208, i32 noundef %2213) #11
  %2215 = icmp eq i32 %2214, -1
  br i1 %2215, label %2216, label %2238

2216:                                             ; preds = %2204
  %2217 = load i32, ptr %417, align 4, !tbaa !5
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = call i32 @s2n_print_stacktrace(ptr noundef %2218) #11
  %2220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2221 = trunc nuw i8 %2220 to i1
  br i1 %2221, label %2222, label %2226

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

2226:                                             ; preds = %2222, %2216
  br label %2227

2227:                                             ; preds = %2222, %2226
  %.str.5.sink1134 = phi ptr [ @.str.5, %2226 ], [ @.str.2, %2222 ]
  store i32 %2217, ptr %417, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = load i32, ptr %363, align 4, !tbaa !5
  %2231 = call ptr @s2n_strerror(i32 noundef %2230, ptr noundef nonnull @.str.4) #11
  %2232 = load i32, ptr %363, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror_debug(i32 noundef %2232, ptr noundef nonnull @.str.4) #11
  %2234 = load i32, ptr %417, align 4, !tbaa !5
  %2235 = call ptr @strerror(i32 noundef %2234) #11
  %2236 = load i32, ptr %417, align 4, !tbaa !5
  %2237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2228, ptr noundef nonnull %.str.5.sink1134, i32 noundef %2229, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %2231, ptr noundef %2233, ptr noundef %2235, i32 noundef %2236) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2238:                                             ; preds = %2204
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = add nsw i32 %2239, 1
  store i32 %2240, ptr @test_count, align 4, !tbaa !5
  %2241 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %2045) #11
  %2242 = icmp eq i32 %2241, -1
  br i1 %2242, label %2243, label %2265

2243:                                             ; preds = %2238
  %2244 = load i32, ptr %417, align 4, !tbaa !5
  %2245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2246 = call i32 @s2n_print_stacktrace(ptr noundef %2245) #11
  %2247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2248 = trunc nuw i8 %2247 to i1
  br i1 %2248, label %2249, label %2253

2249:                                             ; preds = %2243
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = call i32 @fileno(ptr noundef %2250) #11
  %2252 = call i32 @isatty(i32 noundef %2251) #11
  %.not349 = icmp eq i32 %2252, 0
  br i1 %.not349, label %2253, label %2254

2253:                                             ; preds = %2249, %2243
  br label %2254

2254:                                             ; preds = %2249, %2253
  %.str.5.sink1143 = phi ptr [ @.str.5, %2253 ], [ @.str.2, %2249 ]
  store i32 %2244, ptr %417, align 4, !tbaa !5
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = load i32, ptr @test_count, align 4, !tbaa !5
  %2257 = load i32, ptr %363, align 4, !tbaa !5
  %2258 = call ptr @s2n_strerror(i32 noundef %2257, ptr noundef nonnull @.str.4) #11
  %2259 = load i32, ptr %363, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror_debug(i32 noundef %2259, ptr noundef nonnull @.str.4) #11
  %2261 = load i32, ptr %417, align 4, !tbaa !5
  %2262 = call ptr @strerror(i32 noundef %2261) #11
  %2263 = load i32, ptr %417, align 4, !tbaa !5
  %2264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2255, ptr noundef nonnull %.str.5.sink1143, i32 noundef %2256, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 275, ptr noundef %2258, ptr noundef %2260, ptr noundef %2262, i32 noundef %2263) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2265:                                             ; preds = %2238
  %2266 = load i32, ptr @test_count, align 4, !tbaa !5
  %2267 = add nsw i32 %2266, 1
  store i32 %2267, ptr @test_count, align 4, !tbaa !5
  %2268 = getelementptr inbounds i8, ptr %2045, i64 1730
  %2269 = load i16, ptr %2268, align 2, !tbaa !18
  %2270 = icmp eq i16 %2269, 1
  br i1 %2270, label %2293, label %2271

2271:                                             ; preds = %2265
  %2272 = load i32, ptr %417, align 4, !tbaa !5
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = call i32 @s2n_print_stacktrace(ptr noundef %2273) #11
  %2275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2276 = trunc nuw i8 %2275 to i1
  br i1 %2276, label %2277, label %2281

2277:                                             ; preds = %2271
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = call i32 @fileno(ptr noundef %2278) #11
  %2280 = call i32 @isatty(i32 noundef %2279) #11
  %.not327 = icmp eq i32 %2280, 0
  br i1 %.not327, label %2281, label %2282

2281:                                             ; preds = %2277, %2271
  br label %2282

2282:                                             ; preds = %2277, %2281
  %.str.5.sink1152 = phi ptr [ @.str.5, %2281 ], [ @.str.2, %2277 ]
  store i32 %2272, ptr %417, align 4, !tbaa !5
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = load i32, ptr %363, align 4, !tbaa !5
  %2286 = call ptr @s2n_strerror(i32 noundef %2285, ptr noundef nonnull @.str.4) #11
  %2287 = load i32, ptr %363, align 4, !tbaa !5
  %2288 = call ptr @s2n_strerror_debug(i32 noundef %2287, ptr noundef nonnull @.str.4) #11
  %2289 = load i32, ptr %417, align 4, !tbaa !5
  %2290 = call ptr @strerror(i32 noundef %2289) #11
  %2291 = load i32, ptr %417, align 4, !tbaa !5
  %2292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2283, ptr noundef nonnull %.str.5.sink1152, i32 noundef %2284, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %2286, ptr noundef %2288, ptr noundef %2290, i32 noundef %2291) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2293:                                             ; preds = %2265
  %2294 = add nsw i32 %2266, 2
  store i32 %2294, ptr @test_count, align 4, !tbaa !5
  %2295 = call i32 @s2n_server_hello_send(ptr noundef nonnull %2045) #11
  %2296 = icmp eq i32 %2295, -1
  br i1 %2296, label %2297, label %2319

2297:                                             ; preds = %2293
  %2298 = load i32, ptr %417, align 4, !tbaa !5
  %2299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2300 = call i32 @s2n_print_stacktrace(ptr noundef %2299) #11
  %2301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2302 = trunc nuw i8 %2301 to i1
  br i1 %2302, label %2303, label %2307

2303:                                             ; preds = %2297
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = call i32 @fileno(ptr noundef %2304) #11
  %2306 = call i32 @isatty(i32 noundef %2305) #11
  %.not348 = icmp eq i32 %2306, 0
  br i1 %.not348, label %2307, label %2308

2307:                                             ; preds = %2303, %2297
  br label %2308

2308:                                             ; preds = %2303, %2307
  %.str.5.sink1161 = phi ptr [ @.str.5, %2307 ], [ @.str.2, %2303 ]
  store i32 %2298, ptr %417, align 4, !tbaa !5
  %2309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2310 = load i32, ptr @test_count, align 4, !tbaa !5
  %2311 = load i32, ptr %363, align 4, !tbaa !5
  %2312 = call ptr @s2n_strerror(i32 noundef %2311, ptr noundef nonnull @.str.4) #11
  %2313 = load i32, ptr %363, align 4, !tbaa !5
  %2314 = call ptr @s2n_strerror_debug(i32 noundef %2313, ptr noundef nonnull @.str.4) #11
  %2315 = load i32, ptr %417, align 4, !tbaa !5
  %2316 = call ptr @strerror(i32 noundef %2315) #11
  %2317 = load i32, ptr %417, align 4, !tbaa !5
  %2318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2309, ptr noundef nonnull %.str.5.sink1161, i32 noundef %2310, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %2312, ptr noundef %2314, ptr noundef %2316, i32 noundef %2317) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2319:                                             ; preds = %2293
  %2320 = load i32, ptr @test_count, align 4, !tbaa !5
  %2321 = add nsw i32 %2320, 1
  store i32 %2321, ptr @test_count, align 4, !tbaa !5
  %2322 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %2207) #11
  %2323 = icmp eq i32 %2322, -1
  br i1 %2323, label %2324, label %2346

2324:                                             ; preds = %2319
  %2325 = load i32, ptr %417, align 4, !tbaa !5
  %2326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2327 = call i32 @s2n_print_stacktrace(ptr noundef %2326) #11
  %2328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2329 = trunc nuw i8 %2328 to i1
  br i1 %2329, label %2330, label %2334

2330:                                             ; preds = %2324
  %2331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2332 = call i32 @fileno(ptr noundef %2331) #11
  %2333 = call i32 @isatty(i32 noundef %2332) #11
  %.not347 = icmp eq i32 %2333, 0
  br i1 %.not347, label %2334, label %2335

2334:                                             ; preds = %2330, %2324
  br label %2335

2335:                                             ; preds = %2330, %2334
  %.str.5.sink1170 = phi ptr [ @.str.5, %2334 ], [ @.str.2, %2330 ]
  store i32 %2325, ptr %417, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = load i32, ptr %363, align 4, !tbaa !5
  %2339 = call ptr @s2n_strerror(i32 noundef %2338, ptr noundef nonnull @.str.4) #11
  %2340 = load i32, ptr %363, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror_debug(i32 noundef %2340, ptr noundef nonnull @.str.4) #11
  %2342 = load i32, ptr %417, align 4, !tbaa !5
  %2343 = call ptr @strerror(i32 noundef %2342) #11
  %2344 = load i32, ptr %417, align 4, !tbaa !5
  %2345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2336, ptr noundef nonnull %.str.5.sink1170, i32 noundef %2337, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %2339, ptr noundef %2341, ptr noundef %2343, i32 noundef %2344) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2346:                                             ; preds = %2319
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = add nsw i32 %2347, 1
  store i32 %2348, ptr @test_count, align 4, !tbaa !5
  %2349 = getelementptr inbounds i8, ptr %2045, i64 2044
  %2350 = load i32, ptr %2349, align 4, !tbaa !58
  %2351 = getelementptr inbounds i8, ptr %2045, i64 2040
  %2352 = load i32, ptr %2351, align 8, !tbaa !59
  %2353 = sub i32 %2350, %2352
  %2354 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %2208, ptr noundef nonnull %2207, i32 noundef %2353) #11
  %2355 = icmp eq i32 %2354, -1
  br i1 %2355, label %2356, label %2378

2356:                                             ; preds = %2346
  %2357 = load i32, ptr %417, align 4, !tbaa !5
  %2358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2359 = call i32 @s2n_print_stacktrace(ptr noundef %2358) #11
  %2360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2361 = trunc nuw i8 %2360 to i1
  br i1 %2361, label %2362, label %2366

2362:                                             ; preds = %2356
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = call i32 @fileno(ptr noundef %2363) #11
  %2365 = call i32 @isatty(i32 noundef %2364) #11
  %.not346 = icmp eq i32 %2365, 0
  br i1 %.not346, label %2366, label %2367

2366:                                             ; preds = %2362, %2356
  br label %2367

2367:                                             ; preds = %2362, %2366
  %.str.5.sink1179 = phi ptr [ @.str.5, %2366 ], [ @.str.2, %2362 ]
  store i32 %2357, ptr %417, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = load i32, ptr %363, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror(i32 noundef %2370, ptr noundef nonnull @.str.4) #11
  %2372 = load i32, ptr %363, align 4, !tbaa !5
  %2373 = call ptr @s2n_strerror_debug(i32 noundef %2372, ptr noundef nonnull @.str.4) #11
  %2374 = load i32, ptr %417, align 4, !tbaa !5
  %2375 = call ptr @strerror(i32 noundef %2374) #11
  %2376 = load i32, ptr %417, align 4, !tbaa !5
  %2377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2368, ptr noundef nonnull %.str.5.sink1179, i32 noundef %2369, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2371, ptr noundef %2373, ptr noundef %2375, i32 noundef %2376) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2378:                                             ; preds = %2346
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = add nsw i32 %2379, 1
  store i32 %2380, ptr @test_count, align 4, !tbaa !5
  %2381 = getelementptr inbounds i8, ptr %2018, i64 1736
  %2382 = load ptr, ptr %2381, align 8, !tbaa !48
  %2383 = icmp eq ptr %2382, null
  br i1 %2383, label %2406, label %2384

2384:                                             ; preds = %2378
  %2385 = load i32, ptr %417, align 4, !tbaa !5
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @s2n_print_stacktrace(ptr noundef %2386) #11
  %2388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2389 = trunc nuw i8 %2388 to i1
  br i1 %2389, label %2390, label %2394

2390:                                             ; preds = %2384
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = call i32 @fileno(ptr noundef %2391) #11
  %2393 = call i32 @isatty(i32 noundef %2392) #11
  %.not328 = icmp eq i32 %2393, 0
  br i1 %.not328, label %2394, label %2395

2394:                                             ; preds = %2390, %2384
  br label %2395

2395:                                             ; preds = %2390, %2394
  %.str.5.sink1188 = phi ptr [ @.str.5, %2394 ], [ @.str.2, %2390 ]
  store i32 %2385, ptr %417, align 4, !tbaa !5
  %2396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2397 = load i32, ptr @test_count, align 4, !tbaa !5
  %2398 = load i32, ptr %363, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror(i32 noundef %2398, ptr noundef nonnull @.str.4) #11
  %2400 = load i32, ptr %363, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror_debug(i32 noundef %2400, ptr noundef nonnull @.str.4) #11
  %2402 = load i32, ptr %417, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #11
  %2404 = load i32, ptr %417, align 4, !tbaa !5
  %2405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2396, ptr noundef nonnull %.str.5.sink1188, i32 noundef %2397, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2399, ptr noundef %2401, ptr noundef %2403, i32 noundef %2404) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2406:                                             ; preds = %2378
  %2407 = add nsw i32 %2379, 2
  store i32 %2407, ptr @test_count, align 4, !tbaa !5
  %2408 = call i32 @s2n_server_hello_recv(ptr noundef nonnull %2018) #11
  %2409 = icmp eq i32 %2408, -1
  br i1 %2409, label %2410, label %2432

2410:                                             ; preds = %2406
  %2411 = load i32, ptr %417, align 4, !tbaa !5
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = call i32 @s2n_print_stacktrace(ptr noundef %2412) #11
  %2414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2415 = trunc nuw i8 %2414 to i1
  br i1 %2415, label %2416, label %2420

2416:                                             ; preds = %2410
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = call i32 @fileno(ptr noundef %2417) #11
  %2419 = call i32 @isatty(i32 noundef %2418) #11
  %.not345 = icmp eq i32 %2419, 0
  br i1 %.not345, label %2420, label %2421

2420:                                             ; preds = %2416, %2410
  br label %2421

2421:                                             ; preds = %2416, %2420
  %.str.5.sink1197 = phi ptr [ @.str.5, %2420 ], [ @.str.2, %2416 ]
  store i32 %2411, ptr %417, align 4, !tbaa !5
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = load i32, ptr @test_count, align 4, !tbaa !5
  %2424 = load i32, ptr %363, align 4, !tbaa !5
  %2425 = call ptr @s2n_strerror(i32 noundef %2424, ptr noundef nonnull @.str.4) #11
  %2426 = load i32, ptr %363, align 4, !tbaa !5
  %2427 = call ptr @s2n_strerror_debug(i32 noundef %2426, ptr noundef nonnull @.str.4) #11
  %2428 = load i32, ptr %417, align 4, !tbaa !5
  %2429 = call ptr @strerror(i32 noundef %2428) #11
  %2430 = load i32, ptr %417, align 4, !tbaa !5
  %2431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2422, ptr noundef nonnull %.str.5.sink1197, i32 noundef %2423, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %2425, ptr noundef %2427, ptr noundef %2429, i32 noundef %2430) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2432:                                             ; preds = %2406
  %2433 = load i32, ptr @test_count, align 4, !tbaa !5
  %2434 = add nsw i32 %2433, 1
  store i32 %2434, ptr @test_count, align 4, !tbaa !5
  %2435 = getelementptr inbounds i8, ptr %2018, i64 1744
  %2436 = load i32, ptr %2435, align 8, !tbaa !50
  %2437 = icmp eq i32 %2436, 2
  br i1 %2437, label %2460, label %2438

2438:                                             ; preds = %2432
  %2439 = load i32, ptr %417, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440) #11
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc nuw i8 %2442 to i1
  br i1 %2443, label %2444, label %2448

2444:                                             ; preds = %2438
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #11
  %2447 = call i32 @isatty(i32 noundef %2446) #11
  %.not329 = icmp eq i32 %2447, 0
  br i1 %.not329, label %2448, label %2449

2448:                                             ; preds = %2444, %2438
  br label %2449

2449:                                             ; preds = %2444, %2448
  %.str.5.sink1206 = phi ptr [ @.str.5, %2448 ], [ @.str.2, %2444 ]
  store i32 %2439, ptr %417, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = load i32, ptr %363, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror(i32 noundef %2452, ptr noundef nonnull @.str.4) #11
  %2454 = load i32, ptr %363, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror_debug(i32 noundef %2454, ptr noundef nonnull @.str.4) #11
  %2456 = load i32, ptr %417, align 4, !tbaa !5
  %2457 = call ptr @strerror(i32 noundef %2456) #11
  %2458 = load i32, ptr %417, align 4, !tbaa !5
  %2459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef nonnull %.str.5.sink1206, i32 noundef %2451, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2453, ptr noundef %2455, ptr noundef %2457, i32 noundef %2458) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2460:                                             ; preds = %2432
  %2461 = add nsw i32 %2433, 2
  store i32 %2461, ptr @test_count, align 4, !tbaa !5
  %2462 = getelementptr inbounds i8, ptr %2018, i64 1730
  %2463 = load i16, ptr %2462, align 2, !tbaa !18
  %2464 = icmp eq i16 %2463, 1
  br i1 %2464, label %2487, label %2465

2465:                                             ; preds = %2460
  %2466 = load i32, ptr %417, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @s2n_print_stacktrace(ptr noundef %2467) #11
  %2469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2470 = trunc nuw i8 %2469 to i1
  br i1 %2470, label %2471, label %2475

2471:                                             ; preds = %2465
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @fileno(ptr noundef %2472) #11
  %2474 = call i32 @isatty(i32 noundef %2473) #11
  %.not330 = icmp eq i32 %2474, 0
  br i1 %.not330, label %2475, label %2476

2475:                                             ; preds = %2471, %2465
  br label %2476

2476:                                             ; preds = %2471, %2475
  %.str.5.sink1215 = phi ptr [ @.str.5, %2475 ], [ @.str.2, %2471 ]
  store i32 %2466, ptr %417, align 4, !tbaa !5
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = load i32, ptr @test_count, align 4, !tbaa !5
  %2479 = load i32, ptr %363, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror(i32 noundef %2479, ptr noundef nonnull @.str.4) #11
  %2481 = load i32, ptr %363, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror_debug(i32 noundef %2481, ptr noundef nonnull @.str.4) #11
  %2483 = load i32, ptr %417, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #11
  %2485 = load i32, ptr %417, align 4, !tbaa !5
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2477, ptr noundef nonnull %.str.5.sink1215, i32 noundef %2478, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2480, ptr noundef %2482, ptr noundef %2484, i32 noundef %2485) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2487:                                             ; preds = %2460
  %2488 = add nsw i32 %2433, 3
  store i32 %2488, ptr @test_count, align 4, !tbaa !5
  %2489 = load ptr, ptr %2381, align 8, !tbaa !48
  %2490 = getelementptr inbounds i8, ptr %2489, i64 16
  %2491 = load i32, ptr %2490, align 8, !tbaa !51
  %2492 = icmp eq i32 %2491, 14
  br i1 %2492, label %2515, label %2493

2493:                                             ; preds = %2487
  %2494 = load i32, ptr %417, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = call i32 @s2n_print_stacktrace(ptr noundef %2495) #11
  %2497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2498 = trunc nuw i8 %2497 to i1
  br i1 %2498, label %2499, label %2503

2499:                                             ; preds = %2493
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = call i32 @fileno(ptr noundef %2500) #11
  %2502 = call i32 @isatty(i32 noundef %2501) #11
  %.not331 = icmp eq i32 %2502, 0
  br i1 %.not331, label %2503, label %2504

2503:                                             ; preds = %2499, %2493
  br label %2504

2504:                                             ; preds = %2499, %2503
  %.str.5.sink1224 = phi ptr [ @.str.5, %2503 ], [ @.str.2, %2499 ]
  store i32 %2494, ptr %417, align 4, !tbaa !5
  %2505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2506 = load i32, ptr @test_count, align 4, !tbaa !5
  %2507 = load i32, ptr %363, align 4, !tbaa !5
  %2508 = call ptr @s2n_strerror(i32 noundef %2507, ptr noundef nonnull @.str.4) #11
  %2509 = load i32, ptr %363, align 4, !tbaa !5
  %2510 = call ptr @s2n_strerror_debug(i32 noundef %2509, ptr noundef nonnull @.str.4) #11
  %2511 = load i32, ptr %417, align 4, !tbaa !5
  %2512 = call ptr @strerror(i32 noundef %2511) #11
  %2513 = load i32, ptr %417, align 4, !tbaa !5
  %2514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2505, ptr noundef nonnull %.str.5.sink1224, i32 noundef %2506, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2508, ptr noundef %2510, ptr noundef %2512, i32 noundef %2513) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2515:                                             ; preds = %2487
  %2516 = add nsw i32 %2433, 4
  store i32 %2516, ptr @test_count, align 4, !tbaa !5
  %2517 = getelementptr inbounds i8, ptr %2489, i64 8
  %2518 = load ptr, ptr %2517, align 8, !tbaa !54
  %bcmp332 = call i32 @bcmp(ptr noundef nonnull dereferenceable(14) %2518, ptr noundef nonnull dereferenceable(14) @test_identity, i64 14)
  %2519 = icmp eq i32 %bcmp332, 0
  br i1 %2519, label %2542, label %2520

2520:                                             ; preds = %2515
  %2521 = load i32, ptr %417, align 4, !tbaa !5
  %2522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2523 = call i32 @s2n_print_stacktrace(ptr noundef %2522) #11
  %2524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2525 = trunc nuw i8 %2524 to i1
  br i1 %2525, label %2526, label %2530

2526:                                             ; preds = %2520
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = call i32 @fileno(ptr noundef %2527) #11
  %2529 = call i32 @isatty(i32 noundef %2528) #11
  %.not333 = icmp eq i32 %2529, 0
  br i1 %.not333, label %2530, label %2531

2530:                                             ; preds = %2526, %2520
  br label %2531

2531:                                             ; preds = %2526, %2530
  %.str.5.sink1233 = phi ptr [ @.str.5, %2530 ], [ @.str.2, %2526 ]
  store i32 %2521, ptr %417, align 4, !tbaa !5
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = load i32, ptr @test_count, align 4, !tbaa !5
  %2534 = load i32, ptr %363, align 4, !tbaa !5
  %2535 = call ptr @s2n_strerror(i32 noundef %2534, ptr noundef nonnull @.str.4) #11
  %2536 = load i32, ptr %363, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror_debug(i32 noundef %2536, ptr noundef nonnull @.str.4) #11
  %2538 = load i32, ptr %417, align 4, !tbaa !5
  %2539 = call ptr @strerror(i32 noundef %2538) #11
  %2540 = load i32, ptr %417, align 4, !tbaa !5
  %2541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2532, ptr noundef nonnull %.str.5.sink1233, i32 noundef %2533, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2535, ptr noundef %2537, ptr noundef %2539, i32 noundef %2540) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2542:                                             ; preds = %2515
  %2543 = add nsw i32 %2433, 5
  store i32 %2543, ptr @test_count, align 4, !tbaa !5
  %2544 = getelementptr inbounds i8, ptr %2489, i64 40
  %2545 = load i32, ptr %2544, align 8, !tbaa !55
  %2546 = icmp eq i32 %2545, 12
  br i1 %2546, label %2569, label %2547

2547:                                             ; preds = %2542
  %2548 = load i32, ptr %417, align 4, !tbaa !5
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = call i32 @s2n_print_stacktrace(ptr noundef %2549) #11
  %2551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2552 = trunc nuw i8 %2551 to i1
  br i1 %2552, label %2553, label %2557

2553:                                             ; preds = %2547
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = call i32 @fileno(ptr noundef %2554) #11
  %2556 = call i32 @isatty(i32 noundef %2555) #11
  %.not334 = icmp eq i32 %2556, 0
  br i1 %.not334, label %2557, label %2558

2557:                                             ; preds = %2553, %2547
  br label %2558

2558:                                             ; preds = %2553, %2557
  %.str.5.sink1242 = phi ptr [ @.str.5, %2557 ], [ @.str.2, %2553 ]
  store i32 %2548, ptr %417, align 4, !tbaa !5
  %2559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2560 = load i32, ptr @test_count, align 4, !tbaa !5
  %2561 = load i32, ptr %363, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror(i32 noundef %2561, ptr noundef nonnull @.str.4) #11
  %2563 = load i32, ptr %363, align 4, !tbaa !5
  %2564 = call ptr @s2n_strerror_debug(i32 noundef %2563, ptr noundef nonnull @.str.4) #11
  %2565 = load i32, ptr %417, align 4, !tbaa !5
  %2566 = call ptr @strerror(i32 noundef %2565) #11
  %2567 = load i32, ptr %417, align 4, !tbaa !5
  %2568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2559, ptr noundef nonnull %.str.5.sink1242, i32 noundef %2560, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2562, ptr noundef %2564, ptr noundef %2566, i32 noundef %2567) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2569:                                             ; preds = %2542
  %2570 = add nsw i32 %2433, 6
  store i32 %2570, ptr @test_count, align 4, !tbaa !5
  %2571 = getelementptr inbounds i8, ptr %2489, i64 32
  %2572 = load ptr, ptr %2571, align 8, !tbaa !56
  %bcmp335 = call i32 @bcmp(ptr noundef nonnull dereferenceable(12) %2572, ptr noundef nonnull dereferenceable(12) @test_secret, i64 12)
  %2573 = icmp eq i32 %bcmp335, 0
  br i1 %2573, label %2596, label %2574

2574:                                             ; preds = %2569
  %2575 = load i32, ptr %417, align 4, !tbaa !5
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = call i32 @s2n_print_stacktrace(ptr noundef %2576) #11
  %2578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2579 = trunc nuw i8 %2578 to i1
  br i1 %2579, label %2580, label %2584

2580:                                             ; preds = %2574
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = call i32 @fileno(ptr noundef %2581) #11
  %2583 = call i32 @isatty(i32 noundef %2582) #11
  %.not336 = icmp eq i32 %2583, 0
  br i1 %.not336, label %2584, label %2585

2584:                                             ; preds = %2580, %2574
  br label %2585

2585:                                             ; preds = %2580, %2584
  %.str.5.sink1251 = phi ptr [ @.str.5, %2584 ], [ @.str.2, %2580 ]
  store i32 %2575, ptr %417, align 4, !tbaa !5
  %2586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2587 = load i32, ptr @test_count, align 4, !tbaa !5
  %2588 = load i32, ptr %363, align 4, !tbaa !5
  %2589 = call ptr @s2n_strerror(i32 noundef %2588, ptr noundef nonnull @.str.4) #11
  %2590 = load i32, ptr %363, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror_debug(i32 noundef %2590, ptr noundef nonnull @.str.4) #11
  %2592 = load i32, ptr %417, align 4, !tbaa !5
  %2593 = call ptr @strerror(i32 noundef %2592) #11
  %2594 = load i32, ptr %417, align 4, !tbaa !5
  %2595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2586, ptr noundef nonnull %.str.5.sink1251, i32 noundef %2587, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %2589, ptr noundef %2591, ptr noundef %2593, i32 noundef %2594) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2596:                                             ; preds = %2569
  %2597 = add nsw i32 %2433, 7
  store i32 %2597, ptr @test_count, align 4, !tbaa !5
  %2598 = getelementptr inbounds i8, ptr %2489, i64 56
  %2599 = load i32, ptr %2598, align 8, !tbaa !57
  %2600 = icmp eq i32 %2599, 5
  br i1 %2600, label %2623, label %2601

2601:                                             ; preds = %2596
  %2602 = load i32, ptr %417, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603) #11
  %2605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2606 = trunc nuw i8 %2605 to i1
  br i1 %2606, label %2607, label %2611

2607:                                             ; preds = %2601
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #11
  %2610 = call i32 @isatty(i32 noundef %2609) #11
  %.not337 = icmp eq i32 %2610, 0
  br i1 %.not337, label %2611, label %2612

2611:                                             ; preds = %2607, %2601
  br label %2612

2612:                                             ; preds = %2607, %2611
  %.str.5.sink1260 = phi ptr [ @.str.5, %2611 ], [ @.str.2, %2607 ]
  store i32 %2602, ptr %417, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = load i32, ptr %363, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror(i32 noundef %2615, ptr noundef nonnull @.str.4) #11
  %2617 = load i32, ptr %363, align 4, !tbaa !5
  %2618 = call ptr @s2n_strerror_debug(i32 noundef %2617, ptr noundef nonnull @.str.4) #11
  %2619 = load i32, ptr %417, align 4, !tbaa !5
  %2620 = call ptr @strerror(i32 noundef %2619) #11
  %2621 = load i32, ptr %417, align 4, !tbaa !5
  %2622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef nonnull %.str.5.sink1260, i32 noundef %2614, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %2616, ptr noundef %2618, ptr noundef %2620, i32 noundef %2621) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2623:                                             ; preds = %2596
  %2624 = add nsw i32 %2433, 8
  store i32 %2624, ptr @test_count, align 4, !tbaa !5
  %2625 = call i32 @s2n_connection_free(ptr noundef nonnull %2045) #11
  %2626 = icmp eq i32 %2625, -1
  br i1 %2626, label %2627, label %2649

2627:                                             ; preds = %2623
  %2628 = load i32, ptr %417, align 4, !tbaa !5
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = call i32 @s2n_print_stacktrace(ptr noundef %2629) #11
  %2631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2632 = trunc nuw i8 %2631 to i1
  br i1 %2632, label %2633, label %2637

2633:                                             ; preds = %2627
  %2634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2635 = call i32 @fileno(ptr noundef %2634) #11
  %2636 = call i32 @isatty(i32 noundef %2635) #11
  %.not344 = icmp eq i32 %2636, 0
  br i1 %.not344, label %2637, label %2638

2637:                                             ; preds = %2633, %2627
  br label %2638

2638:                                             ; preds = %2633, %2637
  %.str.5.sink1269 = phi ptr [ @.str.5, %2637 ], [ @.str.2, %2633 ]
  store i32 %2628, ptr %417, align 4, !tbaa !5
  %2639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2640 = load i32, ptr @test_count, align 4, !tbaa !5
  %2641 = load i32, ptr %363, align 4, !tbaa !5
  %2642 = call ptr @s2n_strerror(i32 noundef %2641, ptr noundef nonnull @.str.4) #11
  %2643 = load i32, ptr %363, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror_debug(i32 noundef %2643, ptr noundef nonnull @.str.4) #11
  %2645 = load i32, ptr %417, align 4, !tbaa !5
  %2646 = call ptr @strerror(i32 noundef %2645) #11
  %2647 = load i32, ptr %417, align 4, !tbaa !5
  %2648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2639, ptr noundef nonnull %.str.5.sink1269, i32 noundef %2640, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 298, ptr noundef %2642, ptr noundef %2644, ptr noundef %2646, i32 noundef %2647) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2649:                                             ; preds = %2623
  %2650 = load i32, ptr @test_count, align 4, !tbaa !5
  %2651 = add nsw i32 %2650, 1
  store i32 %2651, ptr @test_count, align 4, !tbaa !5
  %2652 = call i32 @s2n_connection_free(ptr noundef nonnull %2018) #11
  %2653 = icmp eq i32 %2652, -1
  br i1 %2653, label %2654, label %2676

2654:                                             ; preds = %2649
  %2655 = load i32, ptr %417, align 4, !tbaa !5
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = call i32 @s2n_print_stacktrace(ptr noundef %2656) #11
  %2658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2659 = trunc nuw i8 %2658 to i1
  br i1 %2659, label %2660, label %2664

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

2664:                                             ; preds = %2660, %2654
  br label %2665

2665:                                             ; preds = %2660, %2664
  %.str.5.sink1278 = phi ptr [ @.str.5, %2664 ], [ @.str.2, %2660 ]
  store i32 %2655, ptr %417, align 4, !tbaa !5
  %2666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2667 = load i32, ptr @test_count, align 4, !tbaa !5
  %2668 = load i32, ptr %363, align 4, !tbaa !5
  %2669 = call ptr @s2n_strerror(i32 noundef %2668, ptr noundef nonnull @.str.4) #11
  %2670 = load i32, ptr %363, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror_debug(i32 noundef %2670, ptr noundef nonnull @.str.4) #11
  %2672 = load i32, ptr %417, align 4, !tbaa !5
  %2673 = call ptr @strerror(i32 noundef %2672) #11
  %2674 = load i32, ptr %417, align 4, !tbaa !5
  %2675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2666, ptr noundef nonnull %.str.5.sink1278, i32 noundef %2667, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2669, ptr noundef %2671, ptr noundef %2673, i32 noundef %2674) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2676:                                             ; preds = %2649, %1986
  %2677 = call i32 @s2n_cleanup() #11
  %2678 = icmp eq i32 %2677, -1
  br i1 %2678, label %2679, label %2701

2679:                                             ; preds = %2676
  %2680 = load i32, ptr %417, align 4, !tbaa !5
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = call i32 @s2n_print_stacktrace(ptr noundef %2681) #11
  %2683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2684 = trunc nuw i8 %2683 to i1
  br i1 %2684, label %2685, label %2689

2685:                                             ; preds = %2679
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = call i32 @fileno(ptr noundef %2686) #11
  %2688 = call i32 @isatty(i32 noundef %2687) #11
  %.not342 = icmp eq i32 %2688, 0
  br i1 %.not342, label %2689, label %2690

2689:                                             ; preds = %2685, %2679
  br label %2690

2690:                                             ; preds = %2685, %2689
  %.str.5.sink1287 = phi ptr [ @.str.5, %2689 ], [ @.str.2, %2685 ]
  store i32 %2680, ptr %417, align 4, !tbaa !5
  %2691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2692 = load i32, ptr @test_count, align 4, !tbaa !5
  %2693 = load i32, ptr %363, align 4, !tbaa !5
  %2694 = call ptr @s2n_strerror(i32 noundef %2693, ptr noundef nonnull @.str.4) #11
  %2695 = load i32, ptr %363, align 4, !tbaa !5
  %2696 = call ptr @s2n_strerror_debug(i32 noundef %2695, ptr noundef nonnull @.str.4) #11
  %2697 = load i32, ptr %417, align 4, !tbaa !5
  %2698 = call ptr @strerror(i32 noundef %2697) #11
  %2699 = load i32, ptr %417, align 4, !tbaa !5
  %2700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2691, ptr noundef nonnull %.str.5.sink1287, i32 noundef %2692, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2694, ptr noundef %2696, ptr noundef %2698, i32 noundef %2699) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2701:                                             ; preds = %2676
  %2702 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %2703 = icmp eq i32 %2702, -1
  br i1 %2703, label %2704, label %2726

2704:                                             ; preds = %2701
  %2705 = load i32, ptr %417, align 4, !tbaa !5
  %2706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2707 = call i32 @s2n_print_stacktrace(ptr noundef %2706) #11
  %2708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2709 = trunc nuw i8 %2708 to i1
  br i1 %2709, label %2710, label %2714

2710:                                             ; preds = %2704
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = call i32 @fileno(ptr noundef %2711) #11
  %2713 = call i32 @isatty(i32 noundef %2712) #11
  %.not341 = icmp eq i32 %2713, 0
  br i1 %.not341, label %2714, label %2715

2714:                                             ; preds = %2710, %2704
  br label %2715

2715:                                             ; preds = %2710, %2714
  %.str.5.sink1296 = phi ptr [ @.str.5, %2714 ], [ @.str.2, %2710 ]
  store i32 %2705, ptr %417, align 4, !tbaa !5
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = load i32, ptr @test_count, align 4, !tbaa !5
  %2718 = load i32, ptr %363, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror(i32 noundef %2718, ptr noundef nonnull @.str.4) #11
  %2720 = load i32, ptr %363, align 4, !tbaa !5
  %2721 = call ptr @s2n_strerror_debug(i32 noundef %2720, ptr noundef nonnull @.str.4) #11
  %2722 = load i32, ptr %417, align 4, !tbaa !5
  %2723 = call ptr @strerror(i32 noundef %2722) #11
  %2724 = load i32, ptr %417, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2716, ptr noundef nonnull %.str.5.sink1296, i32 noundef %2717, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2719, ptr noundef %2721, ptr noundef %2723, i32 noundef %2724) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2726:                                             ; preds = %2701
  %2727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2728 = trunc nuw i8 %2727 to i1
  br i1 %2728, label %2729, label %2740

2729:                                             ; preds = %2726
  %2730 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2731 = call i32 @fileno(ptr noundef %2730) #11
  %2732 = call i32 @isatty(i32 noundef %2731) #11
  %.not338 = icmp eq i32 %2732, 0
  br i1 %.not338, label %2740, label %2733

2733:                                             ; preds = %2729
  %2734 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not340 = icmp eq i32 %2734, 0
  %2735 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not340, label %2738, label %2736

2736:                                             ; preds = %2733
  %2737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2735, ptr noundef nonnull @.str.70, i32 noundef %2734) #11
  br label %2747

2738:                                             ; preds = %2733
  %2739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2735, ptr noundef nonnull @.str.71) #11
  br label %2747

2740:                                             ; preds = %2729, %2726
  %2741 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not339 = icmp eq i32 %2741, 0
  %2742 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not339, label %2745, label %2743

2743:                                             ; preds = %2740
  %2744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2742, ptr noundef nonnull @.str.72, i32 noundef %2741) #11
  br label %2747

2745:                                             ; preds = %2740
  %2746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2742, ptr noundef nonnull @.str.73) #11
  br label %2747

2747:                                             ; preds = %2743, %2745, %2736, %2738
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) local_unnamed_addr #2

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

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

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #2

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

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #10

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


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