; LLVM IR from aws/s2n-tls :: tests/unit (s2n_self_talk_psk_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_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_result = type { i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, i8 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_shared_identity = external dso_local global [21 x i8], align 16
@test_shared_identity_2 = external dso_local global [23 x i8], align 16
@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 [81 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 [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [116 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@.str.57 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [71 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.s2n_test_io_pair, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca %struct.s2n_result, align 4
  %33 = alloca i32, align 4
  %34 = alloca %struct.s2n_result, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %struct.s2n_result, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca %struct.s2n_result, align 4
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_result, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca %struct.s2n_result, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca %struct.s2n_result, align 4
  %65 = alloca i32, align 4
  %66 = alloca %struct.s2n_result, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca %struct.s2n_result, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca i32, align 4
  %83 = alloca %struct.s2n_result, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca %struct.s2n_result, align 4
  %89 = alloca i32, align 4
  %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 %struct.s2n_result, align 4
  %100 = alloca i32, align 4
  %101 = alloca %struct.s2n_result, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %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 i32, 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 %struct.s2n_result, align 4
  %122 = alloca i32, align 4
  %123 = alloca %struct.s2n_result, 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 %struct.s2n_result, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca %struct.s2n_result, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca %struct.s2n_result, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca %struct.s2n_result, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = 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 %189

189:                                              ; preds = %2
  br label %190

190:                                              ; preds = %189
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %191 = load ptr, ptr @stdout, align 8, !tbaa !9
  %192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef @.str, ptr noundef @.str.1) #9
  %193 = load ptr, ptr @stdout, align 8, !tbaa !9
  %194 = call i32 @fflush(ptr noundef %193)
  br label %195

195:                                              ; preds = %190
  %196 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %197 = icmp eq i32 %196, -1
  br i1 %197, label %198, label %249

198:                                              ; preds = %195
  br label %199

199:                                              ; preds = %198
  br label %200

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

207:                                              ; preds = %200
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = call i32 @fileno(ptr noundef %208) #9
  %210 = call i32 @isatty(i32 noundef %209) #9
  %211 = icmp ne i32 %210, 0
  br i1 %211, label %212, label %229

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

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

246:                                              ; preds = %229, %212
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %247

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

248:                                              ; No predecessors!
  br label %249

249:                                              ; preds = %248, %195
  br label %250

250:                                              ; preds = %249
  br label %251

251:                                              ; preds = %250
  %252 = load i32, ptr @test_count, align 4, !tbaa !5
  %253 = add nsw i32 %252, 1
  store i32 %253, ptr @test_count, align 4, !tbaa !5
  %254 = call i32 @s2n_enable_atexit()
  %255 = icmp eq i32 %254, -1
  br i1 %255, label %256, label %307

256:                                              ; preds = %251
  br label %257

257:                                              ; preds = %256
  br label %258

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

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

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

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

304:                                              ; preds = %287, %270
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %305

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

306:                                              ; No predecessors!
  br label %307

307:                                              ; preds = %306, %251
  br label %308

308:                                              ; preds = %307
  br label %309

309:                                              ; preds = %308
  br label %310

310:                                              ; preds = %309
  %311 = call i32 @s2n_init()
  %312 = icmp eq i32 %311, -1
  br i1 %312, label %313, label %364

313:                                              ; preds = %310
  br label %314

314:                                              ; preds = %313
  br label %315

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

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

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

344:                                              ; preds = %322, %315
  %345 = load i32, ptr %8, align 4, !tbaa !5
  %346 = call ptr @__errno_location() #10
  store i32 %345, ptr %346, align 4, !tbaa !5
  %347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %348 = load i32, ptr @test_count, align 4, !tbaa !5
  %349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = call ptr @s2n_strerror(i32 noundef %350, ptr noundef @.str.4)
  %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_debug(i32 noundef %353, ptr noundef @.str.4)
  %355 = call ptr @__errno_location() #10
  %356 = load i32, ptr %355, align 4, !tbaa !5
  %357 = call ptr @strerror(i32 noundef %356) #9
  %358 = call ptr @__errno_location() #10
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %347, ptr noundef @.str.5, i32 noundef %348, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 152, ptr noundef %351, ptr noundef %354, ptr noundef %357, i32 noundef %359) #9
  br label %361

361:                                              ; preds = %344, %327
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %362

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

363:                                              ; No predecessors!
  br label %364

364:                                              ; preds = %363, %310
  br label %365

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365
  %367 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %367, label %515, label %368

368:                                              ; preds = %366
  br label %369

369:                                              ; preds = %368
  br label %370

370:                                              ; preds = %369
  %371 = call i32 @s2n_cleanup()
  %372 = icmp eq i32 %371, -1
  br i1 %372, label %373, label %424

373:                                              ; preds = %370
  br label %374

374:                                              ; preds = %373
  br label %375

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

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

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

404:                                              ; preds = %382, %375
  %405 = load i32, ptr %9, align 4, !tbaa !5
  %406 = call ptr @__errno_location() #10
  store i32 %405, ptr %406, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call ptr @s2n_strerror(i32 noundef %410, ptr noundef @.str.4)
  %412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror_debug(i32 noundef %413, ptr noundef @.str.4)
  %415 = call ptr @__errno_location() #10
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @strerror(i32 noundef %416) #9
  %418 = call ptr @__errno_location() #10
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %407, ptr noundef @.str.5, i32 noundef %408, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 155, ptr noundef %411, ptr noundef %414, ptr noundef %417, i32 noundef %419) #9
  br label %421

421:                                              ; preds = %404, %387
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %422

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

423:                                              ; No predecessors!
  br label %424

424:                                              ; preds = %423, %370
  br label %425

425:                                              ; preds = %424
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  %428 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %429 = icmp eq i32 %428, -1
  br i1 %429, label %430, label %481

430:                                              ; preds = %427
  br label %431

431:                                              ; preds = %430
  br label %432

432:                                              ; preds = %431
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %433 = call ptr @__errno_location() #10
  %434 = load i32, ptr %433, align 4, !tbaa !5
  store i32 %434, ptr %10, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = call i32 @s2n_print_stacktrace(ptr noundef %435)
  %437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %438 = trunc i8 %437 to i1
  br i1 %438, label %439, label %461

439:                                              ; preds = %432
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = call i32 @fileno(ptr noundef %440) #9
  %442 = call i32 @isatty(i32 noundef %441) #9
  %443 = icmp ne i32 %442, 0
  br i1 %443, label %444, label %461

444:                                              ; preds = %439
  %445 = load i32, ptr %10, align 4, !tbaa !5
  %446 = call ptr @__errno_location() #10
  store i32 %445, ptr %446, align 4, !tbaa !5
  %447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %448 = load i32, ptr @test_count, align 4, !tbaa !5
  %449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = call ptr @s2n_strerror(i32 noundef %450, ptr noundef @.str.4)
  %452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %453, ptr noundef @.str.4)
  %455 = call ptr @__errno_location() #10
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = call ptr @strerror(i32 noundef %456) #9
  %458 = call ptr @__errno_location() #10
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %447, ptr noundef @.str.2, i32 noundef %448, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 155, ptr noundef %451, ptr noundef %454, ptr noundef %457, i32 noundef %459) #9
  br label %478

461:                                              ; preds = %439, %432
  %462 = load i32, ptr %10, align 4, !tbaa !5
  %463 = call ptr @__errno_location() #10
  store i32 %462, ptr %463, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %467, ptr noundef @.str.4)
  %469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = call ptr @s2n_strerror_debug(i32 noundef %470, ptr noundef @.str.4)
  %472 = call ptr @__errno_location() #10
  %473 = load i32, ptr %472, align 4, !tbaa !5
  %474 = call ptr @strerror(i32 noundef %473) #9
  %475 = call ptr @__errno_location() #10
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %464, ptr noundef @.str.5, i32 noundef %465, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 155, ptr noundef %468, ptr noundef %471, ptr noundef %474, i32 noundef %476) #9
  br label %478

478:                                              ; preds = %461, %444
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %479

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

480:                                              ; No predecessors!
  br label %481

481:                                              ; preds = %480, %427
  br label %482

482:                                              ; preds = %481
  %483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %484 = trunc i8 %483 to i1
  br i1 %484, label %485, label %501

485:                                              ; preds = %482
  %486 = load ptr, ptr @stdout, align 8, !tbaa !9
  %487 = call i32 @fileno(ptr noundef %486) #9
  %488 = call i32 @isatty(i32 noundef %487) #9
  %489 = icmp ne i32 %488, 0
  br i1 %489, label %490, label %501

490:                                              ; preds = %485
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = icmp ne i32 %491, 0
  br i1 %492, label %493, label %497

493:                                              ; preds = %490
  %494 = load ptr, ptr @stdout, align 8, !tbaa !9
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %494, ptr noundef @.str.10, i32 noundef %495) #9
  br label %500

497:                                              ; preds = %490
  %498 = load ptr, ptr @stdout, align 8, !tbaa !9
  %499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %498, ptr noundef @.str.11) #9
  br label %500

500:                                              ; preds = %497, %493
  br label %512

501:                                              ; preds = %485, %482
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = icmp ne i32 %502, 0
  br i1 %503, label %504, label %508

504:                                              ; preds = %501
  %505 = load ptr, ptr @stdout, align 8, !tbaa !9
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %505, ptr noundef @.str.12, i32 noundef %506) #9
  br label %511

508:                                              ; preds = %501
  %509 = load ptr, ptr @stdout, align 8, !tbaa !9
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %509, ptr noundef @.str.13) #9
  br label %511

511:                                              ; preds = %508, %504
  br label %512

512:                                              ; preds = %511, %500
  store i32 0, ptr %3, align 4
  br label %10027

513:                                              ; No predecessors!
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514, %366
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %516

516:                                              ; preds = %515
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr @test_count, align 4, !tbaa !5
  %519 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %519, ptr %11, align 8, !tbaa !9
  %520 = icmp eq ptr %519, null
  br i1 %520, label %521, label %574

521:                                              ; preds = %516
  br label %522

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  %524 = call ptr @__errno_location() #10
  %525 = load i32, ptr %524, align 4, !tbaa !5
  store i32 %525, ptr %13, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = call i32 @s2n_print_stacktrace(ptr noundef %526)
  %528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %529 = trunc i8 %528 to i1
  br i1 %529, label %530, label %552

530:                                              ; preds = %523
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = call i32 @fileno(ptr noundef %531) #9
  %533 = call i32 @isatty(i32 noundef %532) #9
  %534 = icmp ne i32 %533, 0
  br i1 %534, label %535, label %552

535:                                              ; preds = %530
  %536 = load i32, ptr %13, align 4, !tbaa !5
  %537 = call ptr @__errno_location() #10
  store i32 %536, ptr %537, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call ptr @s2n_strerror(i32 noundef %541, ptr noundef @.str.4)
  %543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = call ptr @s2n_strerror_debug(i32 noundef %544, ptr noundef @.str.4)
  %546 = call ptr @__errno_location() #10
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = call ptr @strerror(i32 noundef %547) #9
  %549 = call ptr @__errno_location() #10
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %538, ptr noundef @.str.2, i32 noundef %539, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 161, ptr noundef %542, ptr noundef %545, ptr noundef %548, i32 noundef %550) #9
  br label %569

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

569:                                              ; preds = %552, %535
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %570

570:                                              ; preds = %569
  br label %571

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

572:                                              ; No predecessors!
  br label %573

573:                                              ; preds = %572
  br label %574

574:                                              ; preds = %573, %516
  br label %575

575:                                              ; preds = %574
  br label %576

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = add nsw i32 %578, 1
  store i32 %579, ptr @test_count, align 4, !tbaa !5
  %580 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %580, ptr %12, align 8, !tbaa !9
  %581 = icmp eq ptr %580, null
  br i1 %581, label %582, label %635

582:                                              ; preds = %577
  br label %583

583:                                              ; preds = %582
  br label %584

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

591:                                              ; preds = %584
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = call i32 @fileno(ptr noundef %592) #9
  %594 = call i32 @isatty(i32 noundef %593) #9
  %595 = icmp ne i32 %594, 0
  br i1 %595, label %596, label %613

596:                                              ; preds = %591
  %597 = load i32, ptr %14, align 4, !tbaa !5
  %598 = call ptr @__errno_location() #10
  store i32 %597, ptr %598, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef @.str.4)
  %604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef @.str.4)
  %607 = call ptr @__errno_location() #10
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call ptr @strerror(i32 noundef %608) #9
  %610 = call ptr @__errno_location() #10
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef @.str.2, i32 noundef %600, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 162, ptr noundef %603, ptr noundef %606, ptr noundef %609, i32 noundef %611) #9
  br label %630

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

630:                                              ; preds = %613, %596
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %631

631:                                              ; preds = %630
  br label %632

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

633:                                              ; No predecessors!
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634, %577
  br label %636

636:                                              ; preds = %635
  br label %637

637:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  store ptr null, ptr %15, align 8, !tbaa !9
  br label %638

638:                                              ; preds = %637
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = add nsw i32 %639, 1
  store i32 %640, ptr @test_count, align 4, !tbaa !5
  %641 = call ptr @s2n_config_new()
  store ptr %641, ptr %15, align 8, !tbaa !9
  %642 = icmp eq ptr %641, null
  br i1 %642, label %643, label %696

643:                                              ; preds = %638
  br label %644

644:                                              ; preds = %643
  br label %645

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

652:                                              ; preds = %645
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = call i32 @fileno(ptr noundef %653) #9
  %655 = call i32 @isatty(i32 noundef %654) #9
  %656 = icmp ne i32 %655, 0
  br i1 %656, label %657, label %674

657:                                              ; preds = %652
  %658 = load i32, ptr %16, align 4, !tbaa !5
  %659 = call ptr @__errno_location() #10
  store i32 %658, ptr %659, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror(i32 noundef %663, ptr noundef @.str.4)
  %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_debug(i32 noundef %666, ptr noundef @.str.4)
  %668 = call ptr @__errno_location() #10
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @strerror(i32 noundef %669) #9
  %671 = call ptr @__errno_location() #10
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %660, ptr noundef @.str.2, i32 noundef %661, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 166, ptr noundef %664, ptr noundef %667, ptr noundef %670, i32 noundef %672) #9
  br label %691

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

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

692:                                              ; preds = %691
  br label %693

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

694:                                              ; No predecessors!
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695, %638
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697
  br label %699

699:                                              ; preds = %698
  %700 = load i32, ptr @test_count, align 4, !tbaa !5
  %701 = add nsw i32 %700, 1
  store i32 %701, ptr @test_count, align 4, !tbaa !5
  %702 = load ptr, ptr %15, align 8, !tbaa !9
  %703 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %702, ptr noundef @.str.17)
  %704 = icmp eq i32 %703, -1
  br i1 %704, label %705, label %758

705:                                              ; preds = %699
  br label %706

706:                                              ; preds = %705
  br label %707

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

714:                                              ; preds = %707
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = call i32 @fileno(ptr noundef %715) #9
  %717 = call i32 @isatty(i32 noundef %716) #9
  %718 = icmp ne i32 %717, 0
  br i1 %718, label %719, label %736

719:                                              ; preds = %714
  %720 = load i32, ptr %17, align 4, !tbaa !5
  %721 = call ptr @__errno_location() #10
  store i32 %720, ptr %721, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = load i32, ptr @test_count, align 4, !tbaa !5
  %724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror(i32 noundef %725, ptr noundef @.str.4)
  %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_debug(i32 noundef %728, ptr noundef @.str.4)
  %730 = call ptr @__errno_location() #10
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #9
  %733 = call ptr @__errno_location() #10
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %722, ptr noundef @.str.2, i32 noundef %723, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 167, ptr noundef %726, ptr noundef %729, ptr noundef %732, i32 noundef %734) #9
  br label %753

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

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

754:                                              ; preds = %753
  br label %755

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

756:                                              ; No predecessors!
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757, %699
  br label %759

759:                                              ; preds = %758
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = add nsw i32 %762, 1
  store i32 %763, ptr @test_count, align 4, !tbaa !5
  %764 = load ptr, ptr %15, align 8, !tbaa !9
  %765 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %764)
  %766 = icmp eq i32 %765, -1
  br i1 %766, label %767, label %820

767:                                              ; preds = %761
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %770 = call ptr @__errno_location() #10
  %771 = load i32, ptr %770, align 4, !tbaa !5
  store i32 %771, ptr %18, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = call i32 @s2n_print_stacktrace(ptr noundef %772)
  %774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %775 = trunc i8 %774 to i1
  br i1 %775, label %776, label %798

776:                                              ; preds = %769
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = call i32 @fileno(ptr noundef %777) #9
  %779 = call i32 @isatty(i32 noundef %778) #9
  %780 = icmp ne i32 %779, 0
  br i1 %780, label %781, label %798

781:                                              ; preds = %776
  %782 = load i32, ptr %18, align 4, !tbaa !5
  %783 = call ptr @__errno_location() #10
  store i32 %782, ptr %783, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror(i32 noundef %787, ptr noundef @.str.4)
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror_debug(i32 noundef %790, ptr noundef @.str.4)
  %792 = call ptr @__errno_location() #10
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @strerror(i32 noundef %793) #9
  %795 = call ptr @__errno_location() #10
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %784, ptr noundef @.str.2, i32 noundef %785, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 168, ptr noundef %788, ptr noundef %791, ptr noundef %794, i32 noundef %796) #9
  br label %815

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

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

816:                                              ; preds = %815
  br label %817

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

818:                                              ; No predecessors!
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819, %761
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  store ptr null, ptr %19, align 8, !tbaa !9
  br label %823

823:                                              ; preds = %822
  %824 = load i32, ptr @test_count, align 4, !tbaa !5
  %825 = add nsw i32 %824, 1
  store i32 %825, ptr @test_count, align 4, !tbaa !5
  %826 = call ptr @s2n_config_new()
  store ptr %826, ptr %19, align 8, !tbaa !9
  %827 = icmp eq ptr %826, null
  br i1 %827, label %828, label %881

828:                                              ; preds = %823
  br label %829

829:                                              ; preds = %828
  br label %830

830:                                              ; preds = %829
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %831 = call ptr @__errno_location() #10
  %832 = load i32, ptr %831, align 4, !tbaa !5
  store i32 %832, ptr %20, align 4, !tbaa !5
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = call i32 @s2n_print_stacktrace(ptr noundef %833)
  %835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %836 = trunc i8 %835 to i1
  br i1 %836, label %837, label %859

837:                                              ; preds = %830
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = call i32 @fileno(ptr noundef %838) #9
  %840 = call i32 @isatty(i32 noundef %839) #9
  %841 = icmp ne i32 %840, 0
  br i1 %841, label %842, label %859

842:                                              ; preds = %837
  %843 = load i32, ptr %20, align 4, !tbaa !5
  %844 = call ptr @__errno_location() #10
  store i32 %843, ptr %844, align 4, !tbaa !5
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror(i32 noundef %848, ptr noundef @.str.4)
  %850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror_debug(i32 noundef %851, ptr noundef @.str.4)
  %853 = call ptr @__errno_location() #10
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @strerror(i32 noundef %854) #9
  %856 = call ptr @__errno_location() #10
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %845, ptr noundef @.str.2, i32 noundef %846, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 172, ptr noundef %849, ptr noundef %852, ptr noundef %855, i32 noundef %857) #9
  br label %876

859:                                              ; preds = %837, %830
  %860 = load i32, ptr %20, align 4, !tbaa !5
  %861 = call ptr @__errno_location() #10
  store i32 %860, ptr %861, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call ptr @s2n_strerror(i32 noundef %865, ptr noundef @.str.4)
  %867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror_debug(i32 noundef %868, ptr noundef @.str.4)
  %870 = call ptr @__errno_location() #10
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @strerror(i32 noundef %871) #9
  %873 = call ptr @__errno_location() #10
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %862, ptr noundef @.str.5, i32 noundef %863, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 172, ptr noundef %866, ptr noundef %869, ptr noundef %872, i32 noundef %874) #9
  br label %876

876:                                              ; preds = %859, %842
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %877

877:                                              ; preds = %876
  br label %878

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

879:                                              ; No predecessors!
  br label %880

880:                                              ; preds = %879
  br label %881

881:                                              ; preds = %880, %823
  br label %882

882:                                              ; preds = %881
  br label %883

883:                                              ; preds = %882
  br label %884

884:                                              ; preds = %883
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = add nsw i32 %885, 1
  store i32 %886, ptr @test_count, align 4, !tbaa !5
  %887 = load ptr, ptr %19, align 8, !tbaa !9
  %888 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %887, ptr noundef @.str.17)
  %889 = icmp eq i32 %888, -1
  br i1 %889, label %890, label %943

890:                                              ; preds = %884
  br label %891

891:                                              ; preds = %890
  br label %892

892:                                              ; preds = %891
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %893 = call ptr @__errno_location() #10
  %894 = load i32, ptr %893, align 4, !tbaa !5
  store i32 %894, ptr %21, align 4, !tbaa !5
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = call i32 @s2n_print_stacktrace(ptr noundef %895)
  %897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %898 = trunc i8 %897 to i1
  br i1 %898, label %899, label %921

899:                                              ; preds = %892
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = call i32 @fileno(ptr noundef %900) #9
  %902 = call i32 @isatty(i32 noundef %901) #9
  %903 = icmp ne i32 %902, 0
  br i1 %903, label %904, label %921

904:                                              ; preds = %899
  %905 = load i32, ptr %21, align 4, !tbaa !5
  %906 = call ptr @__errno_location() #10
  store i32 %905, ptr %906, align 4, !tbaa !5
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = load i32, ptr @test_count, align 4, !tbaa !5
  %909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %910 = load i32, ptr %909, align 4, !tbaa !5
  %911 = call ptr @s2n_strerror(i32 noundef %910, ptr noundef @.str.4)
  %912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror_debug(i32 noundef %913, ptr noundef @.str.4)
  %915 = call ptr @__errno_location() #10
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @strerror(i32 noundef %916) #9
  %918 = call ptr @__errno_location() #10
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %907, ptr noundef @.str.2, i32 noundef %908, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 173, ptr noundef %911, ptr noundef %914, ptr noundef %917, i32 noundef %919) #9
  br label %938

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

938:                                              ; preds = %921, %904
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %939

939:                                              ; preds = %938
  br label %940

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

941:                                              ; No predecessors!
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942, %884
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945
  %947 = load i32, ptr @test_count, align 4, !tbaa !5
  %948 = add nsw i32 %947, 1
  store i32 %948, ptr @test_count, align 4, !tbaa !5
  %949 = load ptr, ptr %19, align 8, !tbaa !9
  %950 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %949)
  %951 = icmp eq i32 %950, -1
  br i1 %951, label %952, label %1005

952:                                              ; preds = %946
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %955 = call ptr @__errno_location() #10
  %956 = load i32, ptr %955, align 4, !tbaa !5
  store i32 %956, ptr %22, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = call i32 @s2n_print_stacktrace(ptr noundef %957)
  %959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %960 = trunc i8 %959 to i1
  br i1 %960, label %961, label %983

961:                                              ; preds = %954
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = call i32 @fileno(ptr noundef %962) #9
  %964 = call i32 @isatty(i32 noundef %963) #9
  %965 = icmp ne i32 %964, 0
  br i1 %965, label %966, label %983

966:                                              ; preds = %961
  %967 = load i32, ptr %22, align 4, !tbaa !5
  %968 = call ptr @__errno_location() #10
  store i32 %967, ptr %968, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror(i32 noundef %972, ptr noundef @.str.4)
  %974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %975 = load i32, ptr %974, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror_debug(i32 noundef %975, ptr noundef @.str.4)
  %977 = call ptr @__errno_location() #10
  %978 = load i32, ptr %977, align 4, !tbaa !5
  %979 = call ptr @strerror(i32 noundef %978) #9
  %980 = call ptr @__errno_location() #10
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %969, ptr noundef @.str.2, i32 noundef %970, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 174, ptr noundef %973, ptr noundef %976, ptr noundef %979, i32 noundef %981) #9
  br label %1000

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

1000:                                             ; preds = %983, %966
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %1001

1001:                                             ; preds = %1000
  br label %1002

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

1003:                                             ; No predecessors!
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

1005:                                             ; preds = %1004, %946
  br label %1006

1006:                                             ; preds = %1005
  br label %1007

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

1008:                                             ; preds = %1007
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = add nsw i32 %1009, 1
  store i32 %1010, ptr @test_count, align 4, !tbaa !5
  %1011 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %23, ptr noundef @.str.23, ptr noundef @.str.24)
  %1012 = icmp eq i32 %1011, -1
  br i1 %1012, label %1013, label %1066

1013:                                             ; preds = %1008
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %1016 = call ptr @__errno_location() #10
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  store i32 %1017, ptr %24, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @s2n_print_stacktrace(ptr noundef %1018)
  %1020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1021 = trunc i8 %1020 to i1
  br i1 %1021, label %1022, label %1044

1022:                                             ; preds = %1015
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = call i32 @fileno(ptr noundef %1023) #9
  %1025 = call i32 @isatty(i32 noundef %1024) #9
  %1026 = icmp ne i32 %1025, 0
  br i1 %1026, label %1027, label %1044

1027:                                             ; preds = %1022
  %1028 = load i32, ptr %24, align 4, !tbaa !5
  %1029 = call ptr @__errno_location() #10
  store i32 %1028, ptr %1029, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror(i32 noundef %1033, ptr noundef @.str.4)
  %1035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef @.str.4)
  %1038 = call ptr @__errno_location() #10
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @strerror(i32 noundef %1039) #9
  %1041 = call ptr @__errno_location() #10
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1030, ptr noundef @.str.2, i32 noundef %1031, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 177, ptr noundef %1034, ptr noundef %1037, ptr noundef %1040, i32 noundef %1042) #9
  br label %1061

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

1061:                                             ; preds = %1044, %1027
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

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

1064:                                             ; No predecessors!
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1065, %1008
  br label %1067

1067:                                             ; preds = %1066
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = add nsw i32 %1070, 1
  store i32 %1071, ptr @test_count, align 4, !tbaa !5
  %1072 = load ptr, ptr %19, align 8, !tbaa !9
  %1073 = load ptr, ptr %23, align 8, !tbaa !9
  %1074 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1072, ptr noundef %1073)
  %1075 = icmp eq i32 %1074, -1
  br i1 %1075, label %1076, label %1129

1076:                                             ; preds = %1069
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %1079 = call ptr @__errno_location() #10
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  store i32 %1080, ptr %25, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @s2n_print_stacktrace(ptr noundef %1081)
  %1083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1084 = trunc i8 %1083 to i1
  br i1 %1084, label %1085, label %1107

1085:                                             ; preds = %1078
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = call i32 @fileno(ptr noundef %1086) #9
  %1088 = call i32 @isatty(i32 noundef %1087) #9
  %1089 = icmp ne i32 %1088, 0
  br i1 %1089, label %1090, label %1107

1090:                                             ; preds = %1085
  %1091 = load i32, ptr %25, align 4, !tbaa !5
  %1092 = call ptr @__errno_location() #10
  store i32 %1091, ptr %1092, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror(i32 noundef %1096, ptr noundef @.str.4)
  %1098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef @.str.4)
  %1101 = call ptr @__errno_location() #10
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @strerror(i32 noundef %1102) #9
  %1104 = call ptr @__errno_location() #10
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1093, ptr noundef @.str.2, i32 noundef %1094, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 178, ptr noundef %1097, ptr noundef %1100, ptr noundef %1103, i32 noundef %1105) #9
  br label %1124

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

1124:                                             ; preds = %1107, %1090
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

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

1127:                                             ; No predecessors!
  br label %1128

1128:                                             ; preds = %1127
  br label %1129

1129:                                             ; preds = %1128, %1069
  br label %1130

1130:                                             ; preds = %1129
  br label %1131

1131:                                             ; preds = %1130
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  call void @llvm.memset.p0.i64(ptr align 4 %26, i8 0, i64 8, i1 false)
  br label %1132

1132:                                             ; preds = %1131
  %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 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %26)
  %1136 = icmp eq i32 %1135, -1
  br i1 %1136, label %1137, label %1190

1137:                                             ; preds = %1132
  br label %1138

1138:                                             ; preds = %1137
  br label %1139

1139:                                             ; preds = %1138
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %1140 = call ptr @__errno_location() #10
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  store i32 %1141, ptr %27, align 4, !tbaa !5
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = call i32 @s2n_print_stacktrace(ptr noundef %1142)
  %1144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1145 = trunc i8 %1144 to i1
  br i1 %1145, label %1146, label %1168

1146:                                             ; preds = %1139
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = call i32 @fileno(ptr noundef %1147) #9
  %1149 = call i32 @isatty(i32 noundef %1148) #9
  %1150 = icmp ne i32 %1149, 0
  br i1 %1150, label %1151, label %1168

1151:                                             ; preds = %1146
  %1152 = load i32, ptr %27, align 4, !tbaa !5
  %1153 = call ptr @__errno_location() #10
  store i32 %1152, ptr %1153, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror(i32 noundef %1157, ptr noundef @.str.4)
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror_debug(i32 noundef %1160, ptr noundef @.str.4)
  %1162 = call ptr @__errno_location() #10
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @strerror(i32 noundef %1163) #9
  %1165 = call ptr @__errno_location() #10
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1154, ptr noundef @.str.2, i32 noundef %1155, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 182, ptr noundef %1158, ptr noundef %1161, ptr noundef %1164, i32 noundef %1166) #9
  br label %1185

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

1185:                                             ; preds = %1168, %1151
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

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

1188:                                             ; No predecessors!
  br label %1189

1189:                                             ; preds = %1188
  br label %1190

1190:                                             ; preds = %1189, %1132
  br label %1191

1191:                                             ; preds = %1190
  br label %1192

1192:                                             ; preds = %1191
  br label %1193

1193:                                             ; preds = %1192
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = add nsw i32 %1194, 1
  store i32 %1195, ptr @test_count, align 4, !tbaa !5
  %1196 = load ptr, ptr %11, align 8, !tbaa !9
  %1197 = load ptr, ptr %15, align 8, !tbaa !9
  %1198 = call i32 @s2n_connection_set_config(ptr noundef %1196, ptr noundef %1197)
  %1199 = icmp eq i32 %1198, -1
  br i1 %1199, label %1200, label %1253

1200:                                             ; preds = %1193
  br label %1201

1201:                                             ; preds = %1200
  br label %1202

1202:                                             ; preds = %1201
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %1203 = call ptr @__errno_location() #10
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  store i32 %1204, ptr %28, align 4, !tbaa !5
  %1205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1206 = call i32 @s2n_print_stacktrace(ptr noundef %1205)
  %1207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1208 = trunc i8 %1207 to i1
  br i1 %1208, label %1209, label %1231

1209:                                             ; preds = %1202
  %1210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1211 = call i32 @fileno(ptr noundef %1210) #9
  %1212 = call i32 @isatty(i32 noundef %1211) #9
  %1213 = icmp ne i32 %1212, 0
  br i1 %1213, label %1214, label %1231

1214:                                             ; preds = %1209
  %1215 = load i32, ptr %28, align 4, !tbaa !5
  %1216 = call ptr @__errno_location() #10
  store i32 %1215, ptr %1216, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = load i32, ptr @test_count, align 4, !tbaa !5
  %1219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef @.str.4)
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror_debug(i32 noundef %1223, ptr noundef @.str.4)
  %1225 = call ptr @__errno_location() #10
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call ptr @strerror(i32 noundef %1226) #9
  %1228 = call ptr @__errno_location() #10
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1217, ptr noundef @.str.2, i32 noundef %1218, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 186, ptr noundef %1221, ptr noundef %1224, ptr noundef %1227, i32 noundef %1229) #9
  br label %1248

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

1248:                                             ; preds = %1231, %1214
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1249

1249:                                             ; preds = %1248
  br label %1250

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

1251:                                             ; No predecessors!
  br label %1252

1252:                                             ; preds = %1251
  br label %1253

1253:                                             ; preds = %1252, %1193
  br label %1254

1254:                                             ; preds = %1253
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

1256:                                             ; preds = %1255
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = add nsw i32 %1257, 1
  store i32 %1258, ptr @test_count, align 4, !tbaa !5
  %1259 = load ptr, ptr %12, align 8, !tbaa !9
  %1260 = load ptr, ptr %15, align 8, !tbaa !9
  %1261 = call i32 @s2n_connection_set_config(ptr noundef %1259, ptr noundef %1260)
  %1262 = icmp eq i32 %1261, -1
  br i1 %1262, label %1263, label %1316

1263:                                             ; preds = %1256
  br label %1264

1264:                                             ; preds = %1263
  br label %1265

1265:                                             ; preds = %1264
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %1266 = call ptr @__errno_location() #10
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  store i32 %1267, ptr %29, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = call i32 @s2n_print_stacktrace(ptr noundef %1268)
  %1270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1271 = trunc i8 %1270 to i1
  br i1 %1271, label %1272, label %1294

1272:                                             ; preds = %1265
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = call i32 @fileno(ptr noundef %1273) #9
  %1275 = call i32 @isatty(i32 noundef %1274) #9
  %1276 = icmp ne i32 %1275, 0
  br i1 %1276, label %1277, label %1294

1277:                                             ; preds = %1272
  %1278 = load i32, ptr %29, align 4, !tbaa !5
  %1279 = call ptr @__errno_location() #10
  store i32 %1278, ptr %1279, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = load i32, ptr @test_count, align 4, !tbaa !5
  %1282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror(i32 noundef %1283, ptr noundef @.str.4)
  %1285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call ptr @s2n_strerror_debug(i32 noundef %1286, ptr noundef @.str.4)
  %1288 = call ptr @__errno_location() #10
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call ptr @strerror(i32 noundef %1289) #9
  %1291 = call ptr @__errno_location() #10
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1280, ptr noundef @.str.2, i32 noundef %1281, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 186, ptr noundef %1284, ptr noundef %1287, ptr noundef %1290, i32 noundef %1292) #9
  br label %1311

1294:                                             ; preds = %1272, %1265
  %1295 = load i32, ptr %29, align 4, !tbaa !5
  %1296 = call ptr @__errno_location() #10
  store i32 %1295, ptr %1296, align 4, !tbaa !5
  %1297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1298 = load i32, ptr @test_count, align 4, !tbaa !5
  %1299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1300 = load i32, ptr %1299, align 4, !tbaa !5
  %1301 = call ptr @s2n_strerror(i32 noundef %1300, ptr noundef @.str.4)
  %1302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = call ptr @s2n_strerror_debug(i32 noundef %1303, ptr noundef @.str.4)
  %1305 = call ptr @__errno_location() #10
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @strerror(i32 noundef %1306) #9
  %1308 = call ptr @__errno_location() #10
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1297, ptr noundef @.str.5, i32 noundef %1298, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 186, ptr noundef %1301, ptr noundef %1304, ptr noundef %1307, i32 noundef %1309) #9
  br label %1311

1311:                                             ; preds = %1294, %1277
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1312

1312:                                             ; preds = %1311
  br label %1313

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

1314:                                             ; No predecessors!
  br label %1315

1315:                                             ; preds = %1314
  br label %1316

1316:                                             ; preds = %1315, %1256
  br label %1317

1317:                                             ; preds = %1316
  br label %1318

1318:                                             ; preds = %1317
  br label %1319

1319:                                             ; preds = %1318
  %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 = load ptr, ptr %11, align 8, !tbaa !9
  %1323 = call i32 @s2n_connection_set_io_pair(ptr noundef %1322, ptr noundef %26)
  %1324 = icmp eq i32 %1323, -1
  br i1 %1324, label %1325, label %1378

1325:                                             ; preds = %1319
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %1328 = call ptr @__errno_location() #10
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  store i32 %1329, ptr %30, align 4, !tbaa !5
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @s2n_print_stacktrace(ptr noundef %1330)
  %1332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1333 = trunc i8 %1332 to i1
  br i1 %1333, label %1334, label %1356

1334:                                             ; preds = %1327
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = call i32 @fileno(ptr noundef %1335) #9
  %1337 = call i32 @isatty(i32 noundef %1336) #9
  %1338 = icmp ne i32 %1337, 0
  br i1 %1338, label %1339, label %1356

1339:                                             ; preds = %1334
  %1340 = load i32, ptr %30, align 4, !tbaa !5
  %1341 = call ptr @__errno_location() #10
  store i32 %1340, ptr %1341, align 4, !tbaa !5
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %1344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror(i32 noundef %1345, ptr noundef @.str.4)
  %1347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror_debug(i32 noundef %1348, ptr noundef @.str.4)
  %1350 = call ptr @__errno_location() #10
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call ptr @strerror(i32 noundef %1351) #9
  %1353 = call ptr @__errno_location() #10
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1342, ptr noundef @.str.2, i32 noundef %1343, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 187, ptr noundef %1346, ptr noundef %1349, ptr noundef %1352, i32 noundef %1354) #9
  br label %1373

1356:                                             ; preds = %1334, %1327
  %1357 = load i32, ptr %30, align 4, !tbaa !5
  %1358 = call ptr @__errno_location() #10
  store i32 %1357, ptr %1358, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror(i32 noundef %1362, ptr noundef @.str.4)
  %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_debug(i32 noundef %1365, ptr noundef @.str.4)
  %1367 = call ptr @__errno_location() #10
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @strerror(i32 noundef %1368) #9
  %1370 = call ptr @__errno_location() #10
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1359, ptr noundef @.str.5, i32 noundef %1360, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 187, ptr noundef %1363, ptr noundef %1366, ptr noundef %1369, i32 noundef %1371) #9
  br label %1373

1373:                                             ; preds = %1356, %1339
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

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

1376:                                             ; No predecessors!
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377, %1319
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

1380:                                             ; preds = %1379
  br label %1381

1381:                                             ; preds = %1380
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = add nsw i32 %1382, 1
  store i32 %1383, ptr @test_count, align 4, !tbaa !5
  %1384 = load ptr, ptr %12, align 8, !tbaa !9
  %1385 = call i32 @s2n_connection_set_io_pair(ptr noundef %1384, ptr noundef %26)
  %1386 = icmp eq i32 %1385, -1
  br i1 %1386, label %1387, label %1440

1387:                                             ; preds = %1381
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

1389:                                             ; preds = %1388
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %1390 = call ptr @__errno_location() #10
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  store i32 %1391, ptr %31, align 4, !tbaa !5
  %1392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1393 = call i32 @s2n_print_stacktrace(ptr noundef %1392)
  %1394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1395 = trunc i8 %1394 to i1
  br i1 %1395, label %1396, label %1418

1396:                                             ; preds = %1389
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = call i32 @fileno(ptr noundef %1397) #9
  %1399 = call i32 @isatty(i32 noundef %1398) #9
  %1400 = icmp ne i32 %1399, 0
  br i1 %1400, label %1401, label %1418

1401:                                             ; preds = %1396
  %1402 = load i32, ptr %31, align 4, !tbaa !5
  %1403 = call ptr @__errno_location() #10
  store i32 %1402, ptr %1403, align 4, !tbaa !5
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror(i32 noundef %1407, ptr noundef @.str.4)
  %1409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @s2n_strerror_debug(i32 noundef %1410, ptr noundef @.str.4)
  %1412 = call ptr @__errno_location() #10
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call ptr @strerror(i32 noundef %1413) #9
  %1415 = call ptr @__errno_location() #10
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1404, ptr noundef @.str.2, i32 noundef %1405, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 187, ptr noundef %1408, ptr noundef %1411, ptr noundef %1414, i32 noundef %1416) #9
  br label %1435

1418:                                             ; preds = %1396, %1389
  %1419 = load i32, ptr %31, align 4, !tbaa !5
  %1420 = call ptr @__errno_location() #10
  store i32 %1419, ptr %1420, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef @.str.4)
  %1429 = call ptr @__errno_location() #10
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @strerror(i32 noundef %1430) #9
  %1432 = call ptr @__errno_location() #10
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1421, ptr noundef @.str.5, i32 noundef %1422, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 187, ptr noundef %1425, ptr noundef %1428, ptr noundef %1431, i32 noundef %1433) #9
  br label %1435

1435:                                             ; preds = %1418, %1401
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

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

1438:                                             ; No predecessors!
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

1440:                                             ; preds = %1439, %1381
  br label %1441

1441:                                             ; preds = %1440
  br label %1442

1442:                                             ; preds = %1441
  br label %1443

1443:                                             ; preds = %1442
  %1444 = load i32, ptr @test_count, align 4, !tbaa !5
  %1445 = add nsw i32 %1444, 1
  store i32 %1445, ptr @test_count, align 4, !tbaa !5
  %1446 = load ptr, ptr %11, align 8, !tbaa !9
  %1447 = call i32 @setup_client_psks(ptr noundef %1446)
  %1448 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %1447, ptr %1448, align 4
  %1449 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %1450 = load i32, ptr %1449, align 4
  %1451 = call zeroext i1 @s2n_result_is_ok(i32 %1450)
  br i1 %1451, label %1505, label %1452

1452:                                             ; preds = %1443
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

1454:                                             ; preds = %1453
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1455 = call ptr @__errno_location() #10
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  store i32 %1456, ptr %33, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @s2n_print_stacktrace(ptr noundef %1457)
  %1459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1460 = trunc i8 %1459 to i1
  br i1 %1460, label %1461, label %1483

1461:                                             ; preds = %1454
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = call i32 @fileno(ptr noundef %1462) #9
  %1464 = call i32 @isatty(i32 noundef %1463) #9
  %1465 = icmp ne i32 %1464, 0
  br i1 %1465, label %1466, label %1483

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

1483:                                             ; preds = %1461, %1454
  %1484 = load i32, ptr %33, align 4, !tbaa !5
  %1485 = call ptr @__errno_location() #10
  store i32 %1484, ptr %1485, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror(i32 noundef %1489, ptr noundef @.str.4)
  %1491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef @.str.4)
  %1494 = call ptr @__errno_location() #10
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  %1496 = call ptr @strerror(i32 noundef %1495) #9
  %1497 = call ptr @__errno_location() #10
  %1498 = load i32, ptr %1497, align 4, !tbaa !5
  %1499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1486, ptr noundef @.str.5, i32 noundef %1487, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 190, ptr noundef %1490, ptr noundef %1493, ptr noundef %1496, i32 noundef %1498) #9
  br label %1500

1500:                                             ; preds = %1483, %1466
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

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

1503:                                             ; No predecessors!
  br label %1504

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504, %1443
  br label %1506

1506:                                             ; preds = %1505
  br label %1507

1507:                                             ; preds = %1506
  br label %1508

1508:                                             ; preds = %1507
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = add nsw i32 %1509, 1
  store i32 %1510, ptr @test_count, align 4, !tbaa !5
  %1511 = load ptr, ptr %12, align 8, !tbaa !9
  %1512 = call i32 @setup_server_psks(ptr noundef %1511)
  %1513 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  store i32 %1512, ptr %1513, align 4
  %1514 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  %1515 = load i32, ptr %1514, align 4
  %1516 = call zeroext i1 @s2n_result_is_ok(i32 %1515)
  br i1 %1516, label %1570, label %1517

1517:                                             ; preds = %1508
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1520 = call ptr @__errno_location() #10
  %1521 = load i32, ptr %1520, align 4, !tbaa !5
  store i32 %1521, ptr %35, align 4, !tbaa !5
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = call i32 @s2n_print_stacktrace(ptr noundef %1522)
  %1524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1525 = trunc i8 %1524 to i1
  br i1 %1525, label %1526, label %1548

1526:                                             ; preds = %1519
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = call i32 @fileno(ptr noundef %1527) #9
  %1529 = call i32 @isatty(i32 noundef %1528) #9
  %1530 = icmp ne i32 %1529, 0
  br i1 %1530, label %1531, label %1548

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

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

1565:                                             ; preds = %1548, %1531
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

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

1568:                                             ; No predecessors!
  br label %1569

1569:                                             ; preds = %1568
  br label %1570

1570:                                             ; preds = %1569, %1508
  br label %1571

1571:                                             ; preds = %1570
  br label %1572

1572:                                             ; preds = %1571
  br label %1573

1573:                                             ; preds = %1572
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = add nsw i32 %1574, 1
  store i32 %1575, ptr @test_count, align 4, !tbaa !5
  %1576 = load ptr, ptr %12, align 8, !tbaa !9
  %1577 = load ptr, ptr %11, align 8, !tbaa !9
  %1578 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1576, ptr noundef %1577)
  %1579 = icmp eq i32 %1578, -1
  br i1 %1579, label %1580, label %1633

1580:                                             ; preds = %1573
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

1582:                                             ; preds = %1581
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1583 = call ptr @__errno_location() #10
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  store i32 %1584, ptr %36, align 4, !tbaa !5
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = call i32 @s2n_print_stacktrace(ptr noundef %1585)
  %1587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1588 = trunc i8 %1587 to i1
  br i1 %1588, label %1589, label %1611

1589:                                             ; preds = %1582
  %1590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1591 = call i32 @fileno(ptr noundef %1590) #9
  %1592 = call i32 @isatty(i32 noundef %1591) #9
  %1593 = icmp ne i32 %1592, 0
  br i1 %1593, label %1594, label %1611

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

1611:                                             ; preds = %1589, %1582
  %1612 = load i32, ptr %36, align 4, !tbaa !5
  %1613 = call ptr @__errno_location() #10
  store i32 %1612, ptr %1613, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror(i32 noundef %1617, ptr noundef @.str.4)
  %1619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror_debug(i32 noundef %1620, ptr noundef @.str.4)
  %1622 = call ptr @__errno_location() #10
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @strerror(i32 noundef %1623) #9
  %1625 = call ptr @__errno_location() #10
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1614, ptr noundef @.str.5, i32 noundef %1615, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 194, ptr noundef %1618, ptr noundef %1621, ptr noundef %1624, i32 noundef %1626) #9
  br label %1628

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

1629:                                             ; preds = %1628
  br label %1630

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

1631:                                             ; No predecessors!
  br label %1632

1632:                                             ; preds = %1631
  br label %1633

1633:                                             ; preds = %1632, %1573
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %1638 = add nsw i32 %1637, 1
  store i32 %1638, ptr @test_count, align 4, !tbaa !5
  %1639 = load ptr, ptr %11, align 8, !tbaa !9
  %1640 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1639, i32 noundef 2)
  br i1 %1640, label %1641, label %1697

1641:                                             ; preds = %1636
  %1642 = load ptr, ptr %12, align 8, !tbaa !9
  %1643 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1642, i32 noundef 2)
  br i1 %1643, label %1644, label %1697

1644:                                             ; preds = %1641
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1647 = call ptr @__errno_location() #10
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  store i32 %1648, ptr %37, align 4, !tbaa !5
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = call i32 @s2n_print_stacktrace(ptr noundef %1649)
  %1651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1652 = trunc i8 %1651 to i1
  br i1 %1652, label %1653, label %1675

1653:                                             ; preds = %1646
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @fileno(ptr noundef %1654) #9
  %1656 = call i32 @isatty(i32 noundef %1655) #9
  %1657 = icmp ne i32 %1656, 0
  br i1 %1657, label %1658, label %1675

1658:                                             ; preds = %1653
  %1659 = load i32, ptr %37, align 4, !tbaa !5
  %1660 = call ptr @__errno_location() #10
  store i32 %1659, ptr %1660, align 4, !tbaa !5
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror(i32 noundef %1664, ptr noundef @.str.4)
  %1666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @s2n_strerror_debug(i32 noundef %1667, ptr noundef @.str.4)
  %1669 = call ptr @__errno_location() #10
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #9
  %1672 = call ptr @__errno_location() #10
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1661, ptr noundef @.str.2, i32 noundef %1662, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 197, ptr noundef %1665, ptr noundef %1668, ptr noundef %1671, i32 noundef %1673) #9
  br label %1692

1675:                                             ; preds = %1653, %1646
  %1676 = load i32, ptr %37, align 4, !tbaa !5
  %1677 = call ptr @__errno_location() #10
  store i32 %1676, ptr %1677, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror(i32 noundef %1681, ptr noundef @.str.4)
  %1683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror_debug(i32 noundef %1684, ptr noundef @.str.4)
  %1686 = call ptr @__errno_location() #10
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @strerror(i32 noundef %1687) #9
  %1689 = call ptr @__errno_location() #10
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1678, ptr noundef @.str.5, i32 noundef %1679, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 197, ptr noundef %1682, ptr noundef %1685, ptr noundef %1688, i32 noundef %1690) #9
  br label %1692

1692:                                             ; preds = %1675, %1658
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1693

1693:                                             ; preds = %1692
  br label %1694

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

1695:                                             ; No predecessors!
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

1697:                                             ; preds = %1696, %1641, %1636
  br label %1698

1698:                                             ; preds = %1697
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

1700:                                             ; preds = %1699
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = add nsw i32 %1701, 1
  store i32 %1702, ptr @test_count, align 4, !tbaa !5
  %1703 = load ptr, ptr %12, align 8, !tbaa !9
  %1704 = call i32 @validate_chosen_psk(ptr noundef %1703, ptr noundef @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %1705 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  store i32 %1704, ptr %1705, align 4
  %1706 = getelementptr inbounds %struct.s2n_result, ptr %38, i32 0, i32 0
  %1707 = load i32, ptr %1706, align 4
  %1708 = call zeroext i1 @s2n_result_is_ok(i32 %1707)
  br i1 %1708, label %1762, label %1709

1709:                                             ; preds = %1700
  br label %1710

1710:                                             ; preds = %1709
  br label %1711

1711:                                             ; preds = %1710
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1712 = call ptr @__errno_location() #10
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  store i32 %1713, ptr %39, align 4, !tbaa !5
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = call i32 @s2n_print_stacktrace(ptr noundef %1714)
  %1716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1717 = trunc i8 %1716 to i1
  br i1 %1717, label %1718, label %1740

1718:                                             ; preds = %1711
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @fileno(ptr noundef %1719) #9
  %1721 = call i32 @isatty(i32 noundef %1720) #9
  %1722 = icmp ne i32 %1721, 0
  br i1 %1722, label %1723, label %1740

1723:                                             ; preds = %1718
  %1724 = load i32, ptr %39, align 4, !tbaa !5
  %1725 = call ptr @__errno_location() #10
  store i32 %1724, ptr %1725, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = load i32, ptr @test_count, align 4, !tbaa !5
  %1728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror(i32 noundef %1729, ptr noundef @.str.4)
  %1731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror_debug(i32 noundef %1732, ptr noundef @.str.4)
  %1734 = call ptr @__errno_location() #10
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call ptr @strerror(i32 noundef %1735) #9
  %1737 = call ptr @__errno_location() #10
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  %1739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1726, ptr noundef @.str.2, i32 noundef %1727, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 201, ptr noundef %1730, ptr noundef %1733, ptr noundef %1736, i32 noundef %1738) #9
  br label %1757

1740:                                             ; preds = %1718, %1711
  %1741 = load i32, ptr %39, align 4, !tbaa !5
  %1742 = call ptr @__errno_location() #10
  store i32 %1741, ptr %1742, align 4, !tbaa !5
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = load i32, ptr @test_count, align 4, !tbaa !5
  %1745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror(i32 noundef %1746, ptr noundef @.str.4)
  %1748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call ptr @s2n_strerror_debug(i32 noundef %1749, ptr noundef @.str.4)
  %1751 = call ptr @__errno_location() #10
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call ptr @strerror(i32 noundef %1752) #9
  %1754 = call ptr @__errno_location() #10
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1743, ptr noundef @.str.5, i32 noundef %1744, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 201, ptr noundef %1747, ptr noundef %1750, ptr noundef %1753, i32 noundef %1755) #9
  br label %1757

1757:                                             ; preds = %1740, %1723
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1758

1758:                                             ; preds = %1757
  br label %1759

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

1760:                                             ; No predecessors!
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761, %1700
  br label %1763

1763:                                             ; preds = %1762
  br label %1764

1764:                                             ; preds = %1763
  br label %1765

1765:                                             ; preds = %1764
  %1766 = load i32, ptr @test_count, align 4, !tbaa !5
  %1767 = add nsw i32 %1766, 1
  store i32 %1767, ptr @test_count, align 4, !tbaa !5
  %1768 = load ptr, ptr %12, align 8, !tbaa !9
  %1769 = load ptr, ptr %11, align 8, !tbaa !9
  %1770 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %1768, ptr noundef %1769)
  %1771 = icmp eq i32 %1770, -1
  br i1 %1771, label %1772, label %1825

1772:                                             ; preds = %1765
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %1775 = call ptr @__errno_location() #10
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  store i32 %1776, ptr %40, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @s2n_print_stacktrace(ptr noundef %1777)
  %1779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1780 = trunc i8 %1779 to i1
  br i1 %1780, label %1781, label %1803

1781:                                             ; preds = %1774
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = call i32 @fileno(ptr noundef %1782) #9
  %1784 = call i32 @isatty(i32 noundef %1783) #9
  %1785 = icmp ne i32 %1784, 0
  br i1 %1785, label %1786, label %1803

1786:                                             ; preds = %1781
  %1787 = load i32, ptr %40, align 4, !tbaa !5
  %1788 = call ptr @__errno_location() #10
  store i32 %1787, ptr %1788, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror_debug(i32 noundef %1795, ptr noundef @.str.4)
  %1797 = call ptr @__errno_location() #10
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call ptr @strerror(i32 noundef %1798) #9
  %1800 = call ptr @__errno_location() #10
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1789, ptr noundef @.str.2, i32 noundef %1790, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 203, ptr noundef %1793, ptr noundef %1796, ptr noundef %1799, i32 noundef %1801) #9
  br label %1820

1803:                                             ; preds = %1781, %1774
  %1804 = load i32, ptr %40, align 4, !tbaa !5
  %1805 = call ptr @__errno_location() #10
  store i32 %1804, ptr %1805, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror(i32 noundef %1809, ptr noundef @.str.4)
  %1811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @s2n_strerror_debug(i32 noundef %1812, ptr noundef @.str.4)
  %1814 = call ptr @__errno_location() #10
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call ptr @strerror(i32 noundef %1815) #9
  %1817 = call ptr @__errno_location() #10
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1806, ptr noundef @.str.5, i32 noundef %1807, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 203, ptr noundef %1810, ptr noundef %1813, ptr noundef %1816, i32 noundef %1818) #9
  br label %1820

1820:                                             ; preds = %1803, %1786
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

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

1823:                                             ; No predecessors!
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

1825:                                             ; preds = %1824, %1765
  br label %1826

1826:                                             ; preds = %1825
  br label %1827

1827:                                             ; preds = %1826
  br label %1828

1828:                                             ; preds = %1827
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = add nsw i32 %1829, 1
  store i32 %1830, ptr @test_count, align 4, !tbaa !5
  %1831 = load ptr, ptr %11, align 8, !tbaa !9
  %1832 = call i32 @s2n_connection_wipe(ptr noundef %1831)
  %1833 = icmp eq i32 %1832, -1
  br i1 %1833, label %1834, label %1887

1834:                                             ; preds = %1828
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

1836:                                             ; preds = %1835
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1837 = call ptr @__errno_location() #10
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  store i32 %1838, ptr %41, align 4, !tbaa !5
  %1839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1840 = call i32 @s2n_print_stacktrace(ptr noundef %1839)
  %1841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1842 = trunc i8 %1841 to i1
  br i1 %1842, label %1843, label %1865

1843:                                             ; preds = %1836
  %1844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1845 = call i32 @fileno(ptr noundef %1844) #9
  %1846 = call i32 @isatty(i32 noundef %1845) #9
  %1847 = icmp ne i32 %1846, 0
  br i1 %1847, label %1848, label %1865

1848:                                             ; preds = %1843
  %1849 = load i32, ptr %41, align 4, !tbaa !5
  %1850 = call ptr @__errno_location() #10
  store i32 %1849, ptr %1850, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror(i32 noundef %1854, ptr noundef @.str.4)
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror_debug(i32 noundef %1857, ptr noundef @.str.4)
  %1859 = call ptr @__errno_location() #10
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call ptr @strerror(i32 noundef %1860) #9
  %1862 = call ptr @__errno_location() #10
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1851, ptr noundef @.str.2, i32 noundef %1852, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 205, ptr noundef %1855, ptr noundef %1858, ptr noundef %1861, i32 noundef %1863) #9
  br label %1882

1865:                                             ; preds = %1843, %1836
  %1866 = load i32, ptr %41, align 4, !tbaa !5
  %1867 = call ptr @__errno_location() #10
  store i32 %1866, ptr %1867, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = load i32, ptr @test_count, align 4, !tbaa !5
  %1870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef @.str.4)
  %1873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror_debug(i32 noundef %1874, ptr noundef @.str.4)
  %1876 = call ptr @__errno_location() #10
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call ptr @strerror(i32 noundef %1877) #9
  %1879 = call ptr @__errno_location() #10
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1868, ptr noundef @.str.5, i32 noundef %1869, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 205, ptr noundef %1872, ptr noundef %1875, ptr noundef %1878, i32 noundef %1880) #9
  br label %1882

1882:                                             ; preds = %1865, %1848
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

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

1885:                                             ; No predecessors!
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886, %1828
  br label %1888

1888:                                             ; preds = %1887
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1889
  %1891 = load i32, ptr @test_count, align 4, !tbaa !5
  %1892 = add nsw i32 %1891, 1
  store i32 %1892, ptr @test_count, align 4, !tbaa !5
  %1893 = load ptr, ptr %12, align 8, !tbaa !9
  %1894 = call i32 @s2n_connection_wipe(ptr noundef %1893)
  %1895 = icmp eq i32 %1894, -1
  br i1 %1895, label %1896, label %1949

1896:                                             ; preds = %1890
  br label %1897

1897:                                             ; preds = %1896
  br label %1898

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

1905:                                             ; preds = %1898
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @fileno(ptr noundef %1906) #9
  %1908 = call i32 @isatty(i32 noundef %1907) #9
  %1909 = icmp ne i32 %1908, 0
  br i1 %1909, label %1910, label %1927

1910:                                             ; preds = %1905
  %1911 = load i32, ptr %42, align 4, !tbaa !5
  %1912 = call ptr @__errno_location() #10
  store i32 %1911, ptr %1912, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror(i32 noundef %1916, ptr noundef @.str.4)
  %1918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror_debug(i32 noundef %1919, ptr noundef @.str.4)
  %1921 = call ptr @__errno_location() #10
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call ptr @strerror(i32 noundef %1922) #9
  %1924 = call ptr @__errno_location() #10
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1913, ptr noundef @.str.2, i32 noundef %1914, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 206, ptr noundef %1917, ptr noundef %1920, ptr noundef %1923, i32 noundef %1925) #9
  br label %1944

1927:                                             ; preds = %1905, %1898
  %1928 = load i32, ptr %42, align 4, !tbaa !5
  %1929 = call ptr @__errno_location() #10
  store i32 %1928, ptr %1929, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = load i32, ptr @test_count, align 4, !tbaa !5
  %1932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @s2n_strerror(i32 noundef %1933, ptr noundef @.str.4)
  %1935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call ptr @s2n_strerror_debug(i32 noundef %1936, ptr noundef @.str.4)
  %1938 = call ptr @__errno_location() #10
  %1939 = load i32, ptr %1938, align 4, !tbaa !5
  %1940 = call ptr @strerror(i32 noundef %1939) #9
  %1941 = call ptr @__errno_location() #10
  %1942 = load i32, ptr %1941, align 4, !tbaa !5
  %1943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1930, ptr noundef @.str.5, i32 noundef %1931, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 206, ptr noundef %1934, ptr noundef %1937, ptr noundef %1940, i32 noundef %1942) #9
  br label %1944

1944:                                             ; preds = %1927, %1910
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1945

1945:                                             ; preds = %1944
  br label %1946

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

1947:                                             ; No predecessors!
  br label %1948

1948:                                             ; preds = %1947
  br label %1949

1949:                                             ; preds = %1948, %1890
  br label %1950

1950:                                             ; preds = %1949
  br label %1951

1951:                                             ; preds = %1950
  br label %1952

1952:                                             ; preds = %1951
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = add nsw i32 %1953, 1
  store i32 %1954, ptr @test_count, align 4, !tbaa !5
  %1955 = load ptr, ptr %11, align 8, !tbaa !9
  %1956 = load ptr, ptr %15, align 8, !tbaa !9
  %1957 = call i32 @s2n_connection_set_config(ptr noundef %1955, ptr noundef %1956)
  %1958 = icmp eq i32 %1957, -1
  br i1 %1958, label %1959, label %2012

1959:                                             ; preds = %1952
  br label %1960

1960:                                             ; preds = %1959
  br label %1961

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

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

1973:                                             ; preds = %1968
  %1974 = load i32, ptr %43, align 4, !tbaa !5
  %1975 = call ptr @__errno_location() #10
  store i32 %1974, ptr %1975, align 4, !tbaa !5
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = load i32, ptr @test_count, align 4, !tbaa !5
  %1978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror(i32 noundef %1979, ptr noundef @.str.4)
  %1981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror_debug(i32 noundef %1982, ptr noundef @.str.4)
  %1984 = call ptr @__errno_location() #10
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call ptr @strerror(i32 noundef %1985) #9
  %1987 = call ptr @__errno_location() #10
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1976, ptr noundef @.str.2, i32 noundef %1977, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 211, ptr noundef %1980, ptr noundef %1983, ptr noundef %1986, i32 noundef %1988) #9
  br label %2007

1990:                                             ; preds = %1968, %1961
  %1991 = load i32, ptr %43, align 4, !tbaa !5
  %1992 = call ptr @__errno_location() #10
  store i32 %1991, ptr %1992, align 4, !tbaa !5
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = load i32, ptr @test_count, align 4, !tbaa !5
  %1995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = call ptr @s2n_strerror(i32 noundef %1996, ptr noundef @.str.4)
  %1998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call ptr @s2n_strerror_debug(i32 noundef %1999, ptr noundef @.str.4)
  %2001 = call ptr @__errno_location() #10
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  %2003 = call ptr @strerror(i32 noundef %2002) #9
  %2004 = call ptr @__errno_location() #10
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1993, ptr noundef @.str.5, i32 noundef %1994, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 211, ptr noundef %1997, ptr noundef %2000, ptr noundef %2003, i32 noundef %2005) #9
  br label %2007

2007:                                             ; preds = %1990, %1973
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %2008

2008:                                             ; preds = %2007
  br label %2009

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

2010:                                             ; No predecessors!
  br label %2011

2011:                                             ; preds = %2010
  br label %2012

2012:                                             ; preds = %2011, %1952
  br label %2013

2013:                                             ; preds = %2012
  br label %2014

2014:                                             ; preds = %2013
  br label %2015

2015:                                             ; preds = %2014
  %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 = load ptr, ptr %12, align 8, !tbaa !9
  %2019 = load ptr, ptr %15, align 8, !tbaa !9
  %2020 = call i32 @s2n_connection_set_config(ptr noundef %2018, ptr noundef %2019)
  %2021 = icmp eq i32 %2020, -1
  br i1 %2021, label %2022, label %2075

2022:                                             ; preds = %2015
  br label %2023

2023:                                             ; preds = %2022
  br label %2024

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

2031:                                             ; preds = %2024
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = call i32 @fileno(ptr noundef %2032) #9
  %2034 = call i32 @isatty(i32 noundef %2033) #9
  %2035 = icmp ne i32 %2034, 0
  br i1 %2035, label %2036, label %2053

2036:                                             ; preds = %2031
  %2037 = load i32, ptr %44, align 4, !tbaa !5
  %2038 = call ptr @__errno_location() #10
  store i32 %2037, ptr %2038, align 4, !tbaa !5
  %2039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2040 = load i32, ptr @test_count, align 4, !tbaa !5
  %2041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = call ptr @s2n_strerror(i32 noundef %2042, ptr noundef @.str.4)
  %2044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror_debug(i32 noundef %2045, ptr noundef @.str.4)
  %2047 = call ptr @__errno_location() #10
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call ptr @strerror(i32 noundef %2048) #9
  %2050 = call ptr @__errno_location() #10
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2039, ptr noundef @.str.2, i32 noundef %2040, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 211, ptr noundef %2043, ptr noundef %2046, ptr noundef %2049, i32 noundef %2051) #9
  br label %2070

2053:                                             ; preds = %2031, %2024
  %2054 = load i32, ptr %44, align 4, !tbaa !5
  %2055 = call ptr @__errno_location() #10
  store i32 %2054, ptr %2055, align 4, !tbaa !5
  %2056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2057 = load i32, ptr @test_count, align 4, !tbaa !5
  %2058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2059 = load i32, ptr %2058, align 4, !tbaa !5
  %2060 = call ptr @s2n_strerror(i32 noundef %2059, ptr noundef @.str.4)
  %2061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror_debug(i32 noundef %2062, ptr noundef @.str.4)
  %2064 = call ptr @__errno_location() #10
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call ptr @strerror(i32 noundef %2065) #9
  %2067 = call ptr @__errno_location() #10
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2056, ptr noundef @.str.5, i32 noundef %2057, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 211, ptr noundef %2060, ptr noundef %2063, ptr noundef %2066, i32 noundef %2068) #9
  br label %2070

2070:                                             ; preds = %2053, %2036
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %2071

2071:                                             ; preds = %2070
  br label %2072

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

2073:                                             ; No predecessors!
  br label %2074

2074:                                             ; preds = %2073
  br label %2075

2075:                                             ; preds = %2074, %2015
  br label %2076

2076:                                             ; preds = %2075
  br label %2077

2077:                                             ; preds = %2076
  br label %2078

2078:                                             ; preds = %2077
  %2079 = load i32, ptr @test_count, align 4, !tbaa !5
  %2080 = add nsw i32 %2079, 1
  store i32 %2080, ptr @test_count, align 4, !tbaa !5
  %2081 = load ptr, ptr %11, align 8, !tbaa !9
  %2082 = call i32 @s2n_connection_set_io_pair(ptr noundef %2081, ptr noundef %26)
  %2083 = icmp eq i32 %2082, -1
  br i1 %2083, label %2084, label %2137

2084:                                             ; preds = %2078
  br label %2085

2085:                                             ; preds = %2084
  br label %2086

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

2093:                                             ; preds = %2086
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = call i32 @fileno(ptr noundef %2094) #9
  %2096 = call i32 @isatty(i32 noundef %2095) #9
  %2097 = icmp ne i32 %2096, 0
  br i1 %2097, label %2098, label %2115

2098:                                             ; preds = %2093
  %2099 = load i32, ptr %45, align 4, !tbaa !5
  %2100 = call ptr @__errno_location() #10
  store i32 %2099, ptr %2100, align 4, !tbaa !5
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = load i32, ptr @test_count, align 4, !tbaa !5
  %2103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = call ptr @s2n_strerror(i32 noundef %2104, ptr noundef @.str.4)
  %2106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call ptr @s2n_strerror_debug(i32 noundef %2107, ptr noundef @.str.4)
  %2109 = call ptr @__errno_location() #10
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = call ptr @strerror(i32 noundef %2110) #9
  %2112 = call ptr @__errno_location() #10
  %2113 = load i32, ptr %2112, align 4, !tbaa !5
  %2114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2101, ptr noundef @.str.2, i32 noundef %2102, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 212, ptr noundef %2105, ptr noundef %2108, ptr noundef %2111, i32 noundef %2113) #9
  br label %2132

2115:                                             ; preds = %2093, %2086
  %2116 = load i32, ptr %45, align 4, !tbaa !5
  %2117 = call ptr @__errno_location() #10
  store i32 %2116, ptr %2117, align 4, !tbaa !5
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = load i32, ptr @test_count, align 4, !tbaa !5
  %2120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2121 = load i32, ptr %2120, align 4, !tbaa !5
  %2122 = call ptr @s2n_strerror(i32 noundef %2121, ptr noundef @.str.4)
  %2123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2124 = load i32, ptr %2123, align 4, !tbaa !5
  %2125 = call ptr @s2n_strerror_debug(i32 noundef %2124, ptr noundef @.str.4)
  %2126 = call ptr @__errno_location() #10
  %2127 = load i32, ptr %2126, align 4, !tbaa !5
  %2128 = call ptr @strerror(i32 noundef %2127) #9
  %2129 = call ptr @__errno_location() #10
  %2130 = load i32, ptr %2129, align 4, !tbaa !5
  %2131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2118, ptr noundef @.str.5, i32 noundef %2119, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 212, ptr noundef %2122, ptr noundef %2125, ptr noundef %2128, i32 noundef %2130) #9
  br label %2132

2132:                                             ; preds = %2115, %2098
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2133

2133:                                             ; preds = %2132
  br label %2134

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

2135:                                             ; No predecessors!
  br label %2136

2136:                                             ; preds = %2135
  br label %2137

2137:                                             ; preds = %2136, %2078
  br label %2138

2138:                                             ; preds = %2137
  br label %2139

2139:                                             ; preds = %2138
  br label %2140

2140:                                             ; preds = %2139
  %2141 = load i32, ptr @test_count, align 4, !tbaa !5
  %2142 = add nsw i32 %2141, 1
  store i32 %2142, ptr @test_count, align 4, !tbaa !5
  %2143 = load ptr, ptr %12, align 8, !tbaa !9
  %2144 = call i32 @s2n_connection_set_io_pair(ptr noundef %2143, ptr noundef %26)
  %2145 = icmp eq i32 %2144, -1
  br i1 %2145, label %2146, label %2199

2146:                                             ; preds = %2140
  br label %2147

2147:                                             ; preds = %2146
  br label %2148

2148:                                             ; preds = %2147
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %2149 = call ptr @__errno_location() #10
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  store i32 %2150, ptr %46, align 4, !tbaa !5
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = call i32 @s2n_print_stacktrace(ptr noundef %2151)
  %2153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2154 = trunc i8 %2153 to i1
  br i1 %2154, label %2155, label %2177

2155:                                             ; preds = %2148
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = call i32 @fileno(ptr noundef %2156) #9
  %2158 = call i32 @isatty(i32 noundef %2157) #9
  %2159 = icmp ne i32 %2158, 0
  br i1 %2159, label %2160, label %2177

2160:                                             ; preds = %2155
  %2161 = load i32, ptr %46, align 4, !tbaa !5
  %2162 = call ptr @__errno_location() #10
  store i32 %2161, ptr %2162, align 4, !tbaa !5
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = load i32, ptr @test_count, align 4, !tbaa !5
  %2165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror(i32 noundef %2166, ptr noundef @.str.4)
  %2168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call ptr @s2n_strerror_debug(i32 noundef %2169, ptr noundef @.str.4)
  %2171 = call ptr @__errno_location() #10
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @strerror(i32 noundef %2172) #9
  %2174 = call ptr @__errno_location() #10
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2163, ptr noundef @.str.2, i32 noundef %2164, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 212, ptr noundef %2167, ptr noundef %2170, ptr noundef %2173, i32 noundef %2175) #9
  br label %2194

2177:                                             ; preds = %2155, %2148
  %2178 = load i32, ptr %46, align 4, !tbaa !5
  %2179 = call ptr @__errno_location() #10
  store i32 %2178, ptr %2179, align 4, !tbaa !5
  %2180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2181 = load i32, ptr @test_count, align 4, !tbaa !5
  %2182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror(i32 noundef %2183, ptr noundef @.str.4)
  %2185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2186 = load i32, ptr %2185, align 4, !tbaa !5
  %2187 = call ptr @s2n_strerror_debug(i32 noundef %2186, ptr noundef @.str.4)
  %2188 = call ptr @__errno_location() #10
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  %2190 = call ptr @strerror(i32 noundef %2189) #9
  %2191 = call ptr @__errno_location() #10
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2180, ptr noundef @.str.5, i32 noundef %2181, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 212, ptr noundef %2184, ptr noundef %2187, ptr noundef %2190, i32 noundef %2192) #9
  br label %2194

2194:                                             ; preds = %2177, %2160
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

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

2197:                                             ; No predecessors!
  br label %2198

2198:                                             ; preds = %2197
  br label %2199

2199:                                             ; preds = %2198, %2140
  br label %2200

2200:                                             ; preds = %2199
  br label %2201

2201:                                             ; preds = %2200
  br label %2202

2202:                                             ; preds = %2201
  %2203 = load i32, ptr @test_count, align 4, !tbaa !5
  %2204 = add nsw i32 %2203, 1
  store i32 %2204, ptr @test_count, align 4, !tbaa !5
  %2205 = load ptr, ptr %11, align 8, !tbaa !9
  %2206 = call i32 @setup_client_psks(ptr noundef %2205)
  %2207 = getelementptr inbounds %struct.s2n_result, ptr %47, i32 0, i32 0
  store i32 %2206, ptr %2207, align 4
  %2208 = getelementptr inbounds %struct.s2n_result, ptr %47, i32 0, i32 0
  %2209 = load i32, ptr %2208, align 4
  %2210 = call zeroext i1 @s2n_result_is_ok(i32 %2209)
  br i1 %2210, label %2264, label %2211

2211:                                             ; preds = %2202
  br label %2212

2212:                                             ; preds = %2211
  br label %2213

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

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

2225:                                             ; preds = %2220
  %2226 = load i32, ptr %48, align 4, !tbaa !5
  %2227 = call ptr @__errno_location() #10
  store i32 %2226, ptr %2227, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call ptr @s2n_strerror(i32 noundef %2231, ptr noundef @.str.4)
  %2233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror_debug(i32 noundef %2234, ptr noundef @.str.4)
  %2236 = call ptr @__errno_location() #10
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @strerror(i32 noundef %2237) #9
  %2239 = call ptr @__errno_location() #10
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2228, ptr noundef @.str.2, i32 noundef %2229, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 215, ptr noundef %2232, ptr noundef %2235, ptr noundef %2238, i32 noundef %2240) #9
  br label %2259

2242:                                             ; preds = %2220, %2213
  %2243 = load i32, ptr %48, align 4, !tbaa !5
  %2244 = call ptr @__errno_location() #10
  store i32 %2243, ptr %2244, align 4, !tbaa !5
  %2245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2246 = load i32, ptr @test_count, align 4, !tbaa !5
  %2247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = call ptr @s2n_strerror(i32 noundef %2248, ptr noundef @.str.4)
  %2250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  %2252 = call ptr @s2n_strerror_debug(i32 noundef %2251, ptr noundef @.str.4)
  %2253 = call ptr @__errno_location() #10
  %2254 = load i32, ptr %2253, align 4, !tbaa !5
  %2255 = call ptr @strerror(i32 noundef %2254) #9
  %2256 = call ptr @__errno_location() #10
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  %2258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2245, ptr noundef @.str.5, i32 noundef %2246, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 215, ptr noundef %2249, ptr noundef %2252, ptr noundef %2255, i32 noundef %2257) #9
  br label %2259

2259:                                             ; preds = %2242, %2225
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

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

2262:                                             ; No predecessors!
  br label %2263

2263:                                             ; preds = %2262
  br label %2264

2264:                                             ; preds = %2263, %2202
  br label %2265

2265:                                             ; preds = %2264
  br label %2266

2266:                                             ; preds = %2265
  br label %2267

2267:                                             ; preds = %2266
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = add nsw i32 %2268, 1
  store i32 %2269, ptr @test_count, align 4, !tbaa !5
  %2270 = load ptr, ptr %12, align 8, !tbaa !9
  %2271 = call i32 @setup_server_psks(ptr noundef %2270)
  %2272 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  store i32 %2271, ptr %2272, align 4
  %2273 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  %2274 = load i32, ptr %2273, align 4
  %2275 = call zeroext i1 @s2n_result_is_ok(i32 %2274)
  br i1 %2275, label %2329, label %2276

2276:                                             ; preds = %2267
  br label %2277

2277:                                             ; preds = %2276
  br label %2278

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

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

2290:                                             ; preds = %2285
  %2291 = load i32, ptr %50, align 4, !tbaa !5
  %2292 = call ptr @__errno_location() #10
  store i32 %2291, ptr %2292, align 4, !tbaa !5
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = load i32, ptr @test_count, align 4, !tbaa !5
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror(i32 noundef %2296, ptr noundef @.str.4)
  %2298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror_debug(i32 noundef %2299, ptr noundef @.str.4)
  %2301 = call ptr @__errno_location() #10
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @strerror(i32 noundef %2302) #9
  %2304 = call ptr @__errno_location() #10
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2293, ptr noundef @.str.2, i32 noundef %2294, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2297, ptr noundef %2300, ptr noundef %2303, i32 noundef %2305) #9
  br label %2324

2307:                                             ; preds = %2285, %2278
  %2308 = load i32, ptr %50, align 4, !tbaa !5
  %2309 = call ptr @__errno_location() #10
  store i32 %2308, ptr %2309, align 4, !tbaa !5
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = load i32, ptr @test_count, align 4, !tbaa !5
  %2312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  %2314 = call ptr @s2n_strerror(i32 noundef %2313, ptr noundef @.str.4)
  %2315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = call ptr @s2n_strerror_debug(i32 noundef %2316, ptr noundef @.str.4)
  %2318 = call ptr @__errno_location() #10
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @strerror(i32 noundef %2319) #9
  %2321 = call ptr @__errno_location() #10
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2310, ptr noundef @.str.5, i32 noundef %2311, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2314, ptr noundef %2317, ptr noundef %2320, i32 noundef %2322) #9
  br label %2324

2324:                                             ; preds = %2307, %2290
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2325

2325:                                             ; preds = %2324
  br label %2326

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

2327:                                             ; No predecessors!
  br label %2328

2328:                                             ; preds = %2327
  br label %2329

2329:                                             ; preds = %2328, %2267
  br label %2330

2330:                                             ; preds = %2329
  br label %2331

2331:                                             ; preds = %2330
  br label %2332

2332:                                             ; preds = %2331
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = add nsw i32 %2333, 1
  store i32 %2334, ptr @test_count, align 4, !tbaa !5
  %2335 = load ptr, ptr %12, align 8, !tbaa !9
  %2336 = getelementptr inbounds %struct.s2n_connection, ptr %2335, i32 0, i32 1
  %2337 = load ptr, ptr %2336, align 8, !tbaa !15
  %2338 = call i32 @s2n_config_set_psk_selection_callback(ptr noundef %2337, ptr noundef @s2n_test_select_psk_identity_callback, ptr noundef null)
  %2339 = icmp eq i32 %2338, -1
  br i1 %2339, label %2340, label %2393

2340:                                             ; preds = %2332
  br label %2341

2341:                                             ; preds = %2340
  br label %2342

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

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

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

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

2388:                                             ; preds = %2371, %2354
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

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

2391:                                             ; No predecessors!
  br label %2392

2392:                                             ; preds = %2391
  br label %2393

2393:                                             ; preds = %2392, %2332
  br label %2394

2394:                                             ; preds = %2393
  br label %2395

2395:                                             ; preds = %2394
  br label %2396

2396:                                             ; preds = %2395
  %2397 = load i32, ptr @test_count, align 4, !tbaa !5
  %2398 = add nsw i32 %2397, 1
  store i32 %2398, ptr @test_count, align 4, !tbaa !5
  %2399 = load ptr, ptr %12, align 8, !tbaa !9
  %2400 = getelementptr inbounds %struct.s2n_connection, ptr %2399, i32 0, i32 1
  %2401 = load ptr, ptr %2400, align 8, !tbaa !15
  %2402 = getelementptr inbounds %struct.s2n_config, ptr %2401, i32 0, i32 40
  %2403 = load ptr, ptr %2402, align 8, !tbaa !42
  %2404 = icmp eq ptr %2403, @s2n_test_select_psk_identity_callback
  br i1 %2404, label %2458, label %2405

2405:                                             ; preds = %2396
  br label %2406

2406:                                             ; preds = %2405
  br label %2407

2407:                                             ; preds = %2406
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  %2408 = call ptr @__errno_location() #10
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  store i32 %2409, ptr %52, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = call i32 @s2n_print_stacktrace(ptr noundef %2410)
  %2412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2413 = trunc i8 %2412 to i1
  br i1 %2413, label %2414, label %2436

2414:                                             ; preds = %2407
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = call i32 @fileno(ptr noundef %2415) #9
  %2417 = call i32 @isatty(i32 noundef %2416) #9
  %2418 = icmp ne i32 %2417, 0
  br i1 %2418, label %2419, label %2436

2419:                                             ; preds = %2414
  %2420 = load i32, ptr %52, align 4, !tbaa !5
  %2421 = call ptr @__errno_location() #10
  store i32 %2420, ptr %2421, align 4, !tbaa !5
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = load i32, ptr @test_count, align 4, !tbaa !5
  %2424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror(i32 noundef %2425, ptr noundef @.str.4)
  %2427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = call ptr @s2n_strerror_debug(i32 noundef %2428, ptr noundef @.str.4)
  %2430 = call ptr @__errno_location() #10
  %2431 = load i32, ptr %2430, align 4, !tbaa !5
  %2432 = call ptr @strerror(i32 noundef %2431) #9
  %2433 = call ptr @__errno_location() #10
  %2434 = load i32, ptr %2433, align 4, !tbaa !5
  %2435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2422, ptr noundef @.str.2, i32 noundef %2423, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 220, ptr noundef %2426, ptr noundef %2429, ptr noundef %2432, i32 noundef %2434) #9
  br label %2453

2436:                                             ; preds = %2414, %2407
  %2437 = load i32, ptr %52, align 4, !tbaa !5
  %2438 = call ptr @__errno_location() #10
  store i32 %2437, ptr %2438, align 4, !tbaa !5
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = load i32, ptr @test_count, align 4, !tbaa !5
  %2441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call ptr @s2n_strerror(i32 noundef %2442, ptr noundef @.str.4)
  %2444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2445 = load i32, ptr %2444, align 4, !tbaa !5
  %2446 = call ptr @s2n_strerror_debug(i32 noundef %2445, ptr noundef @.str.4)
  %2447 = call ptr @__errno_location() #10
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  %2449 = call ptr @strerror(i32 noundef %2448) #9
  %2450 = call ptr @__errno_location() #10
  %2451 = load i32, ptr %2450, align 4, !tbaa !5
  %2452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2439, ptr noundef @.str.5, i32 noundef %2440, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 220, ptr noundef %2443, ptr noundef %2446, ptr noundef %2449, i32 noundef %2451) #9
  br label %2453

2453:                                             ; preds = %2436, %2419
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2454

2454:                                             ; preds = %2453
  br label %2455

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

2456:                                             ; No predecessors!
  br label %2457

2457:                                             ; preds = %2456
  br label %2458

2458:                                             ; preds = %2457, %2396
  br label %2459

2459:                                             ; preds = %2458
  br label %2460

2460:                                             ; preds = %2459
  br label %2461

2461:                                             ; preds = %2460
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = add nsw i32 %2462, 1
  store i32 %2463, ptr @test_count, align 4, !tbaa !5
  %2464 = load ptr, ptr %12, align 8, !tbaa !9
  %2465 = load ptr, ptr %11, align 8, !tbaa !9
  %2466 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2464, ptr noundef %2465)
  %2467 = icmp eq i32 %2466, -1
  br i1 %2467, label %2468, label %2521

2468:                                             ; preds = %2461
  br label %2469

2469:                                             ; preds = %2468
  br label %2470

2470:                                             ; preds = %2469
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %2471 = call ptr @__errno_location() #10
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  store i32 %2472, ptr %53, align 4, !tbaa !5
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = call i32 @s2n_print_stacktrace(ptr noundef %2473)
  %2475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2476 = trunc i8 %2475 to i1
  br i1 %2476, label %2477, label %2499

2477:                                             ; preds = %2470
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = call i32 @fileno(ptr noundef %2478) #9
  %2480 = call i32 @isatty(i32 noundef %2479) #9
  %2481 = icmp ne i32 %2480, 0
  br i1 %2481, label %2482, label %2499

2482:                                             ; preds = %2477
  %2483 = load i32, ptr %53, align 4, !tbaa !5
  %2484 = call ptr @__errno_location() #10
  store i32 %2483, ptr %2484, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @s2n_strerror(i32 noundef %2488, ptr noundef @.str.4)
  %2490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call ptr @s2n_strerror_debug(i32 noundef %2491, ptr noundef @.str.4)
  %2493 = call ptr @__errno_location() #10
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @strerror(i32 noundef %2494) #9
  %2496 = call ptr @__errno_location() #10
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2485, ptr noundef @.str.2, i32 noundef %2486, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 223, ptr noundef %2489, ptr noundef %2492, ptr noundef %2495, i32 noundef %2497) #9
  br label %2516

2499:                                             ; preds = %2477, %2470
  %2500 = load i32, ptr %53, align 4, !tbaa !5
  %2501 = call ptr @__errno_location() #10
  store i32 %2500, ptr %2501, align 4, !tbaa !5
  %2502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2503 = load i32, ptr @test_count, align 4, !tbaa !5
  %2504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call ptr @s2n_strerror(i32 noundef %2505, ptr noundef @.str.4)
  %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_debug(i32 noundef %2508, ptr noundef @.str.4)
  %2510 = call ptr @__errno_location() #10
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  %2512 = call ptr @strerror(i32 noundef %2511) #9
  %2513 = call ptr @__errno_location() #10
  %2514 = load i32, ptr %2513, align 4, !tbaa !5
  %2515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2502, ptr noundef @.str.5, i32 noundef %2503, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 223, ptr noundef %2506, ptr noundef %2509, ptr noundef %2512, i32 noundef %2514) #9
  br label %2516

2516:                                             ; preds = %2499, %2482
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2517

2517:                                             ; preds = %2516
  br label %2518

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

2519:                                             ; No predecessors!
  br label %2520

2520:                                             ; preds = %2519
  br label %2521

2521:                                             ; preds = %2520, %2461
  br label %2522

2522:                                             ; preds = %2521
  br label %2523

2523:                                             ; preds = %2522
  br label %2524

2524:                                             ; preds = %2523
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = add nsw i32 %2525, 1
  store i32 %2526, ptr @test_count, align 4, !tbaa !5
  %2527 = load ptr, ptr %11, align 8, !tbaa !9
  %2528 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2527, i32 noundef 2)
  br i1 %2528, label %2529, label %2585

2529:                                             ; preds = %2524
  %2530 = load ptr, ptr %12, align 8, !tbaa !9
  %2531 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2530, i32 noundef 2)
  br i1 %2531, label %2532, label %2585

2532:                                             ; preds = %2529
  br label %2533

2533:                                             ; preds = %2532
  br label %2534

2534:                                             ; preds = %2533
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2535 = call ptr @__errno_location() #10
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  store i32 %2536, ptr %54, align 4, !tbaa !5
  %2537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2538 = call i32 @s2n_print_stacktrace(ptr noundef %2537)
  %2539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2540 = trunc i8 %2539 to i1
  br i1 %2540, label %2541, label %2563

2541:                                             ; preds = %2534
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = call i32 @fileno(ptr noundef %2542) #9
  %2544 = call i32 @isatty(i32 noundef %2543) #9
  %2545 = icmp ne i32 %2544, 0
  br i1 %2545, label %2546, label %2563

2546:                                             ; preds = %2541
  %2547 = load i32, ptr %54, align 4, !tbaa !5
  %2548 = call ptr @__errno_location() #10
  store i32 %2547, ptr %2548, align 4, !tbaa !5
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = load i32, ptr @test_count, align 4, !tbaa !5
  %2551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call ptr @s2n_strerror(i32 noundef %2552, ptr noundef @.str.4)
  %2554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call ptr @s2n_strerror_debug(i32 noundef %2555, ptr noundef @.str.4)
  %2557 = call ptr @__errno_location() #10
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call ptr @strerror(i32 noundef %2558) #9
  %2560 = call ptr @__errno_location() #10
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2549, ptr noundef @.str.2, i32 noundef %2550, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 226, ptr noundef %2553, ptr noundef %2556, ptr noundef %2559, i32 noundef %2561) #9
  br label %2580

2563:                                             ; preds = %2541, %2534
  %2564 = load i32, ptr %54, align 4, !tbaa !5
  %2565 = call ptr @__errno_location() #10
  store i32 %2564, ptr %2565, align 4, !tbaa !5
  %2566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2567 = load i32, ptr @test_count, align 4, !tbaa !5
  %2568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2569 = load i32, ptr %2568, align 4, !tbaa !5
  %2570 = call ptr @s2n_strerror(i32 noundef %2569, ptr noundef @.str.4)
  %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_debug(i32 noundef %2572, ptr noundef @.str.4)
  %2574 = call ptr @__errno_location() #10
  %2575 = load i32, ptr %2574, align 4, !tbaa !5
  %2576 = call ptr @strerror(i32 noundef %2575) #9
  %2577 = call ptr @__errno_location() #10
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2566, ptr noundef @.str.5, i32 noundef %2567, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 226, ptr noundef %2570, ptr noundef %2573, ptr noundef %2576, i32 noundef %2578) #9
  br label %2580

2580:                                             ; preds = %2563, %2546
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2581

2581:                                             ; preds = %2580
  br label %2582

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

2583:                                             ; No predecessors!
  br label %2584

2584:                                             ; preds = %2583
  br label %2585

2585:                                             ; preds = %2584, %2529, %2524
  br label %2586

2586:                                             ; preds = %2585
  br label %2587

2587:                                             ; preds = %2586
  br label %2588

2588:                                             ; preds = %2587
  %2589 = load i32, ptr @test_count, align 4, !tbaa !5
  %2590 = add nsw i32 %2589, 1
  store i32 %2590, ptr @test_count, align 4, !tbaa !5
  %2591 = load ptr, ptr %12, align 8, !tbaa !9
  %2592 = call i32 @validate_chosen_psk(ptr noundef %2591, ptr noundef @test_shared_identity_2, i64 noundef 23, i64 noundef 2)
  %2593 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %2592, ptr %2593, align 4
  %2594 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  %2595 = load i32, ptr %2594, align 4
  %2596 = call zeroext i1 @s2n_result_is_ok(i32 %2595)
  br i1 %2596, label %2650, label %2597

2597:                                             ; preds = %2588
  br label %2598

2598:                                             ; preds = %2597
  br label %2599

2599:                                             ; preds = %2598
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2600 = call ptr @__errno_location() #10
  %2601 = load i32, ptr %2600, align 4, !tbaa !5
  store i32 %2601, ptr %56, align 4, !tbaa !5
  %2602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2603 = call i32 @s2n_print_stacktrace(ptr noundef %2602)
  %2604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2605 = trunc i8 %2604 to i1
  br i1 %2605, label %2606, label %2628

2606:                                             ; preds = %2599
  %2607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2608 = call i32 @fileno(ptr noundef %2607) #9
  %2609 = call i32 @isatty(i32 noundef %2608) #9
  %2610 = icmp ne i32 %2609, 0
  br i1 %2610, label %2611, label %2628

2611:                                             ; preds = %2606
  %2612 = load i32, ptr %56, align 4, !tbaa !5
  %2613 = call ptr @__errno_location() #10
  store i32 %2612, ptr %2613, align 4, !tbaa !5
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = load i32, ptr @test_count, align 4, !tbaa !5
  %2616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2617 = load i32, ptr %2616, align 4, !tbaa !5
  %2618 = call ptr @s2n_strerror(i32 noundef %2617, ptr noundef @.str.4)
  %2619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  %2621 = call ptr @s2n_strerror_debug(i32 noundef %2620, ptr noundef @.str.4)
  %2622 = call ptr @__errno_location() #10
  %2623 = load i32, ptr %2622, align 4, !tbaa !5
  %2624 = call ptr @strerror(i32 noundef %2623) #9
  %2625 = call ptr @__errno_location() #10
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2614, ptr noundef @.str.2, i32 noundef %2615, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 230, ptr noundef %2618, ptr noundef %2621, ptr noundef %2624, i32 noundef %2626) #9
  br label %2645

2628:                                             ; preds = %2606, %2599
  %2629 = load i32, ptr %56, align 4, !tbaa !5
  %2630 = call ptr @__errno_location() #10
  store i32 %2629, ptr %2630, align 4, !tbaa !5
  %2631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2632 = load i32, ptr @test_count, align 4, !tbaa !5
  %2633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  %2635 = call ptr @s2n_strerror(i32 noundef %2634, ptr noundef @.str.4)
  %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_debug(i32 noundef %2637, ptr noundef @.str.4)
  %2639 = call ptr @__errno_location() #10
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = call ptr @strerror(i32 noundef %2640) #9
  %2642 = call ptr @__errno_location() #10
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2631, ptr noundef @.str.5, i32 noundef %2632, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 230, ptr noundef %2635, ptr noundef %2638, ptr noundef %2641, i32 noundef %2643) #9
  br label %2645

2645:                                             ; preds = %2628, %2611
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2646

2646:                                             ; preds = %2645
  br label %2647

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

2648:                                             ; No predecessors!
  br label %2649

2649:                                             ; preds = %2648
  br label %2650

2650:                                             ; preds = %2649, %2588
  br label %2651

2651:                                             ; preds = %2650
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

2653:                                             ; preds = %2652
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %2655 = add nsw i32 %2654, 1
  store i32 %2655, ptr @test_count, align 4, !tbaa !5
  %2656 = load ptr, ptr %12, align 8, !tbaa !9
  %2657 = load ptr, ptr %11, align 8, !tbaa !9
  %2658 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %2656, ptr noundef %2657)
  %2659 = icmp eq i32 %2658, -1
  br i1 %2659, label %2660, label %2713

2660:                                             ; preds = %2653
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2663 = call ptr @__errno_location() #10
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  store i32 %2664, ptr %57, align 4, !tbaa !5
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = call i32 @s2n_print_stacktrace(ptr noundef %2665)
  %2667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2668 = trunc i8 %2667 to i1
  br i1 %2668, label %2669, label %2691

2669:                                             ; preds = %2662
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @fileno(ptr noundef %2670) #9
  %2672 = call i32 @isatty(i32 noundef %2671) #9
  %2673 = icmp ne i32 %2672, 0
  br i1 %2673, label %2674, label %2691

2674:                                             ; preds = %2669
  %2675 = load i32, ptr %57, align 4, !tbaa !5
  %2676 = call ptr @__errno_location() #10
  store i32 %2675, ptr %2676, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror(i32 noundef %2680, ptr noundef @.str.4)
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror_debug(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call ptr @__errno_location() #10
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @strerror(i32 noundef %2686) #9
  %2688 = call ptr @__errno_location() #10
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2677, ptr noundef @.str.2, i32 noundef %2678, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 232, ptr noundef %2681, ptr noundef %2684, ptr noundef %2687, i32 noundef %2689) #9
  br label %2708

2691:                                             ; preds = %2669, %2662
  %2692 = load i32, ptr %57, align 4, !tbaa !5
  %2693 = call ptr @__errno_location() #10
  store i32 %2692, ptr %2693, align 4, !tbaa !5
  %2694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2695 = load i32, ptr @test_count, align 4, !tbaa !5
  %2696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call ptr @s2n_strerror(i32 noundef %2697, ptr noundef @.str.4)
  %2699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2700 = load i32, ptr %2699, align 4, !tbaa !5
  %2701 = call ptr @s2n_strerror_debug(i32 noundef %2700, ptr noundef @.str.4)
  %2702 = call ptr @__errno_location() #10
  %2703 = load i32, ptr %2702, align 4, !tbaa !5
  %2704 = call ptr @strerror(i32 noundef %2703) #9
  %2705 = call ptr @__errno_location() #10
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2694, ptr noundef @.str.5, i32 noundef %2695, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 232, ptr noundef %2698, ptr noundef %2701, ptr noundef %2704, i32 noundef %2706) #9
  br label %2708

2708:                                             ; preds = %2691, %2674
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2709

2709:                                             ; preds = %2708
  br label %2710

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

2711:                                             ; No predecessors!
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

2713:                                             ; preds = %2712, %2653
  br label %2714

2714:                                             ; preds = %2713
  br label %2715

2715:                                             ; preds = %2714
  %2716 = load ptr, ptr %12, align 8, !tbaa !9
  %2717 = getelementptr inbounds %struct.s2n_connection, ptr %2716, i32 0, i32 1
  %2718 = load ptr, ptr %2717, align 8, !tbaa !15
  %2719 = getelementptr inbounds %struct.s2n_config, ptr %2718, i32 0, i32 40
  store ptr null, ptr %2719, align 8, !tbaa !42
  br label %2720

2720:                                             ; preds = %2715
  %2721 = load i32, ptr @test_count, align 4, !tbaa !5
  %2722 = add nsw i32 %2721, 1
  store i32 %2722, ptr @test_count, align 4, !tbaa !5
  %2723 = load ptr, ptr %11, align 8, !tbaa !9
  %2724 = call i32 @s2n_connection_wipe(ptr noundef %2723)
  %2725 = icmp eq i32 %2724, -1
  br i1 %2725, label %2726, label %2779

2726:                                             ; preds = %2720
  br label %2727

2727:                                             ; preds = %2726
  br label %2728

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

2735:                                             ; preds = %2728
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = call i32 @fileno(ptr noundef %2736) #9
  %2738 = call i32 @isatty(i32 noundef %2737) #9
  %2739 = icmp ne i32 %2738, 0
  br i1 %2739, label %2740, label %2757

2740:                                             ; preds = %2735
  %2741 = load i32, ptr %58, align 4, !tbaa !5
  %2742 = call ptr @__errno_location() #10
  store i32 %2741, ptr %2742, align 4, !tbaa !5
  %2743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2744 = load i32, ptr @test_count, align 4, !tbaa !5
  %2745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2746 = load i32, ptr %2745, align 4, !tbaa !5
  %2747 = call ptr @s2n_strerror(i32 noundef %2746, ptr noundef @.str.4)
  %2748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  %2750 = call ptr @s2n_strerror_debug(i32 noundef %2749, ptr noundef @.str.4)
  %2751 = call ptr @__errno_location() #10
  %2752 = load i32, ptr %2751, align 4, !tbaa !5
  %2753 = call ptr @strerror(i32 noundef %2752) #9
  %2754 = call ptr @__errno_location() #10
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2743, ptr noundef @.str.2, i32 noundef %2744, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 236, ptr noundef %2747, ptr noundef %2750, ptr noundef %2753, i32 noundef %2755) #9
  br label %2774

2757:                                             ; preds = %2735, %2728
  %2758 = load i32, ptr %58, align 4, !tbaa !5
  %2759 = call ptr @__errno_location() #10
  store i32 %2758, ptr %2759, align 4, !tbaa !5
  %2760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2761 = load i32, ptr @test_count, align 4, !tbaa !5
  %2762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror(i32 noundef %2763, ptr noundef @.str.4)
  %2765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  %2767 = call ptr @s2n_strerror_debug(i32 noundef %2766, ptr noundef @.str.4)
  %2768 = call ptr @__errno_location() #10
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call ptr @strerror(i32 noundef %2769) #9
  %2771 = call ptr @__errno_location() #10
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2760, ptr noundef @.str.5, i32 noundef %2761, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 236, ptr noundef %2764, ptr noundef %2767, ptr noundef %2770, i32 noundef %2772) #9
  br label %2774

2774:                                             ; preds = %2757, %2740
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2775

2775:                                             ; preds = %2774
  br label %2776

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

2777:                                             ; No predecessors!
  br label %2778

2778:                                             ; preds = %2777
  br label %2779

2779:                                             ; preds = %2778, %2720
  br label %2780

2780:                                             ; preds = %2779
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

2782:                                             ; preds = %2781
  %2783 = load i32, ptr @test_count, align 4, !tbaa !5
  %2784 = add nsw i32 %2783, 1
  store i32 %2784, ptr @test_count, align 4, !tbaa !5
  %2785 = load ptr, ptr %12, align 8, !tbaa !9
  %2786 = call i32 @s2n_connection_wipe(ptr noundef %2785)
  %2787 = icmp eq i32 %2786, -1
  br i1 %2787, label %2788, label %2841

2788:                                             ; preds = %2782
  br label %2789

2789:                                             ; preds = %2788
  br label %2790

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

2797:                                             ; preds = %2790
  %2798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2799 = call i32 @fileno(ptr noundef %2798) #9
  %2800 = call i32 @isatty(i32 noundef %2799) #9
  %2801 = icmp ne i32 %2800, 0
  br i1 %2801, label %2802, label %2819

2802:                                             ; preds = %2797
  %2803 = load i32, ptr %59, align 4, !tbaa !5
  %2804 = call ptr @__errno_location() #10
  store i32 %2803, ptr %2804, align 4, !tbaa !5
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = load i32, ptr @test_count, align 4, !tbaa !5
  %2807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call ptr @s2n_strerror(i32 noundef %2808, ptr noundef @.str.4)
  %2810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = call ptr @s2n_strerror_debug(i32 noundef %2811, ptr noundef @.str.4)
  %2813 = call ptr @__errno_location() #10
  %2814 = load i32, ptr %2813, align 4, !tbaa !5
  %2815 = call ptr @strerror(i32 noundef %2814) #9
  %2816 = call ptr @__errno_location() #10
  %2817 = load i32, ptr %2816, align 4, !tbaa !5
  %2818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2805, ptr noundef @.str.2, i32 noundef %2806, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 237, ptr noundef %2809, ptr noundef %2812, ptr noundef %2815, i32 noundef %2817) #9
  br label %2836

2819:                                             ; preds = %2797, %2790
  %2820 = load i32, ptr %59, align 4, !tbaa !5
  %2821 = call ptr @__errno_location() #10
  store i32 %2820, ptr %2821, align 4, !tbaa !5
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = load i32, ptr @test_count, align 4, !tbaa !5
  %2824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror(i32 noundef %2825, ptr noundef @.str.4)
  %2827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror_debug(i32 noundef %2828, ptr noundef @.str.4)
  %2830 = call ptr @__errno_location() #10
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call ptr @strerror(i32 noundef %2831) #9
  %2833 = call ptr @__errno_location() #10
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  %2835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2822, ptr noundef @.str.5, i32 noundef %2823, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 237, ptr noundef %2826, ptr noundef %2829, ptr noundef %2832, i32 noundef %2834) #9
  br label %2836

2836:                                             ; preds = %2819, %2802
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2837

2837:                                             ; preds = %2836
  br label %2838

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

2839:                                             ; No predecessors!
  br label %2840

2840:                                             ; preds = %2839
  br label %2841

2841:                                             ; preds = %2840, %2782
  br label %2842

2842:                                             ; preds = %2841
  br label %2843

2843:                                             ; preds = %2842
  br label %2844

2844:                                             ; preds = %2843
  %2845 = load i32, ptr @test_count, align 4, !tbaa !5
  %2846 = add nsw i32 %2845, 1
  store i32 %2846, ptr @test_count, align 4, !tbaa !5
  %2847 = load ptr, ptr %11, align 8, !tbaa !9
  %2848 = load ptr, ptr %19, align 8, !tbaa !9
  %2849 = call i32 @s2n_connection_set_config(ptr noundef %2847, ptr noundef %2848)
  %2850 = icmp eq i32 %2849, -1
  br i1 %2850, label %2851, label %2904

2851:                                             ; preds = %2844
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

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

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

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

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

2899:                                             ; preds = %2882, %2865
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2900

2900:                                             ; preds = %2899
  br label %2901

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

2902:                                             ; No predecessors!
  br label %2903

2903:                                             ; preds = %2902
  br label %2904

2904:                                             ; preds = %2903, %2844
  br label %2905

2905:                                             ; preds = %2904
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

2907:                                             ; preds = %2906
  %2908 = load i32, ptr @test_count, align 4, !tbaa !5
  %2909 = add nsw i32 %2908, 1
  store i32 %2909, ptr @test_count, align 4, !tbaa !5
  %2910 = load ptr, ptr %12, align 8, !tbaa !9
  %2911 = load ptr, ptr %19, align 8, !tbaa !9
  %2912 = call i32 @s2n_connection_set_config(ptr noundef %2910, ptr noundef %2911)
  %2913 = icmp eq i32 %2912, -1
  br i1 %2913, label %2914, label %2967

2914:                                             ; preds = %2907
  br label %2915

2915:                                             ; preds = %2914
  br label %2916

2916:                                             ; preds = %2915
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %2917 = call ptr @__errno_location() #10
  %2918 = load i32, ptr %2917, align 4, !tbaa !5
  store i32 %2918, ptr %61, align 4, !tbaa !5
  %2919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2920 = call i32 @s2n_print_stacktrace(ptr noundef %2919)
  %2921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2922 = trunc i8 %2921 to i1
  br i1 %2922, label %2923, label %2945

2923:                                             ; preds = %2916
  %2924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2925 = call i32 @fileno(ptr noundef %2924) #9
  %2926 = call i32 @isatty(i32 noundef %2925) #9
  %2927 = icmp ne i32 %2926, 0
  br i1 %2927, label %2928, label %2945

2928:                                             ; preds = %2923
  %2929 = load i32, ptr %61, align 4, !tbaa !5
  %2930 = call ptr @__errno_location() #10
  store i32 %2929, ptr %2930, align 4, !tbaa !5
  %2931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2932 = load i32, ptr @test_count, align 4, !tbaa !5
  %2933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @s2n_strerror(i32 noundef %2934, ptr noundef @.str.4)
  %2936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call ptr @s2n_strerror_debug(i32 noundef %2937, ptr noundef @.str.4)
  %2939 = call ptr @__errno_location() #10
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  %2941 = call ptr @strerror(i32 noundef %2940) #9
  %2942 = call ptr @__errno_location() #10
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2931, ptr noundef @.str.2, i32 noundef %2932, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 243, ptr noundef %2935, ptr noundef %2938, ptr noundef %2941, i32 noundef %2943) #9
  br label %2962

2945:                                             ; preds = %2923, %2916
  %2946 = load i32, ptr %61, align 4, !tbaa !5
  %2947 = call ptr @__errno_location() #10
  store i32 %2946, ptr %2947, align 4, !tbaa !5
  %2948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2949 = load i32, ptr @test_count, align 4, !tbaa !5
  %2950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2951 = load i32, ptr %2950, align 4, !tbaa !5
  %2952 = call ptr @s2n_strerror(i32 noundef %2951, ptr noundef @.str.4)
  %2953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  %2955 = call ptr @s2n_strerror_debug(i32 noundef %2954, ptr noundef @.str.4)
  %2956 = call ptr @__errno_location() #10
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  %2958 = call ptr @strerror(i32 noundef %2957) #9
  %2959 = call ptr @__errno_location() #10
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2948, ptr noundef @.str.5, i32 noundef %2949, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 243, ptr noundef %2952, ptr noundef %2955, ptr noundef %2958, i32 noundef %2960) #9
  br label %2962

2962:                                             ; preds = %2945, %2928
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2963

2963:                                             ; preds = %2962
  br label %2964

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

2965:                                             ; No predecessors!
  br label %2966

2966:                                             ; preds = %2965
  br label %2967

2967:                                             ; preds = %2966, %2907
  br label %2968

2968:                                             ; preds = %2967
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

2970:                                             ; preds = %2969
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = add nsw i32 %2971, 1
  store i32 %2972, ptr @test_count, align 4, !tbaa !5
  %2973 = load ptr, ptr %11, align 8, !tbaa !9
  %2974 = call i32 @s2n_connection_set_io_pair(ptr noundef %2973, ptr noundef %26)
  %2975 = icmp eq i32 %2974, -1
  br i1 %2975, label %2976, label %3029

2976:                                             ; preds = %2970
  br label %2977

2977:                                             ; preds = %2976
  br label %2978

2978:                                             ; preds = %2977
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %2979 = call ptr @__errno_location() #10
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  store i32 %2980, ptr %62, align 4, !tbaa !5
  %2981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2982 = call i32 @s2n_print_stacktrace(ptr noundef %2981)
  %2983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2984 = trunc i8 %2983 to i1
  br i1 %2984, label %2985, label %3007

2985:                                             ; preds = %2978
  %2986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2987 = call i32 @fileno(ptr noundef %2986) #9
  %2988 = call i32 @isatty(i32 noundef %2987) #9
  %2989 = icmp ne i32 %2988, 0
  br i1 %2989, label %2990, label %3007

2990:                                             ; preds = %2985
  %2991 = load i32, ptr %62, align 4, !tbaa !5
  %2992 = call ptr @__errno_location() #10
  store i32 %2991, ptr %2992, align 4, !tbaa !5
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = load i32, ptr @test_count, align 4, !tbaa !5
  %2995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror(i32 noundef %2996, ptr noundef @.str.4)
  %2998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call ptr @s2n_strerror_debug(i32 noundef %2999, ptr noundef @.str.4)
  %3001 = call ptr @__errno_location() #10
  %3002 = load i32, ptr %3001, align 4, !tbaa !5
  %3003 = call ptr @strerror(i32 noundef %3002) #9
  %3004 = call ptr @__errno_location() #10
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  %3006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2993, ptr noundef @.str.2, i32 noundef %2994, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 244, ptr noundef %2997, ptr noundef %3000, ptr noundef %3003, i32 noundef %3005) #9
  br label %3024

3007:                                             ; preds = %2985, %2978
  %3008 = load i32, ptr %62, align 4, !tbaa !5
  %3009 = call ptr @__errno_location() #10
  store i32 %3008, ptr %3009, align 4, !tbaa !5
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3011 = load i32, ptr @test_count, align 4, !tbaa !5
  %3012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @s2n_strerror(i32 noundef %3013, ptr noundef @.str.4)
  %3015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3016 = load i32, ptr %3015, align 4, !tbaa !5
  %3017 = call ptr @s2n_strerror_debug(i32 noundef %3016, ptr noundef @.str.4)
  %3018 = call ptr @__errno_location() #10
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  %3020 = call ptr @strerror(i32 noundef %3019) #9
  %3021 = call ptr @__errno_location() #10
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3010, ptr noundef @.str.5, i32 noundef %3011, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 244, ptr noundef %3014, ptr noundef %3017, ptr noundef %3020, i32 noundef %3022) #9
  br label %3024

3024:                                             ; preds = %3007, %2990
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %3025

3025:                                             ; preds = %3024
  br label %3026

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

3027:                                             ; No predecessors!
  br label %3028

3028:                                             ; preds = %3027
  br label %3029

3029:                                             ; preds = %3028, %2970
  br label %3030

3030:                                             ; preds = %3029
  br label %3031

3031:                                             ; preds = %3030
  br label %3032

3032:                                             ; preds = %3031
  %3033 = load i32, ptr @test_count, align 4, !tbaa !5
  %3034 = add nsw i32 %3033, 1
  store i32 %3034, ptr @test_count, align 4, !tbaa !5
  %3035 = load ptr, ptr %12, align 8, !tbaa !9
  %3036 = call i32 @s2n_connection_set_io_pair(ptr noundef %3035, ptr noundef %26)
  %3037 = icmp eq i32 %3036, -1
  br i1 %3037, label %3038, label %3091

3038:                                             ; preds = %3032
  br label %3039

3039:                                             ; preds = %3038
  br label %3040

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

3047:                                             ; preds = %3040
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @fileno(ptr noundef %3048) #9
  %3050 = call i32 @isatty(i32 noundef %3049) #9
  %3051 = icmp ne i32 %3050, 0
  br i1 %3051, label %3052, label %3069

3052:                                             ; preds = %3047
  %3053 = load i32, ptr %63, align 4, !tbaa !5
  %3054 = call ptr @__errno_location() #10
  store i32 %3053, ptr %3054, align 4, !tbaa !5
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = load i32, ptr @test_count, align 4, !tbaa !5
  %3057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call ptr @s2n_strerror(i32 noundef %3058, ptr noundef @.str.4)
  %3060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3061 = load i32, ptr %3060, align 4, !tbaa !5
  %3062 = call ptr @s2n_strerror_debug(i32 noundef %3061, ptr noundef @.str.4)
  %3063 = call ptr @__errno_location() #10
  %3064 = load i32, ptr %3063, align 4, !tbaa !5
  %3065 = call ptr @strerror(i32 noundef %3064) #9
  %3066 = call ptr @__errno_location() #10
  %3067 = load i32, ptr %3066, align 4, !tbaa !5
  %3068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3055, ptr noundef @.str.2, i32 noundef %3056, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 244, ptr noundef %3059, ptr noundef %3062, ptr noundef %3065, i32 noundef %3067) #9
  br label %3086

3069:                                             ; preds = %3047, %3040
  %3070 = load i32, ptr %63, align 4, !tbaa !5
  %3071 = call ptr @__errno_location() #10
  store i32 %3070, ptr %3071, align 4, !tbaa !5
  %3072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3073 = load i32, ptr @test_count, align 4, !tbaa !5
  %3074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3075 = load i32, ptr %3074, align 4, !tbaa !5
  %3076 = call ptr @s2n_strerror(i32 noundef %3075, ptr noundef @.str.4)
  %3077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3078 = load i32, ptr %3077, align 4, !tbaa !5
  %3079 = call ptr @s2n_strerror_debug(i32 noundef %3078, ptr noundef @.str.4)
  %3080 = call ptr @__errno_location() #10
  %3081 = load i32, ptr %3080, align 4, !tbaa !5
  %3082 = call ptr @strerror(i32 noundef %3081) #9
  %3083 = call ptr @__errno_location() #10
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3072, ptr noundef @.str.5, i32 noundef %3073, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 244, ptr noundef %3076, ptr noundef %3079, ptr noundef %3082, i32 noundef %3084) #9
  br label %3086

3086:                                             ; preds = %3069, %3052
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %3087

3087:                                             ; preds = %3086
  br label %3088

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

3089:                                             ; No predecessors!
  br label %3090

3090:                                             ; preds = %3089
  br label %3091

3091:                                             ; preds = %3090, %3032
  br label %3092

3092:                                             ; preds = %3091
  br label %3093

3093:                                             ; preds = %3092
  br label %3094

3094:                                             ; preds = %3093
  %3095 = load i32, ptr @test_count, align 4, !tbaa !5
  %3096 = add nsw i32 %3095, 1
  store i32 %3096, ptr @test_count, align 4, !tbaa !5
  %3097 = load ptr, ptr %11, align 8, !tbaa !9
  %3098 = call i32 @setup_client_psks(ptr noundef %3097)
  %3099 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  store i32 %3098, ptr %3099, align 4
  %3100 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  %3101 = load i32, ptr %3100, align 4
  %3102 = call zeroext i1 @s2n_result_is_ok(i32 %3101)
  br i1 %3102, label %3156, label %3103

3103:                                             ; preds = %3094
  br label %3104

3104:                                             ; preds = %3103
  br label %3105

3105:                                             ; preds = %3104
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %3106 = call ptr @__errno_location() #10
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  store i32 %3107, ptr %65, align 4, !tbaa !5
  %3108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3109 = call i32 @s2n_print_stacktrace(ptr noundef %3108)
  %3110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3111 = trunc i8 %3110 to i1
  br i1 %3111, label %3112, label %3134

3112:                                             ; preds = %3105
  %3113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3114 = call i32 @fileno(ptr noundef %3113) #9
  %3115 = call i32 @isatty(i32 noundef %3114) #9
  %3116 = icmp ne i32 %3115, 0
  br i1 %3116, label %3117, label %3134

3117:                                             ; preds = %3112
  %3118 = load i32, ptr %65, align 4, !tbaa !5
  %3119 = call ptr @__errno_location() #10
  store i32 %3118, ptr %3119, align 4, !tbaa !5
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = load i32, ptr @test_count, align 4, !tbaa !5
  %3122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3123 = load i32, ptr %3122, align 4, !tbaa !5
  %3124 = call ptr @s2n_strerror(i32 noundef %3123, ptr noundef @.str.4)
  %3125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3126 = load i32, ptr %3125, align 4, !tbaa !5
  %3127 = call ptr @s2n_strerror_debug(i32 noundef %3126, ptr noundef @.str.4)
  %3128 = call ptr @__errno_location() #10
  %3129 = load i32, ptr %3128, align 4, !tbaa !5
  %3130 = call ptr @strerror(i32 noundef %3129) #9
  %3131 = call ptr @__errno_location() #10
  %3132 = load i32, ptr %3131, align 4, !tbaa !5
  %3133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3120, ptr noundef @.str.2, i32 noundef %3121, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 247, ptr noundef %3124, ptr noundef %3127, ptr noundef %3130, i32 noundef %3132) #9
  br label %3151

3134:                                             ; preds = %3112, %3105
  %3135 = load i32, ptr %65, align 4, !tbaa !5
  %3136 = call ptr @__errno_location() #10
  store i32 %3135, ptr %3136, align 4, !tbaa !5
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = load i32, ptr @test_count, align 4, !tbaa !5
  %3139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3140 = load i32, ptr %3139, align 4, !tbaa !5
  %3141 = call ptr @s2n_strerror(i32 noundef %3140, ptr noundef @.str.4)
  %3142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3143 = load i32, ptr %3142, align 4, !tbaa !5
  %3144 = call ptr @s2n_strerror_debug(i32 noundef %3143, ptr noundef @.str.4)
  %3145 = call ptr @__errno_location() #10
  %3146 = load i32, ptr %3145, align 4, !tbaa !5
  %3147 = call ptr @strerror(i32 noundef %3146) #9
  %3148 = call ptr @__errno_location() #10
  %3149 = load i32, ptr %3148, align 4, !tbaa !5
  %3150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3137, ptr noundef @.str.5, i32 noundef %3138, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 247, ptr noundef %3141, ptr noundef %3144, ptr noundef %3147, i32 noundef %3149) #9
  br label %3151

3151:                                             ; preds = %3134, %3117
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %3152

3152:                                             ; preds = %3151
  br label %3153

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

3154:                                             ; No predecessors!
  br label %3155

3155:                                             ; preds = %3154
  br label %3156

3156:                                             ; preds = %3155, %3094
  br label %3157

3157:                                             ; preds = %3156
  br label %3158

3158:                                             ; preds = %3157
  br label %3159

3159:                                             ; preds = %3158
  %3160 = load i32, ptr @test_count, align 4, !tbaa !5
  %3161 = add nsw i32 %3160, 1
  store i32 %3161, ptr @test_count, align 4, !tbaa !5
  %3162 = load ptr, ptr %12, align 8, !tbaa !9
  %3163 = call i32 @setup_server_psks(ptr noundef %3162)
  %3164 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %3163, ptr %3164, align 4
  %3165 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  %3166 = load i32, ptr %3165, align 4
  %3167 = call zeroext i1 @s2n_result_is_ok(i32 %3166)
  br i1 %3167, label %3221, label %3168

3168:                                             ; preds = %3159
  br label %3169

3169:                                             ; preds = %3168
  br label %3170

3170:                                             ; preds = %3169
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %3171 = call ptr @__errno_location() #10
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  store i32 %3172, ptr %67, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = call i32 @s2n_print_stacktrace(ptr noundef %3173)
  %3175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3176 = trunc i8 %3175 to i1
  br i1 %3176, label %3177, label %3199

3177:                                             ; preds = %3170
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = call i32 @fileno(ptr noundef %3178) #9
  %3180 = call i32 @isatty(i32 noundef %3179) #9
  %3181 = icmp ne i32 %3180, 0
  br i1 %3181, label %3182, label %3199

3182:                                             ; preds = %3177
  %3183 = load i32, ptr %67, align 4, !tbaa !5
  %3184 = call ptr @__errno_location() #10
  store i32 %3183, ptr %3184, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call ptr @s2n_strerror(i32 noundef %3188, ptr noundef @.str.4)
  %3190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef @.str.4)
  %3193 = call ptr @__errno_location() #10
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call ptr @strerror(i32 noundef %3194) #9
  %3196 = call ptr @__errno_location() #10
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  %3198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3185, ptr noundef @.str.2, i32 noundef %3186, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 248, ptr noundef %3189, ptr noundef %3192, ptr noundef %3195, i32 noundef %3197) #9
  br label %3216

3199:                                             ; preds = %3177, %3170
  %3200 = load i32, ptr %67, align 4, !tbaa !5
  %3201 = call ptr @__errno_location() #10
  store i32 %3200, ptr %3201, align 4, !tbaa !5
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = load i32, ptr @test_count, align 4, !tbaa !5
  %3204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call ptr @s2n_strerror(i32 noundef %3205, ptr noundef @.str.4)
  %3207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror_debug(i32 noundef %3208, ptr noundef @.str.4)
  %3210 = call ptr @__errno_location() #10
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @strerror(i32 noundef %3211) #9
  %3213 = call ptr @__errno_location() #10
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3202, ptr noundef @.str.5, i32 noundef %3203, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 248, ptr noundef %3206, ptr noundef %3209, ptr noundef %3212, i32 noundef %3214) #9
  br label %3216

3216:                                             ; preds = %3199, %3182
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %3217

3217:                                             ; preds = %3216
  br label %3218

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

3219:                                             ; No predecessors!
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

3221:                                             ; preds = %3220, %3159
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

3223:                                             ; preds = %3222
  br label %3224

3224:                                             ; preds = %3223
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = add nsw i32 %3225, 1
  store i32 %3226, ptr @test_count, align 4, !tbaa !5
  %3227 = load ptr, ptr %12, align 8, !tbaa !9
  %3228 = load ptr, ptr %11, align 8, !tbaa !9
  %3229 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3227, ptr noundef %3228)
  %3230 = icmp eq i32 %3229, -1
  br i1 %3230, label %3231, label %3284

3231:                                             ; preds = %3224
  br label %3232

3232:                                             ; preds = %3231
  br label %3233

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

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

3245:                                             ; preds = %3240
  %3246 = load i32, ptr %68, align 4, !tbaa !5
  %3247 = call ptr @__errno_location() #10
  store i32 %3246, ptr %3247, align 4, !tbaa !5
  %3248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3249 = load i32, ptr @test_count, align 4, !tbaa !5
  %3250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3251 = load i32, ptr %3250, align 4, !tbaa !5
  %3252 = call ptr @s2n_strerror(i32 noundef %3251, ptr noundef @.str.4)
  %3253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3254 = load i32, ptr %3253, align 4, !tbaa !5
  %3255 = call ptr @s2n_strerror_debug(i32 noundef %3254, ptr noundef @.str.4)
  %3256 = call ptr @__errno_location() #10
  %3257 = load i32, ptr %3256, align 4, !tbaa !5
  %3258 = call ptr @strerror(i32 noundef %3257) #9
  %3259 = call ptr @__errno_location() #10
  %3260 = load i32, ptr %3259, align 4, !tbaa !5
  %3261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3248, ptr noundef @.str.2, i32 noundef %3249, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 251, ptr noundef %3252, ptr noundef %3255, ptr noundef %3258, i32 noundef %3260) #9
  br label %3279

3262:                                             ; preds = %3240, %3233
  %3263 = load i32, ptr %68, align 4, !tbaa !5
  %3264 = call ptr @__errno_location() #10
  store i32 %3263, ptr %3264, align 4, !tbaa !5
  %3265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3266 = load i32, ptr @test_count, align 4, !tbaa !5
  %3267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3268 = load i32, ptr %3267, align 4, !tbaa !5
  %3269 = call ptr @s2n_strerror(i32 noundef %3268, ptr noundef @.str.4)
  %3270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3271 = load i32, ptr %3270, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror_debug(i32 noundef %3271, ptr noundef @.str.4)
  %3273 = call ptr @__errno_location() #10
  %3274 = load i32, ptr %3273, align 4, !tbaa !5
  %3275 = call ptr @strerror(i32 noundef %3274) #9
  %3276 = call ptr @__errno_location() #10
  %3277 = load i32, ptr %3276, align 4, !tbaa !5
  %3278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3265, ptr noundef @.str.5, i32 noundef %3266, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 251, ptr noundef %3269, ptr noundef %3272, ptr noundef %3275, i32 noundef %3277) #9
  br label %3279

3279:                                             ; preds = %3262, %3245
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %3280

3280:                                             ; preds = %3279
  br label %3281

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

3282:                                             ; No predecessors!
  br label %3283

3283:                                             ; preds = %3282
  br label %3284

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

3285:                                             ; preds = %3284
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

3287:                                             ; preds = %3286
  %3288 = load i32, ptr @test_count, align 4, !tbaa !5
  %3289 = add nsw i32 %3288, 1
  store i32 %3289, ptr @test_count, align 4, !tbaa !5
  %3290 = load ptr, ptr %11, align 8, !tbaa !9
  %3291 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %3290, i32 noundef 2)
  br i1 %3291, label %3292, label %3348

3292:                                             ; preds = %3287
  %3293 = load ptr, ptr %12, align 8, !tbaa !9
  %3294 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %3293, i32 noundef 2)
  br i1 %3294, label %3295, label %3348

3295:                                             ; preds = %3292
  br label %3296

3296:                                             ; preds = %3295
  br label %3297

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

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

3309:                                             ; preds = %3304
  %3310 = load i32, ptr %69, align 4, !tbaa !5
  %3311 = call ptr @__errno_location() #10
  store i32 %3310, ptr %3311, align 4, !tbaa !5
  %3312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3313 = load i32, ptr @test_count, align 4, !tbaa !5
  %3314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call ptr @s2n_strerror(i32 noundef %3315, ptr noundef @.str.4)
  %3317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = call ptr @s2n_strerror_debug(i32 noundef %3318, ptr noundef @.str.4)
  %3320 = call ptr @__errno_location() #10
  %3321 = load i32, ptr %3320, align 4, !tbaa !5
  %3322 = call ptr @strerror(i32 noundef %3321) #9
  %3323 = call ptr @__errno_location() #10
  %3324 = load i32, ptr %3323, align 4, !tbaa !5
  %3325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3312, ptr noundef @.str.2, i32 noundef %3313, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 254, ptr noundef %3316, ptr noundef %3319, ptr noundef %3322, i32 noundef %3324) #9
  br label %3343

3326:                                             ; preds = %3304, %3297
  %3327 = load i32, ptr %69, align 4, !tbaa !5
  %3328 = call ptr @__errno_location() #10
  store i32 %3327, ptr %3328, align 4, !tbaa !5
  %3329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3330 = load i32, ptr @test_count, align 4, !tbaa !5
  %3331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @s2n_strerror(i32 noundef %3332, ptr noundef @.str.4)
  %3334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call ptr @s2n_strerror_debug(i32 noundef %3335, ptr noundef @.str.4)
  %3337 = call ptr @__errno_location() #10
  %3338 = load i32, ptr %3337, align 4, !tbaa !5
  %3339 = call ptr @strerror(i32 noundef %3338) #9
  %3340 = call ptr @__errno_location() #10
  %3341 = load i32, ptr %3340, align 4, !tbaa !5
  %3342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3329, ptr noundef @.str.5, i32 noundef %3330, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 254, ptr noundef %3333, ptr noundef %3336, ptr noundef %3339, i32 noundef %3341) #9
  br label %3343

3343:                                             ; preds = %3326, %3309
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3344

3344:                                             ; preds = %3343
  br label %3345

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

3346:                                             ; No predecessors!
  br label %3347

3347:                                             ; preds = %3346
  br label %3348

3348:                                             ; preds = %3347, %3292, %3287
  br label %3349

3349:                                             ; preds = %3348
  br label %3350

3350:                                             ; preds = %3349
  br label %3351

3351:                                             ; preds = %3350
  %3352 = load i32, ptr @test_count, align 4, !tbaa !5
  %3353 = add nsw i32 %3352, 1
  store i32 %3353, ptr @test_count, align 4, !tbaa !5
  %3354 = load ptr, ptr %12, align 8, !tbaa !9
  %3355 = call i32 @validate_chosen_psk(ptr noundef %3354, ptr noundef @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %3356 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  store i32 %3355, ptr %3356, align 4
  %3357 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  %3358 = load i32, ptr %3357, align 4
  %3359 = call zeroext i1 @s2n_result_is_ok(i32 %3358)
  br i1 %3359, label %3413, label %3360

3360:                                             ; preds = %3351
  br label %3361

3361:                                             ; preds = %3360
  br label %3362

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

3369:                                             ; preds = %3362
  %3370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3371 = call i32 @fileno(ptr noundef %3370) #9
  %3372 = call i32 @isatty(i32 noundef %3371) #9
  %3373 = icmp ne i32 %3372, 0
  br i1 %3373, label %3374, label %3391

3374:                                             ; preds = %3369
  %3375 = load i32, ptr %71, align 4, !tbaa !5
  %3376 = call ptr @__errno_location() #10
  store i32 %3375, ptr %3376, align 4, !tbaa !5
  %3377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3378 = load i32, ptr @test_count, align 4, !tbaa !5
  %3379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror(i32 noundef %3380, ptr noundef @.str.4)
  %3382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call ptr @s2n_strerror_debug(i32 noundef %3383, ptr noundef @.str.4)
  %3385 = call ptr @__errno_location() #10
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = call ptr @strerror(i32 noundef %3386) #9
  %3388 = call ptr @__errno_location() #10
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3377, ptr noundef @.str.2, i32 noundef %3378, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 258, ptr noundef %3381, ptr noundef %3384, ptr noundef %3387, i32 noundef %3389) #9
  br label %3408

3391:                                             ; preds = %3369, %3362
  %3392 = load i32, ptr %71, align 4, !tbaa !5
  %3393 = call ptr @__errno_location() #10
  store i32 %3392, ptr %3393, align 4, !tbaa !5
  %3394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3395 = load i32, ptr @test_count, align 4, !tbaa !5
  %3396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3397 = load i32, ptr %3396, align 4, !tbaa !5
  %3398 = call ptr @s2n_strerror(i32 noundef %3397, ptr noundef @.str.4)
  %3399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = call ptr @s2n_strerror_debug(i32 noundef %3400, ptr noundef @.str.4)
  %3402 = call ptr @__errno_location() #10
  %3403 = load i32, ptr %3402, align 4, !tbaa !5
  %3404 = call ptr @strerror(i32 noundef %3403) #9
  %3405 = call ptr @__errno_location() #10
  %3406 = load i32, ptr %3405, align 4, !tbaa !5
  %3407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3394, ptr noundef @.str.5, i32 noundef %3395, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 258, ptr noundef %3398, ptr noundef %3401, ptr noundef %3404, i32 noundef %3406) #9
  br label %3408

3408:                                             ; preds = %3391, %3374
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

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

3411:                                             ; No predecessors!
  br label %3412

3412:                                             ; preds = %3411
  br label %3413

3413:                                             ; preds = %3412, %3351
  br label %3414

3414:                                             ; preds = %3413
  br label %3415

3415:                                             ; preds = %3414
  br label %3416

3416:                                             ; preds = %3415
  %3417 = load i32, ptr @test_count, align 4, !tbaa !5
  %3418 = add nsw i32 %3417, 1
  store i32 %3418, ptr @test_count, align 4, !tbaa !5
  %3419 = load ptr, ptr %12, align 8, !tbaa !9
  %3420 = load ptr, ptr %11, align 8, !tbaa !9
  %3421 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %3419, ptr noundef %3420)
  %3422 = icmp eq i32 %3421, -1
  br i1 %3422, label %3423, label %3476

3423:                                             ; preds = %3416
  br label %3424

3424:                                             ; preds = %3423
  br label %3425

3425:                                             ; preds = %3424
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %3426 = call ptr @__errno_location() #10
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  store i32 %3427, ptr %72, align 4, !tbaa !5
  %3428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3429 = call i32 @s2n_print_stacktrace(ptr noundef %3428)
  %3430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3431 = trunc i8 %3430 to i1
  br i1 %3431, label %3432, label %3454

3432:                                             ; preds = %3425
  %3433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3434 = call i32 @fileno(ptr noundef %3433) #9
  %3435 = call i32 @isatty(i32 noundef %3434) #9
  %3436 = icmp ne i32 %3435, 0
  br i1 %3436, label %3437, label %3454

3437:                                             ; preds = %3432
  %3438 = load i32, ptr %72, align 4, !tbaa !5
  %3439 = call ptr @__errno_location() #10
  store i32 %3438, ptr %3439, align 4, !tbaa !5
  %3440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3441 = load i32, ptr @test_count, align 4, !tbaa !5
  %3442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @s2n_strerror(i32 noundef %3443, ptr noundef @.str.4)
  %3445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  %3447 = call ptr @s2n_strerror_debug(i32 noundef %3446, ptr noundef @.str.4)
  %3448 = call ptr @__errno_location() #10
  %3449 = load i32, ptr %3448, align 4, !tbaa !5
  %3450 = call ptr @strerror(i32 noundef %3449) #9
  %3451 = call ptr @__errno_location() #10
  %3452 = load i32, ptr %3451, align 4, !tbaa !5
  %3453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3440, ptr noundef @.str.2, i32 noundef %3441, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 260, ptr noundef %3444, ptr noundef %3447, ptr noundef %3450, i32 noundef %3452) #9
  br label %3471

3454:                                             ; preds = %3432, %3425
  %3455 = load i32, ptr %72, align 4, !tbaa !5
  %3456 = call ptr @__errno_location() #10
  store i32 %3455, ptr %3456, align 4, !tbaa !5
  %3457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3458 = load i32, ptr @test_count, align 4, !tbaa !5
  %3459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @s2n_strerror(i32 noundef %3460, ptr noundef @.str.4)
  %3462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call ptr @s2n_strerror_debug(i32 noundef %3463, ptr noundef @.str.4)
  %3465 = call ptr @__errno_location() #10
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call ptr @strerror(i32 noundef %3466) #9
  %3468 = call ptr @__errno_location() #10
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  %3470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3457, ptr noundef @.str.5, i32 noundef %3458, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 260, ptr noundef %3461, ptr noundef %3464, ptr noundef %3467, i32 noundef %3469) #9
  br label %3471

3471:                                             ; preds = %3454, %3437
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3472

3472:                                             ; preds = %3471
  br label %3473

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

3474:                                             ; No predecessors!
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

3476:                                             ; preds = %3475, %3416
  br label %3477

3477:                                             ; preds = %3476
  br label %3478

3478:                                             ; preds = %3477
  br label %3479

3479:                                             ; preds = %3478
  %3480 = load i32, ptr @test_count, align 4, !tbaa !5
  %3481 = add nsw i32 %3480, 1
  store i32 %3481, ptr @test_count, align 4, !tbaa !5
  %3482 = load ptr, ptr %11, align 8, !tbaa !9
  %3483 = call i32 @s2n_connection_wipe(ptr noundef %3482)
  %3484 = icmp eq i32 %3483, -1
  br i1 %3484, label %3485, label %3538

3485:                                             ; preds = %3479
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

3487:                                             ; preds = %3486
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %3488 = call ptr @__errno_location() #10
  %3489 = load i32, ptr %3488, align 4, !tbaa !5
  store i32 %3489, ptr %73, align 4, !tbaa !5
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = call i32 @s2n_print_stacktrace(ptr noundef %3490)
  %3492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3493 = trunc i8 %3492 to i1
  br i1 %3493, label %3494, label %3516

3494:                                             ; preds = %3487
  %3495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3496 = call i32 @fileno(ptr noundef %3495) #9
  %3497 = call i32 @isatty(i32 noundef %3496) #9
  %3498 = icmp ne i32 %3497, 0
  br i1 %3498, label %3499, label %3516

3499:                                             ; preds = %3494
  %3500 = load i32, ptr %73, align 4, !tbaa !5
  %3501 = call ptr @__errno_location() #10
  store i32 %3500, ptr %3501, align 4, !tbaa !5
  %3502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3503 = load i32, ptr @test_count, align 4, !tbaa !5
  %3504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3505 = load i32, ptr %3504, align 4, !tbaa !5
  %3506 = call ptr @s2n_strerror(i32 noundef %3505, ptr noundef @.str.4)
  %3507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3508 = load i32, ptr %3507, align 4, !tbaa !5
  %3509 = call ptr @s2n_strerror_debug(i32 noundef %3508, ptr noundef @.str.4)
  %3510 = call ptr @__errno_location() #10
  %3511 = load i32, ptr %3510, align 4, !tbaa !5
  %3512 = call ptr @strerror(i32 noundef %3511) #9
  %3513 = call ptr @__errno_location() #10
  %3514 = load i32, ptr %3513, align 4, !tbaa !5
  %3515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3502, ptr noundef @.str.2, i32 noundef %3503, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 262, ptr noundef %3506, ptr noundef %3509, ptr noundef %3512, i32 noundef %3514) #9
  br label %3533

3516:                                             ; preds = %3494, %3487
  %3517 = load i32, ptr %73, align 4, !tbaa !5
  %3518 = call ptr @__errno_location() #10
  store i32 %3517, ptr %3518, align 4, !tbaa !5
  %3519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3520 = load i32, ptr @test_count, align 4, !tbaa !5
  %3521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  %3523 = call ptr @s2n_strerror(i32 noundef %3522, ptr noundef @.str.4)
  %3524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3525 = load i32, ptr %3524, align 4, !tbaa !5
  %3526 = call ptr @s2n_strerror_debug(i32 noundef %3525, ptr noundef @.str.4)
  %3527 = call ptr @__errno_location() #10
  %3528 = load i32, ptr %3527, align 4, !tbaa !5
  %3529 = call ptr @strerror(i32 noundef %3528) #9
  %3530 = call ptr @__errno_location() #10
  %3531 = load i32, ptr %3530, align 4, !tbaa !5
  %3532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3519, ptr noundef @.str.5, i32 noundef %3520, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 262, ptr noundef %3523, ptr noundef %3526, ptr noundef %3529, i32 noundef %3531) #9
  br label %3533

3533:                                             ; preds = %3516, %3499
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %3534

3534:                                             ; preds = %3533
  br label %3535

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

3536:                                             ; No predecessors!
  br label %3537

3537:                                             ; preds = %3536
  br label %3538

3538:                                             ; preds = %3537, %3479
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

3540:                                             ; preds = %3539
  br label %3541

3541:                                             ; preds = %3540
  %3542 = load i32, ptr @test_count, align 4, !tbaa !5
  %3543 = add nsw i32 %3542, 1
  store i32 %3543, ptr @test_count, align 4, !tbaa !5
  %3544 = load ptr, ptr %12, align 8, !tbaa !9
  %3545 = call i32 @s2n_connection_wipe(ptr noundef %3544)
  %3546 = icmp eq i32 %3545, -1
  br i1 %3546, label %3547, label %3600

3547:                                             ; preds = %3541
  br label %3548

3548:                                             ; preds = %3547
  br label %3549

3549:                                             ; preds = %3548
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %3550 = call ptr @__errno_location() #10
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  store i32 %3551, ptr %74, align 4, !tbaa !5
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = call i32 @s2n_print_stacktrace(ptr noundef %3552)
  %3554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3555 = trunc i8 %3554 to i1
  br i1 %3555, label %3556, label %3578

3556:                                             ; preds = %3549
  %3557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3558 = call i32 @fileno(ptr noundef %3557) #9
  %3559 = call i32 @isatty(i32 noundef %3558) #9
  %3560 = icmp ne i32 %3559, 0
  br i1 %3560, label %3561, label %3578

3561:                                             ; preds = %3556
  %3562 = load i32, ptr %74, align 4, !tbaa !5
  %3563 = call ptr @__errno_location() #10
  store i32 %3562, ptr %3563, align 4, !tbaa !5
  %3564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3565 = load i32, ptr @test_count, align 4, !tbaa !5
  %3566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call ptr @s2n_strerror(i32 noundef %3567, ptr noundef @.str.4)
  %3569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3570 = load i32, ptr %3569, align 4, !tbaa !5
  %3571 = call ptr @s2n_strerror_debug(i32 noundef %3570, ptr noundef @.str.4)
  %3572 = call ptr @__errno_location() #10
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  %3574 = call ptr @strerror(i32 noundef %3573) #9
  %3575 = call ptr @__errno_location() #10
  %3576 = load i32, ptr %3575, align 4, !tbaa !5
  %3577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3564, ptr noundef @.str.2, i32 noundef %3565, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 263, ptr noundef %3568, ptr noundef %3571, ptr noundef %3574, i32 noundef %3576) #9
  br label %3595

3578:                                             ; preds = %3556, %3549
  %3579 = load i32, ptr %74, align 4, !tbaa !5
  %3580 = call ptr @__errno_location() #10
  store i32 %3579, ptr %3580, align 4, !tbaa !5
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = load i32, ptr @test_count, align 4, !tbaa !5
  %3583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3584 = load i32, ptr %3583, align 4, !tbaa !5
  %3585 = call ptr @s2n_strerror(i32 noundef %3584, ptr noundef @.str.4)
  %3586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3587 = load i32, ptr %3586, align 4, !tbaa !5
  %3588 = call ptr @s2n_strerror_debug(i32 noundef %3587, ptr noundef @.str.4)
  %3589 = call ptr @__errno_location() #10
  %3590 = load i32, ptr %3589, align 4, !tbaa !5
  %3591 = call ptr @strerror(i32 noundef %3590) #9
  %3592 = call ptr @__errno_location() #10
  %3593 = load i32, ptr %3592, align 4, !tbaa !5
  %3594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3581, ptr noundef @.str.5, i32 noundef %3582, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 263, ptr noundef %3585, ptr noundef %3588, ptr noundef %3591, i32 noundef %3593) #9
  br label %3595

3595:                                             ; preds = %3578, %3561
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

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

3598:                                             ; No predecessors!
  br label %3599

3599:                                             ; preds = %3598
  br label %3600

3600:                                             ; preds = %3599, %3541
  br label %3601

3601:                                             ; preds = %3600
  br label %3602

3602:                                             ; preds = %3601
  br label %3603

3603:                                             ; preds = %3602
  %3604 = load i32, ptr @test_count, align 4, !tbaa !5
  %3605 = add nsw i32 %3604, 1
  store i32 %3605, ptr @test_count, align 4, !tbaa !5
  %3606 = load ptr, ptr %11, align 8, !tbaa !9
  %3607 = load ptr, ptr %19, align 8, !tbaa !9
  %3608 = call i32 @s2n_connection_set_config(ptr noundef %3606, ptr noundef %3607)
  %3609 = icmp eq i32 %3608, -1
  br i1 %3609, label %3610, label %3663

3610:                                             ; preds = %3603
  br label %3611

3611:                                             ; preds = %3610
  br label %3612

3612:                                             ; preds = %3611
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %3613 = call ptr @__errno_location() #10
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  store i32 %3614, ptr %75, align 4, !tbaa !5
  %3615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3616 = call i32 @s2n_print_stacktrace(ptr noundef %3615)
  %3617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3618 = trunc i8 %3617 to i1
  br i1 %3618, label %3619, label %3641

3619:                                             ; preds = %3612
  %3620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3621 = call i32 @fileno(ptr noundef %3620) #9
  %3622 = call i32 @isatty(i32 noundef %3621) #9
  %3623 = icmp ne i32 %3622, 0
  br i1 %3623, label %3624, label %3641

3624:                                             ; preds = %3619
  %3625 = load i32, ptr %75, align 4, !tbaa !5
  %3626 = call ptr @__errno_location() #10
  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() #10
  %3636 = load i32, ptr %3635, align 4, !tbaa !5
  %3637 = call ptr @strerror(i32 noundef %3636) #9
  %3638 = call ptr @__errno_location() #10
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3627, ptr noundef @.str.2, i32 noundef %3628, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 269, ptr noundef %3631, ptr noundef %3634, ptr noundef %3637, i32 noundef %3639) #9
  br label %3658

3641:                                             ; preds = %3619, %3612
  %3642 = load i32, ptr %75, align 4, !tbaa !5
  %3643 = call ptr @__errno_location() #10
  store i32 %3642, ptr %3643, align 4, !tbaa !5
  %3644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3645 = load i32, ptr @test_count, align 4, !tbaa !5
  %3646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3647 = load i32, ptr %3646, align 4, !tbaa !5
  %3648 = call ptr @s2n_strerror(i32 noundef %3647, ptr noundef @.str.4)
  %3649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3650 = load i32, ptr %3649, align 4, !tbaa !5
  %3651 = call ptr @s2n_strerror_debug(i32 noundef %3650, ptr noundef @.str.4)
  %3652 = call ptr @__errno_location() #10
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  %3654 = call ptr @strerror(i32 noundef %3653) #9
  %3655 = call ptr @__errno_location() #10
  %3656 = load i32, ptr %3655, align 4, !tbaa !5
  %3657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3644, ptr noundef @.str.5, i32 noundef %3645, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 269, ptr noundef %3648, ptr noundef %3651, ptr noundef %3654, i32 noundef %3656) #9
  br label %3658

3658:                                             ; preds = %3641, %3624
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %3659

3659:                                             ; preds = %3658
  br label %3660

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

3661:                                             ; No predecessors!
  br label %3662

3662:                                             ; preds = %3661
  br label %3663

3663:                                             ; preds = %3662, %3603
  br label %3664

3664:                                             ; preds = %3663
  br label %3665

3665:                                             ; preds = %3664
  br label %3666

3666:                                             ; preds = %3665
  %3667 = load i32, ptr @test_count, align 4, !tbaa !5
  %3668 = add nsw i32 %3667, 1
  store i32 %3668, ptr @test_count, align 4, !tbaa !5
  %3669 = load ptr, ptr %12, align 8, !tbaa !9
  %3670 = load ptr, ptr %19, align 8, !tbaa !9
  %3671 = call i32 @s2n_connection_set_config(ptr noundef %3669, ptr noundef %3670)
  %3672 = icmp eq i32 %3671, -1
  br i1 %3672, label %3673, label %3726

3673:                                             ; preds = %3666
  br label %3674

3674:                                             ; preds = %3673
  br label %3675

3675:                                             ; preds = %3674
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %3676 = call ptr @__errno_location() #10
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  store i32 %3677, ptr %76, align 4, !tbaa !5
  %3678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3679 = call i32 @s2n_print_stacktrace(ptr noundef %3678)
  %3680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3681 = trunc i8 %3680 to i1
  br i1 %3681, label %3682, label %3704

3682:                                             ; preds = %3675
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = call i32 @fileno(ptr noundef %3683) #9
  %3685 = call i32 @isatty(i32 noundef %3684) #9
  %3686 = icmp ne i32 %3685, 0
  br i1 %3686, label %3687, label %3704

3687:                                             ; preds = %3682
  %3688 = load i32, ptr %76, align 4, !tbaa !5
  %3689 = call ptr @__errno_location() #10
  store i32 %3688, ptr %3689, align 4, !tbaa !5
  %3690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3691 = load i32, ptr @test_count, align 4, !tbaa !5
  %3692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @s2n_strerror(i32 noundef %3693, ptr noundef @.str.4)
  %3695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror_debug(i32 noundef %3696, ptr noundef @.str.4)
  %3698 = call ptr @__errno_location() #10
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call ptr @strerror(i32 noundef %3699) #9
  %3701 = call ptr @__errno_location() #10
  %3702 = load i32, ptr %3701, align 4, !tbaa !5
  %3703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3690, ptr noundef @.str.2, i32 noundef %3691, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 269, ptr noundef %3694, ptr noundef %3697, ptr noundef %3700, i32 noundef %3702) #9
  br label %3721

3704:                                             ; preds = %3682, %3675
  %3705 = load i32, ptr %76, align 4, !tbaa !5
  %3706 = call ptr @__errno_location() #10
  store i32 %3705, ptr %3706, align 4, !tbaa !5
  %3707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3708 = load i32, ptr @test_count, align 4, !tbaa !5
  %3709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @s2n_strerror(i32 noundef %3710, ptr noundef @.str.4)
  %3712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call ptr @s2n_strerror_debug(i32 noundef %3713, ptr noundef @.str.4)
  %3715 = call ptr @__errno_location() #10
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  %3717 = call ptr @strerror(i32 noundef %3716) #9
  %3718 = call ptr @__errno_location() #10
  %3719 = load i32, ptr %3718, align 4, !tbaa !5
  %3720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3707, ptr noundef @.str.5, i32 noundef %3708, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 269, ptr noundef %3711, ptr noundef %3714, ptr noundef %3717, i32 noundef %3719) #9
  br label %3721

3721:                                             ; preds = %3704, %3687
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3722

3722:                                             ; preds = %3721
  br label %3723

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

3724:                                             ; No predecessors!
  br label %3725

3725:                                             ; preds = %3724
  br label %3726

3726:                                             ; preds = %3725, %3666
  br label %3727

3727:                                             ; preds = %3726
  br label %3728

3728:                                             ; preds = %3727
  br label %3729

3729:                                             ; preds = %3728
  %3730 = load i32, ptr @test_count, align 4, !tbaa !5
  %3731 = add nsw i32 %3730, 1
  store i32 %3731, ptr @test_count, align 4, !tbaa !5
  %3732 = load ptr, ptr %11, align 8, !tbaa !9
  %3733 = call i32 @s2n_connection_set_io_pair(ptr noundef %3732, ptr noundef %26)
  %3734 = icmp eq i32 %3733, -1
  br i1 %3734, label %3735, label %3788

3735:                                             ; preds = %3729
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

3737:                                             ; preds = %3736
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %3738 = call ptr @__errno_location() #10
  %3739 = load i32, ptr %3738, align 4, !tbaa !5
  store i32 %3739, ptr %77, align 4, !tbaa !5
  %3740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3741 = call i32 @s2n_print_stacktrace(ptr noundef %3740)
  %3742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3743 = trunc i8 %3742 to i1
  br i1 %3743, label %3744, label %3766

3744:                                             ; preds = %3737
  %3745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3746 = call i32 @fileno(ptr noundef %3745) #9
  %3747 = call i32 @isatty(i32 noundef %3746) #9
  %3748 = icmp ne i32 %3747, 0
  br i1 %3748, label %3749, label %3766

3749:                                             ; preds = %3744
  %3750 = load i32, ptr %77, align 4, !tbaa !5
  %3751 = call ptr @__errno_location() #10
  store i32 %3750, ptr %3751, align 4, !tbaa !5
  %3752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3753 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3755, ptr noundef @.str.4)
  %3757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3758 = load i32, ptr %3757, align 4, !tbaa !5
  %3759 = call ptr @s2n_strerror_debug(i32 noundef %3758, ptr noundef @.str.4)
  %3760 = call ptr @__errno_location() #10
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  %3762 = call ptr @strerror(i32 noundef %3761) #9
  %3763 = call ptr @__errno_location() #10
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3752, ptr noundef @.str.2, i32 noundef %3753, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 270, ptr noundef %3756, ptr noundef %3759, ptr noundef %3762, i32 noundef %3764) #9
  br label %3783

3766:                                             ; preds = %3744, %3737
  %3767 = load i32, ptr %77, align 4, !tbaa !5
  %3768 = call ptr @__errno_location() #10
  store i32 %3767, ptr %3768, align 4, !tbaa !5
  %3769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3770 = load i32, ptr @test_count, align 4, !tbaa !5
  %3771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  %3773 = call ptr @s2n_strerror(i32 noundef %3772, ptr noundef @.str.4)
  %3774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3775 = load i32, ptr %3774, align 4, !tbaa !5
  %3776 = call ptr @s2n_strerror_debug(i32 noundef %3775, ptr noundef @.str.4)
  %3777 = call ptr @__errno_location() #10
  %3778 = load i32, ptr %3777, align 4, !tbaa !5
  %3779 = call ptr @strerror(i32 noundef %3778) #9
  %3780 = call ptr @__errno_location() #10
  %3781 = load i32, ptr %3780, align 4, !tbaa !5
  %3782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3769, ptr noundef @.str.5, i32 noundef %3770, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 270, ptr noundef %3773, ptr noundef %3776, ptr noundef %3779, i32 noundef %3781) #9
  br label %3783

3783:                                             ; preds = %3766, %3749
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3784

3784:                                             ; preds = %3783
  br label %3785

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

3786:                                             ; No predecessors!
  br label %3787

3787:                                             ; preds = %3786
  br label %3788

3788:                                             ; preds = %3787, %3729
  br label %3789

3789:                                             ; preds = %3788
  br label %3790

3790:                                             ; preds = %3789
  br label %3791

3791:                                             ; preds = %3790
  %3792 = load i32, ptr @test_count, align 4, !tbaa !5
  %3793 = add nsw i32 %3792, 1
  store i32 %3793, ptr @test_count, align 4, !tbaa !5
  %3794 = load ptr, ptr %12, align 8, !tbaa !9
  %3795 = call i32 @s2n_connection_set_io_pair(ptr noundef %3794, ptr noundef %26)
  %3796 = icmp eq i32 %3795, -1
  br i1 %3796, label %3797, label %3850

3797:                                             ; preds = %3791
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  %3800 = call ptr @__errno_location() #10
  %3801 = load i32, ptr %3800, align 4, !tbaa !5
  store i32 %3801, ptr %78, align 4, !tbaa !5
  %3802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3803 = call i32 @s2n_print_stacktrace(ptr noundef %3802)
  %3804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3805 = trunc i8 %3804 to i1
  br i1 %3805, label %3806, label %3828

3806:                                             ; preds = %3799
  %3807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3808 = call i32 @fileno(ptr noundef %3807) #9
  %3809 = call i32 @isatty(i32 noundef %3808) #9
  %3810 = icmp ne i32 %3809, 0
  br i1 %3810, label %3811, label %3828

3811:                                             ; preds = %3806
  %3812 = load i32, ptr %78, align 4, !tbaa !5
  %3813 = call ptr @__errno_location() #10
  store i32 %3812, ptr %3813, align 4, !tbaa !5
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3815 = load i32, ptr @test_count, align 4, !tbaa !5
  %3816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3817 = load i32, ptr %3816, align 4, !tbaa !5
  %3818 = call ptr @s2n_strerror(i32 noundef %3817, ptr noundef @.str.4)
  %3819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3820 = load i32, ptr %3819, align 4, !tbaa !5
  %3821 = call ptr @s2n_strerror_debug(i32 noundef %3820, ptr noundef @.str.4)
  %3822 = call ptr @__errno_location() #10
  %3823 = load i32, ptr %3822, align 4, !tbaa !5
  %3824 = call ptr @strerror(i32 noundef %3823) #9
  %3825 = call ptr @__errno_location() #10
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3814, ptr noundef @.str.2, i32 noundef %3815, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 270, ptr noundef %3818, ptr noundef %3821, ptr noundef %3824, i32 noundef %3826) #9
  br label %3845

3828:                                             ; preds = %3806, %3799
  %3829 = load i32, ptr %78, align 4, !tbaa !5
  %3830 = call ptr @__errno_location() #10
  store i32 %3829, ptr %3830, align 4, !tbaa !5
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = load i32, ptr @test_count, align 4, !tbaa !5
  %3833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3834 = load i32, ptr %3833, align 4, !tbaa !5
  %3835 = call ptr @s2n_strerror(i32 noundef %3834, ptr noundef @.str.4)
  %3836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3837 = load i32, ptr %3836, align 4, !tbaa !5
  %3838 = call ptr @s2n_strerror_debug(i32 noundef %3837, ptr noundef @.str.4)
  %3839 = call ptr @__errno_location() #10
  %3840 = load i32, ptr %3839, align 4, !tbaa !5
  %3841 = call ptr @strerror(i32 noundef %3840) #9
  %3842 = call ptr @__errno_location() #10
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3831, ptr noundef @.str.5, i32 noundef %3832, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 270, ptr noundef %3835, ptr noundef %3838, ptr noundef %3841, i32 noundef %3843) #9
  br label %3845

3845:                                             ; preds = %3828, %3811
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3846

3846:                                             ; preds = %3845
  br label %3847

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

3848:                                             ; No predecessors!
  br label %3849

3849:                                             ; preds = %3848
  br label %3850

3850:                                             ; preds = %3849, %3791
  br label %3851

3851:                                             ; preds = %3850
  br label %3852

3852:                                             ; preds = %3851
  br label %3853

3853:                                             ; preds = %3852
  %3854 = load i32, ptr @test_count, align 4, !tbaa !5
  %3855 = add nsw i32 %3854, 1
  store i32 %3855, ptr @test_count, align 4, !tbaa !5
  %3856 = load ptr, ptr %11, align 8, !tbaa !9
  %3857 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %3856, i32 noundef 1)
  %3858 = icmp eq i32 %3857, -1
  br i1 %3858, label %3859, label %3912

3859:                                             ; preds = %3853
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %3862 = call ptr @__errno_location() #10
  %3863 = load i32, ptr %3862, align 4, !tbaa !5
  store i32 %3863, ptr %79, align 4, !tbaa !5
  %3864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3865 = call i32 @s2n_print_stacktrace(ptr noundef %3864)
  %3866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3867 = trunc i8 %3866 to i1
  br i1 %3867, label %3868, label %3890

3868:                                             ; preds = %3861
  %3869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3870 = call i32 @fileno(ptr noundef %3869) #9
  %3871 = call i32 @isatty(i32 noundef %3870) #9
  %3872 = icmp ne i32 %3871, 0
  br i1 %3872, label %3873, label %3890

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

3890:                                             ; preds = %3868, %3861
  %3891 = load i32, ptr %79, align 4, !tbaa !5
  %3892 = call ptr @__errno_location() #10
  store i32 %3891, ptr %3892, align 4, !tbaa !5
  %3893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3894 = load i32, ptr @test_count, align 4, !tbaa !5
  %3895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  %3897 = call ptr @s2n_strerror(i32 noundef %3896, ptr noundef @.str.4)
  %3898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror_debug(i32 noundef %3899, ptr noundef @.str.4)
  %3901 = call ptr @__errno_location() #10
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @strerror(i32 noundef %3902) #9
  %3904 = call ptr @__errno_location() #10
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3893, ptr noundef @.str.5, i32 noundef %3894, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 273, ptr noundef %3897, ptr noundef %3900, ptr noundef %3903, i32 noundef %3905) #9
  br label %3907

3907:                                             ; preds = %3890, %3873
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3908

3908:                                             ; preds = %3907
  br label %3909

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

3910:                                             ; No predecessors!
  br label %3911

3911:                                             ; preds = %3910
  br label %3912

3912:                                             ; preds = %3911, %3853
  br label %3913

3913:                                             ; preds = %3912
  br label %3914

3914:                                             ; preds = %3913
  br label %3915

3915:                                             ; preds = %3914
  %3916 = load i32, ptr @test_count, align 4, !tbaa !5
  %3917 = add nsw i32 %3916, 1
  store i32 %3917, ptr @test_count, align 4, !tbaa !5
  %3918 = load ptr, ptr %12, align 8, !tbaa !9
  %3919 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %3918, i32 noundef 1)
  %3920 = icmp eq i32 %3919, -1
  br i1 %3920, label %3921, label %3974

3921:                                             ; preds = %3915
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

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

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

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

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

3969:                                             ; preds = %3952, %3935
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3970

3970:                                             ; preds = %3969
  br label %3971

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

3972:                                             ; No predecessors!
  br label %3973

3973:                                             ; preds = %3972
  br label %3974

3974:                                             ; preds = %3973, %3915
  br label %3975

3975:                                             ; preds = %3974
  br label %3976

3976:                                             ; preds = %3975
  br label %3977

3977:                                             ; preds = %3976
  %3978 = load i32, ptr @test_count, align 4, !tbaa !5
  %3979 = add nsw i32 %3978, 1
  store i32 %3979, ptr @test_count, align 4, !tbaa !5
  %3980 = load ptr, ptr %11, align 8, !tbaa !9
  %3981 = call i32 @setup_client_psks(ptr noundef %3980)
  %3982 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3981, ptr %3982, align 4
  %3983 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  %3984 = load i32, ptr %3983, align 4
  %3985 = call zeroext i1 @s2n_result_is_ok(i32 %3984)
  br i1 %3985, label %4039, label %3986

3986:                                             ; preds = %3977
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

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

3995:                                             ; preds = %3988
  %3996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3997 = call i32 @fileno(ptr noundef %3996) #9
  %3998 = call i32 @isatty(i32 noundef %3997) #9
  %3999 = icmp ne i32 %3998, 0
  br i1 %3999, label %4000, label %4017

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

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

4034:                                             ; preds = %4017, %4000
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %4035

4035:                                             ; preds = %4034
  br label %4036

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

4037:                                             ; No predecessors!
  br label %4038

4038:                                             ; preds = %4037
  br label %4039

4039:                                             ; preds = %4038, %3977
  br label %4040

4040:                                             ; preds = %4039
  br label %4041

4041:                                             ; preds = %4040
  br label %4042

4042:                                             ; preds = %4041
  %4043 = load i32, ptr @test_count, align 4, !tbaa !5
  %4044 = add nsw i32 %4043, 1
  store i32 %4044, ptr @test_count, align 4, !tbaa !5
  %4045 = load ptr, ptr %12, align 8, !tbaa !9
  %4046 = call i32 @setup_server_psks(ptr noundef %4045)
  %4047 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  store i32 %4046, ptr %4047, align 4
  %4048 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  %4049 = load i32, ptr %4048, align 4
  %4050 = call zeroext i1 @s2n_result_is_ok(i32 %4049)
  br i1 %4050, label %4104, label %4051

4051:                                             ; preds = %4042
  br label %4052

4052:                                             ; preds = %4051
  br label %4053

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

4060:                                             ; preds = %4053
  %4061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4062 = call i32 @fileno(ptr noundef %4061) #9
  %4063 = call i32 @isatty(i32 noundef %4062) #9
  %4064 = icmp ne i32 %4063, 0
  br i1 %4064, label %4065, label %4082

4065:                                             ; preds = %4060
  %4066 = load i32, ptr %84, align 4, !tbaa !5
  %4067 = call ptr @__errno_location() #10
  store i32 %4066, ptr %4067, align 4, !tbaa !5
  %4068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4069 = load i32, ptr @test_count, align 4, !tbaa !5
  %4070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4071 = load i32, ptr %4070, align 4, !tbaa !5
  %4072 = call ptr @s2n_strerror(i32 noundef %4071, ptr noundef @.str.4)
  %4073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4074 = load i32, ptr %4073, align 4, !tbaa !5
  %4075 = call ptr @s2n_strerror_debug(i32 noundef %4074, ptr noundef @.str.4)
  %4076 = call ptr @__errno_location() #10
  %4077 = load i32, ptr %4076, align 4, !tbaa !5
  %4078 = call ptr @strerror(i32 noundef %4077) #9
  %4079 = call ptr @__errno_location() #10
  %4080 = load i32, ptr %4079, align 4, !tbaa !5
  %4081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4068, ptr noundef @.str.2, i32 noundef %4069, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 278, ptr noundef %4072, ptr noundef %4075, ptr noundef %4078, i32 noundef %4080) #9
  br label %4099

4082:                                             ; preds = %4060, %4053
  %4083 = load i32, ptr %84, align 4, !tbaa !5
  %4084 = call ptr @__errno_location() #10
  store i32 %4083, ptr %4084, align 4, !tbaa !5
  %4085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4086 = load i32, ptr @test_count, align 4, !tbaa !5
  %4087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4088 = load i32, ptr %4087, align 4, !tbaa !5
  %4089 = call ptr @s2n_strerror(i32 noundef %4088, ptr noundef @.str.4)
  %4090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4091 = load i32, ptr %4090, align 4, !tbaa !5
  %4092 = call ptr @s2n_strerror_debug(i32 noundef %4091, ptr noundef @.str.4)
  %4093 = call ptr @__errno_location() #10
  %4094 = load i32, ptr %4093, align 4, !tbaa !5
  %4095 = call ptr @strerror(i32 noundef %4094) #9
  %4096 = call ptr @__errno_location() #10
  %4097 = load i32, ptr %4096, align 4, !tbaa !5
  %4098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4085, ptr noundef @.str.5, i32 noundef %4086, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 278, ptr noundef %4089, ptr noundef %4092, ptr noundef %4095, i32 noundef %4097) #9
  br label %4099

4099:                                             ; preds = %4082, %4065
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %4100

4100:                                             ; preds = %4099
  br label %4101

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

4102:                                             ; No predecessors!
  br label %4103

4103:                                             ; preds = %4102
  br label %4104

4104:                                             ; preds = %4103, %4042
  br label %4105

4105:                                             ; preds = %4104
  br label %4106

4106:                                             ; preds = %4105
  br label %4107

4107:                                             ; preds = %4106
  %4108 = load i32, ptr @test_count, align 4, !tbaa !5
  %4109 = add nsw i32 %4108, 1
  store i32 %4109, ptr @test_count, align 4, !tbaa !5
  %4110 = load ptr, ptr %12, align 8, !tbaa !9
  %4111 = load ptr, ptr %11, align 8, !tbaa !9
  %4112 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4110, ptr noundef %4111)
  %4113 = icmp eq i32 %4112, -1
  br i1 %4113, label %4114, label %4167

4114:                                             ; preds = %4107
  br label %4115

4115:                                             ; preds = %4114
  br label %4116

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

4123:                                             ; preds = %4116
  %4124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4125 = call i32 @fileno(ptr noundef %4124) #9
  %4126 = call i32 @isatty(i32 noundef %4125) #9
  %4127 = icmp ne i32 %4126, 0
  br i1 %4127, label %4128, label %4145

4128:                                             ; preds = %4123
  %4129 = load i32, ptr %85, align 4, !tbaa !5
  %4130 = call ptr @__errno_location() #10
  store i32 %4129, ptr %4130, align 4, !tbaa !5
  %4131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4132 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4134, ptr noundef @.str.4)
  %4136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4137 = load i32, ptr %4136, align 4, !tbaa !5
  %4138 = call ptr @s2n_strerror_debug(i32 noundef %4137, ptr noundef @.str.4)
  %4139 = call ptr @__errno_location() #10
  %4140 = load i32, ptr %4139, align 4, !tbaa !5
  %4141 = call ptr @strerror(i32 noundef %4140) #9
  %4142 = call ptr @__errno_location() #10
  %4143 = load i32, ptr %4142, align 4, !tbaa !5
  %4144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4131, ptr noundef @.str.2, i32 noundef %4132, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 281, ptr noundef %4135, ptr noundef %4138, ptr noundef %4141, i32 noundef %4143) #9
  br label %4162

4145:                                             ; preds = %4123, %4116
  %4146 = load i32, ptr %85, align 4, !tbaa !5
  %4147 = call ptr @__errno_location() #10
  store i32 %4146, ptr %4147, align 4, !tbaa !5
  %4148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4149 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4151, ptr noundef @.str.4)
  %4153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  %4155 = call ptr @s2n_strerror_debug(i32 noundef %4154, ptr noundef @.str.4)
  %4156 = call ptr @__errno_location() #10
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  %4158 = call ptr @strerror(i32 noundef %4157) #9
  %4159 = call ptr @__errno_location() #10
  %4160 = load i32, ptr %4159, align 4, !tbaa !5
  %4161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4148, ptr noundef @.str.5, i32 noundef %4149, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 281, ptr noundef %4152, ptr noundef %4155, ptr noundef %4158, i32 noundef %4160) #9
  br label %4162

4162:                                             ; preds = %4145, %4128
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %4163

4163:                                             ; preds = %4162
  br label %4164

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

4165:                                             ; No predecessors!
  br label %4166

4166:                                             ; preds = %4165
  br label %4167

4167:                                             ; preds = %4166, %4107
  br label %4168

4168:                                             ; preds = %4167
  br label %4169

4169:                                             ; preds = %4168
  br label %4170

4170:                                             ; preds = %4169
  %4171 = load i32, ptr @test_count, align 4, !tbaa !5
  %4172 = add nsw i32 %4171, 1
  store i32 %4172, ptr @test_count, align 4, !tbaa !5
  %4173 = load ptr, ptr %11, align 8, !tbaa !9
  %4174 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %4173, i32 noundef 4)
  br i1 %4174, label %4175, label %4231

4175:                                             ; preds = %4170
  %4176 = load ptr, ptr %12, align 8, !tbaa !9
  %4177 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %4176, i32 noundef 4)
  br i1 %4177, label %4178, label %4231

4178:                                             ; preds = %4175
  br label %4179

4179:                                             ; preds = %4178
  br label %4180

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

4187:                                             ; preds = %4180
  %4188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4189 = call i32 @fileno(ptr noundef %4188) #9
  %4190 = call i32 @isatty(i32 noundef %4189) #9
  %4191 = icmp ne i32 %4190, 0
  br i1 %4191, label %4192, label %4209

4192:                                             ; preds = %4187
  %4193 = load i32, ptr %86, align 4, !tbaa !5
  %4194 = call ptr @__errno_location() #10
  store i32 %4193, ptr %4194, align 4, !tbaa !5
  %4195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4196 = load i32, ptr @test_count, align 4, !tbaa !5
  %4197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4198 = load i32, ptr %4197, align 4, !tbaa !5
  %4199 = call ptr @s2n_strerror(i32 noundef %4198, ptr noundef @.str.4)
  %4200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4201 = load i32, ptr %4200, align 4, !tbaa !5
  %4202 = call ptr @s2n_strerror_debug(i32 noundef %4201, ptr noundef @.str.4)
  %4203 = call ptr @__errno_location() #10
  %4204 = load i32, ptr %4203, align 4, !tbaa !5
  %4205 = call ptr @strerror(i32 noundef %4204) #9
  %4206 = call ptr @__errno_location() #10
  %4207 = load i32, ptr %4206, align 4, !tbaa !5
  %4208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4195, ptr noundef @.str.2, i32 noundef %4196, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 284, ptr noundef %4199, ptr noundef %4202, ptr noundef %4205, i32 noundef %4207) #9
  br label %4226

4209:                                             ; preds = %4187, %4180
  %4210 = load i32, ptr %86, align 4, !tbaa !5
  %4211 = call ptr @__errno_location() #10
  store i32 %4210, ptr %4211, align 4, !tbaa !5
  %4212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4213 = load i32, ptr @test_count, align 4, !tbaa !5
  %4214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @s2n_strerror(i32 noundef %4215, ptr noundef @.str.4)
  %4217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call ptr @s2n_strerror_debug(i32 noundef %4218, ptr noundef @.str.4)
  %4220 = call ptr @__errno_location() #10
  %4221 = load i32, ptr %4220, align 4, !tbaa !5
  %4222 = call ptr @strerror(i32 noundef %4221) #9
  %4223 = call ptr @__errno_location() #10
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4212, ptr noundef @.str.5, i32 noundef %4213, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 284, ptr noundef %4216, ptr noundef %4219, ptr noundef %4222, i32 noundef %4224) #9
  br label %4226

4226:                                             ; preds = %4209, %4192
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %4227

4227:                                             ; preds = %4226
  br label %4228

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

4229:                                             ; No predecessors!
  br label %4230

4230:                                             ; preds = %4229
  br label %4231

4231:                                             ; preds = %4230, %4175, %4170
  br label %4232

4232:                                             ; preds = %4231
  br label %4233

4233:                                             ; preds = %4232
  br label %4234

4234:                                             ; preds = %4233
  %4235 = load i32, ptr @test_count, align 4, !tbaa !5
  %4236 = add nsw i32 %4235, 1
  store i32 %4236, ptr @test_count, align 4, !tbaa !5
  %4237 = load ptr, ptr %11, align 8, !tbaa !9
  %4238 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %4237, i32 noundef 2)
  br i1 %4238, label %4239, label %4295

4239:                                             ; preds = %4234
  %4240 = load ptr, ptr %12, align 8, !tbaa !9
  %4241 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %4240, i32 noundef 2)
  br i1 %4241, label %4242, label %4295

4242:                                             ; preds = %4239
  br label %4243

4243:                                             ; preds = %4242
  br label %4244

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

4251:                                             ; preds = %4244
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4253 = call i32 @fileno(ptr noundef %4252) #9
  %4254 = call i32 @isatty(i32 noundef %4253) #9
  %4255 = icmp ne i32 %4254, 0
  br i1 %4255, label %4256, label %4273

4256:                                             ; preds = %4251
  %4257 = load i32, ptr %87, align 4, !tbaa !5
  %4258 = call ptr @__errno_location() #10
  store i32 %4257, ptr %4258, align 4, !tbaa !5
  %4259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4262 = load i32, ptr %4261, align 4, !tbaa !5
  %4263 = call ptr @s2n_strerror(i32 noundef %4262, ptr noundef @.str.4)
  %4264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror_debug(i32 noundef %4265, ptr noundef @.str.4)
  %4267 = call ptr @__errno_location() #10
  %4268 = load i32, ptr %4267, align 4, !tbaa !5
  %4269 = call ptr @strerror(i32 noundef %4268) #9
  %4270 = call ptr @__errno_location() #10
  %4271 = load i32, ptr %4270, align 4, !tbaa !5
  %4272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4259, ptr noundef @.str.2, i32 noundef %4260, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4263, ptr noundef %4266, ptr noundef %4269, i32 noundef %4271) #9
  br label %4290

4273:                                             ; preds = %4251, %4244
  %4274 = load i32, ptr %87, align 4, !tbaa !5
  %4275 = call ptr @__errno_location() #10
  store i32 %4274, ptr %4275, align 4, !tbaa !5
  %4276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4277 = load i32, ptr @test_count, align 4, !tbaa !5
  %4278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @s2n_strerror(i32 noundef %4279, ptr noundef @.str.4)
  %4281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call ptr @s2n_strerror_debug(i32 noundef %4282, ptr noundef @.str.4)
  %4284 = call ptr @__errno_location() #10
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = call ptr @strerror(i32 noundef %4285) #9
  %4287 = call ptr @__errno_location() #10
  %4288 = load i32, ptr %4287, align 4, !tbaa !5
  %4289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4276, ptr noundef @.str.5, i32 noundef %4277, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4280, ptr noundef %4283, ptr noundef %4286, i32 noundef %4288) #9
  br label %4290

4290:                                             ; preds = %4273, %4256
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %4291

4291:                                             ; preds = %4290
  br label %4292

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

4293:                                             ; No predecessors!
  br label %4294

4294:                                             ; preds = %4293
  br label %4295

4295:                                             ; preds = %4294, %4239, %4234
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296
  br label %4298

4298:                                             ; preds = %4297
  %4299 = load i32, ptr @test_count, align 4, !tbaa !5
  %4300 = add nsw i32 %4299, 1
  store i32 %4300, ptr @test_count, align 4, !tbaa !5
  %4301 = load ptr, ptr %12, align 8, !tbaa !9
  %4302 = call i32 @validate_chosen_psk(ptr noundef %4301, ptr noundef @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %4303 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %4302, ptr %4303, align 4
  %4304 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  %4305 = load i32, ptr %4304, align 4
  %4306 = call zeroext i1 @s2n_result_is_ok(i32 %4305)
  br i1 %4306, label %4360, label %4307

4307:                                             ; preds = %4298
  br label %4308

4308:                                             ; preds = %4307
  br label %4309

4309:                                             ; preds = %4308
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %4310 = call ptr @__errno_location() #10
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  store i32 %4311, ptr %89, align 4, !tbaa !5
  %4312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4313 = call i32 @s2n_print_stacktrace(ptr noundef %4312)
  %4314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4315 = trunc i8 %4314 to i1
  br i1 %4315, label %4316, label %4338

4316:                                             ; preds = %4309
  %4317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4318 = call i32 @fileno(ptr noundef %4317) #9
  %4319 = call i32 @isatty(i32 noundef %4318) #9
  %4320 = icmp ne i32 %4319, 0
  br i1 %4320, label %4321, label %4338

4321:                                             ; preds = %4316
  %4322 = load i32, ptr %89, align 4, !tbaa !5
  %4323 = call ptr @__errno_location() #10
  store i32 %4322, ptr %4323, align 4, !tbaa !5
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = load i32, ptr @test_count, align 4, !tbaa !5
  %4326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  %4328 = call ptr @s2n_strerror(i32 noundef %4327, ptr noundef @.str.4)
  %4329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4330 = load i32, ptr %4329, align 4, !tbaa !5
  %4331 = call ptr @s2n_strerror_debug(i32 noundef %4330, ptr noundef @.str.4)
  %4332 = call ptr @__errno_location() #10
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call ptr @strerror(i32 noundef %4333) #9
  %4335 = call ptr @__errno_location() #10
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  %4337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4324, ptr noundef @.str.2, i32 noundef %4325, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 289, ptr noundef %4328, ptr noundef %4331, ptr noundef %4334, i32 noundef %4336) #9
  br label %4355

4338:                                             ; preds = %4316, %4309
  %4339 = load i32, ptr %89, align 4, !tbaa !5
  %4340 = call ptr @__errno_location() #10
  store i32 %4339, ptr %4340, align 4, !tbaa !5
  %4341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4342 = load i32, ptr @test_count, align 4, !tbaa !5
  %4343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4344 = load i32, ptr %4343, align 4, !tbaa !5
  %4345 = call ptr @s2n_strerror(i32 noundef %4344, ptr noundef @.str.4)
  %4346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4347 = load i32, ptr %4346, align 4, !tbaa !5
  %4348 = call ptr @s2n_strerror_debug(i32 noundef %4347, ptr noundef @.str.4)
  %4349 = call ptr @__errno_location() #10
  %4350 = load i32, ptr %4349, align 4, !tbaa !5
  %4351 = call ptr @strerror(i32 noundef %4350) #9
  %4352 = call ptr @__errno_location() #10
  %4353 = load i32, ptr %4352, align 4, !tbaa !5
  %4354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4341, ptr noundef @.str.5, i32 noundef %4342, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 289, ptr noundef %4345, ptr noundef %4348, ptr noundef %4351, i32 noundef %4353) #9
  br label %4355

4355:                                             ; preds = %4338, %4321
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %4356

4356:                                             ; preds = %4355
  br label %4357

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

4358:                                             ; No predecessors!
  br label %4359

4359:                                             ; preds = %4358
  br label %4360

4360:                                             ; preds = %4359, %4298
  br label %4361

4361:                                             ; preds = %4360
  br label %4362

4362:                                             ; preds = %4361
  br label %4363

4363:                                             ; preds = %4362
  %4364 = load i32, ptr @test_count, align 4, !tbaa !5
  %4365 = add nsw i32 %4364, 1
  store i32 %4365, ptr @test_count, align 4, !tbaa !5
  %4366 = load ptr, ptr %12, align 8, !tbaa !9
  %4367 = load ptr, ptr %11, align 8, !tbaa !9
  %4368 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %4366, ptr noundef %4367)
  %4369 = icmp eq i32 %4368, -1
  br i1 %4369, label %4370, label %4423

4370:                                             ; preds = %4363
  br label %4371

4371:                                             ; preds = %4370
  br label %4372

4372:                                             ; preds = %4371
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %4373 = call ptr @__errno_location() #10
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  store i32 %4374, ptr %90, align 4, !tbaa !5
  %4375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4376 = call i32 @s2n_print_stacktrace(ptr noundef %4375)
  %4377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4378 = trunc i8 %4377 to i1
  br i1 %4378, label %4379, label %4401

4379:                                             ; preds = %4372
  %4380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4381 = call i32 @fileno(ptr noundef %4380) #9
  %4382 = call i32 @isatty(i32 noundef %4381) #9
  %4383 = icmp ne i32 %4382, 0
  br i1 %4383, label %4384, label %4401

4384:                                             ; preds = %4379
  %4385 = load i32, ptr %90, align 4, !tbaa !5
  %4386 = call ptr @__errno_location() #10
  store i32 %4385, ptr %4386, align 4, !tbaa !5
  %4387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4388 = load i32, ptr @test_count, align 4, !tbaa !5
  %4389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4390 = load i32, ptr %4389, align 4, !tbaa !5
  %4391 = call ptr @s2n_strerror(i32 noundef %4390, ptr noundef @.str.4)
  %4392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4393 = load i32, ptr %4392, align 4, !tbaa !5
  %4394 = call ptr @s2n_strerror_debug(i32 noundef %4393, ptr noundef @.str.4)
  %4395 = call ptr @__errno_location() #10
  %4396 = load i32, ptr %4395, align 4, !tbaa !5
  %4397 = call ptr @strerror(i32 noundef %4396) #9
  %4398 = call ptr @__errno_location() #10
  %4399 = load i32, ptr %4398, align 4, !tbaa !5
  %4400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4387, ptr noundef @.str.2, i32 noundef %4388, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 291, ptr noundef %4391, ptr noundef %4394, ptr noundef %4397, i32 noundef %4399) #9
  br label %4418

4401:                                             ; preds = %4379, %4372
  %4402 = load i32, ptr %90, align 4, !tbaa !5
  %4403 = call ptr @__errno_location() #10
  store i32 %4402, ptr %4403, align 4, !tbaa !5
  %4404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4405 = load i32, ptr @test_count, align 4, !tbaa !5
  %4406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  %4408 = call ptr @s2n_strerror(i32 noundef %4407, ptr noundef @.str.4)
  %4409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call ptr @s2n_strerror_debug(i32 noundef %4410, ptr noundef @.str.4)
  %4412 = call ptr @__errno_location() #10
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call ptr @strerror(i32 noundef %4413) #9
  %4415 = call ptr @__errno_location() #10
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4404, ptr noundef @.str.5, i32 noundef %4405, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 291, ptr noundef %4408, ptr noundef %4411, ptr noundef %4414, i32 noundef %4416) #9
  br label %4418

4418:                                             ; preds = %4401, %4384
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %4419

4419:                                             ; preds = %4418
  br label %4420

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

4421:                                             ; No predecessors!
  br label %4422

4422:                                             ; preds = %4421
  br label %4423

4423:                                             ; preds = %4422, %4363
  br label %4424

4424:                                             ; preds = %4423
  br label %4425

4425:                                             ; preds = %4424
  br label %4426

4426:                                             ; preds = %4425
  %4427 = load i32, ptr @test_count, align 4, !tbaa !5
  %4428 = add nsw i32 %4427, 1
  store i32 %4428, ptr @test_count, align 4, !tbaa !5
  %4429 = load ptr, ptr %11, align 8, !tbaa !9
  %4430 = call i32 @s2n_connection_wipe(ptr noundef %4429)
  %4431 = icmp eq i32 %4430, -1
  br i1 %4431, label %4432, label %4485

4432:                                             ; preds = %4426
  br label %4433

4433:                                             ; preds = %4432
  br label %4434

4434:                                             ; preds = %4433
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %4435 = call ptr @__errno_location() #10
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  store i32 %4436, ptr %91, align 4, !tbaa !5
  %4437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4438 = call i32 @s2n_print_stacktrace(ptr noundef %4437)
  %4439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4440 = trunc i8 %4439 to i1
  br i1 %4440, label %4441, label %4463

4441:                                             ; preds = %4434
  %4442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4443 = call i32 @fileno(ptr noundef %4442) #9
  %4444 = call i32 @isatty(i32 noundef %4443) #9
  %4445 = icmp ne i32 %4444, 0
  br i1 %4445, label %4446, label %4463

4446:                                             ; preds = %4441
  %4447 = load i32, ptr %91, align 4, !tbaa !5
  %4448 = call ptr @__errno_location() #10
  store i32 %4447, ptr %4448, align 4, !tbaa !5
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = load i32, ptr @test_count, align 4, !tbaa !5
  %4451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call ptr @s2n_strerror(i32 noundef %4452, ptr noundef @.str.4)
  %4454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call ptr @s2n_strerror_debug(i32 noundef %4455, ptr noundef @.str.4)
  %4457 = call ptr @__errno_location() #10
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  %4459 = call ptr @strerror(i32 noundef %4458) #9
  %4460 = call ptr @__errno_location() #10
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4449, ptr noundef @.str.2, i32 noundef %4450, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 293, ptr noundef %4453, ptr noundef %4456, ptr noundef %4459, i32 noundef %4461) #9
  br label %4480

4463:                                             ; preds = %4441, %4434
  %4464 = load i32, ptr %91, align 4, !tbaa !5
  %4465 = call ptr @__errno_location() #10
  store i32 %4464, ptr %4465, align 4, !tbaa !5
  %4466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4467 = load i32, ptr @test_count, align 4, !tbaa !5
  %4468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4469 = load i32, ptr %4468, align 4, !tbaa !5
  %4470 = call ptr @s2n_strerror(i32 noundef %4469, ptr noundef @.str.4)
  %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_debug(i32 noundef %4472, ptr noundef @.str.4)
  %4474 = call ptr @__errno_location() #10
  %4475 = load i32, ptr %4474, align 4, !tbaa !5
  %4476 = call ptr @strerror(i32 noundef %4475) #9
  %4477 = call ptr @__errno_location() #10
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  %4479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4466, ptr noundef @.str.5, i32 noundef %4467, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 293, ptr noundef %4470, ptr noundef %4473, ptr noundef %4476, i32 noundef %4478) #9
  br label %4480

4480:                                             ; preds = %4463, %4446
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %4481

4481:                                             ; preds = %4480
  br label %4482

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

4483:                                             ; No predecessors!
  br label %4484

4484:                                             ; preds = %4483
  br label %4485

4485:                                             ; preds = %4484, %4426
  br label %4486

4486:                                             ; preds = %4485
  br label %4487

4487:                                             ; preds = %4486
  br label %4488

4488:                                             ; preds = %4487
  %4489 = load i32, ptr @test_count, align 4, !tbaa !5
  %4490 = add nsw i32 %4489, 1
  store i32 %4490, ptr @test_count, align 4, !tbaa !5
  %4491 = load ptr, ptr %12, align 8, !tbaa !9
  %4492 = call i32 @s2n_connection_wipe(ptr noundef %4491)
  %4493 = icmp eq i32 %4492, -1
  br i1 %4493, label %4494, label %4547

4494:                                             ; preds = %4488
  br label %4495

4495:                                             ; preds = %4494
  br label %4496

4496:                                             ; preds = %4495
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %4497 = call ptr @__errno_location() #10
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  store i32 %4498, ptr %92, align 4, !tbaa !5
  %4499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4500 = call i32 @s2n_print_stacktrace(ptr noundef %4499)
  %4501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4502 = trunc i8 %4501 to i1
  br i1 %4502, label %4503, label %4525

4503:                                             ; preds = %4496
  %4504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4505 = call i32 @fileno(ptr noundef %4504) #9
  %4506 = call i32 @isatty(i32 noundef %4505) #9
  %4507 = icmp ne i32 %4506, 0
  br i1 %4507, label %4508, label %4525

4508:                                             ; preds = %4503
  %4509 = load i32, ptr %92, align 4, !tbaa !5
  %4510 = call ptr @__errno_location() #10
  store i32 %4509, ptr %4510, align 4, !tbaa !5
  %4511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4512 = load i32, ptr @test_count, align 4, !tbaa !5
  %4513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call ptr @s2n_strerror(i32 noundef %4514, ptr noundef @.str.4)
  %4516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4517 = load i32, ptr %4516, align 4, !tbaa !5
  %4518 = call ptr @s2n_strerror_debug(i32 noundef %4517, ptr noundef @.str.4)
  %4519 = call ptr @__errno_location() #10
  %4520 = load i32, ptr %4519, align 4, !tbaa !5
  %4521 = call ptr @strerror(i32 noundef %4520) #9
  %4522 = call ptr @__errno_location() #10
  %4523 = load i32, ptr %4522, align 4, !tbaa !5
  %4524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4511, ptr noundef @.str.2, i32 noundef %4512, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 294, ptr noundef %4515, ptr noundef %4518, ptr noundef %4521, i32 noundef %4523) #9
  br label %4542

4525:                                             ; preds = %4503, %4496
  %4526 = load i32, ptr %92, align 4, !tbaa !5
  %4527 = call ptr @__errno_location() #10
  store i32 %4526, ptr %4527, align 4, !tbaa !5
  %4528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4529 = load i32, ptr @test_count, align 4, !tbaa !5
  %4530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4531 = load i32, ptr %4530, align 4, !tbaa !5
  %4532 = call ptr @s2n_strerror(i32 noundef %4531, ptr noundef @.str.4)
  %4533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4534 = load i32, ptr %4533, align 4, !tbaa !5
  %4535 = call ptr @s2n_strerror_debug(i32 noundef %4534, ptr noundef @.str.4)
  %4536 = call ptr @__errno_location() #10
  %4537 = load i32, ptr %4536, align 4, !tbaa !5
  %4538 = call ptr @strerror(i32 noundef %4537) #9
  %4539 = call ptr @__errno_location() #10
  %4540 = load i32, ptr %4539, align 4, !tbaa !5
  %4541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4528, ptr noundef @.str.5, i32 noundef %4529, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 294, ptr noundef %4532, ptr noundef %4535, ptr noundef %4538, i32 noundef %4540) #9
  br label %4542

4542:                                             ; preds = %4525, %4508
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %4543

4543:                                             ; preds = %4542
  br label %4544

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

4545:                                             ; No predecessors!
  br label %4546

4546:                                             ; preds = %4545
  br label %4547

4547:                                             ; preds = %4546, %4488
  br label %4548

4548:                                             ; preds = %4547
  br label %4549

4549:                                             ; preds = %4548
  br label %4550

4550:                                             ; preds = %4549
  %4551 = load i32, ptr @test_count, align 4, !tbaa !5
  %4552 = add nsw i32 %4551, 1
  store i32 %4552, ptr @test_count, align 4, !tbaa !5
  %4553 = load ptr, ptr %15, align 8, !tbaa !9
  %4554 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %4553, ptr noundef @s2n_client_hello_no_op_cb, ptr noundef null)
  %4555 = icmp eq i32 %4554, -1
  br i1 %4555, label %4556, label %4609

4556:                                             ; preds = %4550
  br label %4557

4557:                                             ; preds = %4556
  br label %4558

4558:                                             ; preds = %4557
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %4559 = call ptr @__errno_location() #10
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  store i32 %4560, ptr %93, align 4, !tbaa !5
  %4561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4562 = call i32 @s2n_print_stacktrace(ptr noundef %4561)
  %4563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4564 = trunc i8 %4563 to i1
  br i1 %4564, label %4565, label %4587

4565:                                             ; preds = %4558
  %4566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4567 = call i32 @fileno(ptr noundef %4566) #9
  %4568 = call i32 @isatty(i32 noundef %4567) #9
  %4569 = icmp ne i32 %4568, 0
  br i1 %4569, label %4570, label %4587

4570:                                             ; preds = %4565
  %4571 = load i32, ptr %93, align 4, !tbaa !5
  %4572 = call ptr @__errno_location() #10
  store i32 %4571, ptr %4572, align 4, !tbaa !5
  %4573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4574 = load i32, ptr @test_count, align 4, !tbaa !5
  %4575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = call ptr @s2n_strerror(i32 noundef %4576, ptr noundef @.str.4)
  %4578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4579 = load i32, ptr %4578, align 4, !tbaa !5
  %4580 = call ptr @s2n_strerror_debug(i32 noundef %4579, ptr noundef @.str.4)
  %4581 = call ptr @__errno_location() #10
  %4582 = load i32, ptr %4581, align 4, !tbaa !5
  %4583 = call ptr @strerror(i32 noundef %4582) #9
  %4584 = call ptr @__errno_location() #10
  %4585 = load i32, ptr %4584, align 4, !tbaa !5
  %4586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4573, ptr noundef @.str.2, i32 noundef %4574, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4577, ptr noundef %4580, ptr noundef %4583, i32 noundef %4585) #9
  br label %4604

4587:                                             ; preds = %4565, %4558
  %4588 = load i32, ptr %93, align 4, !tbaa !5
  %4589 = call ptr @__errno_location() #10
  store i32 %4588, ptr %4589, align 4, !tbaa !5
  %4590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4591 = load i32, ptr @test_count, align 4, !tbaa !5
  %4592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4593 = load i32, ptr %4592, align 4, !tbaa !5
  %4594 = call ptr @s2n_strerror(i32 noundef %4593, ptr noundef @.str.4)
  %4595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4596 = load i32, ptr %4595, align 4, !tbaa !5
  %4597 = call ptr @s2n_strerror_debug(i32 noundef %4596, ptr noundef @.str.4)
  %4598 = call ptr @__errno_location() #10
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  %4600 = call ptr @strerror(i32 noundef %4599) #9
  %4601 = call ptr @__errno_location() #10
  %4602 = load i32, ptr %4601, align 4, !tbaa !5
  %4603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4590, ptr noundef @.str.5, i32 noundef %4591, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4594, ptr noundef %4597, ptr noundef %4600, i32 noundef %4602) #9
  br label %4604

4604:                                             ; preds = %4587, %4570
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %4605

4605:                                             ; preds = %4604
  br label %4606

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

4607:                                             ; No predecessors!
  br label %4608

4608:                                             ; preds = %4607
  br label %4609

4609:                                             ; preds = %4608, %4550
  br label %4610

4610:                                             ; preds = %4609
  br label %4611

4611:                                             ; preds = %4610
  br label %4612

4612:                                             ; preds = %4611
  %4613 = load i32, ptr @test_count, align 4, !tbaa !5
  %4614 = add nsw i32 %4613, 1
  store i32 %4614, ptr @test_count, align 4, !tbaa !5
  %4615 = load ptr, ptr %15, align 8, !tbaa !9
  %4616 = call i32 @s2n_config_set_client_hello_cb_mode(ptr noundef %4615, i32 noundef 1)
  %4617 = icmp eq i32 %4616, -1
  br i1 %4617, label %4618, label %4671

4618:                                             ; preds = %4612
  br label %4619

4619:                                             ; preds = %4618
  br label %4620

4620:                                             ; preds = %4619
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %4621 = call ptr @__errno_location() #10
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  store i32 %4622, ptr %94, align 4, !tbaa !5
  %4623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4624 = call i32 @s2n_print_stacktrace(ptr noundef %4623)
  %4625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4626 = trunc i8 %4625 to i1
  br i1 %4626, label %4627, label %4649

4627:                                             ; preds = %4620
  %4628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4629 = call i32 @fileno(ptr noundef %4628) #9
  %4630 = call i32 @isatty(i32 noundef %4629) #9
  %4631 = icmp ne i32 %4630, 0
  br i1 %4631, label %4632, label %4649

4632:                                             ; preds = %4627
  %4633 = load i32, ptr %94, align 4, !tbaa !5
  %4634 = call ptr @__errno_location() #10
  store i32 %4633, ptr %4634, align 4, !tbaa !5
  %4635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4636 = load i32, ptr @test_count, align 4, !tbaa !5
  %4637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call ptr @s2n_strerror(i32 noundef %4638, ptr noundef @.str.4)
  %4640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call ptr @s2n_strerror_debug(i32 noundef %4641, ptr noundef @.str.4)
  %4643 = call ptr @__errno_location() #10
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call ptr @strerror(i32 noundef %4644) #9
  %4646 = call ptr @__errno_location() #10
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  %4648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4635, ptr noundef @.str.2, i32 noundef %4636, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 300, ptr noundef %4639, ptr noundef %4642, ptr noundef %4645, i32 noundef %4647) #9
  br label %4666

4649:                                             ; preds = %4627, %4620
  %4650 = load i32, ptr %94, align 4, !tbaa !5
  %4651 = call ptr @__errno_location() #10
  store i32 %4650, ptr %4651, align 4, !tbaa !5
  %4652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4653 = load i32, ptr @test_count, align 4, !tbaa !5
  %4654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = call ptr @s2n_strerror(i32 noundef %4655, ptr noundef @.str.4)
  %4657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4658 = load i32, ptr %4657, align 4, !tbaa !5
  %4659 = call ptr @s2n_strerror_debug(i32 noundef %4658, ptr noundef @.str.4)
  %4660 = call ptr @__errno_location() #10
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call ptr @strerror(i32 noundef %4661) #9
  %4663 = call ptr @__errno_location() #10
  %4664 = load i32, ptr %4663, align 4, !tbaa !5
  %4665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4652, ptr noundef @.str.5, i32 noundef %4653, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 300, ptr noundef %4656, ptr noundef %4659, ptr noundef %4662, i32 noundef %4664) #9
  br label %4666

4666:                                             ; preds = %4649, %4632
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

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

4669:                                             ; No predecessors!
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670, %4612
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

4673:                                             ; preds = %4672
  br label %4674

4674:                                             ; preds = %4673
  %4675 = load i32, ptr @test_count, align 4, !tbaa !5
  %4676 = add nsw i32 %4675, 1
  store i32 %4676, ptr @test_count, align 4, !tbaa !5
  %4677 = load ptr, ptr %11, align 8, !tbaa !9
  %4678 = load ptr, ptr %15, align 8, !tbaa !9
  %4679 = call i32 @s2n_connection_set_config(ptr noundef %4677, ptr noundef %4678)
  %4680 = icmp eq i32 %4679, -1
  br i1 %4680, label %4681, label %4734

4681:                                             ; preds = %4674
  br label %4682

4682:                                             ; preds = %4681
  br label %4683

4683:                                             ; preds = %4682
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %4684 = call ptr @__errno_location() #10
  %4685 = load i32, ptr %4684, align 4, !tbaa !5
  store i32 %4685, ptr %95, align 4, !tbaa !5
  %4686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4687 = call i32 @s2n_print_stacktrace(ptr noundef %4686)
  %4688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4689 = trunc i8 %4688 to i1
  br i1 %4689, label %4690, label %4712

4690:                                             ; preds = %4683
  %4691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4692 = call i32 @fileno(ptr noundef %4691) #9
  %4693 = call i32 @isatty(i32 noundef %4692) #9
  %4694 = icmp ne i32 %4693, 0
  br i1 %4694, label %4695, label %4712

4695:                                             ; preds = %4690
  %4696 = load i32, ptr %95, align 4, !tbaa !5
  %4697 = call ptr @__errno_location() #10
  store i32 %4696, ptr %4697, align 4, !tbaa !5
  %4698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4699 = load i32, ptr @test_count, align 4, !tbaa !5
  %4700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4701 = load i32, ptr %4700, align 4, !tbaa !5
  %4702 = call ptr @s2n_strerror(i32 noundef %4701, ptr noundef @.str.4)
  %4703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4704 = load i32, ptr %4703, align 4, !tbaa !5
  %4705 = call ptr @s2n_strerror_debug(i32 noundef %4704, ptr noundef @.str.4)
  %4706 = call ptr @__errno_location() #10
  %4707 = load i32, ptr %4706, align 4, !tbaa !5
  %4708 = call ptr @strerror(i32 noundef %4707) #9
  %4709 = call ptr @__errno_location() #10
  %4710 = load i32, ptr %4709, align 4, !tbaa !5
  %4711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4698, ptr noundef @.str.2, i32 noundef %4699, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4702, ptr noundef %4705, ptr noundef %4708, i32 noundef %4710) #9
  br label %4729

4712:                                             ; preds = %4690, %4683
  %4713 = load i32, ptr %95, align 4, !tbaa !5
  %4714 = call ptr @__errno_location() #10
  store i32 %4713, ptr %4714, align 4, !tbaa !5
  %4715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4716 = load i32, ptr @test_count, align 4, !tbaa !5
  %4717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4718 = load i32, ptr %4717, align 4, !tbaa !5
  %4719 = call ptr @s2n_strerror(i32 noundef %4718, ptr noundef @.str.4)
  %4720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4721 = load i32, ptr %4720, align 4, !tbaa !5
  %4722 = call ptr @s2n_strerror_debug(i32 noundef %4721, ptr noundef @.str.4)
  %4723 = call ptr @__errno_location() #10
  %4724 = load i32, ptr %4723, align 4, !tbaa !5
  %4725 = call ptr @strerror(i32 noundef %4724) #9
  %4726 = call ptr @__errno_location() #10
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  %4728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4715, ptr noundef @.str.5, i32 noundef %4716, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4719, ptr noundef %4722, ptr noundef %4725, i32 noundef %4727) #9
  br label %4729

4729:                                             ; preds = %4712, %4695
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4730

4730:                                             ; preds = %4729
  br label %4731

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

4732:                                             ; No predecessors!
  br label %4733

4733:                                             ; preds = %4732
  br label %4734

4734:                                             ; preds = %4733, %4674
  br label %4735

4735:                                             ; preds = %4734
  br label %4736

4736:                                             ; preds = %4735
  br label %4737

4737:                                             ; preds = %4736
  %4738 = load i32, ptr @test_count, align 4, !tbaa !5
  %4739 = add nsw i32 %4738, 1
  store i32 %4739, ptr @test_count, align 4, !tbaa !5
  %4740 = load ptr, ptr %12, align 8, !tbaa !9
  %4741 = load ptr, ptr %15, align 8, !tbaa !9
  %4742 = call i32 @s2n_connection_set_config(ptr noundef %4740, ptr noundef %4741)
  %4743 = icmp eq i32 %4742, -1
  br i1 %4743, label %4744, label %4797

4744:                                             ; preds = %4737
  br label %4745

4745:                                             ; preds = %4744
  br label %4746

4746:                                             ; preds = %4745
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %4747 = call ptr @__errno_location() #10
  %4748 = load i32, ptr %4747, align 4, !tbaa !5
  store i32 %4748, ptr %96, align 4, !tbaa !5
  %4749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4750 = call i32 @s2n_print_stacktrace(ptr noundef %4749)
  %4751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4752 = trunc i8 %4751 to i1
  br i1 %4752, label %4753, label %4775

4753:                                             ; preds = %4746
  %4754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4755 = call i32 @fileno(ptr noundef %4754) #9
  %4756 = call i32 @isatty(i32 noundef %4755) #9
  %4757 = icmp ne i32 %4756, 0
  br i1 %4757, label %4758, label %4775

4758:                                             ; preds = %4753
  %4759 = load i32, ptr %96, align 4, !tbaa !5
  %4760 = call ptr @__errno_location() #10
  store i32 %4759, ptr %4760, align 4, !tbaa !5
  %4761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4762 = load i32, ptr @test_count, align 4, !tbaa !5
  %4763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @s2n_strerror(i32 noundef %4764, ptr noundef @.str.4)
  %4766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call ptr @s2n_strerror_debug(i32 noundef %4767, ptr noundef @.str.4)
  %4769 = call ptr @__errno_location() #10
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call ptr @strerror(i32 noundef %4770) #9
  %4772 = call ptr @__errno_location() #10
  %4773 = load i32, ptr %4772, align 4, !tbaa !5
  %4774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4761, ptr noundef @.str.2, i32 noundef %4762, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4765, ptr noundef %4768, ptr noundef %4771, i32 noundef %4773) #9
  br label %4792

4775:                                             ; preds = %4753, %4746
  %4776 = load i32, ptr %96, align 4, !tbaa !5
  %4777 = call ptr @__errno_location() #10
  store i32 %4776, ptr %4777, align 4, !tbaa !5
  %4778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4779 = load i32, ptr @test_count, align 4, !tbaa !5
  %4780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call ptr @s2n_strerror(i32 noundef %4781, ptr noundef @.str.4)
  %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_debug(i32 noundef %4784, ptr noundef @.str.4)
  %4786 = call ptr @__errno_location() #10
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call ptr @strerror(i32 noundef %4787) #9
  %4789 = call ptr @__errno_location() #10
  %4790 = load i32, ptr %4789, align 4, !tbaa !5
  %4791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4778, ptr noundef @.str.5, i32 noundef %4779, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4782, ptr noundef %4785, ptr noundef %4788, i32 noundef %4790) #9
  br label %4792

4792:                                             ; preds = %4775, %4758
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %4793

4793:                                             ; preds = %4792
  br label %4794

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

4795:                                             ; No predecessors!
  br label %4796

4796:                                             ; preds = %4795
  br label %4797

4797:                                             ; preds = %4796, %4737
  br label %4798

4798:                                             ; preds = %4797
  br label %4799

4799:                                             ; preds = %4798
  br label %4800

4800:                                             ; preds = %4799
  %4801 = load i32, ptr @test_count, align 4, !tbaa !5
  %4802 = add nsw i32 %4801, 1
  store i32 %4802, ptr @test_count, align 4, !tbaa !5
  %4803 = load ptr, ptr %11, align 8, !tbaa !9
  %4804 = call i32 @s2n_connection_set_io_pair(ptr noundef %4803, ptr noundef %26)
  %4805 = icmp eq i32 %4804, -1
  br i1 %4805, label %4806, label %4859

4806:                                             ; preds = %4800
  br label %4807

4807:                                             ; preds = %4806
  br label %4808

4808:                                             ; preds = %4807
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %4809 = call ptr @__errno_location() #10
  %4810 = load i32, ptr %4809, align 4, !tbaa !5
  store i32 %4810, ptr %97, align 4, !tbaa !5
  %4811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4812 = call i32 @s2n_print_stacktrace(ptr noundef %4811)
  %4813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4814 = trunc i8 %4813 to i1
  br i1 %4814, label %4815, label %4837

4815:                                             ; preds = %4808
  %4816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4817 = call i32 @fileno(ptr noundef %4816) #9
  %4818 = call i32 @isatty(i32 noundef %4817) #9
  %4819 = icmp ne i32 %4818, 0
  br i1 %4819, label %4820, label %4837

4820:                                             ; preds = %4815
  %4821 = load i32, ptr %97, align 4, !tbaa !5
  %4822 = call ptr @__errno_location() #10
  store i32 %4821, ptr %4822, align 4, !tbaa !5
  %4823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4824 = load i32, ptr @test_count, align 4, !tbaa !5
  %4825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call ptr @s2n_strerror(i32 noundef %4826, ptr noundef @.str.4)
  %4828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4829 = load i32, ptr %4828, align 4, !tbaa !5
  %4830 = call ptr @s2n_strerror_debug(i32 noundef %4829, ptr noundef @.str.4)
  %4831 = call ptr @__errno_location() #10
  %4832 = load i32, ptr %4831, align 4, !tbaa !5
  %4833 = call ptr @strerror(i32 noundef %4832) #9
  %4834 = call ptr @__errno_location() #10
  %4835 = load i32, ptr %4834, align 4, !tbaa !5
  %4836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4823, ptr noundef @.str.2, i32 noundef %4824, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4827, ptr noundef %4830, ptr noundef %4833, i32 noundef %4835) #9
  br label %4854

4837:                                             ; preds = %4815, %4808
  %4838 = load i32, ptr %97, align 4, !tbaa !5
  %4839 = call ptr @__errno_location() #10
  store i32 %4838, ptr %4839, align 4, !tbaa !5
  %4840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4841 = load i32, ptr @test_count, align 4, !tbaa !5
  %4842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  %4844 = call ptr @s2n_strerror(i32 noundef %4843, ptr noundef @.str.4)
  %4845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  %4847 = call ptr @s2n_strerror_debug(i32 noundef %4846, ptr noundef @.str.4)
  %4848 = call ptr @__errno_location() #10
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call ptr @strerror(i32 noundef %4849) #9
  %4851 = call ptr @__errno_location() #10
  %4852 = load i32, ptr %4851, align 4, !tbaa !5
  %4853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4840, ptr noundef @.str.5, i32 noundef %4841, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4844, ptr noundef %4847, ptr noundef %4850, i32 noundef %4852) #9
  br label %4854

4854:                                             ; preds = %4837, %4820
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4855

4855:                                             ; preds = %4854
  br label %4856

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

4857:                                             ; No predecessors!
  br label %4858

4858:                                             ; preds = %4857
  br label %4859

4859:                                             ; preds = %4858, %4800
  br label %4860

4860:                                             ; preds = %4859
  br label %4861

4861:                                             ; preds = %4860
  br label %4862

4862:                                             ; preds = %4861
  %4863 = load i32, ptr @test_count, align 4, !tbaa !5
  %4864 = add nsw i32 %4863, 1
  store i32 %4864, ptr @test_count, align 4, !tbaa !5
  %4865 = load ptr, ptr %12, align 8, !tbaa !9
  %4866 = call i32 @s2n_connection_set_io_pair(ptr noundef %4865, ptr noundef %26)
  %4867 = icmp eq i32 %4866, -1
  br i1 %4867, label %4868, label %4921

4868:                                             ; preds = %4862
  br label %4869

4869:                                             ; preds = %4868
  br label %4870

4870:                                             ; preds = %4869
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %4871 = call ptr @__errno_location() #10
  %4872 = load i32, ptr %4871, align 4, !tbaa !5
  store i32 %4872, ptr %98, align 4, !tbaa !5
  %4873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4874 = call i32 @s2n_print_stacktrace(ptr noundef %4873)
  %4875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4876 = trunc i8 %4875 to i1
  br i1 %4876, label %4877, label %4899

4877:                                             ; preds = %4870
  %4878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4879 = call i32 @fileno(ptr noundef %4878) #9
  %4880 = call i32 @isatty(i32 noundef %4879) #9
  %4881 = icmp ne i32 %4880, 0
  br i1 %4881, label %4882, label %4899

4882:                                             ; preds = %4877
  %4883 = load i32, ptr %98, align 4, !tbaa !5
  %4884 = call ptr @__errno_location() #10
  store i32 %4883, ptr %4884, align 4, !tbaa !5
  %4885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4886 = load i32, ptr @test_count, align 4, !tbaa !5
  %4887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4888 = load i32, ptr %4887, align 4, !tbaa !5
  %4889 = call ptr @s2n_strerror(i32 noundef %4888, ptr noundef @.str.4)
  %4890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  %4892 = call ptr @s2n_strerror_debug(i32 noundef %4891, ptr noundef @.str.4)
  %4893 = call ptr @__errno_location() #10
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call ptr @strerror(i32 noundef %4894) #9
  %4896 = call ptr @__errno_location() #10
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4885, ptr noundef @.str.2, i32 noundef %4886, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4889, ptr noundef %4892, ptr noundef %4895, i32 noundef %4897) #9
  br label %4916

4899:                                             ; preds = %4877, %4870
  %4900 = load i32, ptr %98, align 4, !tbaa !5
  %4901 = call ptr @__errno_location() #10
  store i32 %4900, ptr %4901, align 4, !tbaa !5
  %4902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4903 = load i32, ptr @test_count, align 4, !tbaa !5
  %4904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4905 = load i32, ptr %4904, align 4, !tbaa !5
  %4906 = call ptr @s2n_strerror(i32 noundef %4905, ptr noundef @.str.4)
  %4907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4908 = load i32, ptr %4907, align 4, !tbaa !5
  %4909 = call ptr @s2n_strerror_debug(i32 noundef %4908, ptr noundef @.str.4)
  %4910 = call ptr @__errno_location() #10
  %4911 = load i32, ptr %4910, align 4, !tbaa !5
  %4912 = call ptr @strerror(i32 noundef %4911) #9
  %4913 = call ptr @__errno_location() #10
  %4914 = load i32, ptr %4913, align 4, !tbaa !5
  %4915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4902, ptr noundef @.str.5, i32 noundef %4903, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4906, ptr noundef %4909, ptr noundef %4912, i32 noundef %4914) #9
  br label %4916

4916:                                             ; preds = %4899, %4882
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4917

4917:                                             ; preds = %4916
  br label %4918

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

4919:                                             ; No predecessors!
  br label %4920

4920:                                             ; preds = %4919
  br label %4921

4921:                                             ; preds = %4920, %4862
  br label %4922

4922:                                             ; preds = %4921
  br label %4923

4923:                                             ; preds = %4922
  br label %4924

4924:                                             ; preds = %4923
  %4925 = load i32, ptr @test_count, align 4, !tbaa !5
  %4926 = add nsw i32 %4925, 1
  store i32 %4926, ptr @test_count, align 4, !tbaa !5
  %4927 = load ptr, ptr %11, align 8, !tbaa !9
  %4928 = call i32 @setup_client_psks(ptr noundef %4927)
  %4929 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  store i32 %4928, ptr %4929, align 4
  %4930 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  %4931 = load i32, ptr %4930, align 4
  %4932 = call zeroext i1 @s2n_result_is_ok(i32 %4931)
  br i1 %4932, label %4986, label %4933

4933:                                             ; preds = %4924
  br label %4934

4934:                                             ; preds = %4933
  br label %4935

4935:                                             ; preds = %4934
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %4936 = call ptr @__errno_location() #10
  %4937 = load i32, ptr %4936, align 4, !tbaa !5
  store i32 %4937, ptr %100, align 4, !tbaa !5
  %4938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4939 = call i32 @s2n_print_stacktrace(ptr noundef %4938)
  %4940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4941 = trunc i8 %4940 to i1
  br i1 %4941, label %4942, label %4964

4942:                                             ; preds = %4935
  %4943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4944 = call i32 @fileno(ptr noundef %4943) #9
  %4945 = call i32 @isatty(i32 noundef %4944) #9
  %4946 = icmp ne i32 %4945, 0
  br i1 %4946, label %4947, label %4964

4947:                                             ; preds = %4942
  %4948 = load i32, ptr %100, align 4, !tbaa !5
  %4949 = call ptr @__errno_location() #10
  store i32 %4948, ptr %4949, align 4, !tbaa !5
  %4950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4951 = load i32, ptr @test_count, align 4, !tbaa !5
  %4952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4953 = load i32, ptr %4952, align 4, !tbaa !5
  %4954 = call ptr @s2n_strerror(i32 noundef %4953, ptr noundef @.str.4)
  %4955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4956 = load i32, ptr %4955, align 4, !tbaa !5
  %4957 = call ptr @s2n_strerror_debug(i32 noundef %4956, ptr noundef @.str.4)
  %4958 = call ptr @__errno_location() #10
  %4959 = load i32, ptr %4958, align 4, !tbaa !5
  %4960 = call ptr @strerror(i32 noundef %4959) #9
  %4961 = call ptr @__errno_location() #10
  %4962 = load i32, ptr %4961, align 4, !tbaa !5
  %4963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4950, ptr noundef @.str.2, i32 noundef %4951, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 306, ptr noundef %4954, ptr noundef %4957, ptr noundef %4960, i32 noundef %4962) #9
  br label %4981

4964:                                             ; preds = %4942, %4935
  %4965 = load i32, ptr %100, align 4, !tbaa !5
  %4966 = call ptr @__errno_location() #10
  store i32 %4965, ptr %4966, align 4, !tbaa !5
  %4967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4968 = load i32, ptr @test_count, align 4, !tbaa !5
  %4969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4970 = load i32, ptr %4969, align 4, !tbaa !5
  %4971 = call ptr @s2n_strerror(i32 noundef %4970, ptr noundef @.str.4)
  %4972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4973 = load i32, ptr %4972, align 4, !tbaa !5
  %4974 = call ptr @s2n_strerror_debug(i32 noundef %4973, ptr noundef @.str.4)
  %4975 = call ptr @__errno_location() #10
  %4976 = load i32, ptr %4975, align 4, !tbaa !5
  %4977 = call ptr @strerror(i32 noundef %4976) #9
  %4978 = call ptr @__errno_location() #10
  %4979 = load i32, ptr %4978, align 4, !tbaa !5
  %4980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4967, ptr noundef @.str.5, i32 noundef %4968, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 306, ptr noundef %4971, ptr noundef %4974, ptr noundef %4977, i32 noundef %4979) #9
  br label %4981

4981:                                             ; preds = %4964, %4947
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %4982

4982:                                             ; preds = %4981
  br label %4983

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

4984:                                             ; No predecessors!
  br label %4985

4985:                                             ; preds = %4984
  br label %4986

4986:                                             ; preds = %4985, %4924
  br label %4987

4987:                                             ; preds = %4986
  br label %4988

4988:                                             ; preds = %4987
  br label %4989

4989:                                             ; preds = %4988
  %4990 = load i32, ptr @test_count, align 4, !tbaa !5
  %4991 = add nsw i32 %4990, 1
  store i32 %4991, ptr @test_count, align 4, !tbaa !5
  %4992 = load ptr, ptr %12, align 8, !tbaa !9
  %4993 = call i32 @setup_server_psks(ptr noundef %4992)
  %4994 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  store i32 %4993, ptr %4994, align 4
  %4995 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  %4996 = load i32, ptr %4995, align 4
  %4997 = call zeroext i1 @s2n_result_is_ok(i32 %4996)
  br i1 %4997, label %5051, label %4998

4998:                                             ; preds = %4989
  br label %4999

4999:                                             ; preds = %4998
  br label %5000

5000:                                             ; preds = %4999
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %5001 = call ptr @__errno_location() #10
  %5002 = load i32, ptr %5001, align 4, !tbaa !5
  store i32 %5002, ptr %102, align 4, !tbaa !5
  %5003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5004 = call i32 @s2n_print_stacktrace(ptr noundef %5003)
  %5005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5006 = trunc i8 %5005 to i1
  br i1 %5006, label %5007, label %5029

5007:                                             ; preds = %5000
  %5008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5009 = call i32 @fileno(ptr noundef %5008) #9
  %5010 = call i32 @isatty(i32 noundef %5009) #9
  %5011 = icmp ne i32 %5010, 0
  br i1 %5011, label %5012, label %5029

5012:                                             ; preds = %5007
  %5013 = load i32, ptr %102, align 4, !tbaa !5
  %5014 = call ptr @__errno_location() #10
  store i32 %5013, ptr %5014, align 4, !tbaa !5
  %5015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5016 = load i32, ptr @test_count, align 4, !tbaa !5
  %5017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  %5019 = call ptr @s2n_strerror(i32 noundef %5018, ptr noundef @.str.4)
  %5020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5021 = load i32, ptr %5020, align 4, !tbaa !5
  %5022 = call ptr @s2n_strerror_debug(i32 noundef %5021, ptr noundef @.str.4)
  %5023 = call ptr @__errno_location() #10
  %5024 = load i32, ptr %5023, align 4, !tbaa !5
  %5025 = call ptr @strerror(i32 noundef %5024) #9
  %5026 = call ptr @__errno_location() #10
  %5027 = load i32, ptr %5026, align 4, !tbaa !5
  %5028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5015, ptr noundef @.str.2, i32 noundef %5016, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 307, ptr noundef %5019, ptr noundef %5022, ptr noundef %5025, i32 noundef %5027) #9
  br label %5046

5029:                                             ; preds = %5007, %5000
  %5030 = load i32, ptr %102, align 4, !tbaa !5
  %5031 = call ptr @__errno_location() #10
  store i32 %5030, ptr %5031, align 4, !tbaa !5
  %5032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5033 = load i32, ptr @test_count, align 4, !tbaa !5
  %5034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5035 = load i32, ptr %5034, align 4, !tbaa !5
  %5036 = call ptr @s2n_strerror(i32 noundef %5035, ptr noundef @.str.4)
  %5037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5038 = load i32, ptr %5037, align 4, !tbaa !5
  %5039 = call ptr @s2n_strerror_debug(i32 noundef %5038, ptr noundef @.str.4)
  %5040 = call ptr @__errno_location() #10
  %5041 = load i32, ptr %5040, align 4, !tbaa !5
  %5042 = call ptr @strerror(i32 noundef %5041) #9
  %5043 = call ptr @__errno_location() #10
  %5044 = load i32, ptr %5043, align 4, !tbaa !5
  %5045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5032, ptr noundef @.str.5, i32 noundef %5033, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 307, ptr noundef %5036, ptr noundef %5039, ptr noundef %5042, i32 noundef %5044) #9
  br label %5046

5046:                                             ; preds = %5029, %5012
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %5047

5047:                                             ; preds = %5046
  br label %5048

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

5049:                                             ; No predecessors!
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

5051:                                             ; preds = %5050, %4989
  br label %5052

5052:                                             ; preds = %5051
  br label %5053

5053:                                             ; preds = %5052
  br label %5054

5054:                                             ; preds = %5053
  br label %5055

5055:                                             ; preds = %5054
  br label %5056

5056:                                             ; preds = %5055
  %5057 = load i32, ptr @test_count, align 4, !tbaa !5
  %5058 = add nsw i32 %5057, 1
  store i32 %5058, ptr @test_count, align 4, !tbaa !5
  %5059 = load ptr, ptr %12, align 8, !tbaa !9
  %5060 = load ptr, ptr %11, align 8, !tbaa !9
  %5061 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5059, ptr noundef %5060)
  %5062 = icmp eq i32 %5061, -1
  br i1 %5062, label %5116, label %5063

5063:                                             ; preds = %5056
  br label %5064

5064:                                             ; preds = %5063
  br label %5065

5065:                                             ; preds = %5064
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  %5066 = call ptr @__errno_location() #10
  %5067 = load i32, ptr %5066, align 4, !tbaa !5
  store i32 %5067, ptr %103, align 4, !tbaa !5
  %5068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5069 = call i32 @s2n_print_stacktrace(ptr noundef %5068)
  %5070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5071 = trunc i8 %5070 to i1
  br i1 %5071, label %5072, label %5094

5072:                                             ; preds = %5065
  %5073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5074 = call i32 @fileno(ptr noundef %5073) #9
  %5075 = call i32 @isatty(i32 noundef %5074) #9
  %5076 = icmp ne i32 %5075, 0
  br i1 %5076, label %5077, label %5094

5077:                                             ; preds = %5072
  %5078 = load i32, ptr %103, align 4, !tbaa !5
  %5079 = call ptr @__errno_location() #10
  store i32 %5078, ptr %5079, align 4, !tbaa !5
  %5080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5081 = load i32, ptr @test_count, align 4, !tbaa !5
  %5082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror(i32 noundef %5083, ptr noundef @.str.4)
  %5085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror_debug(i32 noundef %5086, ptr noundef @.str.4)
  %5088 = call ptr @__errno_location() #10
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @strerror(i32 noundef %5089) #9
  %5091 = call ptr @__errno_location() #10
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5080, ptr noundef @.str.2, i32 noundef %5081, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 310, ptr noundef %5084, ptr noundef %5087, ptr noundef %5090, i32 noundef %5092) #9
  br label %5111

5094:                                             ; preds = %5072, %5065
  %5095 = load i32, ptr %103, align 4, !tbaa !5
  %5096 = call ptr @__errno_location() #10
  store i32 %5095, ptr %5096, align 4, !tbaa !5
  %5097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5098 = load i32, ptr @test_count, align 4, !tbaa !5
  %5099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5100 = load i32, ptr %5099, align 4, !tbaa !5
  %5101 = call ptr @s2n_strerror(i32 noundef %5100, ptr noundef @.str.4)
  %5102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5103 = load i32, ptr %5102, align 4, !tbaa !5
  %5104 = call ptr @s2n_strerror_debug(i32 noundef %5103, ptr noundef @.str.4)
  %5105 = call ptr @__errno_location() #10
  %5106 = load i32, ptr %5105, align 4, !tbaa !5
  %5107 = call ptr @strerror(i32 noundef %5106) #9
  %5108 = call ptr @__errno_location() #10
  %5109 = load i32, ptr %5108, align 4, !tbaa !5
  %5110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5097, ptr noundef @.str.5, i32 noundef %5098, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 310, ptr noundef %5101, ptr noundef %5104, ptr noundef %5107, i32 noundef %5109) #9
  br label %5111

5111:                                             ; preds = %5094, %5077
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %5112

5112:                                             ; preds = %5111
  br label %5113

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

5114:                                             ; No predecessors!
  br label %5115

5115:                                             ; preds = %5114
  br label %5116

5116:                                             ; preds = %5115, %5056
  br label %5117

5117:                                             ; preds = %5116
  br label %5118

5118:                                             ; preds = %5117
  br label %5119

5119:                                             ; preds = %5118
  %5120 = load i32, ptr @test_count, align 4, !tbaa !5
  %5121 = add nsw i32 %5120, 1
  store i32 %5121, ptr @test_count, align 4, !tbaa !5
  %5122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5123 = load i32, ptr %5122, align 4, !tbaa !5
  %5124 = icmp eq i32 %5123, 201326593
  br i1 %5124, label %5178, label %5125

5125:                                             ; preds = %5119
  br label %5126

5126:                                             ; preds = %5125
  br label %5127

5127:                                             ; preds = %5126
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #9
  %5128 = call ptr @__errno_location() #10
  %5129 = load i32, ptr %5128, align 4, !tbaa !5
  store i32 %5129, ptr %104, align 4, !tbaa !5
  %5130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5131 = call i32 @s2n_print_stacktrace(ptr noundef %5130)
  %5132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5133 = trunc i8 %5132 to i1
  br i1 %5133, label %5134, label %5156

5134:                                             ; preds = %5127
  %5135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5136 = call i32 @fileno(ptr noundef %5135) #9
  %5137 = call i32 @isatty(i32 noundef %5136) #9
  %5138 = icmp ne i32 %5137, 0
  br i1 %5138, label %5139, label %5156

5139:                                             ; preds = %5134
  %5140 = load i32, ptr %104, align 4, !tbaa !5
  %5141 = call ptr @__errno_location() #10
  store i32 %5140, ptr %5141, align 4, !tbaa !5
  %5142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5143 = load i32, ptr @test_count, align 4, !tbaa !5
  %5144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5145 = load i32, ptr %5144, align 4, !tbaa !5
  %5146 = call ptr @s2n_strerror(i32 noundef %5145, ptr noundef @.str.4)
  %5147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5148 = load i32, ptr %5147, align 4, !tbaa !5
  %5149 = call ptr @s2n_strerror_debug(i32 noundef %5148, ptr noundef @.str.4)
  %5150 = call ptr @__errno_location() #10
  %5151 = load i32, ptr %5150, align 4, !tbaa !5
  %5152 = call ptr @strerror(i32 noundef %5151) #9
  %5153 = call ptr @__errno_location() #10
  %5154 = load i32, ptr %5153, align 4, !tbaa !5
  %5155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5142, ptr noundef @.str.2, i32 noundef %5143, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 310, ptr noundef %5146, ptr noundef %5149, ptr noundef %5152, i32 noundef %5154) #9
  br label %5173

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

5173:                                             ; preds = %5156, %5139
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  br label %5174

5174:                                             ; preds = %5173
  br label %5175

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

5176:                                             ; No predecessors!
  br label %5177

5177:                                             ; preds = %5176
  br label %5178

5178:                                             ; preds = %5177, %5119
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179
  br label %5181

5181:                                             ; preds = %5180
  %5182 = load i32, ptr @test_count, align 4, !tbaa !5
  %5183 = add nsw i32 %5182, 1
  store i32 %5183, ptr @test_count, align 4, !tbaa !5
  %5184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  %5186 = call ptr @s2n_strerror_debug(i32 noundef %5185, ptr noundef @.str.4)
  %5187 = icmp eq ptr %5186, null
  br i1 %5187, label %5188, label %5241

5188:                                             ; preds = %5181
  br label %5189

5189:                                             ; preds = %5188
  br label %5190

5190:                                             ; preds = %5189
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #9
  %5191 = call ptr @__errno_location() #10
  %5192 = load i32, ptr %5191, align 4, !tbaa !5
  store i32 %5192, ptr %105, align 4, !tbaa !5
  %5193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5194 = call i32 @s2n_print_stacktrace(ptr noundef %5193)
  %5195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5196 = trunc i8 %5195 to i1
  br i1 %5196, label %5197, label %5219

5197:                                             ; preds = %5190
  %5198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5199 = call i32 @fileno(ptr noundef %5198) #9
  %5200 = call i32 @isatty(i32 noundef %5199) #9
  %5201 = icmp ne i32 %5200, 0
  br i1 %5201, label %5202, label %5219

5202:                                             ; preds = %5197
  %5203 = load i32, ptr %105, align 4, !tbaa !5
  %5204 = call ptr @__errno_location() #10
  store i32 %5203, ptr %5204, align 4, !tbaa !5
  %5205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5206 = load i32, ptr @test_count, align 4, !tbaa !5
  %5207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5208 = load i32, ptr %5207, align 4, !tbaa !5
  %5209 = call ptr @s2n_strerror(i32 noundef %5208, ptr noundef @.str.4)
  %5210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5211 = load i32, ptr %5210, align 4, !tbaa !5
  %5212 = call ptr @s2n_strerror_debug(i32 noundef %5211, ptr noundef @.str.4)
  %5213 = call ptr @__errno_location() #10
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = call ptr @strerror(i32 noundef %5214) #9
  %5216 = call ptr @__errno_location() #10
  %5217 = load i32, ptr %5216, align 4, !tbaa !5
  %5218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5205, ptr noundef @.str.2, i32 noundef %5206, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 310, ptr noundef %5209, ptr noundef %5212, ptr noundef %5215, i32 noundef %5217) #9
  br label %5236

5219:                                             ; preds = %5197, %5190
  %5220 = load i32, ptr %105, align 4, !tbaa !5
  %5221 = call ptr @__errno_location() #10
  store i32 %5220, ptr %5221, align 4, !tbaa !5
  %5222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5223 = load i32, ptr @test_count, align 4, !tbaa !5
  %5224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5225 = load i32, ptr %5224, align 4, !tbaa !5
  %5226 = call ptr @s2n_strerror(i32 noundef %5225, ptr noundef @.str.4)
  %5227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5228 = load i32, ptr %5227, align 4, !tbaa !5
  %5229 = call ptr @s2n_strerror_debug(i32 noundef %5228, ptr noundef @.str.4)
  %5230 = call ptr @__errno_location() #10
  %5231 = load i32, ptr %5230, align 4, !tbaa !5
  %5232 = call ptr @strerror(i32 noundef %5231) #9
  %5233 = call ptr @__errno_location() #10
  %5234 = load i32, ptr %5233, align 4, !tbaa !5
  %5235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5222, ptr noundef @.str.5, i32 noundef %5223, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 310, ptr noundef %5226, ptr noundef %5229, ptr noundef %5232, i32 noundef %5234) #9
  br label %5236

5236:                                             ; preds = %5219, %5202
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %5237

5237:                                             ; preds = %5236
  br label %5238

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

5239:                                             ; No predecessors!
  br label %5240

5240:                                             ; preds = %5239
  br label %5241

5241:                                             ; preds = %5240, %5181
  br label %5242

5242:                                             ; preds = %5241
  br label %5243

5243:                                             ; preds = %5242
  br label %5244

5244:                                             ; preds = %5243
  br label %5245

5245:                                             ; preds = %5244
  br label %5246

5246:                                             ; preds = %5245
  %5247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5247, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5248 = call ptr @__errno_location() #10
  store i32 0, ptr %5248, align 4, !tbaa !5
  br label %5249

5249:                                             ; preds = %5246
  br label %5250

5250:                                             ; preds = %5249
  br label %5251

5251:                                             ; preds = %5250
  br label %5252

5252:                                             ; preds = %5251
  br label %5253

5253:                                             ; preds = %5252
  %5254 = load i32, ptr @test_count, align 4, !tbaa !5
  %5255 = add nsw i32 %5254, 1
  store i32 %5255, ptr @test_count, align 4, !tbaa !5
  %5256 = load ptr, ptr %12, align 8, !tbaa !9
  %5257 = call i32 @s2n_client_hello_cb_done(ptr noundef %5256)
  %5258 = icmp eq i32 %5257, -1
  br i1 %5258, label %5259, label %5312

5259:                                             ; preds = %5253
  br label %5260

5260:                                             ; preds = %5259
  br label %5261

5261:                                             ; preds = %5260
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %5262 = call ptr @__errno_location() #10
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  store i32 %5263, ptr %106, align 4, !tbaa !5
  %5264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5265 = call i32 @s2n_print_stacktrace(ptr noundef %5264)
  %5266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5267 = trunc i8 %5266 to i1
  br i1 %5267, label %5268, label %5290

5268:                                             ; preds = %5261
  %5269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5270 = call i32 @fileno(ptr noundef %5269) #9
  %5271 = call i32 @isatty(i32 noundef %5270) #9
  %5272 = icmp ne i32 %5271, 0
  br i1 %5272, label %5273, label %5290

5273:                                             ; preds = %5268
  %5274 = load i32, ptr %106, align 4, !tbaa !5
  %5275 = call ptr @__errno_location() #10
  store i32 %5274, ptr %5275, align 4, !tbaa !5
  %5276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5277 = load i32, ptr @test_count, align 4, !tbaa !5
  %5278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5279 = load i32, ptr %5278, align 4, !tbaa !5
  %5280 = call ptr @s2n_strerror(i32 noundef %5279, ptr noundef @.str.4)
  %5281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5282 = load i32, ptr %5281, align 4, !tbaa !5
  %5283 = call ptr @s2n_strerror_debug(i32 noundef %5282, ptr noundef @.str.4)
  %5284 = call ptr @__errno_location() #10
  %5285 = load i32, ptr %5284, align 4, !tbaa !5
  %5286 = call ptr @strerror(i32 noundef %5285) #9
  %5287 = call ptr @__errno_location() #10
  %5288 = load i32, ptr %5287, align 4, !tbaa !5
  %5289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5276, ptr noundef @.str.2, i32 noundef %5277, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5280, ptr noundef %5283, ptr noundef %5286, i32 noundef %5288) #9
  br label %5307

5290:                                             ; preds = %5268, %5261
  %5291 = load i32, ptr %106, align 4, !tbaa !5
  %5292 = call ptr @__errno_location() #10
  store i32 %5291, ptr %5292, align 4, !tbaa !5
  %5293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5294 = load i32, ptr @test_count, align 4, !tbaa !5
  %5295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5296 = load i32, ptr %5295, align 4, !tbaa !5
  %5297 = call ptr @s2n_strerror(i32 noundef %5296, ptr noundef @.str.4)
  %5298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5299 = load i32, ptr %5298, align 4, !tbaa !5
  %5300 = call ptr @s2n_strerror_debug(i32 noundef %5299, ptr noundef @.str.4)
  %5301 = call ptr @__errno_location() #10
  %5302 = load i32, ptr %5301, align 4, !tbaa !5
  %5303 = call ptr @strerror(i32 noundef %5302) #9
  %5304 = call ptr @__errno_location() #10
  %5305 = load i32, ptr %5304, align 4, !tbaa !5
  %5306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5293, ptr noundef @.str.5, i32 noundef %5294, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5297, ptr noundef %5300, ptr noundef %5303, i32 noundef %5305) #9
  br label %5307

5307:                                             ; preds = %5290, %5273
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %5308

5308:                                             ; preds = %5307
  br label %5309

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

5310:                                             ; No predecessors!
  br label %5311

5311:                                             ; preds = %5310
  br label %5312

5312:                                             ; preds = %5311, %5253
  br label %5313

5313:                                             ; preds = %5312
  br label %5314

5314:                                             ; preds = %5313
  br label %5315

5315:                                             ; preds = %5314
  %5316 = load i32, ptr @test_count, align 4, !tbaa !5
  %5317 = add nsw i32 %5316, 1
  store i32 %5317, ptr @test_count, align 4, !tbaa !5
  %5318 = load ptr, ptr %12, align 8, !tbaa !9
  %5319 = load ptr, ptr %11, align 8, !tbaa !9
  %5320 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5318, ptr noundef %5319)
  %5321 = icmp eq i32 %5320, -1
  br i1 %5321, label %5322, label %5375

5322:                                             ; preds = %5315
  br label %5323

5323:                                             ; preds = %5322
  br label %5324

5324:                                             ; preds = %5323
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #9
  %5325 = call ptr @__errno_location() #10
  %5326 = load i32, ptr %5325, align 4, !tbaa !5
  store i32 %5326, ptr %107, align 4, !tbaa !5
  %5327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5328 = call i32 @s2n_print_stacktrace(ptr noundef %5327)
  %5329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5330 = trunc i8 %5329 to i1
  br i1 %5330, label %5331, label %5353

5331:                                             ; preds = %5324
  %5332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5333 = call i32 @fileno(ptr noundef %5332) #9
  %5334 = call i32 @isatty(i32 noundef %5333) #9
  %5335 = icmp ne i32 %5334, 0
  br i1 %5335, label %5336, label %5353

5336:                                             ; preds = %5331
  %5337 = load i32, ptr %107, align 4, !tbaa !5
  %5338 = call ptr @__errno_location() #10
  store i32 %5337, ptr %5338, align 4, !tbaa !5
  %5339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5340 = load i32, ptr @test_count, align 4, !tbaa !5
  %5341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  %5343 = call ptr @s2n_strerror(i32 noundef %5342, ptr noundef @.str.4)
  %5344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5345 = load i32, ptr %5344, align 4, !tbaa !5
  %5346 = call ptr @s2n_strerror_debug(i32 noundef %5345, ptr noundef @.str.4)
  %5347 = call ptr @__errno_location() #10
  %5348 = load i32, ptr %5347, align 4, !tbaa !5
  %5349 = call ptr @strerror(i32 noundef %5348) #9
  %5350 = call ptr @__errno_location() #10
  %5351 = load i32, ptr %5350, align 4, !tbaa !5
  %5352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5339, ptr noundef @.str.2, i32 noundef %5340, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 312, ptr noundef %5343, ptr noundef %5346, ptr noundef %5349, i32 noundef %5351) #9
  br label %5370

5353:                                             ; preds = %5331, %5324
  %5354 = load i32, ptr %107, align 4, !tbaa !5
  %5355 = call ptr @__errno_location() #10
  store i32 %5354, ptr %5355, align 4, !tbaa !5
  %5356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5357 = load i32, ptr @test_count, align 4, !tbaa !5
  %5358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5359 = load i32, ptr %5358, align 4, !tbaa !5
  %5360 = call ptr @s2n_strerror(i32 noundef %5359, ptr noundef @.str.4)
  %5361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5362 = load i32, ptr %5361, align 4, !tbaa !5
  %5363 = call ptr @s2n_strerror_debug(i32 noundef %5362, ptr noundef @.str.4)
  %5364 = call ptr @__errno_location() #10
  %5365 = load i32, ptr %5364, align 4, !tbaa !5
  %5366 = call ptr @strerror(i32 noundef %5365) #9
  %5367 = call ptr @__errno_location() #10
  %5368 = load i32, ptr %5367, align 4, !tbaa !5
  %5369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5356, ptr noundef @.str.5, i32 noundef %5357, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 312, ptr noundef %5360, ptr noundef %5363, ptr noundef %5366, i32 noundef %5368) #9
  br label %5370

5370:                                             ; preds = %5353, %5336
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  br label %5371

5371:                                             ; preds = %5370
  br label %5372

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

5373:                                             ; No predecessors!
  br label %5374

5374:                                             ; preds = %5373
  br label %5375

5375:                                             ; preds = %5374, %5315
  br label %5376

5376:                                             ; preds = %5375
  br label %5377

5377:                                             ; preds = %5376
  br label %5378

5378:                                             ; preds = %5377
  %5379 = load i32, ptr @test_count, align 4, !tbaa !5
  %5380 = add nsw i32 %5379, 1
  store i32 %5380, ptr @test_count, align 4, !tbaa !5
  %5381 = load ptr, ptr %11, align 8, !tbaa !9
  %5382 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %5381, i32 noundef 2)
  br i1 %5382, label %5383, label %5439

5383:                                             ; preds = %5378
  %5384 = load ptr, ptr %12, align 8, !tbaa !9
  %5385 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %5384, i32 noundef 2)
  br i1 %5385, label %5386, label %5439

5386:                                             ; preds = %5383
  br label %5387

5387:                                             ; preds = %5386
  br label %5388

5388:                                             ; preds = %5387
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #9
  %5389 = call ptr @__errno_location() #10
  %5390 = load i32, ptr %5389, align 4, !tbaa !5
  store i32 %5390, ptr %108, align 4, !tbaa !5
  %5391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5392 = call i32 @s2n_print_stacktrace(ptr noundef %5391)
  %5393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5394 = trunc i8 %5393 to i1
  br i1 %5394, label %5395, label %5417

5395:                                             ; preds = %5388
  %5396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5397 = call i32 @fileno(ptr noundef %5396) #9
  %5398 = call i32 @isatty(i32 noundef %5397) #9
  %5399 = icmp ne i32 %5398, 0
  br i1 %5399, label %5400, label %5417

5400:                                             ; preds = %5395
  %5401 = load i32, ptr %108, align 4, !tbaa !5
  %5402 = call ptr @__errno_location() #10
  store i32 %5401, ptr %5402, align 4, !tbaa !5
  %5403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5404 = load i32, ptr @test_count, align 4, !tbaa !5
  %5405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5406 = load i32, ptr %5405, align 4, !tbaa !5
  %5407 = call ptr @s2n_strerror(i32 noundef %5406, ptr noundef @.str.4)
  %5408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5409 = load i32, ptr %5408, align 4, !tbaa !5
  %5410 = call ptr @s2n_strerror_debug(i32 noundef %5409, ptr noundef @.str.4)
  %5411 = call ptr @__errno_location() #10
  %5412 = load i32, ptr %5411, align 4, !tbaa !5
  %5413 = call ptr @strerror(i32 noundef %5412) #9
  %5414 = call ptr @__errno_location() #10
  %5415 = load i32, ptr %5414, align 4, !tbaa !5
  %5416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5403, ptr noundef @.str.2, i32 noundef %5404, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 315, ptr noundef %5407, ptr noundef %5410, ptr noundef %5413, i32 noundef %5415) #9
  br label %5434

5417:                                             ; preds = %5395, %5388
  %5418 = load i32, ptr %108, align 4, !tbaa !5
  %5419 = call ptr @__errno_location() #10
  store i32 %5418, ptr %5419, align 4, !tbaa !5
  %5420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5421 = load i32, ptr @test_count, align 4, !tbaa !5
  %5422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5423 = load i32, ptr %5422, align 4, !tbaa !5
  %5424 = call ptr @s2n_strerror(i32 noundef %5423, ptr noundef @.str.4)
  %5425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5426 = load i32, ptr %5425, align 4, !tbaa !5
  %5427 = call ptr @s2n_strerror_debug(i32 noundef %5426, ptr noundef @.str.4)
  %5428 = call ptr @__errno_location() #10
  %5429 = load i32, ptr %5428, align 4, !tbaa !5
  %5430 = call ptr @strerror(i32 noundef %5429) #9
  %5431 = call ptr @__errno_location() #10
  %5432 = load i32, ptr %5431, align 4, !tbaa !5
  %5433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5420, ptr noundef @.str.5, i32 noundef %5421, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 315, ptr noundef %5424, ptr noundef %5427, ptr noundef %5430, i32 noundef %5432) #9
  br label %5434

5434:                                             ; preds = %5417, %5400
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #9
  br label %5435

5435:                                             ; preds = %5434
  br label %5436

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

5437:                                             ; No predecessors!
  br label %5438

5438:                                             ; preds = %5437
  br label %5439

5439:                                             ; preds = %5438, %5383, %5378
  br label %5440

5440:                                             ; preds = %5439
  br label %5441

5441:                                             ; preds = %5440
  br label %5442

5442:                                             ; preds = %5441
  %5443 = load i32, ptr @test_count, align 4, !tbaa !5
  %5444 = add nsw i32 %5443, 1
  store i32 %5444, ptr @test_count, align 4, !tbaa !5
  %5445 = load ptr, ptr %12, align 8, !tbaa !9
  %5446 = call i32 @validate_chosen_psk(ptr noundef %5445, ptr noundef @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %5447 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %5446, ptr %5447, align 4
  %5448 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  %5449 = load i32, ptr %5448, align 4
  %5450 = call zeroext i1 @s2n_result_is_ok(i32 %5449)
  br i1 %5450, label %5504, label %5451

5451:                                             ; preds = %5442
  br label %5452

5452:                                             ; preds = %5451
  br label %5453

5453:                                             ; preds = %5452
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #9
  %5454 = call ptr @__errno_location() #10
  %5455 = load i32, ptr %5454, align 4, !tbaa !5
  store i32 %5455, ptr %110, align 4, !tbaa !5
  %5456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5457 = call i32 @s2n_print_stacktrace(ptr noundef %5456)
  %5458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5459 = trunc i8 %5458 to i1
  br i1 %5459, label %5460, label %5482

5460:                                             ; preds = %5453
  %5461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5462 = call i32 @fileno(ptr noundef %5461) #9
  %5463 = call i32 @isatty(i32 noundef %5462) #9
  %5464 = icmp ne i32 %5463, 0
  br i1 %5464, label %5465, label %5482

5465:                                             ; preds = %5460
  %5466 = load i32, ptr %110, align 4, !tbaa !5
  %5467 = call ptr @__errno_location() #10
  store i32 %5466, ptr %5467, align 4, !tbaa !5
  %5468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5469 = load i32, ptr @test_count, align 4, !tbaa !5
  %5470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call ptr @s2n_strerror(i32 noundef %5471, ptr noundef @.str.4)
  %5473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = call ptr @s2n_strerror_debug(i32 noundef %5474, ptr noundef @.str.4)
  %5476 = call ptr @__errno_location() #10
  %5477 = load i32, ptr %5476, align 4, !tbaa !5
  %5478 = call ptr @strerror(i32 noundef %5477) #9
  %5479 = call ptr @__errno_location() #10
  %5480 = load i32, ptr %5479, align 4, !tbaa !5
  %5481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5468, ptr noundef @.str.2, i32 noundef %5469, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 319, ptr noundef %5472, ptr noundef %5475, ptr noundef %5478, i32 noundef %5480) #9
  br label %5499

5482:                                             ; preds = %5460, %5453
  %5483 = load i32, ptr %110, align 4, !tbaa !5
  %5484 = call ptr @__errno_location() #10
  store i32 %5483, ptr %5484, align 4, !tbaa !5
  %5485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5486 = load i32, ptr @test_count, align 4, !tbaa !5
  %5487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5488 = load i32, ptr %5487, align 4, !tbaa !5
  %5489 = call ptr @s2n_strerror(i32 noundef %5488, ptr noundef @.str.4)
  %5490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5491 = load i32, ptr %5490, align 4, !tbaa !5
  %5492 = call ptr @s2n_strerror_debug(i32 noundef %5491, ptr noundef @.str.4)
  %5493 = call ptr @__errno_location() #10
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  %5495 = call ptr @strerror(i32 noundef %5494) #9
  %5496 = call ptr @__errno_location() #10
  %5497 = load i32, ptr %5496, align 4, !tbaa !5
  %5498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5485, ptr noundef @.str.5, i32 noundef %5486, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 319, ptr noundef %5489, ptr noundef %5492, ptr noundef %5495, i32 noundef %5497) #9
  br label %5499

5499:                                             ; preds = %5482, %5465
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #9
  br label %5500

5500:                                             ; preds = %5499
  br label %5501

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

5502:                                             ; No predecessors!
  br label %5503

5503:                                             ; preds = %5502
  br label %5504

5504:                                             ; preds = %5503, %5442
  br label %5505

5505:                                             ; preds = %5504
  br label %5506

5506:                                             ; preds = %5505
  br label %5507

5507:                                             ; preds = %5506
  %5508 = load i32, ptr @test_count, align 4, !tbaa !5
  %5509 = add nsw i32 %5508, 1
  store i32 %5509, ptr @test_count, align 4, !tbaa !5
  %5510 = load ptr, ptr %12, align 8, !tbaa !9
  %5511 = load ptr, ptr %11, align 8, !tbaa !9
  %5512 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %5510, ptr noundef %5511)
  %5513 = icmp eq i32 %5512, -1
  br i1 %5513, label %5514, label %5567

5514:                                             ; preds = %5507
  br label %5515

5515:                                             ; preds = %5514
  br label %5516

5516:                                             ; preds = %5515
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #9
  %5517 = call ptr @__errno_location() #10
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  store i32 %5518, ptr %111, align 4, !tbaa !5
  %5519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5520 = call i32 @s2n_print_stacktrace(ptr noundef %5519)
  %5521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5522 = trunc i8 %5521 to i1
  br i1 %5522, label %5523, label %5545

5523:                                             ; preds = %5516
  %5524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5525 = call i32 @fileno(ptr noundef %5524) #9
  %5526 = call i32 @isatty(i32 noundef %5525) #9
  %5527 = icmp ne i32 %5526, 0
  br i1 %5527, label %5528, label %5545

5528:                                             ; preds = %5523
  %5529 = load i32, ptr %111, align 4, !tbaa !5
  %5530 = call ptr @__errno_location() #10
  store i32 %5529, ptr %5530, align 4, !tbaa !5
  %5531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5532 = load i32, ptr @test_count, align 4, !tbaa !5
  %5533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = call ptr @s2n_strerror(i32 noundef %5534, ptr noundef @.str.4)
  %5536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5537 = load i32, ptr %5536, align 4, !tbaa !5
  %5538 = call ptr @s2n_strerror_debug(i32 noundef %5537, ptr noundef @.str.4)
  %5539 = call ptr @__errno_location() #10
  %5540 = load i32, ptr %5539, align 4, !tbaa !5
  %5541 = call ptr @strerror(i32 noundef %5540) #9
  %5542 = call ptr @__errno_location() #10
  %5543 = load i32, ptr %5542, align 4, !tbaa !5
  %5544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5531, ptr noundef @.str.2, i32 noundef %5532, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5535, ptr noundef %5538, ptr noundef %5541, i32 noundef %5543) #9
  br label %5562

5545:                                             ; preds = %5523, %5516
  %5546 = load i32, ptr %111, align 4, !tbaa !5
  %5547 = call ptr @__errno_location() #10
  store i32 %5546, ptr %5547, align 4, !tbaa !5
  %5548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5549 = load i32, ptr @test_count, align 4, !tbaa !5
  %5550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5551 = load i32, ptr %5550, align 4, !tbaa !5
  %5552 = call ptr @s2n_strerror(i32 noundef %5551, ptr noundef @.str.4)
  %5553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  %5555 = call ptr @s2n_strerror_debug(i32 noundef %5554, ptr noundef @.str.4)
  %5556 = call ptr @__errno_location() #10
  %5557 = load i32, ptr %5556, align 4, !tbaa !5
  %5558 = call ptr @strerror(i32 noundef %5557) #9
  %5559 = call ptr @__errno_location() #10
  %5560 = load i32, ptr %5559, align 4, !tbaa !5
  %5561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5548, ptr noundef @.str.5, i32 noundef %5549, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5552, ptr noundef %5555, ptr noundef %5558, i32 noundef %5560) #9
  br label %5562

5562:                                             ; preds = %5545, %5528
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %5563

5563:                                             ; preds = %5562
  br label %5564

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

5565:                                             ; No predecessors!
  br label %5566

5566:                                             ; preds = %5565
  br label %5567

5567:                                             ; preds = %5566, %5507
  br label %5568

5568:                                             ; preds = %5567
  br label %5569

5569:                                             ; preds = %5568
  br label %5570

5570:                                             ; preds = %5569
  %5571 = load i32, ptr @test_count, align 4, !tbaa !5
  %5572 = add nsw i32 %5571, 1
  store i32 %5572, ptr @test_count, align 4, !tbaa !5
  %5573 = load ptr, ptr %11, align 8, !tbaa !9
  %5574 = call i32 @s2n_connection_wipe(ptr noundef %5573)
  %5575 = icmp eq i32 %5574, -1
  br i1 %5575, label %5576, label %5629

5576:                                             ; preds = %5570
  br label %5577

5577:                                             ; preds = %5576
  br label %5578

5578:                                             ; preds = %5577
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #9
  %5579 = call ptr @__errno_location() #10
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  store i32 %5580, ptr %112, align 4, !tbaa !5
  %5581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5582 = call i32 @s2n_print_stacktrace(ptr noundef %5581)
  %5583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5584 = trunc i8 %5583 to i1
  br i1 %5584, label %5585, label %5607

5585:                                             ; preds = %5578
  %5586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5587 = call i32 @fileno(ptr noundef %5586) #9
  %5588 = call i32 @isatty(i32 noundef %5587) #9
  %5589 = icmp ne i32 %5588, 0
  br i1 %5589, label %5590, label %5607

5590:                                             ; preds = %5585
  %5591 = load i32, ptr %112, align 4, !tbaa !5
  %5592 = call ptr @__errno_location() #10
  store i32 %5591, ptr %5592, align 4, !tbaa !5
  %5593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5594 = load i32, ptr @test_count, align 4, !tbaa !5
  %5595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  %5597 = call ptr @s2n_strerror(i32 noundef %5596, ptr noundef @.str.4)
  %5598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5599 = load i32, ptr %5598, align 4, !tbaa !5
  %5600 = call ptr @s2n_strerror_debug(i32 noundef %5599, ptr noundef @.str.4)
  %5601 = call ptr @__errno_location() #10
  %5602 = load i32, ptr %5601, align 4, !tbaa !5
  %5603 = call ptr @strerror(i32 noundef %5602) #9
  %5604 = call ptr @__errno_location() #10
  %5605 = load i32, ptr %5604, align 4, !tbaa !5
  %5606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5593, ptr noundef @.str.2, i32 noundef %5594, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 323, ptr noundef %5597, ptr noundef %5600, ptr noundef %5603, i32 noundef %5605) #9
  br label %5624

5607:                                             ; preds = %5585, %5578
  %5608 = load i32, ptr %112, align 4, !tbaa !5
  %5609 = call ptr @__errno_location() #10
  store i32 %5608, ptr %5609, align 4, !tbaa !5
  %5610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5611 = load i32, ptr @test_count, align 4, !tbaa !5
  %5612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5613 = load i32, ptr %5612, align 4, !tbaa !5
  %5614 = call ptr @s2n_strerror(i32 noundef %5613, ptr noundef @.str.4)
  %5615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5616 = load i32, ptr %5615, align 4, !tbaa !5
  %5617 = call ptr @s2n_strerror_debug(i32 noundef %5616, ptr noundef @.str.4)
  %5618 = call ptr @__errno_location() #10
  %5619 = load i32, ptr %5618, align 4, !tbaa !5
  %5620 = call ptr @strerror(i32 noundef %5619) #9
  %5621 = call ptr @__errno_location() #10
  %5622 = load i32, ptr %5621, align 4, !tbaa !5
  %5623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5610, ptr noundef @.str.5, i32 noundef %5611, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 323, ptr noundef %5614, ptr noundef %5617, ptr noundef %5620, i32 noundef %5622) #9
  br label %5624

5624:                                             ; preds = %5607, %5590
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #9
  br label %5625

5625:                                             ; preds = %5624
  br label %5626

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

5627:                                             ; No predecessors!
  br label %5628

5628:                                             ; preds = %5627
  br label %5629

5629:                                             ; preds = %5628, %5570
  br label %5630

5630:                                             ; preds = %5629
  br label %5631

5631:                                             ; preds = %5630
  br label %5632

5632:                                             ; preds = %5631
  %5633 = load i32, ptr @test_count, align 4, !tbaa !5
  %5634 = add nsw i32 %5633, 1
  store i32 %5634, ptr @test_count, align 4, !tbaa !5
  %5635 = load ptr, ptr %12, align 8, !tbaa !9
  %5636 = call i32 @s2n_connection_wipe(ptr noundef %5635)
  %5637 = icmp eq i32 %5636, -1
  br i1 %5637, label %5638, label %5691

5638:                                             ; preds = %5632
  br label %5639

5639:                                             ; preds = %5638
  br label %5640

5640:                                             ; preds = %5639
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #9
  %5641 = call ptr @__errno_location() #10
  %5642 = load i32, ptr %5641, align 4, !tbaa !5
  store i32 %5642, ptr %113, align 4, !tbaa !5
  %5643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5644 = call i32 @s2n_print_stacktrace(ptr noundef %5643)
  %5645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5646 = trunc i8 %5645 to i1
  br i1 %5646, label %5647, label %5669

5647:                                             ; preds = %5640
  %5648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5649 = call i32 @fileno(ptr noundef %5648) #9
  %5650 = call i32 @isatty(i32 noundef %5649) #9
  %5651 = icmp ne i32 %5650, 0
  br i1 %5651, label %5652, label %5669

5652:                                             ; preds = %5647
  %5653 = load i32, ptr %113, align 4, !tbaa !5
  %5654 = call ptr @__errno_location() #10
  store i32 %5653, ptr %5654, align 4, !tbaa !5
  %5655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5656 = load i32, ptr @test_count, align 4, !tbaa !5
  %5657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5658 = load i32, ptr %5657, align 4, !tbaa !5
  %5659 = call ptr @s2n_strerror(i32 noundef %5658, ptr noundef @.str.4)
  %5660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5661 = load i32, ptr %5660, align 4, !tbaa !5
  %5662 = call ptr @s2n_strerror_debug(i32 noundef %5661, ptr noundef @.str.4)
  %5663 = call ptr @__errno_location() #10
  %5664 = load i32, ptr %5663, align 4, !tbaa !5
  %5665 = call ptr @strerror(i32 noundef %5664) #9
  %5666 = call ptr @__errno_location() #10
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  %5668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5655, ptr noundef @.str.2, i32 noundef %5656, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 324, ptr noundef %5659, ptr noundef %5662, ptr noundef %5665, i32 noundef %5667) #9
  br label %5686

5669:                                             ; preds = %5647, %5640
  %5670 = load i32, ptr %113, align 4, !tbaa !5
  %5671 = call ptr @__errno_location() #10
  store i32 %5670, ptr %5671, align 4, !tbaa !5
  %5672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5673 = load i32, ptr @test_count, align 4, !tbaa !5
  %5674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5675 = load i32, ptr %5674, align 4, !tbaa !5
  %5676 = call ptr @s2n_strerror(i32 noundef %5675, ptr noundef @.str.4)
  %5677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  %5679 = call ptr @s2n_strerror_debug(i32 noundef %5678, ptr noundef @.str.4)
  %5680 = call ptr @__errno_location() #10
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  %5682 = call ptr @strerror(i32 noundef %5681) #9
  %5683 = call ptr @__errno_location() #10
  %5684 = load i32, ptr %5683, align 4, !tbaa !5
  %5685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5672, ptr noundef @.str.5, i32 noundef %5673, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 324, ptr noundef %5676, ptr noundef %5679, ptr noundef %5682, i32 noundef %5684) #9
  br label %5686

5686:                                             ; preds = %5669, %5652
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #9
  br label %5687

5687:                                             ; preds = %5686
  br label %5688

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

5689:                                             ; No predecessors!
  br label %5690

5690:                                             ; preds = %5689
  br label %5691

5691:                                             ; preds = %5690, %5632
  br label %5692

5692:                                             ; preds = %5691
  br label %5693

5693:                                             ; preds = %5692
  br label %5694

5694:                                             ; preds = %5693
  %5695 = load i32, ptr @test_count, align 4, !tbaa !5
  %5696 = add nsw i32 %5695, 1
  store i32 %5696, ptr @test_count, align 4, !tbaa !5
  %5697 = load ptr, ptr %15, align 8, !tbaa !9
  %5698 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %5697, ptr noundef null, ptr noundef null)
  %5699 = icmp eq i32 %5698, -1
  br i1 %5699, label %5700, label %5753

5700:                                             ; preds = %5694
  br label %5701

5701:                                             ; preds = %5700
  br label %5702

5702:                                             ; preds = %5701
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %5703 = call ptr @__errno_location() #10
  %5704 = load i32, ptr %5703, align 4, !tbaa !5
  store i32 %5704, ptr %114, align 4, !tbaa !5
  %5705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5706 = call i32 @s2n_print_stacktrace(ptr noundef %5705)
  %5707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5708 = trunc i8 %5707 to i1
  br i1 %5708, label %5709, label %5731

5709:                                             ; preds = %5702
  %5710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5711 = call i32 @fileno(ptr noundef %5710) #9
  %5712 = call i32 @isatty(i32 noundef %5711) #9
  %5713 = icmp ne i32 %5712, 0
  br i1 %5713, label %5714, label %5731

5714:                                             ; preds = %5709
  %5715 = load i32, ptr %114, align 4, !tbaa !5
  %5716 = call ptr @__errno_location() #10
  store i32 %5715, ptr %5716, align 4, !tbaa !5
  %5717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5718 = load i32, ptr @test_count, align 4, !tbaa !5
  %5719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call ptr @s2n_strerror(i32 noundef %5720, ptr noundef @.str.4)
  %5722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5723 = load i32, ptr %5722, align 4, !tbaa !5
  %5724 = call ptr @s2n_strerror_debug(i32 noundef %5723, ptr noundef @.str.4)
  %5725 = call ptr @__errno_location() #10
  %5726 = load i32, ptr %5725, align 4, !tbaa !5
  %5727 = call ptr @strerror(i32 noundef %5726) #9
  %5728 = call ptr @__errno_location() #10
  %5729 = load i32, ptr %5728, align 4, !tbaa !5
  %5730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5717, ptr noundef @.str.2, i32 noundef %5718, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 325, ptr noundef %5721, ptr noundef %5724, ptr noundef %5727, i32 noundef %5729) #9
  br label %5748

5731:                                             ; preds = %5709, %5702
  %5732 = load i32, ptr %114, align 4, !tbaa !5
  %5733 = call ptr @__errno_location() #10
  store i32 %5732, ptr %5733, align 4, !tbaa !5
  %5734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5735 = load i32, ptr @test_count, align 4, !tbaa !5
  %5736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5737 = load i32, ptr %5736, align 4, !tbaa !5
  %5738 = call ptr @s2n_strerror(i32 noundef %5737, ptr noundef @.str.4)
  %5739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5740 = load i32, ptr %5739, align 4, !tbaa !5
  %5741 = call ptr @s2n_strerror_debug(i32 noundef %5740, ptr noundef @.str.4)
  %5742 = call ptr @__errno_location() #10
  %5743 = load i32, ptr %5742, align 4, !tbaa !5
  %5744 = call ptr @strerror(i32 noundef %5743) #9
  %5745 = call ptr @__errno_location() #10
  %5746 = load i32, ptr %5745, align 4, !tbaa !5
  %5747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5734, ptr noundef @.str.5, i32 noundef %5735, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 325, ptr noundef %5738, ptr noundef %5741, ptr noundef %5744, i32 noundef %5746) #9
  br label %5748

5748:                                             ; preds = %5731, %5714
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #9
  br label %5749

5749:                                             ; preds = %5748
  br label %5750

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

5751:                                             ; No predecessors!
  br label %5752

5752:                                             ; preds = %5751
  br label %5753

5753:                                             ; preds = %5752, %5694
  br label %5754

5754:                                             ; preds = %5753
  br label %5755

5755:                                             ; preds = %5754
  br label %5756

5756:                                             ; preds = %5755
  %5757 = load i32, ptr @test_count, align 4, !tbaa !5
  %5758 = add nsw i32 %5757, 1
  store i32 %5758, ptr @test_count, align 4, !tbaa !5
  %5759 = load ptr, ptr %19, align 8, !tbaa !9
  %5760 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %5759, ptr noundef @s2n_client_hello_no_op_cb, ptr noundef null)
  %5761 = icmp eq i32 %5760, -1
  br i1 %5761, label %5762, label %5815

5762:                                             ; preds = %5756
  br label %5763

5763:                                             ; preds = %5762
  br label %5764

5764:                                             ; preds = %5763
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #9
  %5765 = call ptr @__errno_location() #10
  %5766 = load i32, ptr %5765, align 4, !tbaa !5
  store i32 %5766, ptr %115, align 4, !tbaa !5
  %5767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5768 = call i32 @s2n_print_stacktrace(ptr noundef %5767)
  %5769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5770 = trunc i8 %5769 to i1
  br i1 %5770, label %5771, label %5793

5771:                                             ; preds = %5764
  %5772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5773 = call i32 @fileno(ptr noundef %5772) #9
  %5774 = call i32 @isatty(i32 noundef %5773) #9
  %5775 = icmp ne i32 %5774, 0
  br i1 %5775, label %5776, label %5793

5776:                                             ; preds = %5771
  %5777 = load i32, ptr %115, align 4, !tbaa !5
  %5778 = call ptr @__errno_location() #10
  store i32 %5777, ptr %5778, align 4, !tbaa !5
  %5779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5780 = load i32, ptr @test_count, align 4, !tbaa !5
  %5781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5782 = load i32, ptr %5781, align 4, !tbaa !5
  %5783 = call ptr @s2n_strerror(i32 noundef %5782, ptr noundef @.str.4)
  %5784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5785 = load i32, ptr %5784, align 4, !tbaa !5
  %5786 = call ptr @s2n_strerror_debug(i32 noundef %5785, ptr noundef @.str.4)
  %5787 = call ptr @__errno_location() #10
  %5788 = load i32, ptr %5787, align 4, !tbaa !5
  %5789 = call ptr @strerror(i32 noundef %5788) #9
  %5790 = call ptr @__errno_location() #10
  %5791 = load i32, ptr %5790, align 4, !tbaa !5
  %5792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5779, ptr noundef @.str.2, i32 noundef %5780, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 330, ptr noundef %5783, ptr noundef %5786, ptr noundef %5789, i32 noundef %5791) #9
  br label %5810

5793:                                             ; preds = %5771, %5764
  %5794 = load i32, ptr %115, align 4, !tbaa !5
  %5795 = call ptr @__errno_location() #10
  store i32 %5794, ptr %5795, align 4, !tbaa !5
  %5796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5797 = load i32, ptr @test_count, align 4, !tbaa !5
  %5798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5799 = load i32, ptr %5798, align 4, !tbaa !5
  %5800 = call ptr @s2n_strerror(i32 noundef %5799, ptr noundef @.str.4)
  %5801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5802 = load i32, ptr %5801, align 4, !tbaa !5
  %5803 = call ptr @s2n_strerror_debug(i32 noundef %5802, ptr noundef @.str.4)
  %5804 = call ptr @__errno_location() #10
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  %5806 = call ptr @strerror(i32 noundef %5805) #9
  %5807 = call ptr @__errno_location() #10
  %5808 = load i32, ptr %5807, align 4, !tbaa !5
  %5809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5796, ptr noundef @.str.5, i32 noundef %5797, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 330, ptr noundef %5800, ptr noundef %5803, ptr noundef %5806, i32 noundef %5808) #9
  br label %5810

5810:                                             ; preds = %5793, %5776
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #9
  br label %5811

5811:                                             ; preds = %5810
  br label %5812

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

5813:                                             ; No predecessors!
  br label %5814

5814:                                             ; preds = %5813
  br label %5815

5815:                                             ; preds = %5814, %5756
  br label %5816

5816:                                             ; preds = %5815
  br label %5817

5817:                                             ; preds = %5816
  br label %5818

5818:                                             ; preds = %5817
  %5819 = load i32, ptr @test_count, align 4, !tbaa !5
  %5820 = add nsw i32 %5819, 1
  store i32 %5820, ptr @test_count, align 4, !tbaa !5
  %5821 = load ptr, ptr %19, align 8, !tbaa !9
  %5822 = call i32 @s2n_config_set_client_hello_cb_mode(ptr noundef %5821, i32 noundef 1)
  %5823 = icmp eq i32 %5822, -1
  br i1 %5823, label %5824, label %5877

5824:                                             ; preds = %5818
  br label %5825

5825:                                             ; preds = %5824
  br label %5826

5826:                                             ; preds = %5825
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #9
  %5827 = call ptr @__errno_location() #10
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  store i32 %5828, ptr %116, align 4, !tbaa !5
  %5829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5830 = call i32 @s2n_print_stacktrace(ptr noundef %5829)
  %5831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5832 = trunc i8 %5831 to i1
  br i1 %5832, label %5833, label %5855

5833:                                             ; preds = %5826
  %5834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5835 = call i32 @fileno(ptr noundef %5834) #9
  %5836 = call i32 @isatty(i32 noundef %5835) #9
  %5837 = icmp ne i32 %5836, 0
  br i1 %5837, label %5838, label %5855

5838:                                             ; preds = %5833
  %5839 = load i32, ptr %116, align 4, !tbaa !5
  %5840 = call ptr @__errno_location() #10
  store i32 %5839, ptr %5840, align 4, !tbaa !5
  %5841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5842 = load i32, ptr @test_count, align 4, !tbaa !5
  %5843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5844 = load i32, ptr %5843, align 4, !tbaa !5
  %5845 = call ptr @s2n_strerror(i32 noundef %5844, ptr noundef @.str.4)
  %5846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call ptr @s2n_strerror_debug(i32 noundef %5847, ptr noundef @.str.4)
  %5849 = call ptr @__errno_location() #10
  %5850 = load i32, ptr %5849, align 4, !tbaa !5
  %5851 = call ptr @strerror(i32 noundef %5850) #9
  %5852 = call ptr @__errno_location() #10
  %5853 = load i32, ptr %5852, align 4, !tbaa !5
  %5854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5841, ptr noundef @.str.2, i32 noundef %5842, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5845, ptr noundef %5848, ptr noundef %5851, i32 noundef %5853) #9
  br label %5872

5855:                                             ; preds = %5833, %5826
  %5856 = load i32, ptr %116, align 4, !tbaa !5
  %5857 = call ptr @__errno_location() #10
  store i32 %5856, ptr %5857, align 4, !tbaa !5
  %5858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5859 = load i32, ptr @test_count, align 4, !tbaa !5
  %5860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5861 = load i32, ptr %5860, align 4, !tbaa !5
  %5862 = call ptr @s2n_strerror(i32 noundef %5861, ptr noundef @.str.4)
  %5863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5864 = load i32, ptr %5863, align 4, !tbaa !5
  %5865 = call ptr @s2n_strerror_debug(i32 noundef %5864, ptr noundef @.str.4)
  %5866 = call ptr @__errno_location() #10
  %5867 = load i32, ptr %5866, align 4, !tbaa !5
  %5868 = call ptr @strerror(i32 noundef %5867) #9
  %5869 = call ptr @__errno_location() #10
  %5870 = load i32, ptr %5869, align 4, !tbaa !5
  %5871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5858, ptr noundef @.str.5, i32 noundef %5859, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5862, ptr noundef %5865, ptr noundef %5868, i32 noundef %5870) #9
  br label %5872

5872:                                             ; preds = %5855, %5838
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #9
  br label %5873

5873:                                             ; preds = %5872
  br label %5874

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

5875:                                             ; No predecessors!
  br label %5876

5876:                                             ; preds = %5875
  br label %5877

5877:                                             ; preds = %5876, %5818
  br label %5878

5878:                                             ; preds = %5877
  br label %5879

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879
  %5881 = load i32, ptr @test_count, align 4, !tbaa !5
  %5882 = add nsw i32 %5881, 1
  store i32 %5882, ptr @test_count, align 4, !tbaa !5
  %5883 = load ptr, ptr %11, align 8, !tbaa !9
  %5884 = load ptr, ptr %19, align 8, !tbaa !9
  %5885 = call i32 @s2n_connection_set_config(ptr noundef %5883, ptr noundef %5884)
  %5886 = icmp eq i32 %5885, -1
  br i1 %5886, label %5887, label %5940

5887:                                             ; preds = %5880
  br label %5888

5888:                                             ; preds = %5887
  br label %5889

5889:                                             ; preds = %5888
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #9
  %5890 = call ptr @__errno_location() #10
  %5891 = load i32, ptr %5890, align 4, !tbaa !5
  store i32 %5891, ptr %117, align 4, !tbaa !5
  %5892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5893 = call i32 @s2n_print_stacktrace(ptr noundef %5892)
  %5894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5895 = trunc i8 %5894 to i1
  br i1 %5895, label %5896, label %5918

5896:                                             ; preds = %5889
  %5897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5898 = call i32 @fileno(ptr noundef %5897) #9
  %5899 = call i32 @isatty(i32 noundef %5898) #9
  %5900 = icmp ne i32 %5899, 0
  br i1 %5900, label %5901, label %5918

5901:                                             ; preds = %5896
  %5902 = load i32, ptr %117, align 4, !tbaa !5
  %5903 = call ptr @__errno_location() #10
  store i32 %5902, ptr %5903, align 4, !tbaa !5
  %5904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5905 = load i32, ptr @test_count, align 4, !tbaa !5
  %5906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  %5908 = call ptr @s2n_strerror(i32 noundef %5907, ptr noundef @.str.4)
  %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_debug(i32 noundef %5910, ptr noundef @.str.4)
  %5912 = call ptr @__errno_location() #10
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  %5914 = call ptr @strerror(i32 noundef %5913) #9
  %5915 = call ptr @__errno_location() #10
  %5916 = load i32, ptr %5915, align 4, !tbaa !5
  %5917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5904, ptr noundef @.str.2, i32 noundef %5905, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 334, ptr noundef %5908, ptr noundef %5911, ptr noundef %5914, i32 noundef %5916) #9
  br label %5935

5918:                                             ; preds = %5896, %5889
  %5919 = load i32, ptr %117, align 4, !tbaa !5
  %5920 = call ptr @__errno_location() #10
  store i32 %5919, ptr %5920, align 4, !tbaa !5
  %5921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5922 = load i32, ptr @test_count, align 4, !tbaa !5
  %5923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5924 = load i32, ptr %5923, align 4, !tbaa !5
  %5925 = call ptr @s2n_strerror(i32 noundef %5924, ptr noundef @.str.4)
  %5926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = call ptr @s2n_strerror_debug(i32 noundef %5927, ptr noundef @.str.4)
  %5929 = call ptr @__errno_location() #10
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call ptr @strerror(i32 noundef %5930) #9
  %5932 = call ptr @__errno_location() #10
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  %5934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5921, ptr noundef @.str.5, i32 noundef %5922, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 334, ptr noundef %5925, ptr noundef %5928, ptr noundef %5931, i32 noundef %5933) #9
  br label %5935

5935:                                             ; preds = %5918, %5901
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  br label %5936

5936:                                             ; preds = %5935
  br label %5937

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

5938:                                             ; No predecessors!
  br label %5939

5939:                                             ; preds = %5938
  br label %5940

5940:                                             ; preds = %5939, %5880
  br label %5941

5941:                                             ; preds = %5940
  br label %5942

5942:                                             ; preds = %5941
  br label %5943

5943:                                             ; preds = %5942
  %5944 = load i32, ptr @test_count, align 4, !tbaa !5
  %5945 = add nsw i32 %5944, 1
  store i32 %5945, ptr @test_count, align 4, !tbaa !5
  %5946 = load ptr, ptr %12, align 8, !tbaa !9
  %5947 = load ptr, ptr %19, align 8, !tbaa !9
  %5948 = call i32 @s2n_connection_set_config(ptr noundef %5946, ptr noundef %5947)
  %5949 = icmp eq i32 %5948, -1
  br i1 %5949, label %5950, label %6003

5950:                                             ; preds = %5943
  br label %5951

5951:                                             ; preds = %5950
  br label %5952

5952:                                             ; preds = %5951
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #9
  %5953 = call ptr @__errno_location() #10
  %5954 = load i32, ptr %5953, align 4, !tbaa !5
  store i32 %5954, ptr %118, align 4, !tbaa !5
  %5955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5956 = call i32 @s2n_print_stacktrace(ptr noundef %5955)
  %5957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5958 = trunc i8 %5957 to i1
  br i1 %5958, label %5959, label %5981

5959:                                             ; preds = %5952
  %5960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5961 = call i32 @fileno(ptr noundef %5960) #9
  %5962 = call i32 @isatty(i32 noundef %5961) #9
  %5963 = icmp ne i32 %5962, 0
  br i1 %5963, label %5964, label %5981

5964:                                             ; preds = %5959
  %5965 = load i32, ptr %118, align 4, !tbaa !5
  %5966 = call ptr @__errno_location() #10
  store i32 %5965, ptr %5966, align 4, !tbaa !5
  %5967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5968 = load i32, ptr @test_count, align 4, !tbaa !5
  %5969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5970 = load i32, ptr %5969, align 4, !tbaa !5
  %5971 = call ptr @s2n_strerror(i32 noundef %5970, ptr noundef @.str.4)
  %5972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5973 = load i32, ptr %5972, align 4, !tbaa !5
  %5974 = call ptr @s2n_strerror_debug(i32 noundef %5973, ptr noundef @.str.4)
  %5975 = call ptr @__errno_location() #10
  %5976 = load i32, ptr %5975, align 4, !tbaa !5
  %5977 = call ptr @strerror(i32 noundef %5976) #9
  %5978 = call ptr @__errno_location() #10
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  %5980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5967, ptr noundef @.str.2, i32 noundef %5968, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 334, ptr noundef %5971, ptr noundef %5974, ptr noundef %5977, i32 noundef %5979) #9
  br label %5998

5981:                                             ; preds = %5959, %5952
  %5982 = load i32, ptr %118, align 4, !tbaa !5
  %5983 = call ptr @__errno_location() #10
  store i32 %5982, ptr %5983, align 4, !tbaa !5
  %5984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5985 = load i32, ptr @test_count, align 4, !tbaa !5
  %5986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5987 = load i32, ptr %5986, align 4, !tbaa !5
  %5988 = call ptr @s2n_strerror(i32 noundef %5987, ptr noundef @.str.4)
  %5989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5990 = load i32, ptr %5989, align 4, !tbaa !5
  %5991 = call ptr @s2n_strerror_debug(i32 noundef %5990, ptr noundef @.str.4)
  %5992 = call ptr @__errno_location() #10
  %5993 = load i32, ptr %5992, align 4, !tbaa !5
  %5994 = call ptr @strerror(i32 noundef %5993) #9
  %5995 = call ptr @__errno_location() #10
  %5996 = load i32, ptr %5995, align 4, !tbaa !5
  %5997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5984, ptr noundef @.str.5, i32 noundef %5985, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 334, ptr noundef %5988, ptr noundef %5991, ptr noundef %5994, i32 noundef %5996) #9
  br label %5998

5998:                                             ; preds = %5981, %5964
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #9
  br label %5999

5999:                                             ; preds = %5998
  br label %6000

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

6001:                                             ; No predecessors!
  br label %6002

6002:                                             ; preds = %6001
  br label %6003

6003:                                             ; preds = %6002, %5943
  br label %6004

6004:                                             ; preds = %6003
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

6006:                                             ; preds = %6005
  %6007 = load i32, ptr @test_count, align 4, !tbaa !5
  %6008 = add nsw i32 %6007, 1
  store i32 %6008, ptr @test_count, align 4, !tbaa !5
  %6009 = load ptr, ptr %11, align 8, !tbaa !9
  %6010 = call i32 @s2n_connection_set_io_pair(ptr noundef %6009, ptr noundef %26)
  %6011 = icmp eq i32 %6010, -1
  br i1 %6011, label %6012, label %6065

6012:                                             ; preds = %6006
  br label %6013

6013:                                             ; preds = %6012
  br label %6014

6014:                                             ; preds = %6013
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #9
  %6015 = call ptr @__errno_location() #10
  %6016 = load i32, ptr %6015, align 4, !tbaa !5
  store i32 %6016, ptr %119, 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) #9
  %6024 = call i32 @isatty(i32 noundef %6023) #9
  %6025 = icmp ne i32 %6024, 0
  br i1 %6025, label %6026, label %6043

6026:                                             ; preds = %6021
  %6027 = load i32, ptr %119, align 4, !tbaa !5
  %6028 = call ptr @__errno_location() #10
  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() #10
  %6038 = load i32, ptr %6037, align 4, !tbaa !5
  %6039 = call ptr @strerror(i32 noundef %6038) #9
  %6040 = call ptr @__errno_location() #10
  %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.30, ptr noundef @.str.1, i32 noundef 335, ptr noundef %6033, ptr noundef %6036, ptr noundef %6039, i32 noundef %6041) #9
  br label %6060

6043:                                             ; preds = %6021, %6014
  %6044 = load i32, ptr %119, align 4, !tbaa !5
  %6045 = call ptr @__errno_location() #10
  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() #10
  %6055 = load i32, ptr %6054, align 4, !tbaa !5
  %6056 = call ptr @strerror(i32 noundef %6055) #9
  %6057 = call ptr @__errno_location() #10
  %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.30, ptr noundef @.str.1, i32 noundef 335, ptr noundef %6050, ptr noundef %6053, ptr noundef %6056, i32 noundef %6058) #9
  br label %6060

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

6061:                                             ; preds = %6060
  br label %6062

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

6063:                                             ; No predecessors!
  br label %6064

6064:                                             ; preds = %6063
  br label %6065

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

6066:                                             ; preds = %6065
  br label %6067

6067:                                             ; preds = %6066
  br label %6068

6068:                                             ; preds = %6067
  %6069 = load i32, ptr @test_count, align 4, !tbaa !5
  %6070 = add nsw i32 %6069, 1
  store i32 %6070, ptr @test_count, align 4, !tbaa !5
  %6071 = load ptr, ptr %12, align 8, !tbaa !9
  %6072 = call i32 @s2n_connection_set_io_pair(ptr noundef %6071, ptr noundef %26)
  %6073 = icmp eq i32 %6072, -1
  br i1 %6073, label %6074, label %6127

6074:                                             ; preds = %6068
  br label %6075

6075:                                             ; preds = %6074
  br label %6076

6076:                                             ; preds = %6075
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #9
  %6077 = call ptr @__errno_location() #10
  %6078 = load i32, ptr %6077, align 4, !tbaa !5
  store i32 %6078, ptr %120, align 4, !tbaa !5
  %6079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6080 = call i32 @s2n_print_stacktrace(ptr noundef %6079)
  %6081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6082 = trunc i8 %6081 to i1
  br i1 %6082, label %6083, label %6105

6083:                                             ; preds = %6076
  %6084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6085 = call i32 @fileno(ptr noundef %6084) #9
  %6086 = call i32 @isatty(i32 noundef %6085) #9
  %6087 = icmp ne i32 %6086, 0
  br i1 %6087, label %6088, label %6105

6088:                                             ; preds = %6083
  %6089 = load i32, ptr %120, align 4, !tbaa !5
  %6090 = call ptr @__errno_location() #10
  store i32 %6089, ptr %6090, align 4, !tbaa !5
  %6091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6092 = load i32, ptr @test_count, align 4, !tbaa !5
  %6093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6094 = load i32, ptr %6093, align 4, !tbaa !5
  %6095 = call ptr @s2n_strerror(i32 noundef %6094, ptr noundef @.str.4)
  %6096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6097 = load i32, ptr %6096, align 4, !tbaa !5
  %6098 = call ptr @s2n_strerror_debug(i32 noundef %6097, ptr noundef @.str.4)
  %6099 = call ptr @__errno_location() #10
  %6100 = load i32, ptr %6099, align 4, !tbaa !5
  %6101 = call ptr @strerror(i32 noundef %6100) #9
  %6102 = call ptr @__errno_location() #10
  %6103 = load i32, ptr %6102, align 4, !tbaa !5
  %6104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6091, ptr noundef @.str.2, i32 noundef %6092, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 335, ptr noundef %6095, ptr noundef %6098, ptr noundef %6101, i32 noundef %6103) #9
  br label %6122

6105:                                             ; preds = %6083, %6076
  %6106 = load i32, ptr %120, align 4, !tbaa !5
  %6107 = call ptr @__errno_location() #10
  store i32 %6106, ptr %6107, align 4, !tbaa !5
  %6108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6109 = load i32, ptr @test_count, align 4, !tbaa !5
  %6110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6111 = load i32, ptr %6110, align 4, !tbaa !5
  %6112 = call ptr @s2n_strerror(i32 noundef %6111, ptr noundef @.str.4)
  %6113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6114 = load i32, ptr %6113, align 4, !tbaa !5
  %6115 = call ptr @s2n_strerror_debug(i32 noundef %6114, ptr noundef @.str.4)
  %6116 = call ptr @__errno_location() #10
  %6117 = load i32, ptr %6116, align 4, !tbaa !5
  %6118 = call ptr @strerror(i32 noundef %6117) #9
  %6119 = call ptr @__errno_location() #10
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  %6121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6108, ptr noundef @.str.5, i32 noundef %6109, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 335, ptr noundef %6112, ptr noundef %6115, ptr noundef %6118, i32 noundef %6120) #9
  br label %6122

6122:                                             ; preds = %6105, %6088
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  br label %6123

6123:                                             ; preds = %6122
  br label %6124

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

6125:                                             ; No predecessors!
  br label %6126

6126:                                             ; preds = %6125
  br label %6127

6127:                                             ; preds = %6126, %6068
  br label %6128

6128:                                             ; preds = %6127
  br label %6129

6129:                                             ; preds = %6128
  %6130 = load ptr, ptr %11, align 8, !tbaa !9
  %6131 = getelementptr inbounds %struct.s2n_connection, ptr %6130, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %6131, align 8, !tbaa !46
  br label %6132

6132:                                             ; preds = %6129
  %6133 = load i32, ptr @test_count, align 4, !tbaa !5
  %6134 = add nsw i32 %6133, 1
  store i32 %6134, ptr @test_count, align 4, !tbaa !5
  %6135 = load ptr, ptr %11, align 8, !tbaa !9
  %6136 = call i32 @setup_client_psks(ptr noundef %6135)
  %6137 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %6136, ptr %6137, align 4
  %6138 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  %6139 = load i32, ptr %6138, align 4
  %6140 = call zeroext i1 @s2n_result_is_ok(i32 %6139)
  br i1 %6140, label %6194, label %6141

6141:                                             ; preds = %6132
  br label %6142

6142:                                             ; preds = %6141
  br label %6143

6143:                                             ; preds = %6142
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #9
  %6144 = call ptr @__errno_location() #10
  %6145 = load i32, ptr %6144, align 4, !tbaa !5
  store i32 %6145, ptr %122, align 4, !tbaa !5
  %6146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6147 = call i32 @s2n_print_stacktrace(ptr noundef %6146)
  %6148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6149 = trunc i8 %6148 to i1
  br i1 %6149, label %6150, label %6172

6150:                                             ; preds = %6143
  %6151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6152 = call i32 @fileno(ptr noundef %6151) #9
  %6153 = call i32 @isatty(i32 noundef %6152) #9
  %6154 = icmp ne i32 %6153, 0
  br i1 %6154, label %6155, label %6172

6155:                                             ; preds = %6150
  %6156 = load i32, ptr %122, align 4, !tbaa !5
  %6157 = call ptr @__errno_location() #10
  store i32 %6156, ptr %6157, align 4, !tbaa !5
  %6158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6159 = load i32, ptr @test_count, align 4, !tbaa !5
  %6160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6161 = load i32, ptr %6160, align 4, !tbaa !5
  %6162 = call ptr @s2n_strerror(i32 noundef %6161, ptr noundef @.str.4)
  %6163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6164 = load i32, ptr %6163, align 4, !tbaa !5
  %6165 = call ptr @s2n_strerror_debug(i32 noundef %6164, ptr noundef @.str.4)
  %6166 = call ptr @__errno_location() #10
  %6167 = load i32, ptr %6166, align 4, !tbaa !5
  %6168 = call ptr @strerror(i32 noundef %6167) #9
  %6169 = call ptr @__errno_location() #10
  %6170 = load i32, ptr %6169, align 4, !tbaa !5
  %6171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6158, ptr noundef @.str.2, i32 noundef %6159, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6162, ptr noundef %6165, ptr noundef %6168, i32 noundef %6170) #9
  br label %6189

6172:                                             ; preds = %6150, %6143
  %6173 = load i32, ptr %122, align 4, !tbaa !5
  %6174 = call ptr @__errno_location() #10
  store i32 %6173, ptr %6174, align 4, !tbaa !5
  %6175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6176 = load i32, ptr @test_count, align 4, !tbaa !5
  %6177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6178 = load i32, ptr %6177, align 4, !tbaa !5
  %6179 = call ptr @s2n_strerror(i32 noundef %6178, ptr noundef @.str.4)
  %6180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6181 = load i32, ptr %6180, align 4, !tbaa !5
  %6182 = call ptr @s2n_strerror_debug(i32 noundef %6181, ptr noundef @.str.4)
  %6183 = call ptr @__errno_location() #10
  %6184 = load i32, ptr %6183, align 4, !tbaa !5
  %6185 = call ptr @strerror(i32 noundef %6184) #9
  %6186 = call ptr @__errno_location() #10
  %6187 = load i32, ptr %6186, align 4, !tbaa !5
  %6188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6175, ptr noundef @.str.5, i32 noundef %6176, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6179, ptr noundef %6182, ptr noundef %6185, i32 noundef %6187) #9
  br label %6189

6189:                                             ; preds = %6172, %6155
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #9
  br label %6190

6190:                                             ; preds = %6189
  br label %6191

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

6192:                                             ; No predecessors!
  br label %6193

6193:                                             ; preds = %6192
  br label %6194

6194:                                             ; preds = %6193, %6132
  br label %6195

6195:                                             ; preds = %6194
  br label %6196

6196:                                             ; preds = %6195
  br label %6197

6197:                                             ; preds = %6196
  %6198 = load i32, ptr @test_count, align 4, !tbaa !5
  %6199 = add nsw i32 %6198, 1
  store i32 %6199, ptr @test_count, align 4, !tbaa !5
  %6200 = load ptr, ptr %12, align 8, !tbaa !9
  %6201 = call i32 @setup_server_psks(ptr noundef %6200)
  %6202 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  store i32 %6201, ptr %6202, align 4
  %6203 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  %6204 = load i32, ptr %6203, align 4
  %6205 = call zeroext i1 @s2n_result_is_ok(i32 %6204)
  br i1 %6205, label %6259, label %6206

6206:                                             ; preds = %6197
  br label %6207

6207:                                             ; preds = %6206
  br label %6208

6208:                                             ; preds = %6207
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #9
  %6209 = call ptr @__errno_location() #10
  %6210 = load i32, ptr %6209, align 4, !tbaa !5
  store i32 %6210, ptr %124, align 4, !tbaa !5
  %6211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6212 = call i32 @s2n_print_stacktrace(ptr noundef %6211)
  %6213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6214 = trunc i8 %6213 to i1
  br i1 %6214, label %6215, label %6237

6215:                                             ; preds = %6208
  %6216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6217 = call i32 @fileno(ptr noundef %6216) #9
  %6218 = call i32 @isatty(i32 noundef %6217) #9
  %6219 = icmp ne i32 %6218, 0
  br i1 %6219, label %6220, label %6237

6220:                                             ; preds = %6215
  %6221 = load i32, ptr %124, align 4, !tbaa !5
  %6222 = call ptr @__errno_location() #10
  store i32 %6221, ptr %6222, align 4, !tbaa !5
  %6223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6224 = load i32, ptr @test_count, align 4, !tbaa !5
  %6225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6226 = load i32, ptr %6225, align 4, !tbaa !5
  %6227 = call ptr @s2n_strerror(i32 noundef %6226, ptr noundef @.str.4)
  %6228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6229 = load i32, ptr %6228, align 4, !tbaa !5
  %6230 = call ptr @s2n_strerror_debug(i32 noundef %6229, ptr noundef @.str.4)
  %6231 = call ptr @__errno_location() #10
  %6232 = load i32, ptr %6231, align 4, !tbaa !5
  %6233 = call ptr @strerror(i32 noundef %6232) #9
  %6234 = call ptr @__errno_location() #10
  %6235 = load i32, ptr %6234, align 4, !tbaa !5
  %6236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6223, ptr noundef @.str.2, i32 noundef %6224, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 342, ptr noundef %6227, ptr noundef %6230, ptr noundef %6233, i32 noundef %6235) #9
  br label %6254

6237:                                             ; preds = %6215, %6208
  %6238 = load i32, ptr %124, align 4, !tbaa !5
  %6239 = call ptr @__errno_location() #10
  store i32 %6238, ptr %6239, align 4, !tbaa !5
  %6240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6241 = load i32, ptr @test_count, align 4, !tbaa !5
  %6242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6243 = load i32, ptr %6242, align 4, !tbaa !5
  %6244 = call ptr @s2n_strerror(i32 noundef %6243, ptr noundef @.str.4)
  %6245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6246 = load i32, ptr %6245, align 4, !tbaa !5
  %6247 = call ptr @s2n_strerror_debug(i32 noundef %6246, ptr noundef @.str.4)
  %6248 = call ptr @__errno_location() #10
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  %6250 = call ptr @strerror(i32 noundef %6249) #9
  %6251 = call ptr @__errno_location() #10
  %6252 = load i32, ptr %6251, align 4, !tbaa !5
  %6253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6240, ptr noundef @.str.5, i32 noundef %6241, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 342, ptr noundef %6244, ptr noundef %6247, ptr noundef %6250, i32 noundef %6252) #9
  br label %6254

6254:                                             ; preds = %6237, %6220
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #9
  br label %6255

6255:                                             ; preds = %6254
  br label %6256

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

6257:                                             ; No predecessors!
  br label %6258

6258:                                             ; preds = %6257
  br label %6259

6259:                                             ; preds = %6258, %6197
  br label %6260

6260:                                             ; preds = %6259
  br label %6261

6261:                                             ; preds = %6260
  br label %6262

6262:                                             ; preds = %6261
  br label %6263

6263:                                             ; preds = %6262
  br label %6264

6264:                                             ; preds = %6263
  %6265 = load i32, ptr @test_count, align 4, !tbaa !5
  %6266 = add nsw i32 %6265, 1
  store i32 %6266, ptr @test_count, align 4, !tbaa !5
  %6267 = load ptr, ptr %12, align 8, !tbaa !9
  %6268 = load ptr, ptr %11, align 8, !tbaa !9
  %6269 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %6267, ptr noundef %6268)
  %6270 = icmp eq i32 %6269, -1
  br i1 %6270, label %6324, label %6271

6271:                                             ; preds = %6264
  br label %6272

6272:                                             ; preds = %6271
  br label %6273

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

6280:                                             ; preds = %6273
  %6281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6282 = call i32 @fileno(ptr noundef %6281) #9
  %6283 = call i32 @isatty(i32 noundef %6282) #9
  %6284 = icmp ne i32 %6283, 0
  br i1 %6284, label %6285, label %6302

6285:                                             ; preds = %6280
  %6286 = load i32, ptr %125, align 4, !tbaa !5
  %6287 = call ptr @__errno_location() #10
  store i32 %6286, ptr %6287, align 4, !tbaa !5
  %6288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6289 = load i32, ptr @test_count, align 4, !tbaa !5
  %6290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6291 = load i32, ptr %6290, align 4, !tbaa !5
  %6292 = call ptr @s2n_strerror(i32 noundef %6291, ptr noundef @.str.4)
  %6293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6294 = load i32, ptr %6293, align 4, !tbaa !5
  %6295 = call ptr @s2n_strerror_debug(i32 noundef %6294, ptr noundef @.str.4)
  %6296 = call ptr @__errno_location() #10
  %6297 = load i32, ptr %6296, align 4, !tbaa !5
  %6298 = call ptr @strerror(i32 noundef %6297) #9
  %6299 = call ptr @__errno_location() #10
  %6300 = load i32, ptr %6299, align 4, !tbaa !5
  %6301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6288, ptr noundef @.str.2, i32 noundef %6289, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 345, ptr noundef %6292, ptr noundef %6295, ptr noundef %6298, i32 noundef %6300) #9
  br label %6319

6302:                                             ; preds = %6280, %6273
  %6303 = load i32, ptr %125, align 4, !tbaa !5
  %6304 = call ptr @__errno_location() #10
  store i32 %6303, ptr %6304, align 4, !tbaa !5
  %6305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6306 = load i32, ptr @test_count, align 4, !tbaa !5
  %6307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6308 = load i32, ptr %6307, align 4, !tbaa !5
  %6309 = call ptr @s2n_strerror(i32 noundef %6308, ptr noundef @.str.4)
  %6310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6311 = load i32, ptr %6310, align 4, !tbaa !5
  %6312 = call ptr @s2n_strerror_debug(i32 noundef %6311, ptr noundef @.str.4)
  %6313 = call ptr @__errno_location() #10
  %6314 = load i32, ptr %6313, align 4, !tbaa !5
  %6315 = call ptr @strerror(i32 noundef %6314) #9
  %6316 = call ptr @__errno_location() #10
  %6317 = load i32, ptr %6316, align 4, !tbaa !5
  %6318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6305, ptr noundef @.str.5, i32 noundef %6306, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 345, ptr noundef %6309, ptr noundef %6312, ptr noundef %6315, i32 noundef %6317) #9
  br label %6319

6319:                                             ; preds = %6302, %6285
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #9
  br label %6320

6320:                                             ; preds = %6319
  br label %6321

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

6322:                                             ; No predecessors!
  br label %6323

6323:                                             ; preds = %6322
  br label %6324

6324:                                             ; preds = %6323, %6264
  br label %6325

6325:                                             ; preds = %6324
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326
  %6328 = load i32, ptr @test_count, align 4, !tbaa !5
  %6329 = add nsw i32 %6328, 1
  store i32 %6329, ptr @test_count, align 4, !tbaa !5
  %6330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6331 = load i32, ptr %6330, align 4, !tbaa !5
  %6332 = icmp eq i32 %6331, 201326593
  br i1 %6332, label %6386, label %6333

6333:                                             ; preds = %6327
  br label %6334

6334:                                             ; preds = %6333
  br label %6335

6335:                                             ; preds = %6334
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #9
  %6336 = call ptr @__errno_location() #10
  %6337 = load i32, ptr %6336, align 4, !tbaa !5
  store i32 %6337, ptr %126, align 4, !tbaa !5
  %6338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6339 = call i32 @s2n_print_stacktrace(ptr noundef %6338)
  %6340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6341 = trunc i8 %6340 to i1
  br i1 %6341, label %6342, label %6364

6342:                                             ; preds = %6335
  %6343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6344 = call i32 @fileno(ptr noundef %6343) #9
  %6345 = call i32 @isatty(i32 noundef %6344) #9
  %6346 = icmp ne i32 %6345, 0
  br i1 %6346, label %6347, label %6364

6347:                                             ; preds = %6342
  %6348 = load i32, ptr %126, align 4, !tbaa !5
  %6349 = call ptr @__errno_location() #10
  store i32 %6348, ptr %6349, align 4, !tbaa !5
  %6350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6351 = load i32, ptr @test_count, align 4, !tbaa !5
  %6352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6353 = load i32, ptr %6352, align 4, !tbaa !5
  %6354 = call ptr @s2n_strerror(i32 noundef %6353, ptr noundef @.str.4)
  %6355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6356 = load i32, ptr %6355, align 4, !tbaa !5
  %6357 = call ptr @s2n_strerror_debug(i32 noundef %6356, ptr noundef @.str.4)
  %6358 = call ptr @__errno_location() #10
  %6359 = load i32, ptr %6358, align 4, !tbaa !5
  %6360 = call ptr @strerror(i32 noundef %6359) #9
  %6361 = call ptr @__errno_location() #10
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6350, ptr noundef @.str.2, i32 noundef %6351, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 345, ptr noundef %6354, ptr noundef %6357, ptr noundef %6360, i32 noundef %6362) #9
  br label %6381

6364:                                             ; preds = %6342, %6335
  %6365 = load i32, ptr %126, align 4, !tbaa !5
  %6366 = call ptr @__errno_location() #10
  store i32 %6365, ptr %6366, align 4, !tbaa !5
  %6367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6368 = load i32, ptr @test_count, align 4, !tbaa !5
  %6369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  %6371 = call ptr @s2n_strerror(i32 noundef %6370, ptr noundef @.str.4)
  %6372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6373 = load i32, ptr %6372, align 4, !tbaa !5
  %6374 = call ptr @s2n_strerror_debug(i32 noundef %6373, ptr noundef @.str.4)
  %6375 = call ptr @__errno_location() #10
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @strerror(i32 noundef %6376) #9
  %6378 = call ptr @__errno_location() #10
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6367, ptr noundef @.str.5, i32 noundef %6368, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 345, ptr noundef %6371, ptr noundef %6374, ptr noundef %6377, i32 noundef %6379) #9
  br label %6381

6381:                                             ; preds = %6364, %6347
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #9
  br label %6382

6382:                                             ; preds = %6381
  br label %6383

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

6384:                                             ; No predecessors!
  br label %6385

6385:                                             ; preds = %6384
  br label %6386

6386:                                             ; preds = %6385, %6327
  br label %6387

6387:                                             ; preds = %6386
  br label %6388

6388:                                             ; preds = %6387
  br label %6389

6389:                                             ; preds = %6388
  %6390 = load i32, ptr @test_count, align 4, !tbaa !5
  %6391 = add nsw i32 %6390, 1
  store i32 %6391, ptr @test_count, align 4, !tbaa !5
  %6392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6393 = load i32, ptr %6392, align 4, !tbaa !5
  %6394 = call ptr @s2n_strerror_debug(i32 noundef %6393, ptr noundef @.str.4)
  %6395 = icmp eq ptr %6394, null
  br i1 %6395, label %6396, label %6449

6396:                                             ; preds = %6389
  br label %6397

6397:                                             ; preds = %6396
  br label %6398

6398:                                             ; preds = %6397
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #9
  %6399 = call ptr @__errno_location() #10
  %6400 = load i32, ptr %6399, align 4, !tbaa !5
  store i32 %6400, ptr %127, align 4, !tbaa !5
  %6401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6402 = call i32 @s2n_print_stacktrace(ptr noundef %6401)
  %6403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6404 = trunc i8 %6403 to i1
  br i1 %6404, label %6405, label %6427

6405:                                             ; preds = %6398
  %6406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6407 = call i32 @fileno(ptr noundef %6406) #9
  %6408 = call i32 @isatty(i32 noundef %6407) #9
  %6409 = icmp ne i32 %6408, 0
  br i1 %6409, label %6410, label %6427

6410:                                             ; preds = %6405
  %6411 = load i32, ptr %127, align 4, !tbaa !5
  %6412 = call ptr @__errno_location() #10
  store i32 %6411, ptr %6412, align 4, !tbaa !5
  %6413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6414 = load i32, ptr @test_count, align 4, !tbaa !5
  %6415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6416 = load i32, ptr %6415, align 4, !tbaa !5
  %6417 = call ptr @s2n_strerror(i32 noundef %6416, ptr noundef @.str.4)
  %6418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6419 = load i32, ptr %6418, align 4, !tbaa !5
  %6420 = call ptr @s2n_strerror_debug(i32 noundef %6419, ptr noundef @.str.4)
  %6421 = call ptr @__errno_location() #10
  %6422 = load i32, ptr %6421, align 4, !tbaa !5
  %6423 = call ptr @strerror(i32 noundef %6422) #9
  %6424 = call ptr @__errno_location() #10
  %6425 = load i32, ptr %6424, align 4, !tbaa !5
  %6426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6413, ptr noundef @.str.2, i32 noundef %6414, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 345, ptr noundef %6417, ptr noundef %6420, ptr noundef %6423, i32 noundef %6425) #9
  br label %6444

6427:                                             ; preds = %6405, %6398
  %6428 = load i32, ptr %127, align 4, !tbaa !5
  %6429 = call ptr @__errno_location() #10
  store i32 %6428, ptr %6429, align 4, !tbaa !5
  %6430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6431 = load i32, ptr @test_count, align 4, !tbaa !5
  %6432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6433 = load i32, ptr %6432, align 4, !tbaa !5
  %6434 = call ptr @s2n_strerror(i32 noundef %6433, ptr noundef @.str.4)
  %6435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6436 = load i32, ptr %6435, align 4, !tbaa !5
  %6437 = call ptr @s2n_strerror_debug(i32 noundef %6436, ptr noundef @.str.4)
  %6438 = call ptr @__errno_location() #10
  %6439 = load i32, ptr %6438, align 4, !tbaa !5
  %6440 = call ptr @strerror(i32 noundef %6439) #9
  %6441 = call ptr @__errno_location() #10
  %6442 = load i32, ptr %6441, align 4, !tbaa !5
  %6443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6430, ptr noundef @.str.5, i32 noundef %6431, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 345, ptr noundef %6434, ptr noundef %6437, ptr noundef %6440, i32 noundef %6442) #9
  br label %6444

6444:                                             ; preds = %6427, %6410
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #9
  br label %6445

6445:                                             ; preds = %6444
  br label %6446

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

6447:                                             ; No predecessors!
  br label %6448

6448:                                             ; preds = %6447
  br label %6449

6449:                                             ; preds = %6448, %6389
  br label %6450

6450:                                             ; preds = %6449
  br label %6451

6451:                                             ; preds = %6450
  br label %6452

6452:                                             ; preds = %6451
  br label %6453

6453:                                             ; preds = %6452
  br label %6454

6454:                                             ; preds = %6453
  %6455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6455, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6456 = call ptr @__errno_location() #10
  store i32 0, ptr %6456, align 4, !tbaa !5
  br label %6457

6457:                                             ; preds = %6454
  br label %6458

6458:                                             ; preds = %6457
  br label %6459

6459:                                             ; preds = %6458
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

6461:                                             ; preds = %6460
  %6462 = load i32, ptr @test_count, align 4, !tbaa !5
  %6463 = add nsw i32 %6462, 1
  store i32 %6463, ptr @test_count, align 4, !tbaa !5
  %6464 = load ptr, ptr %12, align 8, !tbaa !9
  %6465 = call i32 @s2n_client_hello_cb_done(ptr noundef %6464)
  %6466 = icmp eq i32 %6465, -1
  br i1 %6466, label %6467, label %6520

6467:                                             ; preds = %6461
  br label %6468

6468:                                             ; preds = %6467
  br label %6469

6469:                                             ; preds = %6468
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #9
  %6470 = call ptr @__errno_location() #10
  %6471 = load i32, ptr %6470, align 4, !tbaa !5
  store i32 %6471, ptr %128, align 4, !tbaa !5
  %6472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6473 = call i32 @s2n_print_stacktrace(ptr noundef %6472)
  %6474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6475 = trunc i8 %6474 to i1
  br i1 %6475, label %6476, label %6498

6476:                                             ; preds = %6469
  %6477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6478 = call i32 @fileno(ptr noundef %6477) #9
  %6479 = call i32 @isatty(i32 noundef %6478) #9
  %6480 = icmp ne i32 %6479, 0
  br i1 %6480, label %6481, label %6498

6481:                                             ; preds = %6476
  %6482 = load i32, ptr %128, align 4, !tbaa !5
  %6483 = call ptr @__errno_location() #10
  store i32 %6482, ptr %6483, align 4, !tbaa !5
  %6484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6485 = load i32, ptr @test_count, align 4, !tbaa !5
  %6486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6487 = load i32, ptr %6486, align 4, !tbaa !5
  %6488 = call ptr @s2n_strerror(i32 noundef %6487, ptr noundef @.str.4)
  %6489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6490 = load i32, ptr %6489, align 4, !tbaa !5
  %6491 = call ptr @s2n_strerror_debug(i32 noundef %6490, ptr noundef @.str.4)
  %6492 = call ptr @__errno_location() #10
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  %6494 = call ptr @strerror(i32 noundef %6493) #9
  %6495 = call ptr @__errno_location() #10
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6484, ptr noundef @.str.2, i32 noundef %6485, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 346, ptr noundef %6488, ptr noundef %6491, ptr noundef %6494, i32 noundef %6496) #9
  br label %6515

6498:                                             ; preds = %6476, %6469
  %6499 = load i32, ptr %128, align 4, !tbaa !5
  %6500 = call ptr @__errno_location() #10
  store i32 %6499, ptr %6500, align 4, !tbaa !5
  %6501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6502 = load i32, ptr @test_count, align 4, !tbaa !5
  %6503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6504 = load i32, ptr %6503, align 4, !tbaa !5
  %6505 = call ptr @s2n_strerror(i32 noundef %6504, ptr noundef @.str.4)
  %6506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6507 = load i32, ptr %6506, align 4, !tbaa !5
  %6508 = call ptr @s2n_strerror_debug(i32 noundef %6507, ptr noundef @.str.4)
  %6509 = call ptr @__errno_location() #10
  %6510 = load i32, ptr %6509, align 4, !tbaa !5
  %6511 = call ptr @strerror(i32 noundef %6510) #9
  %6512 = call ptr @__errno_location() #10
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6501, ptr noundef @.str.5, i32 noundef %6502, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 346, ptr noundef %6505, ptr noundef %6508, ptr noundef %6511, i32 noundef %6513) #9
  br label %6515

6515:                                             ; preds = %6498, %6481
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #9
  br label %6516

6516:                                             ; preds = %6515
  br label %6517

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

6518:                                             ; No predecessors!
  br label %6519

6519:                                             ; preds = %6518
  br label %6520

6520:                                             ; preds = %6519, %6461
  br label %6521

6521:                                             ; preds = %6520
  br label %6522

6522:                                             ; preds = %6521
  br label %6523

6523:                                             ; preds = %6522
  %6524 = load i32, ptr @test_count, align 4, !tbaa !5
  %6525 = add nsw i32 %6524, 1
  store i32 %6525, ptr @test_count, align 4, !tbaa !5
  %6526 = load ptr, ptr %12, align 8, !tbaa !9
  %6527 = load ptr, ptr %11, align 8, !tbaa !9
  %6528 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %6526, ptr noundef %6527)
  %6529 = icmp eq i32 %6528, -1
  br i1 %6529, label %6530, label %6583

6530:                                             ; preds = %6523
  br label %6531

6531:                                             ; preds = %6530
  br label %6532

6532:                                             ; preds = %6531
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #9
  %6533 = call ptr @__errno_location() #10
  %6534 = load i32, ptr %6533, align 4, !tbaa !5
  store i32 %6534, ptr %129, align 4, !tbaa !5
  %6535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6536 = call i32 @s2n_print_stacktrace(ptr noundef %6535)
  %6537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6538 = trunc i8 %6537 to i1
  br i1 %6538, label %6539, label %6561

6539:                                             ; preds = %6532
  %6540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6541 = call i32 @fileno(ptr noundef %6540) #9
  %6542 = call i32 @isatty(i32 noundef %6541) #9
  %6543 = icmp ne i32 %6542, 0
  br i1 %6543, label %6544, label %6561

6544:                                             ; preds = %6539
  %6545 = load i32, ptr %129, align 4, !tbaa !5
  %6546 = call ptr @__errno_location() #10
  store i32 %6545, ptr %6546, align 4, !tbaa !5
  %6547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6548 = load i32, ptr @test_count, align 4, !tbaa !5
  %6549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6550 = load i32, ptr %6549, align 4, !tbaa !5
  %6551 = call ptr @s2n_strerror(i32 noundef %6550, ptr noundef @.str.4)
  %6552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6553 = load i32, ptr %6552, align 4, !tbaa !5
  %6554 = call ptr @s2n_strerror_debug(i32 noundef %6553, ptr noundef @.str.4)
  %6555 = call ptr @__errno_location() #10
  %6556 = load i32, ptr %6555, align 4, !tbaa !5
  %6557 = call ptr @strerror(i32 noundef %6556) #9
  %6558 = call ptr @__errno_location() #10
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6547, ptr noundef @.str.2, i32 noundef %6548, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 347, ptr noundef %6551, ptr noundef %6554, ptr noundef %6557, i32 noundef %6559) #9
  br label %6578

6561:                                             ; preds = %6539, %6532
  %6562 = load i32, ptr %129, align 4, !tbaa !5
  %6563 = call ptr @__errno_location() #10
  store i32 %6562, ptr %6563, align 4, !tbaa !5
  %6564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6565 = load i32, ptr @test_count, align 4, !tbaa !5
  %6566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  %6568 = call ptr @s2n_strerror(i32 noundef %6567, ptr noundef @.str.4)
  %6569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror_debug(i32 noundef %6570, ptr noundef @.str.4)
  %6572 = call ptr @__errno_location() #10
  %6573 = load i32, ptr %6572, align 4, !tbaa !5
  %6574 = call ptr @strerror(i32 noundef %6573) #9
  %6575 = call ptr @__errno_location() #10
  %6576 = load i32, ptr %6575, align 4, !tbaa !5
  %6577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6564, ptr noundef @.str.5, i32 noundef %6565, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 347, ptr noundef %6568, ptr noundef %6571, ptr noundef %6574, i32 noundef %6576) #9
  br label %6578

6578:                                             ; preds = %6561, %6544
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #9
  br label %6579

6579:                                             ; preds = %6578
  br label %6580

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

6581:                                             ; No predecessors!
  br label %6582

6582:                                             ; preds = %6581
  br label %6583

6583:                                             ; preds = %6582, %6523
  br label %6584

6584:                                             ; preds = %6583
  br label %6585

6585:                                             ; preds = %6584
  br label %6586

6586:                                             ; preds = %6585
  %6587 = load i32, ptr @test_count, align 4, !tbaa !5
  %6588 = add nsw i32 %6587, 1
  store i32 %6588, ptr @test_count, align 4, !tbaa !5
  %6589 = load ptr, ptr %11, align 8, !tbaa !9
  %6590 = getelementptr inbounds %struct.s2n_connection, ptr %6589, i32 0, i32 52
  %6591 = getelementptr inbounds %struct.s2n_handshake, ptr %6590, i32 0, i32 6
  %6592 = load i32, ptr %6591, align 4, !tbaa !47
  %6593 = and i32 %6592, 16
  %6594 = icmp ne i32 %6593, 0
  br i1 %6594, label %6595, label %6602

6595:                                             ; preds = %6586
  %6596 = load ptr, ptr %12, align 8, !tbaa !9
  %6597 = getelementptr inbounds %struct.s2n_connection, ptr %6596, i32 0, i32 52
  %6598 = getelementptr inbounds %struct.s2n_handshake, ptr %6597, i32 0, i32 6
  %6599 = load i32, ptr %6598, align 4, !tbaa !47
  %6600 = and i32 %6599, 16
  %6601 = icmp ne i32 %6600, 0
  br i1 %6601, label %6655, label %6602

6602:                                             ; preds = %6595, %6586
  br label %6603

6603:                                             ; preds = %6602
  br label %6604

6604:                                             ; preds = %6603
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #9
  %6605 = call ptr @__errno_location() #10
  %6606 = load i32, ptr %6605, align 4, !tbaa !5
  store i32 %6606, ptr %130, align 4, !tbaa !5
  %6607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6608 = call i32 @s2n_print_stacktrace(ptr noundef %6607)
  %6609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6610 = trunc i8 %6609 to i1
  br i1 %6610, label %6611, label %6633

6611:                                             ; preds = %6604
  %6612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6613 = call i32 @fileno(ptr noundef %6612) #9
  %6614 = call i32 @isatty(i32 noundef %6613) #9
  %6615 = icmp ne i32 %6614, 0
  br i1 %6615, label %6616, label %6633

6616:                                             ; preds = %6611
  %6617 = load i32, ptr %130, align 4, !tbaa !5
  %6618 = call ptr @__errno_location() #10
  store i32 %6617, ptr %6618, align 4, !tbaa !5
  %6619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6620 = load i32, ptr @test_count, align 4, !tbaa !5
  %6621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6622 = load i32, ptr %6621, align 4, !tbaa !5
  %6623 = call ptr @s2n_strerror(i32 noundef %6622, ptr noundef @.str.4)
  %6624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6625 = load i32, ptr %6624, align 4, !tbaa !5
  %6626 = call ptr @s2n_strerror_debug(i32 noundef %6625, ptr noundef @.str.4)
  %6627 = call ptr @__errno_location() #10
  %6628 = load i32, ptr %6627, align 4, !tbaa !5
  %6629 = call ptr @strerror(i32 noundef %6628) #9
  %6630 = call ptr @__errno_location() #10
  %6631 = load i32, ptr %6630, align 4, !tbaa !5
  %6632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6619, ptr noundef @.str.2, i32 noundef %6620, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 350, ptr noundef %6623, ptr noundef %6626, ptr noundef %6629, i32 noundef %6631) #9
  br label %6650

6633:                                             ; preds = %6611, %6604
  %6634 = load i32, ptr %130, align 4, !tbaa !5
  %6635 = call ptr @__errno_location() #10
  store i32 %6634, ptr %6635, align 4, !tbaa !5
  %6636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6637 = load i32, ptr @test_count, align 4, !tbaa !5
  %6638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6639 = load i32, ptr %6638, align 4, !tbaa !5
  %6640 = call ptr @s2n_strerror(i32 noundef %6639, ptr noundef @.str.4)
  %6641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6642 = load i32, ptr %6641, align 4, !tbaa !5
  %6643 = call ptr @s2n_strerror_debug(i32 noundef %6642, ptr noundef @.str.4)
  %6644 = call ptr @__errno_location() #10
  %6645 = load i32, ptr %6644, align 4, !tbaa !5
  %6646 = call ptr @strerror(i32 noundef %6645) #9
  %6647 = call ptr @__errno_location() #10
  %6648 = load i32, ptr %6647, align 4, !tbaa !5
  %6649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6636, ptr noundef @.str.5, i32 noundef %6637, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 350, ptr noundef %6640, ptr noundef %6643, ptr noundef %6646, i32 noundef %6648) #9
  br label %6650

6650:                                             ; preds = %6633, %6616
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #9
  br label %6651

6651:                                             ; preds = %6650
  br label %6652

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

6653:                                             ; No predecessors!
  br label %6654

6654:                                             ; preds = %6653
  br label %6655

6655:                                             ; preds = %6654, %6595
  br label %6656

6656:                                             ; preds = %6655
  br label %6657

6657:                                             ; preds = %6656
  br label %6658

6658:                                             ; preds = %6657
  %6659 = load i32, ptr @test_count, align 4, !tbaa !5
  %6660 = add nsw i32 %6659, 1
  store i32 %6660, ptr @test_count, align 4, !tbaa !5
  %6661 = load ptr, ptr %11, align 8, !tbaa !9
  %6662 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %6661, i32 noundef 2)
  br i1 %6662, label %6663, label %6719

6663:                                             ; preds = %6658
  %6664 = load ptr, ptr %12, align 8, !tbaa !9
  %6665 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %6664, i32 noundef 2)
  br i1 %6665, label %6666, label %6719

6666:                                             ; preds = %6663
  br label %6667

6667:                                             ; preds = %6666
  br label %6668

6668:                                             ; preds = %6667
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #9
  %6669 = call ptr @__errno_location() #10
  %6670 = load i32, ptr %6669, align 4, !tbaa !5
  store i32 %6670, ptr %131, align 4, !tbaa !5
  %6671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6672 = call i32 @s2n_print_stacktrace(ptr noundef %6671)
  %6673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6674 = trunc i8 %6673 to i1
  br i1 %6674, label %6675, label %6697

6675:                                             ; preds = %6668
  %6676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6677 = call i32 @fileno(ptr noundef %6676) #9
  %6678 = call i32 @isatty(i32 noundef %6677) #9
  %6679 = icmp ne i32 %6678, 0
  br i1 %6679, label %6680, label %6697

6680:                                             ; preds = %6675
  %6681 = load i32, ptr %131, align 4, !tbaa !5
  %6682 = call ptr @__errno_location() #10
  store i32 %6681, ptr %6682, align 4, !tbaa !5
  %6683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6684 = load i32, ptr @test_count, align 4, !tbaa !5
  %6685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6686 = load i32, ptr %6685, align 4, !tbaa !5
  %6687 = call ptr @s2n_strerror(i32 noundef %6686, ptr noundef @.str.4)
  %6688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6689 = load i32, ptr %6688, align 4, !tbaa !5
  %6690 = call ptr @s2n_strerror_debug(i32 noundef %6689, ptr noundef @.str.4)
  %6691 = call ptr @__errno_location() #10
  %6692 = load i32, ptr %6691, align 4, !tbaa !5
  %6693 = call ptr @strerror(i32 noundef %6692) #9
  %6694 = call ptr @__errno_location() #10
  %6695 = load i32, ptr %6694, align 4, !tbaa !5
  %6696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6683, ptr noundef @.str.2, i32 noundef %6684, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 351, ptr noundef %6687, ptr noundef %6690, ptr noundef %6693, i32 noundef %6695) #9
  br label %6714

6697:                                             ; preds = %6675, %6668
  %6698 = load i32, ptr %131, align 4, !tbaa !5
  %6699 = call ptr @__errno_location() #10
  store i32 %6698, ptr %6699, align 4, !tbaa !5
  %6700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6701 = load i32, ptr @test_count, align 4, !tbaa !5
  %6702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6703 = load i32, ptr %6702, align 4, !tbaa !5
  %6704 = call ptr @s2n_strerror(i32 noundef %6703, ptr noundef @.str.4)
  %6705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6706 = load i32, ptr %6705, align 4, !tbaa !5
  %6707 = call ptr @s2n_strerror_debug(i32 noundef %6706, ptr noundef @.str.4)
  %6708 = call ptr @__errno_location() #10
  %6709 = load i32, ptr %6708, align 4, !tbaa !5
  %6710 = call ptr @strerror(i32 noundef %6709) #9
  %6711 = call ptr @__errno_location() #10
  %6712 = load i32, ptr %6711, align 4, !tbaa !5
  %6713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6700, ptr noundef @.str.5, i32 noundef %6701, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 351, ptr noundef %6704, ptr noundef %6707, ptr noundef %6710, i32 noundef %6712) #9
  br label %6714

6714:                                             ; preds = %6697, %6680
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #9
  br label %6715

6715:                                             ; preds = %6714
  br label %6716

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

6717:                                             ; No predecessors!
  br label %6718

6718:                                             ; preds = %6717
  br label %6719

6719:                                             ; preds = %6718, %6663, %6658
  br label %6720

6720:                                             ; preds = %6719
  br label %6721

6721:                                             ; preds = %6720
  br label %6722

6722:                                             ; preds = %6721
  %6723 = load i32, ptr @test_count, align 4, !tbaa !5
  %6724 = add nsw i32 %6723, 1
  store i32 %6724, ptr @test_count, align 4, !tbaa !5
  %6725 = load ptr, ptr %12, align 8, !tbaa !9
  %6726 = call i32 @validate_chosen_psk(ptr noundef %6725, ptr noundef @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %6727 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  store i32 %6726, ptr %6727, align 4
  %6728 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  %6729 = load i32, ptr %6728, align 4
  %6730 = call zeroext i1 @s2n_result_is_ok(i32 %6729)
  br i1 %6730, label %6784, label %6731

6731:                                             ; preds = %6722
  br label %6732

6732:                                             ; preds = %6731
  br label %6733

6733:                                             ; preds = %6732
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #9
  %6734 = call ptr @__errno_location() #10
  %6735 = load i32, ptr %6734, align 4, !tbaa !5
  store i32 %6735, ptr %133, align 4, !tbaa !5
  %6736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6737 = call i32 @s2n_print_stacktrace(ptr noundef %6736)
  %6738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6739 = trunc i8 %6738 to i1
  br i1 %6739, label %6740, label %6762

6740:                                             ; preds = %6733
  %6741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6742 = call i32 @fileno(ptr noundef %6741) #9
  %6743 = call i32 @isatty(i32 noundef %6742) #9
  %6744 = icmp ne i32 %6743, 0
  br i1 %6744, label %6745, label %6762

6745:                                             ; preds = %6740
  %6746 = load i32, ptr %133, align 4, !tbaa !5
  %6747 = call ptr @__errno_location() #10
  store i32 %6746, ptr %6747, align 4, !tbaa !5
  %6748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6749 = load i32, ptr @test_count, align 4, !tbaa !5
  %6750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6751 = load i32, ptr %6750, align 4, !tbaa !5
  %6752 = call ptr @s2n_strerror(i32 noundef %6751, ptr noundef @.str.4)
  %6753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6754 = load i32, ptr %6753, align 4, !tbaa !5
  %6755 = call ptr @s2n_strerror_debug(i32 noundef %6754, ptr noundef @.str.4)
  %6756 = call ptr @__errno_location() #10
  %6757 = load i32, ptr %6756, align 4, !tbaa !5
  %6758 = call ptr @strerror(i32 noundef %6757) #9
  %6759 = call ptr @__errno_location() #10
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6748, ptr noundef @.str.2, i32 noundef %6749, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 355, ptr noundef %6752, ptr noundef %6755, ptr noundef %6758, i32 noundef %6760) #9
  br label %6779

6762:                                             ; preds = %6740, %6733
  %6763 = load i32, ptr %133, align 4, !tbaa !5
  %6764 = call ptr @__errno_location() #10
  store i32 %6763, ptr %6764, align 4, !tbaa !5
  %6765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6766 = load i32, ptr @test_count, align 4, !tbaa !5
  %6767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6768 = load i32, ptr %6767, align 4, !tbaa !5
  %6769 = call ptr @s2n_strerror(i32 noundef %6768, ptr noundef @.str.4)
  %6770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6771 = load i32, ptr %6770, align 4, !tbaa !5
  %6772 = call ptr @s2n_strerror_debug(i32 noundef %6771, ptr noundef @.str.4)
  %6773 = call ptr @__errno_location() #10
  %6774 = load i32, ptr %6773, align 4, !tbaa !5
  %6775 = call ptr @strerror(i32 noundef %6774) #9
  %6776 = call ptr @__errno_location() #10
  %6777 = load i32, ptr %6776, align 4, !tbaa !5
  %6778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6765, ptr noundef @.str.5, i32 noundef %6766, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 355, ptr noundef %6769, ptr noundef %6772, ptr noundef %6775, i32 noundef %6777) #9
  br label %6779

6779:                                             ; preds = %6762, %6745
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #9
  br label %6780

6780:                                             ; preds = %6779
  br label %6781

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

6782:                                             ; No predecessors!
  br label %6783

6783:                                             ; preds = %6782
  br label %6784

6784:                                             ; preds = %6783, %6722
  br label %6785

6785:                                             ; preds = %6784
  br label %6786

6786:                                             ; preds = %6785
  br label %6787

6787:                                             ; preds = %6786
  %6788 = load i32, ptr @test_count, align 4, !tbaa !5
  %6789 = add nsw i32 %6788, 1
  store i32 %6789, ptr @test_count, align 4, !tbaa !5
  %6790 = load ptr, ptr %12, align 8, !tbaa !9
  %6791 = load ptr, ptr %11, align 8, !tbaa !9
  %6792 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %6790, ptr noundef %6791)
  %6793 = icmp eq i32 %6792, -1
  br i1 %6793, label %6794, label %6847

6794:                                             ; preds = %6787
  br label %6795

6795:                                             ; preds = %6794
  br label %6796

6796:                                             ; preds = %6795
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #9
  %6797 = call ptr @__errno_location() #10
  %6798 = load i32, ptr %6797, align 4, !tbaa !5
  store i32 %6798, ptr %134, align 4, !tbaa !5
  %6799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6800 = call i32 @s2n_print_stacktrace(ptr noundef %6799)
  %6801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6802 = trunc i8 %6801 to i1
  br i1 %6802, label %6803, label %6825

6803:                                             ; preds = %6796
  %6804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6805 = call i32 @fileno(ptr noundef %6804) #9
  %6806 = call i32 @isatty(i32 noundef %6805) #9
  %6807 = icmp ne i32 %6806, 0
  br i1 %6807, label %6808, label %6825

6808:                                             ; preds = %6803
  %6809 = load i32, ptr %134, align 4, !tbaa !5
  %6810 = call ptr @__errno_location() #10
  store i32 %6809, ptr %6810, align 4, !tbaa !5
  %6811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6812 = load i32, ptr @test_count, align 4, !tbaa !5
  %6813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6814 = load i32, ptr %6813, align 4, !tbaa !5
  %6815 = call ptr @s2n_strerror(i32 noundef %6814, ptr noundef @.str.4)
  %6816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6817 = load i32, ptr %6816, align 4, !tbaa !5
  %6818 = call ptr @s2n_strerror_debug(i32 noundef %6817, ptr noundef @.str.4)
  %6819 = call ptr @__errno_location() #10
  %6820 = load i32, ptr %6819, align 4, !tbaa !5
  %6821 = call ptr @strerror(i32 noundef %6820) #9
  %6822 = call ptr @__errno_location() #10
  %6823 = load i32, ptr %6822, align 4, !tbaa !5
  %6824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6811, ptr noundef @.str.2, i32 noundef %6812, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6815, ptr noundef %6818, ptr noundef %6821, i32 noundef %6823) #9
  br label %6842

6825:                                             ; preds = %6803, %6796
  %6826 = load i32, ptr %134, align 4, !tbaa !5
  %6827 = call ptr @__errno_location() #10
  store i32 %6826, ptr %6827, align 4, !tbaa !5
  %6828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6829 = load i32, ptr @test_count, align 4, !tbaa !5
  %6830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  %6832 = call ptr @s2n_strerror(i32 noundef %6831, ptr noundef @.str.4)
  %6833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6834 = load i32, ptr %6833, align 4, !tbaa !5
  %6835 = call ptr @s2n_strerror_debug(i32 noundef %6834, ptr noundef @.str.4)
  %6836 = call ptr @__errno_location() #10
  %6837 = load i32, ptr %6836, align 4, !tbaa !5
  %6838 = call ptr @strerror(i32 noundef %6837) #9
  %6839 = call ptr @__errno_location() #10
  %6840 = load i32, ptr %6839, align 4, !tbaa !5
  %6841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6828, ptr noundef @.str.5, i32 noundef %6829, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6832, ptr noundef %6835, ptr noundef %6838, i32 noundef %6840) #9
  br label %6842

6842:                                             ; preds = %6825, %6808
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #9
  br label %6843

6843:                                             ; preds = %6842
  br label %6844

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

6845:                                             ; No predecessors!
  br label %6846

6846:                                             ; preds = %6845
  br label %6847

6847:                                             ; preds = %6846, %6787
  br label %6848

6848:                                             ; preds = %6847
  br label %6849

6849:                                             ; preds = %6848
  br label %6850

6850:                                             ; preds = %6849
  %6851 = load i32, ptr @test_count, align 4, !tbaa !5
  %6852 = add nsw i32 %6851, 1
  store i32 %6852, ptr @test_count, align 4, !tbaa !5
  %6853 = load ptr, ptr %11, align 8, !tbaa !9
  %6854 = call i32 @s2n_connection_wipe(ptr noundef %6853)
  %6855 = icmp eq i32 %6854, -1
  br i1 %6855, label %6856, label %6909

6856:                                             ; preds = %6850
  br label %6857

6857:                                             ; preds = %6856
  br label %6858

6858:                                             ; preds = %6857
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #9
  %6859 = call ptr @__errno_location() #10
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  store i32 %6860, ptr %135, align 4, !tbaa !5
  %6861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6862 = call i32 @s2n_print_stacktrace(ptr noundef %6861)
  %6863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6864 = trunc i8 %6863 to i1
  br i1 %6864, label %6865, label %6887

6865:                                             ; preds = %6858
  %6866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6867 = call i32 @fileno(ptr noundef %6866) #9
  %6868 = call i32 @isatty(i32 noundef %6867) #9
  %6869 = icmp ne i32 %6868, 0
  br i1 %6869, label %6870, label %6887

6870:                                             ; preds = %6865
  %6871 = load i32, ptr %135, align 4, !tbaa !5
  %6872 = call ptr @__errno_location() #10
  store i32 %6871, ptr %6872, align 4, !tbaa !5
  %6873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6874 = load i32, ptr @test_count, align 4, !tbaa !5
  %6875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6876 = load i32, ptr %6875, align 4, !tbaa !5
  %6877 = call ptr @s2n_strerror(i32 noundef %6876, ptr noundef @.str.4)
  %6878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call ptr @s2n_strerror_debug(i32 noundef %6879, ptr noundef @.str.4)
  %6881 = call ptr @__errno_location() #10
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call ptr @strerror(i32 noundef %6882) #9
  %6884 = call ptr @__errno_location() #10
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6873, ptr noundef @.str.2, i32 noundef %6874, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 359, ptr noundef %6877, ptr noundef %6880, ptr noundef %6883, i32 noundef %6885) #9
  br label %6904

6887:                                             ; preds = %6865, %6858
  %6888 = load i32, ptr %135, align 4, !tbaa !5
  %6889 = call ptr @__errno_location() #10
  store i32 %6888, ptr %6889, align 4, !tbaa !5
  %6890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6891 = load i32, ptr @test_count, align 4, !tbaa !5
  %6892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6893 = load i32, ptr %6892, align 4, !tbaa !5
  %6894 = call ptr @s2n_strerror(i32 noundef %6893, ptr noundef @.str.4)
  %6895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call ptr @s2n_strerror_debug(i32 noundef %6896, ptr noundef @.str.4)
  %6898 = call ptr @__errno_location() #10
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  %6900 = call ptr @strerror(i32 noundef %6899) #9
  %6901 = call ptr @__errno_location() #10
  %6902 = load i32, ptr %6901, align 4, !tbaa !5
  %6903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6890, ptr noundef @.str.5, i32 noundef %6891, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 359, ptr noundef %6894, ptr noundef %6897, ptr noundef %6900, i32 noundef %6902) #9
  br label %6904

6904:                                             ; preds = %6887, %6870
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #9
  br label %6905

6905:                                             ; preds = %6904
  br label %6906

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

6907:                                             ; No predecessors!
  br label %6908

6908:                                             ; preds = %6907
  br label %6909

6909:                                             ; preds = %6908, %6850
  br label %6910

6910:                                             ; preds = %6909
  br label %6911

6911:                                             ; preds = %6910
  br label %6912

6912:                                             ; preds = %6911
  %6913 = load i32, ptr @test_count, align 4, !tbaa !5
  %6914 = add nsw i32 %6913, 1
  store i32 %6914, ptr @test_count, align 4, !tbaa !5
  %6915 = load ptr, ptr %12, align 8, !tbaa !9
  %6916 = call i32 @s2n_connection_wipe(ptr noundef %6915)
  %6917 = icmp eq i32 %6916, -1
  br i1 %6917, label %6918, label %6971

6918:                                             ; preds = %6912
  br label %6919

6919:                                             ; preds = %6918
  br label %6920

6920:                                             ; preds = %6919
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #9
  %6921 = call ptr @__errno_location() #10
  %6922 = load i32, ptr %6921, align 4, !tbaa !5
  store i32 %6922, ptr %136, align 4, !tbaa !5
  %6923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6924 = call i32 @s2n_print_stacktrace(ptr noundef %6923)
  %6925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6926 = trunc i8 %6925 to i1
  br i1 %6926, label %6927, label %6949

6927:                                             ; preds = %6920
  %6928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6929 = call i32 @fileno(ptr noundef %6928) #9
  %6930 = call i32 @isatty(i32 noundef %6929) #9
  %6931 = icmp ne i32 %6930, 0
  br i1 %6931, label %6932, label %6949

6932:                                             ; preds = %6927
  %6933 = load i32, ptr %136, align 4, !tbaa !5
  %6934 = call ptr @__errno_location() #10
  store i32 %6933, ptr %6934, align 4, !tbaa !5
  %6935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6936 = load i32, ptr @test_count, align 4, !tbaa !5
  %6937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @s2n_strerror(i32 noundef %6938, ptr noundef @.str.4)
  %6940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call ptr @s2n_strerror_debug(i32 noundef %6941, ptr noundef @.str.4)
  %6943 = call ptr @__errno_location() #10
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  %6945 = call ptr @strerror(i32 noundef %6944) #9
  %6946 = call ptr @__errno_location() #10
  %6947 = load i32, ptr %6946, align 4, !tbaa !5
  %6948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6935, ptr noundef @.str.2, i32 noundef %6936, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 360, ptr noundef %6939, ptr noundef %6942, ptr noundef %6945, i32 noundef %6947) #9
  br label %6966

6949:                                             ; preds = %6927, %6920
  %6950 = load i32, ptr %136, align 4, !tbaa !5
  %6951 = call ptr @__errno_location() #10
  store i32 %6950, ptr %6951, align 4, !tbaa !5
  %6952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6953 = load i32, ptr @test_count, align 4, !tbaa !5
  %6954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6955 = load i32, ptr %6954, align 4, !tbaa !5
  %6956 = call ptr @s2n_strerror(i32 noundef %6955, ptr noundef @.str.4)
  %6957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6958 = load i32, ptr %6957, align 4, !tbaa !5
  %6959 = call ptr @s2n_strerror_debug(i32 noundef %6958, ptr noundef @.str.4)
  %6960 = call ptr @__errno_location() #10
  %6961 = load i32, ptr %6960, align 4, !tbaa !5
  %6962 = call ptr @strerror(i32 noundef %6961) #9
  %6963 = call ptr @__errno_location() #10
  %6964 = load i32, ptr %6963, align 4, !tbaa !5
  %6965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6952, ptr noundef @.str.5, i32 noundef %6953, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 360, ptr noundef %6956, ptr noundef %6959, ptr noundef %6962, i32 noundef %6964) #9
  br label %6966

6966:                                             ; preds = %6949, %6932
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #9
  br label %6967

6967:                                             ; preds = %6966
  br label %6968

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

6969:                                             ; No predecessors!
  br label %6970

6970:                                             ; preds = %6969
  br label %6971

6971:                                             ; preds = %6970, %6912
  br label %6972

6972:                                             ; preds = %6971
  br label %6973

6973:                                             ; preds = %6972
  br label %6974

6974:                                             ; preds = %6973
  %6975 = load i32, ptr @test_count, align 4, !tbaa !5
  %6976 = add nsw i32 %6975, 1
  store i32 %6976, ptr @test_count, align 4, !tbaa !5
  %6977 = load ptr, ptr %19, align 8, !tbaa !9
  %6978 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %6977, ptr noundef null, ptr noundef null)
  %6979 = icmp eq i32 %6978, -1
  br i1 %6979, label %6980, label %7033

6980:                                             ; preds = %6974
  br label %6981

6981:                                             ; preds = %6980
  br label %6982

6982:                                             ; preds = %6981
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #9
  %6983 = call ptr @__errno_location() #10
  %6984 = load i32, ptr %6983, align 4, !tbaa !5
  store i32 %6984, ptr %137, align 4, !tbaa !5
  %6985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6986 = call i32 @s2n_print_stacktrace(ptr noundef %6985)
  %6987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6988 = trunc i8 %6987 to i1
  br i1 %6988, label %6989, label %7011

6989:                                             ; preds = %6982
  %6990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6991 = call i32 @fileno(ptr noundef %6990) #9
  %6992 = call i32 @isatty(i32 noundef %6991) #9
  %6993 = icmp ne i32 %6992, 0
  br i1 %6993, label %6994, label %7011

6994:                                             ; preds = %6989
  %6995 = load i32, ptr %137, align 4, !tbaa !5
  %6996 = call ptr @__errno_location() #10
  store i32 %6995, ptr %6996, align 4, !tbaa !5
  %6997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6998 = load i32, ptr @test_count, align 4, !tbaa !5
  %6999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  %7001 = call ptr @s2n_strerror(i32 noundef %7000, ptr noundef @.str.4)
  %7002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7003 = load i32, ptr %7002, align 4, !tbaa !5
  %7004 = call ptr @s2n_strerror_debug(i32 noundef %7003, ptr noundef @.str.4)
  %7005 = call ptr @__errno_location() #10
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  %7007 = call ptr @strerror(i32 noundef %7006) #9
  %7008 = call ptr @__errno_location() #10
  %7009 = load i32, ptr %7008, align 4, !tbaa !5
  %7010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6997, ptr noundef @.str.2, i32 noundef %6998, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7001, ptr noundef %7004, ptr noundef %7007, i32 noundef %7009) #9
  br label %7028

7011:                                             ; preds = %6989, %6982
  %7012 = load i32, ptr %137, align 4, !tbaa !5
  %7013 = call ptr @__errno_location() #10
  store i32 %7012, ptr %7013, align 4, !tbaa !5
  %7014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7015 = load i32, ptr @test_count, align 4, !tbaa !5
  %7016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7017 = load i32, ptr %7016, align 4, !tbaa !5
  %7018 = call ptr @s2n_strerror(i32 noundef %7017, ptr noundef @.str.4)
  %7019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7020 = load i32, ptr %7019, align 4, !tbaa !5
  %7021 = call ptr @s2n_strerror_debug(i32 noundef %7020, ptr noundef @.str.4)
  %7022 = call ptr @__errno_location() #10
  %7023 = load i32, ptr %7022, align 4, !tbaa !5
  %7024 = call ptr @strerror(i32 noundef %7023) #9
  %7025 = call ptr @__errno_location() #10
  %7026 = load i32, ptr %7025, align 4, !tbaa !5
  %7027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7014, ptr noundef @.str.5, i32 noundef %7015, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7018, ptr noundef %7021, ptr noundef %7024, i32 noundef %7026) #9
  br label %7028

7028:                                             ; preds = %7011, %6994
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #9
  br label %7029

7029:                                             ; preds = %7028
  br label %7030

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

7031:                                             ; No predecessors!
  br label %7032

7032:                                             ; preds = %7031
  br label %7033

7033:                                             ; preds = %7032, %6974
  br label %7034

7034:                                             ; preds = %7033
  br label %7035

7035:                                             ; preds = %7034
  br label %7036

7036:                                             ; preds = %7035
  %7037 = load i32, ptr @test_count, align 4, !tbaa !5
  %7038 = add nsw i32 %7037, 1
  store i32 %7038, ptr @test_count, align 4, !tbaa !5
  %7039 = load ptr, ptr %11, align 8, !tbaa !9
  %7040 = load ptr, ptr %19, align 8, !tbaa !9
  %7041 = call i32 @s2n_connection_set_config(ptr noundef %7039, ptr noundef %7040)
  %7042 = icmp eq i32 %7041, -1
  br i1 %7042, label %7043, label %7096

7043:                                             ; preds = %7036
  br label %7044

7044:                                             ; preds = %7043
  br label %7045

7045:                                             ; preds = %7044
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #9
  %7046 = call ptr @__errno_location() #10
  %7047 = load i32, ptr %7046, align 4, !tbaa !5
  store i32 %7047, ptr %138, align 4, !tbaa !5
  %7048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7049 = call i32 @s2n_print_stacktrace(ptr noundef %7048)
  %7050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7051 = trunc i8 %7050 to i1
  br i1 %7051, label %7052, label %7074

7052:                                             ; preds = %7045
  %7053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7054 = call i32 @fileno(ptr noundef %7053) #9
  %7055 = call i32 @isatty(i32 noundef %7054) #9
  %7056 = icmp ne i32 %7055, 0
  br i1 %7056, label %7057, label %7074

7057:                                             ; preds = %7052
  %7058 = load i32, ptr %138, align 4, !tbaa !5
  %7059 = call ptr @__errno_location() #10
  store i32 %7058, ptr %7059, align 4, !tbaa !5
  %7060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7061 = load i32, ptr @test_count, align 4, !tbaa !5
  %7062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7063 = load i32, ptr %7062, align 4, !tbaa !5
  %7064 = call ptr @s2n_strerror(i32 noundef %7063, ptr noundef @.str.4)
  %7065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7066 = load i32, ptr %7065, align 4, !tbaa !5
  %7067 = call ptr @s2n_strerror_debug(i32 noundef %7066, ptr noundef @.str.4)
  %7068 = call ptr @__errno_location() #10
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  %7070 = call ptr @strerror(i32 noundef %7069) #9
  %7071 = call ptr @__errno_location() #10
  %7072 = load i32, ptr %7071, align 4, !tbaa !5
  %7073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7060, ptr noundef @.str.2, i32 noundef %7061, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7064, ptr noundef %7067, ptr noundef %7070, i32 noundef %7072) #9
  br label %7091

7074:                                             ; preds = %7052, %7045
  %7075 = load i32, ptr %138, align 4, !tbaa !5
  %7076 = call ptr @__errno_location() #10
  store i32 %7075, ptr %7076, align 4, !tbaa !5
  %7077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7078 = load i32, ptr @test_count, align 4, !tbaa !5
  %7079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7080 = load i32, ptr %7079, align 4, !tbaa !5
  %7081 = call ptr @s2n_strerror(i32 noundef %7080, ptr noundef @.str.4)
  %7082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7083 = load i32, ptr %7082, align 4, !tbaa !5
  %7084 = call ptr @s2n_strerror_debug(i32 noundef %7083, ptr noundef @.str.4)
  %7085 = call ptr @__errno_location() #10
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  %7087 = call ptr @strerror(i32 noundef %7086) #9
  %7088 = call ptr @__errno_location() #10
  %7089 = load i32, ptr %7088, align 4, !tbaa !5
  %7090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7077, ptr noundef @.str.5, i32 noundef %7078, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7081, ptr noundef %7084, ptr noundef %7087, i32 noundef %7089) #9
  br label %7091

7091:                                             ; preds = %7074, %7057
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #9
  br label %7092

7092:                                             ; preds = %7091
  br label %7093

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

7094:                                             ; No predecessors!
  br label %7095

7095:                                             ; preds = %7094
  br label %7096

7096:                                             ; preds = %7095, %7036
  br label %7097

7097:                                             ; preds = %7096
  br label %7098

7098:                                             ; preds = %7097
  br label %7099

7099:                                             ; preds = %7098
  %7100 = load i32, ptr @test_count, align 4, !tbaa !5
  %7101 = add nsw i32 %7100, 1
  store i32 %7101, ptr @test_count, align 4, !tbaa !5
  %7102 = load ptr, ptr %12, align 8, !tbaa !9
  %7103 = load ptr, ptr %19, align 8, !tbaa !9
  %7104 = call i32 @s2n_connection_set_config(ptr noundef %7102, ptr noundef %7103)
  %7105 = icmp eq i32 %7104, -1
  br i1 %7105, label %7106, label %7159

7106:                                             ; preds = %7099
  br label %7107

7107:                                             ; preds = %7106
  br label %7108

7108:                                             ; preds = %7107
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #9
  %7109 = call ptr @__errno_location() #10
  %7110 = load i32, ptr %7109, align 4, !tbaa !5
  store i32 %7110, ptr %139, align 4, !tbaa !5
  %7111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7112 = call i32 @s2n_print_stacktrace(ptr noundef %7111)
  %7113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7114 = trunc i8 %7113 to i1
  br i1 %7114, label %7115, label %7137

7115:                                             ; preds = %7108
  %7116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7117 = call i32 @fileno(ptr noundef %7116) #9
  %7118 = call i32 @isatty(i32 noundef %7117) #9
  %7119 = icmp ne i32 %7118, 0
  br i1 %7119, label %7120, label %7137

7120:                                             ; preds = %7115
  %7121 = load i32, ptr %139, align 4, !tbaa !5
  %7122 = call ptr @__errno_location() #10
  store i32 %7121, ptr %7122, align 4, !tbaa !5
  %7123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7124 = load i32, ptr @test_count, align 4, !tbaa !5
  %7125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  %7127 = call ptr @s2n_strerror(i32 noundef %7126, ptr noundef @.str.4)
  %7128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  %7130 = call ptr @s2n_strerror_debug(i32 noundef %7129, ptr noundef @.str.4)
  %7131 = call ptr @__errno_location() #10
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call ptr @strerror(i32 noundef %7132) #9
  %7134 = call ptr @__errno_location() #10
  %7135 = load i32, ptr %7134, align 4, !tbaa !5
  %7136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7123, ptr noundef @.str.2, i32 noundef %7124, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7127, ptr noundef %7130, ptr noundef %7133, i32 noundef %7135) #9
  br label %7154

7137:                                             ; preds = %7115, %7108
  %7138 = load i32, ptr %139, align 4, !tbaa !5
  %7139 = call ptr @__errno_location() #10
  store i32 %7138, ptr %7139, align 4, !tbaa !5
  %7140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7141 = load i32, ptr @test_count, align 4, !tbaa !5
  %7142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7143 = load i32, ptr %7142, align 4, !tbaa !5
  %7144 = call ptr @s2n_strerror(i32 noundef %7143, ptr noundef @.str.4)
  %7145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7146 = load i32, ptr %7145, align 4, !tbaa !5
  %7147 = call ptr @s2n_strerror_debug(i32 noundef %7146, ptr noundef @.str.4)
  %7148 = call ptr @__errno_location() #10
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call ptr @strerror(i32 noundef %7149) #9
  %7151 = call ptr @__errno_location() #10
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  %7153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7140, ptr noundef @.str.5, i32 noundef %7141, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7144, ptr noundef %7147, ptr noundef %7150, i32 noundef %7152) #9
  br label %7154

7154:                                             ; preds = %7137, %7120
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #9
  br label %7155

7155:                                             ; preds = %7154
  br label %7156

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

7157:                                             ; No predecessors!
  br label %7158

7158:                                             ; preds = %7157
  br label %7159

7159:                                             ; preds = %7158, %7099
  br label %7160

7160:                                             ; preds = %7159
  br label %7161

7161:                                             ; preds = %7160
  br label %7162

7162:                                             ; preds = %7161
  %7163 = load i32, ptr @test_count, align 4, !tbaa !5
  %7164 = add nsw i32 %7163, 1
  store i32 %7164, ptr @test_count, align 4, !tbaa !5
  %7165 = load ptr, ptr %11, align 8, !tbaa !9
  %7166 = call i32 @s2n_connection_set_io_pair(ptr noundef %7165, ptr noundef %26)
  %7167 = icmp eq i32 %7166, -1
  br i1 %7167, label %7168, label %7221

7168:                                             ; preds = %7162
  br label %7169

7169:                                             ; preds = %7168
  br label %7170

7170:                                             ; preds = %7169
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #9
  %7171 = call ptr @__errno_location() #10
  %7172 = load i32, ptr %7171, align 4, !tbaa !5
  store i32 %7172, ptr %140, align 4, !tbaa !5
  %7173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7174 = call i32 @s2n_print_stacktrace(ptr noundef %7173)
  %7175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7176 = trunc i8 %7175 to i1
  br i1 %7176, label %7177, label %7199

7177:                                             ; preds = %7170
  %7178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7179 = call i32 @fileno(ptr noundef %7178) #9
  %7180 = call i32 @isatty(i32 noundef %7179) #9
  %7181 = icmp ne i32 %7180, 0
  br i1 %7181, label %7182, label %7199

7182:                                             ; preds = %7177
  %7183 = load i32, ptr %140, align 4, !tbaa !5
  %7184 = call ptr @__errno_location() #10
  store i32 %7183, ptr %7184, align 4, !tbaa !5
  %7185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7186 = load i32, ptr @test_count, align 4, !tbaa !5
  %7187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7188 = load i32, ptr %7187, align 4, !tbaa !5
  %7189 = call ptr @s2n_strerror(i32 noundef %7188, ptr noundef @.str.4)
  %7190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7191 = load i32, ptr %7190, align 4, !tbaa !5
  %7192 = call ptr @s2n_strerror_debug(i32 noundef %7191, ptr noundef @.str.4)
  %7193 = call ptr @__errno_location() #10
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  %7195 = call ptr @strerror(i32 noundef %7194) #9
  %7196 = call ptr @__errno_location() #10
  %7197 = load i32, ptr %7196, align 4, !tbaa !5
  %7198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7185, ptr noundef @.str.2, i32 noundef %7186, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 368, ptr noundef %7189, ptr noundef %7192, ptr noundef %7195, i32 noundef %7197) #9
  br label %7216

7199:                                             ; preds = %7177, %7170
  %7200 = load i32, ptr %140, align 4, !tbaa !5
  %7201 = call ptr @__errno_location() #10
  store i32 %7200, ptr %7201, align 4, !tbaa !5
  %7202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7203 = load i32, ptr @test_count, align 4, !tbaa !5
  %7204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7205 = load i32, ptr %7204, align 4, !tbaa !5
  %7206 = call ptr @s2n_strerror(i32 noundef %7205, ptr noundef @.str.4)
  %7207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7208 = load i32, ptr %7207, align 4, !tbaa !5
  %7209 = call ptr @s2n_strerror_debug(i32 noundef %7208, ptr noundef @.str.4)
  %7210 = call ptr @__errno_location() #10
  %7211 = load i32, ptr %7210, align 4, !tbaa !5
  %7212 = call ptr @strerror(i32 noundef %7211) #9
  %7213 = call ptr @__errno_location() #10
  %7214 = load i32, ptr %7213, align 4, !tbaa !5
  %7215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7202, ptr noundef @.str.5, i32 noundef %7203, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 368, ptr noundef %7206, ptr noundef %7209, ptr noundef %7212, i32 noundef %7214) #9
  br label %7216

7216:                                             ; preds = %7199, %7182
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #9
  br label %7217

7217:                                             ; preds = %7216
  br label %7218

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

7219:                                             ; No predecessors!
  br label %7220

7220:                                             ; preds = %7219
  br label %7221

7221:                                             ; preds = %7220, %7162
  br label %7222

7222:                                             ; preds = %7221
  br label %7223

7223:                                             ; preds = %7222
  br label %7224

7224:                                             ; preds = %7223
  %7225 = load i32, ptr @test_count, align 4, !tbaa !5
  %7226 = add nsw i32 %7225, 1
  store i32 %7226, ptr @test_count, align 4, !tbaa !5
  %7227 = load ptr, ptr %12, align 8, !tbaa !9
  %7228 = call i32 @s2n_connection_set_io_pair(ptr noundef %7227, ptr noundef %26)
  %7229 = icmp eq i32 %7228, -1
  br i1 %7229, label %7230, label %7283

7230:                                             ; preds = %7224
  br label %7231

7231:                                             ; preds = %7230
  br label %7232

7232:                                             ; preds = %7231
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #9
  %7233 = call ptr @__errno_location() #10
  %7234 = load i32, ptr %7233, align 4, !tbaa !5
  store i32 %7234, ptr %141, align 4, !tbaa !5
  %7235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7236 = call i32 @s2n_print_stacktrace(ptr noundef %7235)
  %7237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7238 = trunc i8 %7237 to i1
  br i1 %7238, label %7239, label %7261

7239:                                             ; preds = %7232
  %7240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7241 = call i32 @fileno(ptr noundef %7240) #9
  %7242 = call i32 @isatty(i32 noundef %7241) #9
  %7243 = icmp ne i32 %7242, 0
  br i1 %7243, label %7244, label %7261

7244:                                             ; preds = %7239
  %7245 = load i32, ptr %141, align 4, !tbaa !5
  %7246 = call ptr @__errno_location() #10
  store i32 %7245, ptr %7246, align 4, !tbaa !5
  %7247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7248 = load i32, ptr @test_count, align 4, !tbaa !5
  %7249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7250 = load i32, ptr %7249, align 4, !tbaa !5
  %7251 = call ptr @s2n_strerror(i32 noundef %7250, ptr noundef @.str.4)
  %7252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7253 = load i32, ptr %7252, align 4, !tbaa !5
  %7254 = call ptr @s2n_strerror_debug(i32 noundef %7253, ptr noundef @.str.4)
  %7255 = call ptr @__errno_location() #10
  %7256 = load i32, ptr %7255, align 4, !tbaa !5
  %7257 = call ptr @strerror(i32 noundef %7256) #9
  %7258 = call ptr @__errno_location() #10
  %7259 = load i32, ptr %7258, align 4, !tbaa !5
  %7260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7247, ptr noundef @.str.2, i32 noundef %7248, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 368, ptr noundef %7251, ptr noundef %7254, ptr noundef %7257, i32 noundef %7259) #9
  br label %7278

7261:                                             ; preds = %7239, %7232
  %7262 = load i32, ptr %141, align 4, !tbaa !5
  %7263 = call ptr @__errno_location() #10
  store i32 %7262, ptr %7263, align 4, !tbaa !5
  %7264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7265 = load i32, ptr @test_count, align 4, !tbaa !5
  %7266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7267 = load i32, ptr %7266, align 4, !tbaa !5
  %7268 = call ptr @s2n_strerror(i32 noundef %7267, ptr noundef @.str.4)
  %7269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7270 = load i32, ptr %7269, align 4, !tbaa !5
  %7271 = call ptr @s2n_strerror_debug(i32 noundef %7270, ptr noundef @.str.4)
  %7272 = call ptr @__errno_location() #10
  %7273 = load i32, ptr %7272, align 4, !tbaa !5
  %7274 = call ptr @strerror(i32 noundef %7273) #9
  %7275 = call ptr @__errno_location() #10
  %7276 = load i32, ptr %7275, align 4, !tbaa !5
  %7277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7264, ptr noundef @.str.5, i32 noundef %7265, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 368, ptr noundef %7268, ptr noundef %7271, ptr noundef %7274, i32 noundef %7276) #9
  br label %7278

7278:                                             ; preds = %7261, %7244
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #9
  br label %7279

7279:                                             ; preds = %7278
  br label %7280

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

7281:                                             ; No predecessors!
  br label %7282

7282:                                             ; preds = %7281
  br label %7283

7283:                                             ; preds = %7282, %7224
  br label %7284

7284:                                             ; preds = %7283
  br label %7285

7285:                                             ; preds = %7284
  br label %7286

7286:                                             ; preds = %7285
  %7287 = load i32, ptr @test_count, align 4, !tbaa !5
  %7288 = add nsw i32 %7287, 1
  store i32 %7288, ptr @test_count, align 4, !tbaa !5
  %7289 = load ptr, ptr %11, align 8, !tbaa !9
  %7290 = load ptr, ptr %12, align 8, !tbaa !9
  %7291 = call i32 @setup_psks_with_no_match(ptr noundef %7289, ptr noundef %7290)
  %7292 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  store i32 %7291, ptr %7292, align 4
  %7293 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  %7294 = load i32, ptr %7293, align 4
  %7295 = call zeroext i1 @s2n_result_is_ok(i32 %7294)
  br i1 %7295, label %7349, label %7296

7296:                                             ; preds = %7286
  br label %7297

7297:                                             ; preds = %7296
  br label %7298

7298:                                             ; preds = %7297
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #9
  %7299 = call ptr @__errno_location() #10
  %7300 = load i32, ptr %7299, align 4, !tbaa !5
  store i32 %7300, ptr %143, align 4, !tbaa !5
  %7301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7302 = call i32 @s2n_print_stacktrace(ptr noundef %7301)
  %7303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7304 = trunc i8 %7303 to i1
  br i1 %7304, label %7305, label %7327

7305:                                             ; preds = %7298
  %7306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7307 = call i32 @fileno(ptr noundef %7306) #9
  %7308 = call i32 @isatty(i32 noundef %7307) #9
  %7309 = icmp ne i32 %7308, 0
  br i1 %7309, label %7310, label %7327

7310:                                             ; preds = %7305
  %7311 = load i32, ptr %143, align 4, !tbaa !5
  %7312 = call ptr @__errno_location() #10
  store i32 %7311, ptr %7312, align 4, !tbaa !5
  %7313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7314 = load i32, ptr @test_count, align 4, !tbaa !5
  %7315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call ptr @s2n_strerror(i32 noundef %7316, ptr noundef @.str.4)
  %7318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7319 = load i32, ptr %7318, align 4, !tbaa !5
  %7320 = call ptr @s2n_strerror_debug(i32 noundef %7319, ptr noundef @.str.4)
  %7321 = call ptr @__errno_location() #10
  %7322 = load i32, ptr %7321, align 4, !tbaa !5
  %7323 = call ptr @strerror(i32 noundef %7322) #9
  %7324 = call ptr @__errno_location() #10
  %7325 = load i32, ptr %7324, align 4, !tbaa !5
  %7326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7313, ptr noundef @.str.2, i32 noundef %7314, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 371, ptr noundef %7317, ptr noundef %7320, ptr noundef %7323, i32 noundef %7325) #9
  br label %7344

7327:                                             ; preds = %7305, %7298
  %7328 = load i32, ptr %143, align 4, !tbaa !5
  %7329 = call ptr @__errno_location() #10
  store i32 %7328, ptr %7329, align 4, !tbaa !5
  %7330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7331 = load i32, ptr @test_count, align 4, !tbaa !5
  %7332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call ptr @s2n_strerror(i32 noundef %7333, ptr noundef @.str.4)
  %7335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7336 = load i32, ptr %7335, align 4, !tbaa !5
  %7337 = call ptr @s2n_strerror_debug(i32 noundef %7336, ptr noundef @.str.4)
  %7338 = call ptr @__errno_location() #10
  %7339 = load i32, ptr %7338, align 4, !tbaa !5
  %7340 = call ptr @strerror(i32 noundef %7339) #9
  %7341 = call ptr @__errno_location() #10
  %7342 = load i32, ptr %7341, align 4, !tbaa !5
  %7343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7330, ptr noundef @.str.5, i32 noundef %7331, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 371, ptr noundef %7334, ptr noundef %7337, ptr noundef %7340, i32 noundef %7342) #9
  br label %7344

7344:                                             ; preds = %7327, %7310
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #9
  br label %7345

7345:                                             ; preds = %7344
  br label %7346

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

7347:                                             ; No predecessors!
  br label %7348

7348:                                             ; preds = %7347
  br label %7349

7349:                                             ; preds = %7348, %7286
  br label %7350

7350:                                             ; preds = %7349
  br label %7351

7351:                                             ; preds = %7350
  br label %7352

7352:                                             ; preds = %7351
  %7353 = load i32, ptr @test_count, align 4, !tbaa !5
  %7354 = add nsw i32 %7353, 1
  store i32 %7354, ptr @test_count, align 4, !tbaa !5
  %7355 = load ptr, ptr %12, align 8, !tbaa !9
  %7356 = load ptr, ptr %11, align 8, !tbaa !9
  %7357 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %7355, ptr noundef %7356)
  %7358 = icmp eq i32 %7357, -1
  br i1 %7358, label %7359, label %7412

7359:                                             ; preds = %7352
  br label %7360

7360:                                             ; preds = %7359
  br label %7361

7361:                                             ; preds = %7360
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #9
  %7362 = call ptr @__errno_location() #10
  %7363 = load i32, ptr %7362, align 4, !tbaa !5
  store i32 %7363, ptr %144, align 4, !tbaa !5
  %7364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7365 = call i32 @s2n_print_stacktrace(ptr noundef %7364)
  %7366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7367 = trunc i8 %7366 to i1
  br i1 %7367, label %7368, label %7390

7368:                                             ; preds = %7361
  %7369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7370 = call i32 @fileno(ptr noundef %7369) #9
  %7371 = call i32 @isatty(i32 noundef %7370) #9
  %7372 = icmp ne i32 %7371, 0
  br i1 %7372, label %7373, label %7390

7373:                                             ; preds = %7368
  %7374 = load i32, ptr %144, align 4, !tbaa !5
  %7375 = call ptr @__errno_location() #10
  store i32 %7374, ptr %7375, align 4, !tbaa !5
  %7376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7377 = load i32, ptr @test_count, align 4, !tbaa !5
  %7378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7379 = load i32, ptr %7378, align 4, !tbaa !5
  %7380 = call ptr @s2n_strerror(i32 noundef %7379, ptr noundef @.str.4)
  %7381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7382 = load i32, ptr %7381, align 4, !tbaa !5
  %7383 = call ptr @s2n_strerror_debug(i32 noundef %7382, ptr noundef @.str.4)
  %7384 = call ptr @__errno_location() #10
  %7385 = load i32, ptr %7384, align 4, !tbaa !5
  %7386 = call ptr @strerror(i32 noundef %7385) #9
  %7387 = call ptr @__errno_location() #10
  %7388 = load i32, ptr %7387, align 4, !tbaa !5
  %7389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7376, ptr noundef @.str.2, i32 noundef %7377, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7380, ptr noundef %7383, ptr noundef %7386, i32 noundef %7388) #9
  br label %7407

7390:                                             ; preds = %7368, %7361
  %7391 = load i32, ptr %144, align 4, !tbaa !5
  %7392 = call ptr @__errno_location() #10
  store i32 %7391, ptr %7392, align 4, !tbaa !5
  %7393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7394 = load i32, ptr @test_count, align 4, !tbaa !5
  %7395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7396 = load i32, ptr %7395, align 4, !tbaa !5
  %7397 = call ptr @s2n_strerror(i32 noundef %7396, ptr noundef @.str.4)
  %7398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7399 = load i32, ptr %7398, align 4, !tbaa !5
  %7400 = call ptr @s2n_strerror_debug(i32 noundef %7399, ptr noundef @.str.4)
  %7401 = call ptr @__errno_location() #10
  %7402 = load i32, ptr %7401, align 4, !tbaa !5
  %7403 = call ptr @strerror(i32 noundef %7402) #9
  %7404 = call ptr @__errno_location() #10
  %7405 = load i32, ptr %7404, align 4, !tbaa !5
  %7406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7393, ptr noundef @.str.5, i32 noundef %7394, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7397, ptr noundef %7400, ptr noundef %7403, i32 noundef %7405) #9
  br label %7407

7407:                                             ; preds = %7390, %7373
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #9
  br label %7408

7408:                                             ; preds = %7407
  br label %7409

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

7410:                                             ; No predecessors!
  br label %7411

7411:                                             ; preds = %7410
  br label %7412

7412:                                             ; preds = %7411, %7352
  br label %7413

7413:                                             ; preds = %7412
  br label %7414

7414:                                             ; preds = %7413
  br label %7415

7415:                                             ; preds = %7414
  %7416 = load i32, ptr @test_count, align 4, !tbaa !5
  %7417 = add nsw i32 %7416, 1
  store i32 %7417, ptr @test_count, align 4, !tbaa !5
  %7418 = load ptr, ptr %11, align 8, !tbaa !9
  %7419 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %7418, i32 noundef 2)
  br i1 %7419, label %7420, label %7423

7420:                                             ; preds = %7415
  %7421 = load ptr, ptr %12, align 8, !tbaa !9
  %7422 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %7421, i32 noundef 2)
  br i1 %7422, label %7476, label %7423

7423:                                             ; preds = %7420, %7415
  br label %7424

7424:                                             ; preds = %7423
  br label %7425

7425:                                             ; preds = %7424
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #9
  %7426 = call ptr @__errno_location() #10
  %7427 = load i32, ptr %7426, align 4, !tbaa !5
  store i32 %7427, ptr %145, align 4, !tbaa !5
  %7428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7429 = call i32 @s2n_print_stacktrace(ptr noundef %7428)
  %7430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7431 = trunc i8 %7430 to i1
  br i1 %7431, label %7432, label %7454

7432:                                             ; preds = %7425
  %7433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7434 = call i32 @fileno(ptr noundef %7433) #9
  %7435 = call i32 @isatty(i32 noundef %7434) #9
  %7436 = icmp ne i32 %7435, 0
  br i1 %7436, label %7437, label %7454

7437:                                             ; preds = %7432
  %7438 = load i32, ptr %145, align 4, !tbaa !5
  %7439 = call ptr @__errno_location() #10
  store i32 %7438, ptr %7439, align 4, !tbaa !5
  %7440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7441 = load i32, ptr @test_count, align 4, !tbaa !5
  %7442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7443 = load i32, ptr %7442, align 4, !tbaa !5
  %7444 = call ptr @s2n_strerror(i32 noundef %7443, ptr noundef @.str.4)
  %7445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7446 = load i32, ptr %7445, align 4, !tbaa !5
  %7447 = call ptr @s2n_strerror_debug(i32 noundef %7446, ptr noundef @.str.4)
  %7448 = call ptr @__errno_location() #10
  %7449 = load i32, ptr %7448, align 4, !tbaa !5
  %7450 = call ptr @strerror(i32 noundef %7449) #9
  %7451 = call ptr @__errno_location() #10
  %7452 = load i32, ptr %7451, align 4, !tbaa !5
  %7453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7440, ptr noundef @.str.2, i32 noundef %7441, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 377, ptr noundef %7444, ptr noundef %7447, ptr noundef %7450, i32 noundef %7452) #9
  br label %7471

7454:                                             ; preds = %7432, %7425
  %7455 = load i32, ptr %145, align 4, !tbaa !5
  %7456 = call ptr @__errno_location() #10
  store i32 %7455, ptr %7456, align 4, !tbaa !5
  %7457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7458 = load i32, ptr @test_count, align 4, !tbaa !5
  %7459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7460 = load i32, ptr %7459, align 4, !tbaa !5
  %7461 = call ptr @s2n_strerror(i32 noundef %7460, ptr noundef @.str.4)
  %7462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7463 = load i32, ptr %7462, align 4, !tbaa !5
  %7464 = call ptr @s2n_strerror_debug(i32 noundef %7463, ptr noundef @.str.4)
  %7465 = call ptr @__errno_location() #10
  %7466 = load i32, ptr %7465, align 4, !tbaa !5
  %7467 = call ptr @strerror(i32 noundef %7466) #9
  %7468 = call ptr @__errno_location() #10
  %7469 = load i32, ptr %7468, align 4, !tbaa !5
  %7470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7457, ptr noundef @.str.5, i32 noundef %7458, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 377, ptr noundef %7461, ptr noundef %7464, ptr noundef %7467, i32 noundef %7469) #9
  br label %7471

7471:                                             ; preds = %7454, %7437
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #9
  br label %7472

7472:                                             ; preds = %7471
  br label %7473

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

7474:                                             ; No predecessors!
  br label %7475

7475:                                             ; preds = %7474
  br label %7476

7476:                                             ; preds = %7475, %7420
  br label %7477

7477:                                             ; preds = %7476
  br label %7478

7478:                                             ; preds = %7477
  br label %7479

7479:                                             ; preds = %7478
  %7480 = load i32, ptr @test_count, align 4, !tbaa !5
  %7481 = add nsw i32 %7480, 1
  store i32 %7481, ptr @test_count, align 4, !tbaa !5
  %7482 = load ptr, ptr %12, align 8, !tbaa !9
  %7483 = getelementptr inbounds %struct.s2n_connection, ptr %7482, i32 0, i32 33
  %7484 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %7483, i32 0, i32 4
  %7485 = load ptr, ptr %7484, align 8, !tbaa !48
  %7486 = icmp eq ptr %7485, null
  br i1 %7486, label %7540, label %7487

7487:                                             ; preds = %7479
  br label %7488

7488:                                             ; preds = %7487
  br label %7489

7489:                                             ; preds = %7488
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #9
  %7490 = call ptr @__errno_location() #10
  %7491 = load i32, ptr %7490, align 4, !tbaa !5
  store i32 %7491, ptr %146, align 4, !tbaa !5
  %7492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7493 = call i32 @s2n_print_stacktrace(ptr noundef %7492)
  %7494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7495 = trunc i8 %7494 to i1
  br i1 %7495, label %7496, label %7518

7496:                                             ; preds = %7489
  %7497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7498 = call i32 @fileno(ptr noundef %7497) #9
  %7499 = call i32 @isatty(i32 noundef %7498) #9
  %7500 = icmp ne i32 %7499, 0
  br i1 %7500, label %7501, label %7518

7501:                                             ; preds = %7496
  %7502 = load i32, ptr %146, align 4, !tbaa !5
  %7503 = call ptr @__errno_location() #10
  store i32 %7502, ptr %7503, align 4, !tbaa !5
  %7504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7505 = load i32, ptr @test_count, align 4, !tbaa !5
  %7506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call ptr @s2n_strerror(i32 noundef %7507, ptr noundef @.str.4)
  %7509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7510 = load i32, ptr %7509, align 4, !tbaa !5
  %7511 = call ptr @s2n_strerror_debug(i32 noundef %7510, ptr noundef @.str.4)
  %7512 = call ptr @__errno_location() #10
  %7513 = load i32, ptr %7512, align 4, !tbaa !5
  %7514 = call ptr @strerror(i32 noundef %7513) #9
  %7515 = call ptr @__errno_location() #10
  %7516 = load i32, ptr %7515, align 4, !tbaa !5
  %7517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7504, ptr noundef @.str.2, i32 noundef %7505, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 380, ptr noundef %7508, ptr noundef %7511, ptr noundef %7514, i32 noundef %7516) #9
  br label %7535

7518:                                             ; preds = %7496, %7489
  %7519 = load i32, ptr %146, align 4, !tbaa !5
  %7520 = call ptr @__errno_location() #10
  store i32 %7519, ptr %7520, align 4, !tbaa !5
  %7521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7522 = load i32, ptr @test_count, align 4, !tbaa !5
  %7523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call ptr @s2n_strerror(i32 noundef %7524, ptr noundef @.str.4)
  %7526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7527 = load i32, ptr %7526, align 4, !tbaa !5
  %7528 = call ptr @s2n_strerror_debug(i32 noundef %7527, ptr noundef @.str.4)
  %7529 = call ptr @__errno_location() #10
  %7530 = load i32, ptr %7529, align 4, !tbaa !5
  %7531 = call ptr @strerror(i32 noundef %7530) #9
  %7532 = call ptr @__errno_location() #10
  %7533 = load i32, ptr %7532, align 4, !tbaa !5
  %7534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7521, ptr noundef @.str.5, i32 noundef %7522, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 380, ptr noundef %7525, ptr noundef %7528, ptr noundef %7531, i32 noundef %7533) #9
  br label %7535

7535:                                             ; preds = %7518, %7501
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #9
  br label %7536

7536:                                             ; preds = %7535
  br label %7537

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

7538:                                             ; No predecessors!
  br label %7539

7539:                                             ; preds = %7538
  br label %7540

7540:                                             ; preds = %7539, %7479
  br label %7541

7541:                                             ; preds = %7540
  br label %7542

7542:                                             ; preds = %7541
  br label %7543

7543:                                             ; preds = %7542
  %7544 = load i32, ptr @test_count, align 4, !tbaa !5
  %7545 = add nsw i32 %7544, 1
  store i32 %7545, ptr @test_count, align 4, !tbaa !5
  %7546 = load ptr, ptr %12, align 8, !tbaa !9
  %7547 = load ptr, ptr %11, align 8, !tbaa !9
  %7548 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %7546, ptr noundef %7547)
  %7549 = icmp eq i32 %7548, -1
  br i1 %7549, label %7550, label %7603

7550:                                             ; preds = %7543
  br label %7551

7551:                                             ; preds = %7550
  br label %7552

7552:                                             ; preds = %7551
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #9
  %7553 = call ptr @__errno_location() #10
  %7554 = load i32, ptr %7553, align 4, !tbaa !5
  store i32 %7554, ptr %147, align 4, !tbaa !5
  %7555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7556 = call i32 @s2n_print_stacktrace(ptr noundef %7555)
  %7557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7558 = trunc i8 %7557 to i1
  br i1 %7558, label %7559, label %7581

7559:                                             ; preds = %7552
  %7560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7561 = call i32 @fileno(ptr noundef %7560) #9
  %7562 = call i32 @isatty(i32 noundef %7561) #9
  %7563 = icmp ne i32 %7562, 0
  br i1 %7563, label %7564, label %7581

7564:                                             ; preds = %7559
  %7565 = load i32, ptr %147, align 4, !tbaa !5
  %7566 = call ptr @__errno_location() #10
  store i32 %7565, ptr %7566, align 4, !tbaa !5
  %7567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7568 = load i32, ptr @test_count, align 4, !tbaa !5
  %7569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7570 = load i32, ptr %7569, align 4, !tbaa !5
  %7571 = call ptr @s2n_strerror(i32 noundef %7570, ptr noundef @.str.4)
  %7572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7573 = load i32, ptr %7572, align 4, !tbaa !5
  %7574 = call ptr @s2n_strerror_debug(i32 noundef %7573, ptr noundef @.str.4)
  %7575 = call ptr @__errno_location() #10
  %7576 = load i32, ptr %7575, align 4, !tbaa !5
  %7577 = call ptr @strerror(i32 noundef %7576) #9
  %7578 = call ptr @__errno_location() #10
  %7579 = load i32, ptr %7578, align 4, !tbaa !5
  %7580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7567, ptr noundef @.str.2, i32 noundef %7568, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7571, ptr noundef %7574, ptr noundef %7577, i32 noundef %7579) #9
  br label %7598

7581:                                             ; preds = %7559, %7552
  %7582 = load i32, ptr %147, align 4, !tbaa !5
  %7583 = call ptr @__errno_location() #10
  store i32 %7582, ptr %7583, align 4, !tbaa !5
  %7584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7585 = load i32, ptr @test_count, align 4, !tbaa !5
  %7586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7587 = load i32, ptr %7586, align 4, !tbaa !5
  %7588 = call ptr @s2n_strerror(i32 noundef %7587, ptr noundef @.str.4)
  %7589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7590 = load i32, ptr %7589, align 4, !tbaa !5
  %7591 = call ptr @s2n_strerror_debug(i32 noundef %7590, ptr noundef @.str.4)
  %7592 = call ptr @__errno_location() #10
  %7593 = load i32, ptr %7592, align 4, !tbaa !5
  %7594 = call ptr @strerror(i32 noundef %7593) #9
  %7595 = call ptr @__errno_location() #10
  %7596 = load i32, ptr %7595, align 4, !tbaa !5
  %7597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7584, ptr noundef @.str.5, i32 noundef %7585, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7588, ptr noundef %7591, ptr noundef %7594, i32 noundef %7596) #9
  br label %7598

7598:                                             ; preds = %7581, %7564
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #9
  br label %7599

7599:                                             ; preds = %7598
  br label %7600

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

7601:                                             ; No predecessors!
  br label %7602

7602:                                             ; preds = %7601
  br label %7603

7603:                                             ; preds = %7602, %7543
  br label %7604

7604:                                             ; preds = %7603
  br label %7605

7605:                                             ; preds = %7604
  br label %7606

7606:                                             ; preds = %7605
  %7607 = load i32, ptr @test_count, align 4, !tbaa !5
  %7608 = add nsw i32 %7607, 1
  store i32 %7608, ptr @test_count, align 4, !tbaa !5
  %7609 = load ptr, ptr %11, align 8, !tbaa !9
  %7610 = call i32 @s2n_connection_wipe(ptr noundef %7609)
  %7611 = icmp eq i32 %7610, -1
  br i1 %7611, label %7612, label %7665

7612:                                             ; preds = %7606
  br label %7613

7613:                                             ; preds = %7612
  br label %7614

7614:                                             ; preds = %7613
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #9
  %7615 = call ptr @__errno_location() #10
  %7616 = load i32, ptr %7615, align 4, !tbaa !5
  store i32 %7616, ptr %148, align 4, !tbaa !5
  %7617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7618 = call i32 @s2n_print_stacktrace(ptr noundef %7617)
  %7619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7620 = trunc i8 %7619 to i1
  br i1 %7620, label %7621, label %7643

7621:                                             ; preds = %7614
  %7622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7623 = call i32 @fileno(ptr noundef %7622) #9
  %7624 = call i32 @isatty(i32 noundef %7623) #9
  %7625 = icmp ne i32 %7624, 0
  br i1 %7625, label %7626, label %7643

7626:                                             ; preds = %7621
  %7627 = load i32, ptr %148, align 4, !tbaa !5
  %7628 = call ptr @__errno_location() #10
  store i32 %7627, ptr %7628, align 4, !tbaa !5
  %7629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7630 = load i32, ptr @test_count, align 4, !tbaa !5
  %7631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call ptr @s2n_strerror(i32 noundef %7632, ptr noundef @.str.4)
  %7634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call ptr @s2n_strerror_debug(i32 noundef %7635, ptr noundef @.str.4)
  %7637 = call ptr @__errno_location() #10
  %7638 = load i32, ptr %7637, align 4, !tbaa !5
  %7639 = call ptr @strerror(i32 noundef %7638) #9
  %7640 = call ptr @__errno_location() #10
  %7641 = load i32, ptr %7640, align 4, !tbaa !5
  %7642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7629, ptr noundef @.str.2, i32 noundef %7630, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 384, ptr noundef %7633, ptr noundef %7636, ptr noundef %7639, i32 noundef %7641) #9
  br label %7660

7643:                                             ; preds = %7621, %7614
  %7644 = load i32, ptr %148, align 4, !tbaa !5
  %7645 = call ptr @__errno_location() #10
  store i32 %7644, ptr %7645, align 4, !tbaa !5
  %7646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7647 = load i32, ptr @test_count, align 4, !tbaa !5
  %7648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7649 = load i32, ptr %7648, align 4, !tbaa !5
  %7650 = call ptr @s2n_strerror(i32 noundef %7649, ptr noundef @.str.4)
  %7651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7652 = load i32, ptr %7651, align 4, !tbaa !5
  %7653 = call ptr @s2n_strerror_debug(i32 noundef %7652, ptr noundef @.str.4)
  %7654 = call ptr @__errno_location() #10
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  %7656 = call ptr @strerror(i32 noundef %7655) #9
  %7657 = call ptr @__errno_location() #10
  %7658 = load i32, ptr %7657, align 4, !tbaa !5
  %7659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7646, ptr noundef @.str.5, i32 noundef %7647, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 384, ptr noundef %7650, ptr noundef %7653, ptr noundef %7656, i32 noundef %7658) #9
  br label %7660

7660:                                             ; preds = %7643, %7626
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #9
  br label %7661

7661:                                             ; preds = %7660
  br label %7662

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

7663:                                             ; No predecessors!
  br label %7664

7664:                                             ; preds = %7663
  br label %7665

7665:                                             ; preds = %7664, %7606
  br label %7666

7666:                                             ; preds = %7665
  br label %7667

7667:                                             ; preds = %7666
  br label %7668

7668:                                             ; preds = %7667
  %7669 = load i32, ptr @test_count, align 4, !tbaa !5
  %7670 = add nsw i32 %7669, 1
  store i32 %7670, ptr @test_count, align 4, !tbaa !5
  %7671 = load ptr, ptr %12, align 8, !tbaa !9
  %7672 = call i32 @s2n_connection_wipe(ptr noundef %7671)
  %7673 = icmp eq i32 %7672, -1
  br i1 %7673, label %7674, label %7727

7674:                                             ; preds = %7668
  br label %7675

7675:                                             ; preds = %7674
  br label %7676

7676:                                             ; preds = %7675
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #9
  %7677 = call ptr @__errno_location() #10
  %7678 = load i32, ptr %7677, align 4, !tbaa !5
  store i32 %7678, ptr %149, align 4, !tbaa !5
  %7679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7680 = call i32 @s2n_print_stacktrace(ptr noundef %7679)
  %7681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7682 = trunc i8 %7681 to i1
  br i1 %7682, label %7683, label %7705

7683:                                             ; preds = %7676
  %7684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7685 = call i32 @fileno(ptr noundef %7684) #9
  %7686 = call i32 @isatty(i32 noundef %7685) #9
  %7687 = icmp ne i32 %7686, 0
  br i1 %7687, label %7688, label %7705

7688:                                             ; preds = %7683
  %7689 = load i32, ptr %149, align 4, !tbaa !5
  %7690 = call ptr @__errno_location() #10
  store i32 %7689, ptr %7690, align 4, !tbaa !5
  %7691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7692 = load i32, ptr @test_count, align 4, !tbaa !5
  %7693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7694 = load i32, ptr %7693, align 4, !tbaa !5
  %7695 = call ptr @s2n_strerror(i32 noundef %7694, ptr noundef @.str.4)
  %7696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call ptr @s2n_strerror_debug(i32 noundef %7697, ptr noundef @.str.4)
  %7699 = call ptr @__errno_location() #10
  %7700 = load i32, ptr %7699, align 4, !tbaa !5
  %7701 = call ptr @strerror(i32 noundef %7700) #9
  %7702 = call ptr @__errno_location() #10
  %7703 = load i32, ptr %7702, align 4, !tbaa !5
  %7704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7691, ptr noundef @.str.2, i32 noundef %7692, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7695, ptr noundef %7698, ptr noundef %7701, i32 noundef %7703) #9
  br label %7722

7705:                                             ; preds = %7683, %7676
  %7706 = load i32, ptr %149, align 4, !tbaa !5
  %7707 = call ptr @__errno_location() #10
  store i32 %7706, ptr %7707, align 4, !tbaa !5
  %7708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7709 = load i32, ptr @test_count, align 4, !tbaa !5
  %7710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7711 = load i32, ptr %7710, align 4, !tbaa !5
  %7712 = call ptr @s2n_strerror(i32 noundef %7711, ptr noundef @.str.4)
  %7713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7714 = load i32, ptr %7713, align 4, !tbaa !5
  %7715 = call ptr @s2n_strerror_debug(i32 noundef %7714, ptr noundef @.str.4)
  %7716 = call ptr @__errno_location() #10
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  %7718 = call ptr @strerror(i32 noundef %7717) #9
  %7719 = call ptr @__errno_location() #10
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7708, ptr noundef @.str.5, i32 noundef %7709, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7712, ptr noundef %7715, ptr noundef %7718, i32 noundef %7720) #9
  br label %7722

7722:                                             ; preds = %7705, %7688
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #9
  br label %7723

7723:                                             ; preds = %7722
  br label %7724

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

7725:                                             ; No predecessors!
  br label %7726

7726:                                             ; preds = %7725
  br label %7727

7727:                                             ; preds = %7726, %7668
  br label %7728

7728:                                             ; preds = %7727
  br label %7729

7729:                                             ; preds = %7728
  br label %7730

7730:                                             ; preds = %7729
  %7731 = load i32, ptr @test_count, align 4, !tbaa !5
  %7732 = add nsw i32 %7731, 1
  store i32 %7732, ptr @test_count, align 4, !tbaa !5
  %7733 = load ptr, ptr %11, align 8, !tbaa !9
  %7734 = load ptr, ptr %19, align 8, !tbaa !9
  %7735 = call i32 @s2n_connection_set_config(ptr noundef %7733, ptr noundef %7734)
  %7736 = icmp eq i32 %7735, -1
  br i1 %7736, label %7737, label %7790

7737:                                             ; preds = %7730
  br label %7738

7738:                                             ; preds = %7737
  br label %7739

7739:                                             ; preds = %7738
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #9
  %7740 = call ptr @__errno_location() #10
  %7741 = load i32, ptr %7740, align 4, !tbaa !5
  store i32 %7741, ptr %150, align 4, !tbaa !5
  %7742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7743 = call i32 @s2n_print_stacktrace(ptr noundef %7742)
  %7744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7745 = trunc i8 %7744 to i1
  br i1 %7745, label %7746, label %7768

7746:                                             ; preds = %7739
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = call i32 @fileno(ptr noundef %7747) #9
  %7749 = call i32 @isatty(i32 noundef %7748) #9
  %7750 = icmp ne i32 %7749, 0
  br i1 %7750, label %7751, label %7768

7751:                                             ; preds = %7746
  %7752 = load i32, ptr %150, align 4, !tbaa !5
  %7753 = call ptr @__errno_location() #10
  store i32 %7752, ptr %7753, align 4, !tbaa !5
  %7754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7755 = load i32, ptr @test_count, align 4, !tbaa !5
  %7756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7757 = load i32, ptr %7756, align 4, !tbaa !5
  %7758 = call ptr @s2n_strerror(i32 noundef %7757, ptr noundef @.str.4)
  %7759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7760 = load i32, ptr %7759, align 4, !tbaa !5
  %7761 = call ptr @s2n_strerror_debug(i32 noundef %7760, ptr noundef @.str.4)
  %7762 = call ptr @__errno_location() #10
  %7763 = load i32, ptr %7762, align 4, !tbaa !5
  %7764 = call ptr @strerror(i32 noundef %7763) #9
  %7765 = call ptr @__errno_location() #10
  %7766 = load i32, ptr %7765, align 4, !tbaa !5
  %7767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7754, ptr noundef @.str.2, i32 noundef %7755, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7758, ptr noundef %7761, ptr noundef %7764, i32 noundef %7766) #9
  br label %7785

7768:                                             ; preds = %7746, %7739
  %7769 = load i32, ptr %150, align 4, !tbaa !5
  %7770 = call ptr @__errno_location() #10
  store i32 %7769, ptr %7770, align 4, !tbaa !5
  %7771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7772 = load i32, ptr @test_count, align 4, !tbaa !5
  %7773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7774 = load i32, ptr %7773, align 4, !tbaa !5
  %7775 = call ptr @s2n_strerror(i32 noundef %7774, ptr noundef @.str.4)
  %7776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7777 = load i32, ptr %7776, align 4, !tbaa !5
  %7778 = call ptr @s2n_strerror_debug(i32 noundef %7777, ptr noundef @.str.4)
  %7779 = call ptr @__errno_location() #10
  %7780 = load i32, ptr %7779, align 4, !tbaa !5
  %7781 = call ptr @strerror(i32 noundef %7780) #9
  %7782 = call ptr @__errno_location() #10
  %7783 = load i32, ptr %7782, align 4, !tbaa !5
  %7784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7771, ptr noundef @.str.5, i32 noundef %7772, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7775, ptr noundef %7778, ptr noundef %7781, i32 noundef %7783) #9
  br label %7785

7785:                                             ; preds = %7768, %7751
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #9
  br label %7786

7786:                                             ; preds = %7785
  br label %7787

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

7788:                                             ; No predecessors!
  br label %7789

7789:                                             ; preds = %7788
  br label %7790

7790:                                             ; preds = %7789, %7730
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

7792:                                             ; preds = %7791
  br label %7793

7793:                                             ; preds = %7792
  %7794 = load i32, ptr @test_count, align 4, !tbaa !5
  %7795 = add nsw i32 %7794, 1
  store i32 %7795, ptr @test_count, align 4, !tbaa !5
  %7796 = load ptr, ptr %12, align 8, !tbaa !9
  %7797 = load ptr, ptr %19, align 8, !tbaa !9
  %7798 = call i32 @s2n_connection_set_config(ptr noundef %7796, ptr noundef %7797)
  %7799 = icmp eq i32 %7798, -1
  br i1 %7799, label %7800, label %7853

7800:                                             ; preds = %7793
  br label %7801

7801:                                             ; preds = %7800
  br label %7802

7802:                                             ; preds = %7801
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #9
  %7803 = call ptr @__errno_location() #10
  %7804 = load i32, ptr %7803, align 4, !tbaa !5
  store i32 %7804, ptr %151, align 4, !tbaa !5
  %7805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7806 = call i32 @s2n_print_stacktrace(ptr noundef %7805)
  %7807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7808 = trunc i8 %7807 to i1
  br i1 %7808, label %7809, label %7831

7809:                                             ; preds = %7802
  %7810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7811 = call i32 @fileno(ptr noundef %7810) #9
  %7812 = call i32 @isatty(i32 noundef %7811) #9
  %7813 = icmp ne i32 %7812, 0
  br i1 %7813, label %7814, label %7831

7814:                                             ; preds = %7809
  %7815 = load i32, ptr %151, align 4, !tbaa !5
  %7816 = call ptr @__errno_location() #10
  store i32 %7815, ptr %7816, align 4, !tbaa !5
  %7817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7818 = load i32, ptr @test_count, align 4, !tbaa !5
  %7819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7820 = load i32, ptr %7819, align 4, !tbaa !5
  %7821 = call ptr @s2n_strerror(i32 noundef %7820, ptr noundef @.str.4)
  %7822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7823 = load i32, ptr %7822, align 4, !tbaa !5
  %7824 = call ptr @s2n_strerror_debug(i32 noundef %7823, ptr noundef @.str.4)
  %7825 = call ptr @__errno_location() #10
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  %7827 = call ptr @strerror(i32 noundef %7826) #9
  %7828 = call ptr @__errno_location() #10
  %7829 = load i32, ptr %7828, align 4, !tbaa !5
  %7830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7817, ptr noundef @.str.2, i32 noundef %7818, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7821, ptr noundef %7824, ptr noundef %7827, i32 noundef %7829) #9
  br label %7848

7831:                                             ; preds = %7809, %7802
  %7832 = load i32, ptr %151, align 4, !tbaa !5
  %7833 = call ptr @__errno_location() #10
  store i32 %7832, ptr %7833, align 4, !tbaa !5
  %7834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7835 = load i32, ptr @test_count, align 4, !tbaa !5
  %7836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7837 = load i32, ptr %7836, align 4, !tbaa !5
  %7838 = call ptr @s2n_strerror(i32 noundef %7837, ptr noundef @.str.4)
  %7839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7840 = load i32, ptr %7839, align 4, !tbaa !5
  %7841 = call ptr @s2n_strerror_debug(i32 noundef %7840, ptr noundef @.str.4)
  %7842 = call ptr @__errno_location() #10
  %7843 = load i32, ptr %7842, align 4, !tbaa !5
  %7844 = call ptr @strerror(i32 noundef %7843) #9
  %7845 = call ptr @__errno_location() #10
  %7846 = load i32, ptr %7845, align 4, !tbaa !5
  %7847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7834, ptr noundef @.str.5, i32 noundef %7835, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7838, ptr noundef %7841, ptr noundef %7844, i32 noundef %7846) #9
  br label %7848

7848:                                             ; preds = %7831, %7814
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #9
  br label %7849

7849:                                             ; preds = %7848
  br label %7850

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

7851:                                             ; No predecessors!
  br label %7852

7852:                                             ; preds = %7851
  br label %7853

7853:                                             ; preds = %7852, %7793
  br label %7854

7854:                                             ; preds = %7853
  br label %7855

7855:                                             ; preds = %7854
  br label %7856

7856:                                             ; preds = %7855
  %7857 = load i32, ptr @test_count, align 4, !tbaa !5
  %7858 = add nsw i32 %7857, 1
  store i32 %7858, ptr @test_count, align 4, !tbaa !5
  %7859 = load ptr, ptr %11, align 8, !tbaa !9
  %7860 = call i32 @s2n_connection_set_io_pair(ptr noundef %7859, ptr noundef %26)
  %7861 = icmp eq i32 %7860, -1
  br i1 %7861, label %7862, label %7915

7862:                                             ; preds = %7856
  br label %7863

7863:                                             ; preds = %7862
  br label %7864

7864:                                             ; preds = %7863
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #9
  %7865 = call ptr @__errno_location() #10
  %7866 = load i32, ptr %7865, align 4, !tbaa !5
  store i32 %7866, ptr %152, align 4, !tbaa !5
  %7867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7868 = call i32 @s2n_print_stacktrace(ptr noundef %7867)
  %7869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7870 = trunc i8 %7869 to i1
  br i1 %7870, label %7871, label %7893

7871:                                             ; preds = %7864
  %7872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7873 = call i32 @fileno(ptr noundef %7872) #9
  %7874 = call i32 @isatty(i32 noundef %7873) #9
  %7875 = icmp ne i32 %7874, 0
  br i1 %7875, label %7876, label %7893

7876:                                             ; preds = %7871
  %7877 = load i32, ptr %152, align 4, !tbaa !5
  %7878 = call ptr @__errno_location() #10
  store i32 %7877, ptr %7878, align 4, !tbaa !5
  %7879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7880 = load i32, ptr @test_count, align 4, !tbaa !5
  %7881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7882 = load i32, ptr %7881, align 4, !tbaa !5
  %7883 = call ptr @s2n_strerror(i32 noundef %7882, ptr noundef @.str.4)
  %7884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  %7886 = call ptr @s2n_strerror_debug(i32 noundef %7885, ptr noundef @.str.4)
  %7887 = call ptr @__errno_location() #10
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  %7889 = call ptr @strerror(i32 noundef %7888) #9
  %7890 = call ptr @__errno_location() #10
  %7891 = load i32, ptr %7890, align 4, !tbaa !5
  %7892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7879, ptr noundef @.str.2, i32 noundef %7880, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7883, ptr noundef %7886, ptr noundef %7889, i32 noundef %7891) #9
  br label %7910

7893:                                             ; preds = %7871, %7864
  %7894 = load i32, ptr %152, align 4, !tbaa !5
  %7895 = call ptr @__errno_location() #10
  store i32 %7894, ptr %7895, align 4, !tbaa !5
  %7896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7897 = load i32, ptr @test_count, align 4, !tbaa !5
  %7898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7899 = load i32, ptr %7898, align 4, !tbaa !5
  %7900 = call ptr @s2n_strerror(i32 noundef %7899, ptr noundef @.str.4)
  %7901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7902 = load i32, ptr %7901, align 4, !tbaa !5
  %7903 = call ptr @s2n_strerror_debug(i32 noundef %7902, ptr noundef @.str.4)
  %7904 = call ptr @__errno_location() #10
  %7905 = load i32, ptr %7904, align 4, !tbaa !5
  %7906 = call ptr @strerror(i32 noundef %7905) #9
  %7907 = call ptr @__errno_location() #10
  %7908 = load i32, ptr %7907, align 4, !tbaa !5
  %7909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7896, ptr noundef @.str.5, i32 noundef %7897, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7900, ptr noundef %7903, ptr noundef %7906, i32 noundef %7908) #9
  br label %7910

7910:                                             ; preds = %7893, %7876
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #9
  br label %7911

7911:                                             ; preds = %7910
  br label %7912

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

7913:                                             ; No predecessors!
  br label %7914

7914:                                             ; preds = %7913
  br label %7915

7915:                                             ; preds = %7914, %7856
  br label %7916

7916:                                             ; preds = %7915
  br label %7917

7917:                                             ; preds = %7916
  br label %7918

7918:                                             ; preds = %7917
  %7919 = load i32, ptr @test_count, align 4, !tbaa !5
  %7920 = add nsw i32 %7919, 1
  store i32 %7920, ptr @test_count, align 4, !tbaa !5
  %7921 = load ptr, ptr %12, align 8, !tbaa !9
  %7922 = call i32 @s2n_connection_set_io_pair(ptr noundef %7921, ptr noundef %26)
  %7923 = icmp eq i32 %7922, -1
  br i1 %7923, label %7924, label %7977

7924:                                             ; preds = %7918
  br label %7925

7925:                                             ; preds = %7924
  br label %7926

7926:                                             ; preds = %7925
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #9
  %7927 = call ptr @__errno_location() #10
  %7928 = load i32, ptr %7927, align 4, !tbaa !5
  store i32 %7928, ptr %153, align 4, !tbaa !5
  %7929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7930 = call i32 @s2n_print_stacktrace(ptr noundef %7929)
  %7931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7932 = trunc i8 %7931 to i1
  br i1 %7932, label %7933, label %7955

7933:                                             ; preds = %7926
  %7934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7935 = call i32 @fileno(ptr noundef %7934) #9
  %7936 = call i32 @isatty(i32 noundef %7935) #9
  %7937 = icmp ne i32 %7936, 0
  br i1 %7937, label %7938, label %7955

7938:                                             ; preds = %7933
  %7939 = load i32, ptr %153, align 4, !tbaa !5
  %7940 = call ptr @__errno_location() #10
  store i32 %7939, ptr %7940, align 4, !tbaa !5
  %7941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7942 = load i32, ptr @test_count, align 4, !tbaa !5
  %7943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7944 = load i32, ptr %7943, align 4, !tbaa !5
  %7945 = call ptr @s2n_strerror(i32 noundef %7944, ptr noundef @.str.4)
  %7946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7947 = load i32, ptr %7946, align 4, !tbaa !5
  %7948 = call ptr @s2n_strerror_debug(i32 noundef %7947, ptr noundef @.str.4)
  %7949 = call ptr @__errno_location() #10
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @strerror(i32 noundef %7950) #9
  %7952 = call ptr @__errno_location() #10
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7941, ptr noundef @.str.2, i32 noundef %7942, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7945, ptr noundef %7948, ptr noundef %7951, i32 noundef %7953) #9
  br label %7972

7955:                                             ; preds = %7933, %7926
  %7956 = load i32, ptr %153, align 4, !tbaa !5
  %7957 = call ptr @__errno_location() #10
  store i32 %7956, ptr %7957, align 4, !tbaa !5
  %7958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7959 = load i32, ptr @test_count, align 4, !tbaa !5
  %7960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7961 = load i32, ptr %7960, align 4, !tbaa !5
  %7962 = call ptr @s2n_strerror(i32 noundef %7961, ptr noundef @.str.4)
  %7963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7964 = load i32, ptr %7963, align 4, !tbaa !5
  %7965 = call ptr @s2n_strerror_debug(i32 noundef %7964, ptr noundef @.str.4)
  %7966 = call ptr @__errno_location() #10
  %7967 = load i32, ptr %7966, align 4, !tbaa !5
  %7968 = call ptr @strerror(i32 noundef %7967) #9
  %7969 = call ptr @__errno_location() #10
  %7970 = load i32, ptr %7969, align 4, !tbaa !5
  %7971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7958, ptr noundef @.str.5, i32 noundef %7959, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7962, ptr noundef %7965, ptr noundef %7968, i32 noundef %7970) #9
  br label %7972

7972:                                             ; preds = %7955, %7938
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #9
  br label %7973

7973:                                             ; preds = %7972
  br label %7974

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

7975:                                             ; No predecessors!
  br label %7976

7976:                                             ; preds = %7975
  br label %7977

7977:                                             ; preds = %7976, %7918
  br label %7978

7978:                                             ; preds = %7977
  br label %7979

7979:                                             ; preds = %7978
  br label %7980

7980:                                             ; preds = %7979
  %7981 = load i32, ptr @test_count, align 4, !tbaa !5
  %7982 = add nsw i32 %7981, 1
  store i32 %7982, ptr @test_count, align 4, !tbaa !5
  %7983 = load ptr, ptr %11, align 8, !tbaa !9
  %7984 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %7983, i32 noundef 1)
  %7985 = icmp eq i32 %7984, -1
  br i1 %7985, label %7986, label %8039

7986:                                             ; preds = %7980
  br label %7987

7987:                                             ; preds = %7986
  br label %7988

7988:                                             ; preds = %7987
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #9
  %7989 = call ptr @__errno_location() #10
  %7990 = load i32, ptr %7989, align 4, !tbaa !5
  store i32 %7990, ptr %154, align 4, !tbaa !5
  %7991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7992 = call i32 @s2n_print_stacktrace(ptr noundef %7991)
  %7993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7994 = trunc i8 %7993 to i1
  br i1 %7994, label %7995, label %8017

7995:                                             ; preds = %7988
  %7996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7997 = call i32 @fileno(ptr noundef %7996) #9
  %7998 = call i32 @isatty(i32 noundef %7997) #9
  %7999 = icmp ne i32 %7998, 0
  br i1 %7999, label %8000, label %8017

8000:                                             ; preds = %7995
  %8001 = load i32, ptr %154, align 4, !tbaa !5
  %8002 = call ptr @__errno_location() #10
  store i32 %8001, ptr %8002, align 4, !tbaa !5
  %8003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8004 = load i32, ptr @test_count, align 4, !tbaa !5
  %8005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8006 = load i32, ptr %8005, align 4, !tbaa !5
  %8007 = call ptr @s2n_strerror(i32 noundef %8006, ptr noundef @.str.4)
  %8008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8009 = load i32, ptr %8008, align 4, !tbaa !5
  %8010 = call ptr @s2n_strerror_debug(i32 noundef %8009, ptr noundef @.str.4)
  %8011 = call ptr @__errno_location() #10
  %8012 = load i32, ptr %8011, align 4, !tbaa !5
  %8013 = call ptr @strerror(i32 noundef %8012) #9
  %8014 = call ptr @__errno_location() #10
  %8015 = load i32, ptr %8014, align 4, !tbaa !5
  %8016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8003, ptr noundef @.str.2, i32 noundef %8004, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 395, ptr noundef %8007, ptr noundef %8010, ptr noundef %8013, i32 noundef %8015) #9
  br label %8034

8017:                                             ; preds = %7995, %7988
  %8018 = load i32, ptr %154, align 4, !tbaa !5
  %8019 = call ptr @__errno_location() #10
  store i32 %8018, ptr %8019, align 4, !tbaa !5
  %8020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8021 = load i32, ptr @test_count, align 4, !tbaa !5
  %8022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8023 = load i32, ptr %8022, align 4, !tbaa !5
  %8024 = call ptr @s2n_strerror(i32 noundef %8023, ptr noundef @.str.4)
  %8025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8026 = load i32, ptr %8025, align 4, !tbaa !5
  %8027 = call ptr @s2n_strerror_debug(i32 noundef %8026, ptr noundef @.str.4)
  %8028 = call ptr @__errno_location() #10
  %8029 = load i32, ptr %8028, align 4, !tbaa !5
  %8030 = call ptr @strerror(i32 noundef %8029) #9
  %8031 = call ptr @__errno_location() #10
  %8032 = load i32, ptr %8031, align 4, !tbaa !5
  %8033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8020, ptr noundef @.str.5, i32 noundef %8021, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 395, ptr noundef %8024, ptr noundef %8027, ptr noundef %8030, i32 noundef %8032) #9
  br label %8034

8034:                                             ; preds = %8017, %8000
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #9
  br label %8035

8035:                                             ; preds = %8034
  br label %8036

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

8037:                                             ; No predecessors!
  br label %8038

8038:                                             ; preds = %8037
  br label %8039

8039:                                             ; preds = %8038, %7980
  br label %8040

8040:                                             ; preds = %8039
  br label %8041

8041:                                             ; preds = %8040
  br label %8042

8042:                                             ; preds = %8041
  %8043 = load i32, ptr @test_count, align 4, !tbaa !5
  %8044 = add nsw i32 %8043, 1
  store i32 %8044, ptr @test_count, align 4, !tbaa !5
  %8045 = load ptr, ptr %12, align 8, !tbaa !9
  %8046 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %8045, i32 noundef 1)
  %8047 = icmp eq i32 %8046, -1
  br i1 %8047, label %8048, label %8101

8048:                                             ; preds = %8042
  br label %8049

8049:                                             ; preds = %8048
  br label %8050

8050:                                             ; preds = %8049
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #9
  %8051 = call ptr @__errno_location() #10
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  store i32 %8052, ptr %155, align 4, !tbaa !5
  %8053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8054 = call i32 @s2n_print_stacktrace(ptr noundef %8053)
  %8055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8056 = trunc i8 %8055 to i1
  br i1 %8056, label %8057, label %8079

8057:                                             ; preds = %8050
  %8058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8059 = call i32 @fileno(ptr noundef %8058) #9
  %8060 = call i32 @isatty(i32 noundef %8059) #9
  %8061 = icmp ne i32 %8060, 0
  br i1 %8061, label %8062, label %8079

8062:                                             ; preds = %8057
  %8063 = load i32, ptr %155, align 4, !tbaa !5
  %8064 = call ptr @__errno_location() #10
  store i32 %8063, ptr %8064, align 4, !tbaa !5
  %8065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8066 = load i32, ptr @test_count, align 4, !tbaa !5
  %8067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8068 = load i32, ptr %8067, align 4, !tbaa !5
  %8069 = call ptr @s2n_strerror(i32 noundef %8068, ptr noundef @.str.4)
  %8070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8071 = load i32, ptr %8070, align 4, !tbaa !5
  %8072 = call ptr @s2n_strerror_debug(i32 noundef %8071, ptr noundef @.str.4)
  %8073 = call ptr @__errno_location() #10
  %8074 = load i32, ptr %8073, align 4, !tbaa !5
  %8075 = call ptr @strerror(i32 noundef %8074) #9
  %8076 = call ptr @__errno_location() #10
  %8077 = load i32, ptr %8076, align 4, !tbaa !5
  %8078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8065, ptr noundef @.str.2, i32 noundef %8066, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 396, ptr noundef %8069, ptr noundef %8072, ptr noundef %8075, i32 noundef %8077) #9
  br label %8096

8079:                                             ; preds = %8057, %8050
  %8080 = load i32, ptr %155, align 4, !tbaa !5
  %8081 = call ptr @__errno_location() #10
  store i32 %8080, ptr %8081, align 4, !tbaa !5
  %8082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8083 = load i32, ptr @test_count, align 4, !tbaa !5
  %8084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  %8086 = call ptr @s2n_strerror(i32 noundef %8085, ptr noundef @.str.4)
  %8087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  %8089 = call ptr @s2n_strerror_debug(i32 noundef %8088, ptr noundef @.str.4)
  %8090 = call ptr @__errno_location() #10
  %8091 = load i32, ptr %8090, align 4, !tbaa !5
  %8092 = call ptr @strerror(i32 noundef %8091) #9
  %8093 = call ptr @__errno_location() #10
  %8094 = load i32, ptr %8093, align 4, !tbaa !5
  %8095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8082, ptr noundef @.str.5, i32 noundef %8083, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 396, ptr noundef %8086, ptr noundef %8089, ptr noundef %8092, i32 noundef %8094) #9
  br label %8096

8096:                                             ; preds = %8079, %8062
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #9
  br label %8097

8097:                                             ; preds = %8096
  br label %8098

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

8099:                                             ; No predecessors!
  br label %8100

8100:                                             ; preds = %8099
  br label %8101

8101:                                             ; preds = %8100, %8042
  br label %8102

8102:                                             ; preds = %8101
  br label %8103

8103:                                             ; preds = %8102
  br label %8104

8104:                                             ; preds = %8103
  %8105 = load i32, ptr @test_count, align 4, !tbaa !5
  %8106 = add nsw i32 %8105, 1
  store i32 %8106, ptr @test_count, align 4, !tbaa !5
  %8107 = load ptr, ptr %11, align 8, !tbaa !9
  %8108 = load ptr, ptr %12, align 8, !tbaa !9
  %8109 = call i32 @setup_psks_with_no_match(ptr noundef %8107, ptr noundef %8108)
  %8110 = getelementptr inbounds %struct.s2n_result, ptr %156, i32 0, i32 0
  store i32 %8109, ptr %8110, align 4
  %8111 = getelementptr inbounds %struct.s2n_result, ptr %156, i32 0, i32 0
  %8112 = load i32, ptr %8111, align 4
  %8113 = call zeroext i1 @s2n_result_is_ok(i32 %8112)
  br i1 %8113, label %8167, label %8114

8114:                                             ; preds = %8104
  br label %8115

8115:                                             ; preds = %8114
  br label %8116

8116:                                             ; preds = %8115
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #9
  %8117 = call ptr @__errno_location() #10
  %8118 = load i32, ptr %8117, align 4, !tbaa !5
  store i32 %8118, ptr %157, align 4, !tbaa !5
  %8119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8120 = call i32 @s2n_print_stacktrace(ptr noundef %8119)
  %8121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8122 = trunc i8 %8121 to i1
  br i1 %8122, label %8123, label %8145

8123:                                             ; preds = %8116
  %8124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8125 = call i32 @fileno(ptr noundef %8124) #9
  %8126 = call i32 @isatty(i32 noundef %8125) #9
  %8127 = icmp ne i32 %8126, 0
  br i1 %8127, label %8128, label %8145

8128:                                             ; preds = %8123
  %8129 = load i32, ptr %157, align 4, !tbaa !5
  %8130 = call ptr @__errno_location() #10
  store i32 %8129, ptr %8130, align 4, !tbaa !5
  %8131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8132 = load i32, ptr @test_count, align 4, !tbaa !5
  %8133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8134 = load i32, ptr %8133, align 4, !tbaa !5
  %8135 = call ptr @s2n_strerror(i32 noundef %8134, ptr noundef @.str.4)
  %8136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8137 = load i32, ptr %8136, align 4, !tbaa !5
  %8138 = call ptr @s2n_strerror_debug(i32 noundef %8137, ptr noundef @.str.4)
  %8139 = call ptr @__errno_location() #10
  %8140 = load i32, ptr %8139, align 4, !tbaa !5
  %8141 = call ptr @strerror(i32 noundef %8140) #9
  %8142 = call ptr @__errno_location() #10
  %8143 = load i32, ptr %8142, align 4, !tbaa !5
  %8144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8131, ptr noundef @.str.2, i32 noundef %8132, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 399, ptr noundef %8135, ptr noundef %8138, ptr noundef %8141, i32 noundef %8143) #9
  br label %8162

8145:                                             ; preds = %8123, %8116
  %8146 = load i32, ptr %157, align 4, !tbaa !5
  %8147 = call ptr @__errno_location() #10
  store i32 %8146, ptr %8147, align 4, !tbaa !5
  %8148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8149 = load i32, ptr @test_count, align 4, !tbaa !5
  %8150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8151 = load i32, ptr %8150, align 4, !tbaa !5
  %8152 = call ptr @s2n_strerror(i32 noundef %8151, ptr noundef @.str.4)
  %8153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8154 = load i32, ptr %8153, align 4, !tbaa !5
  %8155 = call ptr @s2n_strerror_debug(i32 noundef %8154, ptr noundef @.str.4)
  %8156 = call ptr @__errno_location() #10
  %8157 = load i32, ptr %8156, align 4, !tbaa !5
  %8158 = call ptr @strerror(i32 noundef %8157) #9
  %8159 = call ptr @__errno_location() #10
  %8160 = load i32, ptr %8159, align 4, !tbaa !5
  %8161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8148, ptr noundef @.str.5, i32 noundef %8149, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 399, ptr noundef %8152, ptr noundef %8155, ptr noundef %8158, i32 noundef %8160) #9
  br label %8162

8162:                                             ; preds = %8145, %8128
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #9
  br label %8163

8163:                                             ; preds = %8162
  br label %8164

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

8165:                                             ; No predecessors!
  br label %8166

8166:                                             ; preds = %8165
  br label %8167

8167:                                             ; preds = %8166, %8104
  br label %8168

8168:                                             ; preds = %8167
  br label %8169

8169:                                             ; preds = %8168
  br label %8170

8170:                                             ; preds = %8169
  %8171 = load i32, ptr @test_count, align 4, !tbaa !5
  %8172 = add nsw i32 %8171, 1
  store i32 %8172, ptr @test_count, align 4, !tbaa !5
  %8173 = load ptr, ptr %12, align 8, !tbaa !9
  %8174 = load ptr, ptr %11, align 8, !tbaa !9
  %8175 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %8173, ptr noundef %8174)
  %8176 = icmp eq i32 %8175, -1
  br i1 %8176, label %8177, label %8230

8177:                                             ; preds = %8170
  br label %8178

8178:                                             ; preds = %8177
  br label %8179

8179:                                             ; preds = %8178
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #9
  %8180 = call ptr @__errno_location() #10
  %8181 = load i32, ptr %8180, align 4, !tbaa !5
  store i32 %8181, ptr %158, align 4, !tbaa !5
  %8182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8183 = call i32 @s2n_print_stacktrace(ptr noundef %8182)
  %8184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8185 = trunc i8 %8184 to i1
  br i1 %8185, label %8186, label %8208

8186:                                             ; preds = %8179
  %8187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8188 = call i32 @fileno(ptr noundef %8187) #9
  %8189 = call i32 @isatty(i32 noundef %8188) #9
  %8190 = icmp ne i32 %8189, 0
  br i1 %8190, label %8191, label %8208

8191:                                             ; preds = %8186
  %8192 = load i32, ptr %158, align 4, !tbaa !5
  %8193 = call ptr @__errno_location() #10
  store i32 %8192, ptr %8193, align 4, !tbaa !5
  %8194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8195 = load i32, ptr @test_count, align 4, !tbaa !5
  %8196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8197 = load i32, ptr %8196, align 4, !tbaa !5
  %8198 = call ptr @s2n_strerror(i32 noundef %8197, ptr noundef @.str.4)
  %8199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8200 = load i32, ptr %8199, align 4, !tbaa !5
  %8201 = call ptr @s2n_strerror_debug(i32 noundef %8200, ptr noundef @.str.4)
  %8202 = call ptr @__errno_location() #10
  %8203 = load i32, ptr %8202, align 4, !tbaa !5
  %8204 = call ptr @strerror(i32 noundef %8203) #9
  %8205 = call ptr @__errno_location() #10
  %8206 = load i32, ptr %8205, align 4, !tbaa !5
  %8207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8194, ptr noundef @.str.2, i32 noundef %8195, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 402, ptr noundef %8198, ptr noundef %8201, ptr noundef %8204, i32 noundef %8206) #9
  br label %8225

8208:                                             ; preds = %8186, %8179
  %8209 = load i32, ptr %158, align 4, !tbaa !5
  %8210 = call ptr @__errno_location() #10
  store i32 %8209, ptr %8210, align 4, !tbaa !5
  %8211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8212 = load i32, ptr @test_count, align 4, !tbaa !5
  %8213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call ptr @s2n_strerror(i32 noundef %8214, ptr noundef @.str.4)
  %8216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8217 = load i32, ptr %8216, align 4, !tbaa !5
  %8218 = call ptr @s2n_strerror_debug(i32 noundef %8217, ptr noundef @.str.4)
  %8219 = call ptr @__errno_location() #10
  %8220 = load i32, ptr %8219, align 4, !tbaa !5
  %8221 = call ptr @strerror(i32 noundef %8220) #9
  %8222 = call ptr @__errno_location() #10
  %8223 = load i32, ptr %8222, align 4, !tbaa !5
  %8224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8211, ptr noundef @.str.5, i32 noundef %8212, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 402, ptr noundef %8215, ptr noundef %8218, ptr noundef %8221, i32 noundef %8223) #9
  br label %8225

8225:                                             ; preds = %8208, %8191
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #9
  br label %8226

8226:                                             ; preds = %8225
  br label %8227

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

8228:                                             ; No predecessors!
  br label %8229

8229:                                             ; preds = %8228
  br label %8230

8230:                                             ; preds = %8229, %8170
  br label %8231

8231:                                             ; preds = %8230
  br label %8232

8232:                                             ; preds = %8231
  br label %8233

8233:                                             ; preds = %8232
  %8234 = load i32, ptr @test_count, align 4, !tbaa !5
  %8235 = add nsw i32 %8234, 1
  store i32 %8235, ptr @test_count, align 4, !tbaa !5
  %8236 = load ptr, ptr %11, align 8, !tbaa !9
  %8237 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %8236, i32 noundef 4)
  br i1 %8237, label %8238, label %8241

8238:                                             ; preds = %8233
  %8239 = load ptr, ptr %12, align 8, !tbaa !9
  %8240 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %8239, i32 noundef 4)
  br i1 %8240, label %8294, label %8241

8241:                                             ; preds = %8238, %8233
  br label %8242

8242:                                             ; preds = %8241
  br label %8243

8243:                                             ; preds = %8242
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #9
  %8244 = call ptr @__errno_location() #10
  %8245 = load i32, ptr %8244, align 4, !tbaa !5
  store i32 %8245, ptr %159, align 4, !tbaa !5
  %8246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8247 = call i32 @s2n_print_stacktrace(ptr noundef %8246)
  %8248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8249 = trunc i8 %8248 to i1
  br i1 %8249, label %8250, label %8272

8250:                                             ; preds = %8243
  %8251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8252 = call i32 @fileno(ptr noundef %8251) #9
  %8253 = call i32 @isatty(i32 noundef %8252) #9
  %8254 = icmp ne i32 %8253, 0
  br i1 %8254, label %8255, label %8272

8255:                                             ; preds = %8250
  %8256 = load i32, ptr %159, align 4, !tbaa !5
  %8257 = call ptr @__errno_location() #10
  store i32 %8256, ptr %8257, align 4, !tbaa !5
  %8258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8259 = load i32, ptr @test_count, align 4, !tbaa !5
  %8260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8261 = load i32, ptr %8260, align 4, !tbaa !5
  %8262 = call ptr @s2n_strerror(i32 noundef %8261, ptr noundef @.str.4)
  %8263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8264 = load i32, ptr %8263, align 4, !tbaa !5
  %8265 = call ptr @s2n_strerror_debug(i32 noundef %8264, ptr noundef @.str.4)
  %8266 = call ptr @__errno_location() #10
  %8267 = load i32, ptr %8266, align 4, !tbaa !5
  %8268 = call ptr @strerror(i32 noundef %8267) #9
  %8269 = call ptr @__errno_location() #10
  %8270 = load i32, ptr %8269, align 4, !tbaa !5
  %8271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8258, ptr noundef @.str.2, i32 noundef %8259, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 405, ptr noundef %8262, ptr noundef %8265, ptr noundef %8268, i32 noundef %8270) #9
  br label %8289

8272:                                             ; preds = %8250, %8243
  %8273 = load i32, ptr %159, align 4, !tbaa !5
  %8274 = call ptr @__errno_location() #10
  store i32 %8273, ptr %8274, align 4, !tbaa !5
  %8275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8276 = load i32, ptr @test_count, align 4, !tbaa !5
  %8277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call ptr @s2n_strerror(i32 noundef %8278, ptr noundef @.str.4)
  %8280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8281 = load i32, ptr %8280, align 4, !tbaa !5
  %8282 = call ptr @s2n_strerror_debug(i32 noundef %8281, ptr noundef @.str.4)
  %8283 = call ptr @__errno_location() #10
  %8284 = load i32, ptr %8283, align 4, !tbaa !5
  %8285 = call ptr @strerror(i32 noundef %8284) #9
  %8286 = call ptr @__errno_location() #10
  %8287 = load i32, ptr %8286, align 4, !tbaa !5
  %8288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8275, ptr noundef @.str.5, i32 noundef %8276, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 405, ptr noundef %8279, ptr noundef %8282, ptr noundef %8285, i32 noundef %8287) #9
  br label %8289

8289:                                             ; preds = %8272, %8255
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #9
  br label %8290

8290:                                             ; preds = %8289
  br label %8291

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

8292:                                             ; No predecessors!
  br label %8293

8293:                                             ; preds = %8292
  br label %8294

8294:                                             ; preds = %8293, %8238
  br label %8295

8295:                                             ; preds = %8294
  br label %8296

8296:                                             ; preds = %8295
  br label %8297

8297:                                             ; preds = %8296
  %8298 = load i32, ptr @test_count, align 4, !tbaa !5
  %8299 = add nsw i32 %8298, 1
  store i32 %8299, ptr @test_count, align 4, !tbaa !5
  %8300 = load ptr, ptr %11, align 8, !tbaa !9
  %8301 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %8300, i32 noundef 2)
  br i1 %8301, label %8302, label %8305

8302:                                             ; preds = %8297
  %8303 = load ptr, ptr %12, align 8, !tbaa !9
  %8304 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %8303, i32 noundef 2)
  br i1 %8304, label %8358, label %8305

8305:                                             ; preds = %8302, %8297
  br label %8306

8306:                                             ; preds = %8305
  br label %8307

8307:                                             ; preds = %8306
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #9
  %8308 = call ptr @__errno_location() #10
  %8309 = load i32, ptr %8308, align 4, !tbaa !5
  store i32 %8309, ptr %160, align 4, !tbaa !5
  %8310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8311 = call i32 @s2n_print_stacktrace(ptr noundef %8310)
  %8312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8313 = trunc i8 %8312 to i1
  br i1 %8313, label %8314, label %8336

8314:                                             ; preds = %8307
  %8315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8316 = call i32 @fileno(ptr noundef %8315) #9
  %8317 = call i32 @isatty(i32 noundef %8316) #9
  %8318 = icmp ne i32 %8317, 0
  br i1 %8318, label %8319, label %8336

8319:                                             ; preds = %8314
  %8320 = load i32, ptr %160, align 4, !tbaa !5
  %8321 = call ptr @__errno_location() #10
  store i32 %8320, ptr %8321, align 4, !tbaa !5
  %8322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8323 = load i32, ptr @test_count, align 4, !tbaa !5
  %8324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8325 = load i32, ptr %8324, align 4, !tbaa !5
  %8326 = call ptr @s2n_strerror(i32 noundef %8325, ptr noundef @.str.4)
  %8327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8328 = load i32, ptr %8327, align 4, !tbaa !5
  %8329 = call ptr @s2n_strerror_debug(i32 noundef %8328, ptr noundef @.str.4)
  %8330 = call ptr @__errno_location() #10
  %8331 = load i32, ptr %8330, align 4, !tbaa !5
  %8332 = call ptr @strerror(i32 noundef %8331) #9
  %8333 = call ptr @__errno_location() #10
  %8334 = load i32, ptr %8333, align 4, !tbaa !5
  %8335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8322, ptr noundef @.str.2, i32 noundef %8323, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8326, ptr noundef %8329, ptr noundef %8332, i32 noundef %8334) #9
  br label %8353

8336:                                             ; preds = %8314, %8307
  %8337 = load i32, ptr %160, align 4, !tbaa !5
  %8338 = call ptr @__errno_location() #10
  store i32 %8337, ptr %8338, align 4, !tbaa !5
  %8339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8340 = load i32, ptr @test_count, align 4, !tbaa !5
  %8341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8342 = load i32, ptr %8341, align 4, !tbaa !5
  %8343 = call ptr @s2n_strerror(i32 noundef %8342, ptr noundef @.str.4)
  %8344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8345 = load i32, ptr %8344, align 4, !tbaa !5
  %8346 = call ptr @s2n_strerror_debug(i32 noundef %8345, ptr noundef @.str.4)
  %8347 = call ptr @__errno_location() #10
  %8348 = load i32, ptr %8347, align 4, !tbaa !5
  %8349 = call ptr @strerror(i32 noundef %8348) #9
  %8350 = call ptr @__errno_location() #10
  %8351 = load i32, ptr %8350, align 4, !tbaa !5
  %8352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8339, ptr noundef @.str.5, i32 noundef %8340, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 406, ptr noundef %8343, ptr noundef %8346, ptr noundef %8349, i32 noundef %8351) #9
  br label %8353

8353:                                             ; preds = %8336, %8319
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #9
  br label %8354

8354:                                             ; preds = %8353
  br label %8355

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

8356:                                             ; No predecessors!
  br label %8357

8357:                                             ; preds = %8356
  br label %8358

8358:                                             ; preds = %8357, %8302
  br label %8359

8359:                                             ; preds = %8358
  br label %8360

8360:                                             ; preds = %8359
  br label %8361

8361:                                             ; preds = %8360
  %8362 = load i32, ptr @test_count, align 4, !tbaa !5
  %8363 = add nsw i32 %8362, 1
  store i32 %8363, ptr @test_count, align 4, !tbaa !5
  %8364 = load ptr, ptr %12, align 8, !tbaa !9
  %8365 = getelementptr inbounds %struct.s2n_connection, ptr %8364, i32 0, i32 33
  %8366 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %8365, i32 0, i32 4
  %8367 = load ptr, ptr %8366, align 8, !tbaa !48
  %8368 = icmp eq ptr %8367, null
  br i1 %8368, label %8422, label %8369

8369:                                             ; preds = %8361
  br label %8370

8370:                                             ; preds = %8369
  br label %8371

8371:                                             ; preds = %8370
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #9
  %8372 = call ptr @__errno_location() #10
  %8373 = load i32, ptr %8372, align 4, !tbaa !5
  store i32 %8373, ptr %161, align 4, !tbaa !5
  %8374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8375 = call i32 @s2n_print_stacktrace(ptr noundef %8374)
  %8376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8377 = trunc i8 %8376 to i1
  br i1 %8377, label %8378, label %8400

8378:                                             ; preds = %8371
  %8379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8380 = call i32 @fileno(ptr noundef %8379) #9
  %8381 = call i32 @isatty(i32 noundef %8380) #9
  %8382 = icmp ne i32 %8381, 0
  br i1 %8382, label %8383, label %8400

8383:                                             ; preds = %8378
  %8384 = load i32, ptr %161, align 4, !tbaa !5
  %8385 = call ptr @__errno_location() #10
  store i32 %8384, ptr %8385, align 4, !tbaa !5
  %8386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8387 = load i32, ptr @test_count, align 4, !tbaa !5
  %8388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8389 = load i32, ptr %8388, align 4, !tbaa !5
  %8390 = call ptr @s2n_strerror(i32 noundef %8389, ptr noundef @.str.4)
  %8391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8392 = load i32, ptr %8391, align 4, !tbaa !5
  %8393 = call ptr @s2n_strerror_debug(i32 noundef %8392, ptr noundef @.str.4)
  %8394 = call ptr @__errno_location() #10
  %8395 = load i32, ptr %8394, align 4, !tbaa !5
  %8396 = call ptr @strerror(i32 noundef %8395) #9
  %8397 = call ptr @__errno_location() #10
  %8398 = load i32, ptr %8397, align 4, !tbaa !5
  %8399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8386, ptr noundef @.str.2, i32 noundef %8387, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 409, ptr noundef %8390, ptr noundef %8393, ptr noundef %8396, i32 noundef %8398) #9
  br label %8417

8400:                                             ; preds = %8378, %8371
  %8401 = load i32, ptr %161, align 4, !tbaa !5
  %8402 = call ptr @__errno_location() #10
  store i32 %8401, ptr %8402, align 4, !tbaa !5
  %8403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8404 = load i32, ptr @test_count, align 4, !tbaa !5
  %8405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8406 = load i32, ptr %8405, align 4, !tbaa !5
  %8407 = call ptr @s2n_strerror(i32 noundef %8406, ptr noundef @.str.4)
  %8408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8409 = load i32, ptr %8408, align 4, !tbaa !5
  %8410 = call ptr @s2n_strerror_debug(i32 noundef %8409, ptr noundef @.str.4)
  %8411 = call ptr @__errno_location() #10
  %8412 = load i32, ptr %8411, align 4, !tbaa !5
  %8413 = call ptr @strerror(i32 noundef %8412) #9
  %8414 = call ptr @__errno_location() #10
  %8415 = load i32, ptr %8414, align 4, !tbaa !5
  %8416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8403, ptr noundef @.str.5, i32 noundef %8404, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 409, ptr noundef %8407, ptr noundef %8410, ptr noundef %8413, i32 noundef %8415) #9
  br label %8417

8417:                                             ; preds = %8400, %8383
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #9
  br label %8418

8418:                                             ; preds = %8417
  br label %8419

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

8420:                                             ; No predecessors!
  br label %8421

8421:                                             ; preds = %8420
  br label %8422

8422:                                             ; preds = %8421, %8361
  br label %8423

8423:                                             ; preds = %8422
  br label %8424

8424:                                             ; preds = %8423
  br label %8425

8425:                                             ; preds = %8424
  %8426 = load i32, ptr @test_count, align 4, !tbaa !5
  %8427 = add nsw i32 %8426, 1
  store i32 %8427, ptr @test_count, align 4, !tbaa !5
  %8428 = load ptr, ptr %12, align 8, !tbaa !9
  %8429 = load ptr, ptr %11, align 8, !tbaa !9
  %8430 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %8428, ptr noundef %8429)
  %8431 = icmp eq i32 %8430, -1
  br i1 %8431, label %8432, label %8485

8432:                                             ; preds = %8425
  br label %8433

8433:                                             ; preds = %8432
  br label %8434

8434:                                             ; preds = %8433
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #9
  %8435 = call ptr @__errno_location() #10
  %8436 = load i32, ptr %8435, align 4, !tbaa !5
  store i32 %8436, ptr %162, align 4, !tbaa !5
  %8437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8438 = call i32 @s2n_print_stacktrace(ptr noundef %8437)
  %8439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8440 = trunc i8 %8439 to i1
  br i1 %8440, label %8441, label %8463

8441:                                             ; preds = %8434
  %8442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8443 = call i32 @fileno(ptr noundef %8442) #9
  %8444 = call i32 @isatty(i32 noundef %8443) #9
  %8445 = icmp ne i32 %8444, 0
  br i1 %8445, label %8446, label %8463

8446:                                             ; preds = %8441
  %8447 = load i32, ptr %162, align 4, !tbaa !5
  %8448 = call ptr @__errno_location() #10
  store i32 %8447, ptr %8448, align 4, !tbaa !5
  %8449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8450 = load i32, ptr @test_count, align 4, !tbaa !5
  %8451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8452 = load i32, ptr %8451, align 4, !tbaa !5
  %8453 = call ptr @s2n_strerror(i32 noundef %8452, ptr noundef @.str.4)
  %8454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8455 = load i32, ptr %8454, align 4, !tbaa !5
  %8456 = call ptr @s2n_strerror_debug(i32 noundef %8455, ptr noundef @.str.4)
  %8457 = call ptr @__errno_location() #10
  %8458 = load i32, ptr %8457, align 4, !tbaa !5
  %8459 = call ptr @strerror(i32 noundef %8458) #9
  %8460 = call ptr @__errno_location() #10
  %8461 = load i32, ptr %8460, align 4, !tbaa !5
  %8462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8449, ptr noundef @.str.2, i32 noundef %8450, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 411, ptr noundef %8453, ptr noundef %8456, ptr noundef %8459, i32 noundef %8461) #9
  br label %8480

8463:                                             ; preds = %8441, %8434
  %8464 = load i32, ptr %162, align 4, !tbaa !5
  %8465 = call ptr @__errno_location() #10
  store i32 %8464, ptr %8465, align 4, !tbaa !5
  %8466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8467 = load i32, ptr @test_count, align 4, !tbaa !5
  %8468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8469 = load i32, ptr %8468, align 4, !tbaa !5
  %8470 = call ptr @s2n_strerror(i32 noundef %8469, ptr noundef @.str.4)
  %8471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8472 = load i32, ptr %8471, align 4, !tbaa !5
  %8473 = call ptr @s2n_strerror_debug(i32 noundef %8472, ptr noundef @.str.4)
  %8474 = call ptr @__errno_location() #10
  %8475 = load i32, ptr %8474, align 4, !tbaa !5
  %8476 = call ptr @strerror(i32 noundef %8475) #9
  %8477 = call ptr @__errno_location() #10
  %8478 = load i32, ptr %8477, align 4, !tbaa !5
  %8479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8466, ptr noundef @.str.5, i32 noundef %8467, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 411, ptr noundef %8470, ptr noundef %8473, ptr noundef %8476, i32 noundef %8478) #9
  br label %8480

8480:                                             ; preds = %8463, %8446
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #9
  br label %8481

8481:                                             ; preds = %8480
  br label %8482

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

8483:                                             ; No predecessors!
  br label %8484

8484:                                             ; preds = %8483
  br label %8485

8485:                                             ; preds = %8484, %8425
  br label %8486

8486:                                             ; preds = %8485
  br label %8487

8487:                                             ; preds = %8486
  br label %8488

8488:                                             ; preds = %8487
  %8489 = load i32, ptr @test_count, align 4, !tbaa !5
  %8490 = add nsw i32 %8489, 1
  store i32 %8490, ptr @test_count, align 4, !tbaa !5
  %8491 = load ptr, ptr %11, align 8, !tbaa !9
  %8492 = call i32 @s2n_connection_wipe(ptr noundef %8491)
  %8493 = icmp eq i32 %8492, -1
  br i1 %8493, label %8494, label %8547

8494:                                             ; preds = %8488
  br label %8495

8495:                                             ; preds = %8494
  br label %8496

8496:                                             ; preds = %8495
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #9
  %8497 = call ptr @__errno_location() #10
  %8498 = load i32, ptr %8497, align 4, !tbaa !5
  store i32 %8498, ptr %163, align 4, !tbaa !5
  %8499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8500 = call i32 @s2n_print_stacktrace(ptr noundef %8499)
  %8501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8502 = trunc i8 %8501 to i1
  br i1 %8502, label %8503, label %8525

8503:                                             ; preds = %8496
  %8504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8505 = call i32 @fileno(ptr noundef %8504) #9
  %8506 = call i32 @isatty(i32 noundef %8505) #9
  %8507 = icmp ne i32 %8506, 0
  br i1 %8507, label %8508, label %8525

8508:                                             ; preds = %8503
  %8509 = load i32, ptr %163, align 4, !tbaa !5
  %8510 = call ptr @__errno_location() #10
  store i32 %8509, ptr %8510, align 4, !tbaa !5
  %8511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8512 = load i32, ptr @test_count, align 4, !tbaa !5
  %8513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8514 = load i32, ptr %8513, align 4, !tbaa !5
  %8515 = call ptr @s2n_strerror(i32 noundef %8514, ptr noundef @.str.4)
  %8516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8517 = load i32, ptr %8516, align 4, !tbaa !5
  %8518 = call ptr @s2n_strerror_debug(i32 noundef %8517, ptr noundef @.str.4)
  %8519 = call ptr @__errno_location() #10
  %8520 = load i32, ptr %8519, align 4, !tbaa !5
  %8521 = call ptr @strerror(i32 noundef %8520) #9
  %8522 = call ptr @__errno_location() #10
  %8523 = load i32, ptr %8522, align 4, !tbaa !5
  %8524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8511, ptr noundef @.str.2, i32 noundef %8512, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 413, ptr noundef %8515, ptr noundef %8518, ptr noundef %8521, i32 noundef %8523) #9
  br label %8542

8525:                                             ; preds = %8503, %8496
  %8526 = load i32, ptr %163, align 4, !tbaa !5
  %8527 = call ptr @__errno_location() #10
  store i32 %8526, ptr %8527, align 4, !tbaa !5
  %8528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8529 = load i32, ptr @test_count, align 4, !tbaa !5
  %8530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8531 = load i32, ptr %8530, align 4, !tbaa !5
  %8532 = call ptr @s2n_strerror(i32 noundef %8531, ptr noundef @.str.4)
  %8533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8534 = load i32, ptr %8533, align 4, !tbaa !5
  %8535 = call ptr @s2n_strerror_debug(i32 noundef %8534, ptr noundef @.str.4)
  %8536 = call ptr @__errno_location() #10
  %8537 = load i32, ptr %8536, align 4, !tbaa !5
  %8538 = call ptr @strerror(i32 noundef %8537) #9
  %8539 = call ptr @__errno_location() #10
  %8540 = load i32, ptr %8539, align 4, !tbaa !5
  %8541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8528, ptr noundef @.str.5, i32 noundef %8529, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 413, ptr noundef %8532, ptr noundef %8535, ptr noundef %8538, i32 noundef %8540) #9
  br label %8542

8542:                                             ; preds = %8525, %8508
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #9
  br label %8543

8543:                                             ; preds = %8542
  br label %8544

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

8545:                                             ; No predecessors!
  br label %8546

8546:                                             ; preds = %8545
  br label %8547

8547:                                             ; preds = %8546, %8488
  br label %8548

8548:                                             ; preds = %8547
  br label %8549

8549:                                             ; preds = %8548
  br label %8550

8550:                                             ; preds = %8549
  %8551 = load i32, ptr @test_count, align 4, !tbaa !5
  %8552 = add nsw i32 %8551, 1
  store i32 %8552, ptr @test_count, align 4, !tbaa !5
  %8553 = load ptr, ptr %12, align 8, !tbaa !9
  %8554 = call i32 @s2n_connection_wipe(ptr noundef %8553)
  %8555 = icmp eq i32 %8554, -1
  br i1 %8555, label %8556, label %8609

8556:                                             ; preds = %8550
  br label %8557

8557:                                             ; preds = %8556
  br label %8558

8558:                                             ; preds = %8557
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #9
  %8559 = call ptr @__errno_location() #10
  %8560 = load i32, ptr %8559, align 4, !tbaa !5
  store i32 %8560, ptr %164, align 4, !tbaa !5
  %8561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8562 = call i32 @s2n_print_stacktrace(ptr noundef %8561)
  %8563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8564 = trunc i8 %8563 to i1
  br i1 %8564, label %8565, label %8587

8565:                                             ; preds = %8558
  %8566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8567 = call i32 @fileno(ptr noundef %8566) #9
  %8568 = call i32 @isatty(i32 noundef %8567) #9
  %8569 = icmp ne i32 %8568, 0
  br i1 %8569, label %8570, label %8587

8570:                                             ; preds = %8565
  %8571 = load i32, ptr %164, align 4, !tbaa !5
  %8572 = call ptr @__errno_location() #10
  store i32 %8571, ptr %8572, align 4, !tbaa !5
  %8573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8574 = load i32, ptr @test_count, align 4, !tbaa !5
  %8575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8576 = load i32, ptr %8575, align 4, !tbaa !5
  %8577 = call ptr @s2n_strerror(i32 noundef %8576, ptr noundef @.str.4)
  %8578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8579 = load i32, ptr %8578, align 4, !tbaa !5
  %8580 = call ptr @s2n_strerror_debug(i32 noundef %8579, ptr noundef @.str.4)
  %8581 = call ptr @__errno_location() #10
  %8582 = load i32, ptr %8581, align 4, !tbaa !5
  %8583 = call ptr @strerror(i32 noundef %8582) #9
  %8584 = call ptr @__errno_location() #10
  %8585 = load i32, ptr %8584, align 4, !tbaa !5
  %8586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8573, ptr noundef @.str.2, i32 noundef %8574, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8577, ptr noundef %8580, ptr noundef %8583, i32 noundef %8585) #9
  br label %8604

8587:                                             ; preds = %8565, %8558
  %8588 = load i32, ptr %164, align 4, !tbaa !5
  %8589 = call ptr @__errno_location() #10
  store i32 %8588, ptr %8589, align 4, !tbaa !5
  %8590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8591 = load i32, ptr @test_count, align 4, !tbaa !5
  %8592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8593 = load i32, ptr %8592, align 4, !tbaa !5
  %8594 = call ptr @s2n_strerror(i32 noundef %8593, ptr noundef @.str.4)
  %8595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8596 = load i32, ptr %8595, align 4, !tbaa !5
  %8597 = call ptr @s2n_strerror_debug(i32 noundef %8596, ptr noundef @.str.4)
  %8598 = call ptr @__errno_location() #10
  %8599 = load i32, ptr %8598, align 4, !tbaa !5
  %8600 = call ptr @strerror(i32 noundef %8599) #9
  %8601 = call ptr @__errno_location() #10
  %8602 = load i32, ptr %8601, align 4, !tbaa !5
  %8603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8590, ptr noundef @.str.5, i32 noundef %8591, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8594, ptr noundef %8597, ptr noundef %8600, i32 noundef %8602) #9
  br label %8604

8604:                                             ; preds = %8587, %8570
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #9
  br label %8605

8605:                                             ; preds = %8604
  br label %8606

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

8607:                                             ; No predecessors!
  br label %8608

8608:                                             ; preds = %8607
  br label %8609

8609:                                             ; preds = %8608, %8550
  br label %8610

8610:                                             ; preds = %8609
  br label %8611

8611:                                             ; preds = %8610
  br label %8612

8612:                                             ; preds = %8611
  %8613 = load i32, ptr @test_count, align 4, !tbaa !5
  %8614 = add nsw i32 %8613, 1
  store i32 %8614, ptr @test_count, align 4, !tbaa !5
  %8615 = load ptr, ptr %11, align 8, !tbaa !9
  %8616 = load ptr, ptr %15, align 8, !tbaa !9
  %8617 = call i32 @s2n_connection_set_config(ptr noundef %8615, ptr noundef %8616)
  %8618 = icmp eq i32 %8617, -1
  br i1 %8618, label %8619, label %8672

8619:                                             ; preds = %8612
  br label %8620

8620:                                             ; preds = %8619
  br label %8621

8621:                                             ; preds = %8620
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #9
  %8622 = call ptr @__errno_location() #10
  %8623 = load i32, ptr %8622, align 4, !tbaa !5
  store i32 %8623, ptr %165, align 4, !tbaa !5
  %8624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8625 = call i32 @s2n_print_stacktrace(ptr noundef %8624)
  %8626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8627 = trunc i8 %8626 to i1
  br i1 %8627, label %8628, label %8650

8628:                                             ; preds = %8621
  %8629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8630 = call i32 @fileno(ptr noundef %8629) #9
  %8631 = call i32 @isatty(i32 noundef %8630) #9
  %8632 = icmp ne i32 %8631, 0
  br i1 %8632, label %8633, label %8650

8633:                                             ; preds = %8628
  %8634 = load i32, ptr %165, align 4, !tbaa !5
  %8635 = call ptr @__errno_location() #10
  store i32 %8634, ptr %8635, align 4, !tbaa !5
  %8636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8637 = load i32, ptr @test_count, align 4, !tbaa !5
  %8638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8639 = load i32, ptr %8638, align 4, !tbaa !5
  %8640 = call ptr @s2n_strerror(i32 noundef %8639, ptr noundef @.str.4)
  %8641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8642 = load i32, ptr %8641, align 4, !tbaa !5
  %8643 = call ptr @s2n_strerror_debug(i32 noundef %8642, ptr noundef @.str.4)
  %8644 = call ptr @__errno_location() #10
  %8645 = load i32, ptr %8644, align 4, !tbaa !5
  %8646 = call ptr @strerror(i32 noundef %8645) #9
  %8647 = call ptr @__errno_location() #10
  %8648 = load i32, ptr %8647, align 4, !tbaa !5
  %8649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8636, ptr noundef @.str.2, i32 noundef %8637, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 419, ptr noundef %8640, ptr noundef %8643, ptr noundef %8646, i32 noundef %8648) #9
  br label %8667

8650:                                             ; preds = %8628, %8621
  %8651 = load i32, ptr %165, align 4, !tbaa !5
  %8652 = call ptr @__errno_location() #10
  store i32 %8651, ptr %8652, align 4, !tbaa !5
  %8653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8654 = load i32, ptr @test_count, align 4, !tbaa !5
  %8655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8656 = load i32, ptr %8655, align 4, !tbaa !5
  %8657 = call ptr @s2n_strerror(i32 noundef %8656, ptr noundef @.str.4)
  %8658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8659 = load i32, ptr %8658, align 4, !tbaa !5
  %8660 = call ptr @s2n_strerror_debug(i32 noundef %8659, ptr noundef @.str.4)
  %8661 = call ptr @__errno_location() #10
  %8662 = load i32, ptr %8661, align 4, !tbaa !5
  %8663 = call ptr @strerror(i32 noundef %8662) #9
  %8664 = call ptr @__errno_location() #10
  %8665 = load i32, ptr %8664, align 4, !tbaa !5
  %8666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8653, ptr noundef @.str.5, i32 noundef %8654, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 419, ptr noundef %8657, ptr noundef %8660, ptr noundef %8663, i32 noundef %8665) #9
  br label %8667

8667:                                             ; preds = %8650, %8633
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #9
  br label %8668

8668:                                             ; preds = %8667
  br label %8669

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

8670:                                             ; No predecessors!
  br label %8671

8671:                                             ; preds = %8670
  br label %8672

8672:                                             ; preds = %8671, %8612
  br label %8673

8673:                                             ; preds = %8672
  br label %8674

8674:                                             ; preds = %8673
  br label %8675

8675:                                             ; preds = %8674
  %8676 = load i32, ptr @test_count, align 4, !tbaa !5
  %8677 = add nsw i32 %8676, 1
  store i32 %8677, ptr @test_count, align 4, !tbaa !5
  %8678 = load ptr, ptr %12, align 8, !tbaa !9
  %8679 = load ptr, ptr %15, align 8, !tbaa !9
  %8680 = call i32 @s2n_connection_set_config(ptr noundef %8678, ptr noundef %8679)
  %8681 = icmp eq i32 %8680, -1
  br i1 %8681, label %8682, label %8735

8682:                                             ; preds = %8675
  br label %8683

8683:                                             ; preds = %8682
  br label %8684

8684:                                             ; preds = %8683
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #9
  %8685 = call ptr @__errno_location() #10
  %8686 = load i32, ptr %8685, align 4, !tbaa !5
  store i32 %8686, ptr %166, align 4, !tbaa !5
  %8687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8688 = call i32 @s2n_print_stacktrace(ptr noundef %8687)
  %8689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8690 = trunc i8 %8689 to i1
  br i1 %8690, label %8691, label %8713

8691:                                             ; preds = %8684
  %8692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8693 = call i32 @fileno(ptr noundef %8692) #9
  %8694 = call i32 @isatty(i32 noundef %8693) #9
  %8695 = icmp ne i32 %8694, 0
  br i1 %8695, label %8696, label %8713

8696:                                             ; preds = %8691
  %8697 = load i32, ptr %166, align 4, !tbaa !5
  %8698 = call ptr @__errno_location() #10
  store i32 %8697, ptr %8698, align 4, !tbaa !5
  %8699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8700 = load i32, ptr @test_count, align 4, !tbaa !5
  %8701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8702 = load i32, ptr %8701, align 4, !tbaa !5
  %8703 = call ptr @s2n_strerror(i32 noundef %8702, ptr noundef @.str.4)
  %8704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8705 = load i32, ptr %8704, align 4, !tbaa !5
  %8706 = call ptr @s2n_strerror_debug(i32 noundef %8705, ptr noundef @.str.4)
  %8707 = call ptr @__errno_location() #10
  %8708 = load i32, ptr %8707, align 4, !tbaa !5
  %8709 = call ptr @strerror(i32 noundef %8708) #9
  %8710 = call ptr @__errno_location() #10
  %8711 = load i32, ptr %8710, align 4, !tbaa !5
  %8712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8699, ptr noundef @.str.2, i32 noundef %8700, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 419, ptr noundef %8703, ptr noundef %8706, ptr noundef %8709, i32 noundef %8711) #9
  br label %8730

8713:                                             ; preds = %8691, %8684
  %8714 = load i32, ptr %166, align 4, !tbaa !5
  %8715 = call ptr @__errno_location() #10
  store i32 %8714, ptr %8715, align 4, !tbaa !5
  %8716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8717 = load i32, ptr @test_count, align 4, !tbaa !5
  %8718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8719 = load i32, ptr %8718, align 4, !tbaa !5
  %8720 = call ptr @s2n_strerror(i32 noundef %8719, ptr noundef @.str.4)
  %8721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8722 = load i32, ptr %8721, align 4, !tbaa !5
  %8723 = call ptr @s2n_strerror_debug(i32 noundef %8722, ptr noundef @.str.4)
  %8724 = call ptr @__errno_location() #10
  %8725 = load i32, ptr %8724, align 4, !tbaa !5
  %8726 = call ptr @strerror(i32 noundef %8725) #9
  %8727 = call ptr @__errno_location() #10
  %8728 = load i32, ptr %8727, align 4, !tbaa !5
  %8729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8716, ptr noundef @.str.5, i32 noundef %8717, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 419, ptr noundef %8720, ptr noundef %8723, ptr noundef %8726, i32 noundef %8728) #9
  br label %8730

8730:                                             ; preds = %8713, %8696
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #9
  br label %8731

8731:                                             ; preds = %8730
  br label %8732

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

8733:                                             ; No predecessors!
  br label %8734

8734:                                             ; preds = %8733
  br label %8735

8735:                                             ; preds = %8734, %8675
  br label %8736

8736:                                             ; preds = %8735
  br label %8737

8737:                                             ; preds = %8736
  br label %8738

8738:                                             ; preds = %8737
  %8739 = load i32, ptr @test_count, align 4, !tbaa !5
  %8740 = add nsw i32 %8739, 1
  store i32 %8740, ptr @test_count, align 4, !tbaa !5
  %8741 = load ptr, ptr %11, align 8, !tbaa !9
  %8742 = call i32 @s2n_connection_set_io_pair(ptr noundef %8741, ptr noundef %26)
  %8743 = icmp eq i32 %8742, -1
  br i1 %8743, label %8744, label %8797

8744:                                             ; preds = %8738
  br label %8745

8745:                                             ; preds = %8744
  br label %8746

8746:                                             ; preds = %8745
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #9
  %8747 = call ptr @__errno_location() #10
  %8748 = load i32, ptr %8747, align 4, !tbaa !5
  store i32 %8748, ptr %167, align 4, !tbaa !5
  %8749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8750 = call i32 @s2n_print_stacktrace(ptr noundef %8749)
  %8751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8752 = trunc i8 %8751 to i1
  br i1 %8752, label %8753, label %8775

8753:                                             ; preds = %8746
  %8754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8755 = call i32 @fileno(ptr noundef %8754) #9
  %8756 = call i32 @isatty(i32 noundef %8755) #9
  %8757 = icmp ne i32 %8756, 0
  br i1 %8757, label %8758, label %8775

8758:                                             ; preds = %8753
  %8759 = load i32, ptr %167, align 4, !tbaa !5
  %8760 = call ptr @__errno_location() #10
  store i32 %8759, ptr %8760, align 4, !tbaa !5
  %8761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8762 = load i32, ptr @test_count, align 4, !tbaa !5
  %8763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8764 = load i32, ptr %8763, align 4, !tbaa !5
  %8765 = call ptr @s2n_strerror(i32 noundef %8764, ptr noundef @.str.4)
  %8766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8767 = load i32, ptr %8766, align 4, !tbaa !5
  %8768 = call ptr @s2n_strerror_debug(i32 noundef %8767, ptr noundef @.str.4)
  %8769 = call ptr @__errno_location() #10
  %8770 = load i32, ptr %8769, align 4, !tbaa !5
  %8771 = call ptr @strerror(i32 noundef %8770) #9
  %8772 = call ptr @__errno_location() #10
  %8773 = load i32, ptr %8772, align 4, !tbaa !5
  %8774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8761, ptr noundef @.str.2, i32 noundef %8762, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 420, ptr noundef %8765, ptr noundef %8768, ptr noundef %8771, i32 noundef %8773) #9
  br label %8792

8775:                                             ; preds = %8753, %8746
  %8776 = load i32, ptr %167, align 4, !tbaa !5
  %8777 = call ptr @__errno_location() #10
  store i32 %8776, ptr %8777, align 4, !tbaa !5
  %8778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8779 = load i32, ptr @test_count, align 4, !tbaa !5
  %8780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8781 = load i32, ptr %8780, align 4, !tbaa !5
  %8782 = call ptr @s2n_strerror(i32 noundef %8781, ptr noundef @.str.4)
  %8783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8784 = load i32, ptr %8783, align 4, !tbaa !5
  %8785 = call ptr @s2n_strerror_debug(i32 noundef %8784, ptr noundef @.str.4)
  %8786 = call ptr @__errno_location() #10
  %8787 = load i32, ptr %8786, align 4, !tbaa !5
  %8788 = call ptr @strerror(i32 noundef %8787) #9
  %8789 = call ptr @__errno_location() #10
  %8790 = load i32, ptr %8789, align 4, !tbaa !5
  %8791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8778, ptr noundef @.str.5, i32 noundef %8779, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 420, ptr noundef %8782, ptr noundef %8785, ptr noundef %8788, i32 noundef %8790) #9
  br label %8792

8792:                                             ; preds = %8775, %8758
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #9
  br label %8793

8793:                                             ; preds = %8792
  br label %8794

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

8795:                                             ; No predecessors!
  br label %8796

8796:                                             ; preds = %8795
  br label %8797

8797:                                             ; preds = %8796, %8738
  br label %8798

8798:                                             ; preds = %8797
  br label %8799

8799:                                             ; preds = %8798
  br label %8800

8800:                                             ; preds = %8799
  %8801 = load i32, ptr @test_count, align 4, !tbaa !5
  %8802 = add nsw i32 %8801, 1
  store i32 %8802, ptr @test_count, align 4, !tbaa !5
  %8803 = load ptr, ptr %12, align 8, !tbaa !9
  %8804 = call i32 @s2n_connection_set_io_pair(ptr noundef %8803, ptr noundef %26)
  %8805 = icmp eq i32 %8804, -1
  br i1 %8805, label %8806, label %8859

8806:                                             ; preds = %8800
  br label %8807

8807:                                             ; preds = %8806
  br label %8808

8808:                                             ; preds = %8807
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #9
  %8809 = call ptr @__errno_location() #10
  %8810 = load i32, ptr %8809, align 4, !tbaa !5
  store i32 %8810, ptr %168, align 4, !tbaa !5
  %8811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8812 = call i32 @s2n_print_stacktrace(ptr noundef %8811)
  %8813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8814 = trunc i8 %8813 to i1
  br i1 %8814, label %8815, label %8837

8815:                                             ; preds = %8808
  %8816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8817 = call i32 @fileno(ptr noundef %8816) #9
  %8818 = call i32 @isatty(i32 noundef %8817) #9
  %8819 = icmp ne i32 %8818, 0
  br i1 %8819, label %8820, label %8837

8820:                                             ; preds = %8815
  %8821 = load i32, ptr %168, align 4, !tbaa !5
  %8822 = call ptr @__errno_location() #10
  store i32 %8821, ptr %8822, align 4, !tbaa !5
  %8823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8824 = load i32, ptr @test_count, align 4, !tbaa !5
  %8825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8826 = load i32, ptr %8825, align 4, !tbaa !5
  %8827 = call ptr @s2n_strerror(i32 noundef %8826, ptr noundef @.str.4)
  %8828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8829 = load i32, ptr %8828, align 4, !tbaa !5
  %8830 = call ptr @s2n_strerror_debug(i32 noundef %8829, ptr noundef @.str.4)
  %8831 = call ptr @__errno_location() #10
  %8832 = load i32, ptr %8831, align 4, !tbaa !5
  %8833 = call ptr @strerror(i32 noundef %8832) #9
  %8834 = call ptr @__errno_location() #10
  %8835 = load i32, ptr %8834, align 4, !tbaa !5
  %8836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8823, ptr noundef @.str.2, i32 noundef %8824, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 420, ptr noundef %8827, ptr noundef %8830, ptr noundef %8833, i32 noundef %8835) #9
  br label %8854

8837:                                             ; preds = %8815, %8808
  %8838 = load i32, ptr %168, align 4, !tbaa !5
  %8839 = call ptr @__errno_location() #10
  store i32 %8838, ptr %8839, align 4, !tbaa !5
  %8840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8841 = load i32, ptr @test_count, align 4, !tbaa !5
  %8842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8843 = load i32, ptr %8842, align 4, !tbaa !5
  %8844 = call ptr @s2n_strerror(i32 noundef %8843, ptr noundef @.str.4)
  %8845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8846 = load i32, ptr %8845, align 4, !tbaa !5
  %8847 = call ptr @s2n_strerror_debug(i32 noundef %8846, ptr noundef @.str.4)
  %8848 = call ptr @__errno_location() #10
  %8849 = load i32, ptr %8848, align 4, !tbaa !5
  %8850 = call ptr @strerror(i32 noundef %8849) #9
  %8851 = call ptr @__errno_location() #10
  %8852 = load i32, ptr %8851, align 4, !tbaa !5
  %8853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8840, ptr noundef @.str.5, i32 noundef %8841, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 420, ptr noundef %8844, ptr noundef %8847, ptr noundef %8850, i32 noundef %8852) #9
  br label %8854

8854:                                             ; preds = %8837, %8820
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #9
  br label %8855

8855:                                             ; preds = %8854
  br label %8856

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

8857:                                             ; No predecessors!
  br label %8858

8858:                                             ; preds = %8857
  br label %8859

8859:                                             ; preds = %8858, %8800
  br label %8860

8860:                                             ; preds = %8859
  br label %8861

8861:                                             ; preds = %8860
  br label %8862

8862:                                             ; preds = %8861
  %8863 = load i32, ptr @test_count, align 4, !tbaa !5
  %8864 = add nsw i32 %8863, 1
  store i32 %8864, ptr @test_count, align 4, !tbaa !5
  %8865 = load ptr, ptr %11, align 8, !tbaa !9
  %8866 = call i32 @s2n_connection_set_blinding(ptr noundef %8865, i32 noundef 1)
  %8867 = icmp eq i32 %8866, -1
  br i1 %8867, label %8868, label %8921

8868:                                             ; preds = %8862
  br label %8869

8869:                                             ; preds = %8868
  br label %8870

8870:                                             ; preds = %8869
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #9
  %8871 = call ptr @__errno_location() #10
  %8872 = load i32, ptr %8871, align 4, !tbaa !5
  store i32 %8872, ptr %169, align 4, !tbaa !5
  %8873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8874 = call i32 @s2n_print_stacktrace(ptr noundef %8873)
  %8875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8876 = trunc i8 %8875 to i1
  br i1 %8876, label %8877, label %8899

8877:                                             ; preds = %8870
  %8878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8879 = call i32 @fileno(ptr noundef %8878) #9
  %8880 = call i32 @isatty(i32 noundef %8879) #9
  %8881 = icmp ne i32 %8880, 0
  br i1 %8881, label %8882, label %8899

8882:                                             ; preds = %8877
  %8883 = load i32, ptr %169, align 4, !tbaa !5
  %8884 = call ptr @__errno_location() #10
  store i32 %8883, ptr %8884, align 4, !tbaa !5
  %8885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8886 = load i32, ptr @test_count, align 4, !tbaa !5
  %8887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8888 = load i32, ptr %8887, align 4, !tbaa !5
  %8889 = call ptr @s2n_strerror(i32 noundef %8888, ptr noundef @.str.4)
  %8890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8891 = load i32, ptr %8890, align 4, !tbaa !5
  %8892 = call ptr @s2n_strerror_debug(i32 noundef %8891, ptr noundef @.str.4)
  %8893 = call ptr @__errno_location() #10
  %8894 = load i32, ptr %8893, align 4, !tbaa !5
  %8895 = call ptr @strerror(i32 noundef %8894) #9
  %8896 = call ptr @__errno_location() #10
  %8897 = load i32, ptr %8896, align 4, !tbaa !5
  %8898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8885, ptr noundef @.str.2, i32 noundef %8886, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 421, ptr noundef %8889, ptr noundef %8892, ptr noundef %8895, i32 noundef %8897) #9
  br label %8916

8899:                                             ; preds = %8877, %8870
  %8900 = load i32, ptr %169, align 4, !tbaa !5
  %8901 = call ptr @__errno_location() #10
  store i32 %8900, ptr %8901, align 4, !tbaa !5
  %8902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8903 = load i32, ptr @test_count, align 4, !tbaa !5
  %8904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8905 = load i32, ptr %8904, align 4, !tbaa !5
  %8906 = call ptr @s2n_strerror(i32 noundef %8905, ptr noundef @.str.4)
  %8907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8908 = load i32, ptr %8907, align 4, !tbaa !5
  %8909 = call ptr @s2n_strerror_debug(i32 noundef %8908, ptr noundef @.str.4)
  %8910 = call ptr @__errno_location() #10
  %8911 = load i32, ptr %8910, align 4, !tbaa !5
  %8912 = call ptr @strerror(i32 noundef %8911) #9
  %8913 = call ptr @__errno_location() #10
  %8914 = load i32, ptr %8913, align 4, !tbaa !5
  %8915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8902, ptr noundef @.str.5, i32 noundef %8903, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 421, ptr noundef %8906, ptr noundef %8909, ptr noundef %8912, i32 noundef %8914) #9
  br label %8916

8916:                                             ; preds = %8899, %8882
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #9
  br label %8917

8917:                                             ; preds = %8916
  br label %8918

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

8919:                                             ; No predecessors!
  br label %8920

8920:                                             ; preds = %8919
  br label %8921

8921:                                             ; preds = %8920, %8862
  br label %8922

8922:                                             ; preds = %8921
  br label %8923

8923:                                             ; preds = %8922
  br label %8924

8924:                                             ; preds = %8923
  %8925 = load i32, ptr @test_count, align 4, !tbaa !5
  %8926 = add nsw i32 %8925, 1
  store i32 %8926, ptr @test_count, align 4, !tbaa !5
  %8927 = load ptr, ptr %12, align 8, !tbaa !9
  %8928 = call i32 @s2n_connection_set_blinding(ptr noundef %8927, i32 noundef 1)
  %8929 = icmp eq i32 %8928, -1
  br i1 %8929, label %8930, label %8983

8930:                                             ; preds = %8924
  br label %8931

8931:                                             ; preds = %8930
  br label %8932

8932:                                             ; preds = %8931
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #9
  %8933 = call ptr @__errno_location() #10
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  store i32 %8934, ptr %170, align 4, !tbaa !5
  %8935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8936 = call i32 @s2n_print_stacktrace(ptr noundef %8935)
  %8937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8938 = trunc i8 %8937 to i1
  br i1 %8938, label %8939, label %8961

8939:                                             ; preds = %8932
  %8940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8941 = call i32 @fileno(ptr noundef %8940) #9
  %8942 = call i32 @isatty(i32 noundef %8941) #9
  %8943 = icmp ne i32 %8942, 0
  br i1 %8943, label %8944, label %8961

8944:                                             ; preds = %8939
  %8945 = load i32, ptr %170, align 4, !tbaa !5
  %8946 = call ptr @__errno_location() #10
  store i32 %8945, ptr %8946, align 4, !tbaa !5
  %8947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8948 = load i32, ptr @test_count, align 4, !tbaa !5
  %8949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8950 = load i32, ptr %8949, align 4, !tbaa !5
  %8951 = call ptr @s2n_strerror(i32 noundef %8950, ptr noundef @.str.4)
  %8952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8953 = load i32, ptr %8952, align 4, !tbaa !5
  %8954 = call ptr @s2n_strerror_debug(i32 noundef %8953, ptr noundef @.str.4)
  %8955 = call ptr @__errno_location() #10
  %8956 = load i32, ptr %8955, align 4, !tbaa !5
  %8957 = call ptr @strerror(i32 noundef %8956) #9
  %8958 = call ptr @__errno_location() #10
  %8959 = load i32, ptr %8958, align 4, !tbaa !5
  %8960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8947, ptr noundef @.str.2, i32 noundef %8948, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 422, ptr noundef %8951, ptr noundef %8954, ptr noundef %8957, i32 noundef %8959) #9
  br label %8978

8961:                                             ; preds = %8939, %8932
  %8962 = load i32, ptr %170, align 4, !tbaa !5
  %8963 = call ptr @__errno_location() #10
  store i32 %8962, ptr %8963, align 4, !tbaa !5
  %8964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8965 = load i32, ptr @test_count, align 4, !tbaa !5
  %8966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8967 = load i32, ptr %8966, align 4, !tbaa !5
  %8968 = call ptr @s2n_strerror(i32 noundef %8967, ptr noundef @.str.4)
  %8969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8970 = load i32, ptr %8969, align 4, !tbaa !5
  %8971 = call ptr @s2n_strerror_debug(i32 noundef %8970, ptr noundef @.str.4)
  %8972 = call ptr @__errno_location() #10
  %8973 = load i32, ptr %8972, align 4, !tbaa !5
  %8974 = call ptr @strerror(i32 noundef %8973) #9
  %8975 = call ptr @__errno_location() #10
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  %8977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8964, ptr noundef @.str.5, i32 noundef %8965, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 422, ptr noundef %8968, ptr noundef %8971, ptr noundef %8974, i32 noundef %8976) #9
  br label %8978

8978:                                             ; preds = %8961, %8944
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #9
  br label %8979

8979:                                             ; preds = %8978
  br label %8980

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

8981:                                             ; No predecessors!
  br label %8982

8982:                                             ; preds = %8981
  br label %8983

8983:                                             ; preds = %8982, %8924
  br label %8984

8984:                                             ; preds = %8983
  br label %8985

8985:                                             ; preds = %8984
  br label %8986

8986:                                             ; preds = %8985
  %8987 = load i32, ptr @test_count, align 4, !tbaa !5
  %8988 = add nsw i32 %8987, 1
  store i32 %8988, ptr @test_count, align 4, !tbaa !5
  %8989 = load ptr, ptr %11, align 8, !tbaa !9
  %8990 = load ptr, ptr %12, align 8, !tbaa !9
  %8991 = call i32 @setup_psks_with_no_match(ptr noundef %8989, ptr noundef %8990)
  %8992 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  store i32 %8991, ptr %8992, align 4
  %8993 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  %8994 = load i32, ptr %8993, align 4
  %8995 = call zeroext i1 @s2n_result_is_ok(i32 %8994)
  br i1 %8995, label %9049, label %8996

8996:                                             ; preds = %8986
  br label %8997

8997:                                             ; preds = %8996
  br label %8998

8998:                                             ; preds = %8997
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #9
  %8999 = call ptr @__errno_location() #10
  %9000 = load i32, ptr %8999, align 4, !tbaa !5
  store i32 %9000, ptr %172, align 4, !tbaa !5
  %9001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9002 = call i32 @s2n_print_stacktrace(ptr noundef %9001)
  %9003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9004 = trunc i8 %9003 to i1
  br i1 %9004, label %9005, label %9027

9005:                                             ; preds = %8998
  %9006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9007 = call i32 @fileno(ptr noundef %9006) #9
  %9008 = call i32 @isatty(i32 noundef %9007) #9
  %9009 = icmp ne i32 %9008, 0
  br i1 %9009, label %9010, label %9027

9010:                                             ; preds = %9005
  %9011 = load i32, ptr %172, align 4, !tbaa !5
  %9012 = call ptr @__errno_location() #10
  store i32 %9011, ptr %9012, align 4, !tbaa !5
  %9013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9014 = load i32, ptr @test_count, align 4, !tbaa !5
  %9015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9016 = load i32, ptr %9015, align 4, !tbaa !5
  %9017 = call ptr @s2n_strerror(i32 noundef %9016, ptr noundef @.str.4)
  %9018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9019 = load i32, ptr %9018, align 4, !tbaa !5
  %9020 = call ptr @s2n_strerror_debug(i32 noundef %9019, ptr noundef @.str.4)
  %9021 = call ptr @__errno_location() #10
  %9022 = load i32, ptr %9021, align 4, !tbaa !5
  %9023 = call ptr @strerror(i32 noundef %9022) #9
  %9024 = call ptr @__errno_location() #10
  %9025 = load i32, ptr %9024, align 4, !tbaa !5
  %9026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9013, ptr noundef @.str.2, i32 noundef %9014, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 425, ptr noundef %9017, ptr noundef %9020, ptr noundef %9023, i32 noundef %9025) #9
  br label %9044

9027:                                             ; preds = %9005, %8998
  %9028 = load i32, ptr %172, align 4, !tbaa !5
  %9029 = call ptr @__errno_location() #10
  store i32 %9028, ptr %9029, align 4, !tbaa !5
  %9030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9031 = load i32, ptr @test_count, align 4, !tbaa !5
  %9032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9033 = load i32, ptr %9032, align 4, !tbaa !5
  %9034 = call ptr @s2n_strerror(i32 noundef %9033, ptr noundef @.str.4)
  %9035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9036 = load i32, ptr %9035, align 4, !tbaa !5
  %9037 = call ptr @s2n_strerror_debug(i32 noundef %9036, ptr noundef @.str.4)
  %9038 = call ptr @__errno_location() #10
  %9039 = load i32, ptr %9038, align 4, !tbaa !5
  %9040 = call ptr @strerror(i32 noundef %9039) #9
  %9041 = call ptr @__errno_location() #10
  %9042 = load i32, ptr %9041, align 4, !tbaa !5
  %9043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9030, ptr noundef @.str.5, i32 noundef %9031, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 425, ptr noundef %9034, ptr noundef %9037, ptr noundef %9040, i32 noundef %9042) #9
  br label %9044

9044:                                             ; preds = %9027, %9010
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #9
  br label %9045

9045:                                             ; preds = %9044
  br label %9046

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

9047:                                             ; No predecessors!
  br label %9048

9048:                                             ; preds = %9047
  br label %9049

9049:                                             ; preds = %9048, %8986
  br label %9050

9050:                                             ; preds = %9049
  br label %9051

9051:                                             ; preds = %9050
  br label %9052

9052:                                             ; preds = %9051
  br label %9053

9053:                                             ; preds = %9052
  %9054 = load i32, ptr @test_count, align 4, !tbaa !5
  %9055 = add nsw i32 %9054, 1
  store i32 %9055, ptr @test_count, align 4, !tbaa !5
  %9056 = load ptr, ptr %12, align 8, !tbaa !9
  %9057 = load ptr, ptr %11, align 8, !tbaa !9
  %9058 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9056, ptr noundef %9057)
  %9059 = icmp eq i32 %9058, -1
  br i1 %9059, label %9113, label %9060

9060:                                             ; preds = %9053
  br label %9061

9061:                                             ; preds = %9060
  br label %9062

9062:                                             ; preds = %9061
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #9
  %9063 = call ptr @__errno_location() #10
  %9064 = load i32, ptr %9063, align 4, !tbaa !5
  store i32 %9064, ptr %173, align 4, !tbaa !5
  %9065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9066 = call i32 @s2n_print_stacktrace(ptr noundef %9065)
  %9067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9068 = trunc i8 %9067 to i1
  br i1 %9068, label %9069, label %9091

9069:                                             ; preds = %9062
  %9070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9071 = call i32 @fileno(ptr noundef %9070) #9
  %9072 = call i32 @isatty(i32 noundef %9071) #9
  %9073 = icmp ne i32 %9072, 0
  br i1 %9073, label %9074, label %9091

9074:                                             ; preds = %9069
  %9075 = load i32, ptr %173, align 4, !tbaa !5
  %9076 = call ptr @__errno_location() #10
  store i32 %9075, ptr %9076, align 4, !tbaa !5
  %9077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9078 = load i32, ptr @test_count, align 4, !tbaa !5
  %9079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9080 = load i32, ptr %9079, align 4, !tbaa !5
  %9081 = call ptr @s2n_strerror(i32 noundef %9080, ptr noundef @.str.4)
  %9082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9083 = load i32, ptr %9082, align 4, !tbaa !5
  %9084 = call ptr @s2n_strerror_debug(i32 noundef %9083, ptr noundef @.str.4)
  %9085 = call ptr @__errno_location() #10
  %9086 = load i32, ptr %9085, align 4, !tbaa !5
  %9087 = call ptr @strerror(i32 noundef %9086) #9
  %9088 = call ptr @__errno_location() #10
  %9089 = load i32, ptr %9088, align 4, !tbaa !5
  %9090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9077, ptr noundef @.str.2, i32 noundef %9078, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9081, ptr noundef %9084, ptr noundef %9087, i32 noundef %9089) #9
  br label %9108

9091:                                             ; preds = %9069, %9062
  %9092 = load i32, ptr %173, align 4, !tbaa !5
  %9093 = call ptr @__errno_location() #10
  store i32 %9092, ptr %9093, align 4, !tbaa !5
  %9094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9095 = load i32, ptr @test_count, align 4, !tbaa !5
  %9096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9097 = load i32, ptr %9096, align 4, !tbaa !5
  %9098 = call ptr @s2n_strerror(i32 noundef %9097, ptr noundef @.str.4)
  %9099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9100 = load i32, ptr %9099, align 4, !tbaa !5
  %9101 = call ptr @s2n_strerror_debug(i32 noundef %9100, ptr noundef @.str.4)
  %9102 = call ptr @__errno_location() #10
  %9103 = load i32, ptr %9102, align 4, !tbaa !5
  %9104 = call ptr @strerror(i32 noundef %9103) #9
  %9105 = call ptr @__errno_location() #10
  %9106 = load i32, ptr %9105, align 4, !tbaa !5
  %9107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9094, ptr noundef @.str.5, i32 noundef %9095, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9098, ptr noundef %9101, ptr noundef %9104, i32 noundef %9106) #9
  br label %9108

9108:                                             ; preds = %9091, %9074
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #9
  br label %9109

9109:                                             ; preds = %9108
  br label %9110

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

9111:                                             ; No predecessors!
  br label %9112

9112:                                             ; preds = %9111
  br label %9113

9113:                                             ; preds = %9112, %9053
  br label %9114

9114:                                             ; preds = %9113
  br label %9115

9115:                                             ; preds = %9114
  br label %9116

9116:                                             ; preds = %9115
  %9117 = load i32, ptr @test_count, align 4, !tbaa !5
  %9118 = add nsw i32 %9117, 1
  store i32 %9118, ptr @test_count, align 4, !tbaa !5
  %9119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9120 = load i32, ptr %9119, align 4, !tbaa !5
  %9121 = icmp eq i32 %9120, 0
  br i1 %9121, label %9122, label %9175

9122:                                             ; preds = %9116
  br label %9123

9123:                                             ; preds = %9122
  br label %9124

9124:                                             ; preds = %9123
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #9
  %9125 = call ptr @__errno_location() #10
  %9126 = load i32, ptr %9125, align 4, !tbaa !5
  store i32 %9126, ptr %174, align 4, !tbaa !5
  %9127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9128 = call i32 @s2n_print_stacktrace(ptr noundef %9127)
  %9129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9130 = trunc i8 %9129 to i1
  br i1 %9130, label %9131, label %9153

9131:                                             ; preds = %9124
  %9132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9133 = call i32 @fileno(ptr noundef %9132) #9
  %9134 = call i32 @isatty(i32 noundef %9133) #9
  %9135 = icmp ne i32 %9134, 0
  br i1 %9135, label %9136, label %9153

9136:                                             ; preds = %9131
  %9137 = load i32, ptr %174, align 4, !tbaa !5
  %9138 = call ptr @__errno_location() #10
  store i32 %9137, ptr %9138, align 4, !tbaa !5
  %9139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9140 = load i32, ptr @test_count, align 4, !tbaa !5
  %9141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9142 = load i32, ptr %9141, align 4, !tbaa !5
  %9143 = call ptr @s2n_strerror(i32 noundef %9142, ptr noundef @.str.4)
  %9144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9145 = load i32, ptr %9144, align 4, !tbaa !5
  %9146 = call ptr @s2n_strerror_debug(i32 noundef %9145, ptr noundef @.str.4)
  %9147 = call ptr @__errno_location() #10
  %9148 = load i32, ptr %9147, align 4, !tbaa !5
  %9149 = call ptr @strerror(i32 noundef %9148) #9
  %9150 = call ptr @__errno_location() #10
  %9151 = load i32, ptr %9150, align 4, !tbaa !5
  %9152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9139, ptr noundef @.str.2, i32 noundef %9140, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9143, ptr noundef %9146, ptr noundef %9149, i32 noundef %9151) #9
  br label %9170

9153:                                             ; preds = %9131, %9124
  %9154 = load i32, ptr %174, align 4, !tbaa !5
  %9155 = call ptr @__errno_location() #10
  store i32 %9154, ptr %9155, align 4, !tbaa !5
  %9156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9157 = load i32, ptr @test_count, align 4, !tbaa !5
  %9158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9159 = load i32, ptr %9158, align 4, !tbaa !5
  %9160 = call ptr @s2n_strerror(i32 noundef %9159, ptr noundef @.str.4)
  %9161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9162 = load i32, ptr %9161, align 4, !tbaa !5
  %9163 = call ptr @s2n_strerror_debug(i32 noundef %9162, ptr noundef @.str.4)
  %9164 = call ptr @__errno_location() #10
  %9165 = load i32, ptr %9164, align 4, !tbaa !5
  %9166 = call ptr @strerror(i32 noundef %9165) #9
  %9167 = call ptr @__errno_location() #10
  %9168 = load i32, ptr %9167, align 4, !tbaa !5
  %9169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9156, ptr noundef @.str.5, i32 noundef %9157, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9160, ptr noundef %9163, ptr noundef %9166, i32 noundef %9168) #9
  br label %9170

9170:                                             ; preds = %9153, %9136
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #9
  br label %9171

9171:                                             ; preds = %9170
  br label %9172

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

9173:                                             ; No predecessors!
  br label %9174

9174:                                             ; preds = %9173
  br label %9175

9175:                                             ; preds = %9174, %9116
  br label %9176

9176:                                             ; preds = %9175
  br label %9177

9177:                                             ; preds = %9176
  br label %9178

9178:                                             ; preds = %9177
  %9179 = load i32, ptr @test_count, align 4, !tbaa !5
  %9180 = add nsw i32 %9179, 1
  store i32 %9180, ptr @test_count, align 4, !tbaa !5
  %9181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9182 = load i32, ptr %9181, align 4, !tbaa !5
  %9183 = call ptr @s2n_strerror_debug(i32 noundef %9182, ptr noundef @.str.4)
  %9184 = icmp eq ptr %9183, null
  br i1 %9184, label %9185, label %9238

9185:                                             ; preds = %9178
  br label %9186

9186:                                             ; preds = %9185
  br label %9187

9187:                                             ; preds = %9186
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #9
  %9188 = call ptr @__errno_location() #10
  %9189 = load i32, ptr %9188, align 4, !tbaa !5
  store i32 %9189, ptr %175, align 4, !tbaa !5
  %9190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9191 = call i32 @s2n_print_stacktrace(ptr noundef %9190)
  %9192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9193 = trunc i8 %9192 to i1
  br i1 %9193, label %9194, label %9216

9194:                                             ; preds = %9187
  %9195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9196 = call i32 @fileno(ptr noundef %9195) #9
  %9197 = call i32 @isatty(i32 noundef %9196) #9
  %9198 = icmp ne i32 %9197, 0
  br i1 %9198, label %9199, label %9216

9199:                                             ; preds = %9194
  %9200 = load i32, ptr %175, align 4, !tbaa !5
  %9201 = call ptr @__errno_location() #10
  store i32 %9200, ptr %9201, align 4, !tbaa !5
  %9202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9203 = load i32, ptr @test_count, align 4, !tbaa !5
  %9204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9205 = load i32, ptr %9204, align 4, !tbaa !5
  %9206 = call ptr @s2n_strerror(i32 noundef %9205, ptr noundef @.str.4)
  %9207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9208 = load i32, ptr %9207, align 4, !tbaa !5
  %9209 = call ptr @s2n_strerror_debug(i32 noundef %9208, ptr noundef @.str.4)
  %9210 = call ptr @__errno_location() #10
  %9211 = load i32, ptr %9210, align 4, !tbaa !5
  %9212 = call ptr @strerror(i32 noundef %9211) #9
  %9213 = call ptr @__errno_location() #10
  %9214 = load i32, ptr %9213, align 4, !tbaa !5
  %9215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9202, ptr noundef @.str.2, i32 noundef %9203, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9206, ptr noundef %9209, ptr noundef %9212, i32 noundef %9214) #9
  br label %9233

9216:                                             ; preds = %9194, %9187
  %9217 = load i32, ptr %175, align 4, !tbaa !5
  %9218 = call ptr @__errno_location() #10
  store i32 %9217, ptr %9218, align 4, !tbaa !5
  %9219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9220 = load i32, ptr @test_count, align 4, !tbaa !5
  %9221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9222 = load i32, ptr %9221, align 4, !tbaa !5
  %9223 = call ptr @s2n_strerror(i32 noundef %9222, ptr noundef @.str.4)
  %9224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9225 = load i32, ptr %9224, align 4, !tbaa !5
  %9226 = call ptr @s2n_strerror_debug(i32 noundef %9225, ptr noundef @.str.4)
  %9227 = call ptr @__errno_location() #10
  %9228 = load i32, ptr %9227, align 4, !tbaa !5
  %9229 = call ptr @strerror(i32 noundef %9228) #9
  %9230 = call ptr @__errno_location() #10
  %9231 = load i32, ptr %9230, align 4, !tbaa !5
  %9232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9219, ptr noundef @.str.5, i32 noundef %9220, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9223, ptr noundef %9226, ptr noundef %9229, i32 noundef %9231) #9
  br label %9233

9233:                                             ; preds = %9216, %9199
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #9
  br label %9234

9234:                                             ; preds = %9233
  br label %9235

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

9236:                                             ; No predecessors!
  br label %9237

9237:                                             ; preds = %9236
  br label %9238

9238:                                             ; preds = %9237, %9178
  br label %9239

9239:                                             ; preds = %9238
  br label %9240

9240:                                             ; preds = %9239
  br label %9241

9241:                                             ; preds = %9240
  %9242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9242, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9243 = call ptr @__errno_location() #10
  store i32 0, ptr %9243, align 4, !tbaa !5
  br label %9244

9244:                                             ; preds = %9241
  br label %9245

9245:                                             ; preds = %9244
  br label %9246

9246:                                             ; preds = %9245
  br label %9247

9247:                                             ; preds = %9246
  br label %9248

9248:                                             ; preds = %9247
  %9249 = load i32, ptr @test_count, align 4, !tbaa !5
  %9250 = add nsw i32 %9249, 1
  store i32 %9250, ptr @test_count, align 4, !tbaa !5
  %9251 = load ptr, ptr %12, align 8, !tbaa !9
  %9252 = getelementptr inbounds %struct.s2n_connection, ptr %9251, i32 0, i32 33
  %9253 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %9252, i32 0, i32 4
  %9254 = load ptr, ptr %9253, align 8, !tbaa !48
  %9255 = icmp eq ptr %9254, null
  br i1 %9255, label %9309, label %9256

9256:                                             ; preds = %9248
  br label %9257

9257:                                             ; preds = %9256
  br label %9258

9258:                                             ; preds = %9257
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #9
  %9259 = call ptr @__errno_location() #10
  %9260 = load i32, ptr %9259, align 4, !tbaa !5
  store i32 %9260, ptr %176, align 4, !tbaa !5
  %9261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9262 = call i32 @s2n_print_stacktrace(ptr noundef %9261)
  %9263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9264 = trunc i8 %9263 to i1
  br i1 %9264, label %9265, label %9287

9265:                                             ; preds = %9258
  %9266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9267 = call i32 @fileno(ptr noundef %9266) #9
  %9268 = call i32 @isatty(i32 noundef %9267) #9
  %9269 = icmp ne i32 %9268, 0
  br i1 %9269, label %9270, label %9287

9270:                                             ; preds = %9265
  %9271 = load i32, ptr %176, align 4, !tbaa !5
  %9272 = call ptr @__errno_location() #10
  store i32 %9271, ptr %9272, align 4, !tbaa !5
  %9273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9274 = load i32, ptr @test_count, align 4, !tbaa !5
  %9275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9276 = load i32, ptr %9275, align 4, !tbaa !5
  %9277 = call ptr @s2n_strerror(i32 noundef %9276, ptr noundef @.str.4)
  %9278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9279 = load i32, ptr %9278, align 4, !tbaa !5
  %9280 = call ptr @s2n_strerror_debug(i32 noundef %9279, ptr noundef @.str.4)
  %9281 = call ptr @__errno_location() #10
  %9282 = load i32, ptr %9281, align 4, !tbaa !5
  %9283 = call ptr @strerror(i32 noundef %9282) #9
  %9284 = call ptr @__errno_location() #10
  %9285 = load i32, ptr %9284, align 4, !tbaa !5
  %9286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9273, ptr noundef @.str.2, i32 noundef %9274, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 431, ptr noundef %9277, ptr noundef %9280, ptr noundef %9283, i32 noundef %9285) #9
  br label %9304

9287:                                             ; preds = %9265, %9258
  %9288 = load i32, ptr %176, align 4, !tbaa !5
  %9289 = call ptr @__errno_location() #10
  store i32 %9288, ptr %9289, align 4, !tbaa !5
  %9290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9291 = load i32, ptr @test_count, align 4, !tbaa !5
  %9292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9293 = load i32, ptr %9292, align 4, !tbaa !5
  %9294 = call ptr @s2n_strerror(i32 noundef %9293, ptr noundef @.str.4)
  %9295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9296 = load i32, ptr %9295, align 4, !tbaa !5
  %9297 = call ptr @s2n_strerror_debug(i32 noundef %9296, ptr noundef @.str.4)
  %9298 = call ptr @__errno_location() #10
  %9299 = load i32, ptr %9298, align 4, !tbaa !5
  %9300 = call ptr @strerror(i32 noundef %9299) #9
  %9301 = call ptr @__errno_location() #10
  %9302 = load i32, ptr %9301, align 4, !tbaa !5
  %9303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9290, ptr noundef @.str.5, i32 noundef %9291, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 431, ptr noundef %9294, ptr noundef %9297, ptr noundef %9300, i32 noundef %9302) #9
  br label %9304

9304:                                             ; preds = %9287, %9270
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #9
  br label %9305

9305:                                             ; preds = %9304
  br label %9306

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

9307:                                             ; No predecessors!
  br label %9308

9308:                                             ; preds = %9307
  br label %9309

9309:                                             ; preds = %9308, %9248
  br label %9310

9310:                                             ; preds = %9309
  br label %9311

9311:                                             ; preds = %9310
  br label %9312

9312:                                             ; preds = %9311
  %9313 = load i32, ptr @test_count, align 4, !tbaa !5
  %9314 = add nsw i32 %9313, 1
  store i32 %9314, ptr @test_count, align 4, !tbaa !5
  %9315 = load ptr, ptr %11, align 8, !tbaa !9
  %9316 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %9315, i32 noundef 2)
  br i1 %9316, label %9317, label %9373

9317:                                             ; preds = %9312
  %9318 = load ptr, ptr %12, align 8, !tbaa !9
  %9319 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %9318, i32 noundef 2)
  br i1 %9319, label %9320, label %9373

9320:                                             ; preds = %9317
  br label %9321

9321:                                             ; preds = %9320
  br label %9322

9322:                                             ; preds = %9321
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #9
  %9323 = call ptr @__errno_location() #10
  %9324 = load i32, ptr %9323, align 4, !tbaa !5
  store i32 %9324, ptr %177, align 4, !tbaa !5
  %9325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9326 = call i32 @s2n_print_stacktrace(ptr noundef %9325)
  %9327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9328 = trunc i8 %9327 to i1
  br i1 %9328, label %9329, label %9351

9329:                                             ; preds = %9322
  %9330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9331 = call i32 @fileno(ptr noundef %9330) #9
  %9332 = call i32 @isatty(i32 noundef %9331) #9
  %9333 = icmp ne i32 %9332, 0
  br i1 %9333, label %9334, label %9351

9334:                                             ; preds = %9329
  %9335 = load i32, ptr %177, align 4, !tbaa !5
  %9336 = call ptr @__errno_location() #10
  store i32 %9335, ptr %9336, align 4, !tbaa !5
  %9337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9338 = load i32, ptr @test_count, align 4, !tbaa !5
  %9339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9340 = load i32, ptr %9339, align 4, !tbaa !5
  %9341 = call ptr @s2n_strerror(i32 noundef %9340, ptr noundef @.str.4)
  %9342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9343 = load i32, ptr %9342, align 4, !tbaa !5
  %9344 = call ptr @s2n_strerror_debug(i32 noundef %9343, ptr noundef @.str.4)
  %9345 = call ptr @__errno_location() #10
  %9346 = load i32, ptr %9345, align 4, !tbaa !5
  %9347 = call ptr @strerror(i32 noundef %9346) #9
  %9348 = call ptr @__errno_location() #10
  %9349 = load i32, ptr %9348, align 4, !tbaa !5
  %9350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9337, ptr noundef @.str.2, i32 noundef %9338, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 434, ptr noundef %9341, ptr noundef %9344, ptr noundef %9347, i32 noundef %9349) #9
  br label %9368

9351:                                             ; preds = %9329, %9322
  %9352 = load i32, ptr %177, align 4, !tbaa !5
  %9353 = call ptr @__errno_location() #10
  store i32 %9352, ptr %9353, align 4, !tbaa !5
  %9354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9355 = load i32, ptr @test_count, align 4, !tbaa !5
  %9356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9357 = load i32, ptr %9356, align 4, !tbaa !5
  %9358 = call ptr @s2n_strerror(i32 noundef %9357, ptr noundef @.str.4)
  %9359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9360 = load i32, ptr %9359, align 4, !tbaa !5
  %9361 = call ptr @s2n_strerror_debug(i32 noundef %9360, ptr noundef @.str.4)
  %9362 = call ptr @__errno_location() #10
  %9363 = load i32, ptr %9362, align 4, !tbaa !5
  %9364 = call ptr @strerror(i32 noundef %9363) #9
  %9365 = call ptr @__errno_location() #10
  %9366 = load i32, ptr %9365, align 4, !tbaa !5
  %9367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9354, ptr noundef @.str.5, i32 noundef %9355, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 434, ptr noundef %9358, ptr noundef %9361, ptr noundef %9364, i32 noundef %9366) #9
  br label %9368

9368:                                             ; preds = %9351, %9334
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #9
  br label %9369

9369:                                             ; preds = %9368
  br label %9370

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

9371:                                             ; No predecessors!
  br label %9372

9372:                                             ; preds = %9371
  br label %9373

9373:                                             ; preds = %9372, %9317, %9312
  br label %9374

9374:                                             ; preds = %9373
  br label %9375

9375:                                             ; preds = %9374
  br label %9376

9376:                                             ; preds = %9375
  %9377 = load i32, ptr @test_count, align 4, !tbaa !5
  %9378 = add nsw i32 %9377, 1
  store i32 %9378, ptr @test_count, align 4, !tbaa !5
  %9379 = load ptr, ptr %11, align 8, !tbaa !9
  %9380 = call i32 @s2n_connection_wipe(ptr noundef %9379)
  %9381 = icmp eq i32 %9380, -1
  br i1 %9381, label %9382, label %9435

9382:                                             ; preds = %9376
  br label %9383

9383:                                             ; preds = %9382
  br label %9384

9384:                                             ; preds = %9383
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #9
  %9385 = call ptr @__errno_location() #10
  %9386 = load i32, ptr %9385, align 4, !tbaa !5
  store i32 %9386, ptr %178, align 4, !tbaa !5
  %9387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9388 = call i32 @s2n_print_stacktrace(ptr noundef %9387)
  %9389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9390 = trunc i8 %9389 to i1
  br i1 %9390, label %9391, label %9413

9391:                                             ; preds = %9384
  %9392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9393 = call i32 @fileno(ptr noundef %9392) #9
  %9394 = call i32 @isatty(i32 noundef %9393) #9
  %9395 = icmp ne i32 %9394, 0
  br i1 %9395, label %9396, label %9413

9396:                                             ; preds = %9391
  %9397 = load i32, ptr %178, align 4, !tbaa !5
  %9398 = call ptr @__errno_location() #10
  store i32 %9397, ptr %9398, align 4, !tbaa !5
  %9399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9400 = load i32, ptr @test_count, align 4, !tbaa !5
  %9401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9402 = load i32, ptr %9401, align 4, !tbaa !5
  %9403 = call ptr @s2n_strerror(i32 noundef %9402, ptr noundef @.str.4)
  %9404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9405 = load i32, ptr %9404, align 4, !tbaa !5
  %9406 = call ptr @s2n_strerror_debug(i32 noundef %9405, ptr noundef @.str.4)
  %9407 = call ptr @__errno_location() #10
  %9408 = load i32, ptr %9407, align 4, !tbaa !5
  %9409 = call ptr @strerror(i32 noundef %9408) #9
  %9410 = call ptr @__errno_location() #10
  %9411 = load i32, ptr %9410, align 4, !tbaa !5
  %9412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9399, ptr noundef @.str.2, i32 noundef %9400, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 436, ptr noundef %9403, ptr noundef %9406, ptr noundef %9409, i32 noundef %9411) #9
  br label %9430

9413:                                             ; preds = %9391, %9384
  %9414 = load i32, ptr %178, align 4, !tbaa !5
  %9415 = call ptr @__errno_location() #10
  store i32 %9414, ptr %9415, align 4, !tbaa !5
  %9416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9417 = load i32, ptr @test_count, align 4, !tbaa !5
  %9418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9419 = load i32, ptr %9418, align 4, !tbaa !5
  %9420 = call ptr @s2n_strerror(i32 noundef %9419, ptr noundef @.str.4)
  %9421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9422 = load i32, ptr %9421, align 4, !tbaa !5
  %9423 = call ptr @s2n_strerror_debug(i32 noundef %9422, ptr noundef @.str.4)
  %9424 = call ptr @__errno_location() #10
  %9425 = load i32, ptr %9424, align 4, !tbaa !5
  %9426 = call ptr @strerror(i32 noundef %9425) #9
  %9427 = call ptr @__errno_location() #10
  %9428 = load i32, ptr %9427, align 4, !tbaa !5
  %9429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9416, ptr noundef @.str.5, i32 noundef %9417, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 436, ptr noundef %9420, ptr noundef %9423, ptr noundef %9426, i32 noundef %9428) #9
  br label %9430

9430:                                             ; preds = %9413, %9396
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #9
  br label %9431

9431:                                             ; preds = %9430
  br label %9432

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

9433:                                             ; No predecessors!
  br label %9434

9434:                                             ; preds = %9433
  br label %9435

9435:                                             ; preds = %9434, %9376
  br label %9436

9436:                                             ; preds = %9435
  br label %9437

9437:                                             ; preds = %9436
  br label %9438

9438:                                             ; preds = %9437
  %9439 = load i32, ptr @test_count, align 4, !tbaa !5
  %9440 = add nsw i32 %9439, 1
  store i32 %9440, ptr @test_count, align 4, !tbaa !5
  %9441 = load ptr, ptr %12, align 8, !tbaa !9
  %9442 = call i32 @s2n_connection_wipe(ptr noundef %9441)
  %9443 = icmp eq i32 %9442, -1
  br i1 %9443, label %9444, label %9497

9444:                                             ; preds = %9438
  br label %9445

9445:                                             ; preds = %9444
  br label %9446

9446:                                             ; preds = %9445
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #9
  %9447 = call ptr @__errno_location() #10
  %9448 = load i32, ptr %9447, align 4, !tbaa !5
  store i32 %9448, ptr %179, align 4, !tbaa !5
  %9449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9450 = call i32 @s2n_print_stacktrace(ptr noundef %9449)
  %9451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9452 = trunc i8 %9451 to i1
  br i1 %9452, label %9453, label %9475

9453:                                             ; preds = %9446
  %9454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9455 = call i32 @fileno(ptr noundef %9454) #9
  %9456 = call i32 @isatty(i32 noundef %9455) #9
  %9457 = icmp ne i32 %9456, 0
  br i1 %9457, label %9458, label %9475

9458:                                             ; preds = %9453
  %9459 = load i32, ptr %179, align 4, !tbaa !5
  %9460 = call ptr @__errno_location() #10
  store i32 %9459, ptr %9460, align 4, !tbaa !5
  %9461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9462 = load i32, ptr @test_count, align 4, !tbaa !5
  %9463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9464 = load i32, ptr %9463, align 4, !tbaa !5
  %9465 = call ptr @s2n_strerror(i32 noundef %9464, ptr noundef @.str.4)
  %9466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9467 = load i32, ptr %9466, align 4, !tbaa !5
  %9468 = call ptr @s2n_strerror_debug(i32 noundef %9467, ptr noundef @.str.4)
  %9469 = call ptr @__errno_location() #10
  %9470 = load i32, ptr %9469, align 4, !tbaa !5
  %9471 = call ptr @strerror(i32 noundef %9470) #9
  %9472 = call ptr @__errno_location() #10
  %9473 = load i32, ptr %9472, align 4, !tbaa !5
  %9474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9461, ptr noundef @.str.2, i32 noundef %9462, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 437, ptr noundef %9465, ptr noundef %9468, ptr noundef %9471, i32 noundef %9473) #9
  br label %9492

9475:                                             ; preds = %9453, %9446
  %9476 = load i32, ptr %179, align 4, !tbaa !5
  %9477 = call ptr @__errno_location() #10
  store i32 %9476, ptr %9477, align 4, !tbaa !5
  %9478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9479 = load i32, ptr @test_count, align 4, !tbaa !5
  %9480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9481 = load i32, ptr %9480, align 4, !tbaa !5
  %9482 = call ptr @s2n_strerror(i32 noundef %9481, ptr noundef @.str.4)
  %9483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9484 = load i32, ptr %9483, align 4, !tbaa !5
  %9485 = call ptr @s2n_strerror_debug(i32 noundef %9484, ptr noundef @.str.4)
  %9486 = call ptr @__errno_location() #10
  %9487 = load i32, ptr %9486, align 4, !tbaa !5
  %9488 = call ptr @strerror(i32 noundef %9487) #9
  %9489 = call ptr @__errno_location() #10
  %9490 = load i32, ptr %9489, align 4, !tbaa !5
  %9491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9478, ptr noundef @.str.5, i32 noundef %9479, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 437, ptr noundef %9482, ptr noundef %9485, ptr noundef %9488, i32 noundef %9490) #9
  br label %9492

9492:                                             ; preds = %9475, %9458
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #9
  br label %9493

9493:                                             ; preds = %9492
  br label %9494

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

9495:                                             ; No predecessors!
  br label %9496

9496:                                             ; preds = %9495
  br label %9497

9497:                                             ; preds = %9496, %9438
  br label %9498

9498:                                             ; preds = %9497
  br label %9499

9499:                                             ; preds = %9498
  br label %9500

9500:                                             ; preds = %9499
  %9501 = load i32, ptr @test_count, align 4, !tbaa !5
  %9502 = add nsw i32 %9501, 1
  store i32 %9502, ptr @test_count, align 4, !tbaa !5
  %9503 = load ptr, ptr %12, align 8, !tbaa !9
  %9504 = call i32 @s2n_connection_free(ptr noundef %9503)
  %9505 = icmp eq i32 %9504, -1
  br i1 %9505, label %9506, label %9559

9506:                                             ; preds = %9500
  br label %9507

9507:                                             ; preds = %9506
  br label %9508

9508:                                             ; preds = %9507
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #9
  %9509 = call ptr @__errno_location() #10
  %9510 = load i32, ptr %9509, align 4, !tbaa !5
  store i32 %9510, ptr %180, align 4, !tbaa !5
  %9511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9512 = call i32 @s2n_print_stacktrace(ptr noundef %9511)
  %9513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9514 = trunc i8 %9513 to i1
  br i1 %9514, label %9515, label %9537

9515:                                             ; preds = %9508
  %9516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9517 = call i32 @fileno(ptr noundef %9516) #9
  %9518 = call i32 @isatty(i32 noundef %9517) #9
  %9519 = icmp ne i32 %9518, 0
  br i1 %9519, label %9520, label %9537

9520:                                             ; preds = %9515
  %9521 = load i32, ptr %180, align 4, !tbaa !5
  %9522 = call ptr @__errno_location() #10
  store i32 %9521, ptr %9522, align 4, !tbaa !5
  %9523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9524 = load i32, ptr @test_count, align 4, !tbaa !5
  %9525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9526 = load i32, ptr %9525, align 4, !tbaa !5
  %9527 = call ptr @s2n_strerror(i32 noundef %9526, ptr noundef @.str.4)
  %9528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9529 = load i32, ptr %9528, align 4, !tbaa !5
  %9530 = call ptr @s2n_strerror_debug(i32 noundef %9529, ptr noundef @.str.4)
  %9531 = call ptr @__errno_location() #10
  %9532 = load i32, ptr %9531, align 4, !tbaa !5
  %9533 = call ptr @strerror(i32 noundef %9532) #9
  %9534 = call ptr @__errno_location() #10
  %9535 = load i32, ptr %9534, align 4, !tbaa !5
  %9536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9523, ptr noundef @.str.2, i32 noundef %9524, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 441, ptr noundef %9527, ptr noundef %9530, ptr noundef %9533, i32 noundef %9535) #9
  br label %9554

9537:                                             ; preds = %9515, %9508
  %9538 = load i32, ptr %180, align 4, !tbaa !5
  %9539 = call ptr @__errno_location() #10
  store i32 %9538, ptr %9539, align 4, !tbaa !5
  %9540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9541 = load i32, ptr @test_count, align 4, !tbaa !5
  %9542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9543 = load i32, ptr %9542, align 4, !tbaa !5
  %9544 = call ptr @s2n_strerror(i32 noundef %9543, ptr noundef @.str.4)
  %9545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9546 = load i32, ptr %9545, align 4, !tbaa !5
  %9547 = call ptr @s2n_strerror_debug(i32 noundef %9546, ptr noundef @.str.4)
  %9548 = call ptr @__errno_location() #10
  %9549 = load i32, ptr %9548, align 4, !tbaa !5
  %9550 = call ptr @strerror(i32 noundef %9549) #9
  %9551 = call ptr @__errno_location() #10
  %9552 = load i32, ptr %9551, align 4, !tbaa !5
  %9553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9540, ptr noundef @.str.5, i32 noundef %9541, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 441, ptr noundef %9544, ptr noundef %9547, ptr noundef %9550, i32 noundef %9552) #9
  br label %9554

9554:                                             ; preds = %9537, %9520
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #9
  br label %9555

9555:                                             ; preds = %9554
  br label %9556

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

9557:                                             ; No predecessors!
  br label %9558

9558:                                             ; preds = %9557
  br label %9559

9559:                                             ; preds = %9558, %9500
  br label %9560

9560:                                             ; preds = %9559
  br label %9561

9561:                                             ; preds = %9560
  br label %9562

9562:                                             ; preds = %9561
  %9563 = load i32, ptr @test_count, align 4, !tbaa !5
  %9564 = add nsw i32 %9563, 1
  store i32 %9564, ptr @test_count, align 4, !tbaa !5
  %9565 = load ptr, ptr %11, align 8, !tbaa !9
  %9566 = call i32 @s2n_connection_free(ptr noundef %9565)
  %9567 = icmp eq i32 %9566, -1
  br i1 %9567, label %9568, label %9621

9568:                                             ; preds = %9562
  br label %9569

9569:                                             ; preds = %9568
  br label %9570

9570:                                             ; preds = %9569
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #9
  %9571 = call ptr @__errno_location() #10
  %9572 = load i32, ptr %9571, align 4, !tbaa !5
  store i32 %9572, ptr %181, align 4, !tbaa !5
  %9573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9574 = call i32 @s2n_print_stacktrace(ptr noundef %9573)
  %9575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9576 = trunc i8 %9575 to i1
  br i1 %9576, label %9577, label %9599

9577:                                             ; preds = %9570
  %9578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9579 = call i32 @fileno(ptr noundef %9578) #9
  %9580 = call i32 @isatty(i32 noundef %9579) #9
  %9581 = icmp ne i32 %9580, 0
  br i1 %9581, label %9582, label %9599

9582:                                             ; preds = %9577
  %9583 = load i32, ptr %181, align 4, !tbaa !5
  %9584 = call ptr @__errno_location() #10
  store i32 %9583, ptr %9584, align 4, !tbaa !5
  %9585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9586 = load i32, ptr @test_count, align 4, !tbaa !5
  %9587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9588 = load i32, ptr %9587, align 4, !tbaa !5
  %9589 = call ptr @s2n_strerror(i32 noundef %9588, ptr noundef @.str.4)
  %9590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9591 = load i32, ptr %9590, align 4, !tbaa !5
  %9592 = call ptr @s2n_strerror_debug(i32 noundef %9591, ptr noundef @.str.4)
  %9593 = call ptr @__errno_location() #10
  %9594 = load i32, ptr %9593, align 4, !tbaa !5
  %9595 = call ptr @strerror(i32 noundef %9594) #9
  %9596 = call ptr @__errno_location() #10
  %9597 = load i32, ptr %9596, align 4, !tbaa !5
  %9598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9585, ptr noundef @.str.2, i32 noundef %9586, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 442, ptr noundef %9589, ptr noundef %9592, ptr noundef %9595, i32 noundef %9597) #9
  br label %9616

9599:                                             ; preds = %9577, %9570
  %9600 = load i32, ptr %181, align 4, !tbaa !5
  %9601 = call ptr @__errno_location() #10
  store i32 %9600, ptr %9601, align 4, !tbaa !5
  %9602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9603 = load i32, ptr @test_count, align 4, !tbaa !5
  %9604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9605 = load i32, ptr %9604, align 4, !tbaa !5
  %9606 = call ptr @s2n_strerror(i32 noundef %9605, ptr noundef @.str.4)
  %9607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9608 = load i32, ptr %9607, align 4, !tbaa !5
  %9609 = call ptr @s2n_strerror_debug(i32 noundef %9608, ptr noundef @.str.4)
  %9610 = call ptr @__errno_location() #10
  %9611 = load i32, ptr %9610, align 4, !tbaa !5
  %9612 = call ptr @strerror(i32 noundef %9611) #9
  %9613 = call ptr @__errno_location() #10
  %9614 = load i32, ptr %9613, align 4, !tbaa !5
  %9615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9602, ptr noundef @.str.5, i32 noundef %9603, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 442, ptr noundef %9606, ptr noundef %9609, ptr noundef %9612, i32 noundef %9614) #9
  br label %9616

9616:                                             ; preds = %9599, %9582
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #9
  br label %9617

9617:                                             ; preds = %9616
  br label %9618

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

9619:                                             ; No predecessors!
  br label %9620

9620:                                             ; preds = %9619
  br label %9621

9621:                                             ; preds = %9620, %9562
  br label %9622

9622:                                             ; preds = %9621
  br label %9623

9623:                                             ; preds = %9622
  br label %9624

9624:                                             ; preds = %9623
  %9625 = load i32, ptr @test_count, align 4, !tbaa !5
  %9626 = add nsw i32 %9625, 1
  store i32 %9626, ptr @test_count, align 4, !tbaa !5
  %9627 = load ptr, ptr %15, align 8, !tbaa !9
  %9628 = call i32 @s2n_config_free(ptr noundef %9627)
  %9629 = icmp eq i32 %9628, -1
  br i1 %9629, label %9630, label %9683

9630:                                             ; preds = %9624
  br label %9631

9631:                                             ; preds = %9630
  br label %9632

9632:                                             ; preds = %9631
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #9
  %9633 = call ptr @__errno_location() #10
  %9634 = load i32, ptr %9633, align 4, !tbaa !5
  store i32 %9634, ptr %182, align 4, !tbaa !5
  %9635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9636 = call i32 @s2n_print_stacktrace(ptr noundef %9635)
  %9637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9638 = trunc i8 %9637 to i1
  br i1 %9638, label %9639, label %9661

9639:                                             ; preds = %9632
  %9640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9641 = call i32 @fileno(ptr noundef %9640) #9
  %9642 = call i32 @isatty(i32 noundef %9641) #9
  %9643 = icmp ne i32 %9642, 0
  br i1 %9643, label %9644, label %9661

9644:                                             ; preds = %9639
  %9645 = load i32, ptr %182, align 4, !tbaa !5
  %9646 = call ptr @__errno_location() #10
  store i32 %9645, ptr %9646, align 4, !tbaa !5
  %9647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9648 = load i32, ptr @test_count, align 4, !tbaa !5
  %9649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9650 = load i32, ptr %9649, align 4, !tbaa !5
  %9651 = call ptr @s2n_strerror(i32 noundef %9650, ptr noundef @.str.4)
  %9652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9653 = load i32, ptr %9652, align 4, !tbaa !5
  %9654 = call ptr @s2n_strerror_debug(i32 noundef %9653, ptr noundef @.str.4)
  %9655 = call ptr @__errno_location() #10
  %9656 = load i32, ptr %9655, align 4, !tbaa !5
  %9657 = call ptr @strerror(i32 noundef %9656) #9
  %9658 = call ptr @__errno_location() #10
  %9659 = load i32, ptr %9658, align 4, !tbaa !5
  %9660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9647, ptr noundef @.str.2, i32 noundef %9648, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 443, ptr noundef %9651, ptr noundef %9654, ptr noundef %9657, i32 noundef %9659) #9
  br label %9678

9661:                                             ; preds = %9639, %9632
  %9662 = load i32, ptr %182, align 4, !tbaa !5
  %9663 = call ptr @__errno_location() #10
  store i32 %9662, ptr %9663, align 4, !tbaa !5
  %9664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9665 = load i32, ptr @test_count, align 4, !tbaa !5
  %9666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9667 = load i32, ptr %9666, align 4, !tbaa !5
  %9668 = call ptr @s2n_strerror(i32 noundef %9667, ptr noundef @.str.4)
  %9669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9670 = load i32, ptr %9669, align 4, !tbaa !5
  %9671 = call ptr @s2n_strerror_debug(i32 noundef %9670, ptr noundef @.str.4)
  %9672 = call ptr @__errno_location() #10
  %9673 = load i32, ptr %9672, align 4, !tbaa !5
  %9674 = call ptr @strerror(i32 noundef %9673) #9
  %9675 = call ptr @__errno_location() #10
  %9676 = load i32, ptr %9675, align 4, !tbaa !5
  %9677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9664, ptr noundef @.str.5, i32 noundef %9665, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 443, ptr noundef %9668, ptr noundef %9671, ptr noundef %9674, i32 noundef %9676) #9
  br label %9678

9678:                                             ; preds = %9661, %9644
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #9
  br label %9679

9679:                                             ; preds = %9678
  br label %9680

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

9681:                                             ; No predecessors!
  br label %9682

9682:                                             ; preds = %9681
  br label %9683

9683:                                             ; preds = %9682, %9624
  br label %9684

9684:                                             ; preds = %9683
  br label %9685

9685:                                             ; preds = %9684
  br label %9686

9686:                                             ; preds = %9685
  %9687 = load i32, ptr @test_count, align 4, !tbaa !5
  %9688 = add nsw i32 %9687, 1
  store i32 %9688, ptr @test_count, align 4, !tbaa !5
  %9689 = load ptr, ptr %19, align 8, !tbaa !9
  %9690 = call i32 @s2n_config_free(ptr noundef %9689)
  %9691 = icmp eq i32 %9690, -1
  br i1 %9691, label %9692, label %9745

9692:                                             ; preds = %9686
  br label %9693

9693:                                             ; preds = %9692
  br label %9694

9694:                                             ; preds = %9693
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #9
  %9695 = call ptr @__errno_location() #10
  %9696 = load i32, ptr %9695, align 4, !tbaa !5
  store i32 %9696, ptr %183, align 4, !tbaa !5
  %9697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9698 = call i32 @s2n_print_stacktrace(ptr noundef %9697)
  %9699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9700 = trunc i8 %9699 to i1
  br i1 %9700, label %9701, label %9723

9701:                                             ; preds = %9694
  %9702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9703 = call i32 @fileno(ptr noundef %9702) #9
  %9704 = call i32 @isatty(i32 noundef %9703) #9
  %9705 = icmp ne i32 %9704, 0
  br i1 %9705, label %9706, label %9723

9706:                                             ; preds = %9701
  %9707 = load i32, ptr %183, align 4, !tbaa !5
  %9708 = call ptr @__errno_location() #10
  store i32 %9707, ptr %9708, align 4, !tbaa !5
  %9709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9710 = load i32, ptr @test_count, align 4, !tbaa !5
  %9711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9712 = load i32, ptr %9711, align 4, !tbaa !5
  %9713 = call ptr @s2n_strerror(i32 noundef %9712, ptr noundef @.str.4)
  %9714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9715 = load i32, ptr %9714, align 4, !tbaa !5
  %9716 = call ptr @s2n_strerror_debug(i32 noundef %9715, ptr noundef @.str.4)
  %9717 = call ptr @__errno_location() #10
  %9718 = load i32, ptr %9717, align 4, !tbaa !5
  %9719 = call ptr @strerror(i32 noundef %9718) #9
  %9720 = call ptr @__errno_location() #10
  %9721 = load i32, ptr %9720, align 4, !tbaa !5
  %9722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9709, ptr noundef @.str.2, i32 noundef %9710, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 444, ptr noundef %9713, ptr noundef %9716, ptr noundef %9719, i32 noundef %9721) #9
  br label %9740

9723:                                             ; preds = %9701, %9694
  %9724 = load i32, ptr %183, align 4, !tbaa !5
  %9725 = call ptr @__errno_location() #10
  store i32 %9724, ptr %9725, align 4, !tbaa !5
  %9726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9727 = load i32, ptr @test_count, align 4, !tbaa !5
  %9728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9729 = load i32, ptr %9728, align 4, !tbaa !5
  %9730 = call ptr @s2n_strerror(i32 noundef %9729, ptr noundef @.str.4)
  %9731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9732 = load i32, ptr %9731, align 4, !tbaa !5
  %9733 = call ptr @s2n_strerror_debug(i32 noundef %9732, ptr noundef @.str.4)
  %9734 = call ptr @__errno_location() #10
  %9735 = load i32, ptr %9734, align 4, !tbaa !5
  %9736 = call ptr @strerror(i32 noundef %9735) #9
  %9737 = call ptr @__errno_location() #10
  %9738 = load i32, ptr %9737, align 4, !tbaa !5
  %9739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9726, ptr noundef @.str.5, i32 noundef %9727, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 444, ptr noundef %9730, ptr noundef %9733, ptr noundef %9736, i32 noundef %9738) #9
  br label %9740

9740:                                             ; preds = %9723, %9706
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #9
  br label %9741

9741:                                             ; preds = %9740
  br label %9742

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

9743:                                             ; No predecessors!
  br label %9744

9744:                                             ; preds = %9743
  br label %9745

9745:                                             ; preds = %9744, %9686
  br label %9746

9746:                                             ; preds = %9745
  br label %9747

9747:                                             ; preds = %9746
  br label %9748

9748:                                             ; preds = %9747
  %9749 = load i32, ptr @test_count, align 4, !tbaa !5
  %9750 = add nsw i32 %9749, 1
  store i32 %9750, ptr @test_count, align 4, !tbaa !5
  %9751 = call i32 @s2n_io_pair_close(ptr noundef %26)
  %9752 = icmp eq i32 %9751, -1
  br i1 %9752, label %9753, label %9806

9753:                                             ; preds = %9748
  br label %9754

9754:                                             ; preds = %9753
  br label %9755

9755:                                             ; preds = %9754
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #9
  %9756 = call ptr @__errno_location() #10
  %9757 = load i32, ptr %9756, align 4, !tbaa !5
  store i32 %9757, ptr %184, align 4, !tbaa !5
  %9758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9759 = call i32 @s2n_print_stacktrace(ptr noundef %9758)
  %9760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9761 = trunc i8 %9760 to i1
  br i1 %9761, label %9762, label %9784

9762:                                             ; preds = %9755
  %9763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9764 = call i32 @fileno(ptr noundef %9763) #9
  %9765 = call i32 @isatty(i32 noundef %9764) #9
  %9766 = icmp ne i32 %9765, 0
  br i1 %9766, label %9767, label %9784

9767:                                             ; preds = %9762
  %9768 = load i32, ptr %184, align 4, !tbaa !5
  %9769 = call ptr @__errno_location() #10
  store i32 %9768, ptr %9769, align 4, !tbaa !5
  %9770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9771 = load i32, ptr @test_count, align 4, !tbaa !5
  %9772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9773 = load i32, ptr %9772, align 4, !tbaa !5
  %9774 = call ptr @s2n_strerror(i32 noundef %9773, ptr noundef @.str.4)
  %9775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9776 = load i32, ptr %9775, align 4, !tbaa !5
  %9777 = call ptr @s2n_strerror_debug(i32 noundef %9776, ptr noundef @.str.4)
  %9778 = call ptr @__errno_location() #10
  %9779 = load i32, ptr %9778, align 4, !tbaa !5
  %9780 = call ptr @strerror(i32 noundef %9779) #9
  %9781 = call ptr @__errno_location() #10
  %9782 = load i32, ptr %9781, align 4, !tbaa !5
  %9783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9770, ptr noundef @.str.2, i32 noundef %9771, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 445, ptr noundef %9774, ptr noundef %9777, ptr noundef %9780, i32 noundef %9782) #9
  br label %9801

9784:                                             ; preds = %9762, %9755
  %9785 = load i32, ptr %184, align 4, !tbaa !5
  %9786 = call ptr @__errno_location() #10
  store i32 %9785, ptr %9786, align 4, !tbaa !5
  %9787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9788 = load i32, ptr @test_count, align 4, !tbaa !5
  %9789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9790 = load i32, ptr %9789, align 4, !tbaa !5
  %9791 = call ptr @s2n_strerror(i32 noundef %9790, ptr noundef @.str.4)
  %9792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9793 = load i32, ptr %9792, align 4, !tbaa !5
  %9794 = call ptr @s2n_strerror_debug(i32 noundef %9793, ptr noundef @.str.4)
  %9795 = call ptr @__errno_location() #10
  %9796 = load i32, ptr %9795, align 4, !tbaa !5
  %9797 = call ptr @strerror(i32 noundef %9796) #9
  %9798 = call ptr @__errno_location() #10
  %9799 = load i32, ptr %9798, align 4, !tbaa !5
  %9800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9787, ptr noundef @.str.5, i32 noundef %9788, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 445, ptr noundef %9791, ptr noundef %9794, ptr noundef %9797, i32 noundef %9799) #9
  br label %9801

9801:                                             ; preds = %9784, %9767
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #9
  br label %9802

9802:                                             ; preds = %9801
  br label %9803

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

9804:                                             ; No predecessors!
  br label %9805

9805:                                             ; preds = %9804
  br label %9806

9806:                                             ; preds = %9805, %9748
  br label %9807

9807:                                             ; preds = %9806
  br label %9808

9808:                                             ; preds = %9807
  br label %9809

9809:                                             ; preds = %9808
  %9810 = load i32, ptr @test_count, align 4, !tbaa !5
  %9811 = add nsw i32 %9810, 1
  store i32 %9811, ptr @test_count, align 4, !tbaa !5
  %9812 = load ptr, ptr %23, align 8, !tbaa !9
  %9813 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %9812)
  %9814 = icmp eq i32 %9813, -1
  br i1 %9814, label %9815, label %9868

9815:                                             ; preds = %9809
  br label %9816

9816:                                             ; preds = %9815
  br label %9817

9817:                                             ; preds = %9816
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #9
  %9818 = call ptr @__errno_location() #10
  %9819 = load i32, ptr %9818, align 4, !tbaa !5
  store i32 %9819, ptr %185, align 4, !tbaa !5
  %9820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9821 = call i32 @s2n_print_stacktrace(ptr noundef %9820)
  %9822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9823 = trunc i8 %9822 to i1
  br i1 %9823, label %9824, label %9846

9824:                                             ; preds = %9817
  %9825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9826 = call i32 @fileno(ptr noundef %9825) #9
  %9827 = call i32 @isatty(i32 noundef %9826) #9
  %9828 = icmp ne i32 %9827, 0
  br i1 %9828, label %9829, label %9846

9829:                                             ; preds = %9824
  %9830 = load i32, ptr %185, align 4, !tbaa !5
  %9831 = call ptr @__errno_location() #10
  store i32 %9830, ptr %9831, align 4, !tbaa !5
  %9832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9833 = load i32, ptr @test_count, align 4, !tbaa !5
  %9834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9835 = load i32, ptr %9834, align 4, !tbaa !5
  %9836 = call ptr @s2n_strerror(i32 noundef %9835, ptr noundef @.str.4)
  %9837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9838 = load i32, ptr %9837, align 4, !tbaa !5
  %9839 = call ptr @s2n_strerror_debug(i32 noundef %9838, ptr noundef @.str.4)
  %9840 = call ptr @__errno_location() #10
  %9841 = load i32, ptr %9840, align 4, !tbaa !5
  %9842 = call ptr @strerror(i32 noundef %9841) #9
  %9843 = call ptr @__errno_location() #10
  %9844 = load i32, ptr %9843, align 4, !tbaa !5
  %9845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9832, ptr noundef @.str.2, i32 noundef %9833, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 446, ptr noundef %9836, ptr noundef %9839, ptr noundef %9842, i32 noundef %9844) #9
  br label %9863

9846:                                             ; preds = %9824, %9817
  %9847 = load i32, ptr %185, align 4, !tbaa !5
  %9848 = call ptr @__errno_location() #10
  store i32 %9847, ptr %9848, align 4, !tbaa !5
  %9849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9850 = load i32, ptr @test_count, align 4, !tbaa !5
  %9851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9852 = load i32, ptr %9851, align 4, !tbaa !5
  %9853 = call ptr @s2n_strerror(i32 noundef %9852, ptr noundef @.str.4)
  %9854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9855 = load i32, ptr %9854, align 4, !tbaa !5
  %9856 = call ptr @s2n_strerror_debug(i32 noundef %9855, ptr noundef @.str.4)
  %9857 = call ptr @__errno_location() #10
  %9858 = load i32, ptr %9857, align 4, !tbaa !5
  %9859 = call ptr @strerror(i32 noundef %9858) #9
  %9860 = call ptr @__errno_location() #10
  %9861 = load i32, ptr %9860, align 4, !tbaa !5
  %9862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9849, ptr noundef @.str.5, i32 noundef %9850, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 446, ptr noundef %9853, ptr noundef %9856, ptr noundef %9859, i32 noundef %9861) #9
  br label %9863

9863:                                             ; preds = %9846, %9829
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #9
  br label %9864

9864:                                             ; preds = %9863
  br label %9865

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

9866:                                             ; No predecessors!
  br label %9867

9867:                                             ; preds = %9866
  br label %9868

9868:                                             ; preds = %9867, %9809
  br label %9869

9869:                                             ; preds = %9868
  br label %9870

9870:                                             ; preds = %9869
  br label %9871

9871:                                             ; preds = %9870
  br label %9872

9872:                                             ; preds = %9871
  %9873 = call i32 @s2n_cleanup()
  %9874 = icmp eq i32 %9873, -1
  br i1 %9874, label %9875, label %9928

9875:                                             ; preds = %9872
  br label %9876

9876:                                             ; preds = %9875
  br label %9877

9877:                                             ; preds = %9876
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #9
  %9878 = call ptr @__errno_location() #10
  %9879 = load i32, ptr %9878, align 4, !tbaa !5
  store i32 %9879, ptr %186, align 4, !tbaa !5
  %9880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9881 = call i32 @s2n_print_stacktrace(ptr noundef %9880)
  %9882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9883 = trunc i8 %9882 to i1
  br i1 %9883, label %9884, label %9906

9884:                                             ; preds = %9877
  %9885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9886 = call i32 @fileno(ptr noundef %9885) #9
  %9887 = call i32 @isatty(i32 noundef %9886) #9
  %9888 = icmp ne i32 %9887, 0
  br i1 %9888, label %9889, label %9906

9889:                                             ; preds = %9884
  %9890 = load i32, ptr %186, align 4, !tbaa !5
  %9891 = call ptr @__errno_location() #10
  store i32 %9890, ptr %9891, align 4, !tbaa !5
  %9892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9893 = load i32, ptr @test_count, align 4, !tbaa !5
  %9894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9895 = load i32, ptr %9894, align 4, !tbaa !5
  %9896 = call ptr @s2n_strerror(i32 noundef %9895, ptr noundef @.str.4)
  %9897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9898 = load i32, ptr %9897, align 4, !tbaa !5
  %9899 = call ptr @s2n_strerror_debug(i32 noundef %9898, ptr noundef @.str.4)
  %9900 = call ptr @__errno_location() #10
  %9901 = load i32, ptr %9900, align 4, !tbaa !5
  %9902 = call ptr @strerror(i32 noundef %9901) #9
  %9903 = call ptr @__errno_location() #10
  %9904 = load i32, ptr %9903, align 4, !tbaa !5
  %9905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9892, ptr noundef @.str.2, i32 noundef %9893, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9896, ptr noundef %9899, ptr noundef %9902, i32 noundef %9904) #9
  br label %9923

9906:                                             ; preds = %9884, %9877
  %9907 = load i32, ptr %186, align 4, !tbaa !5
  %9908 = call ptr @__errno_location() #10
  store i32 %9907, ptr %9908, align 4, !tbaa !5
  %9909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9910 = load i32, ptr @test_count, align 4, !tbaa !5
  %9911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9912 = load i32, ptr %9911, align 4, !tbaa !5
  %9913 = call ptr @s2n_strerror(i32 noundef %9912, ptr noundef @.str.4)
  %9914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9915 = load i32, ptr %9914, align 4, !tbaa !5
  %9916 = call ptr @s2n_strerror_debug(i32 noundef %9915, ptr noundef @.str.4)
  %9917 = call ptr @__errno_location() #10
  %9918 = load i32, ptr %9917, align 4, !tbaa !5
  %9919 = call ptr @strerror(i32 noundef %9918) #9
  %9920 = call ptr @__errno_location() #10
  %9921 = load i32, ptr %9920, align 4, !tbaa !5
  %9922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9909, ptr noundef @.str.5, i32 noundef %9910, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9913, ptr noundef %9916, ptr noundef %9919, i32 noundef %9921) #9
  br label %9923

9923:                                             ; preds = %9906, %9889
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #9
  br label %9924

9924:                                             ; preds = %9923
  br label %9925

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

9926:                                             ; No predecessors!
  br label %9927

9927:                                             ; preds = %9926
  br label %9928

9928:                                             ; preds = %9927, %9872
  br label %9929

9929:                                             ; preds = %9928
  br label %9930

9930:                                             ; preds = %9929
  br label %9931

9931:                                             ; preds = %9930
  br label %9932

9932:                                             ; preds = %9931
  %9933 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %9934 = icmp eq i32 %9933, -1
  br i1 %9934, label %9935, label %9988

9935:                                             ; preds = %9932
  br label %9936

9936:                                             ; preds = %9935
  br label %9937

9937:                                             ; preds = %9936
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #9
  %9938 = call ptr @__errno_location() #10
  %9939 = load i32, ptr %9938, align 4, !tbaa !5
  store i32 %9939, ptr %187, align 4, !tbaa !5
  %9940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9941 = call i32 @s2n_print_stacktrace(ptr noundef %9940)
  %9942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9943 = trunc i8 %9942 to i1
  br i1 %9943, label %9944, label %9966

9944:                                             ; preds = %9937
  %9945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9946 = call i32 @fileno(ptr noundef %9945) #9
  %9947 = call i32 @isatty(i32 noundef %9946) #9
  %9948 = icmp ne i32 %9947, 0
  br i1 %9948, label %9949, label %9966

9949:                                             ; preds = %9944
  %9950 = load i32, ptr %187, align 4, !tbaa !5
  %9951 = call ptr @__errno_location() #10
  store i32 %9950, ptr %9951, align 4, !tbaa !5
  %9952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9953 = load i32, ptr @test_count, align 4, !tbaa !5
  %9954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9955 = load i32, ptr %9954, align 4, !tbaa !5
  %9956 = call ptr @s2n_strerror(i32 noundef %9955, ptr noundef @.str.4)
  %9957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9958 = load i32, ptr %9957, align 4, !tbaa !5
  %9959 = call ptr @s2n_strerror_debug(i32 noundef %9958, ptr noundef @.str.4)
  %9960 = call ptr @__errno_location() #10
  %9961 = load i32, ptr %9960, align 4, !tbaa !5
  %9962 = call ptr @strerror(i32 noundef %9961) #9
  %9963 = call ptr @__errno_location() #10
  %9964 = load i32, ptr %9963, align 4, !tbaa !5
  %9965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9952, ptr noundef @.str.2, i32 noundef %9953, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9956, ptr noundef %9959, ptr noundef %9962, i32 noundef %9964) #9
  br label %9983

9966:                                             ; preds = %9944, %9937
  %9967 = load i32, ptr %187, align 4, !tbaa !5
  %9968 = call ptr @__errno_location() #10
  store i32 %9967, ptr %9968, align 4, !tbaa !5
  %9969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9970 = load i32, ptr @test_count, align 4, !tbaa !5
  %9971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9972 = load i32, ptr %9971, align 4, !tbaa !5
  %9973 = call ptr @s2n_strerror(i32 noundef %9972, ptr noundef @.str.4)
  %9974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9975 = load i32, ptr %9974, align 4, !tbaa !5
  %9976 = call ptr @s2n_strerror_debug(i32 noundef %9975, ptr noundef @.str.4)
  %9977 = call ptr @__errno_location() #10
  %9978 = load i32, ptr %9977, align 4, !tbaa !5
  %9979 = call ptr @strerror(i32 noundef %9978) #9
  %9980 = call ptr @__errno_location() #10
  %9981 = load i32, ptr %9980, align 4, !tbaa !5
  %9982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9969, ptr noundef @.str.5, i32 noundef %9970, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9973, ptr noundef %9976, ptr noundef %9979, i32 noundef %9981) #9
  br label %9983

9983:                                             ; preds = %9966, %9949
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #9
  br label %9984

9984:                                             ; preds = %9983
  br label %9985

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

9986:                                             ; No predecessors!
  br label %9987

9987:                                             ; preds = %9986
  br label %9988

9988:                                             ; preds = %9987, %9932
  br label %9989

9989:                                             ; preds = %9988
  br label %9990

9990:                                             ; preds = %9989
  %9991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9992 = trunc i8 %9991 to i1
  br i1 %9992, label %9993, label %10009

9993:                                             ; preds = %9990
  %9994 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9995 = call i32 @fileno(ptr noundef %9994) #9
  %9996 = call i32 @isatty(i32 noundef %9995) #9
  %9997 = icmp ne i32 %9996, 0
  br i1 %9997, label %9998, label %10009

9998:                                             ; preds = %9993
  %9999 = load i32, ptr @test_count, align 4, !tbaa !5
  %10000 = icmp ne i32 %9999, 0
  br i1 %10000, label %10001, label %10005

10001:                                            ; preds = %9998
  %10002 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10003 = load i32, ptr @test_count, align 4, !tbaa !5
  %10004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10002, ptr noundef @.str.10, i32 noundef %10003) #9
  br label %10008

10005:                                            ; preds = %9998
  %10006 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10006, ptr noundef @.str.11) #9
  br label %10008

10008:                                            ; preds = %10005, %10001
  br label %10020

10009:                                            ; preds = %9993, %9990
  %10010 = load i32, ptr @test_count, align 4, !tbaa !5
  %10011 = icmp ne i32 %10010, 0
  br i1 %10011, label %10012, label %10016

10012:                                            ; preds = %10009
  %10013 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10014 = load i32, ptr @test_count, align 4, !tbaa !5
  %10015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10013, ptr noundef @.str.12, i32 noundef %10014) #9
  br label %10019

10016:                                            ; preds = %10009
  %10017 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10017, ptr noundef @.str.13) #9
  br label %10019

10019:                                            ; preds = %10016, %10012
  br label %10020

10020:                                            ; preds = %10019, %10008
  store i32 0, ptr %3, align 4
  store i32 1, ptr %188, align 4
  br label %10025

10021:                                            ; No predecessors!
  br label %10022

10022:                                            ; preds = %10021
  br label %10023

10023:                                            ; preds = %10022
  br label %10024

10024:                                            ; preds = %10023
  store i32 0, ptr %188, align 4
  br label %10025

10025:                                            ; preds = %10024, %10020
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  %10026 = load i32, ptr %188, align 4
  switch i32 %10026, label %10029 [
    i32 0, label %10027
    i32 1, label %10027
  ]

10027:                                            ; preds = %10025, %10025, %512
  %10028 = load i32, ptr %3, align 4
  ret i32 %10028

10029:                                            ; preds = %10025
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_cleanup() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare ptr @s2n_config_new() #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

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

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

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

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

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

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

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

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

declare zeroext i1 @s2n_handshake_type_check_flag(ptr noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @validate_chosen_psk(ptr noundef, ptr noundef, i64 noundef, i64 noundef) #0

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

declare i32 @s2n_connection_wipe(ptr noundef) #2

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

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

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

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

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

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_client_hello_cb_done(ptr noundef) #2

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

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

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

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

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


; 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_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_shared_identity = external dso_local global [21 x i8], align 16
@test_shared_identity_2 = external dso_local global [23 x i8], align 16
@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 [81 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 [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [137 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [116 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@.str.57 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [71 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_test_io_pair, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %5 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %7 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8 = tail call i32 @fflush(ptr noundef %7)
  %9 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %10 = icmp eq i32 %9, -1
  br i1 %10, label %11, label %35

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

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

22:                                               ; preds = %18, %11
  br label %23

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

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

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

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

51:                                               ; preds = %47, %40
  br label %52

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

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

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

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

78:                                               ; preds = %74, %67
  br label %79

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

91:                                               ; preds = %64
  %92 = tail call zeroext i1 (...) @s2n_is_tls13_fully_supported() #9
  br i1 %92, label %168, label %93

93:                                               ; preds = %91
  %94 = tail call i32 @s2n_cleanup() #9
  %95 = icmp eq i32 %94, -1
  br i1 %95, label %96, label %120

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

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

107:                                              ; preds = %103, %96
  br label %108

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

120:                                              ; preds = %93
  %121 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %122 = icmp eq i32 %121, -1
  br i1 %122, label %123, label %147

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

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

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

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

147:                                              ; preds = %120
  %148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %149 = trunc nuw i8 %148 to i1
  br i1 %149, label %150, label %161

150:                                              ; preds = %147
  %151 = load ptr, ptr @stdout, align 8, !tbaa !9
  %152 = tail call i32 @fileno(ptr noundef %151) #9
  %153 = tail call i32 @isatty(i32 noundef %152) #9
  %.not = icmp eq i32 %153, 0
  br i1 %.not, label %161, label %154

154:                                              ; preds = %150
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not526 = icmp eq i32 %155, 0
  %156 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not526, label %159, label %157

157:                                              ; preds = %154
  %158 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %156, ptr noundef nonnull @.str.10, i32 noundef %155) #9
  br label %4404

159:                                              ; preds = %154
  %160 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %156, ptr noundef nonnull @.str.11) #9
  br label %4404

161:                                              ; preds = %150, %147
  %162 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not525 = icmp eq i32 %162, 0
  %163 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not525, label %166, label %164

164:                                              ; preds = %161
  %165 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef nonnull @.str.12, i32 noundef %162) #9
  br label %4404

166:                                              ; preds = %161
  %167 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef nonnull @.str.13) #9
  br label %4404

168:                                              ; preds = %91
  %169 = load i32, ptr @test_count, align 4, !tbaa !5
  %170 = add nsw i32 %169, 1
  store i32 %170, ptr @test_count, align 4, !tbaa !5
  %171 = tail call ptr @s2n_connection_new(i32 noundef 1) #9
  %172 = icmp eq ptr %171, null
  br i1 %172, label %173, label %197

173:                                              ; preds = %168
  %174 = tail call ptr @__errno_location() #10
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = tail call i32 @s2n_print_stacktrace(ptr noundef %176) #9
  %178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %179 = trunc nuw i8 %178 to i1
  br i1 %179, label %180, label %184

180:                                              ; preds = %173
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = tail call i32 @fileno(ptr noundef %181) #9
  %183 = tail call i32 @isatty(i32 noundef %182) #9
  %.not683 = icmp eq i32 %183, 0
  br i1 %.not683, label %184, label %185

184:                                              ; preds = %180, %173
  br label %185

185:                                              ; preds = %180, %184
  %.str.5.sink741 = phi ptr [ @.str.5, %184 ], [ @.str.2, %180 ]
  store i32 %175, ptr %174, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = tail call ptr @s2n_strerror(i32 noundef %189, ptr noundef nonnull @.str.4) #9
  %191 = load i32, ptr %188, align 4, !tbaa !5
  %192 = tail call ptr @s2n_strerror_debug(i32 noundef %191, ptr noundef nonnull @.str.4) #9
  %193 = load i32, ptr %174, align 4, !tbaa !5
  %194 = tail call ptr @strerror(i32 noundef %193) #9
  %195 = load i32, ptr %174, align 4, !tbaa !5
  %196 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef nonnull %.str.5.sink741, i32 noundef %187, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %190, ptr noundef %192, ptr noundef %194, i32 noundef %195) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

197:                                              ; preds = %168
  %198 = load i32, ptr @test_count, align 4, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr @test_count, align 4, !tbaa !5
  %200 = tail call ptr @s2n_connection_new(i32 noundef 0) #9
  %201 = icmp eq ptr %200, null
  br i1 %201, label %202, label %226

202:                                              ; preds = %197
  %203 = tail call ptr @__errno_location() #10
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = tail call i32 @s2n_print_stacktrace(ptr noundef %205) #9
  %207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %208 = trunc nuw i8 %207 to i1
  br i1 %208, label %209, label %213

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

213:                                              ; preds = %209, %202
  br label %214

214:                                              ; preds = %209, %213
  %.str.5.sink752 = phi ptr [ @.str.5, %213 ], [ @.str.2, %209 ]
  store i32 %204, ptr %203, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = load i32, ptr @test_count, align 4, !tbaa !5
  %217 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = tail call ptr @s2n_strerror(i32 noundef %218, ptr noundef nonnull @.str.4) #9
  %220 = load i32, ptr %217, align 4, !tbaa !5
  %221 = tail call ptr @s2n_strerror_debug(i32 noundef %220, ptr noundef nonnull @.str.4) #9
  %222 = load i32, ptr %203, align 4, !tbaa !5
  %223 = tail call ptr @strerror(i32 noundef %222) #9
  %224 = load i32, ptr %203, align 4, !tbaa !5
  %225 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %215, ptr noundef nonnull %.str.5.sink752, i32 noundef %216, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %219, ptr noundef %221, ptr noundef %223, i32 noundef %224) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

226:                                              ; preds = %197
  %227 = load i32, ptr @test_count, align 4, !tbaa !5
  %228 = add nsw i32 %227, 1
  store i32 %228, ptr @test_count, align 4, !tbaa !5
  %229 = tail call ptr @s2n_config_new() #9
  %230 = icmp eq ptr %229, null
  br i1 %230, label %231, label %255

231:                                              ; preds = %226
  %232 = tail call ptr @__errno_location() #10
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = tail call i32 @s2n_print_stacktrace(ptr noundef %234) #9
  %236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %237 = trunc nuw i8 %236 to i1
  br i1 %237, label %238, label %242

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

242:                                              ; preds = %238, %231
  br label %243

243:                                              ; preds = %238, %242
  %.str.5.sink763 = phi ptr [ @.str.5, %242 ], [ @.str.2, %238 ]
  store i32 %233, ptr %232, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = load i32, ptr @test_count, align 4, !tbaa !5
  %246 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = tail call ptr @s2n_strerror(i32 noundef %247, ptr noundef nonnull @.str.4) #9
  %249 = load i32, ptr %246, align 4, !tbaa !5
  %250 = tail call ptr @s2n_strerror_debug(i32 noundef %249, ptr noundef nonnull @.str.4) #9
  %251 = load i32, ptr %232, align 4, !tbaa !5
  %252 = tail call ptr @strerror(i32 noundef %251) #9
  %253 = load i32, ptr %232, align 4, !tbaa !5
  %254 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %244, ptr noundef nonnull %.str.5.sink763, i32 noundef %245, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %248, ptr noundef %250, ptr noundef %252, i32 noundef %253) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

255:                                              ; preds = %226
  %256 = load i32, ptr @test_count, align 4, !tbaa !5
  %257 = add nsw i32 %256, 1
  store i32 %257, ptr @test_count, align 4, !tbaa !5
  %258 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %229, ptr noundef nonnull @.str.17) #9
  %259 = icmp eq i32 %258, -1
  br i1 %259, label %260, label %284

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

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

271:                                              ; preds = %267, %260
  br label %272

272:                                              ; preds = %267, %271
  %.str.5.sink774 = phi ptr [ @.str.5, %271 ], [ @.str.2, %267 ]
  store i32 %262, ptr %261, align 4, !tbaa !5
  %273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %274 = load i32, ptr @test_count, align 4, !tbaa !5
  %275 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = tail call ptr @s2n_strerror(i32 noundef %276, ptr noundef nonnull @.str.4) #9
  %278 = load i32, ptr %275, align 4, !tbaa !5
  %279 = tail call ptr @s2n_strerror_debug(i32 noundef %278, ptr noundef nonnull @.str.4) #9
  %280 = load i32, ptr %261, align 4, !tbaa !5
  %281 = tail call ptr @strerror(i32 noundef %280) #9
  %282 = load i32, ptr %261, align 4, !tbaa !5
  %283 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %273, ptr noundef nonnull %.str.5.sink774, i32 noundef %274, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %277, ptr noundef %279, ptr noundef %281, i32 noundef %282) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

284:                                              ; preds = %255
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = add nsw i32 %285, 1
  store i32 %286, ptr @test_count, align 4, !tbaa !5
  %287 = tail call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %229) #9
  %288 = icmp eq i32 %287, -1
  br i1 %288, label %289, label %313

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

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

300:                                              ; preds = %296, %289
  br label %301

301:                                              ; preds = %296, %300
  %.str.5.sink785 = phi ptr [ @.str.5, %300 ], [ @.str.2, %296 ]
  store i32 %291, ptr %290, align 4, !tbaa !5
  %302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = tail call ptr @s2n_strerror(i32 noundef %305, ptr noundef nonnull @.str.4) #9
  %307 = load i32, ptr %304, align 4, !tbaa !5
  %308 = tail call ptr @s2n_strerror_debug(i32 noundef %307, ptr noundef nonnull @.str.4) #9
  %309 = load i32, ptr %290, align 4, !tbaa !5
  %310 = tail call ptr @strerror(i32 noundef %309) #9
  %311 = load i32, ptr %290, align 4, !tbaa !5
  %312 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %302, ptr noundef nonnull %.str.5.sink785, i32 noundef %303, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %306, ptr noundef %308, ptr noundef %310, i32 noundef %311) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

313:                                              ; preds = %284
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr @test_count, align 4, !tbaa !5
  %316 = tail call ptr @s2n_config_new() #9
  %317 = icmp eq ptr %316, null
  br i1 %317, label %318, label %342

318:                                              ; preds = %313
  %319 = tail call ptr @__errno_location() #10
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = tail call i32 @s2n_print_stacktrace(ptr noundef %321) #9
  %323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %324 = trunc nuw i8 %323 to i1
  br i1 %324, label %325, label %329

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

329:                                              ; preds = %325, %318
  br label %330

330:                                              ; preds = %325, %329
  %.str.5.sink796 = phi ptr [ @.str.5, %329 ], [ @.str.2, %325 ]
  store i32 %320, ptr %319, align 4, !tbaa !5
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = load i32, ptr @test_count, align 4, !tbaa !5
  %333 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = tail call ptr @s2n_strerror(i32 noundef %334, ptr noundef nonnull @.str.4) #9
  %336 = load i32, ptr %333, align 4, !tbaa !5
  %337 = tail call ptr @s2n_strerror_debug(i32 noundef %336, ptr noundef nonnull @.str.4) #9
  %338 = load i32, ptr %319, align 4, !tbaa !5
  %339 = tail call ptr @strerror(i32 noundef %338) #9
  %340 = load i32, ptr %319, align 4, !tbaa !5
  %341 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %331, ptr noundef nonnull %.str.5.sink796, i32 noundef %332, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %335, ptr noundef %337, ptr noundef %339, i32 noundef %340) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

342:                                              ; preds = %313
  %343 = load i32, ptr @test_count, align 4, !tbaa !5
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr @test_count, align 4, !tbaa !5
  %345 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %316, ptr noundef nonnull @.str.17) #9
  %346 = icmp eq i32 %345, -1
  br i1 %346, label %347, label %371

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

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

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

359:                                              ; preds = %354, %358
  %.str.5.sink807 = phi ptr [ @.str.5, %358 ], [ @.str.2, %354 ]
  store i32 %349, ptr %348, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = load i32, ptr @test_count, align 4, !tbaa !5
  %362 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = tail call ptr @s2n_strerror(i32 noundef %363, ptr noundef nonnull @.str.4) #9
  %365 = load i32, ptr %362, align 4, !tbaa !5
  %366 = tail call ptr @s2n_strerror_debug(i32 noundef %365, ptr noundef nonnull @.str.4) #9
  %367 = load i32, ptr %348, align 4, !tbaa !5
  %368 = tail call ptr @strerror(i32 noundef %367) #9
  %369 = load i32, ptr %348, align 4, !tbaa !5
  %370 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %360, ptr noundef nonnull %.str.5.sink807, i32 noundef %361, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %364, ptr noundef %366, ptr noundef %368, i32 noundef %369) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

371:                                              ; preds = %342
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = add nsw i32 %372, 1
  store i32 %373, ptr @test_count, align 4, !tbaa !5
  %374 = tail call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %316) #9
  %375 = icmp eq i32 %374, -1
  br i1 %375, label %376, label %400

376:                                              ; preds = %371
  %377 = tail call ptr @__errno_location() #10
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = tail call i32 @s2n_print_stacktrace(ptr noundef %379) #9
  %381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %382 = trunc nuw i8 %381 to i1
  br i1 %382, label %383, label %387

383:                                              ; preds = %376
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = tail call i32 @fileno(ptr noundef %384) #9
  %386 = tail call i32 @isatty(i32 noundef %385) #9
  %.not676 = icmp eq i32 %386, 0
  br i1 %.not676, label %387, label %388

387:                                              ; preds = %383, %376
  br label %388

388:                                              ; preds = %383, %387
  %.str.5.sink818 = phi ptr [ @.str.5, %387 ], [ @.str.2, %383 ]
  store i32 %378, ptr %377, align 4, !tbaa !5
  %389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %390 = load i32, ptr @test_count, align 4, !tbaa !5
  %391 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %392 = load i32, ptr %391, align 4, !tbaa !5
  %393 = tail call ptr @s2n_strerror(i32 noundef %392, ptr noundef nonnull @.str.4) #9
  %394 = load i32, ptr %391, align 4, !tbaa !5
  %395 = tail call ptr @s2n_strerror_debug(i32 noundef %394, ptr noundef nonnull @.str.4) #9
  %396 = load i32, ptr %377, align 4, !tbaa !5
  %397 = tail call ptr @strerror(i32 noundef %396) #9
  %398 = load i32, ptr %377, align 4, !tbaa !5
  %399 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %389, ptr noundef nonnull %.str.5.sink818, i32 noundef %390, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %393, ptr noundef %395, ptr noundef %397, i32 noundef %398) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

400:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #9
  store ptr null, ptr %3, align 8, !tbaa !9
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = add nsw i32 %401, 1
  store i32 %402, ptr @test_count, align 4, !tbaa !5
  %403 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.24) #9
  %404 = icmp eq i32 %403, -1
  br i1 %404, label %405, label %429

405:                                              ; preds = %400
  %406 = tail call ptr @__errno_location() #10
  %407 = load i32, ptr %406, align 4, !tbaa !5
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = call i32 @s2n_print_stacktrace(ptr noundef %408) #9
  %410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %411 = trunc nuw i8 %410 to i1
  br i1 %411, label %412, label %416

412:                                              ; preds = %405
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = call i32 @fileno(ptr noundef %413) #9
  %415 = call i32 @isatty(i32 noundef %414) #9
  %.not675 = icmp eq i32 %415, 0
  br i1 %.not675, label %416, label %417

416:                                              ; preds = %412, %405
  br label %417

417:                                              ; preds = %412, %416
  %.str.5.sink829 = phi ptr [ @.str.5, %416 ], [ @.str.2, %412 ]
  store i32 %407, ptr %406, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = load i32, ptr @test_count, align 4, !tbaa !5
  %420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %421 = load i32, ptr %420, align 4, !tbaa !5
  %422 = call ptr @s2n_strerror(i32 noundef %421, ptr noundef nonnull @.str.4) #9
  %423 = load i32, ptr %420, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror_debug(i32 noundef %423, ptr noundef nonnull @.str.4) #9
  %425 = load i32, ptr %406, align 4, !tbaa !5
  %426 = call ptr @strerror(i32 noundef %425) #9
  %427 = load i32, ptr %406, align 4, !tbaa !5
  %428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %418, ptr noundef nonnull %.str.5.sink829, i32 noundef %419, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %422, ptr noundef %424, ptr noundef %426, i32 noundef %427) #11
  call void @exit(i32 noundef 1) #12
  unreachable

429:                                              ; preds = %400
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = add nsw i32 %430, 1
  store i32 %431, ptr @test_count, align 4, !tbaa !5
  %432 = load ptr, ptr %3, align 8, !tbaa !9
  %433 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %316, ptr noundef %432) #9
  %434 = icmp eq i32 %433, -1
  br i1 %434, label %435, label %459

435:                                              ; preds = %429
  %436 = tail call ptr @__errno_location() #10
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = call i32 @s2n_print_stacktrace(ptr noundef %438) #9
  %440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %441 = trunc nuw i8 %440 to i1
  br i1 %441, label %442, label %446

442:                                              ; preds = %435
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = call i32 @fileno(ptr noundef %443) #9
  %445 = call i32 @isatty(i32 noundef %444) #9
  %.not674 = icmp eq i32 %445, 0
  br i1 %.not674, label %446, label %447

446:                                              ; preds = %442, %435
  br label %447

447:                                              ; preds = %442, %446
  %.str.5.sink840 = phi ptr [ @.str.5, %446 ], [ @.str.2, %442 ]
  store i32 %437, ptr %436, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = load i32, ptr @test_count, align 4, !tbaa !5
  %450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %451 = load i32, ptr %450, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror(i32 noundef %451, ptr noundef nonnull @.str.4) #9
  %453 = load i32, ptr %450, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %453, ptr noundef nonnull @.str.4) #9
  %455 = load i32, ptr %436, align 4, !tbaa !5
  %456 = call ptr @strerror(i32 noundef %455) #9
  %457 = load i32, ptr %436, align 4, !tbaa !5
  %458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %448, ptr noundef nonnull %.str.5.sink840, i32 noundef %449, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %452, ptr noundef %454, ptr noundef %456, i32 noundef %457) #11
  call void @exit(i32 noundef 1) #12
  unreachable

459:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  store i64 0, ptr %4, align 8
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr @test_count, align 4, !tbaa !5
  %462 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %4) #9
  %463 = icmp eq i32 %462, -1
  br i1 %463, label %464, label %488

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

471:                                              ; preds = %464
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = call i32 @fileno(ptr noundef %472) #9
  %474 = call i32 @isatty(i32 noundef %473) #9
  %.not673 = icmp eq i32 %474, 0
  br i1 %.not673, label %475, label %476

475:                                              ; preds = %471, %464
  br label %476

476:                                              ; preds = %471, %475
  %.str.5.sink851 = phi ptr [ @.str.5, %475 ], [ @.str.2, %471 ]
  store i32 %466, ptr %465, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = load i32, ptr @test_count, align 4, !tbaa !5
  %479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @s2n_strerror(i32 noundef %480, ptr noundef nonnull @.str.4) #9
  %482 = load i32, ptr %479, align 4, !tbaa !5
  %483 = call ptr @s2n_strerror_debug(i32 noundef %482, ptr noundef nonnull @.str.4) #9
  %484 = load i32, ptr %465, align 4, !tbaa !5
  %485 = call ptr @strerror(i32 noundef %484) #9
  %486 = load i32, ptr %465, align 4, !tbaa !5
  %487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %477, ptr noundef nonnull %.str.5.sink851, i32 noundef %478, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %481, ptr noundef %483, ptr noundef %485, i32 noundef %486) #11
  call void @exit(i32 noundef 1) #12
  unreachable

488:                                              ; preds = %459
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr @test_count, align 4, !tbaa !5
  %491 = call i32 @s2n_connection_set_config(ptr noundef nonnull %171, ptr noundef nonnull %229) #9
  %492 = icmp eq i32 %491, -1
  br i1 %492, label %493, label %517

493:                                              ; preds = %488
  %494 = tail call ptr @__errno_location() #10
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = call i32 @s2n_print_stacktrace(ptr noundef %496) #9
  %498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %499 = trunc nuw i8 %498 to i1
  br i1 %499, label %500, label %504

500:                                              ; preds = %493
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @fileno(ptr noundef %501) #9
  %503 = call i32 @isatty(i32 noundef %502) #9
  %.not672 = icmp eq i32 %503, 0
  br i1 %.not672, label %504, label %505

504:                                              ; preds = %500, %493
  br label %505

505:                                              ; preds = %500, %504
  %.str.5.sink862 = phi ptr [ @.str.5, %504 ], [ @.str.2, %500 ]
  store i32 %495, ptr %494, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call ptr @s2n_strerror(i32 noundef %509, ptr noundef nonnull @.str.4) #9
  %511 = load i32, ptr %508, align 4, !tbaa !5
  %512 = call ptr @s2n_strerror_debug(i32 noundef %511, ptr noundef nonnull @.str.4) #9
  %513 = load i32, ptr %494, align 4, !tbaa !5
  %514 = call ptr @strerror(i32 noundef %513) #9
  %515 = load i32, ptr %494, align 4, !tbaa !5
  %516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %506, ptr noundef nonnull %.str.5.sink862, i32 noundef %507, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %510, ptr noundef %512, ptr noundef %514, i32 noundef %515) #11
  call void @exit(i32 noundef 1) #12
  unreachable

517:                                              ; preds = %488
  %518 = load i32, ptr @test_count, align 4, !tbaa !5
  %519 = add nsw i32 %518, 1
  store i32 %519, ptr @test_count, align 4, !tbaa !5
  %520 = call i32 @s2n_connection_set_config(ptr noundef nonnull %200, ptr noundef nonnull %229) #9
  %521 = icmp eq i32 %520, -1
  br i1 %521, label %522, label %546

522:                                              ; preds = %517
  %523 = tail call ptr @__errno_location() #10
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = call i32 @s2n_print_stacktrace(ptr noundef %525) #9
  %527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %528 = trunc nuw i8 %527 to i1
  br i1 %528, label %529, label %533

529:                                              ; preds = %522
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %531 = call i32 @fileno(ptr noundef %530) #9
  %532 = call i32 @isatty(i32 noundef %531) #9
  %.not671 = icmp eq i32 %532, 0
  br i1 %.not671, label %533, label %534

533:                                              ; preds = %529, %522
  br label %534

534:                                              ; preds = %529, %533
  %.str.5.sink873 = phi ptr [ @.str.5, %533 ], [ @.str.2, %529 ]
  store i32 %524, ptr %523, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = load i32, ptr @test_count, align 4, !tbaa !5
  %537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call ptr @s2n_strerror(i32 noundef %538, ptr noundef nonnull @.str.4) #9
  %540 = load i32, ptr %537, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror_debug(i32 noundef %540, ptr noundef nonnull @.str.4) #9
  %542 = load i32, ptr %523, align 4, !tbaa !5
  %543 = call ptr @strerror(i32 noundef %542) #9
  %544 = load i32, ptr %523, align 4, !tbaa !5
  %545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %535, ptr noundef nonnull %.str.5.sink873, i32 noundef %536, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %539, ptr noundef %541, ptr noundef %543, i32 noundef %544) #11
  call void @exit(i32 noundef 1) #12
  unreachable

546:                                              ; preds = %517
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = add nsw i32 %547, 1
  store i32 %548, ptr @test_count, align 4, !tbaa !5
  %549 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %171, ptr noundef nonnull %4) #9
  %550 = icmp eq i32 %549, -1
  br i1 %550, label %551, label %575

551:                                              ; preds = %546
  %552 = tail call ptr @__errno_location() #10
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = call i32 @s2n_print_stacktrace(ptr noundef %554) #9
  %556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %557 = trunc nuw i8 %556 to i1
  br i1 %557, label %558, label %562

558:                                              ; preds = %551
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = call i32 @fileno(ptr noundef %559) #9
  %561 = call i32 @isatty(i32 noundef %560) #9
  %.not670 = icmp eq i32 %561, 0
  br i1 %.not670, label %562, label %563

562:                                              ; preds = %558, %551
  br label %563

563:                                              ; preds = %558, %562
  %.str.5.sink884 = phi ptr [ @.str.5, %562 ], [ @.str.2, %558 ]
  store i32 %553, ptr %552, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror(i32 noundef %567, ptr noundef nonnull @.str.4) #9
  %569 = load i32, ptr %566, align 4, !tbaa !5
  %570 = call ptr @s2n_strerror_debug(i32 noundef %569, ptr noundef nonnull @.str.4) #9
  %571 = load i32, ptr %552, align 4, !tbaa !5
  %572 = call ptr @strerror(i32 noundef %571) #9
  %573 = load i32, ptr %552, align 4, !tbaa !5
  %574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %564, ptr noundef nonnull %.str.5.sink884, i32 noundef %565, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %568, ptr noundef %570, ptr noundef %572, i32 noundef %573) #11
  call void @exit(i32 noundef 1) #12
  unreachable

575:                                              ; preds = %546
  %576 = load i32, ptr @test_count, align 4, !tbaa !5
  %577 = add nsw i32 %576, 1
  store i32 %577, ptr @test_count, align 4, !tbaa !5
  %578 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %200, ptr noundef nonnull %4) #9
  %579 = icmp eq i32 %578, -1
  br i1 %579, label %580, label %604

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

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

591:                                              ; preds = %587, %580
  br label %592

592:                                              ; preds = %587, %591
  %.str.5.sink895 = phi ptr [ @.str.5, %591 ], [ @.str.2, %587 ]
  store i32 %582, ptr %581, align 4, !tbaa !5
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = load i32, ptr @test_count, align 4, !tbaa !5
  %595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %596 = load i32, ptr %595, align 4, !tbaa !5
  %597 = call ptr @s2n_strerror(i32 noundef %596, ptr noundef nonnull @.str.4) #9
  %598 = load i32, ptr %595, align 4, !tbaa !5
  %599 = call ptr @s2n_strerror_debug(i32 noundef %598, ptr noundef nonnull @.str.4) #9
  %600 = load i32, ptr %581, align 4, !tbaa !5
  %601 = call ptr @strerror(i32 noundef %600) #9
  %602 = load i32, ptr %581, align 4, !tbaa !5
  %603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %593, ptr noundef nonnull %.str.5.sink895, i32 noundef %594, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %597, ptr noundef %599, ptr noundef %601, i32 noundef %602) #11
  call void @exit(i32 noundef 1) #12
  unreachable

604:                                              ; preds = %575
  %605 = load i32, ptr @test_count, align 4, !tbaa !5
  %606 = add nsw i32 %605, 1
  store i32 %606, ptr @test_count, align 4, !tbaa !5
  %607 = call i32 @setup_client_psks(ptr noundef nonnull %171)
  %608 = call zeroext i1 @s2n_result_is_ok(i32 %607)
  br i1 %608, label %633, label %609

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

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

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

621:                                              ; preds = %616, %620
  %.str.5.sink906 = phi ptr [ @.str.5, %620 ], [ @.str.2, %616 ]
  store i32 %611, ptr %610, align 4, !tbaa !5
  %622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %623 = load i32, ptr @test_count, align 4, !tbaa !5
  %624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %625 = load i32, ptr %624, align 4, !tbaa !5
  %626 = call ptr @s2n_strerror(i32 noundef %625, ptr noundef nonnull @.str.4) #9
  %627 = load i32, ptr %624, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror_debug(i32 noundef %627, ptr noundef nonnull @.str.4) #9
  %629 = load i32, ptr %610, align 4, !tbaa !5
  %630 = call ptr @strerror(i32 noundef %629) #9
  %631 = load i32, ptr %610, align 4, !tbaa !5
  %632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %622, ptr noundef nonnull %.str.5.sink906, i32 noundef %623, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %626, ptr noundef %628, ptr noundef %630, i32 noundef %631) #11
  call void @exit(i32 noundef 1) #12
  unreachable

633:                                              ; preds = %604
  %634 = load i32, ptr @test_count, align 4, !tbaa !5
  %635 = add nsw i32 %634, 1
  store i32 %635, ptr @test_count, align 4, !tbaa !5
  %636 = call i32 @setup_server_psks(ptr noundef nonnull %200)
  %637 = call zeroext i1 @s2n_result_is_ok(i32 %636)
  br i1 %637, label %662, label %638

638:                                              ; preds = %633
  %639 = tail call ptr @__errno_location() #10
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = call i32 @s2n_print_stacktrace(ptr noundef %641) #9
  %643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %644 = trunc nuw i8 %643 to i1
  br i1 %644, label %645, label %649

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

649:                                              ; preds = %645, %638
  br label %650

650:                                              ; preds = %645, %649
  %.str.5.sink917 = phi ptr [ @.str.5, %649 ], [ @.str.2, %645 ]
  store i32 %640, ptr %639, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = load i32, ptr @test_count, align 4, !tbaa !5
  %653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror(i32 noundef %654, ptr noundef nonnull @.str.4) #9
  %656 = load i32, ptr %653, align 4, !tbaa !5
  %657 = call ptr @s2n_strerror_debug(i32 noundef %656, ptr noundef nonnull @.str.4) #9
  %658 = load i32, ptr %639, align 4, !tbaa !5
  %659 = call ptr @strerror(i32 noundef %658) #9
  %660 = load i32, ptr %639, align 4, !tbaa !5
  %661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %651, ptr noundef nonnull %.str.5.sink917, i32 noundef %652, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %655, ptr noundef %657, ptr noundef %659, i32 noundef %660) #11
  call void @exit(i32 noundef 1) #12
  unreachable

662:                                              ; preds = %633
  %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_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %666 = icmp eq i32 %665, -1
  br i1 %666, label %667, label %691

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

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

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

679:                                              ; preds = %674, %678
  %.str.5.sink928 = phi ptr [ @.str.5, %678 ], [ @.str.2, %674 ]
  store i32 %669, ptr %668, 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 nonnull @.str.4) #9
  %685 = load i32, ptr %682, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror_debug(i32 noundef %685, ptr noundef nonnull @.str.4) #9
  %687 = load i32, ptr %668, align 4, !tbaa !5
  %688 = call ptr @strerror(i32 noundef %687) #9
  %689 = load i32, ptr %668, align 4, !tbaa !5
  %690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef nonnull %.str.5.sink928, i32 noundef %681, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %684, ptr noundef %686, ptr noundef %688, i32 noundef %689) #11
  call void @exit(i32 noundef 1) #12
  unreachable

691:                                              ; preds = %662
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = add nsw i32 %692, 1
  store i32 %693, ptr @test_count, align 4, !tbaa !5
  %694 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 2) #9
  br i1 %694, label %695, label %721

695:                                              ; preds = %691
  %696 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 2) #9
  br i1 %696, label %697, label %721

697:                                              ; preds = %695
  %698 = tail call ptr @__errno_location() #10
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = call i32 @s2n_print_stacktrace(ptr noundef %700) #9
  %702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %703 = trunc nuw i8 %702 to i1
  br i1 %703, label %704, label %708

704:                                              ; preds = %697
  %705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %706 = call i32 @fileno(ptr noundef %705) #9
  %707 = call i32 @isatty(i32 noundef %706) #9
  %.not667 = icmp eq i32 %707, 0
  br i1 %.not667, label %708, label %709

708:                                              ; preds = %704, %697
  br label %709

709:                                              ; preds = %704, %708
  %.str.5.sink939 = phi ptr [ @.str.5, %708 ], [ @.str.2, %704 ]
  store i32 %699, ptr %698, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror(i32 noundef %713, ptr noundef nonnull @.str.4) #9
  %715 = load i32, ptr %712, align 4, !tbaa !5
  %716 = call ptr @s2n_strerror_debug(i32 noundef %715, ptr noundef nonnull @.str.4) #9
  %717 = load i32, ptr %698, align 4, !tbaa !5
  %718 = call ptr @strerror(i32 noundef %717) #9
  %719 = load i32, ptr %698, align 4, !tbaa !5
  %720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef nonnull %.str.5.sink939, i32 noundef %711, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %714, ptr noundef %716, ptr noundef %718, i32 noundef %719) #11
  call void @exit(i32 noundef 1) #12
  unreachable

721:                                              ; preds = %691, %695
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = add nsw i32 %722, 1
  store i32 %723, ptr @test_count, align 4, !tbaa !5
  %724 = call i32 @validate_chosen_psk(ptr noundef nonnull %200, ptr noundef nonnull @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %725 = call zeroext i1 @s2n_result_is_ok(i32 %724)
  br i1 %725, label %750, label %726

726:                                              ; preds = %721
  %727 = tail call ptr @__errno_location() #10
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = call i32 @s2n_print_stacktrace(ptr noundef %729) #9
  %731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %732 = trunc nuw i8 %731 to i1
  br i1 %732, label %733, label %737

733:                                              ; preds = %726
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = call i32 @fileno(ptr noundef %734) #9
  %736 = call i32 @isatty(i32 noundef %735) #9
  %.not531 = icmp eq i32 %736, 0
  br i1 %.not531, label %737, label %738

737:                                              ; preds = %733, %726
  br label %738

738:                                              ; preds = %733, %737
  %.str.5.sink950 = phi ptr [ @.str.5, %737 ], [ @.str.2, %733 ]
  store i32 %728, ptr %727, align 4, !tbaa !5
  %739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %740 = load i32, ptr @test_count, align 4, !tbaa !5
  %741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror(i32 noundef %742, ptr noundef nonnull @.str.4) #9
  %744 = load i32, ptr %741, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror_debug(i32 noundef %744, ptr noundef nonnull @.str.4) #9
  %746 = load i32, ptr %727, align 4, !tbaa !5
  %747 = call ptr @strerror(i32 noundef %746) #9
  %748 = load i32, ptr %727, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %739, ptr noundef nonnull %.str.5.sink950, i32 noundef %740, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %743, ptr noundef %745, ptr noundef %747, i32 noundef %748) #11
  call void @exit(i32 noundef 1) #12
  unreachable

750:                                              ; preds = %721
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = add nsw i32 %751, 1
  store i32 %752, ptr @test_count, align 4, !tbaa !5
  %753 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %754 = icmp eq i32 %753, -1
  br i1 %754, label %755, label %779

755:                                              ; preds = %750
  %756 = tail call ptr @__errno_location() #10
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = call i32 @s2n_print_stacktrace(ptr noundef %758) #9
  %760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %761 = trunc nuw i8 %760 to i1
  br i1 %761, label %762, label %766

762:                                              ; preds = %755
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = call i32 @fileno(ptr noundef %763) #9
  %765 = call i32 @isatty(i32 noundef %764) #9
  %.not666 = icmp eq i32 %765, 0
  br i1 %.not666, label %766, label %767

766:                                              ; preds = %762, %755
  br label %767

767:                                              ; preds = %762, %766
  %.str.5.sink961 = phi ptr [ @.str.5, %766 ], [ @.str.2, %762 ]
  store i32 %757, ptr %756, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef nonnull @.str.4) #9
  %773 = load i32, ptr %770, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror_debug(i32 noundef %773, ptr noundef nonnull @.str.4) #9
  %775 = load i32, ptr %756, align 4, !tbaa !5
  %776 = call ptr @strerror(i32 noundef %775) #9
  %777 = load i32, ptr %756, align 4, !tbaa !5
  %778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef nonnull %.str.5.sink961, i32 noundef %769, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %772, ptr noundef %774, ptr noundef %776, i32 noundef %777) #11
  call void @exit(i32 noundef 1) #12
  unreachable

779:                                              ; preds = %750
  %780 = load i32, ptr @test_count, align 4, !tbaa !5
  %781 = add nsw i32 %780, 1
  store i32 %781, ptr @test_count, align 4, !tbaa !5
  %782 = call i32 @s2n_connection_wipe(ptr noundef nonnull %171) #9
  %783 = icmp eq i32 %782, -1
  br i1 %783, label %784, label %808

784:                                              ; preds = %779
  %785 = tail call ptr @__errno_location() #10
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = call i32 @s2n_print_stacktrace(ptr noundef %787) #9
  %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 = %784
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = call i32 @fileno(ptr noundef %792) #9
  %794 = call i32 @isatty(i32 noundef %793) #9
  %.not665 = icmp eq i32 %794, 0
  br i1 %.not665, label %795, label %796

795:                                              ; preds = %791, %784
  br label %796

796:                                              ; preds = %791, %795
  %.str.5.sink972 = phi ptr [ @.str.5, %795 ], [ @.str.2, %791 ]
  store i32 %786, ptr %785, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror(i32 noundef %800, ptr noundef nonnull @.str.4) #9
  %802 = load i32, ptr %799, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror_debug(i32 noundef %802, ptr noundef nonnull @.str.4) #9
  %804 = load i32, ptr %785, align 4, !tbaa !5
  %805 = call ptr @strerror(i32 noundef %804) #9
  %806 = load i32, ptr %785, align 4, !tbaa !5
  %807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef nonnull %.str.5.sink972, i32 noundef %798, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %801, ptr noundef %803, ptr noundef %805, i32 noundef %806) #11
  call void @exit(i32 noundef 1) #12
  unreachable

808:                                              ; preds = %779
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr @test_count, align 4, !tbaa !5
  %811 = call i32 @s2n_connection_wipe(ptr noundef nonnull %200) #9
  %812 = icmp eq i32 %811, -1
  br i1 %812, label %813, label %837

813:                                              ; preds = %808
  %814 = tail call ptr @__errno_location() #10
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = call i32 @s2n_print_stacktrace(ptr noundef %816) #9
  %818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %819 = trunc nuw i8 %818 to i1
  br i1 %819, label %820, label %824

820:                                              ; preds = %813
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @fileno(ptr noundef %821) #9
  %823 = call i32 @isatty(i32 noundef %822) #9
  %.not664 = icmp eq i32 %823, 0
  br i1 %.not664, label %824, label %825

824:                                              ; preds = %820, %813
  br label %825

825:                                              ; preds = %820, %824
  %.str.5.sink983 = phi ptr [ @.str.5, %824 ], [ @.str.2, %820 ]
  store i32 %815, ptr %814, align 4, !tbaa !5
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror(i32 noundef %829, ptr noundef nonnull @.str.4) #9
  %831 = load i32, ptr %828, align 4, !tbaa !5
  %832 = call ptr @s2n_strerror_debug(i32 noundef %831, ptr noundef nonnull @.str.4) #9
  %833 = load i32, ptr %814, align 4, !tbaa !5
  %834 = call ptr @strerror(i32 noundef %833) #9
  %835 = load i32, ptr %814, align 4, !tbaa !5
  %836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %826, ptr noundef nonnull %.str.5.sink983, i32 noundef %827, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %830, ptr noundef %832, ptr noundef %834, i32 noundef %835) #11
  call void @exit(i32 noundef 1) #12
  unreachable

837:                                              ; preds = %808
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = add nsw i32 %838, 1
  store i32 %839, ptr @test_count, align 4, !tbaa !5
  %840 = call i32 @s2n_connection_set_config(ptr noundef nonnull %171, ptr noundef nonnull %229) #9
  %841 = icmp eq i32 %840, -1
  br i1 %841, label %842, label %866

842:                                              ; preds = %837
  %843 = tail call ptr @__errno_location() #10
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = call i32 @s2n_print_stacktrace(ptr noundef %845) #9
  %847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %848 = trunc nuw i8 %847 to i1
  br i1 %848, label %849, label %853

849:                                              ; preds = %842
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = call i32 @fileno(ptr noundef %850) #9
  %852 = call i32 @isatty(i32 noundef %851) #9
  %.not663 = icmp eq i32 %852, 0
  br i1 %.not663, label %853, label %854

853:                                              ; preds = %849, %842
  br label %854

854:                                              ; preds = %849, %853
  %.str.5.sink994 = phi ptr [ @.str.5, %853 ], [ @.str.2, %849 ]
  store i32 %844, ptr %843, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call ptr @s2n_strerror(i32 noundef %858, ptr noundef nonnull @.str.4) #9
  %860 = load i32, ptr %857, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror_debug(i32 noundef %860, ptr noundef nonnull @.str.4) #9
  %862 = load i32, ptr %843, align 4, !tbaa !5
  %863 = call ptr @strerror(i32 noundef %862) #9
  %864 = load i32, ptr %843, align 4, !tbaa !5
  %865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %855, ptr noundef nonnull %.str.5.sink994, i32 noundef %856, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %859, ptr noundef %861, ptr noundef %863, i32 noundef %864) #11
  call void @exit(i32 noundef 1) #12
  unreachable

866:                                              ; preds = %837
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = add nsw i32 %867, 1
  store i32 %868, ptr @test_count, align 4, !tbaa !5
  %869 = call i32 @s2n_connection_set_config(ptr noundef nonnull %200, ptr noundef nonnull %229) #9
  %870 = icmp eq i32 %869, -1
  br i1 %870, label %871, label %895

871:                                              ; preds = %866
  %872 = tail call ptr @__errno_location() #10
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = call i32 @s2n_print_stacktrace(ptr noundef %874) #9
  %876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %877 = trunc nuw i8 %876 to i1
  br i1 %877, label %878, label %882

878:                                              ; preds = %871
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = call i32 @fileno(ptr noundef %879) #9
  %881 = call i32 @isatty(i32 noundef %880) #9
  %.not662 = icmp eq i32 %881, 0
  br i1 %.not662, label %882, label %883

882:                                              ; preds = %878, %871
  br label %883

883:                                              ; preds = %878, %882
  %.str.5.sink1005 = phi ptr [ @.str.5, %882 ], [ @.str.2, %878 ]
  store i32 %873, ptr %872, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @s2n_strerror(i32 noundef %887, ptr noundef nonnull @.str.4) #9
  %889 = load i32, ptr %886, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror_debug(i32 noundef %889, ptr noundef nonnull @.str.4) #9
  %891 = load i32, ptr %872, align 4, !tbaa !5
  %892 = call ptr @strerror(i32 noundef %891) #9
  %893 = load i32, ptr %872, align 4, !tbaa !5
  %894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %884, ptr noundef nonnull %.str.5.sink1005, i32 noundef %885, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %888, ptr noundef %890, ptr noundef %892, i32 noundef %893) #11
  call void @exit(i32 noundef 1) #12
  unreachable

895:                                              ; preds = %866
  %896 = load i32, ptr @test_count, align 4, !tbaa !5
  %897 = add nsw i32 %896, 1
  store i32 %897, ptr @test_count, align 4, !tbaa !5
  %898 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %171, ptr noundef nonnull %4) #9
  %899 = icmp eq i32 %898, -1
  br i1 %899, label %900, label %924

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

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

911:                                              ; preds = %907, %900
  br label %912

912:                                              ; preds = %907, %911
  %.str.5.sink1016 = phi ptr [ @.str.5, %911 ], [ @.str.2, %907 ]
  store i32 %902, ptr %901, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef nonnull @.str.4) #9
  %918 = load i32, ptr %915, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror_debug(i32 noundef %918, ptr noundef nonnull @.str.4) #9
  %920 = load i32, ptr %901, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #9
  %922 = load i32, ptr %901, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef nonnull %.str.5.sink1016, i32 noundef %914, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %917, ptr noundef %919, ptr noundef %921, i32 noundef %922) #11
  call void @exit(i32 noundef 1) #12
  unreachable

924:                                              ; preds = %895
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr @test_count, align 4, !tbaa !5
  %927 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %200, ptr noundef nonnull %4) #9
  %928 = icmp eq i32 %927, -1
  br i1 %928, label %929, label %953

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

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

940:                                              ; preds = %936, %929
  br label %941

941:                                              ; preds = %936, %940
  %.str.5.sink1027 = phi ptr [ @.str.5, %940 ], [ @.str.2, %936 ]
  store i32 %931, ptr %930, align 4, !tbaa !5
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = load i32, ptr @test_count, align 4, !tbaa !5
  %944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror(i32 noundef %945, ptr noundef nonnull @.str.4) #9
  %947 = load i32, ptr %944, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef nonnull @.str.4) #9
  %949 = load i32, ptr %930, align 4, !tbaa !5
  %950 = call ptr @strerror(i32 noundef %949) #9
  %951 = load i32, ptr %930, align 4, !tbaa !5
  %952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %942, ptr noundef nonnull %.str.5.sink1027, i32 noundef %943, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %946, ptr noundef %948, ptr noundef %950, i32 noundef %951) #11
  call void @exit(i32 noundef 1) #12
  unreachable

953:                                              ; preds = %924
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = add nsw i32 %954, 1
  store i32 %955, ptr @test_count, align 4, !tbaa !5
  %956 = call i32 @setup_client_psks(ptr noundef nonnull %171)
  %957 = call zeroext i1 @s2n_result_is_ok(i32 %956)
  br i1 %957, label %982, label %958

958:                                              ; preds = %953
  %959 = tail call ptr @__errno_location() #10
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = call i32 @s2n_print_stacktrace(ptr noundef %961) #9
  %963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %964 = trunc nuw i8 %963 to i1
  br i1 %964, label %965, label %969

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

969:                                              ; preds = %965, %958
  br label %970

970:                                              ; preds = %965, %969
  %.str.5.sink1038 = phi ptr [ @.str.5, %969 ], [ @.str.2, %965 ]
  store i32 %960, ptr %959, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = load i32, ptr @test_count, align 4, !tbaa !5
  %973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror(i32 noundef %974, ptr noundef nonnull @.str.4) #9
  %976 = load i32, ptr %973, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror_debug(i32 noundef %976, ptr noundef nonnull @.str.4) #9
  %978 = load i32, ptr %959, align 4, !tbaa !5
  %979 = call ptr @strerror(i32 noundef %978) #9
  %980 = load i32, ptr %959, align 4, !tbaa !5
  %981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %971, ptr noundef nonnull %.str.5.sink1038, i32 noundef %972, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %975, ptr noundef %977, ptr noundef %979, i32 noundef %980) #11
  call void @exit(i32 noundef 1) #12
  unreachable

982:                                              ; preds = %953
  %983 = load i32, ptr @test_count, align 4, !tbaa !5
  %984 = add nsw i32 %983, 1
  store i32 %984, ptr @test_count, align 4, !tbaa !5
  %985 = call i32 @setup_server_psks(ptr noundef nonnull %200)
  %986 = call zeroext i1 @s2n_result_is_ok(i32 %985)
  br i1 %986, label %1011, label %987

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

994:                                              ; preds = %987
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = call i32 @fileno(ptr noundef %995) #9
  %997 = call i32 @isatty(i32 noundef %996) #9
  %.not533 = icmp eq i32 %997, 0
  br i1 %.not533, label %998, label %999

998:                                              ; preds = %994, %987
  br label %999

999:                                              ; preds = %994, %998
  %.str.5.sink1049 = phi ptr [ @.str.5, %998 ], [ @.str.2, %994 ]
  store i32 %989, ptr %988, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef nonnull @.str.4) #9
  %1005 = load i32, ptr %1002, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror_debug(i32 noundef %1005, ptr noundef nonnull @.str.4) #9
  %1007 = load i32, ptr %988, align 4, !tbaa !5
  %1008 = call ptr @strerror(i32 noundef %1007) #9
  %1009 = load i32, ptr %988, align 4, !tbaa !5
  %1010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef nonnull %.str.5.sink1049, i32 noundef %1001, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %1004, ptr noundef %1006, ptr noundef %1008, i32 noundef %1009) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1011:                                             ; preds = %982
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = add nsw i32 %1012, 1
  store i32 %1013, ptr @test_count, align 4, !tbaa !5
  %1014 = getelementptr inbounds i8, ptr %200, i64 8
  %1015 = load ptr, ptr %1014, align 8, !tbaa !15
  %1016 = call i32 @s2n_config_set_psk_selection_callback(ptr noundef %1015, ptr noundef nonnull @s2n_test_select_psk_identity_callback, ptr noundef null) #9
  %1017 = icmp eq i32 %1016, -1
  br i1 %1017, label %1018, label %1042

1018:                                             ; preds = %1011
  %1019 = tail call ptr @__errno_location() #10
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = call i32 @s2n_print_stacktrace(ptr noundef %1021) #9
  %1023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1024 = trunc nuw i8 %1023 to i1
  br i1 %1024, label %1025, label %1029

1025:                                             ; preds = %1018
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = call i32 @fileno(ptr noundef %1026) #9
  %1028 = call i32 @isatty(i32 noundef %1027) #9
  %.not659 = icmp eq i32 %1028, 0
  br i1 %.not659, label %1029, label %1030

1029:                                             ; preds = %1025, %1018
  br label %1030

1030:                                             ; preds = %1025, %1029
  %.str.5.sink1060 = phi ptr [ @.str.5, %1029 ], [ @.str.2, %1025 ]
  store i32 %1020, ptr %1019, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror(i32 noundef %1034, ptr noundef nonnull @.str.4) #9
  %1036 = load i32, ptr %1033, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef nonnull @.str.4) #9
  %1038 = load i32, ptr %1019, align 4, !tbaa !5
  %1039 = call ptr @strerror(i32 noundef %1038) #9
  %1040 = load i32, ptr %1019, align 4, !tbaa !5
  %1041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef nonnull %.str.5.sink1060, i32 noundef %1032, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %1035, ptr noundef %1037, ptr noundef %1039, i32 noundef %1040) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1042:                                             ; preds = %1011
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = load ptr, ptr %1014, align 8, !tbaa !15
  %1046 = getelementptr inbounds i8, ptr %1045, i64 336
  %1047 = load ptr, ptr %1046, align 8, !tbaa !42
  %1048 = icmp eq ptr %1047, @s2n_test_select_psk_identity_callback
  br i1 %1048, label %1073, label %1049

1049:                                             ; preds = %1042
  %1050 = tail call ptr @__errno_location() #10
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @s2n_print_stacktrace(ptr noundef %1052) #9
  %1054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1055 = trunc nuw i8 %1054 to i1
  br i1 %1055, label %1056, label %1060

1056:                                             ; preds = %1049
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @fileno(ptr noundef %1057) #9
  %1059 = call i32 @isatty(i32 noundef %1058) #9
  %.not534 = icmp eq i32 %1059, 0
  br i1 %.not534, label %1060, label %1061

1060:                                             ; preds = %1056, %1049
  br label %1061

1061:                                             ; preds = %1056, %1060
  %.str.5.sink1071 = phi ptr [ @.str.5, %1060 ], [ @.str.2, %1056 ]
  store i32 %1051, ptr %1050, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef nonnull @.str.4) #9
  %1067 = load i32, ptr %1064, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror_debug(i32 noundef %1067, ptr noundef nonnull @.str.4) #9
  %1069 = load i32, ptr %1050, align 4, !tbaa !5
  %1070 = call ptr @strerror(i32 noundef %1069) #9
  %1071 = load i32, ptr %1050, align 4, !tbaa !5
  %1072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef nonnull %.str.5.sink1071, i32 noundef %1063, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %1066, ptr noundef %1068, ptr noundef %1070, i32 noundef %1071) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1073:                                             ; preds = %1042
  %1074 = add nsw i32 %1043, 2
  store i32 %1074, ptr @test_count, align 4, !tbaa !5
  %1075 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %1076 = icmp eq i32 %1075, -1
  br i1 %1076, label %1077, label %1101

1077:                                             ; preds = %1073
  %1078 = tail call ptr @__errno_location() #10
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1081 = call i32 @s2n_print_stacktrace(ptr noundef %1080) #9
  %1082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1083 = trunc nuw i8 %1082 to i1
  br i1 %1083, label %1084, label %1088

1084:                                             ; preds = %1077
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = call i32 @fileno(ptr noundef %1085) #9
  %1087 = call i32 @isatty(i32 noundef %1086) #9
  %.not658 = icmp eq i32 %1087, 0
  br i1 %.not658, label %1088, label %1089

1088:                                             ; preds = %1084, %1077
  br label %1089

1089:                                             ; preds = %1084, %1088
  %.str.5.sink1082 = phi ptr [ @.str.5, %1088 ], [ @.str.2, %1084 ]
  store i32 %1079, ptr %1078, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror(i32 noundef %1093, ptr noundef nonnull @.str.4) #9
  %1095 = load i32, ptr %1092, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror_debug(i32 noundef %1095, ptr noundef nonnull @.str.4) #9
  %1097 = load i32, ptr %1078, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #9
  %1099 = load i32, ptr %1078, align 4, !tbaa !5
  %1100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1090, ptr noundef nonnull %.str.5.sink1082, i32 noundef %1091, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1094, ptr noundef %1096, ptr noundef %1098, i32 noundef %1099) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1101:                                             ; preds = %1073
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = add nsw i32 %1102, 1
  store i32 %1103, ptr @test_count, align 4, !tbaa !5
  %1104 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 2) #9
  br i1 %1104, label %1105, label %1131

1105:                                             ; preds = %1101
  %1106 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 2) #9
  br i1 %1106, label %1107, label %1131

1107:                                             ; preds = %1105
  %1108 = tail call ptr @__errno_location() #10
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = call i32 @s2n_print_stacktrace(ptr noundef %1110) #9
  %1112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1113 = trunc nuw i8 %1112 to i1
  br i1 %1113, label %1114, label %1118

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

1118:                                             ; preds = %1114, %1107
  br label %1119

1119:                                             ; preds = %1114, %1118
  %.str.5.sink1093 = phi ptr [ @.str.5, %1118 ], [ @.str.2, %1114 ]
  store i32 %1109, ptr %1108, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = call ptr @s2n_strerror(i32 noundef %1123, ptr noundef nonnull @.str.4) #9
  %1125 = load i32, ptr %1122, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror_debug(i32 noundef %1125, ptr noundef nonnull @.str.4) #9
  %1127 = load i32, ptr %1108, align 4, !tbaa !5
  %1128 = call ptr @strerror(i32 noundef %1127) #9
  %1129 = load i32, ptr %1108, align 4, !tbaa !5
  %1130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1120, ptr noundef nonnull %.str.5.sink1093, i32 noundef %1121, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %1124, ptr noundef %1126, ptr noundef %1128, i32 noundef %1129) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1131:                                             ; preds = %1101, %1105
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = add nsw i32 %1132, 1
  store i32 %1133, ptr @test_count, align 4, !tbaa !5
  %1134 = call i32 @validate_chosen_psk(ptr noundef nonnull %200, ptr noundef nonnull @test_shared_identity_2, i64 noundef 23, i64 noundef 2)
  %1135 = call zeroext i1 @s2n_result_is_ok(i32 %1134)
  br i1 %1135, label %1160, label %1136

1136:                                             ; preds = %1131
  %1137 = tail call ptr @__errno_location() #10
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = call i32 @s2n_print_stacktrace(ptr noundef %1139) #9
  %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 = %1136
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = call i32 @fileno(ptr noundef %1144) #9
  %1146 = call i32 @isatty(i32 noundef %1145) #9
  %.not535 = icmp eq i32 %1146, 0
  br i1 %.not535, label %1147, label %1148

1147:                                             ; preds = %1143, %1136
  br label %1148

1148:                                             ; preds = %1143, %1147
  %.str.5.sink1104 = phi ptr [ @.str.5, %1147 ], [ @.str.2, %1143 ]
  store i32 %1138, ptr %1137, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror(i32 noundef %1152, ptr noundef nonnull @.str.4) #9
  %1154 = load i32, ptr %1151, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror_debug(i32 noundef %1154, ptr noundef nonnull @.str.4) #9
  %1156 = load i32, ptr %1137, align 4, !tbaa !5
  %1157 = call ptr @strerror(i32 noundef %1156) #9
  %1158 = load i32, ptr %1137, align 4, !tbaa !5
  %1159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef nonnull %.str.5.sink1104, i32 noundef %1150, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1153, ptr noundef %1155, ptr noundef %1157, i32 noundef %1158) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1160:                                             ; preds = %1131
  %1161 = load i32, ptr @test_count, align 4, !tbaa !5
  %1162 = add nsw i32 %1161, 1
  store i32 %1162, ptr @test_count, align 4, !tbaa !5
  %1163 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %1164 = icmp eq i32 %1163, -1
  br i1 %1164, label %1165, label %1189

1165:                                             ; preds = %1160
  %1166 = tail call ptr @__errno_location() #10
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = call i32 @s2n_print_stacktrace(ptr noundef %1168) #9
  %1170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1171 = trunc nuw i8 %1170 to i1
  br i1 %1171, label %1172, label %1176

1172:                                             ; preds = %1165
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1174 = call i32 @fileno(ptr noundef %1173) #9
  %1175 = call i32 @isatty(i32 noundef %1174) #9
  %.not656 = icmp eq i32 %1175, 0
  br i1 %.not656, label %1176, label %1177

1176:                                             ; preds = %1172, %1165
  br label %1177

1177:                                             ; preds = %1172, %1176
  %.str.5.sink1115 = phi ptr [ @.str.5, %1176 ], [ @.str.2, %1172 ]
  store i32 %1167, ptr %1166, align 4, !tbaa !5
  %1178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1179 = load i32, ptr @test_count, align 4, !tbaa !5
  %1180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror(i32 noundef %1181, ptr noundef nonnull @.str.4) #9
  %1183 = load i32, ptr %1180, align 4, !tbaa !5
  %1184 = call ptr @s2n_strerror_debug(i32 noundef %1183, ptr noundef nonnull @.str.4) #9
  %1185 = load i32, ptr %1166, align 4, !tbaa !5
  %1186 = call ptr @strerror(i32 noundef %1185) #9
  %1187 = load i32, ptr %1166, align 4, !tbaa !5
  %1188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1178, ptr noundef nonnull %.str.5.sink1115, i32 noundef %1179, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %1182, ptr noundef %1184, ptr noundef %1186, i32 noundef %1187) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1189:                                             ; preds = %1160
  %1190 = load ptr, ptr %1014, align 8, !tbaa !15
  %1191 = getelementptr inbounds i8, ptr %1190, i64 336
  store ptr null, ptr %1191, align 8, !tbaa !42
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = add nsw i32 %1192, 1
  store i32 %1193, ptr @test_count, align 4, !tbaa !5
  %1194 = call i32 @s2n_connection_wipe(ptr noundef nonnull %171) #9
  %1195 = icmp eq i32 %1194, -1
  br i1 %1195, label %1196, label %1220

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

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

1207:                                             ; preds = %1203, %1196
  br label %1208

1208:                                             ; preds = %1203, %1207
  %.str.5.sink1126 = phi ptr [ @.str.5, %1207 ], [ @.str.2, %1203 ]
  store i32 %1198, ptr %1197, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call ptr @s2n_strerror(i32 noundef %1212, ptr noundef nonnull @.str.4) #9
  %1214 = load i32, ptr %1211, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror_debug(i32 noundef %1214, ptr noundef nonnull @.str.4) #9
  %1216 = load i32, ptr %1197, align 4, !tbaa !5
  %1217 = call ptr @strerror(i32 noundef %1216) #9
  %1218 = load i32, ptr %1197, align 4, !tbaa !5
  %1219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef nonnull %.str.5.sink1126, i32 noundef %1210, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %1213, ptr noundef %1215, ptr noundef %1217, i32 noundef %1218) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1220:                                             ; preds = %1189
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = add nsw i32 %1221, 1
  store i32 %1222, ptr @test_count, align 4, !tbaa !5
  %1223 = call i32 @s2n_connection_wipe(ptr noundef nonnull %200) #9
  %1224 = icmp eq i32 %1223, -1
  br i1 %1224, label %1225, label %1249

1225:                                             ; preds = %1220
  %1226 = tail call ptr @__errno_location() #10
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @s2n_print_stacktrace(ptr noundef %1228) #9
  %1230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1231 = trunc nuw i8 %1230 to i1
  br i1 %1231, label %1232, label %1236

1232:                                             ; preds = %1225
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @fileno(ptr noundef %1233) #9
  %1235 = call i32 @isatty(i32 noundef %1234) #9
  %.not654 = icmp eq i32 %1235, 0
  br i1 %.not654, label %1236, label %1237

1236:                                             ; preds = %1232, %1225
  br label %1237

1237:                                             ; preds = %1232, %1236
  %.str.5.sink1137 = phi ptr [ @.str.5, %1236 ], [ @.str.2, %1232 ]
  store i32 %1227, ptr %1226, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1241, ptr noundef nonnull @.str.4) #9
  %1243 = load i32, ptr %1240, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef nonnull @.str.4) #9
  %1245 = load i32, ptr %1226, align 4, !tbaa !5
  %1246 = call ptr @strerror(i32 noundef %1245) #9
  %1247 = load i32, ptr %1226, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef nonnull %.str.5.sink1137, i32 noundef %1239, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1242, ptr noundef %1244, ptr noundef %1246, i32 noundef %1247) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1249:                                             ; preds = %1220
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = add nsw i32 %1250, 1
  store i32 %1251, ptr @test_count, align 4, !tbaa !5
  %1252 = call i32 @s2n_connection_set_config(ptr noundef nonnull %171, ptr noundef nonnull %316) #9
  %1253 = icmp eq i32 %1252, -1
  br i1 %1253, label %1254, label %1278

1254:                                             ; preds = %1249
  %1255 = tail call ptr @__errno_location() #10
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @s2n_print_stacktrace(ptr noundef %1257) #9
  %1259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1260 = trunc nuw i8 %1259 to i1
  br i1 %1260, label %1261, label %1265

1261:                                             ; preds = %1254
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = call i32 @fileno(ptr noundef %1262) #9
  %1264 = call i32 @isatty(i32 noundef %1263) #9
  %.not653 = icmp eq i32 %1264, 0
  br i1 %.not653, label %1265, label %1266

1265:                                             ; preds = %1261, %1254
  br label %1266

1266:                                             ; preds = %1261, %1265
  %.str.5.sink1148 = phi ptr [ @.str.5, %1265 ], [ @.str.2, %1261 ]
  store i32 %1256, ptr %1255, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror(i32 noundef %1270, ptr noundef nonnull @.str.4) #9
  %1272 = load i32, ptr %1269, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror_debug(i32 noundef %1272, ptr noundef nonnull @.str.4) #9
  %1274 = load i32, ptr %1255, align 4, !tbaa !5
  %1275 = call ptr @strerror(i32 noundef %1274) #9
  %1276 = load i32, ptr %1255, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1267, ptr noundef nonnull %.str.5.sink1148, i32 noundef %1268, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %1271, ptr noundef %1273, ptr noundef %1275, i32 noundef %1276) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1278:                                             ; preds = %1249
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = add nsw i32 %1279, 1
  store i32 %1280, ptr @test_count, align 4, !tbaa !5
  %1281 = call i32 @s2n_connection_set_config(ptr noundef nonnull %200, ptr noundef nonnull %316) #9
  %1282 = icmp eq i32 %1281, -1
  br i1 %1282, label %1283, label %1307

1283:                                             ; preds = %1278
  %1284 = tail call ptr @__errno_location() #10
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 @s2n_print_stacktrace(ptr noundef %1286) #9
  %1288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1289 = trunc nuw i8 %1288 to i1
  br i1 %1289, label %1290, label %1294

1290:                                             ; preds = %1283
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @fileno(ptr noundef %1291) #9
  %1293 = call i32 @isatty(i32 noundef %1292) #9
  %.not652 = icmp eq i32 %1293, 0
  br i1 %.not652, label %1294, label %1295

1294:                                             ; preds = %1290, %1283
  br label %1295

1295:                                             ; preds = %1290, %1294
  %.str.5.sink1159 = phi ptr [ @.str.5, %1294 ], [ @.str.2, %1290 ]
  store i32 %1285, ptr %1284, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror(i32 noundef %1299, ptr noundef nonnull @.str.4) #9
  %1301 = load i32, ptr %1298, align 4, !tbaa !5
  %1302 = call ptr @s2n_strerror_debug(i32 noundef %1301, ptr noundef nonnull @.str.4) #9
  %1303 = load i32, ptr %1284, align 4, !tbaa !5
  %1304 = call ptr @strerror(i32 noundef %1303) #9
  %1305 = load i32, ptr %1284, align 4, !tbaa !5
  %1306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef nonnull %.str.5.sink1159, i32 noundef %1297, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %1300, ptr noundef %1302, ptr noundef %1304, i32 noundef %1305) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1307:                                             ; preds = %1278
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = add nsw i32 %1308, 1
  store i32 %1309, ptr @test_count, align 4, !tbaa !5
  %1310 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %171, ptr noundef nonnull %4) #9
  %1311 = icmp eq i32 %1310, -1
  br i1 %1311, label %1312, label %1336

1312:                                             ; preds = %1307
  %1313 = tail call ptr @__errno_location() #10
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = call i32 @s2n_print_stacktrace(ptr noundef %1315) #9
  %1317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1318 = trunc nuw i8 %1317 to i1
  br i1 %1318, label %1319, label %1323

1319:                                             ; preds = %1312
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = call i32 @fileno(ptr noundef %1320) #9
  %1322 = call i32 @isatty(i32 noundef %1321) #9
  %.not651 = icmp eq i32 %1322, 0
  br i1 %.not651, label %1323, label %1324

1323:                                             ; preds = %1319, %1312
  br label %1324

1324:                                             ; preds = %1319, %1323
  %.str.5.sink1170 = phi ptr [ @.str.5, %1323 ], [ @.str.2, %1319 ]
  store i32 %1314, ptr %1313, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror(i32 noundef %1328, ptr noundef nonnull @.str.4) #9
  %1330 = load i32, ptr %1327, align 4, !tbaa !5
  %1331 = call ptr @s2n_strerror_debug(i32 noundef %1330, ptr noundef nonnull @.str.4) #9
  %1332 = load i32, ptr %1313, align 4, !tbaa !5
  %1333 = call ptr @strerror(i32 noundef %1332) #9
  %1334 = load i32, ptr %1313, align 4, !tbaa !5
  %1335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1325, ptr noundef nonnull %.str.5.sink1170, i32 noundef %1326, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %1329, ptr noundef %1331, ptr noundef %1333, i32 noundef %1334) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1336:                                             ; preds = %1307
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = add nsw i32 %1337, 1
  store i32 %1338, ptr @test_count, align 4, !tbaa !5
  %1339 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %200, ptr noundef nonnull %4) #9
  %1340 = icmp eq i32 %1339, -1
  br i1 %1340, label %1341, label %1365

1341:                                             ; preds = %1336
  %1342 = tail call ptr @__errno_location() #10
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = call i32 @s2n_print_stacktrace(ptr noundef %1344) #9
  %1346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1347 = trunc nuw i8 %1346 to i1
  br i1 %1347, label %1348, label %1352

1348:                                             ; preds = %1341
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = call i32 @fileno(ptr noundef %1349) #9
  %1351 = call i32 @isatty(i32 noundef %1350) #9
  %.not650 = icmp eq i32 %1351, 0
  br i1 %.not650, label %1352, label %1353

1352:                                             ; preds = %1348, %1341
  br label %1353

1353:                                             ; preds = %1348, %1352
  %.str.5.sink1181 = phi ptr [ @.str.5, %1352 ], [ @.str.2, %1348 ]
  store i32 %1343, ptr %1342, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror(i32 noundef %1357, ptr noundef nonnull @.str.4) #9
  %1359 = load i32, ptr %1356, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror_debug(i32 noundef %1359, ptr noundef nonnull @.str.4) #9
  %1361 = load i32, ptr %1342, align 4, !tbaa !5
  %1362 = call ptr @strerror(i32 noundef %1361) #9
  %1363 = load i32, ptr %1342, align 4, !tbaa !5
  %1364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1354, ptr noundef nonnull %.str.5.sink1181, i32 noundef %1355, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %1358, ptr noundef %1360, ptr noundef %1362, i32 noundef %1363) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1365:                                             ; preds = %1336
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = add nsw i32 %1366, 1
  store i32 %1367, ptr @test_count, align 4, !tbaa !5
  %1368 = call i32 @setup_client_psks(ptr noundef nonnull %171)
  %1369 = call zeroext i1 @s2n_result_is_ok(i32 %1368)
  br i1 %1369, label %1394, label %1370

1370:                                             ; preds = %1365
  %1371 = tail call ptr @__errno_location() #10
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = call i32 @s2n_print_stacktrace(ptr noundef %1373) #9
  %1375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1376 = trunc nuw i8 %1375 to i1
  br i1 %1376, label %1377, label %1381

1377:                                             ; preds = %1370
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = call i32 @fileno(ptr noundef %1378) #9
  %1380 = call i32 @isatty(i32 noundef %1379) #9
  %.not536 = icmp eq i32 %1380, 0
  br i1 %.not536, label %1381, label %1382

1381:                                             ; preds = %1377, %1370
  br label %1382

1382:                                             ; preds = %1377, %1381
  %.str.5.sink1192 = phi ptr [ @.str.5, %1381 ], [ @.str.2, %1377 ]
  store i32 %1372, ptr %1371, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror(i32 noundef %1386, ptr noundef nonnull @.str.4) #9
  %1388 = load i32, ptr %1385, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror_debug(i32 noundef %1388, ptr noundef nonnull @.str.4) #9
  %1390 = load i32, ptr %1371, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #9
  %1392 = load i32, ptr %1371, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1383, ptr noundef nonnull %.str.5.sink1192, i32 noundef %1384, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %1387, ptr noundef %1389, ptr noundef %1391, i32 noundef %1392) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1394:                                             ; preds = %1365
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = add nsw i32 %1395, 1
  store i32 %1396, ptr @test_count, align 4, !tbaa !5
  %1397 = call i32 @setup_server_psks(ptr noundef nonnull %200)
  %1398 = call zeroext i1 @s2n_result_is_ok(i32 %1397)
  br i1 %1398, label %1423, label %1399

1399:                                             ; preds = %1394
  %1400 = tail call ptr @__errno_location() #10
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = call i32 @s2n_print_stacktrace(ptr noundef %1402) #9
  %1404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1405 = trunc nuw i8 %1404 to i1
  br i1 %1405, label %1406, label %1410

1406:                                             ; preds = %1399
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = call i32 @fileno(ptr noundef %1407) #9
  %1409 = call i32 @isatty(i32 noundef %1408) #9
  %.not537 = icmp eq i32 %1409, 0
  br i1 %.not537, label %1410, label %1411

1410:                                             ; preds = %1406, %1399
  br label %1411

1411:                                             ; preds = %1406, %1410
  %.str.5.sink1203 = phi ptr [ @.str.5, %1410 ], [ @.str.2, %1406 ]
  store i32 %1401, ptr %1400, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef nonnull @.str.4) #9
  %1417 = load i32, ptr %1414, align 4, !tbaa !5
  %1418 = call ptr @s2n_strerror_debug(i32 noundef %1417, ptr noundef nonnull @.str.4) #9
  %1419 = load i32, ptr %1400, align 4, !tbaa !5
  %1420 = call ptr @strerror(i32 noundef %1419) #9
  %1421 = load i32, ptr %1400, align 4, !tbaa !5
  %1422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef nonnull %.str.5.sink1203, i32 noundef %1413, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %1416, ptr noundef %1418, ptr noundef %1420, i32 noundef %1421) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1423:                                             ; preds = %1394
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = add nsw i32 %1424, 1
  store i32 %1425, ptr @test_count, align 4, !tbaa !5
  %1426 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %1427 = icmp eq i32 %1426, -1
  br i1 %1427, label %1428, label %1452

1428:                                             ; preds = %1423
  %1429 = tail call ptr @__errno_location() #10
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = call i32 @s2n_print_stacktrace(ptr noundef %1431) #9
  %1433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1434 = trunc nuw i8 %1433 to i1
  br i1 %1434, label %1435, label %1439

1435:                                             ; preds = %1428
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = call i32 @fileno(ptr noundef %1436) #9
  %1438 = call i32 @isatty(i32 noundef %1437) #9
  %.not649 = icmp eq i32 %1438, 0
  br i1 %.not649, label %1439, label %1440

1439:                                             ; preds = %1435, %1428
  br label %1440

1440:                                             ; preds = %1435, %1439
  %.str.5.sink1214 = phi ptr [ @.str.5, %1439 ], [ @.str.2, %1435 ]
  store i32 %1430, ptr %1429, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror(i32 noundef %1444, ptr noundef nonnull @.str.4) #9
  %1446 = load i32, ptr %1443, align 4, !tbaa !5
  %1447 = call ptr @s2n_strerror_debug(i32 noundef %1446, ptr noundef nonnull @.str.4) #9
  %1448 = load i32, ptr %1429, align 4, !tbaa !5
  %1449 = call ptr @strerror(i32 noundef %1448) #9
  %1450 = load i32, ptr %1429, align 4, !tbaa !5
  %1451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef nonnull %.str.5.sink1214, i32 noundef %1442, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %1445, ptr noundef %1447, ptr noundef %1449, i32 noundef %1450) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1452:                                             ; preds = %1423
  %1453 = load i32, ptr @test_count, align 4, !tbaa !5
  %1454 = add nsw i32 %1453, 1
  store i32 %1454, ptr @test_count, align 4, !tbaa !5
  %1455 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 2) #9
  br i1 %1455, label %1456, label %1482

1456:                                             ; preds = %1452
  %1457 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 2) #9
  br i1 %1457, label %1458, label %1482

1458:                                             ; preds = %1456
  %1459 = tail call ptr @__errno_location() #10
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = call i32 @s2n_print_stacktrace(ptr noundef %1461) #9
  %1463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1464 = trunc nuw i8 %1463 to i1
  br i1 %1464, label %1465, label %1469

1465:                                             ; preds = %1458
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = call i32 @fileno(ptr noundef %1466) #9
  %1468 = call i32 @isatty(i32 noundef %1467) #9
  %.not648 = icmp eq i32 %1468, 0
  br i1 %.not648, label %1469, label %1470

1469:                                             ; preds = %1465, %1458
  br label %1470

1470:                                             ; preds = %1465, %1469
  %.str.5.sink1225 = phi ptr [ @.str.5, %1469 ], [ @.str.2, %1465 ]
  store i32 %1460, ptr %1459, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = load i32, ptr @test_count, align 4, !tbaa !5
  %1473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @s2n_strerror(i32 noundef %1474, ptr noundef nonnull @.str.4) #9
  %1476 = load i32, ptr %1473, align 4, !tbaa !5
  %1477 = call ptr @s2n_strerror_debug(i32 noundef %1476, ptr noundef nonnull @.str.4) #9
  %1478 = load i32, ptr %1459, align 4, !tbaa !5
  %1479 = call ptr @strerror(i32 noundef %1478) #9
  %1480 = load i32, ptr %1459, align 4, !tbaa !5
  %1481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1471, ptr noundef nonnull %.str.5.sink1225, i32 noundef %1472, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %1475, ptr noundef %1477, ptr noundef %1479, i32 noundef %1480) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1482:                                             ; preds = %1452, %1456
  %1483 = load i32, ptr @test_count, align 4, !tbaa !5
  %1484 = add nsw i32 %1483, 1
  store i32 %1484, ptr @test_count, align 4, !tbaa !5
  %1485 = call i32 @validate_chosen_psk(ptr noundef nonnull %200, ptr noundef nonnull @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %1486 = call zeroext i1 @s2n_result_is_ok(i32 %1485)
  br i1 %1486, label %1511, label %1487

1487:                                             ; preds = %1482
  %1488 = tail call ptr @__errno_location() #10
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = call i32 @s2n_print_stacktrace(ptr noundef %1490) #9
  %1492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1493 = trunc nuw i8 %1492 to i1
  br i1 %1493, label %1494, label %1498

1494:                                             ; preds = %1487
  %1495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1496 = call i32 @fileno(ptr noundef %1495) #9
  %1497 = call i32 @isatty(i32 noundef %1496) #9
  %.not538 = icmp eq i32 %1497, 0
  br i1 %.not538, label %1498, label %1499

1498:                                             ; preds = %1494, %1487
  br label %1499

1499:                                             ; preds = %1494, %1498
  %.str.5.sink1236 = phi ptr [ @.str.5, %1498 ], [ @.str.2, %1494 ]
  store i32 %1489, ptr %1488, align 4, !tbaa !5
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = load i32, ptr @test_count, align 4, !tbaa !5
  %1502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call ptr @s2n_strerror(i32 noundef %1503, ptr noundef nonnull @.str.4) #9
  %1505 = load i32, ptr %1502, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror_debug(i32 noundef %1505, ptr noundef nonnull @.str.4) #9
  %1507 = load i32, ptr %1488, align 4, !tbaa !5
  %1508 = call ptr @strerror(i32 noundef %1507) #9
  %1509 = load i32, ptr %1488, align 4, !tbaa !5
  %1510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1500, ptr noundef nonnull %.str.5.sink1236, i32 noundef %1501, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %1504, ptr noundef %1506, ptr noundef %1508, i32 noundef %1509) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1511:                                             ; preds = %1482
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = add nsw i32 %1512, 1
  store i32 %1513, ptr @test_count, align 4, !tbaa !5
  %1514 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %1515 = icmp eq i32 %1514, -1
  br i1 %1515, label %1516, label %1540

1516:                                             ; preds = %1511
  %1517 = tail call ptr @__errno_location() #10
  %1518 = load i32, ptr %1517, align 4, !tbaa !5
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = call i32 @s2n_print_stacktrace(ptr noundef %1519) #9
  %1521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1522 = trunc nuw i8 %1521 to i1
  br i1 %1522, label %1523, label %1527

1523:                                             ; preds = %1516
  %1524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1525 = call i32 @fileno(ptr noundef %1524) #9
  %1526 = call i32 @isatty(i32 noundef %1525) #9
  %.not647 = icmp eq i32 %1526, 0
  br i1 %.not647, label %1527, label %1528

1527:                                             ; preds = %1523, %1516
  br label %1528

1528:                                             ; preds = %1523, %1527
  %.str.5.sink1247 = phi ptr [ @.str.5, %1527 ], [ @.str.2, %1523 ]
  store i32 %1518, ptr %1517, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror(i32 noundef %1532, ptr noundef nonnull @.str.4) #9
  %1534 = load i32, ptr %1531, align 4, !tbaa !5
  %1535 = call ptr @s2n_strerror_debug(i32 noundef %1534, ptr noundef nonnull @.str.4) #9
  %1536 = load i32, ptr %1517, align 4, !tbaa !5
  %1537 = call ptr @strerror(i32 noundef %1536) #9
  %1538 = load i32, ptr %1517, align 4, !tbaa !5
  %1539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1529, ptr noundef nonnull %.str.5.sink1247, i32 noundef %1530, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %1533, ptr noundef %1535, ptr noundef %1537, i32 noundef %1538) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1540:                                             ; preds = %1511
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = add nsw i32 %1541, 1
  store i32 %1542, ptr @test_count, align 4, !tbaa !5
  %1543 = call i32 @s2n_connection_wipe(ptr noundef nonnull %171) #9
  %1544 = icmp eq i32 %1543, -1
  br i1 %1544, label %1545, label %1569

1545:                                             ; preds = %1540
  %1546 = tail call ptr @__errno_location() #10
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1549 = call i32 @s2n_print_stacktrace(ptr noundef %1548) #9
  %1550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1551 = trunc nuw i8 %1550 to i1
  br i1 %1551, label %1552, label %1556

1552:                                             ; preds = %1545
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = call i32 @fileno(ptr noundef %1553) #9
  %1555 = call i32 @isatty(i32 noundef %1554) #9
  %.not646 = icmp eq i32 %1555, 0
  br i1 %.not646, label %1556, label %1557

1556:                                             ; preds = %1552, %1545
  br label %1557

1557:                                             ; preds = %1552, %1556
  %.str.5.sink1258 = phi ptr [ @.str.5, %1556 ], [ @.str.2, %1552 ]
  store i32 %1547, ptr %1546, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = load i32, ptr @test_count, align 4, !tbaa !5
  %1560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call ptr @s2n_strerror(i32 noundef %1561, ptr noundef nonnull @.str.4) #9
  %1563 = load i32, ptr %1560, align 4, !tbaa !5
  %1564 = call ptr @s2n_strerror_debug(i32 noundef %1563, ptr noundef nonnull @.str.4) #9
  %1565 = load i32, ptr %1546, align 4, !tbaa !5
  %1566 = call ptr @strerror(i32 noundef %1565) #9
  %1567 = load i32, ptr %1546, align 4, !tbaa !5
  %1568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1558, ptr noundef nonnull %.str.5.sink1258, i32 noundef %1559, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %1562, ptr noundef %1564, ptr noundef %1566, i32 noundef %1567) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1569:                                             ; preds = %1540
  %1570 = load i32, ptr @test_count, align 4, !tbaa !5
  %1571 = add nsw i32 %1570, 1
  store i32 %1571, ptr @test_count, align 4, !tbaa !5
  %1572 = call i32 @s2n_connection_wipe(ptr noundef nonnull %200) #9
  %1573 = icmp eq i32 %1572, -1
  br i1 %1573, label %1574, label %1598

1574:                                             ; preds = %1569
  %1575 = tail call ptr @__errno_location() #10
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @s2n_print_stacktrace(ptr noundef %1577) #9
  %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 = %1574
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = call i32 @fileno(ptr noundef %1582) #9
  %1584 = call i32 @isatty(i32 noundef %1583) #9
  %.not645 = icmp eq i32 %1584, 0
  br i1 %.not645, label %1585, label %1586

1585:                                             ; preds = %1581, %1574
  br label %1586

1586:                                             ; preds = %1581, %1585
  %.str.5.sink1269 = phi ptr [ @.str.5, %1585 ], [ @.str.2, %1581 ]
  store i32 %1576, ptr %1575, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %1589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @s2n_strerror(i32 noundef %1590, ptr noundef nonnull @.str.4) #9
  %1592 = load i32, ptr %1589, align 4, !tbaa !5
  %1593 = call ptr @s2n_strerror_debug(i32 noundef %1592, ptr noundef nonnull @.str.4) #9
  %1594 = load i32, ptr %1575, align 4, !tbaa !5
  %1595 = call ptr @strerror(i32 noundef %1594) #9
  %1596 = load i32, ptr %1575, align 4, !tbaa !5
  %1597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1587, ptr noundef nonnull %.str.5.sink1269, i32 noundef %1588, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef %1591, ptr noundef %1593, ptr noundef %1595, i32 noundef %1596) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1598:                                             ; preds = %1569
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = add nsw i32 %1599, 1
  store i32 %1600, ptr @test_count, align 4, !tbaa !5
  %1601 = call i32 @s2n_connection_set_config(ptr noundef nonnull %171, ptr noundef nonnull %316) #9
  %1602 = icmp eq i32 %1601, -1
  br i1 %1602, label %1603, label %1627

1603:                                             ; preds = %1598
  %1604 = tail call ptr @__errno_location() #10
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = call i32 @s2n_print_stacktrace(ptr noundef %1606) #9
  %1608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1609 = trunc nuw i8 %1608 to i1
  br i1 %1609, label %1610, label %1614

1610:                                             ; preds = %1603
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = call i32 @fileno(ptr noundef %1611) #9
  %1613 = call i32 @isatty(i32 noundef %1612) #9
  %.not644 = icmp eq i32 %1613, 0
  br i1 %.not644, label %1614, label %1615

1614:                                             ; preds = %1610, %1603
  br label %1615

1615:                                             ; preds = %1610, %1614
  %.str.5.sink1280 = phi ptr [ @.str.5, %1614 ], [ @.str.2, %1610 ]
  store i32 %1605, ptr %1604, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1619, ptr noundef nonnull @.str.4) #9
  %1621 = load i32, ptr %1618, align 4, !tbaa !5
  %1622 = call ptr @s2n_strerror_debug(i32 noundef %1621, ptr noundef nonnull @.str.4) #9
  %1623 = load i32, ptr %1604, align 4, !tbaa !5
  %1624 = call ptr @strerror(i32 noundef %1623) #9
  %1625 = load i32, ptr %1604, align 4, !tbaa !5
  %1626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef nonnull %.str.5.sink1280, i32 noundef %1617, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %1620, ptr noundef %1622, ptr noundef %1624, i32 noundef %1625) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1627:                                             ; preds = %1598
  %1628 = load i32, ptr @test_count, align 4, !tbaa !5
  %1629 = add nsw i32 %1628, 1
  store i32 %1629, ptr @test_count, align 4, !tbaa !5
  %1630 = call i32 @s2n_connection_set_config(ptr noundef nonnull %200, ptr noundef nonnull %316) #9
  %1631 = icmp eq i32 %1630, -1
  br i1 %1631, label %1632, label %1656

1632:                                             ; preds = %1627
  %1633 = tail call ptr @__errno_location() #10
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1636 = call i32 @s2n_print_stacktrace(ptr noundef %1635) #9
  %1637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1638 = trunc nuw i8 %1637 to i1
  br i1 %1638, label %1639, label %1643

1639:                                             ; preds = %1632
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = call i32 @fileno(ptr noundef %1640) #9
  %1642 = call i32 @isatty(i32 noundef %1641) #9
  %.not643 = icmp eq i32 %1642, 0
  br i1 %.not643, label %1643, label %1644

1643:                                             ; preds = %1639, %1632
  br label %1644

1644:                                             ; preds = %1639, %1643
  %.str.5.sink1291 = phi ptr [ @.str.5, %1643 ], [ @.str.2, %1639 ]
  store i32 %1634, ptr %1633, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef nonnull @.str.4) #9
  %1650 = load i32, ptr %1647, align 4, !tbaa !5
  %1651 = call ptr @s2n_strerror_debug(i32 noundef %1650, ptr noundef nonnull @.str.4) #9
  %1652 = load i32, ptr %1633, align 4, !tbaa !5
  %1653 = call ptr @strerror(i32 noundef %1652) #9
  %1654 = load i32, ptr %1633, align 4, !tbaa !5
  %1655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef nonnull %.str.5.sink1291, i32 noundef %1646, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %1649, ptr noundef %1651, ptr noundef %1653, i32 noundef %1654) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1656:                                             ; preds = %1627
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = add nsw i32 %1657, 1
  store i32 %1658, ptr @test_count, align 4, !tbaa !5
  %1659 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %171, ptr noundef nonnull %4) #9
  %1660 = icmp eq i32 %1659, -1
  br i1 %1660, label %1661, label %1685

1661:                                             ; preds = %1656
  %1662 = tail call ptr @__errno_location() #10
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = call i32 @s2n_print_stacktrace(ptr noundef %1664) #9
  %1666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1667 = trunc nuw i8 %1666 to i1
  br i1 %1667, label %1668, label %1672

1668:                                             ; preds = %1661
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @fileno(ptr noundef %1669) #9
  %1671 = call i32 @isatty(i32 noundef %1670) #9
  %.not642 = icmp eq i32 %1671, 0
  br i1 %.not642, label %1672, label %1673

1672:                                             ; preds = %1668, %1661
  br label %1673

1673:                                             ; preds = %1668, %1672
  %.str.5.sink1302 = phi ptr [ @.str.5, %1672 ], [ @.str.2, %1668 ]
  store i32 %1663, ptr %1662, 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 nonnull @.str.4) #9
  %1679 = load i32, ptr %1676, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror_debug(i32 noundef %1679, ptr noundef nonnull @.str.4) #9
  %1681 = load i32, ptr %1662, align 4, !tbaa !5
  %1682 = call ptr @strerror(i32 noundef %1681) #9
  %1683 = load i32, ptr %1662, align 4, !tbaa !5
  %1684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef nonnull %.str.5.sink1302, i32 noundef %1675, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %1678, ptr noundef %1680, ptr noundef %1682, i32 noundef %1683) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1685:                                             ; preds = %1656
  %1686 = load i32, ptr @test_count, align 4, !tbaa !5
  %1687 = add nsw i32 %1686, 1
  store i32 %1687, ptr @test_count, align 4, !tbaa !5
  %1688 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %200, ptr noundef nonnull %4) #9
  %1689 = icmp eq i32 %1688, -1
  br i1 %1689, label %1690, label %1714

1690:                                             ; preds = %1685
  %1691 = tail call ptr @__errno_location() #10
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1694 = call i32 @s2n_print_stacktrace(ptr noundef %1693) #9
  %1695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1696 = trunc nuw i8 %1695 to i1
  br i1 %1696, label %1697, label %1701

1697:                                             ; preds = %1690
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = call i32 @fileno(ptr noundef %1698) #9
  %1700 = call i32 @isatty(i32 noundef %1699) #9
  %.not641 = icmp eq i32 %1700, 0
  br i1 %.not641, label %1701, label %1702

1701:                                             ; preds = %1697, %1690
  br label %1702

1702:                                             ; preds = %1697, %1701
  %.str.5.sink1313 = phi ptr [ @.str.5, %1701 ], [ @.str.2, %1697 ]
  store i32 %1692, ptr %1691, align 4, !tbaa !5
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = load i32, ptr @test_count, align 4, !tbaa !5
  %1705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call ptr @s2n_strerror(i32 noundef %1706, ptr noundef nonnull @.str.4) #9
  %1708 = load i32, ptr %1705, align 4, !tbaa !5
  %1709 = call ptr @s2n_strerror_debug(i32 noundef %1708, ptr noundef nonnull @.str.4) #9
  %1710 = load i32, ptr %1691, align 4, !tbaa !5
  %1711 = call ptr @strerror(i32 noundef %1710) #9
  %1712 = load i32, ptr %1691, align 4, !tbaa !5
  %1713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1703, ptr noundef nonnull %.str.5.sink1313, i32 noundef %1704, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %1707, ptr noundef %1709, ptr noundef %1711, i32 noundef %1712) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1714:                                             ; preds = %1685
  %1715 = load i32, ptr @test_count, align 4, !tbaa !5
  %1716 = add nsw i32 %1715, 1
  store i32 %1716, ptr @test_count, align 4, !tbaa !5
  %1717 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %171, i32 noundef 1) #9
  %1718 = icmp eq i32 %1717, -1
  br i1 %1718, label %1719, label %1743

1719:                                             ; preds = %1714
  %1720 = tail call ptr @__errno_location() #10
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @s2n_print_stacktrace(ptr noundef %1722) #9
  %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 = %1719
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = call i32 @fileno(ptr noundef %1727) #9
  %1729 = call i32 @isatty(i32 noundef %1728) #9
  %.not640 = icmp eq i32 %1729, 0
  br i1 %.not640, label %1730, label %1731

1730:                                             ; preds = %1726, %1719
  br label %1731

1731:                                             ; preds = %1726, %1730
  %.str.5.sink1324 = phi ptr [ @.str.5, %1730 ], [ @.str.2, %1726 ]
  store i32 %1721, ptr %1720, align 4, !tbaa !5
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = load i32, ptr @test_count, align 4, !tbaa !5
  %1734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call ptr @s2n_strerror(i32 noundef %1735, ptr noundef nonnull @.str.4) #9
  %1737 = load i32, ptr %1734, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror_debug(i32 noundef %1737, ptr noundef nonnull @.str.4) #9
  %1739 = load i32, ptr %1720, align 4, !tbaa !5
  %1740 = call ptr @strerror(i32 noundef %1739) #9
  %1741 = load i32, ptr %1720, align 4, !tbaa !5
  %1742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1732, ptr noundef nonnull %.str.5.sink1324, i32 noundef %1733, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %1736, ptr noundef %1738, ptr noundef %1740, i32 noundef %1741) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1743:                                             ; preds = %1714
  %1744 = load i32, ptr @test_count, align 4, !tbaa !5
  %1745 = add nsw i32 %1744, 1
  store i32 %1745, ptr @test_count, align 4, !tbaa !5
  %1746 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %200, i32 noundef 1) #9
  %1747 = icmp eq i32 %1746, -1
  br i1 %1747, label %1748, label %1772

1748:                                             ; preds = %1743
  %1749 = tail call ptr @__errno_location() #10
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = call i32 @s2n_print_stacktrace(ptr noundef %1751) #9
  %1753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1754 = trunc nuw i8 %1753 to i1
  br i1 %1754, label %1755, label %1759

1755:                                             ; preds = %1748
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @fileno(ptr noundef %1756) #9
  %1758 = call i32 @isatty(i32 noundef %1757) #9
  %.not639 = icmp eq i32 %1758, 0
  br i1 %.not639, label %1759, label %1760

1759:                                             ; preds = %1755, %1748
  br label %1760

1760:                                             ; preds = %1755, %1759
  %.str.5.sink1335 = phi ptr [ @.str.5, %1759 ], [ @.str.2, %1755 ]
  store i32 %1750, ptr %1749, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror(i32 noundef %1764, ptr noundef nonnull @.str.4) #9
  %1766 = load i32, ptr %1763, align 4, !tbaa !5
  %1767 = call ptr @s2n_strerror_debug(i32 noundef %1766, ptr noundef nonnull @.str.4) #9
  %1768 = load i32, ptr %1749, align 4, !tbaa !5
  %1769 = call ptr @strerror(i32 noundef %1768) #9
  %1770 = load i32, ptr %1749, align 4, !tbaa !5
  %1771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1761, ptr noundef nonnull %.str.5.sink1335, i32 noundef %1762, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %1765, ptr noundef %1767, ptr noundef %1769, i32 noundef %1770) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1772:                                             ; preds = %1743
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = add nsw i32 %1773, 1
  store i32 %1774, ptr @test_count, align 4, !tbaa !5
  %1775 = call i32 @setup_client_psks(ptr noundef nonnull %171)
  %1776 = call zeroext i1 @s2n_result_is_ok(i32 %1775)
  br i1 %1776, label %1801, label %1777

1777:                                             ; preds = %1772
  %1778 = tail call ptr @__errno_location() #10
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @s2n_print_stacktrace(ptr noundef %1780) #9
  %1782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1783 = trunc nuw i8 %1782 to i1
  br i1 %1783, label %1784, label %1788

1784:                                             ; preds = %1777
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @fileno(ptr noundef %1785) #9
  %1787 = call i32 @isatty(i32 noundef %1786) #9
  %.not539 = icmp eq i32 %1787, 0
  br i1 %.not539, label %1788, label %1789

1788:                                             ; preds = %1784, %1777
  br label %1789

1789:                                             ; preds = %1784, %1788
  %.str.5.sink1346 = phi ptr [ @.str.5, %1788 ], [ @.str.2, %1784 ]
  store i32 %1779, ptr %1778, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror(i32 noundef %1793, ptr noundef nonnull @.str.4) #9
  %1795 = load i32, ptr %1792, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror_debug(i32 noundef %1795, ptr noundef nonnull @.str.4) #9
  %1797 = load i32, ptr %1778, align 4, !tbaa !5
  %1798 = call ptr @strerror(i32 noundef %1797) #9
  %1799 = load i32, ptr %1778, align 4, !tbaa !5
  %1800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1790, ptr noundef nonnull %.str.5.sink1346, i32 noundef %1791, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %1794, ptr noundef %1796, ptr noundef %1798, i32 noundef %1799) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1801:                                             ; preds = %1772
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = add nsw i32 %1802, 1
  store i32 %1803, ptr @test_count, align 4, !tbaa !5
  %1804 = call i32 @setup_server_psks(ptr noundef nonnull %200)
  %1805 = call zeroext i1 @s2n_result_is_ok(i32 %1804)
  br i1 %1805, label %1830, label %1806

1806:                                             ; preds = %1801
  %1807 = tail call ptr @__errno_location() #10
  %1808 = load i32, ptr %1807, align 4, !tbaa !5
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = call i32 @s2n_print_stacktrace(ptr noundef %1809) #9
  %1811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1812 = trunc nuw i8 %1811 to i1
  br i1 %1812, label %1813, label %1817

1813:                                             ; preds = %1806
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = call i32 @fileno(ptr noundef %1814) #9
  %1816 = call i32 @isatty(i32 noundef %1815) #9
  %.not540 = icmp eq i32 %1816, 0
  br i1 %.not540, label %1817, label %1818

1817:                                             ; preds = %1813, %1806
  br label %1818

1818:                                             ; preds = %1813, %1817
  %.str.5.sink1357 = phi ptr [ @.str.5, %1817 ], [ @.str.2, %1813 ]
  store i32 %1808, ptr %1807, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = load i32, ptr @test_count, align 4, !tbaa !5
  %1821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror(i32 noundef %1822, ptr noundef nonnull @.str.4) #9
  %1824 = load i32, ptr %1821, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror_debug(i32 noundef %1824, ptr noundef nonnull @.str.4) #9
  %1826 = load i32, ptr %1807, align 4, !tbaa !5
  %1827 = call ptr @strerror(i32 noundef %1826) #9
  %1828 = load i32, ptr %1807, align 4, !tbaa !5
  %1829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1819, ptr noundef nonnull %.str.5.sink1357, i32 noundef %1820, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %1823, ptr noundef %1825, ptr noundef %1827, i32 noundef %1828) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1830:                                             ; preds = %1801
  %1831 = load i32, ptr @test_count, align 4, !tbaa !5
  %1832 = add nsw i32 %1831, 1
  store i32 %1832, ptr @test_count, align 4, !tbaa !5
  %1833 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %1834 = icmp eq i32 %1833, -1
  br i1 %1834, label %1835, label %1859

1835:                                             ; preds = %1830
  %1836 = tail call ptr @__errno_location() #10
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @s2n_print_stacktrace(ptr noundef %1838) #9
  %1840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1841 = trunc nuw i8 %1840 to i1
  br i1 %1841, label %1842, label %1846

1842:                                             ; preds = %1835
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = call i32 @fileno(ptr noundef %1843) #9
  %1845 = call i32 @isatty(i32 noundef %1844) #9
  %.not638 = icmp eq i32 %1845, 0
  br i1 %.not638, label %1846, label %1847

1846:                                             ; preds = %1842, %1835
  br label %1847

1847:                                             ; preds = %1842, %1846
  %.str.5.sink1368 = phi ptr [ @.str.5, %1846 ], [ @.str.2, %1842 ]
  store i32 %1837, ptr %1836, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = load i32, ptr @test_count, align 4, !tbaa !5
  %1850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1851 = load i32, ptr %1850, align 4, !tbaa !5
  %1852 = call ptr @s2n_strerror(i32 noundef %1851, ptr noundef nonnull @.str.4) #9
  %1853 = load i32, ptr %1850, align 4, !tbaa !5
  %1854 = call ptr @s2n_strerror_debug(i32 noundef %1853, ptr noundef nonnull @.str.4) #9
  %1855 = load i32, ptr %1836, align 4, !tbaa !5
  %1856 = call ptr @strerror(i32 noundef %1855) #9
  %1857 = load i32, ptr %1836, align 4, !tbaa !5
  %1858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1848, ptr noundef nonnull %.str.5.sink1368, i32 noundef %1849, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %1852, ptr noundef %1854, ptr noundef %1856, i32 noundef %1857) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1859:                                             ; preds = %1830
  %1860 = load i32, ptr @test_count, align 4, !tbaa !5
  %1861 = add nsw i32 %1860, 1
  store i32 %1861, ptr @test_count, align 4, !tbaa !5
  %1862 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 4) #9
  br i1 %1862, label %1863, label %1889

1863:                                             ; preds = %1859
  %1864 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 4) #9
  br i1 %1864, label %1865, label %1889

1865:                                             ; preds = %1863
  %1866 = tail call ptr @__errno_location() #10
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = call i32 @s2n_print_stacktrace(ptr noundef %1868) #9
  %1870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1871 = trunc nuw i8 %1870 to i1
  br i1 %1871, label %1872, label %1876

1872:                                             ; preds = %1865
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @fileno(ptr noundef %1873) #9
  %1875 = call i32 @isatty(i32 noundef %1874) #9
  %.not637 = icmp eq i32 %1875, 0
  br i1 %.not637, label %1876, label %1877

1876:                                             ; preds = %1872, %1865
  br label %1877

1877:                                             ; preds = %1872, %1876
  %.str.5.sink1379 = phi ptr [ @.str.5, %1876 ], [ @.str.2, %1872 ]
  store i32 %1867, ptr %1866, align 4, !tbaa !5
  %1878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1879 = load i32, ptr @test_count, align 4, !tbaa !5
  %1880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror(i32 noundef %1881, ptr noundef nonnull @.str.4) #9
  %1883 = load i32, ptr %1880, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror_debug(i32 noundef %1883, ptr noundef nonnull @.str.4) #9
  %1885 = load i32, ptr %1866, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #9
  %1887 = load i32, ptr %1866, align 4, !tbaa !5
  %1888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1878, ptr noundef nonnull %.str.5.sink1379, i32 noundef %1879, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %1882, ptr noundef %1884, ptr noundef %1886, i32 noundef %1887) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1889:                                             ; preds = %1859, %1863
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = add nsw i32 %1890, 1
  store i32 %1891, ptr @test_count, align 4, !tbaa !5
  %1892 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 2) #9
  br i1 %1892, label %1893, label %1919

1893:                                             ; preds = %1889
  %1894 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 2) #9
  br i1 %1894, label %1895, label %1919

1895:                                             ; preds = %1893
  %1896 = tail call ptr @__errno_location() #10
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @s2n_print_stacktrace(ptr noundef %1898) #9
  %1900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1901 = trunc nuw i8 %1900 to i1
  br i1 %1901, label %1902, label %1906

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

1906:                                             ; preds = %1902, %1895
  br label %1907

1907:                                             ; preds = %1902, %1906
  %.str.5.sink1390 = phi ptr [ @.str.5, %1906 ], [ @.str.2, %1902 ]
  store i32 %1897, ptr %1896, align 4, !tbaa !5
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = load i32, ptr @test_count, align 4, !tbaa !5
  %1910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call ptr @s2n_strerror(i32 noundef %1911, ptr noundef nonnull @.str.4) #9
  %1913 = load i32, ptr %1910, align 4, !tbaa !5
  %1914 = call ptr @s2n_strerror_debug(i32 noundef %1913, ptr noundef nonnull @.str.4) #9
  %1915 = load i32, ptr %1896, align 4, !tbaa !5
  %1916 = call ptr @strerror(i32 noundef %1915) #9
  %1917 = load i32, ptr %1896, align 4, !tbaa !5
  %1918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1908, ptr noundef nonnull %.str.5.sink1390, i32 noundef %1909, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %1912, ptr noundef %1914, ptr noundef %1916, i32 noundef %1917) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1919:                                             ; preds = %1889, %1893
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = add nsw i32 %1920, 1
  store i32 %1921, ptr @test_count, align 4, !tbaa !5
  %1922 = call i32 @validate_chosen_psk(ptr noundef nonnull %200, ptr noundef nonnull @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %1923 = call zeroext i1 @s2n_result_is_ok(i32 %1922)
  br i1 %1923, label %1948, label %1924

1924:                                             ; preds = %1919
  %1925 = tail call ptr @__errno_location() #10
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @s2n_print_stacktrace(ptr noundef %1927) #9
  %1929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1930 = trunc nuw i8 %1929 to i1
  br i1 %1930, label %1931, label %1935

1931:                                             ; preds = %1924
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = call i32 @fileno(ptr noundef %1932) #9
  %1934 = call i32 @isatty(i32 noundef %1933) #9
  %.not541 = icmp eq i32 %1934, 0
  br i1 %.not541, label %1935, label %1936

1935:                                             ; preds = %1931, %1924
  br label %1936

1936:                                             ; preds = %1931, %1935
  %.str.5.sink1401 = phi ptr [ @.str.5, %1935 ], [ @.str.2, %1931 ]
  store i32 %1926, ptr %1925, align 4, !tbaa !5
  %1937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1938 = load i32, ptr @test_count, align 4, !tbaa !5
  %1939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call ptr @s2n_strerror(i32 noundef %1940, ptr noundef nonnull @.str.4) #9
  %1942 = load i32, ptr %1939, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror_debug(i32 noundef %1942, ptr noundef nonnull @.str.4) #9
  %1944 = load i32, ptr %1925, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #9
  %1946 = load i32, ptr %1925, align 4, !tbaa !5
  %1947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1937, ptr noundef nonnull %.str.5.sink1401, i32 noundef %1938, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %1941, ptr noundef %1943, ptr noundef %1945, i32 noundef %1946) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1948:                                             ; preds = %1919
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = add nsw i32 %1949, 1
  store i32 %1950, ptr @test_count, align 4, !tbaa !5
  %1951 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %1952 = icmp eq i32 %1951, -1
  br i1 %1952, label %1953, label %1977

1953:                                             ; preds = %1948
  %1954 = tail call ptr @__errno_location() #10
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @s2n_print_stacktrace(ptr noundef %1956) #9
  %1958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1959 = trunc nuw i8 %1958 to i1
  br i1 %1959, label %1960, label %1964

1960:                                             ; preds = %1953
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = call i32 @fileno(ptr noundef %1961) #9
  %1963 = call i32 @isatty(i32 noundef %1962) #9
  %.not635 = icmp eq i32 %1963, 0
  br i1 %.not635, label %1964, label %1965

1964:                                             ; preds = %1960, %1953
  br label %1965

1965:                                             ; preds = %1960, %1964
  %.str.5.sink1412 = phi ptr [ @.str.5, %1964 ], [ @.str.2, %1960 ]
  store i32 %1955, ptr %1954, align 4, !tbaa !5
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = load i32, ptr @test_count, align 4, !tbaa !5
  %1968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror(i32 noundef %1969, ptr noundef nonnull @.str.4) #9
  %1971 = load i32, ptr %1968, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror_debug(i32 noundef %1971, ptr noundef nonnull @.str.4) #9
  %1973 = load i32, ptr %1954, align 4, !tbaa !5
  %1974 = call ptr @strerror(i32 noundef %1973) #9
  %1975 = load i32, ptr %1954, align 4, !tbaa !5
  %1976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1966, ptr noundef nonnull %.str.5.sink1412, i32 noundef %1967, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %1970, ptr noundef %1972, ptr noundef %1974, i32 noundef %1975) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1977:                                             ; preds = %1948
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = add nsw i32 %1978, 1
  store i32 %1979, ptr @test_count, align 4, !tbaa !5
  %1980 = call i32 @s2n_connection_wipe(ptr noundef nonnull %171) #9
  %1981 = icmp eq i32 %1980, -1
  br i1 %1981, label %1982, label %2006

1982:                                             ; preds = %1977
  %1983 = tail call ptr @__errno_location() #10
  %1984 = load i32, ptr %1983, align 4, !tbaa !5
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @s2n_print_stacktrace(ptr noundef %1985) #9
  %1987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1988 = trunc nuw i8 %1987 to i1
  br i1 %1988, label %1989, label %1993

1989:                                             ; preds = %1982
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = call i32 @fileno(ptr noundef %1990) #9
  %1992 = call i32 @isatty(i32 noundef %1991) #9
  %.not634 = icmp eq i32 %1992, 0
  br i1 %.not634, label %1993, label %1994

1993:                                             ; preds = %1989, %1982
  br label %1994

1994:                                             ; preds = %1989, %1993
  %.str.5.sink1423 = phi ptr [ @.str.5, %1993 ], [ @.str.2, %1989 ]
  store i32 %1984, ptr %1983, align 4, !tbaa !5
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = load i32, ptr @test_count, align 4, !tbaa !5
  %1997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = call ptr @s2n_strerror(i32 noundef %1998, ptr noundef nonnull @.str.4) #9
  %2000 = load i32, ptr %1997, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror_debug(i32 noundef %2000, ptr noundef nonnull @.str.4) #9
  %2002 = load i32, ptr %1983, align 4, !tbaa !5
  %2003 = call ptr @strerror(i32 noundef %2002) #9
  %2004 = load i32, ptr %1983, align 4, !tbaa !5
  %2005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1995, ptr noundef nonnull %.str.5.sink1423, i32 noundef %1996, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %1999, ptr noundef %2001, ptr noundef %2003, i32 noundef %2004) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2006:                                             ; preds = %1977
  %2007 = load i32, ptr @test_count, align 4, !tbaa !5
  %2008 = add nsw i32 %2007, 1
  store i32 %2008, ptr @test_count, align 4, !tbaa !5
  %2009 = call i32 @s2n_connection_wipe(ptr noundef nonnull %200) #9
  %2010 = icmp eq i32 %2009, -1
  br i1 %2010, label %2011, label %2035

2011:                                             ; preds = %2006
  %2012 = tail call ptr @__errno_location() #10
  %2013 = load i32, ptr %2012, align 4, !tbaa !5
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = call i32 @s2n_print_stacktrace(ptr noundef %2014) #9
  %2016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2017 = trunc nuw i8 %2016 to i1
  br i1 %2017, label %2018, label %2022

2018:                                             ; preds = %2011
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = call i32 @fileno(ptr noundef %2019) #9
  %2021 = call i32 @isatty(i32 noundef %2020) #9
  %.not633 = icmp eq i32 %2021, 0
  br i1 %.not633, label %2022, label %2023

2022:                                             ; preds = %2018, %2011
  br label %2023

2023:                                             ; preds = %2018, %2022
  %.str.5.sink1434 = phi ptr [ @.str.5, %2022 ], [ @.str.2, %2018 ]
  store i32 %2013, ptr %2012, align 4, !tbaa !5
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = load i32, ptr @test_count, align 4, !tbaa !5
  %2026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call ptr @s2n_strerror(i32 noundef %2027, ptr noundef nonnull @.str.4) #9
  %2029 = load i32, ptr %2026, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror_debug(i32 noundef %2029, ptr noundef nonnull @.str.4) #9
  %2031 = load i32, ptr %2012, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #9
  %2033 = load i32, ptr %2012, align 4, !tbaa !5
  %2034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2024, ptr noundef nonnull %.str.5.sink1434, i32 noundef %2025, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2028, ptr noundef %2030, ptr noundef %2032, i32 noundef %2033) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2035:                                             ; preds = %2006
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = add nsw i32 %2036, 1
  store i32 %2037, ptr @test_count, align 4, !tbaa !5
  %2038 = call i32 @s2n_config_set_client_hello_cb(ptr noundef nonnull %229, ptr noundef nonnull @s2n_client_hello_no_op_cb, ptr noundef null) #9
  %2039 = icmp eq i32 %2038, -1
  br i1 %2039, label %2040, label %2064

2040:                                             ; preds = %2035
  %2041 = tail call ptr @__errno_location() #10
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = call i32 @s2n_print_stacktrace(ptr noundef %2043) #9
  %2045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2046 = trunc nuw i8 %2045 to i1
  br i1 %2046, label %2047, label %2051

2047:                                             ; preds = %2040
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = call i32 @fileno(ptr noundef %2048) #9
  %2050 = call i32 @isatty(i32 noundef %2049) #9
  %.not632 = icmp eq i32 %2050, 0
  br i1 %.not632, label %2051, label %2052

2051:                                             ; preds = %2047, %2040
  br label %2052

2052:                                             ; preds = %2047, %2051
  %.str.5.sink1445 = phi ptr [ @.str.5, %2051 ], [ @.str.2, %2047 ]
  store i32 %2042, ptr %2041, align 4, !tbaa !5
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror(i32 noundef %2056, ptr noundef nonnull @.str.4) #9
  %2058 = load i32, ptr %2055, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef nonnull @.str.4) #9
  %2060 = load i32, ptr %2041, align 4, !tbaa !5
  %2061 = call ptr @strerror(i32 noundef %2060) #9
  %2062 = load i32, ptr %2041, align 4, !tbaa !5
  %2063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2053, ptr noundef nonnull %.str.5.sink1445, i32 noundef %2054, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2057, ptr noundef %2059, ptr noundef %2061, i32 noundef %2062) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2064:                                             ; preds = %2035
  %2065 = load i32, ptr @test_count, align 4, !tbaa !5
  %2066 = add nsw i32 %2065, 1
  store i32 %2066, ptr @test_count, align 4, !tbaa !5
  %2067 = call i32 @s2n_config_set_client_hello_cb_mode(ptr noundef nonnull %229, i32 noundef 1) #9
  %2068 = icmp eq i32 %2067, -1
  br i1 %2068, label %2069, label %2093

2069:                                             ; preds = %2064
  %2070 = tail call ptr @__errno_location() #10
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = call i32 @s2n_print_stacktrace(ptr noundef %2072) #9
  %2074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2075 = trunc nuw i8 %2074 to i1
  br i1 %2075, label %2076, label %2080

2076:                                             ; preds = %2069
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @fileno(ptr noundef %2077) #9
  %2079 = call i32 @isatty(i32 noundef %2078) #9
  %.not631 = icmp eq i32 %2079, 0
  br i1 %.not631, label %2080, label %2081

2080:                                             ; preds = %2076, %2069
  br label %2081

2081:                                             ; preds = %2076, %2080
  %.str.5.sink1456 = phi ptr [ @.str.5, %2080 ], [ @.str.2, %2076 ]
  store i32 %2071, ptr %2070, align 4, !tbaa !5
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = load i32, ptr @test_count, align 4, !tbaa !5
  %2084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call ptr @s2n_strerror(i32 noundef %2085, ptr noundef nonnull @.str.4) #9
  %2087 = load i32, ptr %2084, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror_debug(i32 noundef %2087, ptr noundef nonnull @.str.4) #9
  %2089 = load i32, ptr %2070, align 4, !tbaa !5
  %2090 = call ptr @strerror(i32 noundef %2089) #9
  %2091 = load i32, ptr %2070, align 4, !tbaa !5
  %2092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2082, ptr noundef nonnull %.str.5.sink1456, i32 noundef %2083, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %2086, ptr noundef %2088, ptr noundef %2090, i32 noundef %2091) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2093:                                             ; preds = %2064
  %2094 = load i32, ptr @test_count, align 4, !tbaa !5
  %2095 = add nsw i32 %2094, 1
  store i32 %2095, ptr @test_count, align 4, !tbaa !5
  %2096 = call i32 @s2n_connection_set_config(ptr noundef nonnull %171, ptr noundef nonnull %229) #9
  %2097 = icmp eq i32 %2096, -1
  br i1 %2097, label %2098, label %2122

2098:                                             ; preds = %2093
  %2099 = tail call ptr @__errno_location() #10
  %2100 = load i32, ptr %2099, align 4, !tbaa !5
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = call i32 @s2n_print_stacktrace(ptr noundef %2101) #9
  %2103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2104 = trunc nuw i8 %2103 to i1
  br i1 %2104, label %2105, label %2109

2105:                                             ; preds = %2098
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = call i32 @fileno(ptr noundef %2106) #9
  %2108 = call i32 @isatty(i32 noundef %2107) #9
  %.not630 = icmp eq i32 %2108, 0
  br i1 %.not630, label %2109, label %2110

2109:                                             ; preds = %2105, %2098
  br label %2110

2110:                                             ; preds = %2105, %2109
  %.str.5.sink1467 = phi ptr [ @.str.5, %2109 ], [ @.str.2, %2105 ]
  store i32 %2100, ptr %2099, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = load i32, ptr @test_count, align 4, !tbaa !5
  %2113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = call ptr @s2n_strerror(i32 noundef %2114, ptr noundef nonnull @.str.4) #9
  %2116 = load i32, ptr %2113, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror_debug(i32 noundef %2116, ptr noundef nonnull @.str.4) #9
  %2118 = load i32, ptr %2099, align 4, !tbaa !5
  %2119 = call ptr @strerror(i32 noundef %2118) #9
  %2120 = load i32, ptr %2099, align 4, !tbaa !5
  %2121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2111, ptr noundef nonnull %.str.5.sink1467, i32 noundef %2112, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2115, ptr noundef %2117, ptr noundef %2119, i32 noundef %2120) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2122:                                             ; preds = %2093
  %2123 = load i32, ptr @test_count, align 4, !tbaa !5
  %2124 = add nsw i32 %2123, 1
  store i32 %2124, ptr @test_count, align 4, !tbaa !5
  %2125 = call i32 @s2n_connection_set_config(ptr noundef nonnull %200, ptr noundef nonnull %229) #9
  %2126 = icmp eq i32 %2125, -1
  br i1 %2126, label %2127, label %2151

2127:                                             ; preds = %2122
  %2128 = tail call ptr @__errno_location() #10
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = call i32 @s2n_print_stacktrace(ptr noundef %2130) #9
  %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 = %2127
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = call i32 @fileno(ptr noundef %2135) #9
  %2137 = call i32 @isatty(i32 noundef %2136) #9
  %.not629 = icmp eq i32 %2137, 0
  br i1 %.not629, label %2138, label %2139

2138:                                             ; preds = %2134, %2127
  br label %2139

2139:                                             ; preds = %2134, %2138
  %.str.5.sink1478 = phi ptr [ @.str.5, %2138 ], [ @.str.2, %2134 ]
  store i32 %2129, ptr %2128, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = load i32, ptr @test_count, align 4, !tbaa !5
  %2142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror(i32 noundef %2143, ptr noundef nonnull @.str.4) #9
  %2145 = load i32, ptr %2142, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror_debug(i32 noundef %2145, ptr noundef nonnull @.str.4) #9
  %2147 = load i32, ptr %2128, align 4, !tbaa !5
  %2148 = call ptr @strerror(i32 noundef %2147) #9
  %2149 = load i32, ptr %2128, align 4, !tbaa !5
  %2150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2140, ptr noundef nonnull %.str.5.sink1478, i32 noundef %2141, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2144, ptr noundef %2146, ptr noundef %2148, i32 noundef %2149) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2151:                                             ; preds = %2122
  %2152 = load i32, ptr @test_count, align 4, !tbaa !5
  %2153 = add nsw i32 %2152, 1
  store i32 %2153, ptr @test_count, align 4, !tbaa !5
  %2154 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %171, ptr noundef nonnull %4) #9
  %2155 = icmp eq i32 %2154, -1
  br i1 %2155, label %2156, label %2180

2156:                                             ; preds = %2151
  %2157 = tail call ptr @__errno_location() #10
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = call i32 @s2n_print_stacktrace(ptr noundef %2159) #9
  %2161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2162 = trunc nuw i8 %2161 to i1
  br i1 %2162, label %2163, label %2167

2163:                                             ; preds = %2156
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = call i32 @fileno(ptr noundef %2164) #9
  %2166 = call i32 @isatty(i32 noundef %2165) #9
  %.not628 = icmp eq i32 %2166, 0
  br i1 %.not628, label %2167, label %2168

2167:                                             ; preds = %2163, %2156
  br label %2168

2168:                                             ; preds = %2163, %2167
  %.str.5.sink1489 = phi ptr [ @.str.5, %2167 ], [ @.str.2, %2163 ]
  store i32 %2158, ptr %2157, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = load i32, ptr @test_count, align 4, !tbaa !5
  %2171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @s2n_strerror(i32 noundef %2172, ptr noundef nonnull @.str.4) #9
  %2174 = load i32, ptr %2171, align 4, !tbaa !5
  %2175 = call ptr @s2n_strerror_debug(i32 noundef %2174, ptr noundef nonnull @.str.4) #9
  %2176 = load i32, ptr %2157, align 4, !tbaa !5
  %2177 = call ptr @strerror(i32 noundef %2176) #9
  %2178 = load i32, ptr %2157, align 4, !tbaa !5
  %2179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2169, ptr noundef nonnull %.str.5.sink1489, i32 noundef %2170, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2173, ptr noundef %2175, ptr noundef %2177, i32 noundef %2178) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2180:                                             ; preds = %2151
  %2181 = load i32, ptr @test_count, align 4, !tbaa !5
  %2182 = add nsw i32 %2181, 1
  store i32 %2182, ptr @test_count, align 4, !tbaa !5
  %2183 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %200, ptr noundef nonnull %4) #9
  %2184 = icmp eq i32 %2183, -1
  br i1 %2184, label %2185, label %2209

2185:                                             ; preds = %2180
  %2186 = tail call ptr @__errno_location() #10
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  %2188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2189 = call i32 @s2n_print_stacktrace(ptr noundef %2188) #9
  %2190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2191 = trunc nuw i8 %2190 to i1
  br i1 %2191, label %2192, label %2196

2192:                                             ; preds = %2185
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = call i32 @fileno(ptr noundef %2193) #9
  %2195 = call i32 @isatty(i32 noundef %2194) #9
  %.not627 = icmp eq i32 %2195, 0
  br i1 %.not627, label %2196, label %2197

2196:                                             ; preds = %2192, %2185
  br label %2197

2197:                                             ; preds = %2192, %2196
  %.str.5.sink1500 = phi ptr [ @.str.5, %2196 ], [ @.str.2, %2192 ]
  store i32 %2187, ptr %2186, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror(i32 noundef %2201, ptr noundef nonnull @.str.4) #9
  %2203 = load i32, ptr %2200, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror_debug(i32 noundef %2203, ptr noundef nonnull @.str.4) #9
  %2205 = load i32, ptr %2186, align 4, !tbaa !5
  %2206 = call ptr @strerror(i32 noundef %2205) #9
  %2207 = load i32, ptr %2186, align 4, !tbaa !5
  %2208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2198, ptr noundef nonnull %.str.5.sink1500, i32 noundef %2199, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2202, ptr noundef %2204, ptr noundef %2206, i32 noundef %2207) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2209:                                             ; preds = %2180
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = add nsw i32 %2210, 1
  store i32 %2211, ptr @test_count, align 4, !tbaa !5
  %2212 = call i32 @setup_client_psks(ptr noundef nonnull %171)
  %2213 = call zeroext i1 @s2n_result_is_ok(i32 %2212)
  br i1 %2213, label %2238, label %2214

2214:                                             ; preds = %2209
  %2215 = tail call ptr @__errno_location() #10
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = call i32 @s2n_print_stacktrace(ptr noundef %2217) #9
  %2219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2220 = trunc nuw i8 %2219 to i1
  br i1 %2220, label %2221, label %2225

2221:                                             ; preds = %2214
  %2222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2223 = call i32 @fileno(ptr noundef %2222) #9
  %2224 = call i32 @isatty(i32 noundef %2223) #9
  %.not542 = icmp eq i32 %2224, 0
  br i1 %.not542, label %2225, label %2226

2225:                                             ; preds = %2221, %2214
  br label %2226

2226:                                             ; preds = %2221, %2225
  %.str.5.sink1511 = phi ptr [ @.str.5, %2225 ], [ @.str.2, %2221 ]
  store i32 %2216, ptr %2215, align 4, !tbaa !5
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = load i32, ptr @test_count, align 4, !tbaa !5
  %2229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call ptr @s2n_strerror(i32 noundef %2230, ptr noundef nonnull @.str.4) #9
  %2232 = load i32, ptr %2229, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror_debug(i32 noundef %2232, ptr noundef nonnull @.str.4) #9
  %2234 = load i32, ptr %2215, align 4, !tbaa !5
  %2235 = call ptr @strerror(i32 noundef %2234) #9
  %2236 = load i32, ptr %2215, align 4, !tbaa !5
  %2237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2227, ptr noundef nonnull %.str.5.sink1511, i32 noundef %2228, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %2231, ptr noundef %2233, ptr noundef %2235, i32 noundef %2236) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2238:                                             ; preds = %2209
  %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 @setup_server_psks(ptr noundef nonnull %200)
  %2242 = call zeroext i1 @s2n_result_is_ok(i32 %2241)
  br i1 %2242, label %2267, label %2243

2243:                                             ; preds = %2238
  %2244 = tail call ptr @__errno_location() #10
  %2245 = load i32, ptr %2244, align 4, !tbaa !5
  %2246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2247 = call i32 @s2n_print_stacktrace(ptr noundef %2246) #9
  %2248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2249 = trunc nuw i8 %2248 to i1
  br i1 %2249, label %2250, label %2254

2250:                                             ; preds = %2243
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = call i32 @fileno(ptr noundef %2251) #9
  %2253 = call i32 @isatty(i32 noundef %2252) #9
  %.not543 = icmp eq i32 %2253, 0
  br i1 %.not543, label %2254, label %2255

2254:                                             ; preds = %2250, %2243
  br label %2255

2255:                                             ; preds = %2250, %2254
  %.str.5.sink1522 = phi ptr [ @.str.5, %2254 ], [ @.str.2, %2250 ]
  store i32 %2245, ptr %2244, align 4, !tbaa !5
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = load i32, ptr @test_count, align 4, !tbaa !5
  %2258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror(i32 noundef %2259, ptr noundef nonnull @.str.4) #9
  %2261 = load i32, ptr %2258, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror_debug(i32 noundef %2261, ptr noundef nonnull @.str.4) #9
  %2263 = load i32, ptr %2244, align 4, !tbaa !5
  %2264 = call ptr @strerror(i32 noundef %2263) #9
  %2265 = load i32, ptr %2244, align 4, !tbaa !5
  %2266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2256, ptr noundef nonnull %.str.5.sink1522, i32 noundef %2257, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2260, ptr noundef %2262, ptr noundef %2264, i32 noundef %2265) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2267:                                             ; preds = %2238
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = add nsw i32 %2268, 1
  store i32 %2269, ptr @test_count, align 4, !tbaa !5
  %2270 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %2271 = icmp eq i32 %2270, -1
  br i1 %2271, label %2296, label %2272

2272:                                             ; preds = %2267
  %2273 = tail call ptr @__errno_location() #10
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2276 = call i32 @s2n_print_stacktrace(ptr noundef %2275) #9
  %2277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2278 = trunc nuw i8 %2277 to i1
  br i1 %2278, label %2279, label %2283

2279:                                             ; preds = %2272
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @fileno(ptr noundef %2280) #9
  %2282 = call i32 @isatty(i32 noundef %2281) #9
  %.not544 = icmp eq i32 %2282, 0
  br i1 %.not544, label %2283, label %2284

2283:                                             ; preds = %2279, %2272
  br label %2284

2284:                                             ; preds = %2279, %2283
  %.str.5.sink1533 = phi ptr [ @.str.5, %2283 ], [ @.str.2, %2279 ]
  store i32 %2274, ptr %2273, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = load i32, ptr @test_count, align 4, !tbaa !5
  %2287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror(i32 noundef %2288, ptr noundef nonnull @.str.4) #9
  %2290 = load i32, ptr %2287, align 4, !tbaa !5
  %2291 = call ptr @s2n_strerror_debug(i32 noundef %2290, ptr noundef nonnull @.str.4) #9
  %2292 = load i32, ptr %2273, align 4, !tbaa !5
  %2293 = call ptr @strerror(i32 noundef %2292) #9
  %2294 = load i32, ptr %2273, align 4, !tbaa !5
  %2295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2285, ptr noundef nonnull %.str.5.sink1533, i32 noundef %2286, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %2289, ptr noundef %2291, ptr noundef %2293, i32 noundef %2294) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2296:                                             ; preds = %2267
  %2297 = load i32, ptr @test_count, align 4, !tbaa !5
  %2298 = add nsw i32 %2297, 1
  store i32 %2298, ptr @test_count, align 4, !tbaa !5
  %2299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = icmp eq i32 %2300, 201326593
  br i1 %2301, label %2325, label %2302

2302:                                             ; preds = %2296
  %2303 = tail call ptr @__errno_location() #10
  %2304 = load i32, ptr %2303, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = call i32 @s2n_print_stacktrace(ptr noundef %2305) #9
  %2307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2308 = trunc nuw i8 %2307 to i1
  br i1 %2308, label %2309, label %2313

2309:                                             ; preds = %2302
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = call i32 @fileno(ptr noundef %2310) #9
  %2312 = call i32 @isatty(i32 noundef %2311) #9
  %.not545 = icmp eq i32 %2312, 0
  br i1 %.not545, label %2313, label %2314

2313:                                             ; preds = %2309, %2302
  br label %2314

2314:                                             ; preds = %2309, %2313
  %.str.5.sink1544 = phi ptr [ @.str.5, %2313 ], [ @.str.2, %2309 ]
  store i32 %2304, ptr %2303, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = load i32, ptr %2299, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror(i32 noundef %2317, ptr noundef nonnull @.str.4) #9
  %2319 = load i32, ptr %2299, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror_debug(i32 noundef %2319, ptr noundef nonnull @.str.4) #9
  %2321 = load i32, ptr %2303, align 4, !tbaa !5
  %2322 = call ptr @strerror(i32 noundef %2321) #9
  %2323 = load i32, ptr %2303, align 4, !tbaa !5
  %2324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2315, ptr noundef nonnull %.str.5.sink1544, i32 noundef %2316, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %2318, ptr noundef %2320, ptr noundef %2322, i32 noundef %2323) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2325:                                             ; preds = %2296
  %2326 = add nsw i32 %2297, 2
  store i32 %2326, ptr @test_count, align 4, !tbaa !5
  %2327 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.4) #9
  %2328 = icmp eq ptr %2327, null
  br i1 %2328, label %2329, label %2352

2329:                                             ; preds = %2325
  %2330 = tail call ptr @__errno_location() #10
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = call i32 @s2n_print_stacktrace(ptr noundef %2332) #9
  %2334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2335 = trunc nuw i8 %2334 to i1
  br i1 %2335, label %2336, label %2340

2336:                                             ; preds = %2329
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @fileno(ptr noundef %2337) #9
  %2339 = call i32 @isatty(i32 noundef %2338) #9
  %.not626 = icmp eq i32 %2339, 0
  br i1 %.not626, label %2340, label %2341

2340:                                             ; preds = %2336, %2329
  br label %2341

2341:                                             ; preds = %2336, %2340
  %.str.5.sink1553 = phi ptr [ @.str.5, %2340 ], [ @.str.2, %2336 ]
  store i32 %2331, ptr %2330, align 4, !tbaa !5
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = load i32, ptr @test_count, align 4, !tbaa !5
  %2344 = load i32, ptr %2299, align 4, !tbaa !5
  %2345 = call ptr @s2n_strerror(i32 noundef %2344, ptr noundef nonnull @.str.4) #9
  %2346 = load i32, ptr %2299, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror_debug(i32 noundef %2346, ptr noundef nonnull @.str.4) #9
  %2348 = load i32, ptr %2330, align 4, !tbaa !5
  %2349 = call ptr @strerror(i32 noundef %2348) #9
  %2350 = load i32, ptr %2330, align 4, !tbaa !5
  %2351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2342, ptr noundef nonnull %.str.5.sink1553, i32 noundef %2343, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %2345, ptr noundef %2347, ptr noundef %2349, i32 noundef %2350) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2352:                                             ; preds = %2325
  store i32 0, ptr %2299, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %2353 = tail call ptr @__errno_location() #10
  store i32 0, ptr %2353, align 4, !tbaa !5
  %2354 = load i32, ptr @test_count, align 4, !tbaa !5
  %2355 = add nsw i32 %2354, 1
  store i32 %2355, ptr @test_count, align 4, !tbaa !5
  %2356 = call i32 @s2n_client_hello_cb_done(ptr noundef nonnull %200) #9
  %2357 = icmp eq i32 %2356, -1
  br i1 %2357, label %2358, label %2380

2358:                                             ; preds = %2352
  %2359 = load i32, ptr %2353, align 4, !tbaa !5
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = call i32 @s2n_print_stacktrace(ptr noundef %2360) #9
  %2362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2363 = trunc nuw i8 %2362 to i1
  br i1 %2363, label %2364, label %2368

2364:                                             ; preds = %2358
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2366 = call i32 @fileno(ptr noundef %2365) #9
  %2367 = call i32 @isatty(i32 noundef %2366) #9
  %.not625 = icmp eq i32 %2367, 0
  br i1 %.not625, label %2368, label %2369

2368:                                             ; preds = %2364, %2358
  br label %2369

2369:                                             ; preds = %2364, %2368
  %.str.5.sink1562 = phi ptr [ @.str.5, %2368 ], [ @.str.2, %2364 ]
  store i32 %2359, ptr %2353, align 4, !tbaa !5
  %2370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2371 = load i32, ptr @test_count, align 4, !tbaa !5
  %2372 = load i32, ptr %2299, align 4, !tbaa !5
  %2373 = call ptr @s2n_strerror(i32 noundef %2372, ptr noundef nonnull @.str.4) #9
  %2374 = load i32, ptr %2299, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2374, ptr noundef nonnull @.str.4) #9
  %2376 = load i32, ptr %2353, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #9
  %2378 = load i32, ptr %2353, align 4, !tbaa !5
  %2379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2370, ptr noundef nonnull %.str.5.sink1562, i32 noundef %2371, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %2373, ptr noundef %2375, ptr noundef %2377, i32 noundef %2378) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2380:                                             ; preds = %2352
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = add nsw i32 %2381, 1
  store i32 %2382, ptr @test_count, align 4, !tbaa !5
  %2383 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %2384 = icmp eq i32 %2383, -1
  br i1 %2384, label %2385, label %2407

2385:                                             ; preds = %2380
  %2386 = load i32, ptr %2353, align 4, !tbaa !5
  %2387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2388 = call i32 @s2n_print_stacktrace(ptr noundef %2387) #9
  %2389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2390 = trunc nuw i8 %2389 to i1
  br i1 %2390, label %2391, label %2395

2391:                                             ; preds = %2385
  %2392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2393 = call i32 @fileno(ptr noundef %2392) #9
  %2394 = call i32 @isatty(i32 noundef %2393) #9
  %.not624 = icmp eq i32 %2394, 0
  br i1 %.not624, label %2395, label %2396

2395:                                             ; preds = %2391, %2385
  br label %2396

2396:                                             ; preds = %2391, %2395
  %.str.5.sink1571 = phi ptr [ @.str.5, %2395 ], [ @.str.2, %2391 ]
  store i32 %2386, ptr %2353, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = load i32, ptr %2299, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror(i32 noundef %2399, ptr noundef nonnull @.str.4) #9
  %2401 = load i32, ptr %2299, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror_debug(i32 noundef %2401, ptr noundef nonnull @.str.4) #9
  %2403 = load i32, ptr %2353, align 4, !tbaa !5
  %2404 = call ptr @strerror(i32 noundef %2403) #9
  %2405 = load i32, ptr %2353, align 4, !tbaa !5
  %2406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef nonnull %.str.5.sink1571, i32 noundef %2398, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %2400, ptr noundef %2402, ptr noundef %2404, i32 noundef %2405) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2407:                                             ; preds = %2380
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = add nsw i32 %2408, 1
  store i32 %2409, ptr @test_count, align 4, !tbaa !5
  %2410 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 2) #9
  br i1 %2410, label %2411, label %2435

2411:                                             ; preds = %2407
  %2412 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 2) #9
  br i1 %2412, label %2413, label %2435

2413:                                             ; preds = %2411
  %2414 = load i32, ptr %2353, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = call i32 @s2n_print_stacktrace(ptr noundef %2415) #9
  %2417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2418 = trunc nuw i8 %2417 to i1
  br i1 %2418, label %2419, label %2423

2419:                                             ; preds = %2413
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = call i32 @fileno(ptr noundef %2420) #9
  %2422 = call i32 @isatty(i32 noundef %2421) #9
  %.not623 = icmp eq i32 %2422, 0
  br i1 %.not623, label %2423, label %2424

2423:                                             ; preds = %2419, %2413
  br label %2424

2424:                                             ; preds = %2419, %2423
  %.str.5.sink1580 = phi ptr [ @.str.5, %2423 ], [ @.str.2, %2419 ]
  store i32 %2414, ptr %2353, align 4, !tbaa !5
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = load i32, ptr @test_count, align 4, !tbaa !5
  %2427 = load i32, ptr %2299, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef nonnull @.str.4) #9
  %2429 = load i32, ptr %2299, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror_debug(i32 noundef %2429, ptr noundef nonnull @.str.4) #9
  %2431 = load i32, ptr %2353, align 4, !tbaa !5
  %2432 = call ptr @strerror(i32 noundef %2431) #9
  %2433 = load i32, ptr %2353, align 4, !tbaa !5
  %2434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2425, ptr noundef nonnull %.str.5.sink1580, i32 noundef %2426, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2428, ptr noundef %2430, ptr noundef %2432, i32 noundef %2433) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2435:                                             ; preds = %2407, %2411
  %2436 = load i32, ptr @test_count, align 4, !tbaa !5
  %2437 = add nsw i32 %2436, 1
  store i32 %2437, ptr @test_count, align 4, !tbaa !5
  %2438 = call i32 @validate_chosen_psk(ptr noundef nonnull %200, ptr noundef nonnull @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %2439 = call zeroext i1 @s2n_result_is_ok(i32 %2438)
  br i1 %2439, label %2462, label %2440

2440:                                             ; preds = %2435
  %2441 = load i32, ptr %2353, align 4, !tbaa !5
  %2442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2443 = call i32 @s2n_print_stacktrace(ptr noundef %2442) #9
  %2444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2445 = trunc nuw i8 %2444 to i1
  br i1 %2445, label %2446, label %2450

2446:                                             ; preds = %2440
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = call i32 @fileno(ptr noundef %2447) #9
  %2449 = call i32 @isatty(i32 noundef %2448) #9
  %.not546 = icmp eq i32 %2449, 0
  br i1 %.not546, label %2450, label %2451

2450:                                             ; preds = %2446, %2440
  br label %2451

2451:                                             ; preds = %2446, %2450
  %.str.5.sink1589 = phi ptr [ @.str.5, %2450 ], [ @.str.2, %2446 ]
  store i32 %2441, ptr %2353, align 4, !tbaa !5
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = load i32, ptr %2299, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror(i32 noundef %2454, ptr noundef nonnull @.str.4) #9
  %2456 = load i32, ptr %2299, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror_debug(i32 noundef %2456, ptr noundef nonnull @.str.4) #9
  %2458 = load i32, ptr %2353, align 4, !tbaa !5
  %2459 = call ptr @strerror(i32 noundef %2458) #9
  %2460 = load i32, ptr %2353, align 4, !tbaa !5
  %2461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2452, ptr noundef nonnull %.str.5.sink1589, i32 noundef %2453, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %2455, ptr noundef %2457, ptr noundef %2459, i32 noundef %2460) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2462:                                             ; preds = %2435
  %2463 = load i32, ptr @test_count, align 4, !tbaa !5
  %2464 = add nsw i32 %2463, 1
  store i32 %2464, ptr @test_count, align 4, !tbaa !5
  %2465 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %2466 = icmp eq i32 %2465, -1
  br i1 %2466, label %2467, label %2489

2467:                                             ; preds = %2462
  %2468 = load i32, ptr %2353, align 4, !tbaa !5
  %2469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2470 = call i32 @s2n_print_stacktrace(ptr noundef %2469) #9
  %2471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2472 = trunc nuw i8 %2471 to i1
  br i1 %2472, label %2473, label %2477

2473:                                             ; preds = %2467
  %2474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2475 = call i32 @fileno(ptr noundef %2474) #9
  %2476 = call i32 @isatty(i32 noundef %2475) #9
  %.not622 = icmp eq i32 %2476, 0
  br i1 %.not622, label %2477, label %2478

2477:                                             ; preds = %2473, %2467
  br label %2478

2478:                                             ; preds = %2473, %2477
  %.str.5.sink1598 = phi ptr [ @.str.5, %2477 ], [ @.str.2, %2473 ]
  store i32 %2468, ptr %2353, align 4, !tbaa !5
  %2479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2480 = load i32, ptr @test_count, align 4, !tbaa !5
  %2481 = load i32, ptr %2299, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror(i32 noundef %2481, ptr noundef nonnull @.str.4) #9
  %2483 = load i32, ptr %2299, align 4, !tbaa !5
  %2484 = call ptr @s2n_strerror_debug(i32 noundef %2483, ptr noundef nonnull @.str.4) #9
  %2485 = load i32, ptr %2353, align 4, !tbaa !5
  %2486 = call ptr @strerror(i32 noundef %2485) #9
  %2487 = load i32, ptr %2353, align 4, !tbaa !5
  %2488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2479, ptr noundef nonnull %.str.5.sink1598, i32 noundef %2480, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2482, ptr noundef %2484, ptr noundef %2486, i32 noundef %2487) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2489:                                             ; preds = %2462
  %2490 = load i32, ptr @test_count, align 4, !tbaa !5
  %2491 = add nsw i32 %2490, 1
  store i32 %2491, ptr @test_count, align 4, !tbaa !5
  %2492 = call i32 @s2n_connection_wipe(ptr noundef nonnull %171) #9
  %2493 = icmp eq i32 %2492, -1
  br i1 %2493, label %2494, label %2516

2494:                                             ; preds = %2489
  %2495 = load i32, ptr %2353, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = call i32 @s2n_print_stacktrace(ptr noundef %2496) #9
  %2498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2499 = trunc nuw i8 %2498 to i1
  br i1 %2499, label %2500, label %2504

2500:                                             ; preds = %2494
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = call i32 @fileno(ptr noundef %2501) #9
  %2503 = call i32 @isatty(i32 noundef %2502) #9
  %.not621 = icmp eq i32 %2503, 0
  br i1 %.not621, label %2504, label %2505

2504:                                             ; preds = %2500, %2494
  br label %2505

2505:                                             ; preds = %2500, %2504
  %.str.5.sink1607 = phi ptr [ @.str.5, %2504 ], [ @.str.2, %2500 ]
  store i32 %2495, ptr %2353, align 4, !tbaa !5
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = load i32, ptr %2299, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror(i32 noundef %2508, ptr noundef nonnull @.str.4) #9
  %2510 = load i32, ptr %2299, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror_debug(i32 noundef %2510, ptr noundef nonnull @.str.4) #9
  %2512 = load i32, ptr %2353, align 4, !tbaa !5
  %2513 = call ptr @strerror(i32 noundef %2512) #9
  %2514 = load i32, ptr %2353, align 4, !tbaa !5
  %2515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2506, ptr noundef nonnull %.str.5.sink1607, i32 noundef %2507, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %2509, ptr noundef %2511, ptr noundef %2513, i32 noundef %2514) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2516:                                             ; preds = %2489
  %2517 = load i32, ptr @test_count, align 4, !tbaa !5
  %2518 = add nsw i32 %2517, 1
  store i32 %2518, ptr @test_count, align 4, !tbaa !5
  %2519 = call i32 @s2n_connection_wipe(ptr noundef nonnull %200) #9
  %2520 = icmp eq i32 %2519, -1
  br i1 %2520, label %2521, label %2543

2521:                                             ; preds = %2516
  %2522 = load i32, ptr %2353, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @s2n_print_stacktrace(ptr noundef %2523) #9
  %2525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2526 = trunc nuw i8 %2525 to i1
  br i1 %2526, label %2527, label %2531

2527:                                             ; preds = %2521
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = call i32 @fileno(ptr noundef %2528) #9
  %2530 = call i32 @isatty(i32 noundef %2529) #9
  %.not620 = icmp eq i32 %2530, 0
  br i1 %.not620, label %2531, label %2532

2531:                                             ; preds = %2527, %2521
  br label %2532

2532:                                             ; preds = %2527, %2531
  %.str.5.sink1616 = phi ptr [ @.str.5, %2531 ], [ @.str.2, %2527 ]
  store i32 %2522, ptr %2353, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = load i32, ptr @test_count, align 4, !tbaa !5
  %2535 = load i32, ptr %2299, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror(i32 noundef %2535, ptr noundef nonnull @.str.4) #9
  %2537 = load i32, ptr %2299, align 4, !tbaa !5
  %2538 = call ptr @s2n_strerror_debug(i32 noundef %2537, ptr noundef nonnull @.str.4) #9
  %2539 = load i32, ptr %2353, align 4, !tbaa !5
  %2540 = call ptr @strerror(i32 noundef %2539) #9
  %2541 = load i32, ptr %2353, align 4, !tbaa !5
  %2542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2533, ptr noundef nonnull %.str.5.sink1616, i32 noundef %2534, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %2536, ptr noundef %2538, ptr noundef %2540, i32 noundef %2541) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2543:                                             ; preds = %2516
  %2544 = load i32, ptr @test_count, align 4, !tbaa !5
  %2545 = add nsw i32 %2544, 1
  store i32 %2545, ptr @test_count, align 4, !tbaa !5
  %2546 = call i32 @s2n_config_set_client_hello_cb(ptr noundef nonnull %229, ptr noundef null, ptr noundef null) #9
  %2547 = icmp eq i32 %2546, -1
  br i1 %2547, label %2548, label %2570

2548:                                             ; preds = %2543
  %2549 = load i32, ptr %2353, align 4, !tbaa !5
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = call i32 @s2n_print_stacktrace(ptr noundef %2550) #9
  %2552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2553 = trunc nuw i8 %2552 to i1
  br i1 %2553, label %2554, label %2558

2554:                                             ; preds = %2548
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = call i32 @fileno(ptr noundef %2555) #9
  %2557 = call i32 @isatty(i32 noundef %2556) #9
  %.not619 = icmp eq i32 %2557, 0
  br i1 %.not619, label %2558, label %2559

2558:                                             ; preds = %2554, %2548
  br label %2559

2559:                                             ; preds = %2554, %2558
  %.str.5.sink1625 = phi ptr [ @.str.5, %2558 ], [ @.str.2, %2554 ]
  store i32 %2549, ptr %2353, align 4, !tbaa !5
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = load i32, ptr %2299, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror(i32 noundef %2562, ptr noundef nonnull @.str.4) #9
  %2564 = load i32, ptr %2299, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef nonnull @.str.4) #9
  %2566 = load i32, ptr %2353, align 4, !tbaa !5
  %2567 = call ptr @strerror(i32 noundef %2566) #9
  %2568 = load i32, ptr %2353, align 4, !tbaa !5
  %2569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2560, ptr noundef nonnull %.str.5.sink1625, i32 noundef %2561, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %2563, ptr noundef %2565, ptr noundef %2567, i32 noundef %2568) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2570:                                             ; preds = %2543
  %2571 = load i32, ptr @test_count, align 4, !tbaa !5
  %2572 = add nsw i32 %2571, 1
  store i32 %2572, ptr @test_count, align 4, !tbaa !5
  %2573 = call i32 @s2n_config_set_client_hello_cb(ptr noundef nonnull %316, ptr noundef nonnull @s2n_client_hello_no_op_cb, ptr noundef null) #9
  %2574 = icmp eq i32 %2573, -1
  br i1 %2574, label %2575, label %2597

2575:                                             ; preds = %2570
  %2576 = load i32, ptr %2353, align 4, !tbaa !5
  %2577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2578 = call i32 @s2n_print_stacktrace(ptr noundef %2577) #9
  %2579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2580 = trunc nuw i8 %2579 to i1
  br i1 %2580, label %2581, label %2585

2581:                                             ; preds = %2575
  %2582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2583 = call i32 @fileno(ptr noundef %2582) #9
  %2584 = call i32 @isatty(i32 noundef %2583) #9
  %.not618 = icmp eq i32 %2584, 0
  br i1 %.not618, label %2585, label %2586

2585:                                             ; preds = %2581, %2575
  br label %2586

2586:                                             ; preds = %2581, %2585
  %.str.5.sink1634 = phi ptr [ @.str.5, %2585 ], [ @.str.2, %2581 ]
  store i32 %2576, ptr %2353, align 4, !tbaa !5
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = load i32, ptr @test_count, align 4, !tbaa !5
  %2589 = load i32, ptr %2299, align 4, !tbaa !5
  %2590 = call ptr @s2n_strerror(i32 noundef %2589, ptr noundef nonnull @.str.4) #9
  %2591 = load i32, ptr %2299, align 4, !tbaa !5
  %2592 = call ptr @s2n_strerror_debug(i32 noundef %2591, ptr noundef nonnull @.str.4) #9
  %2593 = load i32, ptr %2353, align 4, !tbaa !5
  %2594 = call ptr @strerror(i32 noundef %2593) #9
  %2595 = load i32, ptr %2353, align 4, !tbaa !5
  %2596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2587, ptr noundef nonnull %.str.5.sink1634, i32 noundef %2588, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %2590, ptr noundef %2592, ptr noundef %2594, i32 noundef %2595) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2597:                                             ; preds = %2570
  %2598 = load i32, ptr @test_count, align 4, !tbaa !5
  %2599 = add nsw i32 %2598, 1
  store i32 %2599, ptr @test_count, align 4, !tbaa !5
  %2600 = call i32 @s2n_config_set_client_hello_cb_mode(ptr noundef nonnull %316, i32 noundef 1) #9
  %2601 = icmp eq i32 %2600, -1
  br i1 %2601, label %2602, label %2624

2602:                                             ; preds = %2597
  %2603 = load i32, ptr %2353, align 4, !tbaa !5
  %2604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2605 = call i32 @s2n_print_stacktrace(ptr noundef %2604) #9
  %2606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2607 = trunc nuw i8 %2606 to i1
  br i1 %2607, label %2608, label %2612

2608:                                             ; preds = %2602
  %2609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2610 = call i32 @fileno(ptr noundef %2609) #9
  %2611 = call i32 @isatty(i32 noundef %2610) #9
  %.not617 = icmp eq i32 %2611, 0
  br i1 %.not617, label %2612, label %2613

2612:                                             ; preds = %2608, %2602
  br label %2613

2613:                                             ; preds = %2608, %2612
  %.str.5.sink1643 = phi ptr [ @.str.5, %2612 ], [ @.str.2, %2608 ]
  store i32 %2603, ptr %2353, align 4, !tbaa !5
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = load i32, ptr @test_count, align 4, !tbaa !5
  %2616 = load i32, ptr %2299, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror(i32 noundef %2616, ptr noundef nonnull @.str.4) #9
  %2618 = load i32, ptr %2299, align 4, !tbaa !5
  %2619 = call ptr @s2n_strerror_debug(i32 noundef %2618, ptr noundef nonnull @.str.4) #9
  %2620 = load i32, ptr %2353, align 4, !tbaa !5
  %2621 = call ptr @strerror(i32 noundef %2620) #9
  %2622 = load i32, ptr %2353, align 4, !tbaa !5
  %2623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2614, ptr noundef nonnull %.str.5.sink1643, i32 noundef %2615, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %2617, ptr noundef %2619, ptr noundef %2621, i32 noundef %2622) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2624:                                             ; preds = %2597
  %2625 = load i32, ptr @test_count, align 4, !tbaa !5
  %2626 = add nsw i32 %2625, 1
  store i32 %2626, ptr @test_count, align 4, !tbaa !5
  %2627 = call i32 @s2n_connection_set_config(ptr noundef nonnull %171, ptr noundef nonnull %316) #9
  %2628 = icmp eq i32 %2627, -1
  br i1 %2628, label %2629, label %2651

2629:                                             ; preds = %2624
  %2630 = load i32, ptr %2353, align 4, !tbaa !5
  %2631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2632 = call i32 @s2n_print_stacktrace(ptr noundef %2631) #9
  %2633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2634 = trunc nuw i8 %2633 to i1
  br i1 %2634, label %2635, label %2639

2635:                                             ; preds = %2629
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @fileno(ptr noundef %2636) #9
  %2638 = call i32 @isatty(i32 noundef %2637) #9
  %.not616 = icmp eq i32 %2638, 0
  br i1 %.not616, label %2639, label %2640

2639:                                             ; preds = %2635, %2629
  br label %2640

2640:                                             ; preds = %2635, %2639
  %.str.5.sink1652 = phi ptr [ @.str.5, %2639 ], [ @.str.2, %2635 ]
  store i32 %2630, ptr %2353, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = load i32, ptr @test_count, align 4, !tbaa !5
  %2643 = load i32, ptr %2299, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror(i32 noundef %2643, ptr noundef nonnull @.str.4) #9
  %2645 = load i32, ptr %2299, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror_debug(i32 noundef %2645, ptr noundef nonnull @.str.4) #9
  %2647 = load i32, ptr %2353, align 4, !tbaa !5
  %2648 = call ptr @strerror(i32 noundef %2647) #9
  %2649 = load i32, ptr %2353, align 4, !tbaa !5
  %2650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2641, ptr noundef nonnull %.str.5.sink1652, i32 noundef %2642, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %2644, ptr noundef %2646, ptr noundef %2648, i32 noundef %2649) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2651:                                             ; preds = %2624
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = add nsw i32 %2652, 1
  store i32 %2653, ptr @test_count, align 4, !tbaa !5
  %2654 = call i32 @s2n_connection_set_config(ptr noundef nonnull %200, ptr noundef nonnull %316) #9
  %2655 = icmp eq i32 %2654, -1
  br i1 %2655, label %2656, label %2678

2656:                                             ; preds = %2651
  %2657 = load i32, ptr %2353, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = call i32 @s2n_print_stacktrace(ptr noundef %2658) #9
  %2660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2661 = trunc nuw i8 %2660 to i1
  br i1 %2661, label %2662, label %2666

2662:                                             ; preds = %2656
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = call i32 @fileno(ptr noundef %2663) #9
  %2665 = call i32 @isatty(i32 noundef %2664) #9
  %.not615 = icmp eq i32 %2665, 0
  br i1 %.not615, label %2666, label %2667

2666:                                             ; preds = %2662, %2656
  br label %2667

2667:                                             ; preds = %2662, %2666
  %.str.5.sink1661 = phi ptr [ @.str.5, %2666 ], [ @.str.2, %2662 ]
  store i32 %2657, ptr %2353, align 4, !tbaa !5
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = load i32, ptr @test_count, align 4, !tbaa !5
  %2670 = load i32, ptr %2299, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror(i32 noundef %2670, ptr noundef nonnull @.str.4) #9
  %2672 = load i32, ptr %2299, align 4, !tbaa !5
  %2673 = call ptr @s2n_strerror_debug(i32 noundef %2672, ptr noundef nonnull @.str.4) #9
  %2674 = load i32, ptr %2353, align 4, !tbaa !5
  %2675 = call ptr @strerror(i32 noundef %2674) #9
  %2676 = load i32, ptr %2353, align 4, !tbaa !5
  %2677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2668, ptr noundef nonnull %.str.5.sink1661, i32 noundef %2669, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %2671, ptr noundef %2673, ptr noundef %2675, i32 noundef %2676) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2678:                                             ; preds = %2651
  %2679 = load i32, ptr @test_count, align 4, !tbaa !5
  %2680 = add nsw i32 %2679, 1
  store i32 %2680, ptr @test_count, align 4, !tbaa !5
  %2681 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %171, ptr noundef nonnull %4) #9
  %2682 = icmp eq i32 %2681, -1
  br i1 %2682, label %2683, label %2705

2683:                                             ; preds = %2678
  %2684 = load i32, ptr %2353, align 4, !tbaa !5
  %2685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2686 = call i32 @s2n_print_stacktrace(ptr noundef %2685) #9
  %2687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2688 = trunc nuw i8 %2687 to i1
  br i1 %2688, label %2689, label %2693

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

2693:                                             ; preds = %2689, %2683
  br label %2694

2694:                                             ; preds = %2689, %2693
  %.str.5.sink1670 = phi ptr [ @.str.5, %2693 ], [ @.str.2, %2689 ]
  store i32 %2684, ptr %2353, align 4, !tbaa !5
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = load i32, ptr @test_count, align 4, !tbaa !5
  %2697 = load i32, ptr %2299, align 4, !tbaa !5
  %2698 = call ptr @s2n_strerror(i32 noundef %2697, ptr noundef nonnull @.str.4) #9
  %2699 = load i32, ptr %2299, align 4, !tbaa !5
  %2700 = call ptr @s2n_strerror_debug(i32 noundef %2699, ptr noundef nonnull @.str.4) #9
  %2701 = load i32, ptr %2353, align 4, !tbaa !5
  %2702 = call ptr @strerror(i32 noundef %2701) #9
  %2703 = load i32, ptr %2353, align 4, !tbaa !5
  %2704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2695, ptr noundef nonnull %.str.5.sink1670, i32 noundef %2696, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %2698, ptr noundef %2700, ptr noundef %2702, i32 noundef %2703) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2705:                                             ; preds = %2678
  %2706 = load i32, ptr @test_count, align 4, !tbaa !5
  %2707 = add nsw i32 %2706, 1
  store i32 %2707, ptr @test_count, align 4, !tbaa !5
  %2708 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %200, ptr noundef nonnull %4) #9
  %2709 = icmp eq i32 %2708, -1
  br i1 %2709, label %2710, label %2732

2710:                                             ; preds = %2705
  %2711 = load i32, ptr %2353, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = call i32 @s2n_print_stacktrace(ptr noundef %2712) #9
  %2714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2715 = trunc nuw i8 %2714 to i1
  br i1 %2715, label %2716, label %2720

2716:                                             ; preds = %2710
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @fileno(ptr noundef %2717) #9
  %2719 = call i32 @isatty(i32 noundef %2718) #9
  %.not613 = icmp eq i32 %2719, 0
  br i1 %.not613, label %2720, label %2721

2720:                                             ; preds = %2716, %2710
  br label %2721

2721:                                             ; preds = %2716, %2720
  %.str.5.sink1679 = phi ptr [ @.str.5, %2720 ], [ @.str.2, %2716 ]
  store i32 %2711, ptr %2353, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = load i32, ptr %2299, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror(i32 noundef %2724, ptr noundef nonnull @.str.4) #9
  %2726 = load i32, ptr %2299, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror_debug(i32 noundef %2726, ptr noundef nonnull @.str.4) #9
  %2728 = load i32, ptr %2353, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #9
  %2730 = load i32, ptr %2353, align 4, !tbaa !5
  %2731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2722, ptr noundef nonnull %.str.5.sink1679, i32 noundef %2723, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %2725, ptr noundef %2727, ptr noundef %2729, i32 noundef %2730) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2732:                                             ; preds = %2705
  %2733 = getelementptr inbounds i8, ptr %171, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %2733, align 8, !tbaa !46
  %2734 = load i32, ptr @test_count, align 4, !tbaa !5
  %2735 = add nsw i32 %2734, 1
  store i32 %2735, ptr @test_count, align 4, !tbaa !5
  %2736 = call i32 @setup_client_psks(ptr noundef nonnull %171)
  %2737 = call zeroext i1 @s2n_result_is_ok(i32 %2736)
  br i1 %2737, label %2760, label %2738

2738:                                             ; preds = %2732
  %2739 = load i32, ptr %2353, align 4, !tbaa !5
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @s2n_print_stacktrace(ptr noundef %2740) #9
  %2742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2743 = trunc nuw i8 %2742 to i1
  br i1 %2743, label %2744, label %2748

2744:                                             ; preds = %2738
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = call i32 @fileno(ptr noundef %2745) #9
  %2747 = call i32 @isatty(i32 noundef %2746) #9
  %.not547 = icmp eq i32 %2747, 0
  br i1 %.not547, label %2748, label %2749

2748:                                             ; preds = %2744, %2738
  br label %2749

2749:                                             ; preds = %2744, %2748
  %.str.5.sink1688 = phi ptr [ @.str.5, %2748 ], [ @.str.2, %2744 ]
  store i32 %2739, ptr %2353, align 4, !tbaa !5
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = load i32, ptr @test_count, align 4, !tbaa !5
  %2752 = load i32, ptr %2299, align 4, !tbaa !5
  %2753 = call ptr @s2n_strerror(i32 noundef %2752, ptr noundef nonnull @.str.4) #9
  %2754 = load i32, ptr %2299, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror_debug(i32 noundef %2754, ptr noundef nonnull @.str.4) #9
  %2756 = load i32, ptr %2353, align 4, !tbaa !5
  %2757 = call ptr @strerror(i32 noundef %2756) #9
  %2758 = load i32, ptr %2353, align 4, !tbaa !5
  %2759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2750, ptr noundef nonnull %.str.5.sink1688, i32 noundef %2751, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2753, ptr noundef %2755, ptr noundef %2757, i32 noundef %2758) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2760:                                             ; preds = %2732
  %2761 = load i32, ptr @test_count, align 4, !tbaa !5
  %2762 = add nsw i32 %2761, 1
  store i32 %2762, ptr @test_count, align 4, !tbaa !5
  %2763 = call i32 @setup_server_psks(ptr noundef nonnull %200)
  %2764 = call zeroext i1 @s2n_result_is_ok(i32 %2763)
  br i1 %2764, label %2787, label %2765

2765:                                             ; preds = %2760
  %2766 = load i32, ptr %2353, align 4, !tbaa !5
  %2767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2768 = call i32 @s2n_print_stacktrace(ptr noundef %2767) #9
  %2769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2770 = trunc nuw i8 %2769 to i1
  br i1 %2770, label %2771, label %2775

2771:                                             ; preds = %2765
  %2772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2773 = call i32 @fileno(ptr noundef %2772) #9
  %2774 = call i32 @isatty(i32 noundef %2773) #9
  %.not548 = icmp eq i32 %2774, 0
  br i1 %.not548, label %2775, label %2776

2775:                                             ; preds = %2771, %2765
  br label %2776

2776:                                             ; preds = %2771, %2775
  %.str.5.sink1697 = phi ptr [ @.str.5, %2775 ], [ @.str.2, %2771 ]
  store i32 %2766, ptr %2353, align 4, !tbaa !5
  %2777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2778 = load i32, ptr @test_count, align 4, !tbaa !5
  %2779 = load i32, ptr %2299, align 4, !tbaa !5
  %2780 = call ptr @s2n_strerror(i32 noundef %2779, ptr noundef nonnull @.str.4) #9
  %2781 = load i32, ptr %2299, align 4, !tbaa !5
  %2782 = call ptr @s2n_strerror_debug(i32 noundef %2781, ptr noundef nonnull @.str.4) #9
  %2783 = load i32, ptr %2353, align 4, !tbaa !5
  %2784 = call ptr @strerror(i32 noundef %2783) #9
  %2785 = load i32, ptr %2353, align 4, !tbaa !5
  %2786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2777, ptr noundef nonnull %.str.5.sink1697, i32 noundef %2778, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %2780, ptr noundef %2782, ptr noundef %2784, i32 noundef %2785) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2787:                                             ; preds = %2760
  %2788 = load i32, ptr @test_count, align 4, !tbaa !5
  %2789 = add nsw i32 %2788, 1
  store i32 %2789, ptr @test_count, align 4, !tbaa !5
  %2790 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %2791 = icmp eq i32 %2790, -1
  br i1 %2791, label %2814, label %2792

2792:                                             ; preds = %2787
  %2793 = load i32, ptr %2353, align 4, !tbaa !5
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = call i32 @s2n_print_stacktrace(ptr noundef %2794) #9
  %2796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2797 = trunc nuw i8 %2796 to i1
  br i1 %2797, label %2798, label %2802

2798:                                             ; preds = %2792
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2800 = call i32 @fileno(ptr noundef %2799) #9
  %2801 = call i32 @isatty(i32 noundef %2800) #9
  %.not549 = icmp eq i32 %2801, 0
  br i1 %.not549, label %2802, label %2803

2802:                                             ; preds = %2798, %2792
  br label %2803

2803:                                             ; preds = %2798, %2802
  %.str.5.sink1706 = phi ptr [ @.str.5, %2802 ], [ @.str.2, %2798 ]
  store i32 %2793, ptr %2353, align 4, !tbaa !5
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = load i32, ptr @test_count, align 4, !tbaa !5
  %2806 = load i32, ptr %2299, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror(i32 noundef %2806, ptr noundef nonnull @.str.4) #9
  %2808 = load i32, ptr %2299, align 4, !tbaa !5
  %2809 = call ptr @s2n_strerror_debug(i32 noundef %2808, ptr noundef nonnull @.str.4) #9
  %2810 = load i32, ptr %2353, align 4, !tbaa !5
  %2811 = call ptr @strerror(i32 noundef %2810) #9
  %2812 = load i32, ptr %2353, align 4, !tbaa !5
  %2813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2804, ptr noundef nonnull %.str.5.sink1706, i32 noundef %2805, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %2807, ptr noundef %2809, ptr noundef %2811, i32 noundef %2812) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2814:                                             ; preds = %2787
  %2815 = load i32, ptr @test_count, align 4, !tbaa !5
  %2816 = add nsw i32 %2815, 1
  store i32 %2816, ptr @test_count, align 4, !tbaa !5
  %2817 = load i32, ptr %2299, align 4, !tbaa !5
  %2818 = icmp eq i32 %2817, 201326593
  br i1 %2818, label %2841, label %2819

2819:                                             ; preds = %2814
  %2820 = load i32, ptr %2353, align 4, !tbaa !5
  %2821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2822 = call i32 @s2n_print_stacktrace(ptr noundef %2821) #9
  %2823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2824 = trunc nuw i8 %2823 to i1
  br i1 %2824, label %2825, label %2829

2825:                                             ; preds = %2819
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = call i32 @fileno(ptr noundef %2826) #9
  %2828 = call i32 @isatty(i32 noundef %2827) #9
  %.not550 = icmp eq i32 %2828, 0
  br i1 %.not550, label %2829, label %2830

2829:                                             ; preds = %2825, %2819
  br label %2830

2830:                                             ; preds = %2825, %2829
  %.str.5.sink1715 = phi ptr [ @.str.5, %2829 ], [ @.str.2, %2825 ]
  store i32 %2820, ptr %2353, align 4, !tbaa !5
  %2831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2832 = load i32, ptr @test_count, align 4, !tbaa !5
  %2833 = load i32, ptr %2299, align 4, !tbaa !5
  %2834 = call ptr @s2n_strerror(i32 noundef %2833, ptr noundef nonnull @.str.4) #9
  %2835 = load i32, ptr %2299, align 4, !tbaa !5
  %2836 = call ptr @s2n_strerror_debug(i32 noundef %2835, ptr noundef nonnull @.str.4) #9
  %2837 = load i32, ptr %2353, align 4, !tbaa !5
  %2838 = call ptr @strerror(i32 noundef %2837) #9
  %2839 = load i32, ptr %2353, align 4, !tbaa !5
  %2840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2831, ptr noundef nonnull %.str.5.sink1715, i32 noundef %2832, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %2834, ptr noundef %2836, ptr noundef %2838, i32 noundef %2839) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2841:                                             ; preds = %2814
  %2842 = add nsw i32 %2815, 2
  store i32 %2842, ptr @test_count, align 4, !tbaa !5
  %2843 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.4) #9
  %2844 = icmp eq ptr %2843, null
  br i1 %2844, label %2845, label %2867

2845:                                             ; preds = %2841
  %2846 = load i32, ptr %2353, align 4, !tbaa !5
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = call i32 @s2n_print_stacktrace(ptr noundef %2847) #9
  %2849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2850 = trunc nuw i8 %2849 to i1
  br i1 %2850, label %2851, label %2855

2851:                                             ; preds = %2845
  %2852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2853 = call i32 @fileno(ptr noundef %2852) #9
  %2854 = call i32 @isatty(i32 noundef %2853) #9
  %.not612 = icmp eq i32 %2854, 0
  br i1 %.not612, label %2855, label %2856

2855:                                             ; preds = %2851, %2845
  br label %2856

2856:                                             ; preds = %2851, %2855
  %.str.5.sink1724 = phi ptr [ @.str.5, %2855 ], [ @.str.2, %2851 ]
  store i32 %2846, ptr %2353, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = load i32, ptr @test_count, align 4, !tbaa !5
  %2859 = load i32, ptr %2299, align 4, !tbaa !5
  %2860 = call ptr @s2n_strerror(i32 noundef %2859, ptr noundef nonnull @.str.4) #9
  %2861 = load i32, ptr %2299, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror_debug(i32 noundef %2861, ptr noundef nonnull @.str.4) #9
  %2863 = load i32, ptr %2353, align 4, !tbaa !5
  %2864 = call ptr @strerror(i32 noundef %2863) #9
  %2865 = load i32, ptr %2353, align 4, !tbaa !5
  %2866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2857, ptr noundef nonnull %.str.5.sink1724, i32 noundef %2858, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %2860, ptr noundef %2862, ptr noundef %2864, i32 noundef %2865) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2867:                                             ; preds = %2841
  store i32 0, ptr %2299, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %2353, align 4, !tbaa !5
  %2868 = load i32, ptr @test_count, align 4, !tbaa !5
  %2869 = add nsw i32 %2868, 1
  store i32 %2869, ptr @test_count, align 4, !tbaa !5
  %2870 = call i32 @s2n_client_hello_cb_done(ptr noundef nonnull %200) #9
  %2871 = icmp eq i32 %2870, -1
  br i1 %2871, label %2872, label %2894

2872:                                             ; preds = %2867
  %2873 = load i32, ptr %2353, align 4, !tbaa !5
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = call i32 @s2n_print_stacktrace(ptr noundef %2874) #9
  %2876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2877 = trunc nuw i8 %2876 to i1
  br i1 %2877, label %2878, label %2882

2878:                                             ; preds = %2872
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = call i32 @fileno(ptr noundef %2879) #9
  %2881 = call i32 @isatty(i32 noundef %2880) #9
  %.not611 = icmp eq i32 %2881, 0
  br i1 %.not611, label %2882, label %2883

2882:                                             ; preds = %2878, %2872
  br label %2883

2883:                                             ; preds = %2878, %2882
  %.str.5.sink1733 = phi ptr [ @.str.5, %2882 ], [ @.str.2, %2878 ]
  store i32 %2873, ptr %2353, align 4, !tbaa !5
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = load i32, ptr %2299, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror(i32 noundef %2886, ptr noundef nonnull @.str.4) #9
  %2888 = load i32, ptr %2299, align 4, !tbaa !5
  %2889 = call ptr @s2n_strerror_debug(i32 noundef %2888, ptr noundef nonnull @.str.4) #9
  %2890 = load i32, ptr %2353, align 4, !tbaa !5
  %2891 = call ptr @strerror(i32 noundef %2890) #9
  %2892 = load i32, ptr %2353, align 4, !tbaa !5
  %2893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2884, ptr noundef nonnull %.str.5.sink1733, i32 noundef %2885, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %2887, ptr noundef %2889, ptr noundef %2891, i32 noundef %2892) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2894:                                             ; preds = %2867
  %2895 = load i32, ptr @test_count, align 4, !tbaa !5
  %2896 = add nsw i32 %2895, 1
  store i32 %2896, ptr @test_count, align 4, !tbaa !5
  %2897 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %2898 = icmp eq i32 %2897, -1
  br i1 %2898, label %2899, label %2921

2899:                                             ; preds = %2894
  %2900 = load i32, ptr %2353, align 4, !tbaa !5
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = call i32 @s2n_print_stacktrace(ptr noundef %2901) #9
  %2903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2904 = trunc nuw i8 %2903 to i1
  br i1 %2904, label %2905, label %2909

2905:                                             ; preds = %2899
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = call i32 @fileno(ptr noundef %2906) #9
  %2908 = call i32 @isatty(i32 noundef %2907) #9
  %.not610 = icmp eq i32 %2908, 0
  br i1 %.not610, label %2909, label %2910

2909:                                             ; preds = %2905, %2899
  br label %2910

2910:                                             ; preds = %2905, %2909
  %.str.5.sink1742 = phi ptr [ @.str.5, %2909 ], [ @.str.2, %2905 ]
  store i32 %2900, ptr %2353, align 4, !tbaa !5
  %2911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2912 = load i32, ptr @test_count, align 4, !tbaa !5
  %2913 = load i32, ptr %2299, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror(i32 noundef %2913, ptr noundef nonnull @.str.4) #9
  %2915 = load i32, ptr %2299, align 4, !tbaa !5
  %2916 = call ptr @s2n_strerror_debug(i32 noundef %2915, ptr noundef nonnull @.str.4) #9
  %2917 = load i32, ptr %2353, align 4, !tbaa !5
  %2918 = call ptr @strerror(i32 noundef %2917) #9
  %2919 = load i32, ptr %2353, align 4, !tbaa !5
  %2920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2911, ptr noundef nonnull %.str.5.sink1742, i32 noundef %2912, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 347, ptr noundef %2914, ptr noundef %2916, ptr noundef %2918, i32 noundef %2919) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2921:                                             ; preds = %2894
  %2922 = load i32, ptr @test_count, align 4, !tbaa !5
  %2923 = add nsw i32 %2922, 1
  store i32 %2923, ptr @test_count, align 4, !tbaa !5
  %2924 = getelementptr inbounds i8, ptr %171, i64 2172
  %2925 = load i32, ptr %2924, align 4, !tbaa !47
  %2926 = and i32 %2925, 16
  %.not551 = icmp eq i32 %2926, 0
  br i1 %.not551, label %2931, label %2927

2927:                                             ; preds = %2921
  %2928 = getelementptr inbounds i8, ptr %200, i64 2172
  %2929 = load i32, ptr %2928, align 4, !tbaa !47
  %2930 = and i32 %2929, 16
  %.not552 = icmp eq i32 %2930, 0
  br i1 %.not552, label %2931, label %2953

2931:                                             ; preds = %2927, %2921
  %2932 = load i32, ptr %2353, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = call i32 @s2n_print_stacktrace(ptr noundef %2933) #9
  %2935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2936 = trunc nuw i8 %2935 to i1
  br i1 %2936, label %2937, label %2941

2937:                                             ; preds = %2931
  %2938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2939 = call i32 @fileno(ptr noundef %2938) #9
  %2940 = call i32 @isatty(i32 noundef %2939) #9
  %.not553 = icmp eq i32 %2940, 0
  br i1 %.not553, label %2941, label %2942

2941:                                             ; preds = %2937, %2931
  br label %2942

2942:                                             ; preds = %2937, %2941
  %.str.5.sink1751 = phi ptr [ @.str.5, %2941 ], [ @.str.2, %2937 ]
  store i32 %2932, ptr %2353, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = load i32, ptr %2299, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror(i32 noundef %2945, ptr noundef nonnull @.str.4) #9
  %2947 = load i32, ptr %2299, align 4, !tbaa !5
  %2948 = call ptr @s2n_strerror_debug(i32 noundef %2947, ptr noundef nonnull @.str.4) #9
  %2949 = load i32, ptr %2353, align 4, !tbaa !5
  %2950 = call ptr @strerror(i32 noundef %2949) #9
  %2951 = load i32, ptr %2353, align 4, !tbaa !5
  %2952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef nonnull %.str.5.sink1751, i32 noundef %2944, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 350, ptr noundef %2946, ptr noundef %2948, ptr noundef %2950, i32 noundef %2951) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2953:                                             ; preds = %2927
  %2954 = add nsw i32 %2922, 2
  store i32 %2954, ptr @test_count, align 4, !tbaa !5
  %2955 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 2) #9
  br i1 %2955, label %2956, label %2980

2956:                                             ; preds = %2953
  %2957 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 2) #9
  br i1 %2957, label %2958, label %2980

2958:                                             ; preds = %2956
  %2959 = load i32, ptr %2353, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = call i32 @s2n_print_stacktrace(ptr noundef %2960) #9
  %2962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2963 = trunc nuw i8 %2962 to i1
  br i1 %2963, label %2964, label %2968

2964:                                             ; preds = %2958
  %2965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2966 = call i32 @fileno(ptr noundef %2965) #9
  %2967 = call i32 @isatty(i32 noundef %2966) #9
  %.not609 = icmp eq i32 %2967, 0
  br i1 %.not609, label %2968, label %2969

2968:                                             ; preds = %2964, %2958
  br label %2969

2969:                                             ; preds = %2964, %2968
  %.str.5.sink1760 = phi ptr [ @.str.5, %2968 ], [ @.str.2, %2964 ]
  store i32 %2959, ptr %2353, align 4, !tbaa !5
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = load i32, ptr %2299, align 4, !tbaa !5
  %2973 = call ptr @s2n_strerror(i32 noundef %2972, ptr noundef nonnull @.str.4) #9
  %2974 = load i32, ptr %2299, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror_debug(i32 noundef %2974, ptr noundef nonnull @.str.4) #9
  %2976 = load i32, ptr %2353, align 4, !tbaa !5
  %2977 = call ptr @strerror(i32 noundef %2976) #9
  %2978 = load i32, ptr %2353, align 4, !tbaa !5
  %2979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2970, ptr noundef nonnull %.str.5.sink1760, i32 noundef %2971, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %2973, ptr noundef %2975, ptr noundef %2977, i32 noundef %2978) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2980:                                             ; preds = %2953, %2956
  %2981 = load i32, ptr @test_count, align 4, !tbaa !5
  %2982 = add nsw i32 %2981, 1
  store i32 %2982, ptr @test_count, align 4, !tbaa !5
  %2983 = call i32 @validate_chosen_psk(ptr noundef nonnull %200, ptr noundef nonnull @test_shared_identity, i64 noundef 21, i64 noundef 1)
  %2984 = call zeroext i1 @s2n_result_is_ok(i32 %2983)
  br i1 %2984, label %3007, label %2985

2985:                                             ; preds = %2980
  %2986 = load i32, ptr %2353, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = call i32 @s2n_print_stacktrace(ptr noundef %2987) #9
  %2989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2990 = trunc nuw i8 %2989 to i1
  br i1 %2990, label %2991, label %2995

2991:                                             ; preds = %2985
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = call i32 @fileno(ptr noundef %2992) #9
  %2994 = call i32 @isatty(i32 noundef %2993) #9
  %.not554 = icmp eq i32 %2994, 0
  br i1 %.not554, label %2995, label %2996

2995:                                             ; preds = %2991, %2985
  br label %2996

2996:                                             ; preds = %2991, %2995
  %.str.5.sink1769 = phi ptr [ @.str.5, %2995 ], [ @.str.2, %2991 ]
  store i32 %2986, ptr %2353, align 4, !tbaa !5
  %2997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2998 = load i32, ptr @test_count, align 4, !tbaa !5
  %2999 = load i32, ptr %2299, align 4, !tbaa !5
  %3000 = call ptr @s2n_strerror(i32 noundef %2999, ptr noundef nonnull @.str.4) #9
  %3001 = load i32, ptr %2299, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror_debug(i32 noundef %3001, ptr noundef nonnull @.str.4) #9
  %3003 = load i32, ptr %2353, align 4, !tbaa !5
  %3004 = call ptr @strerror(i32 noundef %3003) #9
  %3005 = load i32, ptr %2353, align 4, !tbaa !5
  %3006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2997, ptr noundef nonnull %.str.5.sink1769, i32 noundef %2998, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 355, ptr noundef %3000, ptr noundef %3002, ptr noundef %3004, i32 noundef %3005) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3007:                                             ; preds = %2980
  %3008 = load i32, ptr @test_count, align 4, !tbaa !5
  %3009 = add nsw i32 %3008, 1
  store i32 %3009, ptr @test_count, align 4, !tbaa !5
  %3010 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %3011 = icmp eq i32 %3010, -1
  br i1 %3011, label %3012, label %3034

3012:                                             ; preds = %3007
  %3013 = load i32, ptr %2353, align 4, !tbaa !5
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = call i32 @s2n_print_stacktrace(ptr noundef %3014) #9
  %3016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3017 = trunc nuw i8 %3016 to i1
  br i1 %3017, label %3018, label %3022

3018:                                             ; preds = %3012
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @fileno(ptr noundef %3019) #9
  %3021 = call i32 @isatty(i32 noundef %3020) #9
  %.not608 = icmp eq i32 %3021, 0
  br i1 %.not608, label %3022, label %3023

3022:                                             ; preds = %3018, %3012
  br label %3023

3023:                                             ; preds = %3018, %3022
  %.str.5.sink1778 = phi ptr [ @.str.5, %3022 ], [ @.str.2, %3018 ]
  store i32 %3013, ptr %2353, align 4, !tbaa !5
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = load i32, ptr %2299, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror(i32 noundef %3026, ptr noundef nonnull @.str.4) #9
  %3028 = load i32, ptr %2299, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror_debug(i32 noundef %3028, ptr noundef nonnull @.str.4) #9
  %3030 = load i32, ptr %2353, align 4, !tbaa !5
  %3031 = call ptr @strerror(i32 noundef %3030) #9
  %3032 = load i32, ptr %2353, align 4, !tbaa !5
  %3033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3024, ptr noundef nonnull %.str.5.sink1778, i32 noundef %3025, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %3027, ptr noundef %3029, ptr noundef %3031, i32 noundef %3032) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3034:                                             ; preds = %3007
  %3035 = load i32, ptr @test_count, align 4, !tbaa !5
  %3036 = add nsw i32 %3035, 1
  store i32 %3036, ptr @test_count, align 4, !tbaa !5
  %3037 = call i32 @s2n_connection_wipe(ptr noundef nonnull %171) #9
  %3038 = icmp eq i32 %3037, -1
  br i1 %3038, label %3039, label %3061

3039:                                             ; preds = %3034
  %3040 = load i32, ptr %2353, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @s2n_print_stacktrace(ptr noundef %3041) #9
  %3043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3044 = trunc nuw i8 %3043 to i1
  br i1 %3044, label %3045, label %3049

3045:                                             ; preds = %3039
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = call i32 @fileno(ptr noundef %3046) #9
  %3048 = call i32 @isatty(i32 noundef %3047) #9
  %.not607 = icmp eq i32 %3048, 0
  br i1 %.not607, label %3049, label %3050

3049:                                             ; preds = %3045, %3039
  br label %3050

3050:                                             ; preds = %3045, %3049
  %.str.5.sink1787 = phi ptr [ @.str.5, %3049 ], [ @.str.2, %3045 ]
  store i32 %3040, ptr %2353, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = load i32, ptr %2299, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef nonnull @.str.4) #9
  %3055 = load i32, ptr %2299, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror_debug(i32 noundef %3055, ptr noundef nonnull @.str.4) #9
  %3057 = load i32, ptr %2353, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #9
  %3059 = load i32, ptr %2353, align 4, !tbaa !5
  %3060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef nonnull %.str.5.sink1787, i32 noundef %3052, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 359, ptr noundef %3054, ptr noundef %3056, ptr noundef %3058, i32 noundef %3059) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3061:                                             ; preds = %3034
  %3062 = load i32, ptr @test_count, align 4, !tbaa !5
  %3063 = add nsw i32 %3062, 1
  store i32 %3063, ptr @test_count, align 4, !tbaa !5
  %3064 = call i32 @s2n_connection_wipe(ptr noundef nonnull %200) #9
  %3065 = icmp eq i32 %3064, -1
  br i1 %3065, label %3066, label %3088

3066:                                             ; preds = %3061
  %3067 = load i32, ptr %2353, align 4, !tbaa !5
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = call i32 @s2n_print_stacktrace(ptr noundef %3068) #9
  %3070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3071 = trunc nuw i8 %3070 to i1
  br i1 %3071, label %3072, label %3076

3072:                                             ; preds = %3066
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = call i32 @fileno(ptr noundef %3073) #9
  %3075 = call i32 @isatty(i32 noundef %3074) #9
  %.not606 = icmp eq i32 %3075, 0
  br i1 %.not606, label %3076, label %3077

3076:                                             ; preds = %3072, %3066
  br label %3077

3077:                                             ; preds = %3072, %3076
  %.str.5.sink1796 = phi ptr [ @.str.5, %3076 ], [ @.str.2, %3072 ]
  store i32 %3067, ptr %2353, align 4, !tbaa !5
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = load i32, ptr @test_count, align 4, !tbaa !5
  %3080 = load i32, ptr %2299, align 4, !tbaa !5
  %3081 = call ptr @s2n_strerror(i32 noundef %3080, ptr noundef nonnull @.str.4) #9
  %3082 = load i32, ptr %2299, align 4, !tbaa !5
  %3083 = call ptr @s2n_strerror_debug(i32 noundef %3082, ptr noundef nonnull @.str.4) #9
  %3084 = load i32, ptr %2353, align 4, !tbaa !5
  %3085 = call ptr @strerror(i32 noundef %3084) #9
  %3086 = load i32, ptr %2353, align 4, !tbaa !5
  %3087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3078, ptr noundef nonnull %.str.5.sink1796, i32 noundef %3079, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 360, ptr noundef %3081, ptr noundef %3083, ptr noundef %3085, i32 noundef %3086) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3088:                                             ; preds = %3061
  %3089 = load i32, ptr @test_count, align 4, !tbaa !5
  %3090 = add nsw i32 %3089, 1
  store i32 %3090, ptr @test_count, align 4, !tbaa !5
  %3091 = call i32 @s2n_config_set_client_hello_cb(ptr noundef nonnull %316, ptr noundef null, ptr noundef null) #9
  %3092 = icmp eq i32 %3091, -1
  br i1 %3092, label %3093, label %3115

3093:                                             ; preds = %3088
  %3094 = load i32, ptr %2353, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = call i32 @s2n_print_stacktrace(ptr noundef %3095) #9
  %3097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3098 = trunc nuw i8 %3097 to i1
  br i1 %3098, label %3099, label %3103

3099:                                             ; preds = %3093
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = call i32 @fileno(ptr noundef %3100) #9
  %3102 = call i32 @isatty(i32 noundef %3101) #9
  %.not605 = icmp eq i32 %3102, 0
  br i1 %.not605, label %3103, label %3104

3103:                                             ; preds = %3099, %3093
  br label %3104

3104:                                             ; preds = %3099, %3103
  %.str.5.sink1805 = phi ptr [ @.str.5, %3103 ], [ @.str.2, %3099 ]
  store i32 %3094, ptr %2353, align 4, !tbaa !5
  %3105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3106 = load i32, ptr @test_count, align 4, !tbaa !5
  %3107 = load i32, ptr %2299, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror(i32 noundef %3107, ptr noundef nonnull @.str.4) #9
  %3109 = load i32, ptr %2299, align 4, !tbaa !5
  %3110 = call ptr @s2n_strerror_debug(i32 noundef %3109, ptr noundef nonnull @.str.4) #9
  %3111 = load i32, ptr %2353, align 4, !tbaa !5
  %3112 = call ptr @strerror(i32 noundef %3111) #9
  %3113 = load i32, ptr %2353, align 4, !tbaa !5
  %3114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3105, ptr noundef nonnull %.str.5.sink1805, i32 noundef %3106, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %3108, ptr noundef %3110, ptr noundef %3112, i32 noundef %3113) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3115:                                             ; preds = %3088
  %3116 = load i32, ptr @test_count, align 4, !tbaa !5
  %3117 = add nsw i32 %3116, 1
  store i32 %3117, ptr @test_count, align 4, !tbaa !5
  %3118 = call i32 @s2n_connection_set_config(ptr noundef nonnull %171, ptr noundef nonnull %316) #9
  %3119 = icmp eq i32 %3118, -1
  br i1 %3119, label %3120, label %3142

3120:                                             ; preds = %3115
  %3121 = load i32, ptr %2353, align 4, !tbaa !5
  %3122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3123 = call i32 @s2n_print_stacktrace(ptr noundef %3122) #9
  %3124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3125 = trunc nuw i8 %3124 to i1
  br i1 %3125, label %3126, label %3130

3126:                                             ; preds = %3120
  %3127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3128 = call i32 @fileno(ptr noundef %3127) #9
  %3129 = call i32 @isatty(i32 noundef %3128) #9
  %.not604 = icmp eq i32 %3129, 0
  br i1 %.not604, label %3130, label %3131

3130:                                             ; preds = %3126, %3120
  br label %3131

3131:                                             ; preds = %3126, %3130
  %.str.5.sink1814 = phi ptr [ @.str.5, %3130 ], [ @.str.2, %3126 ]
  store i32 %3121, ptr %2353, align 4, !tbaa !5
  %3132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3133 = load i32, ptr @test_count, align 4, !tbaa !5
  %3134 = load i32, ptr %2299, align 4, !tbaa !5
  %3135 = call ptr @s2n_strerror(i32 noundef %3134, ptr noundef nonnull @.str.4) #9
  %3136 = load i32, ptr %2299, align 4, !tbaa !5
  %3137 = call ptr @s2n_strerror_debug(i32 noundef %3136, ptr noundef nonnull @.str.4) #9
  %3138 = load i32, ptr %2353, align 4, !tbaa !5
  %3139 = call ptr @strerror(i32 noundef %3138) #9
  %3140 = load i32, ptr %2353, align 4, !tbaa !5
  %3141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3132, ptr noundef nonnull %.str.5.sink1814, i32 noundef %3133, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %3135, ptr noundef %3137, ptr noundef %3139, i32 noundef %3140) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3142:                                             ; preds = %3115
  %3143 = load i32, ptr @test_count, align 4, !tbaa !5
  %3144 = add nsw i32 %3143, 1
  store i32 %3144, ptr @test_count, align 4, !tbaa !5
  %3145 = call i32 @s2n_connection_set_config(ptr noundef nonnull %200, ptr noundef nonnull %316) #9
  %3146 = icmp eq i32 %3145, -1
  br i1 %3146, label %3147, label %3169

3147:                                             ; preds = %3142
  %3148 = load i32, ptr %2353, align 4, !tbaa !5
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = call i32 @s2n_print_stacktrace(ptr noundef %3149) #9
  %3151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3152 = trunc nuw i8 %3151 to i1
  br i1 %3152, label %3153, label %3157

3153:                                             ; preds = %3147
  %3154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3155 = call i32 @fileno(ptr noundef %3154) #9
  %3156 = call i32 @isatty(i32 noundef %3155) #9
  %.not603 = icmp eq i32 %3156, 0
  br i1 %.not603, label %3157, label %3158

3157:                                             ; preds = %3153, %3147
  br label %3158

3158:                                             ; preds = %3153, %3157
  %.str.5.sink1823 = phi ptr [ @.str.5, %3157 ], [ @.str.2, %3153 ]
  store i32 %3148, ptr %2353, align 4, !tbaa !5
  %3159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3160 = load i32, ptr @test_count, align 4, !tbaa !5
  %3161 = load i32, ptr %2299, align 4, !tbaa !5
  %3162 = call ptr @s2n_strerror(i32 noundef %3161, ptr noundef nonnull @.str.4) #9
  %3163 = load i32, ptr %2299, align 4, !tbaa !5
  %3164 = call ptr @s2n_strerror_debug(i32 noundef %3163, ptr noundef nonnull @.str.4) #9
  %3165 = load i32, ptr %2353, align 4, !tbaa !5
  %3166 = call ptr @strerror(i32 noundef %3165) #9
  %3167 = load i32, ptr %2353, align 4, !tbaa !5
  %3168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3159, ptr noundef nonnull %.str.5.sink1823, i32 noundef %3160, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %3162, ptr noundef %3164, ptr noundef %3166, i32 noundef %3167) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3169:                                             ; preds = %3142
  %3170 = load i32, ptr @test_count, align 4, !tbaa !5
  %3171 = add nsw i32 %3170, 1
  store i32 %3171, ptr @test_count, align 4, !tbaa !5
  %3172 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %171, ptr noundef nonnull %4) #9
  %3173 = icmp eq i32 %3172, -1
  br i1 %3173, label %3174, label %3196

3174:                                             ; preds = %3169
  %3175 = load i32, ptr %2353, align 4, !tbaa !5
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = call i32 @s2n_print_stacktrace(ptr noundef %3176) #9
  %3178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3179 = trunc nuw i8 %3178 to i1
  br i1 %3179, label %3180, label %3184

3180:                                             ; preds = %3174
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = call i32 @fileno(ptr noundef %3181) #9
  %3183 = call i32 @isatty(i32 noundef %3182) #9
  %.not602 = icmp eq i32 %3183, 0
  br i1 %.not602, label %3184, label %3185

3184:                                             ; preds = %3180, %3174
  br label %3185

3185:                                             ; preds = %3180, %3184
  %.str.5.sink1832 = phi ptr [ @.str.5, %3184 ], [ @.str.2, %3180 ]
  store i32 %3175, ptr %2353, align 4, !tbaa !5
  %3186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3187 = load i32, ptr @test_count, align 4, !tbaa !5
  %3188 = load i32, ptr %2299, align 4, !tbaa !5
  %3189 = call ptr @s2n_strerror(i32 noundef %3188, ptr noundef nonnull @.str.4) #9
  %3190 = load i32, ptr %2299, align 4, !tbaa !5
  %3191 = call ptr @s2n_strerror_debug(i32 noundef %3190, ptr noundef nonnull @.str.4) #9
  %3192 = load i32, ptr %2353, align 4, !tbaa !5
  %3193 = call ptr @strerror(i32 noundef %3192) #9
  %3194 = load i32, ptr %2353, align 4, !tbaa !5
  %3195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3186, ptr noundef nonnull %.str.5.sink1832, i32 noundef %3187, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %3189, ptr noundef %3191, ptr noundef %3193, i32 noundef %3194) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3196:                                             ; preds = %3169
  %3197 = load i32, ptr @test_count, align 4, !tbaa !5
  %3198 = add nsw i32 %3197, 1
  store i32 %3198, ptr @test_count, align 4, !tbaa !5
  %3199 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %200, ptr noundef nonnull %4) #9
  %3200 = icmp eq i32 %3199, -1
  br i1 %3200, label %3201, label %3223

3201:                                             ; preds = %3196
  %3202 = load i32, ptr %2353, align 4, !tbaa !5
  %3203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3204 = call i32 @s2n_print_stacktrace(ptr noundef %3203) #9
  %3205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3206 = trunc nuw i8 %3205 to i1
  br i1 %3206, label %3207, label %3211

3207:                                             ; preds = %3201
  %3208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3209 = call i32 @fileno(ptr noundef %3208) #9
  %3210 = call i32 @isatty(i32 noundef %3209) #9
  %.not601 = icmp eq i32 %3210, 0
  br i1 %.not601, label %3211, label %3212

3211:                                             ; preds = %3207, %3201
  br label %3212

3212:                                             ; preds = %3207, %3211
  %.str.5.sink1841 = phi ptr [ @.str.5, %3211 ], [ @.str.2, %3207 ]
  store i32 %3202, ptr %2353, align 4, !tbaa !5
  %3213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3214 = load i32, ptr @test_count, align 4, !tbaa !5
  %3215 = load i32, ptr %2299, align 4, !tbaa !5
  %3216 = call ptr @s2n_strerror(i32 noundef %3215, ptr noundef nonnull @.str.4) #9
  %3217 = load i32, ptr %2299, align 4, !tbaa !5
  %3218 = call ptr @s2n_strerror_debug(i32 noundef %3217, ptr noundef nonnull @.str.4) #9
  %3219 = load i32, ptr %2353, align 4, !tbaa !5
  %3220 = call ptr @strerror(i32 noundef %3219) #9
  %3221 = load i32, ptr %2353, align 4, !tbaa !5
  %3222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3213, ptr noundef nonnull %.str.5.sink1841, i32 noundef %3214, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %3216, ptr noundef %3218, ptr noundef %3220, i32 noundef %3221) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3223:                                             ; preds = %3196
  %3224 = load i32, ptr @test_count, align 4, !tbaa !5
  %3225 = add nsw i32 %3224, 1
  store i32 %3225, ptr @test_count, align 4, !tbaa !5
  %3226 = call i32 @setup_psks_with_no_match(ptr noundef nonnull %171, ptr noundef nonnull %200)
  %3227 = call zeroext i1 @s2n_result_is_ok(i32 %3226)
  br i1 %3227, label %3250, label %3228

3228:                                             ; preds = %3223
  %3229 = load i32, ptr %2353, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @s2n_print_stacktrace(ptr noundef %3230) #9
  %3232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3233 = trunc nuw i8 %3232 to i1
  br i1 %3233, label %3234, label %3238

3234:                                             ; preds = %3228
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @fileno(ptr noundef %3235) #9
  %3237 = call i32 @isatty(i32 noundef %3236) #9
  %.not555 = icmp eq i32 %3237, 0
  br i1 %.not555, label %3238, label %3239

3238:                                             ; preds = %3234, %3228
  br label %3239

3239:                                             ; preds = %3234, %3238
  %.str.5.sink1850 = phi ptr [ @.str.5, %3238 ], [ @.str.2, %3234 ]
  store i32 %3229, ptr %2353, align 4, !tbaa !5
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = load i32, ptr @test_count, align 4, !tbaa !5
  %3242 = load i32, ptr %2299, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror(i32 noundef %3242, ptr noundef nonnull @.str.4) #9
  %3244 = load i32, ptr %2299, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror_debug(i32 noundef %3244, ptr noundef nonnull @.str.4) #9
  %3246 = load i32, ptr %2353, align 4, !tbaa !5
  %3247 = call ptr @strerror(i32 noundef %3246) #9
  %3248 = load i32, ptr %2353, align 4, !tbaa !5
  %3249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3240, ptr noundef nonnull %.str.5.sink1850, i32 noundef %3241, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %3243, ptr noundef %3245, ptr noundef %3247, i32 noundef %3248) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3250:                                             ; preds = %3223
  %3251 = load i32, ptr @test_count, align 4, !tbaa !5
  %3252 = add nsw i32 %3251, 1
  store i32 %3252, ptr @test_count, align 4, !tbaa !5
  %3253 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %3254 = icmp eq i32 %3253, -1
  br i1 %3254, label %3255, label %3277

3255:                                             ; preds = %3250
  %3256 = load i32, ptr %2353, align 4, !tbaa !5
  %3257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3258 = call i32 @s2n_print_stacktrace(ptr noundef %3257) #9
  %3259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3260 = trunc nuw i8 %3259 to i1
  br i1 %3260, label %3261, label %3265

3261:                                             ; preds = %3255
  %3262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3263 = call i32 @fileno(ptr noundef %3262) #9
  %3264 = call i32 @isatty(i32 noundef %3263) #9
  %.not600 = icmp eq i32 %3264, 0
  br i1 %.not600, label %3265, label %3266

3265:                                             ; preds = %3261, %3255
  br label %3266

3266:                                             ; preds = %3261, %3265
  %.str.5.sink1859 = phi ptr [ @.str.5, %3265 ], [ @.str.2, %3261 ]
  store i32 %3256, ptr %2353, align 4, !tbaa !5
  %3267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3268 = load i32, ptr @test_count, align 4, !tbaa !5
  %3269 = load i32, ptr %2299, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror(i32 noundef %3269, ptr noundef nonnull @.str.4) #9
  %3271 = load i32, ptr %2299, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror_debug(i32 noundef %3271, ptr noundef nonnull @.str.4) #9
  %3273 = load i32, ptr %2353, align 4, !tbaa !5
  %3274 = call ptr @strerror(i32 noundef %3273) #9
  %3275 = load i32, ptr %2353, align 4, !tbaa !5
  %3276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3267, ptr noundef nonnull %.str.5.sink1859, i32 noundef %3268, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3270, ptr noundef %3272, ptr noundef %3274, i32 noundef %3275) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3277:                                             ; preds = %3250
  %3278 = load i32, ptr @test_count, align 4, !tbaa !5
  %3279 = add nsw i32 %3278, 1
  store i32 %3279, ptr @test_count, align 4, !tbaa !5
  %3280 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 2) #9
  br i1 %3280, label %3281, label %3283

3281:                                             ; preds = %3277
  %3282 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 2) #9
  br i1 %3282, label %3305, label %3283

3283:                                             ; preds = %3281, %3277
  %3284 = load i32, ptr %2353, align 4, !tbaa !5
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = call i32 @s2n_print_stacktrace(ptr noundef %3285) #9
  %3287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3288 = trunc nuw i8 %3287 to i1
  br i1 %3288, label %3289, label %3293

3289:                                             ; preds = %3283
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = call i32 @fileno(ptr noundef %3290) #9
  %3292 = call i32 @isatty(i32 noundef %3291) #9
  %.not556 = icmp eq i32 %3292, 0
  br i1 %.not556, label %3293, label %3294

3293:                                             ; preds = %3289, %3283
  br label %3294

3294:                                             ; preds = %3289, %3293
  %.str.5.sink1868 = phi ptr [ @.str.5, %3293 ], [ @.str.2, %3289 ]
  store i32 %3284, ptr %2353, align 4, !tbaa !5
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = load i32, ptr @test_count, align 4, !tbaa !5
  %3297 = load i32, ptr %2299, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror(i32 noundef %3297, ptr noundef nonnull @.str.4) #9
  %3299 = load i32, ptr %2299, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror_debug(i32 noundef %3299, ptr noundef nonnull @.str.4) #9
  %3301 = load i32, ptr %2353, align 4, !tbaa !5
  %3302 = call ptr @strerror(i32 noundef %3301) #9
  %3303 = load i32, ptr %2353, align 4, !tbaa !5
  %3304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3295, ptr noundef nonnull %.str.5.sink1868, i32 noundef %3296, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %3298, ptr noundef %3300, ptr noundef %3302, i32 noundef %3303) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3305:                                             ; preds = %3281
  %3306 = load i32, ptr @test_count, align 4, !tbaa !5
  %3307 = add nsw i32 %3306, 1
  store i32 %3307, ptr @test_count, align 4, !tbaa !5
  %3308 = getelementptr inbounds i8, ptr %200, i64 1736
  %3309 = load ptr, ptr %3308, align 8, !tbaa !48
  %3310 = icmp eq ptr %3309, null
  br i1 %3310, label %3333, label %3311

3311:                                             ; preds = %3305
  %3312 = load i32, ptr %2353, align 4, !tbaa !5
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3314 = call i32 @s2n_print_stacktrace(ptr noundef %3313) #9
  %3315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3316 = trunc nuw i8 %3315 to i1
  br i1 %3316, label %3317, label %3321

3317:                                             ; preds = %3311
  %3318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3319 = call i32 @fileno(ptr noundef %3318) #9
  %3320 = call i32 @isatty(i32 noundef %3319) #9
  %.not557 = icmp eq i32 %3320, 0
  br i1 %.not557, label %3321, label %3322

3321:                                             ; preds = %3317, %3311
  br label %3322

3322:                                             ; preds = %3317, %3321
  %.str.5.sink1877 = phi ptr [ @.str.5, %3321 ], [ @.str.2, %3317 ]
  store i32 %3312, ptr %2353, align 4, !tbaa !5
  %3323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3324 = load i32, ptr @test_count, align 4, !tbaa !5
  %3325 = load i32, ptr %2299, align 4, !tbaa !5
  %3326 = call ptr @s2n_strerror(i32 noundef %3325, ptr noundef nonnull @.str.4) #9
  %3327 = load i32, ptr %2299, align 4, !tbaa !5
  %3328 = call ptr @s2n_strerror_debug(i32 noundef %3327, ptr noundef nonnull @.str.4) #9
  %3329 = load i32, ptr %2353, align 4, !tbaa !5
  %3330 = call ptr @strerror(i32 noundef %3329) #9
  %3331 = load i32, ptr %2353, align 4, !tbaa !5
  %3332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3323, ptr noundef nonnull %.str.5.sink1877, i32 noundef %3324, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 380, ptr noundef %3326, ptr noundef %3328, ptr noundef %3330, i32 noundef %3331) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3333:                                             ; preds = %3305
  %3334 = add nsw i32 %3306, 2
  store i32 %3334, ptr @test_count, align 4, !tbaa !5
  %3335 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %3336 = icmp eq i32 %3335, -1
  br i1 %3336, label %3337, label %3359

3337:                                             ; preds = %3333
  %3338 = load i32, ptr %2353, align 4, !tbaa !5
  %3339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3340 = call i32 @s2n_print_stacktrace(ptr noundef %3339) #9
  %3341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3342 = trunc nuw i8 %3341 to i1
  br i1 %3342, label %3343, label %3347

3343:                                             ; preds = %3337
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3345 = call i32 @fileno(ptr noundef %3344) #9
  %3346 = call i32 @isatty(i32 noundef %3345) #9
  %.not599 = icmp eq i32 %3346, 0
  br i1 %.not599, label %3347, label %3348

3347:                                             ; preds = %3343, %3337
  br label %3348

3348:                                             ; preds = %3343, %3347
  %.str.5.sink1886 = phi ptr [ @.str.5, %3347 ], [ @.str.2, %3343 ]
  store i32 %3338, ptr %2353, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = load i32, ptr @test_count, align 4, !tbaa !5
  %3351 = load i32, ptr %2299, align 4, !tbaa !5
  %3352 = call ptr @s2n_strerror(i32 noundef %3351, ptr noundef nonnull @.str.4) #9
  %3353 = load i32, ptr %2299, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror_debug(i32 noundef %3353, ptr noundef nonnull @.str.4) #9
  %3355 = load i32, ptr %2353, align 4, !tbaa !5
  %3356 = call ptr @strerror(i32 noundef %3355) #9
  %3357 = load i32, ptr %2353, align 4, !tbaa !5
  %3358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3349, ptr noundef nonnull %.str.5.sink1886, i32 noundef %3350, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %3352, ptr noundef %3354, ptr noundef %3356, i32 noundef %3357) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3359:                                             ; preds = %3333
  %3360 = load i32, ptr @test_count, align 4, !tbaa !5
  %3361 = add nsw i32 %3360, 1
  store i32 %3361, ptr @test_count, align 4, !tbaa !5
  %3362 = call i32 @s2n_connection_wipe(ptr noundef nonnull %171) #9
  %3363 = icmp eq i32 %3362, -1
  br i1 %3363, label %3364, label %3386

3364:                                             ; preds = %3359
  %3365 = load i32, ptr %2353, align 4, !tbaa !5
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = call i32 @s2n_print_stacktrace(ptr noundef %3366) #9
  %3368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3369 = trunc nuw i8 %3368 to i1
  br i1 %3369, label %3370, label %3374

3370:                                             ; preds = %3364
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = call i32 @fileno(ptr noundef %3371) #9
  %3373 = call i32 @isatty(i32 noundef %3372) #9
  %.not598 = icmp eq i32 %3373, 0
  br i1 %.not598, label %3374, label %3375

3374:                                             ; preds = %3370, %3364
  br label %3375

3375:                                             ; preds = %3370, %3374
  %.str.5.sink1895 = phi ptr [ @.str.5, %3374 ], [ @.str.2, %3370 ]
  store i32 %3365, ptr %2353, align 4, !tbaa !5
  %3376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3377 = load i32, ptr @test_count, align 4, !tbaa !5
  %3378 = load i32, ptr %2299, align 4, !tbaa !5
  %3379 = call ptr @s2n_strerror(i32 noundef %3378, ptr noundef nonnull @.str.4) #9
  %3380 = load i32, ptr %2299, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror_debug(i32 noundef %3380, ptr noundef nonnull @.str.4) #9
  %3382 = load i32, ptr %2353, align 4, !tbaa !5
  %3383 = call ptr @strerror(i32 noundef %3382) #9
  %3384 = load i32, ptr %2353, align 4, !tbaa !5
  %3385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3376, ptr noundef nonnull %.str.5.sink1895, i32 noundef %3377, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %3379, ptr noundef %3381, ptr noundef %3383, i32 noundef %3384) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3386:                                             ; preds = %3359
  %3387 = load i32, ptr @test_count, align 4, !tbaa !5
  %3388 = add nsw i32 %3387, 1
  store i32 %3388, ptr @test_count, align 4, !tbaa !5
  %3389 = call i32 @s2n_connection_wipe(ptr noundef nonnull %200) #9
  %3390 = icmp eq i32 %3389, -1
  br i1 %3390, label %3391, label %3413

3391:                                             ; preds = %3386
  %3392 = load i32, ptr %2353, align 4, !tbaa !5
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3394 = call i32 @s2n_print_stacktrace(ptr noundef %3393) #9
  %3395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3396 = trunc nuw i8 %3395 to i1
  br i1 %3396, label %3397, label %3401

3397:                                             ; preds = %3391
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3399 = call i32 @fileno(ptr noundef %3398) #9
  %3400 = call i32 @isatty(i32 noundef %3399) #9
  %.not597 = icmp eq i32 %3400, 0
  br i1 %.not597, label %3401, label %3402

3401:                                             ; preds = %3397, %3391
  br label %3402

3402:                                             ; preds = %3397, %3401
  %.str.5.sink1904 = phi ptr [ @.str.5, %3401 ], [ @.str.2, %3397 ]
  store i32 %3392, ptr %2353, align 4, !tbaa !5
  %3403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3404 = load i32, ptr @test_count, align 4, !tbaa !5
  %3405 = load i32, ptr %2299, align 4, !tbaa !5
  %3406 = call ptr @s2n_strerror(i32 noundef %3405, ptr noundef nonnull @.str.4) #9
  %3407 = load i32, ptr %2299, align 4, !tbaa !5
  %3408 = call ptr @s2n_strerror_debug(i32 noundef %3407, ptr noundef nonnull @.str.4) #9
  %3409 = load i32, ptr %2353, align 4, !tbaa !5
  %3410 = call ptr @strerror(i32 noundef %3409) #9
  %3411 = load i32, ptr %2353, align 4, !tbaa !5
  %3412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3403, ptr noundef nonnull %.str.5.sink1904, i32 noundef %3404, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %3406, ptr noundef %3408, ptr noundef %3410, i32 noundef %3411) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3413:                                             ; preds = %3386
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = add nsw i32 %3414, 1
  store i32 %3415, ptr @test_count, align 4, !tbaa !5
  %3416 = call i32 @s2n_connection_set_config(ptr noundef nonnull %171, ptr noundef nonnull %316) #9
  %3417 = icmp eq i32 %3416, -1
  br i1 %3417, label %3418, label %3440

3418:                                             ; preds = %3413
  %3419 = load i32, ptr %2353, align 4, !tbaa !5
  %3420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3421 = call i32 @s2n_print_stacktrace(ptr noundef %3420) #9
  %3422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3423 = trunc nuw i8 %3422 to i1
  br i1 %3423, label %3424, label %3428

3424:                                             ; preds = %3418
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = call i32 @fileno(ptr noundef %3425) #9
  %3427 = call i32 @isatty(i32 noundef %3426) #9
  %.not596 = icmp eq i32 %3427, 0
  br i1 %.not596, label %3428, label %3429

3428:                                             ; preds = %3424, %3418
  br label %3429

3429:                                             ; preds = %3424, %3428
  %.str.5.sink1913 = phi ptr [ @.str.5, %3428 ], [ @.str.2, %3424 ]
  store i32 %3419, ptr %2353, align 4, !tbaa !5
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = load i32, ptr @test_count, align 4, !tbaa !5
  %3432 = load i32, ptr %2299, align 4, !tbaa !5
  %3433 = call ptr @s2n_strerror(i32 noundef %3432, ptr noundef nonnull @.str.4) #9
  %3434 = load i32, ptr %2299, align 4, !tbaa !5
  %3435 = call ptr @s2n_strerror_debug(i32 noundef %3434, ptr noundef nonnull @.str.4) #9
  %3436 = load i32, ptr %2353, align 4, !tbaa !5
  %3437 = call ptr @strerror(i32 noundef %3436) #9
  %3438 = load i32, ptr %2353, align 4, !tbaa !5
  %3439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3430, ptr noundef nonnull %.str.5.sink1913, i32 noundef %3431, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %3433, ptr noundef %3435, ptr noundef %3437, i32 noundef %3438) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3440:                                             ; preds = %3413
  %3441 = load i32, ptr @test_count, align 4, !tbaa !5
  %3442 = add nsw i32 %3441, 1
  store i32 %3442, ptr @test_count, align 4, !tbaa !5
  %3443 = call i32 @s2n_connection_set_config(ptr noundef nonnull %200, ptr noundef nonnull %316) #9
  %3444 = icmp eq i32 %3443, -1
  br i1 %3444, label %3445, label %3467

3445:                                             ; preds = %3440
  %3446 = load i32, ptr %2353, align 4, !tbaa !5
  %3447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3448 = call i32 @s2n_print_stacktrace(ptr noundef %3447) #9
  %3449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3450 = trunc nuw i8 %3449 to i1
  br i1 %3450, label %3451, label %3455

3451:                                             ; preds = %3445
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3453 = call i32 @fileno(ptr noundef %3452) #9
  %3454 = call i32 @isatty(i32 noundef %3453) #9
  %.not595 = icmp eq i32 %3454, 0
  br i1 %.not595, label %3455, label %3456

3455:                                             ; preds = %3451, %3445
  br label %3456

3456:                                             ; preds = %3451, %3455
  %.str.5.sink1922 = phi ptr [ @.str.5, %3455 ], [ @.str.2, %3451 ]
  store i32 %3446, ptr %2353, align 4, !tbaa !5
  %3457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3458 = load i32, ptr @test_count, align 4, !tbaa !5
  %3459 = load i32, ptr %2299, align 4, !tbaa !5
  %3460 = call ptr @s2n_strerror(i32 noundef %3459, ptr noundef nonnull @.str.4) #9
  %3461 = load i32, ptr %2299, align 4, !tbaa !5
  %3462 = call ptr @s2n_strerror_debug(i32 noundef %3461, ptr noundef nonnull @.str.4) #9
  %3463 = load i32, ptr %2353, align 4, !tbaa !5
  %3464 = call ptr @strerror(i32 noundef %3463) #9
  %3465 = load i32, ptr %2353, align 4, !tbaa !5
  %3466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3457, ptr noundef nonnull %.str.5.sink1922, i32 noundef %3458, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %3460, ptr noundef %3462, ptr noundef %3464, i32 noundef %3465) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3467:                                             ; preds = %3440
  %3468 = load i32, ptr @test_count, align 4, !tbaa !5
  %3469 = add nsw i32 %3468, 1
  store i32 %3469, ptr @test_count, align 4, !tbaa !5
  %3470 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %171, ptr noundef nonnull %4) #9
  %3471 = icmp eq i32 %3470, -1
  br i1 %3471, label %3472, label %3494

3472:                                             ; preds = %3467
  %3473 = load i32, ptr %2353, align 4, !tbaa !5
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = call i32 @s2n_print_stacktrace(ptr noundef %3474) #9
  %3476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3477 = trunc nuw i8 %3476 to i1
  br i1 %3477, label %3478, label %3482

3478:                                             ; preds = %3472
  %3479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3480 = call i32 @fileno(ptr noundef %3479) #9
  %3481 = call i32 @isatty(i32 noundef %3480) #9
  %.not594 = icmp eq i32 %3481, 0
  br i1 %.not594, label %3482, label %3483

3482:                                             ; preds = %3478, %3472
  br label %3483

3483:                                             ; preds = %3478, %3482
  %.str.5.sink1931 = phi ptr [ @.str.5, %3482 ], [ @.str.2, %3478 ]
  store i32 %3473, ptr %2353, align 4, !tbaa !5
  %3484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3485 = load i32, ptr @test_count, align 4, !tbaa !5
  %3486 = load i32, ptr %2299, align 4, !tbaa !5
  %3487 = call ptr @s2n_strerror(i32 noundef %3486, ptr noundef nonnull @.str.4) #9
  %3488 = load i32, ptr %2299, align 4, !tbaa !5
  %3489 = call ptr @s2n_strerror_debug(i32 noundef %3488, ptr noundef nonnull @.str.4) #9
  %3490 = load i32, ptr %2353, align 4, !tbaa !5
  %3491 = call ptr @strerror(i32 noundef %3490) #9
  %3492 = load i32, ptr %2353, align 4, !tbaa !5
  %3493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3484, ptr noundef nonnull %.str.5.sink1931, i32 noundef %3485, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %3487, ptr noundef %3489, ptr noundef %3491, i32 noundef %3492) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3494:                                             ; preds = %3467
  %3495 = load i32, ptr @test_count, align 4, !tbaa !5
  %3496 = add nsw i32 %3495, 1
  store i32 %3496, ptr @test_count, align 4, !tbaa !5
  %3497 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %200, ptr noundef nonnull %4) #9
  %3498 = icmp eq i32 %3497, -1
  br i1 %3498, label %3499, label %3521

3499:                                             ; preds = %3494
  %3500 = load i32, ptr %2353, align 4, !tbaa !5
  %3501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3502 = call i32 @s2n_print_stacktrace(ptr noundef %3501) #9
  %3503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3504 = trunc nuw i8 %3503 to i1
  br i1 %3504, label %3505, label %3509

3505:                                             ; preds = %3499
  %3506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3507 = call i32 @fileno(ptr noundef %3506) #9
  %3508 = call i32 @isatty(i32 noundef %3507) #9
  %.not593 = icmp eq i32 %3508, 0
  br i1 %.not593, label %3509, label %3510

3509:                                             ; preds = %3505, %3499
  br label %3510

3510:                                             ; preds = %3505, %3509
  %.str.5.sink1940 = phi ptr [ @.str.5, %3509 ], [ @.str.2, %3505 ]
  store i32 %3500, ptr %2353, align 4, !tbaa !5
  %3511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3512 = load i32, ptr @test_count, align 4, !tbaa !5
  %3513 = load i32, ptr %2299, align 4, !tbaa !5
  %3514 = call ptr @s2n_strerror(i32 noundef %3513, ptr noundef nonnull @.str.4) #9
  %3515 = load i32, ptr %2299, align 4, !tbaa !5
  %3516 = call ptr @s2n_strerror_debug(i32 noundef %3515, ptr noundef nonnull @.str.4) #9
  %3517 = load i32, ptr %2353, align 4, !tbaa !5
  %3518 = call ptr @strerror(i32 noundef %3517) #9
  %3519 = load i32, ptr %2353, align 4, !tbaa !5
  %3520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3511, ptr noundef nonnull %.str.5.sink1940, i32 noundef %3512, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %3514, ptr noundef %3516, ptr noundef %3518, i32 noundef %3519) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3521:                                             ; preds = %3494
  %3522 = load i32, ptr @test_count, align 4, !tbaa !5
  %3523 = add nsw i32 %3522, 1
  store i32 %3523, ptr @test_count, align 4, !tbaa !5
  %3524 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %171, i32 noundef 1) #9
  %3525 = icmp eq i32 %3524, -1
  br i1 %3525, label %3526, label %3548

3526:                                             ; preds = %3521
  %3527 = load i32, ptr %2353, align 4, !tbaa !5
  %3528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3529 = call i32 @s2n_print_stacktrace(ptr noundef %3528) #9
  %3530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3531 = trunc nuw i8 %3530 to i1
  br i1 %3531, label %3532, label %3536

3532:                                             ; preds = %3526
  %3533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3534 = call i32 @fileno(ptr noundef %3533) #9
  %3535 = call i32 @isatty(i32 noundef %3534) #9
  %.not592 = icmp eq i32 %3535, 0
  br i1 %.not592, label %3536, label %3537

3536:                                             ; preds = %3532, %3526
  br label %3537

3537:                                             ; preds = %3532, %3536
  %.str.5.sink1949 = phi ptr [ @.str.5, %3536 ], [ @.str.2, %3532 ]
  store i32 %3527, ptr %2353, align 4, !tbaa !5
  %3538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3539 = load i32, ptr @test_count, align 4, !tbaa !5
  %3540 = load i32, ptr %2299, align 4, !tbaa !5
  %3541 = call ptr @s2n_strerror(i32 noundef %3540, ptr noundef nonnull @.str.4) #9
  %3542 = load i32, ptr %2299, align 4, !tbaa !5
  %3543 = call ptr @s2n_strerror_debug(i32 noundef %3542, ptr noundef nonnull @.str.4) #9
  %3544 = load i32, ptr %2353, align 4, !tbaa !5
  %3545 = call ptr @strerror(i32 noundef %3544) #9
  %3546 = load i32, ptr %2353, align 4, !tbaa !5
  %3547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3538, ptr noundef nonnull %.str.5.sink1949, i32 noundef %3539, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 395, ptr noundef %3541, ptr noundef %3543, ptr noundef %3545, i32 noundef %3546) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3548:                                             ; preds = %3521
  %3549 = load i32, ptr @test_count, align 4, !tbaa !5
  %3550 = add nsw i32 %3549, 1
  store i32 %3550, ptr @test_count, align 4, !tbaa !5
  %3551 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %200, i32 noundef 1) #9
  %3552 = icmp eq i32 %3551, -1
  br i1 %3552, label %3553, label %3575

3553:                                             ; preds = %3548
  %3554 = load i32, ptr %2353, align 4, !tbaa !5
  %3555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3556 = call i32 @s2n_print_stacktrace(ptr noundef %3555) #9
  %3557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3558 = trunc nuw i8 %3557 to i1
  br i1 %3558, label %3559, label %3563

3559:                                             ; preds = %3553
  %3560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3561 = call i32 @fileno(ptr noundef %3560) #9
  %3562 = call i32 @isatty(i32 noundef %3561) #9
  %.not591 = icmp eq i32 %3562, 0
  br i1 %.not591, label %3563, label %3564

3563:                                             ; preds = %3559, %3553
  br label %3564

3564:                                             ; preds = %3559, %3563
  %.str.5.sink1958 = phi ptr [ @.str.5, %3563 ], [ @.str.2, %3559 ]
  store i32 %3554, ptr %2353, align 4, !tbaa !5
  %3565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3566 = load i32, ptr @test_count, align 4, !tbaa !5
  %3567 = load i32, ptr %2299, align 4, !tbaa !5
  %3568 = call ptr @s2n_strerror(i32 noundef %3567, ptr noundef nonnull @.str.4) #9
  %3569 = load i32, ptr %2299, align 4, !tbaa !5
  %3570 = call ptr @s2n_strerror_debug(i32 noundef %3569, ptr noundef nonnull @.str.4) #9
  %3571 = load i32, ptr %2353, align 4, !tbaa !5
  %3572 = call ptr @strerror(i32 noundef %3571) #9
  %3573 = load i32, ptr %2353, align 4, !tbaa !5
  %3574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3565, ptr noundef nonnull %.str.5.sink1958, i32 noundef %3566, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 396, ptr noundef %3568, ptr noundef %3570, ptr noundef %3572, i32 noundef %3573) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3575:                                             ; preds = %3548
  %3576 = load i32, ptr @test_count, align 4, !tbaa !5
  %3577 = add nsw i32 %3576, 1
  store i32 %3577, ptr @test_count, align 4, !tbaa !5
  %3578 = call i32 @setup_psks_with_no_match(ptr noundef nonnull %171, ptr noundef nonnull %200)
  %3579 = call zeroext i1 @s2n_result_is_ok(i32 %3578)
  br i1 %3579, label %3602, label %3580

3580:                                             ; preds = %3575
  %3581 = load i32, ptr %2353, align 4, !tbaa !5
  %3582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3583 = call i32 @s2n_print_stacktrace(ptr noundef %3582) #9
  %3584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3585 = trunc nuw i8 %3584 to i1
  br i1 %3585, label %3586, label %3590

3586:                                             ; preds = %3580
  %3587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3588 = call i32 @fileno(ptr noundef %3587) #9
  %3589 = call i32 @isatty(i32 noundef %3588) #9
  %.not558 = icmp eq i32 %3589, 0
  br i1 %.not558, label %3590, label %3591

3590:                                             ; preds = %3586, %3580
  br label %3591

3591:                                             ; preds = %3586, %3590
  %.str.5.sink1967 = phi ptr [ @.str.5, %3590 ], [ @.str.2, %3586 ]
  store i32 %3581, ptr %2353, align 4, !tbaa !5
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3593 = load i32, ptr @test_count, align 4, !tbaa !5
  %3594 = load i32, ptr %2299, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror(i32 noundef %3594, ptr noundef nonnull @.str.4) #9
  %3596 = load i32, ptr %2299, align 4, !tbaa !5
  %3597 = call ptr @s2n_strerror_debug(i32 noundef %3596, ptr noundef nonnull @.str.4) #9
  %3598 = load i32, ptr %2353, align 4, !tbaa !5
  %3599 = call ptr @strerror(i32 noundef %3598) #9
  %3600 = load i32, ptr %2353, align 4, !tbaa !5
  %3601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3592, ptr noundef nonnull %.str.5.sink1967, i32 noundef %3593, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 399, ptr noundef %3595, ptr noundef %3597, ptr noundef %3599, i32 noundef %3600) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3602:                                             ; preds = %3575
  %3603 = load i32, ptr @test_count, align 4, !tbaa !5
  %3604 = add nsw i32 %3603, 1
  store i32 %3604, ptr @test_count, align 4, !tbaa !5
  %3605 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %3606 = icmp eq i32 %3605, -1
  br i1 %3606, label %3607, label %3629

3607:                                             ; preds = %3602
  %3608 = load i32, ptr %2353, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = call i32 @s2n_print_stacktrace(ptr noundef %3609) #9
  %3611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3612 = trunc nuw i8 %3611 to i1
  br i1 %3612, label %3613, label %3617

3613:                                             ; preds = %3607
  %3614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3615 = call i32 @fileno(ptr noundef %3614) #9
  %3616 = call i32 @isatty(i32 noundef %3615) #9
  %.not590 = icmp eq i32 %3616, 0
  br i1 %.not590, label %3617, label %3618

3617:                                             ; preds = %3613, %3607
  br label %3618

3618:                                             ; preds = %3613, %3617
  %.str.5.sink1976 = phi ptr [ @.str.5, %3617 ], [ @.str.2, %3613 ]
  store i32 %3608, ptr %2353, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = load i32, ptr %2299, align 4, !tbaa !5
  %3622 = call ptr @s2n_strerror(i32 noundef %3621, ptr noundef nonnull @.str.4) #9
  %3623 = load i32, ptr %2299, align 4, !tbaa !5
  %3624 = call ptr @s2n_strerror_debug(i32 noundef %3623, ptr noundef nonnull @.str.4) #9
  %3625 = load i32, ptr %2353, align 4, !tbaa !5
  %3626 = call ptr @strerror(i32 noundef %3625) #9
  %3627 = load i32, ptr %2353, align 4, !tbaa !5
  %3628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3619, ptr noundef nonnull %.str.5.sink1976, i32 noundef %3620, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %3622, ptr noundef %3624, ptr noundef %3626, i32 noundef %3627) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3629:                                             ; preds = %3602
  %3630 = load i32, ptr @test_count, align 4, !tbaa !5
  %3631 = add nsw i32 %3630, 1
  store i32 %3631, ptr @test_count, align 4, !tbaa !5
  %3632 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 4) #9
  br i1 %3632, label %3633, label %3635

3633:                                             ; preds = %3629
  %3634 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 4) #9
  br i1 %3634, label %3657, label %3635

3635:                                             ; preds = %3633, %3629
  %3636 = load i32, ptr %2353, align 4, !tbaa !5
  %3637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3638 = call i32 @s2n_print_stacktrace(ptr noundef %3637) #9
  %3639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3640 = trunc nuw i8 %3639 to i1
  br i1 %3640, label %3641, label %3645

3641:                                             ; preds = %3635
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = call i32 @fileno(ptr noundef %3642) #9
  %3644 = call i32 @isatty(i32 noundef %3643) #9
  %.not559 = icmp eq i32 %3644, 0
  br i1 %.not559, label %3645, label %3646

3645:                                             ; preds = %3641, %3635
  br label %3646

3646:                                             ; preds = %3641, %3645
  %.str.5.sink1985 = phi ptr [ @.str.5, %3645 ], [ @.str.2, %3641 ]
  store i32 %3636, ptr %2353, align 4, !tbaa !5
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = load i32, ptr @test_count, align 4, !tbaa !5
  %3649 = load i32, ptr %2299, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror(i32 noundef %3649, ptr noundef nonnull @.str.4) #9
  %3651 = load i32, ptr %2299, align 4, !tbaa !5
  %3652 = call ptr @s2n_strerror_debug(i32 noundef %3651, ptr noundef nonnull @.str.4) #9
  %3653 = load i32, ptr %2353, align 4, !tbaa !5
  %3654 = call ptr @strerror(i32 noundef %3653) #9
  %3655 = load i32, ptr %2353, align 4, !tbaa !5
  %3656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3647, ptr noundef nonnull %.str.5.sink1985, i32 noundef %3648, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %3650, ptr noundef %3652, ptr noundef %3654, i32 noundef %3655) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3657:                                             ; preds = %3633
  %3658 = load i32, ptr @test_count, align 4, !tbaa !5
  %3659 = add nsw i32 %3658, 1
  store i32 %3659, ptr @test_count, align 4, !tbaa !5
  %3660 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 2) #9
  br i1 %3660, label %3661, label %3663

3661:                                             ; preds = %3657
  %3662 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 2) #9
  br i1 %3662, label %3685, label %3663

3663:                                             ; preds = %3661, %3657
  %3664 = load i32, ptr %2353, align 4, !tbaa !5
  %3665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3666 = call i32 @s2n_print_stacktrace(ptr noundef %3665) #9
  %3667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3668 = trunc nuw i8 %3667 to i1
  br i1 %3668, label %3669, label %3673

3669:                                             ; preds = %3663
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = call i32 @fileno(ptr noundef %3670) #9
  %3672 = call i32 @isatty(i32 noundef %3671) #9
  %.not560 = icmp eq i32 %3672, 0
  br i1 %.not560, label %3673, label %3674

3673:                                             ; preds = %3669, %3663
  br label %3674

3674:                                             ; preds = %3669, %3673
  %.str.5.sink1994 = phi ptr [ @.str.5, %3673 ], [ @.str.2, %3669 ]
  store i32 %3664, ptr %2353, align 4, !tbaa !5
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = load i32, ptr @test_count, align 4, !tbaa !5
  %3677 = load i32, ptr %2299, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror(i32 noundef %3677, ptr noundef nonnull @.str.4) #9
  %3679 = load i32, ptr %2299, align 4, !tbaa !5
  %3680 = call ptr @s2n_strerror_debug(i32 noundef %3679, ptr noundef nonnull @.str.4) #9
  %3681 = load i32, ptr %2353, align 4, !tbaa !5
  %3682 = call ptr @strerror(i32 noundef %3681) #9
  %3683 = load i32, ptr %2353, align 4, !tbaa !5
  %3684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3675, ptr noundef nonnull %.str.5.sink1994, i32 noundef %3676, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 406, ptr noundef %3678, ptr noundef %3680, ptr noundef %3682, i32 noundef %3683) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3685:                                             ; preds = %3661
  %3686 = load i32, ptr @test_count, align 4, !tbaa !5
  %3687 = add nsw i32 %3686, 1
  store i32 %3687, ptr @test_count, align 4, !tbaa !5
  %3688 = load ptr, ptr %3308, align 8, !tbaa !48
  %3689 = icmp eq ptr %3688, null
  br i1 %3689, label %3712, label %3690

3690:                                             ; preds = %3685
  %3691 = load i32, ptr %2353, align 4, !tbaa !5
  %3692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3693 = call i32 @s2n_print_stacktrace(ptr noundef %3692) #9
  %3694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3695 = trunc nuw i8 %3694 to i1
  br i1 %3695, label %3696, label %3700

3696:                                             ; preds = %3690
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = call i32 @fileno(ptr noundef %3697) #9
  %3699 = call i32 @isatty(i32 noundef %3698) #9
  %.not561 = icmp eq i32 %3699, 0
  br i1 %.not561, label %3700, label %3701

3700:                                             ; preds = %3696, %3690
  br label %3701

3701:                                             ; preds = %3696, %3700
  %.str.5.sink2003 = phi ptr [ @.str.5, %3700 ], [ @.str.2, %3696 ]
  store i32 %3691, ptr %2353, align 4, !tbaa !5
  %3702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3703 = load i32, ptr @test_count, align 4, !tbaa !5
  %3704 = load i32, ptr %2299, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror(i32 noundef %3704, ptr noundef nonnull @.str.4) #9
  %3706 = load i32, ptr %2299, align 4, !tbaa !5
  %3707 = call ptr @s2n_strerror_debug(i32 noundef %3706, ptr noundef nonnull @.str.4) #9
  %3708 = load i32, ptr %2353, align 4, !tbaa !5
  %3709 = call ptr @strerror(i32 noundef %3708) #9
  %3710 = load i32, ptr %2353, align 4, !tbaa !5
  %3711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3702, ptr noundef nonnull %.str.5.sink2003, i32 noundef %3703, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 409, ptr noundef %3705, ptr noundef %3707, ptr noundef %3709, i32 noundef %3710) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3712:                                             ; preds = %3685
  %3713 = add nsw i32 %3686, 2
  store i32 %3713, ptr @test_count, align 4, !tbaa !5
  %3714 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %3715 = icmp eq i32 %3714, -1
  br i1 %3715, label %3716, label %3738

3716:                                             ; preds = %3712
  %3717 = load i32, ptr %2353, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = call i32 @s2n_print_stacktrace(ptr noundef %3718) #9
  %3720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3721 = trunc nuw i8 %3720 to i1
  br i1 %3721, label %3722, label %3726

3722:                                             ; preds = %3716
  %3723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3724 = call i32 @fileno(ptr noundef %3723) #9
  %3725 = call i32 @isatty(i32 noundef %3724) #9
  %.not589 = icmp eq i32 %3725, 0
  br i1 %.not589, label %3726, label %3727

3726:                                             ; preds = %3722, %3716
  br label %3727

3727:                                             ; preds = %3722, %3726
  %.str.5.sink2012 = phi ptr [ @.str.5, %3726 ], [ @.str.2, %3722 ]
  store i32 %3717, ptr %2353, align 4, !tbaa !5
  %3728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3729 = load i32, ptr @test_count, align 4, !tbaa !5
  %3730 = load i32, ptr %2299, align 4, !tbaa !5
  %3731 = call ptr @s2n_strerror(i32 noundef %3730, ptr noundef nonnull @.str.4) #9
  %3732 = load i32, ptr %2299, align 4, !tbaa !5
  %3733 = call ptr @s2n_strerror_debug(i32 noundef %3732, ptr noundef nonnull @.str.4) #9
  %3734 = load i32, ptr %2353, align 4, !tbaa !5
  %3735 = call ptr @strerror(i32 noundef %3734) #9
  %3736 = load i32, ptr %2353, align 4, !tbaa !5
  %3737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3728, ptr noundef nonnull %.str.5.sink2012, i32 noundef %3729, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 411, ptr noundef %3731, ptr noundef %3733, ptr noundef %3735, i32 noundef %3736) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3738:                                             ; preds = %3712
  %3739 = load i32, ptr @test_count, align 4, !tbaa !5
  %3740 = add nsw i32 %3739, 1
  store i32 %3740, ptr @test_count, align 4, !tbaa !5
  %3741 = call i32 @s2n_connection_wipe(ptr noundef nonnull %171) #9
  %3742 = icmp eq i32 %3741, -1
  br i1 %3742, label %3743, label %3765

3743:                                             ; preds = %3738
  %3744 = load i32, ptr %2353, align 4, !tbaa !5
  %3745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3746 = call i32 @s2n_print_stacktrace(ptr noundef %3745) #9
  %3747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3748 = trunc nuw i8 %3747 to i1
  br i1 %3748, label %3749, label %3753

3749:                                             ; preds = %3743
  %3750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3751 = call i32 @fileno(ptr noundef %3750) #9
  %3752 = call i32 @isatty(i32 noundef %3751) #9
  %.not588 = icmp eq i32 %3752, 0
  br i1 %.not588, label %3753, label %3754

3753:                                             ; preds = %3749, %3743
  br label %3754

3754:                                             ; preds = %3749, %3753
  %.str.5.sink2021 = phi ptr [ @.str.5, %3753 ], [ @.str.2, %3749 ]
  store i32 %3744, ptr %2353, align 4, !tbaa !5
  %3755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3756 = load i32, ptr @test_count, align 4, !tbaa !5
  %3757 = load i32, ptr %2299, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror(i32 noundef %3757, ptr noundef nonnull @.str.4) #9
  %3759 = load i32, ptr %2299, align 4, !tbaa !5
  %3760 = call ptr @s2n_strerror_debug(i32 noundef %3759, ptr noundef nonnull @.str.4) #9
  %3761 = load i32, ptr %2353, align 4, !tbaa !5
  %3762 = call ptr @strerror(i32 noundef %3761) #9
  %3763 = load i32, ptr %2353, align 4, !tbaa !5
  %3764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3755, ptr noundef nonnull %.str.5.sink2021, i32 noundef %3756, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %3758, ptr noundef %3760, ptr noundef %3762, i32 noundef %3763) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3765:                                             ; preds = %3738
  %3766 = load i32, ptr @test_count, align 4, !tbaa !5
  %3767 = add nsw i32 %3766, 1
  store i32 %3767, ptr @test_count, align 4, !tbaa !5
  %3768 = call i32 @s2n_connection_wipe(ptr noundef nonnull %200) #9
  %3769 = icmp eq i32 %3768, -1
  br i1 %3769, label %3770, label %3792

3770:                                             ; preds = %3765
  %3771 = load i32, ptr %2353, align 4, !tbaa !5
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = call i32 @s2n_print_stacktrace(ptr noundef %3772) #9
  %3774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3775 = trunc nuw i8 %3774 to i1
  br i1 %3775, label %3776, label %3780

3776:                                             ; preds = %3770
  %3777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3778 = call i32 @fileno(ptr noundef %3777) #9
  %3779 = call i32 @isatty(i32 noundef %3778) #9
  %.not587 = icmp eq i32 %3779, 0
  br i1 %.not587, label %3780, label %3781

3780:                                             ; preds = %3776, %3770
  br label %3781

3781:                                             ; preds = %3776, %3780
  %.str.5.sink2030 = phi ptr [ @.str.5, %3780 ], [ @.str.2, %3776 ]
  store i32 %3771, ptr %2353, align 4, !tbaa !5
  %3782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3783 = load i32, ptr @test_count, align 4, !tbaa !5
  %3784 = load i32, ptr %2299, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror(i32 noundef %3784, ptr noundef nonnull @.str.4) #9
  %3786 = load i32, ptr %2299, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror_debug(i32 noundef %3786, ptr noundef nonnull @.str.4) #9
  %3788 = load i32, ptr %2353, align 4, !tbaa !5
  %3789 = call ptr @strerror(i32 noundef %3788) #9
  %3790 = load i32, ptr %2353, align 4, !tbaa !5
  %3791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3782, ptr noundef nonnull %.str.5.sink2030, i32 noundef %3783, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %3785, ptr noundef %3787, ptr noundef %3789, i32 noundef %3790) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3792:                                             ; preds = %3765
  %3793 = load i32, ptr @test_count, align 4, !tbaa !5
  %3794 = add nsw i32 %3793, 1
  store i32 %3794, ptr @test_count, align 4, !tbaa !5
  %3795 = call i32 @s2n_connection_set_config(ptr noundef nonnull %171, ptr noundef nonnull %229) #9
  %3796 = icmp eq i32 %3795, -1
  br i1 %3796, label %3797, label %3819

3797:                                             ; preds = %3792
  %3798 = load i32, ptr %2353, align 4, !tbaa !5
  %3799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3800 = call i32 @s2n_print_stacktrace(ptr noundef %3799) #9
  %3801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3802 = trunc nuw i8 %3801 to i1
  br i1 %3802, label %3803, label %3807

3803:                                             ; preds = %3797
  %3804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3805 = call i32 @fileno(ptr noundef %3804) #9
  %3806 = call i32 @isatty(i32 noundef %3805) #9
  %.not586 = icmp eq i32 %3806, 0
  br i1 %.not586, label %3807, label %3808

3807:                                             ; preds = %3803, %3797
  br label %3808

3808:                                             ; preds = %3803, %3807
  %.str.5.sink2039 = phi ptr [ @.str.5, %3807 ], [ @.str.2, %3803 ]
  store i32 %3798, ptr %2353, align 4, !tbaa !5
  %3809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3810 = load i32, ptr @test_count, align 4, !tbaa !5
  %3811 = load i32, ptr %2299, align 4, !tbaa !5
  %3812 = call ptr @s2n_strerror(i32 noundef %3811, ptr noundef nonnull @.str.4) #9
  %3813 = load i32, ptr %2299, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror_debug(i32 noundef %3813, ptr noundef nonnull @.str.4) #9
  %3815 = load i32, ptr %2353, align 4, !tbaa !5
  %3816 = call ptr @strerror(i32 noundef %3815) #9
  %3817 = load i32, ptr %2353, align 4, !tbaa !5
  %3818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3809, ptr noundef nonnull %.str.5.sink2039, i32 noundef %3810, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 419, ptr noundef %3812, ptr noundef %3814, ptr noundef %3816, i32 noundef %3817) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3819:                                             ; preds = %3792
  %3820 = load i32, ptr @test_count, align 4, !tbaa !5
  %3821 = add nsw i32 %3820, 1
  store i32 %3821, ptr @test_count, align 4, !tbaa !5
  %3822 = call i32 @s2n_connection_set_config(ptr noundef nonnull %200, ptr noundef nonnull %229) #9
  %3823 = icmp eq i32 %3822, -1
  br i1 %3823, label %3824, label %3846

3824:                                             ; preds = %3819
  %3825 = load i32, ptr %2353, align 4, !tbaa !5
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = call i32 @s2n_print_stacktrace(ptr noundef %3826) #9
  %3828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3829 = trunc nuw i8 %3828 to i1
  br i1 %3829, label %3830, label %3834

3830:                                             ; preds = %3824
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = call i32 @fileno(ptr noundef %3831) #9
  %3833 = call i32 @isatty(i32 noundef %3832) #9
  %.not585 = icmp eq i32 %3833, 0
  br i1 %.not585, label %3834, label %3835

3834:                                             ; preds = %3830, %3824
  br label %3835

3835:                                             ; preds = %3830, %3834
  %.str.5.sink2048 = phi ptr [ @.str.5, %3834 ], [ @.str.2, %3830 ]
  store i32 %3825, ptr %2353, align 4, !tbaa !5
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = load i32, ptr %2299, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror(i32 noundef %3838, ptr noundef nonnull @.str.4) #9
  %3840 = load i32, ptr %2299, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror_debug(i32 noundef %3840, ptr noundef nonnull @.str.4) #9
  %3842 = load i32, ptr %2353, align 4, !tbaa !5
  %3843 = call ptr @strerror(i32 noundef %3842) #9
  %3844 = load i32, ptr %2353, align 4, !tbaa !5
  %3845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3836, ptr noundef nonnull %.str.5.sink2048, i32 noundef %3837, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 419, ptr noundef %3839, ptr noundef %3841, ptr noundef %3843, i32 noundef %3844) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3846:                                             ; preds = %3819
  %3847 = load i32, ptr @test_count, align 4, !tbaa !5
  %3848 = add nsw i32 %3847, 1
  store i32 %3848, ptr @test_count, align 4, !tbaa !5
  %3849 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %171, ptr noundef nonnull %4) #9
  %3850 = icmp eq i32 %3849, -1
  br i1 %3850, label %3851, label %3873

3851:                                             ; preds = %3846
  %3852 = load i32, ptr %2353, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = call i32 @s2n_print_stacktrace(ptr noundef %3853) #9
  %3855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3856 = trunc nuw i8 %3855 to i1
  br i1 %3856, label %3857, label %3861

3857:                                             ; preds = %3851
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = call i32 @fileno(ptr noundef %3858) #9
  %3860 = call i32 @isatty(i32 noundef %3859) #9
  %.not584 = icmp eq i32 %3860, 0
  br i1 %.not584, label %3861, label %3862

3861:                                             ; preds = %3857, %3851
  br label %3862

3862:                                             ; preds = %3857, %3861
  %.str.5.sink2057 = phi ptr [ @.str.5, %3861 ], [ @.str.2, %3857 ]
  store i32 %3852, ptr %2353, align 4, !tbaa !5
  %3863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3864 = load i32, ptr @test_count, align 4, !tbaa !5
  %3865 = load i32, ptr %2299, align 4, !tbaa !5
  %3866 = call ptr @s2n_strerror(i32 noundef %3865, ptr noundef nonnull @.str.4) #9
  %3867 = load i32, ptr %2299, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror_debug(i32 noundef %3867, ptr noundef nonnull @.str.4) #9
  %3869 = load i32, ptr %2353, align 4, !tbaa !5
  %3870 = call ptr @strerror(i32 noundef %3869) #9
  %3871 = load i32, ptr %2353, align 4, !tbaa !5
  %3872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3863, ptr noundef nonnull %.str.5.sink2057, i32 noundef %3864, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 420, ptr noundef %3866, ptr noundef %3868, ptr noundef %3870, i32 noundef %3871) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3873:                                             ; preds = %3846
  %3874 = load i32, ptr @test_count, align 4, !tbaa !5
  %3875 = add nsw i32 %3874, 1
  store i32 %3875, ptr @test_count, align 4, !tbaa !5
  %3876 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %200, ptr noundef nonnull %4) #9
  %3877 = icmp eq i32 %3876, -1
  br i1 %3877, label %3878, label %3900

3878:                                             ; preds = %3873
  %3879 = load i32, ptr %2353, align 4, !tbaa !5
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = call i32 @s2n_print_stacktrace(ptr noundef %3880) #9
  %3882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3883 = trunc nuw i8 %3882 to i1
  br i1 %3883, label %3884, label %3888

3884:                                             ; preds = %3878
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = call i32 @fileno(ptr noundef %3885) #9
  %3887 = call i32 @isatty(i32 noundef %3886) #9
  %.not583 = icmp eq i32 %3887, 0
  br i1 %.not583, label %3888, label %3889

3888:                                             ; preds = %3884, %3878
  br label %3889

3889:                                             ; preds = %3884, %3888
  %.str.5.sink2066 = phi ptr [ @.str.5, %3888 ], [ @.str.2, %3884 ]
  store i32 %3879, ptr %2353, align 4, !tbaa !5
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = load i32, ptr @test_count, align 4, !tbaa !5
  %3892 = load i32, ptr %2299, align 4, !tbaa !5
  %3893 = call ptr @s2n_strerror(i32 noundef %3892, ptr noundef nonnull @.str.4) #9
  %3894 = load i32, ptr %2299, align 4, !tbaa !5
  %3895 = call ptr @s2n_strerror_debug(i32 noundef %3894, ptr noundef nonnull @.str.4) #9
  %3896 = load i32, ptr %2353, align 4, !tbaa !5
  %3897 = call ptr @strerror(i32 noundef %3896) #9
  %3898 = load i32, ptr %2353, align 4, !tbaa !5
  %3899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3890, ptr noundef nonnull %.str.5.sink2066, i32 noundef %3891, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 420, ptr noundef %3893, ptr noundef %3895, ptr noundef %3897, i32 noundef %3898) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3900:                                             ; preds = %3873
  %3901 = load i32, ptr @test_count, align 4, !tbaa !5
  %3902 = add nsw i32 %3901, 1
  store i32 %3902, ptr @test_count, align 4, !tbaa !5
  %3903 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %171, i32 noundef 1) #9
  %3904 = icmp eq i32 %3903, -1
  br i1 %3904, label %3905, label %3927

3905:                                             ; preds = %3900
  %3906 = load i32, ptr %2353, align 4, !tbaa !5
  %3907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3908 = call i32 @s2n_print_stacktrace(ptr noundef %3907) #9
  %3909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3910 = trunc nuw i8 %3909 to i1
  br i1 %3910, label %3911, label %3915

3911:                                             ; preds = %3905
  %3912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3913 = call i32 @fileno(ptr noundef %3912) #9
  %3914 = call i32 @isatty(i32 noundef %3913) #9
  %.not582 = icmp eq i32 %3914, 0
  br i1 %.not582, label %3915, label %3916

3915:                                             ; preds = %3911, %3905
  br label %3916

3916:                                             ; preds = %3911, %3915
  %.str.5.sink2075 = phi ptr [ @.str.5, %3915 ], [ @.str.2, %3911 ]
  store i32 %3906, ptr %2353, align 4, !tbaa !5
  %3917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3918 = load i32, ptr @test_count, align 4, !tbaa !5
  %3919 = load i32, ptr %2299, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror(i32 noundef %3919, ptr noundef nonnull @.str.4) #9
  %3921 = load i32, ptr %2299, align 4, !tbaa !5
  %3922 = call ptr @s2n_strerror_debug(i32 noundef %3921, ptr noundef nonnull @.str.4) #9
  %3923 = load i32, ptr %2353, align 4, !tbaa !5
  %3924 = call ptr @strerror(i32 noundef %3923) #9
  %3925 = load i32, ptr %2353, align 4, !tbaa !5
  %3926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3917, ptr noundef nonnull %.str.5.sink2075, i32 noundef %3918, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 421, ptr noundef %3920, ptr noundef %3922, ptr noundef %3924, i32 noundef %3925) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3927:                                             ; preds = %3900
  %3928 = load i32, ptr @test_count, align 4, !tbaa !5
  %3929 = add nsw i32 %3928, 1
  store i32 %3929, ptr @test_count, align 4, !tbaa !5
  %3930 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %200, i32 noundef 1) #9
  %3931 = icmp eq i32 %3930, -1
  br i1 %3931, label %3932, label %3954

3932:                                             ; preds = %3927
  %3933 = load i32, ptr %2353, align 4, !tbaa !5
  %3934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3935 = call i32 @s2n_print_stacktrace(ptr noundef %3934) #9
  %3936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3937 = trunc nuw i8 %3936 to i1
  br i1 %3937, label %3938, label %3942

3938:                                             ; preds = %3932
  %3939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3940 = call i32 @fileno(ptr noundef %3939) #9
  %3941 = call i32 @isatty(i32 noundef %3940) #9
  %.not581 = icmp eq i32 %3941, 0
  br i1 %.not581, label %3942, label %3943

3942:                                             ; preds = %3938, %3932
  br label %3943

3943:                                             ; preds = %3938, %3942
  %.str.5.sink2084 = phi ptr [ @.str.5, %3942 ], [ @.str.2, %3938 ]
  store i32 %3933, ptr %2353, align 4, !tbaa !5
  %3944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3945 = load i32, ptr @test_count, align 4, !tbaa !5
  %3946 = load i32, ptr %2299, align 4, !tbaa !5
  %3947 = call ptr @s2n_strerror(i32 noundef %3946, ptr noundef nonnull @.str.4) #9
  %3948 = load i32, ptr %2299, align 4, !tbaa !5
  %3949 = call ptr @s2n_strerror_debug(i32 noundef %3948, ptr noundef nonnull @.str.4) #9
  %3950 = load i32, ptr %2353, align 4, !tbaa !5
  %3951 = call ptr @strerror(i32 noundef %3950) #9
  %3952 = load i32, ptr %2353, align 4, !tbaa !5
  %3953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3944, ptr noundef nonnull %.str.5.sink2084, i32 noundef %3945, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %3947, ptr noundef %3949, ptr noundef %3951, i32 noundef %3952) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3954:                                             ; preds = %3927
  %3955 = load i32, ptr @test_count, align 4, !tbaa !5
  %3956 = add nsw i32 %3955, 1
  store i32 %3956, ptr @test_count, align 4, !tbaa !5
  %3957 = call i32 @setup_psks_with_no_match(ptr noundef nonnull %171, ptr noundef nonnull %200)
  %3958 = call zeroext i1 @s2n_result_is_ok(i32 %3957)
  br i1 %3958, label %3981, label %3959

3959:                                             ; preds = %3954
  %3960 = load i32, ptr %2353, align 4, !tbaa !5
  %3961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3962 = call i32 @s2n_print_stacktrace(ptr noundef %3961) #9
  %3963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3964 = trunc nuw i8 %3963 to i1
  br i1 %3964, label %3965, label %3969

3965:                                             ; preds = %3959
  %3966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3967 = call i32 @fileno(ptr noundef %3966) #9
  %3968 = call i32 @isatty(i32 noundef %3967) #9
  %.not562 = icmp eq i32 %3968, 0
  br i1 %.not562, label %3969, label %3970

3969:                                             ; preds = %3965, %3959
  br label %3970

3970:                                             ; preds = %3965, %3969
  %.str.5.sink2093 = phi ptr [ @.str.5, %3969 ], [ @.str.2, %3965 ]
  store i32 %3960, ptr %2353, align 4, !tbaa !5
  %3971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3972 = load i32, ptr @test_count, align 4, !tbaa !5
  %3973 = load i32, ptr %2299, align 4, !tbaa !5
  %3974 = call ptr @s2n_strerror(i32 noundef %3973, ptr noundef nonnull @.str.4) #9
  %3975 = load i32, ptr %2299, align 4, !tbaa !5
  %3976 = call ptr @s2n_strerror_debug(i32 noundef %3975, ptr noundef nonnull @.str.4) #9
  %3977 = load i32, ptr %2353, align 4, !tbaa !5
  %3978 = call ptr @strerror(i32 noundef %3977) #9
  %3979 = load i32, ptr %2353, align 4, !tbaa !5
  %3980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3971, ptr noundef nonnull %.str.5.sink2093, i32 noundef %3972, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %3974, ptr noundef %3976, ptr noundef %3978, i32 noundef %3979) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3981:                                             ; preds = %3954
  %3982 = load i32, ptr @test_count, align 4, !tbaa !5
  %3983 = add nsw i32 %3982, 1
  store i32 %3983, ptr @test_count, align 4, !tbaa !5
  %3984 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %200, ptr noundef nonnull %171) #9
  %3985 = icmp eq i32 %3984, -1
  br i1 %3985, label %4008, label %3986

3986:                                             ; preds = %3981
  %3987 = load i32, ptr %2353, align 4, !tbaa !5
  %3988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3989 = call i32 @s2n_print_stacktrace(ptr noundef %3988) #9
  %3990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3991 = trunc nuw i8 %3990 to i1
  br i1 %3991, label %3992, label %3996

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

3996:                                             ; preds = %3992, %3986
  br label %3997

3997:                                             ; preds = %3992, %3996
  %.str.5.sink2102 = phi ptr [ @.str.5, %3996 ], [ @.str.2, %3992 ]
  store i32 %3987, ptr %2353, align 4, !tbaa !5
  %3998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3999 = load i32, ptr @test_count, align 4, !tbaa !5
  %4000 = load i32, ptr %2299, align 4, !tbaa !5
  %4001 = call ptr @s2n_strerror(i32 noundef %4000, ptr noundef nonnull @.str.4) #9
  %4002 = load i32, ptr %2299, align 4, !tbaa !5
  %4003 = call ptr @s2n_strerror_debug(i32 noundef %4002, ptr noundef nonnull @.str.4) #9
  %4004 = load i32, ptr %2353, align 4, !tbaa !5
  %4005 = call ptr @strerror(i32 noundef %4004) #9
  %4006 = load i32, ptr %2353, align 4, !tbaa !5
  %4007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3998, ptr noundef nonnull %.str.5.sink2102, i32 noundef %3999, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4001, ptr noundef %4003, ptr noundef %4005, i32 noundef %4006) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4008:                                             ; preds = %3981
  %4009 = load i32, ptr @test_count, align 4, !tbaa !5
  %4010 = add nsw i32 %4009, 1
  store i32 %4010, ptr @test_count, align 4, !tbaa !5
  %4011 = load i32, ptr %2299, align 4, !tbaa !5
  %4012 = icmp eq i32 %4011, 0
  br i1 %4012, label %4013, label %4035

4013:                                             ; preds = %4008
  %4014 = load i32, ptr %2353, align 4, !tbaa !5
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = call i32 @s2n_print_stacktrace(ptr noundef %4015) #9
  %4017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4018 = trunc nuw i8 %4017 to i1
  br i1 %4018, label %4019, label %4023

4019:                                             ; preds = %4013
  %4020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4021 = call i32 @fileno(ptr noundef %4020) #9
  %4022 = call i32 @isatty(i32 noundef %4021) #9
  %.not580 = icmp eq i32 %4022, 0
  br i1 %.not580, label %4023, label %4024

4023:                                             ; preds = %4019, %4013
  br label %4024

4024:                                             ; preds = %4019, %4023
  %.str.5.sink2111 = phi ptr [ @.str.5, %4023 ], [ @.str.2, %4019 ]
  store i32 %4014, ptr %2353, align 4, !tbaa !5
  %4025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4026 = load i32, ptr @test_count, align 4, !tbaa !5
  %4027 = load i32, ptr %2299, align 4, !tbaa !5
  %4028 = call ptr @s2n_strerror(i32 noundef %4027, ptr noundef nonnull @.str.4) #9
  %4029 = load i32, ptr %2299, align 4, !tbaa !5
  %4030 = call ptr @s2n_strerror_debug(i32 noundef %4029, ptr noundef nonnull @.str.4) #9
  %4031 = load i32, ptr %2353, align 4, !tbaa !5
  %4032 = call ptr @strerror(i32 noundef %4031) #9
  %4033 = load i32, ptr %2353, align 4, !tbaa !5
  %4034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4025, ptr noundef nonnull %.str.5.sink2111, i32 noundef %4026, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4028, ptr noundef %4030, ptr noundef %4032, i32 noundef %4033) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4035:                                             ; preds = %4008
  %4036 = add nsw i32 %4009, 2
  store i32 %4036, ptr @test_count, align 4, !tbaa !5
  %4037 = call ptr @s2n_strerror_debug(i32 noundef %4011, ptr noundef nonnull @.str.4) #9
  %4038 = icmp eq ptr %4037, null
  br i1 %4038, label %4039, label %4061

4039:                                             ; preds = %4035
  %4040 = load i32, ptr %2353, align 4, !tbaa !5
  %4041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4042 = call i32 @s2n_print_stacktrace(ptr noundef %4041) #9
  %4043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4044 = trunc nuw i8 %4043 to i1
  br i1 %4044, label %4045, label %4049

4045:                                             ; preds = %4039
  %4046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4047 = call i32 @fileno(ptr noundef %4046) #9
  %4048 = call i32 @isatty(i32 noundef %4047) #9
  %.not579 = icmp eq i32 %4048, 0
  br i1 %.not579, label %4049, label %4050

4049:                                             ; preds = %4045, %4039
  br label %4050

4050:                                             ; preds = %4045, %4049
  %.str.5.sink2120 = phi ptr [ @.str.5, %4049 ], [ @.str.2, %4045 ]
  store i32 %4040, ptr %2353, align 4, !tbaa !5
  %4051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4052 = load i32, ptr @test_count, align 4, !tbaa !5
  %4053 = load i32, ptr %2299, align 4, !tbaa !5
  %4054 = call ptr @s2n_strerror(i32 noundef %4053, ptr noundef nonnull @.str.4) #9
  %4055 = load i32, ptr %2299, align 4, !tbaa !5
  %4056 = call ptr @s2n_strerror_debug(i32 noundef %4055, ptr noundef nonnull @.str.4) #9
  %4057 = load i32, ptr %2353, align 4, !tbaa !5
  %4058 = call ptr @strerror(i32 noundef %4057) #9
  %4059 = load i32, ptr %2353, align 4, !tbaa !5
  %4060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4051, ptr noundef nonnull %.str.5.sink2120, i32 noundef %4052, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4054, ptr noundef %4056, ptr noundef %4058, i32 noundef %4059) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4061:                                             ; preds = %4035
  store i32 0, ptr %2299, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %2353, align 4, !tbaa !5
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = add nsw i32 %4062, 1
  store i32 %4063, ptr @test_count, align 4, !tbaa !5
  %4064 = load ptr, ptr %3308, align 8, !tbaa !48
  %4065 = icmp eq ptr %4064, null
  br i1 %4065, label %4088, label %4066

4066:                                             ; preds = %4061
  %4067 = load i32, ptr %2353, align 4, !tbaa !5
  %4068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4069 = call i32 @s2n_print_stacktrace(ptr noundef %4068) #9
  %4070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4071 = trunc nuw i8 %4070 to i1
  br i1 %4071, label %4072, label %4076

4072:                                             ; preds = %4066
  %4073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4074 = call i32 @fileno(ptr noundef %4073) #9
  %4075 = call i32 @isatty(i32 noundef %4074) #9
  %.not564 = icmp eq i32 %4075, 0
  br i1 %.not564, label %4076, label %4077

4076:                                             ; preds = %4072, %4066
  br label %4077

4077:                                             ; preds = %4072, %4076
  %.str.5.sink2129 = phi ptr [ @.str.5, %4076 ], [ @.str.2, %4072 ]
  store i32 %4067, ptr %2353, align 4, !tbaa !5
  %4078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4079 = load i32, ptr @test_count, align 4, !tbaa !5
  %4080 = load i32, ptr %2299, align 4, !tbaa !5
  %4081 = call ptr @s2n_strerror(i32 noundef %4080, ptr noundef nonnull @.str.4) #9
  %4082 = load i32, ptr %2299, align 4, !tbaa !5
  %4083 = call ptr @s2n_strerror_debug(i32 noundef %4082, ptr noundef nonnull @.str.4) #9
  %4084 = load i32, ptr %2353, align 4, !tbaa !5
  %4085 = call ptr @strerror(i32 noundef %4084) #9
  %4086 = load i32, ptr %2353, align 4, !tbaa !5
  %4087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4078, ptr noundef nonnull %.str.5.sink2129, i32 noundef %4079, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 431, ptr noundef %4081, ptr noundef %4083, ptr noundef %4085, i32 noundef %4086) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4088:                                             ; preds = %4061
  %4089 = add nsw i32 %4062, 2
  store i32 %4089, ptr @test_count, align 4, !tbaa !5
  %4090 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %171, i32 noundef 2) #9
  br i1 %4090, label %4091, label %4115

4091:                                             ; preds = %4088
  %4092 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %200, i32 noundef 2) #9
  br i1 %4092, label %4093, label %4115

4093:                                             ; preds = %4091
  %4094 = load i32, ptr %2353, align 4, !tbaa !5
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = call i32 @s2n_print_stacktrace(ptr noundef %4095) #9
  %4097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4098 = trunc nuw i8 %4097 to i1
  br i1 %4098, label %4099, label %4103

4099:                                             ; preds = %4093
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @fileno(ptr noundef %4100) #9
  %4102 = call i32 @isatty(i32 noundef %4101) #9
  %.not578 = icmp eq i32 %4102, 0
  br i1 %.not578, label %4103, label %4104

4103:                                             ; preds = %4099, %4093
  br label %4104

4104:                                             ; preds = %4099, %4103
  %.str.5.sink2138 = phi ptr [ @.str.5, %4103 ], [ @.str.2, %4099 ]
  store i32 %4094, ptr %2353, align 4, !tbaa !5
  %4105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4106 = load i32, ptr @test_count, align 4, !tbaa !5
  %4107 = load i32, ptr %2299, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror(i32 noundef %4107, ptr noundef nonnull @.str.4) #9
  %4109 = load i32, ptr %2299, align 4, !tbaa !5
  %4110 = call ptr @s2n_strerror_debug(i32 noundef %4109, ptr noundef nonnull @.str.4) #9
  %4111 = load i32, ptr %2353, align 4, !tbaa !5
  %4112 = call ptr @strerror(i32 noundef %4111) #9
  %4113 = load i32, ptr %2353, align 4, !tbaa !5
  %4114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4105, ptr noundef nonnull %.str.5.sink2138, i32 noundef %4106, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %4108, ptr noundef %4110, ptr noundef %4112, i32 noundef %4113) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4115:                                             ; preds = %4088, %4091
  %4116 = load i32, ptr @test_count, align 4, !tbaa !5
  %4117 = add nsw i32 %4116, 1
  store i32 %4117, ptr @test_count, align 4, !tbaa !5
  %4118 = call i32 @s2n_connection_wipe(ptr noundef nonnull %171) #9
  %4119 = icmp eq i32 %4118, -1
  br i1 %4119, label %4120, label %4142

4120:                                             ; preds = %4115
  %4121 = load i32, ptr %2353, align 4, !tbaa !5
  %4122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4123 = call i32 @s2n_print_stacktrace(ptr noundef %4122) #9
  %4124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4125 = trunc nuw i8 %4124 to i1
  br i1 %4125, label %4126, label %4130

4126:                                             ; preds = %4120
  %4127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4128 = call i32 @fileno(ptr noundef %4127) #9
  %4129 = call i32 @isatty(i32 noundef %4128) #9
  %.not577 = icmp eq i32 %4129, 0
  br i1 %.not577, label %4130, label %4131

4130:                                             ; preds = %4126, %4120
  br label %4131

4131:                                             ; preds = %4126, %4130
  %.str.5.sink2147 = phi ptr [ @.str.5, %4130 ], [ @.str.2, %4126 ]
  store i32 %4121, ptr %2353, align 4, !tbaa !5
  %4132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4133 = load i32, ptr @test_count, align 4, !tbaa !5
  %4134 = load i32, ptr %2299, align 4, !tbaa !5
  %4135 = call ptr @s2n_strerror(i32 noundef %4134, ptr noundef nonnull @.str.4) #9
  %4136 = load i32, ptr %2299, align 4, !tbaa !5
  %4137 = call ptr @s2n_strerror_debug(i32 noundef %4136, ptr noundef nonnull @.str.4) #9
  %4138 = load i32, ptr %2353, align 4, !tbaa !5
  %4139 = call ptr @strerror(i32 noundef %4138) #9
  %4140 = load i32, ptr %2353, align 4, !tbaa !5
  %4141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4132, ptr noundef nonnull %.str.5.sink2147, i32 noundef %4133, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %4135, ptr noundef %4137, ptr noundef %4139, i32 noundef %4140) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4142:                                             ; preds = %4115
  %4143 = load i32, ptr @test_count, align 4, !tbaa !5
  %4144 = add nsw i32 %4143, 1
  store i32 %4144, ptr @test_count, align 4, !tbaa !5
  %4145 = call i32 @s2n_connection_wipe(ptr noundef nonnull %200) #9
  %4146 = icmp eq i32 %4145, -1
  br i1 %4146, label %4147, label %4169

4147:                                             ; preds = %4142
  %4148 = load i32, ptr %2353, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = call i32 @s2n_print_stacktrace(ptr noundef %4149) #9
  %4151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4152 = trunc nuw i8 %4151 to i1
  br i1 %4152, label %4153, label %4157

4153:                                             ; preds = %4147
  %4154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4155 = call i32 @fileno(ptr noundef %4154) #9
  %4156 = call i32 @isatty(i32 noundef %4155) #9
  %.not576 = icmp eq i32 %4156, 0
  br i1 %.not576, label %4157, label %4158

4157:                                             ; preds = %4153, %4147
  br label %4158

4158:                                             ; preds = %4153, %4157
  %.str.5.sink2156 = phi ptr [ @.str.5, %4157 ], [ @.str.2, %4153 ]
  store i32 %4148, ptr %2353, align 4, !tbaa !5
  %4159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4160 = load i32, ptr @test_count, align 4, !tbaa !5
  %4161 = load i32, ptr %2299, align 4, !tbaa !5
  %4162 = call ptr @s2n_strerror(i32 noundef %4161, ptr noundef nonnull @.str.4) #9
  %4163 = load i32, ptr %2299, align 4, !tbaa !5
  %4164 = call ptr @s2n_strerror_debug(i32 noundef %4163, ptr noundef nonnull @.str.4) #9
  %4165 = load i32, ptr %2353, align 4, !tbaa !5
  %4166 = call ptr @strerror(i32 noundef %4165) #9
  %4167 = load i32, ptr %2353, align 4, !tbaa !5
  %4168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4159, ptr noundef nonnull %.str.5.sink2156, i32 noundef %4160, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 437, ptr noundef %4162, ptr noundef %4164, ptr noundef %4166, i32 noundef %4167) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4169:                                             ; preds = %4142
  %4170 = load i32, ptr @test_count, align 4, !tbaa !5
  %4171 = add nsw i32 %4170, 1
  store i32 %4171, ptr @test_count, align 4, !tbaa !5
  %4172 = call i32 @s2n_connection_free(ptr noundef nonnull %200) #9
  %4173 = icmp eq i32 %4172, -1
  br i1 %4173, label %4174, label %4196

4174:                                             ; preds = %4169
  %4175 = load i32, ptr %2353, align 4, !tbaa !5
  %4176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4177 = call i32 @s2n_print_stacktrace(ptr noundef %4176) #9
  %4178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4179 = trunc nuw i8 %4178 to i1
  br i1 %4179, label %4180, label %4184

4180:                                             ; preds = %4174
  %4181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4182 = call i32 @fileno(ptr noundef %4181) #9
  %4183 = call i32 @isatty(i32 noundef %4182) #9
  %.not575 = icmp eq i32 %4183, 0
  br i1 %.not575, label %4184, label %4185

4184:                                             ; preds = %4180, %4174
  br label %4185

4185:                                             ; preds = %4180, %4184
  %.str.5.sink2165 = phi ptr [ @.str.5, %4184 ], [ @.str.2, %4180 ]
  store i32 %4175, ptr %2353, align 4, !tbaa !5
  %4186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4187 = load i32, ptr @test_count, align 4, !tbaa !5
  %4188 = load i32, ptr %2299, align 4, !tbaa !5
  %4189 = call ptr @s2n_strerror(i32 noundef %4188, ptr noundef nonnull @.str.4) #9
  %4190 = load i32, ptr %2299, align 4, !tbaa !5
  %4191 = call ptr @s2n_strerror_debug(i32 noundef %4190, ptr noundef nonnull @.str.4) #9
  %4192 = load i32, ptr %2353, align 4, !tbaa !5
  %4193 = call ptr @strerror(i32 noundef %4192) #9
  %4194 = load i32, ptr %2353, align 4, !tbaa !5
  %4195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4186, ptr noundef nonnull %.str.5.sink2165, i32 noundef %4187, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 441, ptr noundef %4189, ptr noundef %4191, ptr noundef %4193, i32 noundef %4194) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4196:                                             ; preds = %4169
  %4197 = load i32, ptr @test_count, align 4, !tbaa !5
  %4198 = add nsw i32 %4197, 1
  store i32 %4198, ptr @test_count, align 4, !tbaa !5
  %4199 = call i32 @s2n_connection_free(ptr noundef nonnull %171) #9
  %4200 = icmp eq i32 %4199, -1
  br i1 %4200, label %4201, label %4223

4201:                                             ; preds = %4196
  %4202 = load i32, ptr %2353, align 4, !tbaa !5
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = call i32 @s2n_print_stacktrace(ptr noundef %4203) #9
  %4205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4206 = trunc nuw i8 %4205 to i1
  br i1 %4206, label %4207, label %4211

4207:                                             ; preds = %4201
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = call i32 @fileno(ptr noundef %4208) #9
  %4210 = call i32 @isatty(i32 noundef %4209) #9
  %.not574 = icmp eq i32 %4210, 0
  br i1 %.not574, label %4211, label %4212

4211:                                             ; preds = %4207, %4201
  br label %4212

4212:                                             ; preds = %4207, %4211
  %.str.5.sink2174 = phi ptr [ @.str.5, %4211 ], [ @.str.2, %4207 ]
  store i32 %4202, ptr %2353, align 4, !tbaa !5
  %4213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4214 = load i32, ptr @test_count, align 4, !tbaa !5
  %4215 = load i32, ptr %2299, align 4, !tbaa !5
  %4216 = call ptr @s2n_strerror(i32 noundef %4215, ptr noundef nonnull @.str.4) #9
  %4217 = load i32, ptr %2299, align 4, !tbaa !5
  %4218 = call ptr @s2n_strerror_debug(i32 noundef %4217, ptr noundef nonnull @.str.4) #9
  %4219 = load i32, ptr %2353, align 4, !tbaa !5
  %4220 = call ptr @strerror(i32 noundef %4219) #9
  %4221 = load i32, ptr %2353, align 4, !tbaa !5
  %4222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4213, ptr noundef nonnull %.str.5.sink2174, i32 noundef %4214, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %4216, ptr noundef %4218, ptr noundef %4220, i32 noundef %4221) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4223:                                             ; preds = %4196
  %4224 = load i32, ptr @test_count, align 4, !tbaa !5
  %4225 = add nsw i32 %4224, 1
  store i32 %4225, ptr @test_count, align 4, !tbaa !5
  %4226 = call i32 @s2n_config_free(ptr noundef nonnull %229) #9
  %4227 = icmp eq i32 %4226, -1
  br i1 %4227, label %4228, label %4250

4228:                                             ; preds = %4223
  %4229 = load i32, ptr %2353, align 4, !tbaa !5
  %4230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4231 = call i32 @s2n_print_stacktrace(ptr noundef %4230) #9
  %4232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4233 = trunc nuw i8 %4232 to i1
  br i1 %4233, label %4234, label %4238

4234:                                             ; preds = %4228
  %4235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4236 = call i32 @fileno(ptr noundef %4235) #9
  %4237 = call i32 @isatty(i32 noundef %4236) #9
  %.not573 = icmp eq i32 %4237, 0
  br i1 %.not573, label %4238, label %4239

4238:                                             ; preds = %4234, %4228
  br label %4239

4239:                                             ; preds = %4234, %4238
  %.str.5.sink2183 = phi ptr [ @.str.5, %4238 ], [ @.str.2, %4234 ]
  store i32 %4229, ptr %2353, align 4, !tbaa !5
  %4240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4241 = load i32, ptr @test_count, align 4, !tbaa !5
  %4242 = load i32, ptr %2299, align 4, !tbaa !5
  %4243 = call ptr @s2n_strerror(i32 noundef %4242, ptr noundef nonnull @.str.4) #9
  %4244 = load i32, ptr %2299, align 4, !tbaa !5
  %4245 = call ptr @s2n_strerror_debug(i32 noundef %4244, ptr noundef nonnull @.str.4) #9
  %4246 = load i32, ptr %2353, align 4, !tbaa !5
  %4247 = call ptr @strerror(i32 noundef %4246) #9
  %4248 = load i32, ptr %2353, align 4, !tbaa !5
  %4249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4240, ptr noundef nonnull %.str.5.sink2183, i32 noundef %4241, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %4243, ptr noundef %4245, ptr noundef %4247, i32 noundef %4248) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4250:                                             ; preds = %4223
  %4251 = load i32, ptr @test_count, align 4, !tbaa !5
  %4252 = add nsw i32 %4251, 1
  store i32 %4252, ptr @test_count, align 4, !tbaa !5
  %4253 = call i32 @s2n_config_free(ptr noundef nonnull %316) #9
  %4254 = icmp eq i32 %4253, -1
  br i1 %4254, label %4255, label %4277

4255:                                             ; preds = %4250
  %4256 = load i32, ptr %2353, align 4, !tbaa !5
  %4257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4258 = call i32 @s2n_print_stacktrace(ptr noundef %4257) #9
  %4259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4260 = trunc nuw i8 %4259 to i1
  br i1 %4260, label %4261, label %4265

4261:                                             ; preds = %4255
  %4262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4263 = call i32 @fileno(ptr noundef %4262) #9
  %4264 = call i32 @isatty(i32 noundef %4263) #9
  %.not572 = icmp eq i32 %4264, 0
  br i1 %.not572, label %4265, label %4266

4265:                                             ; preds = %4261, %4255
  br label %4266

4266:                                             ; preds = %4261, %4265
  %.str.5.sink2192 = phi ptr [ @.str.5, %4265 ], [ @.str.2, %4261 ]
  store i32 %4256, ptr %2353, align 4, !tbaa !5
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = load i32, ptr @test_count, align 4, !tbaa !5
  %4269 = load i32, ptr %2299, align 4, !tbaa !5
  %4270 = call ptr @s2n_strerror(i32 noundef %4269, ptr noundef nonnull @.str.4) #9
  %4271 = load i32, ptr %2299, align 4, !tbaa !5
  %4272 = call ptr @s2n_strerror_debug(i32 noundef %4271, ptr noundef nonnull @.str.4) #9
  %4273 = load i32, ptr %2353, align 4, !tbaa !5
  %4274 = call ptr @strerror(i32 noundef %4273) #9
  %4275 = load i32, ptr %2353, align 4, !tbaa !5
  %4276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4267, ptr noundef nonnull %.str.5.sink2192, i32 noundef %4268, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 444, ptr noundef %4270, ptr noundef %4272, ptr noundef %4274, i32 noundef %4275) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4277:                                             ; preds = %4250
  %4278 = load i32, ptr @test_count, align 4, !tbaa !5
  %4279 = add nsw i32 %4278, 1
  store i32 %4279, ptr @test_count, align 4, !tbaa !5
  %4280 = call i32 @s2n_io_pair_close(ptr noundef nonnull %4) #9
  %4281 = icmp eq i32 %4280, -1
  br i1 %4281, label %4282, label %4304

4282:                                             ; preds = %4277
  %4283 = load i32, ptr %2353, align 4, !tbaa !5
  %4284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4285 = call i32 @s2n_print_stacktrace(ptr noundef %4284) #9
  %4286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4287 = trunc nuw i8 %4286 to i1
  br i1 %4287, label %4288, label %4292

4288:                                             ; preds = %4282
  %4289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4290 = call i32 @fileno(ptr noundef %4289) #9
  %4291 = call i32 @isatty(i32 noundef %4290) #9
  %.not571 = icmp eq i32 %4291, 0
  br i1 %.not571, label %4292, label %4293

4292:                                             ; preds = %4288, %4282
  br label %4293

4293:                                             ; preds = %4288, %4292
  %.str.5.sink2201 = phi ptr [ @.str.5, %4292 ], [ @.str.2, %4288 ]
  store i32 %4283, ptr %2353, align 4, !tbaa !5
  %4294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4295 = load i32, ptr @test_count, align 4, !tbaa !5
  %4296 = load i32, ptr %2299, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror(i32 noundef %4296, ptr noundef nonnull @.str.4) #9
  %4298 = load i32, ptr %2299, align 4, !tbaa !5
  %4299 = call ptr @s2n_strerror_debug(i32 noundef %4298, ptr noundef nonnull @.str.4) #9
  %4300 = load i32, ptr %2353, align 4, !tbaa !5
  %4301 = call ptr @strerror(i32 noundef %4300) #9
  %4302 = load i32, ptr %2353, align 4, !tbaa !5
  %4303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4294, ptr noundef nonnull %.str.5.sink2201, i32 noundef %4295, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef %4297, ptr noundef %4299, ptr noundef %4301, i32 noundef %4302) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4304:                                             ; preds = %4277
  %4305 = load i32, ptr @test_count, align 4, !tbaa !5
  %4306 = add nsw i32 %4305, 1
  store i32 %4306, ptr @test_count, align 4, !tbaa !5
  %4307 = load ptr, ptr %3, align 8, !tbaa !9
  %4308 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %4307) #9
  %4309 = icmp eq i32 %4308, -1
  br i1 %4309, label %4310, label %4332

4310:                                             ; preds = %4304
  %4311 = load i32, ptr %2353, align 4, !tbaa !5
  %4312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4313 = call i32 @s2n_print_stacktrace(ptr noundef %4312) #9
  %4314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4315 = trunc nuw i8 %4314 to i1
  br i1 %4315, label %4316, label %4320

4316:                                             ; preds = %4310
  %4317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4318 = call i32 @fileno(ptr noundef %4317) #9
  %4319 = call i32 @isatty(i32 noundef %4318) #9
  %.not570 = icmp eq i32 %4319, 0
  br i1 %.not570, label %4320, label %4321

4320:                                             ; preds = %4316, %4310
  br label %4321

4321:                                             ; preds = %4316, %4320
  %.str.5.sink2210 = phi ptr [ @.str.5, %4320 ], [ @.str.2, %4316 ]
  store i32 %4311, ptr %2353, align 4, !tbaa !5
  %4322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4323 = load i32, ptr @test_count, align 4, !tbaa !5
  %4324 = load i32, ptr %2299, align 4, !tbaa !5
  %4325 = call ptr @s2n_strerror(i32 noundef %4324, ptr noundef nonnull @.str.4) #9
  %4326 = load i32, ptr %2299, align 4, !tbaa !5
  %4327 = call ptr @s2n_strerror_debug(i32 noundef %4326, ptr noundef nonnull @.str.4) #9
  %4328 = load i32, ptr %2353, align 4, !tbaa !5
  %4329 = call ptr @strerror(i32 noundef %4328) #9
  %4330 = load i32, ptr %2353, align 4, !tbaa !5
  %4331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4322, ptr noundef nonnull %.str.5.sink2210, i32 noundef %4323, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %4325, ptr noundef %4327, ptr noundef %4329, i32 noundef %4330) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4332:                                             ; preds = %4304
  %4333 = call i32 @s2n_cleanup() #9
  %4334 = icmp eq i32 %4333, -1
  br i1 %4334, label %4335, label %4357

4335:                                             ; preds = %4332
  %4336 = load i32, ptr %2353, align 4, !tbaa !5
  %4337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4338 = call i32 @s2n_print_stacktrace(ptr noundef %4337) #9
  %4339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4340 = trunc nuw i8 %4339 to i1
  br i1 %4340, label %4341, label %4345

4341:                                             ; preds = %4335
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = call i32 @fileno(ptr noundef %4342) #9
  %4344 = call i32 @isatty(i32 noundef %4343) #9
  %.not569 = icmp eq i32 %4344, 0
  br i1 %.not569, label %4345, label %4346

4345:                                             ; preds = %4341, %4335
  br label %4346

4346:                                             ; preds = %4341, %4345
  %.str.5.sink2219 = phi ptr [ @.str.5, %4345 ], [ @.str.2, %4341 ]
  store i32 %4336, ptr %2353, align 4, !tbaa !5
  %4347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4348 = load i32, ptr @test_count, align 4, !tbaa !5
  %4349 = load i32, ptr %2299, align 4, !tbaa !5
  %4350 = call ptr @s2n_strerror(i32 noundef %4349, ptr noundef nonnull @.str.4) #9
  %4351 = load i32, ptr %2299, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror_debug(i32 noundef %4351, ptr noundef nonnull @.str.4) #9
  %4353 = load i32, ptr %2353, align 4, !tbaa !5
  %4354 = call ptr @strerror(i32 noundef %4353) #9
  %4355 = load i32, ptr %2353, align 4, !tbaa !5
  %4356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4347, ptr noundef nonnull %.str.5.sink2219, i32 noundef %4348, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %4350, ptr noundef %4352, ptr noundef %4354, i32 noundef %4355) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4357:                                             ; preds = %4332
  %4358 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %4359 = icmp eq i32 %4358, -1
  br i1 %4359, label %4360, label %4382

4360:                                             ; preds = %4357
  %4361 = load i32, ptr %2353, align 4, !tbaa !5
  %4362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4363 = call i32 @s2n_print_stacktrace(ptr noundef %4362) #9
  %4364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4365 = trunc nuw i8 %4364 to i1
  br i1 %4365, label %4366, label %4370

4366:                                             ; preds = %4360
  %4367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4368 = call i32 @fileno(ptr noundef %4367) #9
  %4369 = call i32 @isatty(i32 noundef %4368) #9
  %.not568 = icmp eq i32 %4369, 0
  br i1 %.not568, label %4370, label %4371

4370:                                             ; preds = %4366, %4360
  br label %4371

4371:                                             ; preds = %4366, %4370
  %.str.5.sink2228 = phi ptr [ @.str.5, %4370 ], [ @.str.2, %4366 ]
  store i32 %4361, ptr %2353, align 4, !tbaa !5
  %4372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4373 = load i32, ptr @test_count, align 4, !tbaa !5
  %4374 = load i32, ptr %2299, align 4, !tbaa !5
  %4375 = call ptr @s2n_strerror(i32 noundef %4374, ptr noundef nonnull @.str.4) #9
  %4376 = load i32, ptr %2299, align 4, !tbaa !5
  %4377 = call ptr @s2n_strerror_debug(i32 noundef %4376, ptr noundef nonnull @.str.4) #9
  %4378 = load i32, ptr %2353, align 4, !tbaa !5
  %4379 = call ptr @strerror(i32 noundef %4378) #9
  %4380 = load i32, ptr %2353, align 4, !tbaa !5
  %4381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4372, ptr noundef nonnull %.str.5.sink2228, i32 noundef %4373, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %4375, ptr noundef %4377, ptr noundef %4379, i32 noundef %4380) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4382:                                             ; preds = %4357
  %4383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4384 = trunc nuw i8 %4383 to i1
  br i1 %4384, label %4385, label %4396

4385:                                             ; preds = %4382
  %4386 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4387 = call i32 @fileno(ptr noundef %4386) #9
  %4388 = call i32 @isatty(i32 noundef %4387) #9
  %.not565 = icmp eq i32 %4388, 0
  br i1 %.not565, label %4396, label %4389

4389:                                             ; preds = %4385
  %4390 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not567 = icmp eq i32 %4390, 0
  %4391 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not567, label %4394, label %4392

4392:                                             ; preds = %4389
  %4393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4391, ptr noundef nonnull @.str.10, i32 noundef %4390) #9
  br label %4403

4394:                                             ; preds = %4389
  %4395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4391, ptr noundef nonnull @.str.11) #9
  br label %4403

4396:                                             ; preds = %4385, %4382
  %4397 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not566 = icmp eq i32 %4397, 0
  %4398 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not566, label %4401, label %4399

4399:                                             ; preds = %4396
  %4400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4398, ptr noundef nonnull @.str.12, i32 noundef %4397) #9
  br label %4403

4401:                                             ; preds = %4396
  %4402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4398, ptr noundef nonnull @.str.13) #9
  br label %4403

4403:                                             ; preds = %4399, %4401, %4392, %4394
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  br label %4404

4404:                                             ; preds = %159, %157, %166, %164, %4403
  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 zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @validate_chosen_psk(ptr noundef, ptr noundef, i64 noundef, i64 noundef) local_unnamed_addr #0

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

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_client_hello_cb_done(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

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

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

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


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