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

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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_result = type { i32 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [96 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
@s2n_client_early_data_indication_extension = external constant %struct.s2n_extension_type, align 8
@.str.14 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [89 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.18 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [77 x i8], align 1
@s2n_client_psk_extension = external constant %struct.s2n_extension_type, align 8
@.str.23 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [74 x i8], align 1
@s2n_rsa_with_3des_ede_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.27 = external hidden unnamed_addr constant [129 x i8], align 1
@__const.main.app_protocol_data = external hidden unnamed_addr constant [20 x i8], align 16
@__const.main.other_app_protocol_data = external hidden unnamed_addr constant [19 x i8], align 16
@.str.28 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.35 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_ecc_curve_secp521r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.68 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [74 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@security_policy_test_all_tls13 = external constant %struct.s2n_security_policy, align 8
@.str.72 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [55 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 i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_result, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_result, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca %struct.s2n_result, align 4
  %52 = alloca i32, align 4
  %53 = alloca %struct.s2n_result, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca %struct.s2n_result, align 4
  %57 = alloca i32, align 4
  %58 = alloca %struct.s2n_result, align 4
  %59 = alloca i32, align 4
  %60 = alloca %struct.s2n_result, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca %struct.s2n_result, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca %struct.s2n_result, 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 ptr, align 8
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca %struct.s2n_result, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca [20 x i8], align 16
  %94 = alloca [19 x i8], align 16
  %95 = alloca %struct.s2n_blob, align 8
  %96 = alloca %struct.s2n_blob, align 8
  %97 = alloca i32, align 4
  %98 = alloca %struct.s2n_result, align 4
  %99 = alloca i32, 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 %struct.s2n_result, 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 %struct.s2n_result, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca ptr, align 8
  %118 = alloca i32, align 4
  %119 = alloca ptr, align 8
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca %struct.s2n_result, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca ptr, align 8
  %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 ptr, align 8
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca %struct.s2n_result, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca ptr, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca %struct.s2n_result, 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 i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca ptr, align 8
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca %struct.s2n_result, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca ptr, align 8
  %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 ptr, align 8
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca %struct.s2n_result, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca ptr, align 8
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca %struct.s2n_result, align 4
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca ptr, align 8
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca %struct.s2n_result, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca ptr, align 8
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca %struct.s2n_result, align 4
  %213 = alloca i32, align 4
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca ptr, align 8
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca %struct.s2n_result, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca ptr, align 8
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca %struct.s2n_result, align 4
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca i32, align 4
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca i32, align 4
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca ptr, align 8
  %251 = alloca i32, align 4
  %252 = alloca %struct.s2n_result, align 4
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca ptr, align 8
  %257 = alloca i32, align 4
  %258 = alloca %struct.s2n_result, align 4
  %259 = alloca i32, align 4
  %260 = alloca i32, align 4
  %261 = alloca i32, align 4
  %262 = alloca i32, align 4
  %263 = alloca i32, align 4
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca i32, align 4
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca i32, align 4
  %273 = alloca i32, align 4
  %274 = alloca i32, align 4
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = 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 %281

281:                                              ; preds = %2
  br label %282

282:                                              ; preds = %281
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %283 = load ptr, ptr @stdout, align 8, !tbaa !9
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %283, ptr noundef @.str, ptr noundef @.str.1) #10
  %285 = load ptr, ptr @stdout, align 8, !tbaa !9
  %286 = call i32 @fflush(ptr noundef %285)
  br label %287

287:                                              ; preds = %282
  %288 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %289 = icmp eq i32 %288, -1
  br i1 %289, label %290, label %341

290:                                              ; preds = %287
  br label %291

291:                                              ; preds = %290
  br label %292

292:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %293 = call ptr @__errno_location() #11
  %294 = load i32, ptr %293, align 4, !tbaa !5
  store i32 %294, ptr %6, align 4, !tbaa !5
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = call i32 @s2n_print_stacktrace(ptr noundef %295)
  %297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %298 = trunc i8 %297 to i1
  br i1 %298, label %299, label %321

299:                                              ; preds = %292
  %300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %301 = call i32 @fileno(ptr noundef %300) #10
  %302 = call i32 @isatty(i32 noundef %301) #10
  %303 = icmp ne i32 %302, 0
  br i1 %303, label %304, label %321

304:                                              ; preds = %299
  %305 = load i32, ptr %6, align 4, !tbaa !5
  %306 = call ptr @__errno_location() #11
  store i32 %305, ptr %306, align 4, !tbaa !5
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror(i32 noundef %310, ptr noundef @.str.4)
  %312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef @.str.4)
  %315 = call ptr @__errno_location() #11
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @strerror(i32 noundef %316) #10
  %318 = call ptr @__errno_location() #11
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %307, ptr noundef @.str.2, i32 noundef %308, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 36, ptr noundef %311, ptr noundef %314, ptr noundef %317, i32 noundef %319) #10
  br label %338

321:                                              ; preds = %299, %292
  %322 = load i32, ptr %6, align 4, !tbaa !5
  %323 = call ptr @__errno_location() #11
  store i32 %322, ptr %323, align 4, !tbaa !5
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = load i32, ptr @test_count, align 4, !tbaa !5
  %326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror(i32 noundef %327, ptr noundef @.str.4)
  %329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = call ptr @s2n_strerror_debug(i32 noundef %330, ptr noundef @.str.4)
  %332 = call ptr @__errno_location() #11
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = call ptr @strerror(i32 noundef %333) #10
  %335 = call ptr @__errno_location() #11
  %336 = load i32, ptr %335, align 4, !tbaa !5
  %337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %324, ptr noundef @.str.5, i32 noundef %325, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 36, ptr noundef %328, ptr noundef %331, ptr noundef %334, i32 noundef %336) #10
  br label %338

338:                                              ; preds = %321, %304
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %339

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

340:                                              ; No predecessors!
  br label %341

341:                                              ; preds = %340, %287
  br label %342

342:                                              ; preds = %341
  br label %343

343:                                              ; preds = %342
  %344 = load i32, ptr @test_count, align 4, !tbaa !5
  %345 = add nsw i32 %344, 1
  store i32 %345, ptr @test_count, align 4, !tbaa !5
  %346 = call i32 @s2n_enable_atexit()
  %347 = icmp eq i32 %346, -1
  br i1 %347, label %348, label %399

348:                                              ; preds = %343
  br label %349

349:                                              ; preds = %348
  br label %350

350:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %351 = call ptr @__errno_location() #11
  %352 = load i32, ptr %351, align 4, !tbaa !5
  store i32 %352, ptr %7, align 4, !tbaa !5
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @s2n_print_stacktrace(ptr noundef %353)
  %355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %356 = trunc i8 %355 to i1
  br i1 %356, label %357, label %379

357:                                              ; preds = %350
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = call i32 @fileno(ptr noundef %358) #10
  %360 = call i32 @isatty(i32 noundef %359) #10
  %361 = icmp ne i32 %360, 0
  br i1 %361, label %362, label %379

362:                                              ; preds = %357
  %363 = load i32, ptr %7, align 4, !tbaa !5
  %364 = call ptr @__errno_location() #11
  store i32 %363, ptr %364, align 4, !tbaa !5
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = load i32, ptr @test_count, align 4, !tbaa !5
  %367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror(i32 noundef %368, ptr noundef @.str.4)
  %370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror_debug(i32 noundef %371, ptr noundef @.str.4)
  %373 = call ptr @__errno_location() #11
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @strerror(i32 noundef %374) #10
  %376 = call ptr @__errno_location() #11
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %365, ptr noundef @.str.2, i32 noundef %366, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 36, ptr noundef %369, ptr noundef %372, ptr noundef %375, i32 noundef %377) #10
  br label %396

379:                                              ; preds = %357, %350
  %380 = load i32, ptr %7, align 4, !tbaa !5
  %381 = call ptr @__errno_location() #11
  store i32 %380, ptr %381, align 4, !tbaa !5
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = load i32, ptr @test_count, align 4, !tbaa !5
  %384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror(i32 noundef %385, ptr noundef @.str.4)
  %387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror_debug(i32 noundef %388, ptr noundef @.str.4)
  %390 = call ptr @__errno_location() #11
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call ptr @strerror(i32 noundef %391) #10
  %393 = call ptr @__errno_location() #11
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %382, ptr noundef @.str.5, i32 noundef %383, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 36, ptr noundef %386, ptr noundef %389, ptr noundef %392, i32 noundef %394) #10
  br label %396

396:                                              ; preds = %379, %362
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %397

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

398:                                              ; No predecessors!
  br label %399

399:                                              ; preds = %398, %343
  br label %400

400:                                              ; preds = %399
  br label %401

401:                                              ; preds = %400
  br label %402

402:                                              ; preds = %401
  %403 = call i32 @s2n_init()
  %404 = icmp eq i32 %403, -1
  br i1 %404, label %405, label %456

405:                                              ; preds = %402
  br label %406

406:                                              ; preds = %405
  br label %407

407:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %408 = call ptr @__errno_location() #11
  %409 = load i32, ptr %408, align 4, !tbaa !5
  store i32 %409, ptr %8, align 4, !tbaa !5
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = call i32 @s2n_print_stacktrace(ptr noundef %410)
  %412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %413 = trunc i8 %412 to i1
  br i1 %413, label %414, label %436

414:                                              ; preds = %407
  %415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %416 = call i32 @fileno(ptr noundef %415) #10
  %417 = call i32 @isatty(i32 noundef %416) #10
  %418 = icmp ne i32 %417, 0
  br i1 %418, label %419, label %436

419:                                              ; preds = %414
  %420 = load i32, ptr %8, align 4, !tbaa !5
  %421 = call ptr @__errno_location() #11
  store i32 %420, ptr %421, align 4, !tbaa !5
  %422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @s2n_strerror(i32 noundef %425, ptr noundef @.str.4)
  %427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call ptr @s2n_strerror_debug(i32 noundef %428, ptr noundef @.str.4)
  %430 = call ptr @__errno_location() #11
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call ptr @strerror(i32 noundef %431) #10
  %433 = call ptr @__errno_location() #11
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %422, ptr noundef @.str.2, i32 noundef %423, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 36, ptr noundef %426, ptr noundef %429, ptr noundef %432, i32 noundef %434) #10
  br label %453

436:                                              ; preds = %414, %407
  %437 = load i32, ptr %8, align 4, !tbaa !5
  %438 = call ptr @__errno_location() #11
  store i32 %437, ptr %438, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call ptr @s2n_strerror(i32 noundef %442, ptr noundef @.str.4)
  %444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %445 = load i32, ptr %444, align 4, !tbaa !5
  %446 = call ptr @s2n_strerror_debug(i32 noundef %445, ptr noundef @.str.4)
  %447 = call ptr @__errno_location() #11
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = call ptr @strerror(i32 noundef %448) #10
  %450 = call ptr @__errno_location() #11
  %451 = load i32, ptr %450, align 4, !tbaa !5
  %452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %439, ptr noundef @.str.5, i32 noundef %440, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 36, ptr noundef %443, ptr noundef %446, ptr noundef %449, i32 noundef %451) #10
  br label %453

453:                                              ; preds = %436, %419
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %454

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

455:                                              ; No predecessors!
  br label %456

456:                                              ; preds = %455, %402
  br label %457

457:                                              ; preds = %456
  br label %458

458:                                              ; preds = %457
  %459 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %459, label %607, label %460

460:                                              ; preds = %458
  br label %461

461:                                              ; preds = %460
  br label %462

462:                                              ; preds = %461
  %463 = call i32 @s2n_cleanup()
  %464 = icmp eq i32 %463, -1
  br i1 %464, label %465, label %516

465:                                              ; preds = %462
  br label %466

466:                                              ; preds = %465
  br label %467

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

474:                                              ; preds = %467
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = call i32 @fileno(ptr noundef %475) #10
  %477 = call i32 @isatty(i32 noundef %476) #10
  %478 = icmp ne i32 %477, 0
  br i1 %478, label %479, label %496

479:                                              ; preds = %474
  %480 = load i32, ptr %9, align 4, !tbaa !5
  %481 = call ptr @__errno_location() #11
  store i32 %480, ptr %481, align 4, !tbaa !5
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %485 = load i32, ptr %484, align 4, !tbaa !5
  %486 = call ptr @s2n_strerror(i32 noundef %485, ptr noundef @.str.4)
  %487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror_debug(i32 noundef %488, ptr noundef @.str.4)
  %490 = call ptr @__errno_location() #11
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @strerror(i32 noundef %491) #10
  %493 = call ptr @__errno_location() #11
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %482, ptr noundef @.str.2, i32 noundef %483, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 39, ptr noundef %486, ptr noundef %489, ptr noundef %492, i32 noundef %494) #10
  br label %513

496:                                              ; preds = %474, %467
  %497 = load i32, ptr %9, align 4, !tbaa !5
  %498 = call ptr @__errno_location() #11
  store i32 %497, ptr %498, align 4, !tbaa !5
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = load i32, ptr @test_count, align 4, !tbaa !5
  %501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %502 = load i32, ptr %501, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror(i32 noundef %502, ptr noundef @.str.4)
  %504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror_debug(i32 noundef %505, ptr noundef @.str.4)
  %507 = call ptr @__errno_location() #11
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call ptr @strerror(i32 noundef %508) #10
  %510 = call ptr @__errno_location() #11
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %499, ptr noundef @.str.5, i32 noundef %500, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 39, ptr noundef %503, ptr noundef %506, ptr noundef %509, i32 noundef %511) #10
  br label %513

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

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

515:                                              ; No predecessors!
  br label %516

516:                                              ; preds = %515, %462
  br label %517

517:                                              ; preds = %516
  br label %518

518:                                              ; preds = %517
  br label %519

519:                                              ; preds = %518
  %520 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %521 = icmp eq i32 %520, -1
  br i1 %521, label %522, label %573

522:                                              ; preds = %519
  br label %523

523:                                              ; preds = %522
  br label %524

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

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

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

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

570:                                              ; preds = %553, %536
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %571

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

572:                                              ; No predecessors!
  br label %573

573:                                              ; preds = %572, %519
  br label %574

574:                                              ; preds = %573
  %575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %576 = trunc i8 %575 to i1
  br i1 %576, label %577, label %593

577:                                              ; preds = %574
  %578 = load ptr, ptr @stdout, align 8, !tbaa !9
  %579 = call i32 @fileno(ptr noundef %578) #10
  %580 = call i32 @isatty(i32 noundef %579) #10
  %581 = icmp ne i32 %580, 0
  br i1 %581, label %582, label %593

582:                                              ; preds = %577
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = icmp ne i32 %583, 0
  br i1 %584, label %585, label %589

585:                                              ; preds = %582
  %586 = load ptr, ptr @stdout, align 8, !tbaa !9
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %586, ptr noundef @.str.10, i32 noundef %587) #10
  br label %592

589:                                              ; preds = %582
  %590 = load ptr, ptr @stdout, align 8, !tbaa !9
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %590, ptr noundef @.str.11) #10
  br label %592

592:                                              ; preds = %589, %585
  br label %604

593:                                              ; preds = %577, %574
  %594 = load i32, ptr @test_count, align 4, !tbaa !5
  %595 = icmp ne i32 %594, 0
  br i1 %595, label %596, label %600

596:                                              ; preds = %593
  %597 = load ptr, ptr @stdout, align 8, !tbaa !9
  %598 = load i32, ptr @test_count, align 4, !tbaa !5
  %599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %597, ptr noundef @.str.12, i32 noundef %598) #10
  br label %603

600:                                              ; preds = %593
  %601 = load ptr, ptr @stdout, align 8, !tbaa !9
  %602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef @.str.13) #10
  br label %603

603:                                              ; preds = %600, %596
  br label %604

604:                                              ; preds = %603, %592
  store i32 0, ptr %3, align 4
  br label %14047

605:                                              ; No predecessors!
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606, %458
  br label %608

608:                                              ; preds = %607
  %609 = load i32, ptr @test_count, align 4, !tbaa !5
  %610 = add nsw i32 %609, 1
  store i32 %610, ptr @test_count, align 4, !tbaa !5
  %611 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %612 = call zeroext i1 %611(ptr noundef null)
  br i1 %612, label %613, label %664

613:                                              ; preds = %608
  br label %614

614:                                              ; preds = %613
  br label %615

615:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  %616 = call ptr @__errno_location() #11
  %617 = load i32, ptr %616, align 4, !tbaa !5
  store i32 %617, ptr %11, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @s2n_print_stacktrace(ptr noundef %618)
  %620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %621 = trunc i8 %620 to i1
  br i1 %621, label %622, label %644

622:                                              ; preds = %615
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @fileno(ptr noundef %623) #10
  %625 = call i32 @isatty(i32 noundef %624) #10
  %626 = icmp ne i32 %625, 0
  br i1 %626, label %627, label %644

627:                                              ; preds = %622
  %628 = load i32, ptr %11, align 4, !tbaa !5
  %629 = call ptr @__errno_location() #11
  store i32 %628, ptr %629, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror(i32 noundef %633, ptr noundef @.str.4)
  %635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror_debug(i32 noundef %636, ptr noundef @.str.4)
  %638 = call ptr @__errno_location() #11
  %639 = load i32, ptr %638, align 4, !tbaa !5
  %640 = call ptr @strerror(i32 noundef %639) #10
  %641 = call ptr @__errno_location() #11
  %642 = load i32, ptr %641, align 4, !tbaa !5
  %643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef @.str.2, i32 noundef %631, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 45, ptr noundef %634, ptr noundef %637, ptr noundef %640, i32 noundef %642) #10
  br label %661

644:                                              ; preds = %622, %615
  %645 = load i32, ptr %11, align 4, !tbaa !5
  %646 = call ptr @__errno_location() #11
  store i32 %645, ptr %646, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = load i32, ptr @test_count, align 4, !tbaa !5
  %649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = call ptr @s2n_strerror(i32 noundef %650, ptr noundef @.str.4)
  %652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %653 = load i32, ptr %652, align 4, !tbaa !5
  %654 = call ptr @s2n_strerror_debug(i32 noundef %653, ptr noundef @.str.4)
  %655 = call ptr @__errno_location() #11
  %656 = load i32, ptr %655, align 4, !tbaa !5
  %657 = call ptr @strerror(i32 noundef %656) #10
  %658 = call ptr @__errno_location() #11
  %659 = load i32, ptr %658, align 4, !tbaa !5
  %660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %647, ptr noundef @.str.5, i32 noundef %648, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 45, ptr noundef %651, ptr noundef %654, ptr noundef %657, i32 noundef %659) #10
  br label %661

661:                                              ; preds = %644, %627
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %662

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

663:                                              ; No predecessors!
  br label %664

664:                                              ; preds = %663, %608
  br label %665

665:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 10, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #10
  %666 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %666, ptr %13, align 8, !tbaa !9
  br label %667

667:                                              ; preds = %665
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = load ptr, ptr %13, align 8, !tbaa !9
  %671 = icmp eq ptr %670, null
  br i1 %671, label %672, label %725

672:                                              ; preds = %667
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %675 = call ptr @__errno_location() #11
  %676 = load i32, ptr %675, align 4, !tbaa !5
  store i32 %676, ptr %14, align 4, !tbaa !5
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = call i32 @s2n_print_stacktrace(ptr noundef %677)
  %679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %680 = trunc i8 %679 to i1
  br i1 %680, label %681, label %703

681:                                              ; preds = %674
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = call i32 @fileno(ptr noundef %682) #10
  %684 = call i32 @isatty(i32 noundef %683) #10
  %685 = icmp ne i32 %684, 0
  br i1 %685, label %686, label %703

686:                                              ; preds = %681
  %687 = load i32, ptr %14, align 4, !tbaa !5
  %688 = call ptr @__errno_location() #11
  store i32 %687, ptr %688, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef @.str.4)
  %694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef @.str.4)
  %697 = call ptr @__errno_location() #11
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #10
  %700 = call ptr @__errno_location() #11
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef @.str.2, i32 noundef %690, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 52, ptr noundef %693, ptr noundef %696, ptr noundef %699, i32 noundef %701) #10
  br label %720

703:                                              ; preds = %681, %674
  %704 = load i32, ptr %14, align 4, !tbaa !5
  %705 = call ptr @__errno_location() #11
  store i32 %704, ptr %705, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef @.str.4)
  %711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror_debug(i32 noundef %712, ptr noundef @.str.4)
  %714 = call ptr @__errno_location() #11
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call ptr @strerror(i32 noundef %715) #10
  %717 = call ptr @__errno_location() #11
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef @.str.5, i32 noundef %707, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 52, ptr noundef %710, ptr noundef %713, ptr noundef %716, i32 noundef %718) #10
  br label %720

720:                                              ; preds = %703, %686
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %721

721:                                              ; preds = %720
  br label %722

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

723:                                              ; No predecessors!
  br label %724

724:                                              ; preds = %723
  br label %725

725:                                              ; preds = %724, %667
  br label %726

726:                                              ; preds = %725
  br label %727

727:                                              ; preds = %726
  br label %728

728:                                              ; preds = %727
  %729 = load i32, ptr @test_count, align 4, !tbaa !5
  %730 = add nsw i32 %729, 1
  store i32 %730, ptr @test_count, align 4, !tbaa !5
  %731 = load ptr, ptr %13, align 8, !tbaa !9
  %732 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %731, ptr noundef @.str.16)
  %733 = icmp eq i32 %732, -1
  br i1 %733, label %734, label %787

734:                                              ; preds = %728
  br label %735

735:                                              ; preds = %734
  br label %736

736:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %737 = call ptr @__errno_location() #11
  %738 = load i32, ptr %737, align 4, !tbaa !5
  store i32 %738, ptr %15, align 4, !tbaa !5
  %739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %740 = call i32 @s2n_print_stacktrace(ptr noundef %739)
  %741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %742 = trunc i8 %741 to i1
  br i1 %742, label %743, label %765

743:                                              ; preds = %736
  %744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %745 = call i32 @fileno(ptr noundef %744) #10
  %746 = call i32 @isatty(i32 noundef %745) #10
  %747 = icmp ne i32 %746, 0
  br i1 %747, label %748, label %765

748:                                              ; preds = %743
  %749 = load i32, ptr %15, align 4, !tbaa !5
  %750 = call ptr @__errno_location() #11
  store i32 %749, ptr %750, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror(i32 noundef %754, ptr noundef @.str.4)
  %756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef @.str.4)
  %759 = call ptr @__errno_location() #11
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @strerror(i32 noundef %760) #10
  %762 = call ptr @__errno_location() #11
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %751, ptr noundef @.str.2, i32 noundef %752, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 53, ptr noundef %755, ptr noundef %758, ptr noundef %761, i32 noundef %763) #10
  br label %782

765:                                              ; preds = %743, %736
  %766 = load i32, ptr %15, align 4, !tbaa !5
  %767 = call ptr @__errno_location() #11
  store i32 %766, ptr %767, 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 @.str.4)
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror_debug(i32 noundef %774, ptr noundef @.str.4)
  %776 = call ptr @__errno_location() #11
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #10
  %779 = call ptr @__errno_location() #11
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef @.str.5, i32 noundef %769, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 53, ptr noundef %772, ptr noundef %775, ptr noundef %778, i32 noundef %780) #10
  br label %782

782:                                              ; preds = %765, %748
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %783

783:                                              ; preds = %782
  br label %784

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

785:                                              ; No predecessors!
  br label %786

786:                                              ; preds = %785
  br label %787

787:                                              ; preds = %786, %728
  br label %788

788:                                              ; preds = %787
  br label %789

789:                                              ; preds = %788
  br label %790

790:                                              ; preds = %789
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = add nsw i32 %791, 1
  store i32 %792, ptr @test_count, align 4, !tbaa !5
  %793 = load ptr, ptr %13, align 8, !tbaa !9
  %794 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %793, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %795 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %794, ptr %795, align 4
  %796 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %797 = load i32, ptr %796, align 4
  %798 = call zeroext i1 @s2n_result_is_ok(i32 %797)
  br i1 %798, label %852, label %799

799:                                              ; preds = %790
  br label %800

800:                                              ; preds = %799
  br label %801

801:                                              ; preds = %800
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %802 = call ptr @__errno_location() #11
  %803 = load i32, ptr %802, align 4, !tbaa !5
  store i32 %803, ptr %17, align 4, !tbaa !5
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = call i32 @s2n_print_stacktrace(ptr noundef %804)
  %806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %807 = trunc i8 %806 to i1
  br i1 %807, label %808, label %830

808:                                              ; preds = %801
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = call i32 @fileno(ptr noundef %809) #10
  %811 = call i32 @isatty(i32 noundef %810) #10
  %812 = icmp ne i32 %811, 0
  br i1 %812, label %813, label %830

813:                                              ; preds = %808
  %814 = load i32, ptr %17, align 4, !tbaa !5
  %815 = call ptr @__errno_location() #11
  store i32 %814, ptr %815, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = load i32, ptr @test_count, align 4, !tbaa !5
  %818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror(i32 noundef %819, ptr noundef @.str.4)
  %821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror_debug(i32 noundef %822, ptr noundef @.str.4)
  %824 = call ptr @__errno_location() #11
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call ptr @strerror(i32 noundef %825) #10
  %827 = call ptr @__errno_location() #11
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %816, ptr noundef @.str.2, i32 noundef %817, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 54, ptr noundef %820, ptr noundef %823, ptr noundef %826, i32 noundef %828) #10
  br label %847

830:                                              ; preds = %808, %801
  %831 = load i32, ptr %17, align 4, !tbaa !5
  %832 = call ptr @__errno_location() #11
  store i32 %831, ptr %832, align 4, !tbaa !5
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = load i32, ptr @test_count, align 4, !tbaa !5
  %835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = call ptr @s2n_strerror(i32 noundef %836, ptr noundef @.str.4)
  %838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %839 = load i32, ptr %838, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror_debug(i32 noundef %839, ptr noundef @.str.4)
  %841 = call ptr @__errno_location() #11
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = call ptr @strerror(i32 noundef %842) #10
  %844 = call ptr @__errno_location() #11
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %833, ptr noundef @.str.5, i32 noundef %834, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 54, ptr noundef %837, ptr noundef %840, ptr noundef %843, i32 noundef %845) #10
  br label %847

847:                                              ; preds = %830, %813
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %848

848:                                              ; preds = %847
  br label %849

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

850:                                              ; No predecessors!
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851, %790
  br label %853

853:                                              ; preds = %852
  br label %854

854:                                              ; preds = %853
  br label %855

855:                                              ; preds = %854
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = add nsw i32 %856, 1
  store i32 %857, ptr @test_count, align 4, !tbaa !5
  %858 = load ptr, ptr %13, align 8, !tbaa !9
  %859 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %858)
  %860 = icmp eq i32 %859, -1
  br i1 %860, label %861, label %914

861:                                              ; preds = %855
  br label %862

862:                                              ; preds = %861
  br label %863

863:                                              ; preds = %862
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %864 = call ptr @__errno_location() #11
  %865 = load i32, ptr %864, align 4, !tbaa !5
  store i32 %865, ptr %18, align 4, !tbaa !5
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = call i32 @s2n_print_stacktrace(ptr noundef %866)
  %868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %869 = trunc i8 %868 to i1
  br i1 %869, label %870, label %892

870:                                              ; preds = %863
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = call i32 @fileno(ptr noundef %871) #10
  %873 = call i32 @isatty(i32 noundef %872) #10
  %874 = icmp ne i32 %873, 0
  br i1 %874, label %875, label %892

875:                                              ; preds = %870
  %876 = load i32, ptr %18, align 4, !tbaa !5
  %877 = call ptr @__errno_location() #11
  store i32 %876, ptr %877, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef @.str.4)
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef @.str.4)
  %886 = call ptr @__errno_location() #11
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @strerror(i32 noundef %887) #10
  %889 = call ptr @__errno_location() #11
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef @.str.2, i32 noundef %879, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 55, ptr noundef %882, ptr noundef %885, ptr noundef %888, i32 noundef %890) #10
  br label %909

892:                                              ; preds = %870, %863
  %893 = load i32, ptr %18, align 4, !tbaa !5
  %894 = call ptr @__errno_location() #11
  store i32 %893, ptr %894, align 4, !tbaa !5
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = load i32, ptr @test_count, align 4, !tbaa !5
  %897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror(i32 noundef %898, ptr noundef @.str.4)
  %900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = call ptr @s2n_strerror_debug(i32 noundef %901, ptr noundef @.str.4)
  %903 = call ptr @__errno_location() #11
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @strerror(i32 noundef %904) #10
  %906 = call ptr @__errno_location() #11
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef @.str.5, i32 noundef %896, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 55, ptr noundef %899, ptr noundef %902, ptr noundef %905, i32 noundef %907) #10
  br label %909

909:                                              ; preds = %892, %875
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %910

910:                                              ; preds = %909
  br label %911

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

912:                                              ; No predecessors!
  br label %913

913:                                              ; preds = %912
  br label %914

914:                                              ; preds = %913, %855
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr @test_count, align 4, !tbaa !5
  %920 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %921 = load ptr, ptr %13, align 8, !tbaa !9
  %922 = call zeroext i1 %920(ptr noundef %921)
  br i1 %922, label %976, label %923

923:                                              ; preds = %917
  br label %924

924:                                              ; preds = %923
  br label %925

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

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

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

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

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

972:                                              ; preds = %971
  br label %973

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

974:                                              ; No predecessors!
  br label %975

975:                                              ; preds = %974
  br label %976

976:                                              ; preds = %975, %917
  br label %977

977:                                              ; preds = %976
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = add nsw i32 %980, 1
  store i32 %981, ptr @test_count, align 4, !tbaa !5
  %982 = load ptr, ptr %13, align 8, !tbaa !9
  %983 = call i32 @s2n_connection_free(ptr noundef %982)
  %984 = icmp eq i32 %983, -1
  br i1 %984, label %985, label %1038

985:                                              ; preds = %979
  br label %986

986:                                              ; preds = %985
  br label %987

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

994:                                              ; preds = %987
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = call i32 @fileno(ptr noundef %995) #10
  %997 = call i32 @isatty(i32 noundef %996) #10
  %998 = icmp ne i32 %997, 0
  br i1 %998, label %999, label %1016

999:                                              ; preds = %994
  %1000 = load i32, ptr %20, align 4, !tbaa !5
  %1001 = call ptr @__errno_location() #11
  store i32 %1000, ptr %1001, align 4, !tbaa !5
  %1002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1003 = load i32, ptr @test_count, align 4, !tbaa !5
  %1004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror(i32 noundef %1005, ptr noundef @.str.4)
  %1007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1008 = load i32, ptr %1007, align 4, !tbaa !5
  %1009 = call ptr @s2n_strerror_debug(i32 noundef %1008, ptr noundef @.str.4)
  %1010 = call ptr @__errno_location() #11
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call ptr @strerror(i32 noundef %1011) #10
  %1013 = call ptr @__errno_location() #11
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1002, ptr noundef @.str.2, i32 noundef %1003, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1006, ptr noundef %1009, ptr noundef %1012, i32 noundef %1014) #10
  br label %1033

1016:                                             ; preds = %994, %987
  %1017 = load i32, ptr %20, align 4, !tbaa !5
  %1018 = call ptr @__errno_location() #11
  store i32 %1017, ptr %1018, align 4, !tbaa !5
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = load i32, ptr @test_count, align 4, !tbaa !5
  %1021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1022 = load i32, ptr %1021, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror(i32 noundef %1022, ptr noundef @.str.4)
  %1024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1025 = load i32, ptr %1024, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror_debug(i32 noundef %1025, ptr noundef @.str.4)
  %1027 = call ptr @__errno_location() #11
  %1028 = load i32, ptr %1027, align 4, !tbaa !5
  %1029 = call ptr @strerror(i32 noundef %1028) #10
  %1030 = call ptr @__errno_location() #11
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1019, ptr noundef @.str.5, i32 noundef %1020, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1023, ptr noundef %1026, ptr noundef %1029, i32 noundef %1031) #10
  br label %1033

1033:                                             ; preds = %1016, %999
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %1034

1034:                                             ; preds = %1033
  br label %1035

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

1036:                                             ; No predecessors!
  br label %1037

1037:                                             ; preds = %1036
  br label %1038

1038:                                             ; preds = %1037, %979
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

1040:                                             ; preds = %1039
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %1041 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1041, ptr %21, align 8, !tbaa !9
  br label %1042

1042:                                             ; preds = %1040
  %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 %21, align 8, !tbaa !9
  %1046 = icmp eq ptr %1045, null
  br i1 %1046, label %1047, label %1100

1047:                                             ; preds = %1042
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

1049:                                             ; preds = %1048
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %1050 = call ptr @__errno_location() #11
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  store i32 %1051, ptr %22, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @s2n_print_stacktrace(ptr noundef %1052)
  %1054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1055 = trunc i8 %1054 to i1
  br i1 %1055, label %1056, label %1078

1056:                                             ; preds = %1049
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @fileno(ptr noundef %1057) #10
  %1059 = call i32 @isatty(i32 noundef %1058) #10
  %1060 = icmp ne i32 %1059, 0
  br i1 %1060, label %1061, label %1078

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

1078:                                             ; preds = %1056, %1049
  %1079 = load i32, ptr %22, align 4, !tbaa !5
  %1080 = call ptr @__errno_location() #11
  store i32 %1079, ptr %1080, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = load i32, ptr @test_count, align 4, !tbaa !5
  %1083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror(i32 noundef %1084, ptr noundef @.str.4)
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef @.str.4)
  %1089 = call ptr @__errno_location() #11
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @strerror(i32 noundef %1090) #10
  %1092 = call ptr @__errno_location() #11
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1081, ptr noundef @.str.5, i32 noundef %1082, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1085, ptr noundef %1088, ptr noundef %1091, i32 noundef %1093) #10
  br label %1095

1095:                                             ; preds = %1078, %1061
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

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

1098:                                             ; No predecessors!
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

1100:                                             ; preds = %1099, %1042
  br label %1101

1101:                                             ; preds = %1100
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102
  %1104 = load i32, ptr @test_count, align 4, !tbaa !5
  %1105 = add nsw i32 %1104, 1
  store i32 %1105, ptr @test_count, align 4, !tbaa !5
  %1106 = load ptr, ptr %21, align 8, !tbaa !9
  %1107 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1106, ptr noundef @.str.16)
  %1108 = icmp eq i32 %1107, -1
  br i1 %1108, label %1109, label %1162

1109:                                             ; preds = %1103
  br label %1110

1110:                                             ; preds = %1109
  br label %1111

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

1118:                                             ; preds = %1111
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = call i32 @fileno(ptr noundef %1119) #10
  %1121 = call i32 @isatty(i32 noundef %1120) #10
  %1122 = icmp ne i32 %1121, 0
  br i1 %1122, label %1123, label %1140

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

1140:                                             ; preds = %1118, %1111
  %1141 = load i32, ptr %23, align 4, !tbaa !5
  %1142 = call ptr @__errno_location() #11
  store i32 %1141, ptr %1142, align 4, !tbaa !5
  %1143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1144 = load i32, ptr @test_count, align 4, !tbaa !5
  %1145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror(i32 noundef %1146, ptr noundef @.str.4)
  %1148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call ptr @s2n_strerror_debug(i32 noundef %1149, ptr noundef @.str.4)
  %1151 = call ptr @__errno_location() #11
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @strerror(i32 noundef %1152) #10
  %1154 = call ptr @__errno_location() #11
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1143, ptr noundef @.str.5, i32 noundef %1144, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1147, ptr noundef %1150, ptr noundef %1153, i32 noundef %1155) #10
  br label %1157

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

1158:                                             ; preds = %1157
  br label %1159

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

1160:                                             ; No predecessors!
  br label %1161

1161:                                             ; preds = %1160
  br label %1162

1162:                                             ; preds = %1161, %1103
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

1165:                                             ; preds = %1164
  %1166 = load i32, ptr @test_count, align 4, !tbaa !5
  %1167 = add nsw i32 %1166, 1
  store i32 %1167, ptr @test_count, align 4, !tbaa !5
  %1168 = load ptr, ptr %21, align 8, !tbaa !9
  %1169 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %1168, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %1170 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %1169, ptr %1170, align 4
  %1171 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  %1172 = load i32, ptr %1171, align 4
  %1173 = call zeroext i1 @s2n_result_is_ok(i32 %1172)
  br i1 %1173, label %1227, label %1174

1174:                                             ; preds = %1165
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

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

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

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

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

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

1223:                                             ; preds = %1222
  br label %1224

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

1225:                                             ; No predecessors!
  br label %1226

1226:                                             ; preds = %1225
  br label %1227

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

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228
  br label %1230

1230:                                             ; preds = %1229
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = add nsw i32 %1231, 1
  store i32 %1232, ptr @test_count, align 4, !tbaa !5
  %1233 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %1234 = load ptr, ptr %21, align 8, !tbaa !9
  %1235 = call zeroext i1 %1233(ptr noundef %1234)
  br i1 %1235, label %1236, label %1289

1236:                                             ; preds = %1230
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %1239 = call ptr @__errno_location() #11
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  store i32 %1240, ptr %26, align 4, !tbaa !5
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = call i32 @s2n_print_stacktrace(ptr noundef %1241)
  %1243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1244 = trunc i8 %1243 to i1
  br i1 %1244, label %1245, label %1267

1245:                                             ; preds = %1238
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @fileno(ptr noundef %1246) #10
  %1248 = call i32 @isatty(i32 noundef %1247) #10
  %1249 = icmp ne i32 %1248, 0
  br i1 %1249, label %1250, label %1267

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

1267:                                             ; preds = %1245, %1238
  %1268 = load i32, ptr %26, align 4, !tbaa !5
  %1269 = call ptr @__errno_location() #11
  store i32 %1268, ptr %1269, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror(i32 noundef %1273, ptr noundef @.str.4)
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror_debug(i32 noundef %1276, ptr noundef @.str.4)
  %1278 = call ptr @__errno_location() #11
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @strerror(i32 noundef %1279) #10
  %1281 = call ptr @__errno_location() #11
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1270, ptr noundef @.str.5, i32 noundef %1271, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1274, ptr noundef %1277, ptr noundef %1280, i32 noundef %1282) #10
  br label %1284

1284:                                             ; preds = %1267, %1250
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

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

1287:                                             ; No predecessors!
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

1289:                                             ; preds = %1288, %1230
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

1292:                                             ; preds = %1291
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = add nsw i32 %1293, 1
  store i32 %1294, ptr @test_count, align 4, !tbaa !5
  %1295 = load ptr, ptr %21, align 8, !tbaa !9
  %1296 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %1295)
  %1297 = icmp eq i32 %1296, -1
  br i1 %1297, label %1298, label %1351

1298:                                             ; preds = %1292
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

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

1307:                                             ; preds = %1300
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @fileno(ptr noundef %1308) #10
  %1310 = call i32 @isatty(i32 noundef %1309) #10
  %1311 = icmp ne i32 %1310, 0
  br i1 %1311, label %1312, label %1329

1312:                                             ; preds = %1307
  %1313 = load i32, ptr %27, align 4, !tbaa !5
  %1314 = call ptr @__errno_location() #11
  store i32 %1313, ptr %1314, align 4, !tbaa !5
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1318 = load i32, ptr %1317, align 4, !tbaa !5
  %1319 = call ptr @s2n_strerror(i32 noundef %1318, ptr noundef @.str.4)
  %1320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror_debug(i32 noundef %1321, ptr noundef @.str.4)
  %1323 = call ptr @__errno_location() #11
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call ptr @strerror(i32 noundef %1324) #10
  %1326 = call ptr @__errno_location() #11
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  %1328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1315, ptr noundef @.str.2, i32 noundef %1316, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1319, ptr noundef %1322, ptr noundef %1325, i32 noundef %1327) #10
  br label %1346

1329:                                             ; preds = %1307, %1300
  %1330 = load i32, ptr %27, align 4, !tbaa !5
  %1331 = call ptr @__errno_location() #11
  store i32 %1330, ptr %1331, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror(i32 noundef %1335, ptr noundef @.str.4)
  %1337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror_debug(i32 noundef %1338, ptr noundef @.str.4)
  %1340 = call ptr @__errno_location() #11
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call ptr @strerror(i32 noundef %1341) #10
  %1343 = call ptr @__errno_location() #11
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1332, ptr noundef @.str.5, i32 noundef %1333, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1336, ptr noundef %1339, ptr noundef %1342, i32 noundef %1344) #10
  br label %1346

1346:                                             ; preds = %1329, %1312
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1347

1347:                                             ; preds = %1346
  br label %1348

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

1349:                                             ; No predecessors!
  br label %1350

1350:                                             ; preds = %1349
  br label %1351

1351:                                             ; preds = %1350, %1292
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

1353:                                             ; preds = %1352
  br label %1354

1354:                                             ; preds = %1353
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = add nsw i32 %1355, 1
  store i32 %1356, ptr @test_count, align 4, !tbaa !5
  %1357 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %1358 = load ptr, ptr %21, align 8, !tbaa !9
  %1359 = call zeroext i1 %1357(ptr noundef %1358)
  br i1 %1359, label %1413, label %1360

1360:                                             ; preds = %1354
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

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

1369:                                             ; preds = %1362
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = call i32 @fileno(ptr noundef %1370) #10
  %1372 = call i32 @isatty(i32 noundef %1371) #10
  %1373 = icmp ne i32 %1372, 0
  br i1 %1373, label %1374, label %1391

1374:                                             ; preds = %1369
  %1375 = load i32, ptr %28, align 4, !tbaa !5
  %1376 = call ptr @__errno_location() #11
  store i32 %1375, ptr %1376, align 4, !tbaa !5
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = load i32, ptr @test_count, align 4, !tbaa !5
  %1379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1380 = load i32, ptr %1379, align 4, !tbaa !5
  %1381 = call ptr @s2n_strerror(i32 noundef %1380, ptr noundef @.str.4)
  %1382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror_debug(i32 noundef %1383, ptr noundef @.str.4)
  %1385 = call ptr @__errno_location() #11
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @strerror(i32 noundef %1386) #10
  %1388 = call ptr @__errno_location() #11
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1377, ptr noundef @.str.2, i32 noundef %1378, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1381, ptr noundef %1384, ptr noundef %1387, i32 noundef %1389) #10
  br label %1408

1391:                                             ; preds = %1369, %1362
  %1392 = load i32, ptr %28, align 4, !tbaa !5
  %1393 = call ptr @__errno_location() #11
  store i32 %1392, ptr %1393, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror(i32 noundef %1397, ptr noundef @.str.4)
  %1399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror_debug(i32 noundef %1400, ptr noundef @.str.4)
  %1402 = call ptr @__errno_location() #11
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = call ptr @strerror(i32 noundef %1403) #10
  %1405 = call ptr @__errno_location() #11
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1394, ptr noundef @.str.5, i32 noundef %1395, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1398, ptr noundef %1401, ptr noundef %1404, i32 noundef %1406) #10
  br label %1408

1408:                                             ; preds = %1391, %1374
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1409

1409:                                             ; preds = %1408
  br label %1410

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

1411:                                             ; No predecessors!
  br label %1412

1412:                                             ; preds = %1411
  br label %1413

1413:                                             ; preds = %1412, %1354
  br label %1414

1414:                                             ; preds = %1413
  br label %1415

1415:                                             ; preds = %1414
  br label %1416

1416:                                             ; preds = %1415
  %1417 = load i32, ptr @test_count, align 4, !tbaa !5
  %1418 = add nsw i32 %1417, 1
  store i32 %1418, ptr @test_count, align 4, !tbaa !5
  %1419 = load ptr, ptr %21, align 8, !tbaa !9
  %1420 = call i32 @s2n_connection_free(ptr noundef %1419)
  %1421 = icmp eq i32 %1420, -1
  br i1 %1421, label %1422, label %1475

1422:                                             ; preds = %1416
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

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

1431:                                             ; preds = %1424
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = call i32 @fileno(ptr noundef %1432) #10
  %1434 = call i32 @isatty(i32 noundef %1433) #10
  %1435 = icmp ne i32 %1434, 0
  br i1 %1435, label %1436, label %1453

1436:                                             ; preds = %1431
  %1437 = load i32, ptr %29, align 4, !tbaa !5
  %1438 = call ptr @__errno_location() #11
  store i32 %1437, ptr %1438, align 4, !tbaa !5
  %1439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1440 = load i32, ptr @test_count, align 4, !tbaa !5
  %1441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = call ptr @s2n_strerror(i32 noundef %1442, ptr noundef @.str.4)
  %1444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1445 = load i32, ptr %1444, align 4, !tbaa !5
  %1446 = call ptr @s2n_strerror_debug(i32 noundef %1445, ptr noundef @.str.4)
  %1447 = call ptr @__errno_location() #11
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = call ptr @strerror(i32 noundef %1448) #10
  %1450 = call ptr @__errno_location() #11
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1439, ptr noundef @.str.2, i32 noundef %1440, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1443, ptr noundef %1446, ptr noundef %1449, i32 noundef %1451) #10
  br label %1470

1453:                                             ; preds = %1431, %1424
  %1454 = load i32, ptr %29, align 4, !tbaa !5
  %1455 = call ptr @__errno_location() #11
  store i32 %1454, ptr %1455, align 4, !tbaa !5
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = load i32, ptr @test_count, align 4, !tbaa !5
  %1458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror(i32 noundef %1459, ptr noundef @.str.4)
  %1461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror_debug(i32 noundef %1462, ptr noundef @.str.4)
  %1464 = call ptr @__errno_location() #11
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @strerror(i32 noundef %1465) #10
  %1467 = call ptr @__errno_location() #11
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1456, ptr noundef @.str.5, i32 noundef %1457, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1460, ptr noundef %1463, ptr noundef %1466, i32 noundef %1468) #10
  br label %1470

1470:                                             ; preds = %1453, %1436
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1471

1471:                                             ; preds = %1470
  br label %1472

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

1473:                                             ; No predecessors!
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

1475:                                             ; preds = %1474, %1416
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %1478 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1478, ptr %30, align 8, !tbaa !9
  br label %1479

1479:                                             ; preds = %1477
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = add nsw i32 %1480, 1
  store i32 %1481, ptr @test_count, align 4, !tbaa !5
  %1482 = load ptr, ptr %30, align 8, !tbaa !9
  %1483 = icmp eq ptr %1482, null
  br i1 %1483, label %1484, label %1537

1484:                                             ; preds = %1479
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %1487 = call ptr @__errno_location() #11
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  store i32 %1488, ptr %31, align 4, !tbaa !5
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = call i32 @s2n_print_stacktrace(ptr noundef %1489)
  %1491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1492 = trunc i8 %1491 to i1
  br i1 %1492, label %1493, label %1515

1493:                                             ; preds = %1486
  %1494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1495 = call i32 @fileno(ptr noundef %1494) #10
  %1496 = call i32 @isatty(i32 noundef %1495) #10
  %1497 = icmp ne i32 %1496, 0
  br i1 %1497, label %1498, label %1515

1498:                                             ; preds = %1493
  %1499 = load i32, ptr %31, align 4, !tbaa !5
  %1500 = call ptr @__errno_location() #11
  store i32 %1499, ptr %1500, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  %1505 = call ptr @s2n_strerror(i32 noundef %1504, ptr noundef @.str.4)
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror_debug(i32 noundef %1507, ptr noundef @.str.4)
  %1509 = call ptr @__errno_location() #11
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @strerror(i32 noundef %1510) #10
  %1512 = call ptr @__errno_location() #11
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1501, ptr noundef @.str.2, i32 noundef %1502, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1505, ptr noundef %1508, ptr noundef %1511, i32 noundef %1513) #10
  br label %1532

1515:                                             ; preds = %1493, %1486
  %1516 = load i32, ptr %31, align 4, !tbaa !5
  %1517 = call ptr @__errno_location() #11
  store i32 %1516, ptr %1517, align 4, !tbaa !5
  %1518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1519 = load i32, ptr @test_count, align 4, !tbaa !5
  %1520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1521 = load i32, ptr %1520, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror(i32 noundef %1521, ptr noundef @.str.4)
  %1523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror_debug(i32 noundef %1524, ptr noundef @.str.4)
  %1526 = call ptr @__errno_location() #11
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = call ptr @strerror(i32 noundef %1527) #10
  %1529 = call ptr @__errno_location() #11
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1518, ptr noundef @.str.5, i32 noundef %1519, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1522, ptr noundef %1525, ptr noundef %1528, i32 noundef %1530) #10
  br label %1532

1532:                                             ; preds = %1515, %1498
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %1533

1533:                                             ; preds = %1532
  br label %1534

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

1535:                                             ; No predecessors!
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536, %1479
  br label %1538

1538:                                             ; preds = %1537
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539
  %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 = load ptr, ptr %30, align 8, !tbaa !9
  %1544 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1543, ptr noundef @.str.16)
  %1545 = icmp eq i32 %1544, -1
  br i1 %1545, label %1546, label %1599

1546:                                             ; preds = %1540
  br label %1547

1547:                                             ; preds = %1546
  br label %1548

1548:                                             ; preds = %1547
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1549 = call ptr @__errno_location() #11
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  store i32 %1550, ptr %32, align 4, !tbaa !5
  %1551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1552 = call i32 @s2n_print_stacktrace(ptr noundef %1551)
  %1553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1554 = trunc i8 %1553 to i1
  br i1 %1554, label %1555, label %1577

1555:                                             ; preds = %1548
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = call i32 @fileno(ptr noundef %1556) #10
  %1558 = call i32 @isatty(i32 noundef %1557) #10
  %1559 = icmp ne i32 %1558, 0
  br i1 %1559, label %1560, label %1577

1560:                                             ; preds = %1555
  %1561 = load i32, ptr %32, align 4, !tbaa !5
  %1562 = call ptr @__errno_location() #11
  store i32 %1561, ptr %1562, align 4, !tbaa !5
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = load i32, ptr @test_count, align 4, !tbaa !5
  %1565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = call ptr @s2n_strerror(i32 noundef %1566, ptr noundef @.str.4)
  %1568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror_debug(i32 noundef %1569, ptr noundef @.str.4)
  %1571 = call ptr @__errno_location() #11
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @strerror(i32 noundef %1572) #10
  %1574 = call ptr @__errno_location() #11
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1563, ptr noundef @.str.2, i32 noundef %1564, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1567, ptr noundef %1570, ptr noundef %1573, i32 noundef %1575) #10
  br label %1594

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

1594:                                             ; preds = %1577, %1560
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1595

1595:                                             ; preds = %1594
  br label %1596

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

1597:                                             ; No predecessors!
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598, %1540
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

1602:                                             ; preds = %1601
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = add nsw i32 %1603, 1
  store i32 %1604, ptr @test_count, align 4, !tbaa !5
  %1605 = load ptr, ptr %30, align 8, !tbaa !9
  %1606 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %1605)
  %1607 = icmp eq i32 %1606, -1
  br i1 %1607, label %1608, label %1661

1608:                                             ; preds = %1602
  br label %1609

1609:                                             ; preds = %1608
  br label %1610

1610:                                             ; preds = %1609
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1611 = call ptr @__errno_location() #11
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  store i32 %1612, ptr %33, align 4, !tbaa !5
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = call i32 @s2n_print_stacktrace(ptr noundef %1613)
  %1615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1616 = trunc i8 %1615 to i1
  br i1 %1616, label %1617, label %1639

1617:                                             ; preds = %1610
  %1618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1619 = call i32 @fileno(ptr noundef %1618) #10
  %1620 = call i32 @isatty(i32 noundef %1619) #10
  %1621 = icmp ne i32 %1620, 0
  br i1 %1621, label %1622, label %1639

1622:                                             ; preds = %1617
  %1623 = load i32, ptr %33, align 4, !tbaa !5
  %1624 = call ptr @__errno_location() #11
  store i32 %1623, ptr %1624, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror(i32 noundef %1628, ptr noundef @.str.4)
  %1630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror_debug(i32 noundef %1631, ptr noundef @.str.4)
  %1633 = call ptr @__errno_location() #11
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @strerror(i32 noundef %1634) #10
  %1636 = call ptr @__errno_location() #11
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef @.str.2, i32 noundef %1626, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1629, ptr noundef %1632, ptr noundef %1635, i32 noundef %1637) #10
  br label %1656

1639:                                             ; preds = %1617, %1610
  %1640 = load i32, ptr %33, align 4, !tbaa !5
  %1641 = call ptr @__errno_location() #11
  store i32 %1640, ptr %1641, align 4, !tbaa !5
  %1642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1643 = load i32, ptr @test_count, align 4, !tbaa !5
  %1644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror(i32 noundef %1645, ptr noundef @.str.4)
  %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_debug(i32 noundef %1648, ptr noundef @.str.4)
  %1650 = call ptr @__errno_location() #11
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @strerror(i32 noundef %1651) #10
  %1653 = call ptr @__errno_location() #11
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1642, ptr noundef @.str.5, i32 noundef %1643, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1646, ptr noundef %1649, ptr noundef %1652, i32 noundef %1654) #10
  br label %1656

1656:                                             ; preds = %1639, %1622
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1657

1657:                                             ; preds = %1656
  br label %1658

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

1659:                                             ; No predecessors!
  br label %1660

1660:                                             ; preds = %1659
  br label %1661

1661:                                             ; preds = %1660, %1602
  br label %1662

1662:                                             ; preds = %1661
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

1664:                                             ; preds = %1663
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = add nsw i32 %1665, 1
  store i32 %1666, ptr @test_count, align 4, !tbaa !5
  %1667 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_psk_extension, i32 0, i32 5), align 8, !tbaa !15
  %1668 = load ptr, ptr %30, align 8, !tbaa !9
  %1669 = call zeroext i1 %1667(ptr noundef %1668)
  br i1 %1669, label %1670, label %1723

1670:                                             ; preds = %1664
  br label %1671

1671:                                             ; preds = %1670
  br label %1672

1672:                                             ; preds = %1671
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %1673 = call ptr @__errno_location() #11
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  store i32 %1674, ptr %34, align 4, !tbaa !5
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @s2n_print_stacktrace(ptr noundef %1675)
  %1677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1678 = trunc i8 %1677 to i1
  br i1 %1678, label %1679, label %1701

1679:                                             ; preds = %1672
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = call i32 @fileno(ptr noundef %1680) #10
  %1682 = call i32 @isatty(i32 noundef %1681) #10
  %1683 = icmp ne i32 %1682, 0
  br i1 %1683, label %1684, label %1701

1684:                                             ; preds = %1679
  %1685 = load i32, ptr %34, align 4, !tbaa !5
  %1686 = call ptr @__errno_location() #11
  store i32 %1685, ptr %1686, align 4, !tbaa !5
  %1687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1688 = load i32, ptr @test_count, align 4, !tbaa !5
  %1689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call ptr @s2n_strerror(i32 noundef %1690, ptr noundef @.str.4)
  %1692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror_debug(i32 noundef %1693, ptr noundef @.str.4)
  %1695 = call ptr @__errno_location() #11
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call ptr @strerror(i32 noundef %1696) #10
  %1698 = call ptr @__errno_location() #11
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1687, ptr noundef @.str.2, i32 noundef %1688, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1691, ptr noundef %1694, ptr noundef %1697, i32 noundef %1699) #10
  br label %1718

1701:                                             ; preds = %1679, %1672
  %1702 = load i32, ptr %34, align 4, !tbaa !5
  %1703 = call ptr @__errno_location() #11
  store i32 %1702, ptr %1703, align 4, !tbaa !5
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = load i32, ptr @test_count, align 4, !tbaa !5
  %1706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror(i32 noundef %1707, ptr noundef @.str.4)
  %1709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror_debug(i32 noundef %1710, ptr noundef @.str.4)
  %1712 = call ptr @__errno_location() #11
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call ptr @strerror(i32 noundef %1713) #10
  %1715 = call ptr @__errno_location() #11
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1704, ptr noundef @.str.5, i32 noundef %1705, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1708, ptr noundef %1711, ptr noundef %1714, i32 noundef %1716) #10
  br label %1718

1718:                                             ; preds = %1701, %1684
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

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

1721:                                             ; No predecessors!
  br label %1722

1722:                                             ; preds = %1721
  br label %1723

1723:                                             ; preds = %1722, %1664
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  br label %1726

1726:                                             ; preds = %1725
  %1727 = load i32, ptr @test_count, align 4, !tbaa !5
  %1728 = add nsw i32 %1727, 1
  store i32 %1728, ptr @test_count, align 4, !tbaa !5
  %1729 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %1730 = load ptr, ptr %30, align 8, !tbaa !9
  %1731 = call zeroext i1 %1729(ptr noundef %1730)
  br i1 %1731, label %1732, label %1785

1732:                                             ; preds = %1726
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

1734:                                             ; preds = %1733
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1735 = call ptr @__errno_location() #11
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  store i32 %1736, ptr %35, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @s2n_print_stacktrace(ptr noundef %1737)
  %1739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1740 = trunc i8 %1739 to i1
  br i1 %1740, label %1741, label %1763

1741:                                             ; preds = %1734
  %1742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1743 = call i32 @fileno(ptr noundef %1742) #10
  %1744 = call i32 @isatty(i32 noundef %1743) #10
  %1745 = icmp ne i32 %1744, 0
  br i1 %1745, label %1746, label %1763

1746:                                             ; preds = %1741
  %1747 = load i32, ptr %35, align 4, !tbaa !5
  %1748 = call ptr @__errno_location() #11
  store i32 %1747, ptr %1748, align 4, !tbaa !5
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = load i32, ptr @test_count, align 4, !tbaa !5
  %1751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror(i32 noundef %1752, ptr noundef @.str.4)
  %1754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call ptr @s2n_strerror_debug(i32 noundef %1755, ptr noundef @.str.4)
  %1757 = call ptr @__errno_location() #11
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @strerror(i32 noundef %1758) #10
  %1760 = call ptr @__errno_location() #11
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1749, ptr noundef @.str.2, i32 noundef %1750, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1753, ptr noundef %1756, ptr noundef %1759, i32 noundef %1761) #10
  br label %1780

1763:                                             ; preds = %1741, %1734
  %1764 = load i32, ptr %35, align 4, !tbaa !5
  %1765 = call ptr @__errno_location() #11
  store i32 %1764, ptr %1765, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror(i32 noundef %1769, ptr noundef @.str.4)
  %1771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror_debug(i32 noundef %1772, ptr noundef @.str.4)
  %1774 = call ptr @__errno_location() #11
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @strerror(i32 noundef %1775) #10
  %1777 = call ptr @__errno_location() #11
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1766, ptr noundef @.str.5, i32 noundef %1767, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1770, ptr noundef %1773, ptr noundef %1776, i32 noundef %1778) #10
  br label %1780

1780:                                             ; preds = %1763, %1746
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1781

1781:                                             ; preds = %1780
  br label %1782

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

1783:                                             ; No predecessors!
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784, %1726
  br label %1786

1786:                                             ; preds = %1785
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

1788:                                             ; preds = %1787
  %1789 = load i32, ptr @test_count, align 4, !tbaa !5
  %1790 = add nsw i32 %1789, 1
  store i32 %1790, ptr @test_count, align 4, !tbaa !5
  %1791 = load ptr, ptr %30, align 8, !tbaa !9
  %1792 = call i32 @s2n_connection_free(ptr noundef %1791)
  %1793 = icmp eq i32 %1792, -1
  br i1 %1793, label %1794, label %1847

1794:                                             ; preds = %1788
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

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

1803:                                             ; preds = %1796
  %1804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1805 = call i32 @fileno(ptr noundef %1804) #10
  %1806 = call i32 @isatty(i32 noundef %1805) #10
  %1807 = icmp ne i32 %1806, 0
  br i1 %1807, label %1808, label %1825

1808:                                             ; preds = %1803
  %1809 = load i32, ptr %36, align 4, !tbaa !5
  %1810 = call ptr @__errno_location() #11
  store i32 %1809, ptr %1810, align 4, !tbaa !5
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = load i32, ptr @test_count, align 4, !tbaa !5
  %1813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = call ptr @s2n_strerror(i32 noundef %1814, ptr noundef @.str.4)
  %1816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror_debug(i32 noundef %1817, ptr noundef @.str.4)
  %1819 = call ptr @__errno_location() #11
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call ptr @strerror(i32 noundef %1820) #10
  %1822 = call ptr @__errno_location() #11
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1811, ptr noundef @.str.2, i32 noundef %1812, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1815, ptr noundef %1818, ptr noundef %1821, i32 noundef %1823) #10
  br label %1842

1825:                                             ; preds = %1803, %1796
  %1826 = load i32, ptr %36, align 4, !tbaa !5
  %1827 = call ptr @__errno_location() #11
  store i32 %1826, ptr %1827, align 4, !tbaa !5
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @s2n_strerror(i32 noundef %1831, ptr noundef @.str.4)
  %1833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call ptr @s2n_strerror_debug(i32 noundef %1834, ptr noundef @.str.4)
  %1836 = call ptr @__errno_location() #11
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call ptr @strerror(i32 noundef %1837) #10
  %1839 = call ptr @__errno_location() #11
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1828, ptr noundef @.str.5, i32 noundef %1829, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1832, ptr noundef %1835, ptr noundef %1838, i32 noundef %1840) #10
  br label %1842

1842:                                             ; preds = %1825, %1808
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

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

1845:                                             ; No predecessors!
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

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

1848:                                             ; preds = %1847
  br label %1849

1849:                                             ; preds = %1848
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  %1850 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1850, ptr %37, align 8, !tbaa !9
  br label %1851

1851:                                             ; preds = %1849
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = add nsw i32 %1852, 1
  store i32 %1853, ptr @test_count, align 4, !tbaa !5
  %1854 = load ptr, ptr %37, align 8, !tbaa !9
  %1855 = icmp eq ptr %1854, null
  br i1 %1855, label %1856, label %1909

1856:                                             ; preds = %1851
  br label %1857

1857:                                             ; preds = %1856
  br label %1858

1858:                                             ; preds = %1857
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1859 = call ptr @__errno_location() #11
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  store i32 %1860, ptr %38, align 4, !tbaa !5
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = call i32 @s2n_print_stacktrace(ptr noundef %1861)
  %1863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1864 = trunc i8 %1863 to i1
  br i1 %1864, label %1865, label %1887

1865:                                             ; preds = %1858
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = call i32 @fileno(ptr noundef %1866) #10
  %1868 = call i32 @isatty(i32 noundef %1867) #10
  %1869 = icmp ne i32 %1868, 0
  br i1 %1869, label %1870, label %1887

1870:                                             ; preds = %1865
  %1871 = load i32, ptr %38, align 4, !tbaa !5
  %1872 = call ptr @__errno_location() #11
  store i32 %1871, ptr %1872, align 4, !tbaa !5
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = load i32, ptr @test_count, align 4, !tbaa !5
  %1875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror(i32 noundef %1876, ptr noundef @.str.4)
  %1878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror_debug(i32 noundef %1879, ptr noundef @.str.4)
  %1881 = call ptr @__errno_location() #11
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @strerror(i32 noundef %1882) #10
  %1884 = call ptr @__errno_location() #11
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1873, ptr noundef @.str.2, i32 noundef %1874, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1877, ptr noundef %1880, ptr noundef %1883, i32 noundef %1885) #10
  br label %1904

1887:                                             ; preds = %1865, %1858
  %1888 = load i32, ptr %38, align 4, !tbaa !5
  %1889 = call ptr @__errno_location() #11
  store i32 %1888, ptr %1889, align 4, !tbaa !5
  %1890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1891 = load i32, ptr @test_count, align 4, !tbaa !5
  %1892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror(i32 noundef %1893, ptr noundef @.str.4)
  %1895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @s2n_strerror_debug(i32 noundef %1896, ptr noundef @.str.4)
  %1898 = call ptr @__errno_location() #11
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call ptr @strerror(i32 noundef %1899) #10
  %1901 = call ptr @__errno_location() #11
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1890, ptr noundef @.str.5, i32 noundef %1891, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1894, ptr noundef %1897, ptr noundef %1900, i32 noundef %1902) #10
  br label %1904

1904:                                             ; preds = %1887, %1870
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1905

1905:                                             ; preds = %1904
  br label %1906

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

1907:                                             ; No predecessors!
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

1909:                                             ; preds = %1908, %1851
  br label %1910

1910:                                             ; preds = %1909
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911
  %1913 = load i32, ptr @test_count, align 4, !tbaa !5
  %1914 = add nsw i32 %1913, 1
  store i32 %1914, ptr @test_count, align 4, !tbaa !5
  %1915 = load ptr, ptr %37, align 8, !tbaa !9
  %1916 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1915, ptr noundef @.str.16)
  %1917 = icmp eq i32 %1916, -1
  br i1 %1917, label %1918, label %1971

1918:                                             ; preds = %1912
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

1920:                                             ; preds = %1919
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1921 = call ptr @__errno_location() #11
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  store i32 %1922, ptr %39, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = call i32 @s2n_print_stacktrace(ptr noundef %1923)
  %1925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1926 = trunc i8 %1925 to i1
  br i1 %1926, label %1927, label %1949

1927:                                             ; preds = %1920
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = call i32 @fileno(ptr noundef %1928) #10
  %1930 = call i32 @isatty(i32 noundef %1929) #10
  %1931 = icmp ne i32 %1930, 0
  br i1 %1931, label %1932, label %1949

1932:                                             ; preds = %1927
  %1933 = load i32, ptr %39, align 4, !tbaa !5
  %1934 = call ptr @__errno_location() #11
  store i32 %1933, ptr %1934, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror(i32 noundef %1938, ptr noundef @.str.4)
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror_debug(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call ptr @__errno_location() #11
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #10
  %1946 = call ptr @__errno_location() #11
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1935, ptr noundef @.str.2, i32 noundef %1936, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1939, ptr noundef %1942, ptr noundef %1945, i32 noundef %1947) #10
  br label %1966

1949:                                             ; preds = %1927, %1920
  %1950 = load i32, ptr %39, align 4, !tbaa !5
  %1951 = call ptr @__errno_location() #11
  store i32 %1950, ptr %1951, align 4, !tbaa !5
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror(i32 noundef %1955, ptr noundef @.str.4)
  %1957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror_debug(i32 noundef %1958, ptr noundef @.str.4)
  %1960 = call ptr @__errno_location() #11
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @strerror(i32 noundef %1961) #10
  %1963 = call ptr @__errno_location() #11
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1952, ptr noundef @.str.5, i32 noundef %1953, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1956, ptr noundef %1959, ptr noundef %1962, i32 noundef %1964) #10
  br label %1966

1966:                                             ; preds = %1949, %1932
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1967

1967:                                             ; preds = %1966
  br label %1968

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

1969:                                             ; No predecessors!
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

1971:                                             ; preds = %1970, %1912
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

1974:                                             ; preds = %1973
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = add nsw i32 %1975, 1
  store i32 %1976, ptr @test_count, align 4, !tbaa !5
  %1977 = load ptr, ptr %37, align 8, !tbaa !9
  %1978 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %1977, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %1979 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1978, ptr %1979, align 4
  %1980 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  %1981 = load i32, ptr %1980, align 4
  %1982 = call zeroext i1 @s2n_result_is_ok(i32 %1981)
  br i1 %1982, label %2036, label %1983

1983:                                             ; preds = %1974
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %1986 = call ptr @__errno_location() #11
  %1987 = load i32, ptr %1986, align 4, !tbaa !5
  store i32 %1987, ptr %41, align 4, !tbaa !5
  %1988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1989 = call i32 @s2n_print_stacktrace(ptr noundef %1988)
  %1990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1991 = trunc i8 %1990 to i1
  br i1 %1991, label %1992, label %2014

1992:                                             ; preds = %1985
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = call i32 @fileno(ptr noundef %1993) #10
  %1995 = call i32 @isatty(i32 noundef %1994) #10
  %1996 = icmp ne i32 %1995, 0
  br i1 %1996, label %1997, label %2014

1997:                                             ; preds = %1992
  %1998 = load i32, ptr %41, align 4, !tbaa !5
  %1999 = call ptr @__errno_location() #11
  store i32 %1998, ptr %1999, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef @.str.4)
  %2005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror_debug(i32 noundef %2006, ptr noundef @.str.4)
  %2008 = call ptr @__errno_location() #11
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call ptr @strerror(i32 noundef %2009) #10
  %2011 = call ptr @__errno_location() #11
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef @.str.2, i32 noundef %2001, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2004, ptr noundef %2007, ptr noundef %2010, i32 noundef %2012) #10
  br label %2031

2014:                                             ; preds = %1992, %1985
  %2015 = load i32, ptr %41, align 4, !tbaa !5
  %2016 = call ptr @__errno_location() #11
  store i32 %2015, ptr %2016, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror(i32 noundef %2020, ptr noundef @.str.4)
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef @.str.4)
  %2025 = call ptr @__errno_location() #11
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #10
  %2028 = call ptr @__errno_location() #11
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef @.str.5, i32 noundef %2018, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2021, ptr noundef %2024, ptr noundef %2027, i32 noundef %2029) #10
  br label %2031

2031:                                             ; preds = %2014, %1997
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %2032

2032:                                             ; preds = %2031
  br label %2033

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

2034:                                             ; No predecessors!
  br label %2035

2035:                                             ; preds = %2034
  br label %2036

2036:                                             ; preds = %2035, %1974
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

2039:                                             ; preds = %2038
  %2040 = load i32, ptr @test_count, align 4, !tbaa !5
  %2041 = add nsw i32 %2040, 1
  store i32 %2041, ptr @test_count, align 4, !tbaa !5
  %2042 = load ptr, ptr %37, align 8, !tbaa !9
  %2043 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %2042)
  %2044 = icmp eq i32 %2043, -1
  br i1 %2044, label %2045, label %2098

2045:                                             ; preds = %2039
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %2048 = call ptr @__errno_location() #11
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  store i32 %2049, ptr %42, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = call i32 @s2n_print_stacktrace(ptr noundef %2050)
  %2052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2053 = trunc i8 %2052 to i1
  br i1 %2053, label %2054, label %2076

2054:                                             ; preds = %2047
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @fileno(ptr noundef %2055) #10
  %2057 = call i32 @isatty(i32 noundef %2056) #10
  %2058 = icmp ne i32 %2057, 0
  br i1 %2058, label %2059, label %2076

2059:                                             ; preds = %2054
  %2060 = load i32, ptr %42, align 4, !tbaa !5
  %2061 = call ptr @__errno_location() #11
  store i32 %2060, ptr %2061, align 4, !tbaa !5
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = load i32, ptr @test_count, align 4, !tbaa !5
  %2064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call ptr @s2n_strerror(i32 noundef %2065, ptr noundef @.str.4)
  %2067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = call ptr @s2n_strerror_debug(i32 noundef %2068, ptr noundef @.str.4)
  %2070 = call ptr @__errno_location() #11
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = call ptr @strerror(i32 noundef %2071) #10
  %2073 = call ptr @__errno_location() #11
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2062, ptr noundef @.str.2, i32 noundef %2063, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2066, ptr noundef %2069, ptr noundef %2072, i32 noundef %2074) #10
  br label %2093

2076:                                             ; preds = %2054, %2047
  %2077 = load i32, ptr %42, align 4, !tbaa !5
  %2078 = call ptr @__errno_location() #11
  store i32 %2077, ptr %2078, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = load i32, ptr @test_count, align 4, !tbaa !5
  %2081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call ptr @s2n_strerror(i32 noundef %2082, ptr noundef @.str.4)
  %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_debug(i32 noundef %2085, ptr noundef @.str.4)
  %2087 = call ptr @__errno_location() #11
  %2088 = load i32, ptr %2087, align 4, !tbaa !5
  %2089 = call ptr @strerror(i32 noundef %2088) #10
  %2090 = call ptr @__errno_location() #11
  %2091 = load i32, ptr %2090, align 4, !tbaa !5
  %2092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2079, ptr noundef @.str.5, i32 noundef %2080, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2083, ptr noundef %2086, ptr noundef %2089, i32 noundef %2091) #10
  br label %2093

2093:                                             ; preds = %2076, %2059
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %2094

2094:                                             ; preds = %2093
  br label %2095

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

2096:                                             ; No predecessors!
  br label %2097

2097:                                             ; preds = %2096
  br label %2098

2098:                                             ; preds = %2097, %2039
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

2101:                                             ; preds = %2100
  %2102 = load i32, ptr @test_count, align 4, !tbaa !5
  %2103 = add nsw i32 %2102, 1
  store i32 %2103, ptr @test_count, align 4, !tbaa !5
  %2104 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %2105 = load ptr, ptr %37, align 8, !tbaa !9
  %2106 = call zeroext i1 %2104(ptr noundef %2105)
  br i1 %2106, label %2160, label %2107

2107:                                             ; preds = %2101
  br label %2108

2108:                                             ; preds = %2107
  br label %2109

2109:                                             ; preds = %2108
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %2110 = call ptr @__errno_location() #11
  %2111 = load i32, ptr %2110, align 4, !tbaa !5
  store i32 %2111, ptr %43, align 4, !tbaa !5
  %2112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2113 = call i32 @s2n_print_stacktrace(ptr noundef %2112)
  %2114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2115 = trunc i8 %2114 to i1
  br i1 %2115, label %2116, label %2138

2116:                                             ; preds = %2109
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = call i32 @fileno(ptr noundef %2117) #10
  %2119 = call i32 @isatty(i32 noundef %2118) #10
  %2120 = icmp ne i32 %2119, 0
  br i1 %2120, label %2121, label %2138

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

2138:                                             ; preds = %2116, %2109
  %2139 = load i32, ptr %43, align 4, !tbaa !5
  %2140 = call ptr @__errno_location() #11
  store i32 %2139, ptr %2140, align 4, !tbaa !5
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = load i32, ptr @test_count, align 4, !tbaa !5
  %2143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  %2145 = call ptr @s2n_strerror(i32 noundef %2144, ptr noundef @.str.4)
  %2146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror_debug(i32 noundef %2147, ptr noundef @.str.4)
  %2149 = call ptr @__errno_location() #11
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @strerror(i32 noundef %2150) #10
  %2152 = call ptr @__errno_location() #11
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2141, ptr noundef @.str.5, i32 noundef %2142, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2145, ptr noundef %2148, ptr noundef %2151, i32 noundef %2153) #10
  br label %2155

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

2156:                                             ; preds = %2155
  br label %2157

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

2158:                                             ; No predecessors!
  br label %2159

2159:                                             ; preds = %2158
  br label %2160

2160:                                             ; preds = %2159, %2101
  br label %2161

2161:                                             ; preds = %2160
  br label %2162

2162:                                             ; preds = %2161
  br label %2163

2163:                                             ; preds = %2162
  %2164 = load i32, ptr @test_count, align 4, !tbaa !5
  %2165 = add nsw i32 %2164, 1
  store i32 %2165, ptr @test_count, align 4, !tbaa !5
  %2166 = load ptr, ptr %37, align 8, !tbaa !9
  %2167 = call i32 @s2n_set_hello_retry_required(ptr noundef %2166)
  %2168 = icmp eq i32 %2167, -1
  br i1 %2168, label %2169, label %2222

2169:                                             ; preds = %2163
  br label %2170

2170:                                             ; preds = %2169
  br label %2171

2171:                                             ; preds = %2170
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %2172 = call ptr @__errno_location() #11
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  store i32 %2173, ptr %44, align 4, !tbaa !5
  %2174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2175 = call i32 @s2n_print_stacktrace(ptr noundef %2174)
  %2176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2177 = trunc i8 %2176 to i1
  br i1 %2177, label %2178, label %2200

2178:                                             ; preds = %2171
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = call i32 @fileno(ptr noundef %2179) #10
  %2181 = call i32 @isatty(i32 noundef %2180) #10
  %2182 = icmp ne i32 %2181, 0
  br i1 %2182, label %2183, label %2200

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

2200:                                             ; preds = %2178, %2171
  %2201 = load i32, ptr %44, align 4, !tbaa !5
  %2202 = call ptr @__errno_location() #11
  store i32 %2201, ptr %2202, align 4, !tbaa !5
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = load i32, ptr @test_count, align 4, !tbaa !5
  %2205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror(i32 noundef %2206, ptr noundef @.str.4)
  %2208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = call ptr @s2n_strerror_debug(i32 noundef %2209, ptr noundef @.str.4)
  %2211 = call ptr @__errno_location() #11
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call ptr @strerror(i32 noundef %2212) #10
  %2214 = call ptr @__errno_location() #11
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  %2216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2203, ptr noundef @.str.5, i32 noundef %2204, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2207, ptr noundef %2210, ptr noundef %2213, i32 noundef %2215) #10
  br label %2217

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

2218:                                             ; preds = %2217
  br label %2219

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

2220:                                             ; No predecessors!
  br label %2221

2221:                                             ; preds = %2220
  br label %2222

2222:                                             ; preds = %2221, %2163
  br label %2223

2223:                                             ; preds = %2222
  br label %2224

2224:                                             ; preds = %2223
  br label %2225

2225:                                             ; preds = %2224
  %2226 = load i32, ptr @test_count, align 4, !tbaa !5
  %2227 = add nsw i32 %2226, 1
  store i32 %2227, ptr @test_count, align 4, !tbaa !5
  %2228 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %2229 = load ptr, ptr %37, align 8, !tbaa !9
  %2230 = call zeroext i1 %2228(ptr noundef %2229)
  br i1 %2230, label %2231, label %2284

2231:                                             ; preds = %2225
  br label %2232

2232:                                             ; preds = %2231
  br label %2233

2233:                                             ; preds = %2232
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  %2234 = call ptr @__errno_location() #11
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  store i32 %2235, ptr %45, align 4, !tbaa !5
  %2236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2237 = call i32 @s2n_print_stacktrace(ptr noundef %2236)
  %2238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2239 = trunc i8 %2238 to i1
  br i1 %2239, label %2240, label %2262

2240:                                             ; preds = %2233
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = call i32 @fileno(ptr noundef %2241) #10
  %2243 = call i32 @isatty(i32 noundef %2242) #10
  %2244 = icmp ne i32 %2243, 0
  br i1 %2244, label %2245, label %2262

2245:                                             ; preds = %2240
  %2246 = load i32, ptr %45, align 4, !tbaa !5
  %2247 = call ptr @__errno_location() #11
  store i32 %2246, ptr %2247, align 4, !tbaa !5
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2251, ptr noundef @.str.4)
  %2253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2254 = load i32, ptr %2253, align 4, !tbaa !5
  %2255 = call ptr @s2n_strerror_debug(i32 noundef %2254, ptr noundef @.str.4)
  %2256 = call ptr @__errno_location() #11
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  %2258 = call ptr @strerror(i32 noundef %2257) #10
  %2259 = call ptr @__errno_location() #11
  %2260 = load i32, ptr %2259, align 4, !tbaa !5
  %2261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2248, ptr noundef @.str.2, i32 noundef %2249, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2252, ptr noundef %2255, ptr noundef %2258, i32 noundef %2260) #10
  br label %2279

2262:                                             ; preds = %2240, %2233
  %2263 = load i32, ptr %45, align 4, !tbaa !5
  %2264 = call ptr @__errno_location() #11
  store i32 %2263, ptr %2264, align 4, !tbaa !5
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = load i32, ptr @test_count, align 4, !tbaa !5
  %2267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = call ptr @s2n_strerror(i32 noundef %2268, ptr noundef @.str.4)
  %2270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2271 = load i32, ptr %2270, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror_debug(i32 noundef %2271, ptr noundef @.str.4)
  %2273 = call ptr @__errno_location() #11
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call ptr @strerror(i32 noundef %2274) #10
  %2276 = call ptr @__errno_location() #11
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2265, ptr noundef @.str.5, i32 noundef %2266, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2269, ptr noundef %2272, ptr noundef %2275, i32 noundef %2277) #10
  br label %2279

2279:                                             ; preds = %2262, %2245
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %2280

2280:                                             ; preds = %2279
  br label %2281

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

2282:                                             ; No predecessors!
  br label %2283

2283:                                             ; preds = %2282
  br label %2284

2284:                                             ; preds = %2283, %2225
  br label %2285

2285:                                             ; preds = %2284
  br label %2286

2286:                                             ; preds = %2285
  br label %2287

2287:                                             ; preds = %2286
  %2288 = load i32, ptr @test_count, align 4, !tbaa !5
  %2289 = add nsw i32 %2288, 1
  store i32 %2289, ptr @test_count, align 4, !tbaa !5
  %2290 = load ptr, ptr %37, align 8, !tbaa !9
  %2291 = call i32 @s2n_connection_free(ptr noundef %2290)
  %2292 = icmp eq i32 %2291, -1
  br i1 %2292, label %2293, label %2346

2293:                                             ; preds = %2287
  br label %2294

2294:                                             ; preds = %2293
  br label %2295

2295:                                             ; preds = %2294
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %2296 = call ptr @__errno_location() #11
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  store i32 %2297, ptr %46, align 4, !tbaa !5
  %2298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2299 = call i32 @s2n_print_stacktrace(ptr noundef %2298)
  %2300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2301 = trunc i8 %2300 to i1
  br i1 %2301, label %2302, label %2324

2302:                                             ; preds = %2295
  %2303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2304 = call i32 @fileno(ptr noundef %2303) #10
  %2305 = call i32 @isatty(i32 noundef %2304) #10
  %2306 = icmp ne i32 %2305, 0
  br i1 %2306, label %2307, label %2324

2307:                                             ; preds = %2302
  %2308 = load i32, ptr %46, align 4, !tbaa !5
  %2309 = call ptr @__errno_location() #11
  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() #11
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @strerror(i32 noundef %2319) #10
  %2321 = call ptr @__errno_location() #11
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2310, ptr noundef @.str.2, i32 noundef %2311, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2314, ptr noundef %2317, ptr noundef %2320, i32 noundef %2322) #10
  br label %2341

2324:                                             ; preds = %2302, %2295
  %2325 = load i32, ptr %46, align 4, !tbaa !5
  %2326 = call ptr @__errno_location() #11
  store i32 %2325, ptr %2326, align 4, !tbaa !5
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror(i32 noundef %2330, ptr noundef @.str.4)
  %2332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = call ptr @s2n_strerror_debug(i32 noundef %2333, ptr noundef @.str.4)
  %2335 = call ptr @__errno_location() #11
  %2336 = load i32, ptr %2335, align 4, !tbaa !5
  %2337 = call ptr @strerror(i32 noundef %2336) #10
  %2338 = call ptr @__errno_location() #11
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2327, ptr noundef @.str.5, i32 noundef %2328, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2331, ptr noundef %2334, ptr noundef %2337, i32 noundef %2339) #10
  br label %2341

2341:                                             ; preds = %2324, %2307
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %2342

2342:                                             ; preds = %2341
  br label %2343

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

2344:                                             ; No predecessors!
  br label %2345

2345:                                             ; preds = %2344
  br label %2346

2346:                                             ; preds = %2345, %2287
  br label %2347

2347:                                             ; preds = %2346
  br label %2348

2348:                                             ; preds = %2347
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %2349 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2349, ptr %47, align 8, !tbaa !9
  br label %2350

2350:                                             ; preds = %2348
  %2351 = load i32, ptr @test_count, align 4, !tbaa !5
  %2352 = add nsw i32 %2351, 1
  store i32 %2352, ptr @test_count, align 4, !tbaa !5
  %2353 = load ptr, ptr %47, align 8, !tbaa !9
  %2354 = icmp eq ptr %2353, null
  br i1 %2354, label %2355, label %2408

2355:                                             ; preds = %2350
  br label %2356

2356:                                             ; preds = %2355
  br label %2357

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

2364:                                             ; preds = %2357
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2366 = call i32 @fileno(ptr noundef %2365) #10
  %2367 = call i32 @isatty(i32 noundef %2366) #10
  %2368 = icmp ne i32 %2367, 0
  br i1 %2368, label %2369, label %2386

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

2386:                                             ; preds = %2364, %2357
  %2387 = load i32, ptr %48, align 4, !tbaa !5
  %2388 = call ptr @__errno_location() #11
  store i32 %2387, ptr %2388, align 4, !tbaa !5
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = load i32, ptr @test_count, align 4, !tbaa !5
  %2391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2392 = load i32, ptr %2391, align 4, !tbaa !5
  %2393 = call ptr @s2n_strerror(i32 noundef %2392, ptr noundef @.str.4)
  %2394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2395 = load i32, ptr %2394, align 4, !tbaa !5
  %2396 = call ptr @s2n_strerror_debug(i32 noundef %2395, ptr noundef @.str.4)
  %2397 = call ptr @__errno_location() #11
  %2398 = load i32, ptr %2397, align 4, !tbaa !5
  %2399 = call ptr @strerror(i32 noundef %2398) #10
  %2400 = call ptr @__errno_location() #11
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2389, ptr noundef @.str.5, i32 noundef %2390, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2393, ptr noundef %2396, ptr noundef %2399, i32 noundef %2401) #10
  br label %2403

2403:                                             ; preds = %2386, %2369
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %2404

2404:                                             ; preds = %2403
  br label %2405

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

2406:                                             ; No predecessors!
  br label %2407

2407:                                             ; preds = %2406
  br label %2408

2408:                                             ; preds = %2407, %2350
  br label %2409

2409:                                             ; preds = %2408
  br label %2410

2410:                                             ; preds = %2409
  br label %2411

2411:                                             ; preds = %2410
  %2412 = load i32, ptr @test_count, align 4, !tbaa !5
  %2413 = add nsw i32 %2412, 1
  store i32 %2413, ptr @test_count, align 4, !tbaa !5
  %2414 = load ptr, ptr %47, align 8, !tbaa !9
  %2415 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2414, ptr noundef @.str.16)
  %2416 = icmp eq i32 %2415, -1
  br i1 %2416, label %2417, label %2470

2417:                                             ; preds = %2411
  br label %2418

2418:                                             ; preds = %2417
  br label %2419

2419:                                             ; preds = %2418
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %2420 = call ptr @__errno_location() #11
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  store i32 %2421, ptr %49, align 4, !tbaa !5
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = call i32 @s2n_print_stacktrace(ptr noundef %2422)
  %2424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2425 = trunc i8 %2424 to i1
  br i1 %2425, label %2426, label %2448

2426:                                             ; preds = %2419
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = call i32 @fileno(ptr noundef %2427) #10
  %2429 = call i32 @isatty(i32 noundef %2428) #10
  %2430 = icmp ne i32 %2429, 0
  br i1 %2430, label %2431, label %2448

2431:                                             ; preds = %2426
  %2432 = load i32, ptr %49, align 4, !tbaa !5
  %2433 = call ptr @__errno_location() #11
  store i32 %2432, ptr %2433, align 4, !tbaa !5
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = load i32, ptr @test_count, align 4, !tbaa !5
  %2436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  %2438 = call ptr @s2n_strerror(i32 noundef %2437, ptr noundef @.str.4)
  %2439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror_debug(i32 noundef %2440, ptr noundef @.str.4)
  %2442 = call ptr @__errno_location() #11
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @strerror(i32 noundef %2443) #10
  %2445 = call ptr @__errno_location() #11
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2434, ptr noundef @.str.2, i32 noundef %2435, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2438, ptr noundef %2441, ptr noundef %2444, i32 noundef %2446) #10
  br label %2465

2448:                                             ; preds = %2426, %2419
  %2449 = load i32, ptr %49, align 4, !tbaa !5
  %2450 = call ptr @__errno_location() #11
  store i32 %2449, ptr %2450, align 4, !tbaa !5
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = load i32, ptr @test_count, align 4, !tbaa !5
  %2453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2454 = load i32, ptr %2453, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror(i32 noundef %2454, ptr noundef @.str.4)
  %2456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror_debug(i32 noundef %2457, ptr noundef @.str.4)
  %2459 = call ptr @__errno_location() #11
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @strerror(i32 noundef %2460) #10
  %2462 = call ptr @__errno_location() #11
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2451, ptr noundef @.str.5, i32 noundef %2452, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2455, ptr noundef %2458, ptr noundef %2461, i32 noundef %2463) #10
  br label %2465

2465:                                             ; preds = %2448, %2431
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2466

2466:                                             ; preds = %2465
  br label %2467

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

2468:                                             ; No predecessors!
  br label %2469

2469:                                             ; preds = %2468
  br label %2470

2470:                                             ; preds = %2469, %2411
  br label %2471

2471:                                             ; preds = %2470
  br label %2472

2472:                                             ; preds = %2471
  br label %2473

2473:                                             ; preds = %2472
  %2474 = load i32, ptr @test_count, align 4, !tbaa !5
  %2475 = add nsw i32 %2474, 1
  store i32 %2475, ptr @test_count, align 4, !tbaa !5
  %2476 = load ptr, ptr %47, align 8, !tbaa !9
  %2477 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %2476)
  %2478 = icmp eq i32 %2477, -1
  br i1 %2478, label %2479, label %2532

2479:                                             ; preds = %2473
  br label %2480

2480:                                             ; preds = %2479
  br label %2481

2481:                                             ; preds = %2480
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %2482 = call ptr @__errno_location() #11
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  store i32 %2483, ptr %50, align 4, !tbaa !5
  %2484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2485 = call i32 @s2n_print_stacktrace(ptr noundef %2484)
  %2486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2487 = trunc i8 %2486 to i1
  br i1 %2487, label %2488, label %2510

2488:                                             ; preds = %2481
  %2489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2490 = call i32 @fileno(ptr noundef %2489) #10
  %2491 = call i32 @isatty(i32 noundef %2490) #10
  %2492 = icmp ne i32 %2491, 0
  br i1 %2492, label %2493, label %2510

2493:                                             ; preds = %2488
  %2494 = load i32, ptr %50, align 4, !tbaa !5
  %2495 = call ptr @__errno_location() #11
  store i32 %2494, ptr %2495, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = load i32, ptr @test_count, align 4, !tbaa !5
  %2498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @s2n_strerror(i32 noundef %2499, ptr noundef @.str.4)
  %2501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror_debug(i32 noundef %2502, ptr noundef @.str.4)
  %2504 = call ptr @__errno_location() #11
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call ptr @strerror(i32 noundef %2505) #10
  %2507 = call ptr @__errno_location() #11
  %2508 = load i32, ptr %2507, align 4, !tbaa !5
  %2509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2496, ptr noundef @.str.2, i32 noundef %2497, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2500, ptr noundef %2503, ptr noundef %2506, i32 noundef %2508) #10
  br label %2527

2510:                                             ; preds = %2488, %2481
  %2511 = load i32, ptr %50, align 4, !tbaa !5
  %2512 = call ptr @__errno_location() #11
  store i32 %2511, ptr %2512, align 4, !tbaa !5
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = load i32, ptr @test_count, align 4, !tbaa !5
  %2515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @s2n_strerror(i32 noundef %2516, ptr noundef @.str.4)
  %2518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror_debug(i32 noundef %2519, ptr noundef @.str.4)
  %2521 = call ptr @__errno_location() #11
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call ptr @strerror(i32 noundef %2522) #10
  %2524 = call ptr @__errno_location() #11
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2513, ptr noundef @.str.5, i32 noundef %2514, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2517, ptr noundef %2520, ptr noundef %2523, i32 noundef %2525) #10
  br label %2527

2527:                                             ; preds = %2510, %2493
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2528

2528:                                             ; preds = %2527
  br label %2529

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

2530:                                             ; No predecessors!
  br label %2531

2531:                                             ; preds = %2530
  br label %2532

2532:                                             ; preds = %2531, %2473
  br label %2533

2533:                                             ; preds = %2532
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

2535:                                             ; preds = %2534
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = add nsw i32 %2536, 1
  store i32 %2537, ptr @test_count, align 4, !tbaa !5
  %2538 = load ptr, ptr %47, align 8, !tbaa !9
  %2539 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %2538, i32 noundef 0, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %2540 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  store i32 %2539, ptr %2540, align 4
  %2541 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  %2542 = load i32, ptr %2541, align 4
  %2543 = call zeroext i1 @s2n_result_is_ok(i32 %2542)
  br i1 %2543, label %2597, label %2544

2544:                                             ; preds = %2535
  br label %2545

2545:                                             ; preds = %2544
  br label %2546

2546:                                             ; preds = %2545
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2547 = call ptr @__errno_location() #11
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  store i32 %2548, ptr %52, align 4, !tbaa !5
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = call i32 @s2n_print_stacktrace(ptr noundef %2549)
  %2551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2552 = trunc i8 %2551 to i1
  br i1 %2552, label %2553, label %2575

2553:                                             ; preds = %2546
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = call i32 @fileno(ptr noundef %2554) #10
  %2556 = call i32 @isatty(i32 noundef %2555) #10
  %2557 = icmp ne i32 %2556, 0
  br i1 %2557, label %2558, label %2575

2558:                                             ; preds = %2553
  %2559 = load i32, ptr %52, align 4, !tbaa !5
  %2560 = call ptr @__errno_location() #11
  store i32 %2559, ptr %2560, align 4, !tbaa !5
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2562 = load i32, ptr @test_count, align 4, !tbaa !5
  %2563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror(i32 noundef %2564, ptr noundef @.str.4)
  %2566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror_debug(i32 noundef %2567, ptr noundef @.str.4)
  %2569 = call ptr @__errno_location() #11
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call ptr @strerror(i32 noundef %2570) #10
  %2572 = call ptr @__errno_location() #11
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2561, ptr noundef @.str.2, i32 noundef %2562, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2565, ptr noundef %2568, ptr noundef %2571, i32 noundef %2573) #10
  br label %2592

2575:                                             ; preds = %2553, %2546
  %2576 = load i32, ptr %52, align 4, !tbaa !5
  %2577 = call ptr @__errno_location() #11
  store i32 %2576, ptr %2577, align 4, !tbaa !5
  %2578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2579 = load i32, ptr @test_count, align 4, !tbaa !5
  %2580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call ptr @s2n_strerror(i32 noundef %2581, ptr noundef @.str.4)
  %2583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @s2n_strerror_debug(i32 noundef %2584, ptr noundef @.str.4)
  %2586 = call ptr @__errno_location() #11
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @strerror(i32 noundef %2587) #10
  %2589 = call ptr @__errno_location() #11
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2578, ptr noundef @.str.5, i32 noundef %2579, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2582, ptr noundef %2585, ptr noundef %2588, i32 noundef %2590) #10
  br label %2592

2592:                                             ; preds = %2575, %2558
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2593

2593:                                             ; preds = %2592
  br label %2594

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

2595:                                             ; No predecessors!
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

2597:                                             ; preds = %2596, %2535
  br label %2598

2598:                                             ; preds = %2597
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599
  %2601 = load i32, ptr @test_count, align 4, !tbaa !5
  %2602 = add nsw i32 %2601, 1
  store i32 %2602, ptr @test_count, align 4, !tbaa !5
  %2603 = load ptr, ptr %47, align 8, !tbaa !9
  %2604 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %2603, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %2605 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  store i32 %2604, ptr %2605, align 4
  %2606 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  %2607 = load i32, ptr %2606, align 4
  %2608 = call zeroext i1 @s2n_result_is_ok(i32 %2607)
  br i1 %2608, label %2662, label %2609

2609:                                             ; preds = %2600
  br label %2610

2610:                                             ; preds = %2609
  br label %2611

2611:                                             ; preds = %2610
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2612 = call ptr @__errno_location() #11
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  store i32 %2613, ptr %54, align 4, !tbaa !5
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = call i32 @s2n_print_stacktrace(ptr noundef %2614)
  %2616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2617 = trunc i8 %2616 to i1
  br i1 %2617, label %2618, label %2640

2618:                                             ; preds = %2611
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = call i32 @fileno(ptr noundef %2619) #10
  %2621 = call i32 @isatty(i32 noundef %2620) #10
  %2622 = icmp ne i32 %2621, 0
  br i1 %2622, label %2623, label %2640

2623:                                             ; preds = %2618
  %2624 = load i32, ptr %54, align 4, !tbaa !5
  %2625 = call ptr @__errno_location() #11
  store i32 %2624, ptr %2625, align 4, !tbaa !5
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = load i32, ptr @test_count, align 4, !tbaa !5
  %2628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror(i32 noundef %2629, ptr noundef @.str.4)
  %2631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call ptr @s2n_strerror_debug(i32 noundef %2632, ptr noundef @.str.4)
  %2634 = call ptr @__errno_location() #11
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = call ptr @strerror(i32 noundef %2635) #10
  %2637 = call ptr @__errno_location() #11
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  %2639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2626, ptr noundef @.str.2, i32 noundef %2627, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2630, ptr noundef %2633, ptr noundef %2636, i32 noundef %2638) #10
  br label %2657

2640:                                             ; preds = %2618, %2611
  %2641 = load i32, ptr %54, align 4, !tbaa !5
  %2642 = call ptr @__errno_location() #11
  store i32 %2641, ptr %2642, align 4, !tbaa !5
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = load i32, ptr @test_count, align 4, !tbaa !5
  %2645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call ptr @s2n_strerror(i32 noundef %2646, ptr noundef @.str.4)
  %2648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call ptr @s2n_strerror_debug(i32 noundef %2649, ptr noundef @.str.4)
  %2651 = call ptr @__errno_location() #11
  %2652 = load i32, ptr %2651, align 4, !tbaa !5
  %2653 = call ptr @strerror(i32 noundef %2652) #10
  %2654 = call ptr @__errno_location() #11
  %2655 = load i32, ptr %2654, align 4, !tbaa !5
  %2656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2643, ptr noundef @.str.5, i32 noundef %2644, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2647, ptr noundef %2650, ptr noundef %2653, i32 noundef %2655) #10
  br label %2657

2657:                                             ; preds = %2640, %2623
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2658

2658:                                             ; preds = %2657
  br label %2659

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

2660:                                             ; No predecessors!
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661, %2600
  br label %2663

2663:                                             ; preds = %2662
  br label %2664

2664:                                             ; preds = %2663
  br label %2665

2665:                                             ; preds = %2664
  %2666 = load i32, ptr @test_count, align 4, !tbaa !5
  %2667 = add nsw i32 %2666, 1
  store i32 %2667, ptr @test_count, align 4, !tbaa !5
  %2668 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %2669 = load ptr, ptr %47, align 8, !tbaa !9
  %2670 = call zeroext i1 %2668(ptr noundef %2669)
  br i1 %2670, label %2671, label %2724

2671:                                             ; preds = %2665
  br label %2672

2672:                                             ; preds = %2671
  br label %2673

2673:                                             ; preds = %2672
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %2674 = call ptr @__errno_location() #11
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  store i32 %2675, ptr %55, align 4, !tbaa !5
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = call i32 @s2n_print_stacktrace(ptr noundef %2676)
  %2678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2679 = trunc i8 %2678 to i1
  br i1 %2679, label %2680, label %2702

2680:                                             ; preds = %2673
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = call i32 @fileno(ptr noundef %2681) #10
  %2683 = call i32 @isatty(i32 noundef %2682) #10
  %2684 = icmp ne i32 %2683, 0
  br i1 %2684, label %2685, label %2702

2685:                                             ; preds = %2680
  %2686 = load i32, ptr %55, align 4, !tbaa !5
  %2687 = call ptr @__errno_location() #11
  store i32 %2686, ptr %2687, align 4, !tbaa !5
  %2688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2689 = load i32, ptr @test_count, align 4, !tbaa !5
  %2690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2691 = load i32, ptr %2690, align 4, !tbaa !5
  %2692 = call ptr @s2n_strerror(i32 noundef %2691, ptr noundef @.str.4)
  %2693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2694 = load i32, ptr %2693, align 4, !tbaa !5
  %2695 = call ptr @s2n_strerror_debug(i32 noundef %2694, ptr noundef @.str.4)
  %2696 = call ptr @__errno_location() #11
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call ptr @strerror(i32 noundef %2697) #10
  %2699 = call ptr @__errno_location() #11
  %2700 = load i32, ptr %2699, align 4, !tbaa !5
  %2701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2688, ptr noundef @.str.2, i32 noundef %2689, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2692, ptr noundef %2695, ptr noundef %2698, i32 noundef %2700) #10
  br label %2719

2702:                                             ; preds = %2680, %2673
  %2703 = load i32, ptr %55, align 4, !tbaa !5
  %2704 = call ptr @__errno_location() #11
  store i32 %2703, ptr %2704, align 4, !tbaa !5
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = load i32, ptr @test_count, align 4, !tbaa !5
  %2707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  %2709 = call ptr @s2n_strerror(i32 noundef %2708, ptr noundef @.str.4)
  %2710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  %2712 = call ptr @s2n_strerror_debug(i32 noundef %2711, ptr noundef @.str.4)
  %2713 = call ptr @__errno_location() #11
  %2714 = load i32, ptr %2713, align 4, !tbaa !5
  %2715 = call ptr @strerror(i32 noundef %2714) #10
  %2716 = call ptr @__errno_location() #11
  %2717 = load i32, ptr %2716, align 4, !tbaa !5
  %2718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2705, ptr noundef @.str.5, i32 noundef %2706, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2709, ptr noundef %2712, ptr noundef %2715, i32 noundef %2717) #10
  br label %2719

2719:                                             ; preds = %2702, %2685
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2720

2720:                                             ; preds = %2719
  br label %2721

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

2722:                                             ; No predecessors!
  br label %2723

2723:                                             ; preds = %2722
  br label %2724

2724:                                             ; preds = %2723, %2665
  br label %2725

2725:                                             ; preds = %2724
  br label %2726

2726:                                             ; preds = %2725
  br label %2727

2727:                                             ; preds = %2726
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = add nsw i32 %2728, 1
  store i32 %2729, ptr @test_count, align 4, !tbaa !5
  %2730 = load ptr, ptr %47, align 8, !tbaa !9
  %2731 = getelementptr inbounds %struct.s2n_connection, ptr %2730, i32 0, i32 33
  %2732 = call i32 @s2n_psk_parameters_wipe(ptr noundef %2731)
  %2733 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  store i32 %2732, ptr %2733, align 4
  %2734 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  %2735 = load i32, ptr %2734, align 4
  %2736 = call zeroext i1 @s2n_result_is_ok(i32 %2735)
  br i1 %2736, label %2790, label %2737

2737:                                             ; preds = %2727
  br label %2738

2738:                                             ; preds = %2737
  br label %2739

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

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

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

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

2785:                                             ; preds = %2768, %2751
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

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

2788:                                             ; No predecessors!
  br label %2789

2789:                                             ; preds = %2788
  br label %2790

2790:                                             ; preds = %2789, %2727
  br label %2791

2791:                                             ; preds = %2790
  br label %2792

2792:                                             ; preds = %2791
  br label %2793

2793:                                             ; preds = %2792
  %2794 = load i32, ptr @test_count, align 4, !tbaa !5
  %2795 = add nsw i32 %2794, 1
  store i32 %2795, ptr @test_count, align 4, !tbaa !5
  %2796 = load ptr, ptr %47, align 8, !tbaa !9
  %2797 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %2796, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %2798 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  store i32 %2797, ptr %2798, align 4
  %2799 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  %2800 = load i32, ptr %2799, align 4
  %2801 = call zeroext i1 @s2n_result_is_ok(i32 %2800)
  br i1 %2801, label %2855, label %2802

2802:                                             ; preds = %2793
  br label %2803

2803:                                             ; preds = %2802
  br label %2804

2804:                                             ; preds = %2803
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2805 = call ptr @__errno_location() #11
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  store i32 %2806, ptr %59, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = call i32 @s2n_print_stacktrace(ptr noundef %2807)
  %2809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2810 = trunc i8 %2809 to i1
  br i1 %2810, label %2811, label %2833

2811:                                             ; preds = %2804
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = call i32 @fileno(ptr noundef %2812) #10
  %2814 = call i32 @isatty(i32 noundef %2813) #10
  %2815 = icmp ne i32 %2814, 0
  br i1 %2815, label %2816, label %2833

2816:                                             ; preds = %2811
  %2817 = load i32, ptr %59, align 4, !tbaa !5
  %2818 = call ptr @__errno_location() #11
  store i32 %2817, ptr %2818, align 4, !tbaa !5
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = load i32, ptr @test_count, align 4, !tbaa !5
  %2821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = call ptr @s2n_strerror(i32 noundef %2822, ptr noundef @.str.4)
  %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_debug(i32 noundef %2825, ptr noundef @.str.4)
  %2827 = call ptr @__errno_location() #11
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call ptr @strerror(i32 noundef %2828) #10
  %2830 = call ptr @__errno_location() #11
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2819, ptr noundef @.str.2, i32 noundef %2820, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2823, ptr noundef %2826, ptr noundef %2829, i32 noundef %2831) #10
  br label %2850

2833:                                             ; preds = %2811, %2804
  %2834 = load i32, ptr %59, align 4, !tbaa !5
  %2835 = call ptr @__errno_location() #11
  store i32 %2834, ptr %2835, align 4, !tbaa !5
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = load i32, ptr @test_count, align 4, !tbaa !5
  %2838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2839 = load i32, ptr %2838, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror(i32 noundef %2839, ptr noundef @.str.4)
  %2841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = call ptr @s2n_strerror_debug(i32 noundef %2842, ptr noundef @.str.4)
  %2844 = call ptr @__errno_location() #11
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call ptr @strerror(i32 noundef %2845) #10
  %2847 = call ptr @__errno_location() #11
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2836, ptr noundef @.str.5, i32 noundef %2837, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2840, ptr noundef %2843, ptr noundef %2846, i32 noundef %2848) #10
  br label %2850

2850:                                             ; preds = %2833, %2816
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2851

2851:                                             ; preds = %2850
  br label %2852

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

2853:                                             ; No predecessors!
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

2855:                                             ; preds = %2854, %2793
  br label %2856

2856:                                             ; preds = %2855
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  %2859 = load i32, ptr @test_count, align 4, !tbaa !5
  %2860 = add nsw i32 %2859, 1
  store i32 %2860, ptr @test_count, align 4, !tbaa !5
  %2861 = load ptr, ptr %47, align 8, !tbaa !9
  %2862 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %2861, i32 noundef 0, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %2863 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2862, ptr %2863, align 4
  %2864 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  %2865 = load i32, ptr %2864, align 4
  %2866 = call zeroext i1 @s2n_result_is_ok(i32 %2865)
  br i1 %2866, label %2920, label %2867

2867:                                             ; preds = %2858
  br label %2868

2868:                                             ; preds = %2867
  br label %2869

2869:                                             ; preds = %2868
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2870 = call ptr @__errno_location() #11
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  store i32 %2871, ptr %61, align 4, !tbaa !5
  %2872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2873 = call i32 @s2n_print_stacktrace(ptr noundef %2872)
  %2874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2875 = trunc i8 %2874 to i1
  br i1 %2875, label %2876, label %2898

2876:                                             ; preds = %2869
  %2877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2878 = call i32 @fileno(ptr noundef %2877) #10
  %2879 = call i32 @isatty(i32 noundef %2878) #10
  %2880 = icmp ne i32 %2879, 0
  br i1 %2880, label %2881, label %2898

2881:                                             ; preds = %2876
  %2882 = load i32, ptr %61, align 4, !tbaa !5
  %2883 = call ptr @__errno_location() #11
  store i32 %2882, ptr %2883, align 4, !tbaa !5
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @s2n_strerror(i32 noundef %2887, ptr noundef @.str.4)
  %2889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror_debug(i32 noundef %2890, ptr noundef @.str.4)
  %2892 = call ptr @__errno_location() #11
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  %2894 = call ptr @strerror(i32 noundef %2893) #10
  %2895 = call ptr @__errno_location() #11
  %2896 = load i32, ptr %2895, align 4, !tbaa !5
  %2897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2884, ptr noundef @.str.2, i32 noundef %2885, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2888, ptr noundef %2891, ptr noundef %2894, i32 noundef %2896) #10
  br label %2915

2898:                                             ; preds = %2876, %2869
  %2899 = load i32, ptr %61, align 4, !tbaa !5
  %2900 = call ptr @__errno_location() #11
  store i32 %2899, ptr %2900, align 4, !tbaa !5
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = load i32, ptr @test_count, align 4, !tbaa !5
  %2903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = call ptr @s2n_strerror(i32 noundef %2904, ptr noundef @.str.4)
  %2906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror_debug(i32 noundef %2907, ptr noundef @.str.4)
  %2909 = call ptr @__errno_location() #11
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @strerror(i32 noundef %2910) #10
  %2912 = call ptr @__errno_location() #11
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2901, ptr noundef @.str.5, i32 noundef %2902, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2905, ptr noundef %2908, ptr noundef %2911, i32 noundef %2913) #10
  br label %2915

2915:                                             ; preds = %2898, %2881
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2916

2916:                                             ; preds = %2915
  br label %2917

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

2918:                                             ; No predecessors!
  br label %2919

2919:                                             ; preds = %2918
  br label %2920

2920:                                             ; preds = %2919, %2858
  br label %2921

2921:                                             ; preds = %2920
  br label %2922

2922:                                             ; preds = %2921
  br label %2923

2923:                                             ; preds = %2922
  %2924 = load i32, ptr @test_count, align 4, !tbaa !5
  %2925 = add nsw i32 %2924, 1
  store i32 %2925, ptr @test_count, align 4, !tbaa !5
  %2926 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %2927 = load ptr, ptr %47, align 8, !tbaa !9
  %2928 = call zeroext i1 %2926(ptr noundef %2927)
  br i1 %2928, label %2982, label %2929

2929:                                             ; preds = %2923
  br label %2930

2930:                                             ; preds = %2929
  br label %2931

2931:                                             ; preds = %2930
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2932 = call ptr @__errno_location() #11
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  store i32 %2933, ptr %62, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = call i32 @s2n_print_stacktrace(ptr noundef %2934)
  %2936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2937 = trunc i8 %2936 to i1
  br i1 %2937, label %2938, label %2960

2938:                                             ; preds = %2931
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = call i32 @fileno(ptr noundef %2939) #10
  %2941 = call i32 @isatty(i32 noundef %2940) #10
  %2942 = icmp ne i32 %2941, 0
  br i1 %2942, label %2943, label %2960

2943:                                             ; preds = %2938
  %2944 = load i32, ptr %62, align 4, !tbaa !5
  %2945 = call ptr @__errno_location() #11
  store i32 %2944, ptr %2945, align 4, !tbaa !5
  %2946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2947 = load i32, ptr @test_count, align 4, !tbaa !5
  %2948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror(i32 noundef %2949, ptr noundef @.str.4)
  %2951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @s2n_strerror_debug(i32 noundef %2952, ptr noundef @.str.4)
  %2954 = call ptr @__errno_location() #11
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call ptr @strerror(i32 noundef %2955) #10
  %2957 = call ptr @__errno_location() #11
  %2958 = load i32, ptr %2957, align 4, !tbaa !5
  %2959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2946, ptr noundef @.str.2, i32 noundef %2947, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2950, ptr noundef %2953, ptr noundef %2956, i32 noundef %2958) #10
  br label %2977

2960:                                             ; preds = %2938, %2931
  %2961 = load i32, ptr %62, align 4, !tbaa !5
  %2962 = call ptr @__errno_location() #11
  store i32 %2961, ptr %2962, align 4, !tbaa !5
  %2963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2964 = load i32, ptr @test_count, align 4, !tbaa !5
  %2965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror(i32 noundef %2966, ptr noundef @.str.4)
  %2968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @s2n_strerror_debug(i32 noundef %2969, ptr noundef @.str.4)
  %2971 = call ptr @__errno_location() #11
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call ptr @strerror(i32 noundef %2972) #10
  %2974 = call ptr @__errno_location() #11
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2963, ptr noundef @.str.5, i32 noundef %2964, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2967, ptr noundef %2970, ptr noundef %2973, i32 noundef %2975) #10
  br label %2977

2977:                                             ; preds = %2960, %2943
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2978

2978:                                             ; preds = %2977
  br label %2979

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

2980:                                             ; No predecessors!
  br label %2981

2981:                                             ; preds = %2980
  br label %2982

2982:                                             ; preds = %2981, %2923
  br label %2983

2983:                                             ; preds = %2982
  br label %2984

2984:                                             ; preds = %2983
  br label %2985

2985:                                             ; preds = %2984
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %2987 = add nsw i32 %2986, 1
  store i32 %2987, ptr @test_count, align 4, !tbaa !5
  %2988 = load ptr, ptr %47, align 8, !tbaa !9
  %2989 = call i32 @s2n_connection_free(ptr noundef %2988)
  %2990 = icmp eq i32 %2989, -1
  br i1 %2990, label %2991, label %3044

2991:                                             ; preds = %2985
  br label %2992

2992:                                             ; preds = %2991
  br label %2993

2993:                                             ; preds = %2992
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2994 = call ptr @__errno_location() #11
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  store i32 %2995, ptr %63, align 4, !tbaa !5
  %2996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2997 = call i32 @s2n_print_stacktrace(ptr noundef %2996)
  %2998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2999 = trunc i8 %2998 to i1
  br i1 %2999, label %3000, label %3022

3000:                                             ; preds = %2993
  %3001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3002 = call i32 @fileno(ptr noundef %3001) #10
  %3003 = call i32 @isatty(i32 noundef %3002) #10
  %3004 = icmp ne i32 %3003, 0
  br i1 %3004, label %3005, label %3022

3005:                                             ; preds = %3000
  %3006 = load i32, ptr %63, align 4, !tbaa !5
  %3007 = call ptr @__errno_location() #11
  store i32 %3006, ptr %3007, align 4, !tbaa !5
  %3008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3009 = load i32, ptr @test_count, align 4, !tbaa !5
  %3010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call ptr @s2n_strerror(i32 noundef %3011, ptr noundef @.str.4)
  %3013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call ptr @s2n_strerror_debug(i32 noundef %3014, ptr noundef @.str.4)
  %3016 = call ptr @__errno_location() #11
  %3017 = load i32, ptr %3016, align 4, !tbaa !5
  %3018 = call ptr @strerror(i32 noundef %3017) #10
  %3019 = call ptr @__errno_location() #11
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  %3021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3008, ptr noundef @.str.2, i32 noundef %3009, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 142, ptr noundef %3012, ptr noundef %3015, ptr noundef %3018, i32 noundef %3020) #10
  br label %3039

3022:                                             ; preds = %3000, %2993
  %3023 = load i32, ptr %63, align 4, !tbaa !5
  %3024 = call ptr @__errno_location() #11
  store i32 %3023, ptr %3024, align 4, !tbaa !5
  %3025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3026 = load i32, ptr @test_count, align 4, !tbaa !5
  %3027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror(i32 noundef %3028, ptr noundef @.str.4)
  %3030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call ptr @s2n_strerror_debug(i32 noundef %3031, ptr noundef @.str.4)
  %3033 = call ptr @__errno_location() #11
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call ptr @strerror(i32 noundef %3034) #10
  %3036 = call ptr @__errno_location() #11
  %3037 = load i32, ptr %3036, align 4, !tbaa !5
  %3038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3025, ptr noundef @.str.5, i32 noundef %3026, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 142, ptr noundef %3029, ptr noundef %3032, ptr noundef %3035, i32 noundef %3037) #10
  br label %3039

3039:                                             ; preds = %3022, %3005
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %3040

3040:                                             ; preds = %3039
  br label %3041

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

3042:                                             ; No predecessors!
  br label %3043

3043:                                             ; preds = %3042
  br label %3044

3044:                                             ; preds = %3043, %2985
  br label %3045

3045:                                             ; preds = %3044
  br label %3046

3046:                                             ; preds = %3045
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %3047 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3047, ptr %64, align 8, !tbaa !9
  br label %3048

3048:                                             ; preds = %3046
  %3049 = load i32, ptr @test_count, align 4, !tbaa !5
  %3050 = add nsw i32 %3049, 1
  store i32 %3050, ptr @test_count, align 4, !tbaa !5
  %3051 = load ptr, ptr %64, align 8, !tbaa !9
  %3052 = icmp eq ptr %3051, null
  br i1 %3052, label %3053, label %3106

3053:                                             ; preds = %3048
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

3055:                                             ; preds = %3054
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %3056 = call ptr @__errno_location() #11
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  store i32 %3057, ptr %65, align 4, !tbaa !5
  %3058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3059 = call i32 @s2n_print_stacktrace(ptr noundef %3058)
  %3060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3061 = trunc i8 %3060 to i1
  br i1 %3061, label %3062, label %3084

3062:                                             ; preds = %3055
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = call i32 @fileno(ptr noundef %3063) #10
  %3065 = call i32 @isatty(i32 noundef %3064) #10
  %3066 = icmp ne i32 %3065, 0
  br i1 %3066, label %3067, label %3084

3067:                                             ; preds = %3062
  %3068 = load i32, ptr %65, align 4, !tbaa !5
  %3069 = call ptr @__errno_location() #11
  store i32 %3068, ptr %3069, align 4, !tbaa !5
  %3070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3071 = load i32, ptr @test_count, align 4, !tbaa !5
  %3072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3073 = load i32, ptr %3072, align 4, !tbaa !5
  %3074 = call ptr @s2n_strerror(i32 noundef %3073, ptr noundef @.str.4)
  %3075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3076 = load i32, ptr %3075, align 4, !tbaa !5
  %3077 = call ptr @s2n_strerror_debug(i32 noundef %3076, ptr noundef @.str.4)
  %3078 = call ptr @__errno_location() #11
  %3079 = load i32, ptr %3078, align 4, !tbaa !5
  %3080 = call ptr @strerror(i32 noundef %3079) #10
  %3081 = call ptr @__errno_location() #11
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3070, ptr noundef @.str.2, i32 noundef %3071, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3074, ptr noundef %3077, ptr noundef %3080, i32 noundef %3082) #10
  br label %3101

3084:                                             ; preds = %3062, %3055
  %3085 = load i32, ptr %65, align 4, !tbaa !5
  %3086 = call ptr @__errno_location() #11
  store i32 %3085, ptr %3086, align 4, !tbaa !5
  %3087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3088 = load i32, ptr @test_count, align 4, !tbaa !5
  %3089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror(i32 noundef %3090, ptr noundef @.str.4)
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror_debug(i32 noundef %3093, ptr noundef @.str.4)
  %3095 = call ptr @__errno_location() #11
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @strerror(i32 noundef %3096) #10
  %3098 = call ptr @__errno_location() #11
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3087, ptr noundef @.str.5, i32 noundef %3088, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3091, ptr noundef %3094, ptr noundef %3097, i32 noundef %3099) #10
  br label %3101

3101:                                             ; preds = %3084, %3067
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %3102

3102:                                             ; preds = %3101
  br label %3103

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

3104:                                             ; No predecessors!
  br label %3105

3105:                                             ; preds = %3104
  br label %3106

3106:                                             ; preds = %3105, %3048
  br label %3107

3107:                                             ; preds = %3106
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

3109:                                             ; preds = %3108
  %3110 = load i32, ptr @test_count, align 4, !tbaa !5
  %3111 = add nsw i32 %3110, 1
  store i32 %3111, ptr @test_count, align 4, !tbaa !5
  %3112 = load ptr, ptr %64, align 8, !tbaa !9
  %3113 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %3112, ptr noundef @.str.16)
  %3114 = icmp eq i32 %3113, -1
  br i1 %3114, label %3115, label %3168

3115:                                             ; preds = %3109
  br label %3116

3116:                                             ; preds = %3115
  br label %3117

3117:                                             ; preds = %3116
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %3118 = call ptr @__errno_location() #11
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  store i32 %3119, ptr %66, align 4, !tbaa !5
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = call i32 @s2n_print_stacktrace(ptr noundef %3120)
  %3122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3123 = trunc i8 %3122 to i1
  br i1 %3123, label %3124, label %3146

3124:                                             ; preds = %3117
  %3125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3126 = call i32 @fileno(ptr noundef %3125) #10
  %3127 = call i32 @isatty(i32 noundef %3126) #10
  %3128 = icmp ne i32 %3127, 0
  br i1 %3128, label %3129, label %3146

3129:                                             ; preds = %3124
  %3130 = load i32, ptr %66, align 4, !tbaa !5
  %3131 = call ptr @__errno_location() #11
  store i32 %3130, ptr %3131, align 4, !tbaa !5
  %3132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3133 = load i32, ptr @test_count, align 4, !tbaa !5
  %3134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3135 = load i32, ptr %3134, align 4, !tbaa !5
  %3136 = call ptr @s2n_strerror(i32 noundef %3135, ptr noundef @.str.4)
  %3137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3138 = load i32, ptr %3137, align 4, !tbaa !5
  %3139 = call ptr @s2n_strerror_debug(i32 noundef %3138, ptr noundef @.str.4)
  %3140 = call ptr @__errno_location() #11
  %3141 = load i32, ptr %3140, align 4, !tbaa !5
  %3142 = call ptr @strerror(i32 noundef %3141) #10
  %3143 = call ptr @__errno_location() #11
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3132, ptr noundef @.str.2, i32 noundef %3133, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3136, ptr noundef %3139, ptr noundef %3142, i32 noundef %3144) #10
  br label %3163

3146:                                             ; preds = %3124, %3117
  %3147 = load i32, ptr %66, align 4, !tbaa !5
  %3148 = call ptr @__errno_location() #11
  store i32 %3147, ptr %3148, align 4, !tbaa !5
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = load i32, ptr @test_count, align 4, !tbaa !5
  %3151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror(i32 noundef %3152, ptr noundef @.str.4)
  %3154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  %3156 = call ptr @s2n_strerror_debug(i32 noundef %3155, ptr noundef @.str.4)
  %3157 = call ptr @__errno_location() #11
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  %3159 = call ptr @strerror(i32 noundef %3158) #10
  %3160 = call ptr @__errno_location() #11
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3149, ptr noundef @.str.5, i32 noundef %3150, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3153, ptr noundef %3156, ptr noundef %3159, i32 noundef %3161) #10
  br label %3163

3163:                                             ; preds = %3146, %3129
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %3164

3164:                                             ; preds = %3163
  br label %3165

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

3166:                                             ; No predecessors!
  br label %3167

3167:                                             ; preds = %3166
  br label %3168

3168:                                             ; preds = %3167, %3109
  br label %3169

3169:                                             ; preds = %3168
  br label %3170

3170:                                             ; preds = %3169
  br label %3171

3171:                                             ; preds = %3170
  %3172 = load i32, ptr @test_count, align 4, !tbaa !5
  %3173 = add nsw i32 %3172, 1
  store i32 %3173, ptr @test_count, align 4, !tbaa !5
  %3174 = load ptr, ptr %64, align 8, !tbaa !9
  %3175 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %3174, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %3176 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  store i32 %3175, ptr %3176, align 4
  %3177 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  %3178 = load i32, ptr %3177, align 4
  %3179 = call zeroext i1 @s2n_result_is_ok(i32 %3178)
  br i1 %3179, label %3233, label %3180

3180:                                             ; preds = %3171
  br label %3181

3181:                                             ; preds = %3180
  br label %3182

3182:                                             ; preds = %3181
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %3183 = call ptr @__errno_location() #11
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  store i32 %3184, ptr %68, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = call i32 @s2n_print_stacktrace(ptr noundef %3185)
  %3187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3188 = trunc i8 %3187 to i1
  br i1 %3188, label %3189, label %3211

3189:                                             ; preds = %3182
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = call i32 @fileno(ptr noundef %3190) #10
  %3192 = call i32 @isatty(i32 noundef %3191) #10
  %3193 = icmp ne i32 %3192, 0
  br i1 %3193, label %3194, label %3211

3194:                                             ; preds = %3189
  %3195 = load i32, ptr %68, align 4, !tbaa !5
  %3196 = call ptr @__errno_location() #11
  store i32 %3195, ptr %3196, align 4, !tbaa !5
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3200 = load i32, ptr %3199, align 4, !tbaa !5
  %3201 = call ptr @s2n_strerror(i32 noundef %3200, ptr noundef @.str.4)
  %3202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3203 = load i32, ptr %3202, align 4, !tbaa !5
  %3204 = call ptr @s2n_strerror_debug(i32 noundef %3203, ptr noundef @.str.4)
  %3205 = call ptr @__errno_location() #11
  %3206 = load i32, ptr %3205, align 4, !tbaa !5
  %3207 = call ptr @strerror(i32 noundef %3206) #10
  %3208 = call ptr @__errno_location() #11
  %3209 = load i32, ptr %3208, align 4, !tbaa !5
  %3210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3197, ptr noundef @.str.2, i32 noundef %3198, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3201, ptr noundef %3204, ptr noundef %3207, i32 noundef %3209) #10
  br label %3228

3211:                                             ; preds = %3189, %3182
  %3212 = load i32, ptr %68, align 4, !tbaa !5
  %3213 = call ptr @__errno_location() #11
  store i32 %3212, ptr %3213, align 4, !tbaa !5
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = load i32, ptr @test_count, align 4, !tbaa !5
  %3216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call ptr @s2n_strerror(i32 noundef %3217, ptr noundef @.str.4)
  %3219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3220 = load i32, ptr %3219, align 4, !tbaa !5
  %3221 = call ptr @s2n_strerror_debug(i32 noundef %3220, ptr noundef @.str.4)
  %3222 = call ptr @__errno_location() #11
  %3223 = load i32, ptr %3222, align 4, !tbaa !5
  %3224 = call ptr @strerror(i32 noundef %3223) #10
  %3225 = call ptr @__errno_location() #11
  %3226 = load i32, ptr %3225, align 4, !tbaa !5
  %3227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3214, ptr noundef @.str.5, i32 noundef %3215, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3218, ptr noundef %3221, ptr noundef %3224, i32 noundef %3226) #10
  br label %3228

3228:                                             ; preds = %3211, %3194
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %3229

3229:                                             ; preds = %3228
  br label %3230

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

3231:                                             ; No predecessors!
  br label %3232

3232:                                             ; preds = %3231
  br label %3233

3233:                                             ; preds = %3232, %3171
  br label %3234

3234:                                             ; preds = %3233
  br label %3235

3235:                                             ; preds = %3234
  br label %3236

3236:                                             ; preds = %3235
  %3237 = load i32, ptr @test_count, align 4, !tbaa !5
  %3238 = add nsw i32 %3237, 1
  store i32 %3238, ptr @test_count, align 4, !tbaa !5
  %3239 = load ptr, ptr %64, align 8, !tbaa !9
  %3240 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %3239)
  %3241 = icmp eq i32 %3240, -1
  br i1 %3241, label %3242, label %3295

3242:                                             ; preds = %3236
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

3244:                                             ; preds = %3243
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %3245 = call ptr @__errno_location() #11
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  store i32 %3246, ptr %69, align 4, !tbaa !5
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = call i32 @s2n_print_stacktrace(ptr noundef %3247)
  %3249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3250 = trunc i8 %3249 to i1
  br i1 %3250, label %3251, label %3273

3251:                                             ; preds = %3244
  %3252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3253 = call i32 @fileno(ptr noundef %3252) #10
  %3254 = call i32 @isatty(i32 noundef %3253) #10
  %3255 = icmp ne i32 %3254, 0
  br i1 %3255, label %3256, label %3273

3256:                                             ; preds = %3251
  %3257 = load i32, ptr %69, align 4, !tbaa !5
  %3258 = call ptr @__errno_location() #11
  store i32 %3257, ptr %3258, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3260 = load i32, ptr @test_count, align 4, !tbaa !5
  %3261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3262 = load i32, ptr %3261, align 4, !tbaa !5
  %3263 = call ptr @s2n_strerror(i32 noundef %3262, ptr noundef @.str.4)
  %3264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3265 = load i32, ptr %3264, align 4, !tbaa !5
  %3266 = call ptr @s2n_strerror_debug(i32 noundef %3265, ptr noundef @.str.4)
  %3267 = call ptr @__errno_location() #11
  %3268 = load i32, ptr %3267, align 4, !tbaa !5
  %3269 = call ptr @strerror(i32 noundef %3268) #10
  %3270 = call ptr @__errno_location() #11
  %3271 = load i32, ptr %3270, align 4, !tbaa !5
  %3272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3259, ptr noundef @.str.2, i32 noundef %3260, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 151, ptr noundef %3263, ptr noundef %3266, ptr noundef %3269, i32 noundef %3271) #10
  br label %3290

3273:                                             ; preds = %3251, %3244
  %3274 = load i32, ptr %69, align 4, !tbaa !5
  %3275 = call ptr @__errno_location() #11
  store i32 %3274, ptr %3275, align 4, !tbaa !5
  %3276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3277 = load i32, ptr @test_count, align 4, !tbaa !5
  %3278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = call ptr @s2n_strerror(i32 noundef %3279, ptr noundef @.str.4)
  %3281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = call ptr @s2n_strerror_debug(i32 noundef %3282, ptr noundef @.str.4)
  %3284 = call ptr @__errno_location() #11
  %3285 = load i32, ptr %3284, align 4, !tbaa !5
  %3286 = call ptr @strerror(i32 noundef %3285) #10
  %3287 = call ptr @__errno_location() #11
  %3288 = load i32, ptr %3287, align 4, !tbaa !5
  %3289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3276, ptr noundef @.str.5, i32 noundef %3277, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 151, ptr noundef %3280, ptr noundef %3283, ptr noundef %3286, i32 noundef %3288) #10
  br label %3290

3290:                                             ; preds = %3273, %3256
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %3291

3291:                                             ; preds = %3290
  br label %3292

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

3293:                                             ; No predecessors!
  br label %3294

3294:                                             ; preds = %3293
  br label %3295

3295:                                             ; preds = %3294, %3236
  br label %3296

3296:                                             ; preds = %3295
  br label %3297

3297:                                             ; preds = %3296
  %3298 = load ptr, ptr %64, align 8, !tbaa !9
  %3299 = getelementptr inbounds %struct.s2n_connection, ptr %3298, i32 0, i32 23
  store i8 33, ptr %3299, align 4, !tbaa !18
  br label %3300

3300:                                             ; preds = %3297
  %3301 = load i32, ptr @test_count, align 4, !tbaa !5
  %3302 = add nsw i32 %3301, 1
  store i32 %3302, ptr @test_count, align 4, !tbaa !5
  %3303 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %3304 = load ptr, ptr %64, align 8, !tbaa !9
  %3305 = call zeroext i1 %3303(ptr noundef %3304)
  br i1 %3305, label %3306, label %3359

3306:                                             ; preds = %3300
  br label %3307

3307:                                             ; preds = %3306
  br label %3308

3308:                                             ; preds = %3307
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %3309 = call ptr @__errno_location() #11
  %3310 = load i32, ptr %3309, align 4, !tbaa !5
  store i32 %3310, ptr %70, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = call i32 @s2n_print_stacktrace(ptr noundef %3311)
  %3313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3314 = trunc i8 %3313 to i1
  br i1 %3314, label %3315, label %3337

3315:                                             ; preds = %3308
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = call i32 @fileno(ptr noundef %3316) #10
  %3318 = call i32 @isatty(i32 noundef %3317) #10
  %3319 = icmp ne i32 %3318, 0
  br i1 %3319, label %3320, label %3337

3320:                                             ; preds = %3315
  %3321 = load i32, ptr %70, align 4, !tbaa !5
  %3322 = call ptr @__errno_location() #11
  store i32 %3321, ptr %3322, align 4, !tbaa !5
  %3323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3324 = load i32, ptr @test_count, align 4, !tbaa !5
  %3325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3326 = load i32, ptr %3325, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror(i32 noundef %3326, ptr noundef @.str.4)
  %3328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror_debug(i32 noundef %3329, ptr noundef @.str.4)
  %3331 = call ptr @__errno_location() #11
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @strerror(i32 noundef %3332) #10
  %3334 = call ptr @__errno_location() #11
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3323, ptr noundef @.str.2, i32 noundef %3324, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3327, ptr noundef %3330, ptr noundef %3333, i32 noundef %3335) #10
  br label %3354

3337:                                             ; preds = %3315, %3308
  %3338 = load i32, ptr %70, align 4, !tbaa !5
  %3339 = call ptr @__errno_location() #11
  store i32 %3338, ptr %3339, align 4, !tbaa !5
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = load i32, ptr @test_count, align 4, !tbaa !5
  %3342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3343 = load i32, ptr %3342, align 4, !tbaa !5
  %3344 = call ptr @s2n_strerror(i32 noundef %3343, ptr noundef @.str.4)
  %3345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  %3347 = call ptr @s2n_strerror_debug(i32 noundef %3346, ptr noundef @.str.4)
  %3348 = call ptr @__errno_location() #11
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call ptr @strerror(i32 noundef %3349) #10
  %3351 = call ptr @__errno_location() #11
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3340, ptr noundef @.str.5, i32 noundef %3341, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3344, ptr noundef %3347, ptr noundef %3350, i32 noundef %3352) #10
  br label %3354

3354:                                             ; preds = %3337, %3320
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %3355

3355:                                             ; preds = %3354
  br label %3356

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

3357:                                             ; No predecessors!
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

3359:                                             ; preds = %3358, %3300
  br label %3360

3360:                                             ; preds = %3359
  br label %3361

3361:                                             ; preds = %3360
  %3362 = load ptr, ptr %64, align 8, !tbaa !9
  %3363 = getelementptr inbounds %struct.s2n_connection, ptr %3362, i32 0, i32 23
  store i8 34, ptr %3363, align 4, !tbaa !18
  br label %3364

3364:                                             ; preds = %3361
  %3365 = load i32, ptr @test_count, align 4, !tbaa !5
  %3366 = add nsw i32 %3365, 1
  store i32 %3366, ptr @test_count, align 4, !tbaa !5
  %3367 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %3368 = load ptr, ptr %64, align 8, !tbaa !9
  %3369 = call zeroext i1 %3367(ptr noundef %3368)
  br i1 %3369, label %3423, label %3370

3370:                                             ; preds = %3364
  br label %3371

3371:                                             ; preds = %3370
  br label %3372

3372:                                             ; preds = %3371
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3373 = call ptr @__errno_location() #11
  %3374 = load i32, ptr %3373, align 4, !tbaa !5
  store i32 %3374, ptr %71, align 4, !tbaa !5
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = call i32 @s2n_print_stacktrace(ptr noundef %3375)
  %3377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3378 = trunc i8 %3377 to i1
  br i1 %3378, label %3379, label %3401

3379:                                             ; preds = %3372
  %3380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3381 = call i32 @fileno(ptr noundef %3380) #10
  %3382 = call i32 @isatty(i32 noundef %3381) #10
  %3383 = icmp ne i32 %3382, 0
  br i1 %3383, label %3384, label %3401

3384:                                             ; preds = %3379
  %3385 = load i32, ptr %71, align 4, !tbaa !5
  %3386 = call ptr @__errno_location() #11
  store i32 %3385, ptr %3386, align 4, !tbaa !5
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = load i32, ptr @test_count, align 4, !tbaa !5
  %3389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3390 = load i32, ptr %3389, align 4, !tbaa !5
  %3391 = call ptr @s2n_strerror(i32 noundef %3390, ptr noundef @.str.4)
  %3392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3393 = load i32, ptr %3392, align 4, !tbaa !5
  %3394 = call ptr @s2n_strerror_debug(i32 noundef %3393, ptr noundef @.str.4)
  %3395 = call ptr @__errno_location() #11
  %3396 = load i32, ptr %3395, align 4, !tbaa !5
  %3397 = call ptr @strerror(i32 noundef %3396) #10
  %3398 = call ptr @__errno_location() #11
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  %3400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3387, ptr noundef @.str.2, i32 noundef %3388, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3391, ptr noundef %3394, ptr noundef %3397, i32 noundef %3399) #10
  br label %3418

3401:                                             ; preds = %3379, %3372
  %3402 = load i32, ptr %71, align 4, !tbaa !5
  %3403 = call ptr @__errno_location() #11
  store i32 %3402, ptr %3403, align 4, !tbaa !5
  %3404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3405 = load i32, ptr @test_count, align 4, !tbaa !5
  %3406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3407 = load i32, ptr %3406, align 4, !tbaa !5
  %3408 = call ptr @s2n_strerror(i32 noundef %3407, ptr noundef @.str.4)
  %3409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3410 = load i32, ptr %3409, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror_debug(i32 noundef %3410, ptr noundef @.str.4)
  %3412 = call ptr @__errno_location() #11
  %3413 = load i32, ptr %3412, align 4, !tbaa !5
  %3414 = call ptr @strerror(i32 noundef %3413) #10
  %3415 = call ptr @__errno_location() #11
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3404, ptr noundef @.str.5, i32 noundef %3405, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3408, ptr noundef %3411, ptr noundef %3414, i32 noundef %3416) #10
  br label %3418

3418:                                             ; preds = %3401, %3384
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3419

3419:                                             ; preds = %3418
  br label %3420

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

3421:                                             ; No predecessors!
  br label %3422

3422:                                             ; preds = %3421
  br label %3423

3423:                                             ; preds = %3422, %3364
  br label %3424

3424:                                             ; preds = %3423
  br label %3425

3425:                                             ; preds = %3424
  %3426 = load ptr, ptr %64, align 8, !tbaa !9
  %3427 = getelementptr inbounds %struct.s2n_connection, ptr %3426, i32 0, i32 23
  store i8 35, ptr %3427, align 4, !tbaa !18
  br label %3428

3428:                                             ; preds = %3425
  %3429 = load i32, ptr @test_count, align 4, !tbaa !5
  %3430 = add nsw i32 %3429, 1
  store i32 %3430, ptr @test_count, align 4, !tbaa !5
  %3431 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %3432 = load ptr, ptr %64, align 8, !tbaa !9
  %3433 = call zeroext i1 %3431(ptr noundef %3432)
  br i1 %3433, label %3487, label %3434

3434:                                             ; preds = %3428
  br label %3435

3435:                                             ; preds = %3434
  br label %3436

3436:                                             ; preds = %3435
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3437 = call ptr @__errno_location() #11
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  store i32 %3438, ptr %72, align 4, !tbaa !5
  %3439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3440 = call i32 @s2n_print_stacktrace(ptr noundef %3439)
  %3441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3442 = trunc i8 %3441 to i1
  br i1 %3442, label %3443, label %3465

3443:                                             ; preds = %3436
  %3444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3445 = call i32 @fileno(ptr noundef %3444) #10
  %3446 = call i32 @isatty(i32 noundef %3445) #10
  %3447 = icmp ne i32 %3446, 0
  br i1 %3447, label %3448, label %3465

3448:                                             ; preds = %3443
  %3449 = load i32, ptr %72, align 4, !tbaa !5
  %3450 = call ptr @__errno_location() #11
  store i32 %3449, ptr %3450, align 4, !tbaa !5
  %3451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3452 = load i32, ptr @test_count, align 4, !tbaa !5
  %3453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror(i32 noundef %3454, ptr noundef @.str.4)
  %3456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call ptr @s2n_strerror_debug(i32 noundef %3457, ptr noundef @.str.4)
  %3459 = call ptr @__errno_location() #11
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @strerror(i32 noundef %3460) #10
  %3462 = call ptr @__errno_location() #11
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3451, ptr noundef @.str.2, i32 noundef %3452, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 160, ptr noundef %3455, ptr noundef %3458, ptr noundef %3461, i32 noundef %3463) #10
  br label %3482

3465:                                             ; preds = %3443, %3436
  %3466 = load i32, ptr %72, align 4, !tbaa !5
  %3467 = call ptr @__errno_location() #11
  store i32 %3466, ptr %3467, align 4, !tbaa !5
  %3468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3469 = load i32, ptr @test_count, align 4, !tbaa !5
  %3470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3471 = load i32, ptr %3470, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror(i32 noundef %3471, ptr noundef @.str.4)
  %3473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  %3475 = call ptr @s2n_strerror_debug(i32 noundef %3474, ptr noundef @.str.4)
  %3476 = call ptr @__errno_location() #11
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @strerror(i32 noundef %3477) #10
  %3479 = call ptr @__errno_location() #11
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3468, ptr noundef @.str.5, i32 noundef %3469, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 160, ptr noundef %3472, ptr noundef %3475, ptr noundef %3478, i32 noundef %3480) #10
  br label %3482

3482:                                             ; preds = %3465, %3448
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3483

3483:                                             ; preds = %3482
  br label %3484

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

3485:                                             ; No predecessors!
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

3487:                                             ; preds = %3486, %3428
  br label %3488

3488:                                             ; preds = %3487
  br label %3489

3489:                                             ; preds = %3488
  br label %3490

3490:                                             ; preds = %3489
  %3491 = load i32, ptr @test_count, align 4, !tbaa !5
  %3492 = add nsw i32 %3491, 1
  store i32 %3492, ptr @test_count, align 4, !tbaa !5
  %3493 = load ptr, ptr %64, align 8, !tbaa !9
  %3494 = call i32 @s2n_connection_free(ptr noundef %3493)
  %3495 = icmp eq i32 %3494, -1
  br i1 %3495, label %3496, label %3549

3496:                                             ; preds = %3490
  br label %3497

3497:                                             ; preds = %3496
  br label %3498

3498:                                             ; preds = %3497
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %3499 = call ptr @__errno_location() #11
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  store i32 %3500, ptr %73, align 4, !tbaa !5
  %3501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3502 = call i32 @s2n_print_stacktrace(ptr noundef %3501)
  %3503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3504 = trunc i8 %3503 to i1
  br i1 %3504, label %3505, label %3527

3505:                                             ; preds = %3498
  %3506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3507 = call i32 @fileno(ptr noundef %3506) #10
  %3508 = call i32 @isatty(i32 noundef %3507) #10
  %3509 = icmp ne i32 %3508, 0
  br i1 %3509, label %3510, label %3527

3510:                                             ; preds = %3505
  %3511 = load i32, ptr %73, align 4, !tbaa !5
  %3512 = call ptr @__errno_location() #11
  store i32 %3511, ptr %3512, align 4, !tbaa !5
  %3513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3514 = load i32, ptr @test_count, align 4, !tbaa !5
  %3515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call ptr @s2n_strerror(i32 noundef %3516, ptr noundef @.str.4)
  %3518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  %3520 = call ptr @s2n_strerror_debug(i32 noundef %3519, ptr noundef @.str.4)
  %3521 = call ptr @__errno_location() #11
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  %3523 = call ptr @strerror(i32 noundef %3522) #10
  %3524 = call ptr @__errno_location() #11
  %3525 = load i32, ptr %3524, align 4, !tbaa !5
  %3526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3513, ptr noundef @.str.2, i32 noundef %3514, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3517, ptr noundef %3520, ptr noundef %3523, i32 noundef %3525) #10
  br label %3544

3527:                                             ; preds = %3505, %3498
  %3528 = load i32, ptr %73, align 4, !tbaa !5
  %3529 = call ptr @__errno_location() #11
  store i32 %3528, ptr %3529, align 4, !tbaa !5
  %3530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3531 = load i32, ptr @test_count, align 4, !tbaa !5
  %3532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @s2n_strerror(i32 noundef %3533, ptr noundef @.str.4)
  %3535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call ptr @s2n_strerror_debug(i32 noundef %3536, ptr noundef @.str.4)
  %3538 = call ptr @__errno_location() #11
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call ptr @strerror(i32 noundef %3539) #10
  %3541 = call ptr @__errno_location() #11
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3530, ptr noundef @.str.5, i32 noundef %3531, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3534, ptr noundef %3537, ptr noundef %3540, i32 noundef %3542) #10
  br label %3544

3544:                                             ; preds = %3527, %3510
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3545

3545:                                             ; preds = %3544
  br label %3546

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

3547:                                             ; No predecessors!
  br label %3548

3548:                                             ; preds = %3547
  br label %3549

3549:                                             ; preds = %3548, %3490
  br label %3550

3550:                                             ; preds = %3549
  br label %3551

3551:                                             ; preds = %3550
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %3552 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3552, ptr %74, align 8, !tbaa !9
  br label %3553

3553:                                             ; preds = %3551
  %3554 = load i32, ptr @test_count, align 4, !tbaa !5
  %3555 = add nsw i32 %3554, 1
  store i32 %3555, ptr @test_count, align 4, !tbaa !5
  %3556 = load ptr, ptr %74, align 8, !tbaa !9
  %3557 = icmp eq ptr %3556, null
  br i1 %3557, label %3558, label %3611

3558:                                             ; preds = %3553
  br label %3559

3559:                                             ; preds = %3558
  br label %3560

3560:                                             ; preds = %3559
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %3561 = call ptr @__errno_location() #11
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  store i32 %3562, ptr %75, align 4, !tbaa !5
  %3563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3564 = call i32 @s2n_print_stacktrace(ptr noundef %3563)
  %3565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3566 = trunc i8 %3565 to i1
  br i1 %3566, label %3567, label %3589

3567:                                             ; preds = %3560
  %3568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3569 = call i32 @fileno(ptr noundef %3568) #10
  %3570 = call i32 @isatty(i32 noundef %3569) #10
  %3571 = icmp ne i32 %3570, 0
  br i1 %3571, label %3572, label %3589

3572:                                             ; preds = %3567
  %3573 = load i32, ptr %75, align 4, !tbaa !5
  %3574 = call ptr @__errno_location() #11
  store i32 %3573, ptr %3574, align 4, !tbaa !5
  %3575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3576 = load i32, ptr @test_count, align 4, !tbaa !5
  %3577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3578 = load i32, ptr %3577, align 4, !tbaa !5
  %3579 = call ptr @s2n_strerror(i32 noundef %3578, ptr noundef @.str.4)
  %3580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3581 = load i32, ptr %3580, align 4, !tbaa !5
  %3582 = call ptr @s2n_strerror_debug(i32 noundef %3581, ptr noundef @.str.4)
  %3583 = call ptr @__errno_location() #11
  %3584 = load i32, ptr %3583, align 4, !tbaa !5
  %3585 = call ptr @strerror(i32 noundef %3584) #10
  %3586 = call ptr @__errno_location() #11
  %3587 = load i32, ptr %3586, align 4, !tbaa !5
  %3588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3575, ptr noundef @.str.2, i32 noundef %3576, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3579, ptr noundef %3582, ptr noundef %3585, i32 noundef %3587) #10
  br label %3606

3589:                                             ; preds = %3567, %3560
  %3590 = load i32, ptr %75, align 4, !tbaa !5
  %3591 = call ptr @__errno_location() #11
  store i32 %3590, ptr %3591, align 4, !tbaa !5
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3593 = load i32, ptr @test_count, align 4, !tbaa !5
  %3594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call ptr @s2n_strerror(i32 noundef %3595, ptr noundef @.str.4)
  %3597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  %3599 = call ptr @s2n_strerror_debug(i32 noundef %3598, ptr noundef @.str.4)
  %3600 = call ptr @__errno_location() #11
  %3601 = load i32, ptr %3600, align 4, !tbaa !5
  %3602 = call ptr @strerror(i32 noundef %3601) #10
  %3603 = call ptr @__errno_location() #11
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3592, ptr noundef @.str.5, i32 noundef %3593, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3596, ptr noundef %3599, ptr noundef %3602, i32 noundef %3604) #10
  br label %3606

3606:                                             ; preds = %3589, %3572
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3607

3607:                                             ; preds = %3606
  br label %3608

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

3609:                                             ; No predecessors!
  br label %3610

3610:                                             ; preds = %3609
  br label %3611

3611:                                             ; preds = %3610, %3553
  br label %3612

3612:                                             ; preds = %3611
  br label %3613

3613:                                             ; preds = %3612
  br label %3614

3614:                                             ; preds = %3613
  %3615 = load i32, ptr @test_count, align 4, !tbaa !5
  %3616 = add nsw i32 %3615, 1
  store i32 %3616, ptr @test_count, align 4, !tbaa !5
  %3617 = load ptr, ptr %74, align 8, !tbaa !9
  %3618 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %3617, ptr noundef @.str.16)
  %3619 = icmp eq i32 %3618, -1
  br i1 %3619, label %3620, label %3673

3620:                                             ; preds = %3614
  br label %3621

3621:                                             ; preds = %3620
  br label %3622

3622:                                             ; preds = %3621
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %3623 = call ptr @__errno_location() #11
  %3624 = load i32, ptr %3623, align 4, !tbaa !5
  store i32 %3624, ptr %76, align 4, !tbaa !5
  %3625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3626 = call i32 @s2n_print_stacktrace(ptr noundef %3625)
  %3627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3628 = trunc i8 %3627 to i1
  br i1 %3628, label %3629, label %3651

3629:                                             ; preds = %3622
  %3630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3631 = call i32 @fileno(ptr noundef %3630) #10
  %3632 = call i32 @isatty(i32 noundef %3631) #10
  %3633 = icmp ne i32 %3632, 0
  br i1 %3633, label %3634, label %3651

3634:                                             ; preds = %3629
  %3635 = load i32, ptr %76, align 4, !tbaa !5
  %3636 = call ptr @__errno_location() #11
  store i32 %3635, ptr %3636, align 4, !tbaa !5
  %3637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3638 = load i32, ptr @test_count, align 4, !tbaa !5
  %3639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3640 = load i32, ptr %3639, align 4, !tbaa !5
  %3641 = call ptr @s2n_strerror(i32 noundef %3640, ptr noundef @.str.4)
  %3642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3643 = load i32, ptr %3642, align 4, !tbaa !5
  %3644 = call ptr @s2n_strerror_debug(i32 noundef %3643, ptr noundef @.str.4)
  %3645 = call ptr @__errno_location() #11
  %3646 = load i32, ptr %3645, align 4, !tbaa !5
  %3647 = call ptr @strerror(i32 noundef %3646) #10
  %3648 = call ptr @__errno_location() #11
  %3649 = load i32, ptr %3648, align 4, !tbaa !5
  %3650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3637, ptr noundef @.str.2, i32 noundef %3638, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3641, ptr noundef %3644, ptr noundef %3647, i32 noundef %3649) #10
  br label %3668

3651:                                             ; preds = %3629, %3622
  %3652 = load i32, ptr %76, align 4, !tbaa !5
  %3653 = call ptr @__errno_location() #11
  store i32 %3652, ptr %3653, align 4, !tbaa !5
  %3654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3655 = load i32, ptr @test_count, align 4, !tbaa !5
  %3656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror(i32 noundef %3657, ptr noundef @.str.4)
  %3659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call ptr @s2n_strerror_debug(i32 noundef %3660, ptr noundef @.str.4)
  %3662 = call ptr @__errno_location() #11
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  %3664 = call ptr @strerror(i32 noundef %3663) #10
  %3665 = call ptr @__errno_location() #11
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3654, ptr noundef @.str.5, i32 noundef %3655, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3658, ptr noundef %3661, ptr noundef %3664, i32 noundef %3666) #10
  br label %3668

3668:                                             ; preds = %3651, %3634
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3669

3669:                                             ; preds = %3668
  br label %3670

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

3671:                                             ; No predecessors!
  br label %3672

3672:                                             ; preds = %3671
  br label %3673

3673:                                             ; preds = %3672, %3614
  br label %3674

3674:                                             ; preds = %3673
  br label %3675

3675:                                             ; preds = %3674
  br label %3676

3676:                                             ; preds = %3675
  %3677 = load i32, ptr @test_count, align 4, !tbaa !5
  %3678 = add nsw i32 %3677, 1
  store i32 %3678, ptr @test_count, align 4, !tbaa !5
  %3679 = load ptr, ptr %74, align 8, !tbaa !9
  %3680 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %3679)
  %3681 = icmp eq i32 %3680, -1
  br i1 %3681, label %3682, label %3735

3682:                                             ; preds = %3676
  br label %3683

3683:                                             ; preds = %3682
  br label %3684

3684:                                             ; preds = %3683
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3685 = call ptr @__errno_location() #11
  %3686 = load i32, ptr %3685, align 4, !tbaa !5
  store i32 %3686, ptr %77, align 4, !tbaa !5
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = call i32 @s2n_print_stacktrace(ptr noundef %3687)
  %3689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3690 = trunc i8 %3689 to i1
  br i1 %3690, label %3691, label %3713

3691:                                             ; preds = %3684
  %3692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3693 = call i32 @fileno(ptr noundef %3692) #10
  %3694 = call i32 @isatty(i32 noundef %3693) #10
  %3695 = icmp ne i32 %3694, 0
  br i1 %3695, label %3696, label %3713

3696:                                             ; preds = %3691
  %3697 = load i32, ptr %77, align 4, !tbaa !5
  %3698 = call ptr @__errno_location() #11
  store i32 %3697, ptr %3698, align 4, !tbaa !5
  %3699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3700 = load i32, ptr @test_count, align 4, !tbaa !5
  %3701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3702 = load i32, ptr %3701, align 4, !tbaa !5
  %3703 = call ptr @s2n_strerror(i32 noundef %3702, ptr noundef @.str.4)
  %3704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3705 = load i32, ptr %3704, align 4, !tbaa !5
  %3706 = call ptr @s2n_strerror_debug(i32 noundef %3705, ptr noundef @.str.4)
  %3707 = call ptr @__errno_location() #11
  %3708 = load i32, ptr %3707, align 4, !tbaa !5
  %3709 = call ptr @strerror(i32 noundef %3708) #10
  %3710 = call ptr @__errno_location() #11
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  %3712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3699, ptr noundef @.str.2, i32 noundef %3700, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3703, ptr noundef %3706, ptr noundef %3709, i32 noundef %3711) #10
  br label %3730

3713:                                             ; preds = %3691, %3684
  %3714 = load i32, ptr %77, align 4, !tbaa !5
  %3715 = call ptr @__errno_location() #11
  store i32 %3714, ptr %3715, align 4, !tbaa !5
  %3716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3717 = load i32, ptr @test_count, align 4, !tbaa !5
  %3718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3719 = load i32, ptr %3718, align 4, !tbaa !5
  %3720 = call ptr @s2n_strerror(i32 noundef %3719, ptr noundef @.str.4)
  %3721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3722 = load i32, ptr %3721, align 4, !tbaa !5
  %3723 = call ptr @s2n_strerror_debug(i32 noundef %3722, ptr noundef @.str.4)
  %3724 = call ptr @__errno_location() #11
  %3725 = load i32, ptr %3724, align 4, !tbaa !5
  %3726 = call ptr @strerror(i32 noundef %3725) #10
  %3727 = call ptr @__errno_location() #11
  %3728 = load i32, ptr %3727, align 4, !tbaa !5
  %3729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3716, ptr noundef @.str.5, i32 noundef %3717, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3720, ptr noundef %3723, ptr noundef %3726, i32 noundef %3728) #10
  br label %3730

3730:                                             ; preds = %3713, %3696
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3731

3731:                                             ; preds = %3730
  br label %3732

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

3733:                                             ; No predecessors!
  br label %3734

3734:                                             ; preds = %3733
  br label %3735

3735:                                             ; preds = %3734, %3676
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

3737:                                             ; preds = %3736
  br label %3738

3738:                                             ; preds = %3737
  %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 = load ptr, ptr %74, align 8, !tbaa !9
  %3742 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %3741, i32 noundef 10, ptr noundef @s2n_rsa_with_3des_ede_cbc_sha)
  %3743 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %3742, ptr %3743, align 4
  %3744 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  %3745 = load i32, ptr %3744, align 4
  %3746 = call zeroext i1 @s2n_result_is_ok(i32 %3745)
  br i1 %3746, label %3800, label %3747

3747:                                             ; preds = %3738
  br label %3748

3748:                                             ; preds = %3747
  br label %3749

3749:                                             ; preds = %3748
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3750 = call ptr @__errno_location() #11
  %3751 = load i32, ptr %3750, align 4, !tbaa !5
  store i32 %3751, ptr %79, align 4, !tbaa !5
  %3752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3753 = call i32 @s2n_print_stacktrace(ptr noundef %3752)
  %3754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3755 = trunc i8 %3754 to i1
  br i1 %3755, label %3756, label %3778

3756:                                             ; preds = %3749
  %3757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3758 = call i32 @fileno(ptr noundef %3757) #10
  %3759 = call i32 @isatty(i32 noundef %3758) #10
  %3760 = icmp ne i32 %3759, 0
  br i1 %3760, label %3761, label %3778

3761:                                             ; preds = %3756
  %3762 = load i32, ptr %79, align 4, !tbaa !5
  %3763 = call ptr @__errno_location() #11
  store i32 %3762, ptr %3763, align 4, !tbaa !5
  %3764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3765 = load i32, ptr @test_count, align 4, !tbaa !5
  %3766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call ptr @s2n_strerror(i32 noundef %3767, ptr noundef @.str.4)
  %3769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  %3771 = call ptr @s2n_strerror_debug(i32 noundef %3770, ptr noundef @.str.4)
  %3772 = call ptr @__errno_location() #11
  %3773 = load i32, ptr %3772, align 4, !tbaa !5
  %3774 = call ptr @strerror(i32 noundef %3773) #10
  %3775 = call ptr @__errno_location() #11
  %3776 = load i32, ptr %3775, align 4, !tbaa !5
  %3777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3764, ptr noundef @.str.2, i32 noundef %3765, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3768, ptr noundef %3771, ptr noundef %3774, i32 noundef %3776) #10
  br label %3795

3778:                                             ; preds = %3756, %3749
  %3779 = load i32, ptr %79, align 4, !tbaa !5
  %3780 = call ptr @__errno_location() #11
  store i32 %3779, ptr %3780, align 4, !tbaa !5
  %3781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3782 = load i32, ptr @test_count, align 4, !tbaa !5
  %3783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror(i32 noundef %3784, ptr noundef @.str.4)
  %3786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3787 = load i32, ptr %3786, align 4, !tbaa !5
  %3788 = call ptr @s2n_strerror_debug(i32 noundef %3787, ptr noundef @.str.4)
  %3789 = call ptr @__errno_location() #11
  %3790 = load i32, ptr %3789, align 4, !tbaa !5
  %3791 = call ptr @strerror(i32 noundef %3790) #10
  %3792 = call ptr @__errno_location() #11
  %3793 = load i32, ptr %3792, align 4, !tbaa !5
  %3794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3781, ptr noundef @.str.5, i32 noundef %3782, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3785, ptr noundef %3788, ptr noundef %3791, i32 noundef %3793) #10
  br label %3795

3795:                                             ; preds = %3778, %3761
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3796

3796:                                             ; preds = %3795
  br label %3797

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

3798:                                             ; No predecessors!
  br label %3799

3799:                                             ; preds = %3798
  br label %3800

3800:                                             ; preds = %3799, %3738
  br label %3801

3801:                                             ; preds = %3800
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

3803:                                             ; preds = %3802
  %3804 = load i32, ptr @test_count, align 4, !tbaa !5
  %3805 = add nsw i32 %3804, 1
  store i32 %3805, ptr @test_count, align 4, !tbaa !5
  %3806 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %3807 = load ptr, ptr %74, align 8, !tbaa !9
  %3808 = call zeroext i1 %3806(ptr noundef %3807)
  br i1 %3808, label %3809, label %3862

3809:                                             ; preds = %3803
  br label %3810

3810:                                             ; preds = %3809
  br label %3811

3811:                                             ; preds = %3810
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %3812 = call ptr @__errno_location() #11
  %3813 = load i32, ptr %3812, align 4, !tbaa !5
  store i32 %3813, ptr %80, align 4, !tbaa !5
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3815 = call i32 @s2n_print_stacktrace(ptr noundef %3814)
  %3816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3817 = trunc i8 %3816 to i1
  br i1 %3817, label %3818, label %3840

3818:                                             ; preds = %3811
  %3819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3820 = call i32 @fileno(ptr noundef %3819) #10
  %3821 = call i32 @isatty(i32 noundef %3820) #10
  %3822 = icmp ne i32 %3821, 0
  br i1 %3822, label %3823, label %3840

3823:                                             ; preds = %3818
  %3824 = load i32, ptr %80, align 4, !tbaa !5
  %3825 = call ptr @__errno_location() #11
  store i32 %3824, ptr %3825, align 4, !tbaa !5
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = load i32, ptr @test_count, align 4, !tbaa !5
  %3828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror(i32 noundef %3829, ptr noundef @.str.4)
  %3831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @s2n_strerror_debug(i32 noundef %3832, ptr noundef @.str.4)
  %3834 = call ptr @__errno_location() #11
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call ptr @strerror(i32 noundef %3835) #10
  %3837 = call ptr @__errno_location() #11
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3826, ptr noundef @.str.2, i32 noundef %3827, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3830, ptr noundef %3833, ptr noundef %3836, i32 noundef %3838) #10
  br label %3857

3840:                                             ; preds = %3818, %3811
  %3841 = load i32, ptr %80, align 4, !tbaa !5
  %3842 = call ptr @__errno_location() #11
  store i32 %3841, ptr %3842, align 4, !tbaa !5
  %3843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3844 = load i32, ptr @test_count, align 4, !tbaa !5
  %3845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call ptr @s2n_strerror(i32 noundef %3846, ptr noundef @.str.4)
  %3848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @s2n_strerror_debug(i32 noundef %3849, ptr noundef @.str.4)
  %3851 = call ptr @__errno_location() #11
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call ptr @strerror(i32 noundef %3852) #10
  %3854 = call ptr @__errno_location() #11
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3843, ptr noundef @.str.5, i32 noundef %3844, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3847, ptr noundef %3850, ptr noundef %3853, i32 noundef %3855) #10
  br label %3857

3857:                                             ; preds = %3840, %3823
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

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

3860:                                             ; No predecessors!
  br label %3861

3861:                                             ; preds = %3860
  br label %3862

3862:                                             ; preds = %3861, %3803
  br label %3863

3863:                                             ; preds = %3862
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

3865:                                             ; preds = %3864
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = add nsw i32 %3866, 1
  store i32 %3867, ptr @test_count, align 4, !tbaa !5
  %3868 = load ptr, ptr %74, align 8, !tbaa !9
  %3869 = getelementptr inbounds %struct.s2n_connection, ptr %3868, i32 0, i32 33
  %3870 = call i32 @s2n_psk_parameters_wipe(ptr noundef %3869)
  %3871 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3870, ptr %3871, align 4
  %3872 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  %3873 = load i32, ptr %3872, align 4
  %3874 = call zeroext i1 @s2n_result_is_ok(i32 %3873)
  br i1 %3874, label %3928, label %3875

3875:                                             ; preds = %3865
  br label %3876

3876:                                             ; preds = %3875
  br label %3877

3877:                                             ; preds = %3876
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3878 = call ptr @__errno_location() #11
  %3879 = load i32, ptr %3878, align 4, !tbaa !5
  store i32 %3879, ptr %82, align 4, !tbaa !5
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = call i32 @s2n_print_stacktrace(ptr noundef %3880)
  %3882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3883 = trunc i8 %3882 to i1
  br i1 %3883, label %3884, label %3906

3884:                                             ; preds = %3877
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = call i32 @fileno(ptr noundef %3885) #10
  %3887 = call i32 @isatty(i32 noundef %3886) #10
  %3888 = icmp ne i32 %3887, 0
  br i1 %3888, label %3889, label %3906

3889:                                             ; preds = %3884
  %3890 = load i32, ptr %82, align 4, !tbaa !5
  %3891 = call ptr @__errno_location() #11
  store i32 %3890, ptr %3891, align 4, !tbaa !5
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = load i32, ptr @test_count, align 4, !tbaa !5
  %3894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3895 = load i32, ptr %3894, align 4, !tbaa !5
  %3896 = call ptr @s2n_strerror(i32 noundef %3895, ptr noundef @.str.4)
  %3897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3898 = load i32, ptr %3897, align 4, !tbaa !5
  %3899 = call ptr @s2n_strerror_debug(i32 noundef %3898, ptr noundef @.str.4)
  %3900 = call ptr @__errno_location() #11
  %3901 = load i32, ptr %3900, align 4, !tbaa !5
  %3902 = call ptr @strerror(i32 noundef %3901) #10
  %3903 = call ptr @__errno_location() #11
  %3904 = load i32, ptr %3903, align 4, !tbaa !5
  %3905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3892, ptr noundef @.str.2, i32 noundef %3893, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3896, ptr noundef %3899, ptr noundef %3902, i32 noundef %3904) #10
  br label %3923

3906:                                             ; preds = %3884, %3877
  %3907 = load i32, ptr %82, align 4, !tbaa !5
  %3908 = call ptr @__errno_location() #11
  store i32 %3907, ptr %3908, align 4, !tbaa !5
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = load i32, ptr @test_count, align 4, !tbaa !5
  %3911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3912 = load i32, ptr %3911, align 4, !tbaa !5
  %3913 = call ptr @s2n_strerror(i32 noundef %3912, ptr noundef @.str.4)
  %3914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call ptr @s2n_strerror_debug(i32 noundef %3915, ptr noundef @.str.4)
  %3917 = call ptr @__errno_location() #11
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @strerror(i32 noundef %3918) #10
  %3920 = call ptr @__errno_location() #11
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3909, ptr noundef @.str.5, i32 noundef %3910, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3913, ptr noundef %3916, ptr noundef %3919, i32 noundef %3921) #10
  br label %3923

3923:                                             ; preds = %3906, %3889
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3924

3924:                                             ; preds = %3923
  br label %3925

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

3926:                                             ; No predecessors!
  br label %3927

3927:                                             ; preds = %3926
  br label %3928

3928:                                             ; preds = %3927, %3865
  br label %3929

3929:                                             ; preds = %3928
  br label %3930

3930:                                             ; preds = %3929
  br label %3931

3931:                                             ; preds = %3930
  %3932 = load i32, ptr @test_count, align 4, !tbaa !5
  %3933 = add nsw i32 %3932, 1
  store i32 %3933, ptr @test_count, align 4, !tbaa !5
  %3934 = load ptr, ptr %74, align 8, !tbaa !9
  %3935 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %3934, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %3936 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  store i32 %3935, ptr %3936, align 4
  %3937 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  %3938 = load i32, ptr %3937, align 4
  %3939 = call zeroext i1 @s2n_result_is_ok(i32 %3938)
  br i1 %3939, label %3993, label %3940

3940:                                             ; preds = %3931
  br label %3941

3941:                                             ; preds = %3940
  br label %3942

3942:                                             ; preds = %3941
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %3943 = call ptr @__errno_location() #11
  %3944 = load i32, ptr %3943, align 4, !tbaa !5
  store i32 %3944, ptr %84, align 4, !tbaa !5
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = call i32 @s2n_print_stacktrace(ptr noundef %3945)
  %3947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3948 = trunc i8 %3947 to i1
  br i1 %3948, label %3949, label %3971

3949:                                             ; preds = %3942
  %3950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3951 = call i32 @fileno(ptr noundef %3950) #10
  %3952 = call i32 @isatty(i32 noundef %3951) #10
  %3953 = icmp ne i32 %3952, 0
  br i1 %3953, label %3954, label %3971

3954:                                             ; preds = %3949
  %3955 = load i32, ptr %84, align 4, !tbaa !5
  %3956 = call ptr @__errno_location() #11
  store i32 %3955, ptr %3956, align 4, !tbaa !5
  %3957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3958 = load i32, ptr @test_count, align 4, !tbaa !5
  %3959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  %3961 = call ptr @s2n_strerror(i32 noundef %3960, ptr noundef @.str.4)
  %3962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call ptr @s2n_strerror_debug(i32 noundef %3963, ptr noundef @.str.4)
  %3965 = call ptr @__errno_location() #11
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call ptr @strerror(i32 noundef %3966) #10
  %3968 = call ptr @__errno_location() #11
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3957, ptr noundef @.str.2, i32 noundef %3958, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 176, ptr noundef %3961, ptr noundef %3964, ptr noundef %3967, i32 noundef %3969) #10
  br label %3988

3971:                                             ; preds = %3949, %3942
  %3972 = load i32, ptr %84, align 4, !tbaa !5
  %3973 = call ptr @__errno_location() #11
  store i32 %3972, ptr %3973, align 4, !tbaa !5
  %3974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3975 = load i32, ptr @test_count, align 4, !tbaa !5
  %3976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call ptr @s2n_strerror(i32 noundef %3977, ptr noundef @.str.4)
  %3979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror_debug(i32 noundef %3980, ptr noundef @.str.4)
  %3982 = call ptr @__errno_location() #11
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @strerror(i32 noundef %3983) #10
  %3985 = call ptr @__errno_location() #11
  %3986 = load i32, ptr %3985, align 4, !tbaa !5
  %3987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3974, ptr noundef @.str.5, i32 noundef %3975, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 176, ptr noundef %3978, ptr noundef %3981, ptr noundef %3984, i32 noundef %3986) #10
  br label %3988

3988:                                             ; preds = %3971, %3954
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3989

3989:                                             ; preds = %3988
  br label %3990

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

3991:                                             ; No predecessors!
  br label %3992

3992:                                             ; preds = %3991
  br label %3993

3993:                                             ; preds = %3992, %3931
  br label %3994

3994:                                             ; preds = %3993
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995
  %3997 = load i32, ptr @test_count, align 4, !tbaa !5
  %3998 = add nsw i32 %3997, 1
  store i32 %3998, ptr @test_count, align 4, !tbaa !5
  %3999 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %4000 = load ptr, ptr %74, align 8, !tbaa !9
  %4001 = call zeroext i1 %3999(ptr noundef %4000)
  br i1 %4001, label %4055, label %4002

4002:                                             ; preds = %3996
  br label %4003

4003:                                             ; preds = %4002
  br label %4004

4004:                                             ; preds = %4003
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  %4005 = call ptr @__errno_location() #11
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  store i32 %4006, ptr %85, align 4, !tbaa !5
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = call i32 @s2n_print_stacktrace(ptr noundef %4007)
  %4009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4010 = trunc i8 %4009 to i1
  br i1 %4010, label %4011, label %4033

4011:                                             ; preds = %4004
  %4012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4013 = call i32 @fileno(ptr noundef %4012) #10
  %4014 = call i32 @isatty(i32 noundef %4013) #10
  %4015 = icmp ne i32 %4014, 0
  br i1 %4015, label %4016, label %4033

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

4033:                                             ; preds = %4011, %4004
  %4034 = load i32, ptr %85, align 4, !tbaa !5
  %4035 = call ptr @__errno_location() #11
  store i32 %4034, ptr %4035, align 4, !tbaa !5
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = load i32, ptr @test_count, align 4, !tbaa !5
  %4038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  %4040 = call ptr @s2n_strerror(i32 noundef %4039, ptr noundef @.str.4)
  %4041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror_debug(i32 noundef %4042, ptr noundef @.str.4)
  %4044 = call ptr @__errno_location() #11
  %4045 = load i32, ptr %4044, align 4, !tbaa !5
  %4046 = call ptr @strerror(i32 noundef %4045) #10
  %4047 = call ptr @__errno_location() #11
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4036, ptr noundef @.str.5, i32 noundef %4037, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 177, ptr noundef %4040, ptr noundef %4043, ptr noundef %4046, i32 noundef %4048) #10
  br label %4050

4050:                                             ; preds = %4033, %4016
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %4051

4051:                                             ; preds = %4050
  br label %4052

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

4053:                                             ; No predecessors!
  br label %4054

4054:                                             ; preds = %4053
  br label %4055

4055:                                             ; preds = %4054, %3996
  br label %4056

4056:                                             ; preds = %4055
  br label %4057

4057:                                             ; preds = %4056
  br label %4058

4058:                                             ; preds = %4057
  %4059 = load i32, ptr @test_count, align 4, !tbaa !5
  %4060 = add nsw i32 %4059, 1
  store i32 %4060, ptr @test_count, align 4, !tbaa !5
  %4061 = load ptr, ptr %74, align 8, !tbaa !9
  %4062 = call i32 @s2n_connection_free(ptr noundef %4061)
  %4063 = icmp eq i32 %4062, -1
  br i1 %4063, label %4064, label %4117

4064:                                             ; preds = %4058
  br label %4065

4065:                                             ; preds = %4064
  br label %4066

4066:                                             ; preds = %4065
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  %4067 = call ptr @__errno_location() #11
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  store i32 %4068, ptr %86, align 4, !tbaa !5
  %4069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4070 = call i32 @s2n_print_stacktrace(ptr noundef %4069)
  %4071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4072 = trunc i8 %4071 to i1
  br i1 %4072, label %4073, label %4095

4073:                                             ; preds = %4066
  %4074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4075 = call i32 @fileno(ptr noundef %4074) #10
  %4076 = call i32 @isatty(i32 noundef %4075) #10
  %4077 = icmp ne i32 %4076, 0
  br i1 %4077, label %4078, label %4095

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

4095:                                             ; preds = %4073, %4066
  %4096 = load i32, ptr %86, align 4, !tbaa !5
  %4097 = call ptr @__errno_location() #11
  store i32 %4096, ptr %4097, align 4, !tbaa !5
  %4098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4099 = load i32, ptr @test_count, align 4, !tbaa !5
  %4100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4101 = load i32, ptr %4100, align 4, !tbaa !5
  %4102 = call ptr @s2n_strerror(i32 noundef %4101, ptr noundef @.str.4)
  %4103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror_debug(i32 noundef %4104, ptr noundef @.str.4)
  %4106 = call ptr @__errno_location() #11
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @strerror(i32 noundef %4107) #10
  %4109 = call ptr @__errno_location() #11
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4098, ptr noundef @.str.5, i32 noundef %4099, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 179, ptr noundef %4102, ptr noundef %4105, ptr noundef %4108, i32 noundef %4110) #10
  br label %4112

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

4113:                                             ; preds = %4112
  br label %4114

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

4115:                                             ; No predecessors!
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

4117:                                             ; preds = %4116, %4058
  br label %4118

4118:                                             ; preds = %4117
  br label %4119

4119:                                             ; preds = %4118
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %4120 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4120, ptr %87, align 8, !tbaa !9
  br label %4121

4121:                                             ; preds = %4119
  %4122 = load i32, ptr @test_count, align 4, !tbaa !5
  %4123 = add nsw i32 %4122, 1
  store i32 %4123, ptr @test_count, align 4, !tbaa !5
  %4124 = load ptr, ptr %87, align 8, !tbaa !9
  %4125 = icmp eq ptr %4124, null
  br i1 %4125, label %4126, label %4179

4126:                                             ; preds = %4121
  br label %4127

4127:                                             ; preds = %4126
  br label %4128

4128:                                             ; preds = %4127
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %4129 = call ptr @__errno_location() #11
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  store i32 %4130, ptr %88, align 4, !tbaa !5
  %4131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4132 = call i32 @s2n_print_stacktrace(ptr noundef %4131)
  %4133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4134 = trunc i8 %4133 to i1
  br i1 %4134, label %4135, label %4157

4135:                                             ; preds = %4128
  %4136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4137 = call i32 @fileno(ptr noundef %4136) #10
  %4138 = call i32 @isatty(i32 noundef %4137) #10
  %4139 = icmp ne i32 %4138, 0
  br i1 %4139, label %4140, label %4157

4140:                                             ; preds = %4135
  %4141 = load i32, ptr %88, align 4, !tbaa !5
  %4142 = call ptr @__errno_location() #11
  store i32 %4141, ptr %4142, align 4, !tbaa !5
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4146 = load i32, ptr %4145, align 4, !tbaa !5
  %4147 = call ptr @s2n_strerror(i32 noundef %4146, ptr noundef @.str.4)
  %4148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  %4150 = call ptr @s2n_strerror_debug(i32 noundef %4149, ptr noundef @.str.4)
  %4151 = call ptr @__errno_location() #11
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call ptr @strerror(i32 noundef %4152) #10
  %4154 = call ptr @__errno_location() #11
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  %4156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4143, ptr noundef @.str.2, i32 noundef %4144, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 185, ptr noundef %4147, ptr noundef %4150, ptr noundef %4153, i32 noundef %4155) #10
  br label %4174

4157:                                             ; preds = %4135, %4128
  %4158 = load i32, ptr %88, align 4, !tbaa !5
  %4159 = call ptr @__errno_location() #11
  store i32 %4158, ptr %4159, align 4, !tbaa !5
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4161 = load i32, ptr @test_count, align 4, !tbaa !5
  %4162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4163 = load i32, ptr %4162, align 4, !tbaa !5
  %4164 = call ptr @s2n_strerror(i32 noundef %4163, ptr noundef @.str.4)
  %4165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  %4167 = call ptr @s2n_strerror_debug(i32 noundef %4166, ptr noundef @.str.4)
  %4168 = call ptr @__errno_location() #11
  %4169 = load i32, ptr %4168, align 4, !tbaa !5
  %4170 = call ptr @strerror(i32 noundef %4169) #10
  %4171 = call ptr @__errno_location() #11
  %4172 = load i32, ptr %4171, align 4, !tbaa !5
  %4173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4160, ptr noundef @.str.5, i32 noundef %4161, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 185, ptr noundef %4164, ptr noundef %4167, ptr noundef %4170, i32 noundef %4172) #10
  br label %4174

4174:                                             ; preds = %4157, %4140
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %4175

4175:                                             ; preds = %4174
  br label %4176

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

4177:                                             ; No predecessors!
  br label %4178

4178:                                             ; preds = %4177
  br label %4179

4179:                                             ; preds = %4178, %4121
  br label %4180

4180:                                             ; preds = %4179
  br label %4181

4181:                                             ; preds = %4180
  br label %4182

4182:                                             ; preds = %4181
  %4183 = load i32, ptr @test_count, align 4, !tbaa !5
  %4184 = add nsw i32 %4183, 1
  store i32 %4184, ptr @test_count, align 4, !tbaa !5
  %4185 = load ptr, ptr %87, align 8, !tbaa !9
  %4186 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4185, ptr noundef @.str.16)
  %4187 = icmp eq i32 %4186, -1
  br i1 %4187, label %4188, label %4241

4188:                                             ; preds = %4182
  br label %4189

4189:                                             ; preds = %4188
  br label %4190

4190:                                             ; preds = %4189
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %4191 = call ptr @__errno_location() #11
  %4192 = load i32, ptr %4191, align 4, !tbaa !5
  store i32 %4192, ptr %89, align 4, !tbaa !5
  %4193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4194 = call i32 @s2n_print_stacktrace(ptr noundef %4193)
  %4195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4196 = trunc i8 %4195 to i1
  br i1 %4196, label %4197, label %4219

4197:                                             ; preds = %4190
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = call i32 @fileno(ptr noundef %4198) #10
  %4200 = call i32 @isatty(i32 noundef %4199) #10
  %4201 = icmp ne i32 %4200, 0
  br i1 %4201, label %4202, label %4219

4202:                                             ; preds = %4197
  %4203 = load i32, ptr %89, align 4, !tbaa !5
  %4204 = call ptr @__errno_location() #11
  store i32 %4203, ptr %4204, align 4, !tbaa !5
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = load i32, ptr @test_count, align 4, !tbaa !5
  %4207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = call ptr @s2n_strerror(i32 noundef %4208, ptr noundef @.str.4)
  %4210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4211 = load i32, ptr %4210, align 4, !tbaa !5
  %4212 = call ptr @s2n_strerror_debug(i32 noundef %4211, ptr noundef @.str.4)
  %4213 = call ptr @__errno_location() #11
  %4214 = load i32, ptr %4213, align 4, !tbaa !5
  %4215 = call ptr @strerror(i32 noundef %4214) #10
  %4216 = call ptr @__errno_location() #11
  %4217 = load i32, ptr %4216, align 4, !tbaa !5
  %4218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4205, ptr noundef @.str.2, i32 noundef %4206, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4209, ptr noundef %4212, ptr noundef %4215, i32 noundef %4217) #10
  br label %4236

4219:                                             ; preds = %4197, %4190
  %4220 = load i32, ptr %89, align 4, !tbaa !5
  %4221 = call ptr @__errno_location() #11
  store i32 %4220, ptr %4221, align 4, !tbaa !5
  %4222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4223 = load i32, ptr @test_count, align 4, !tbaa !5
  %4224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4225 = load i32, ptr %4224, align 4, !tbaa !5
  %4226 = call ptr @s2n_strerror(i32 noundef %4225, ptr noundef @.str.4)
  %4227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4228 = load i32, ptr %4227, align 4, !tbaa !5
  %4229 = call ptr @s2n_strerror_debug(i32 noundef %4228, ptr noundef @.str.4)
  %4230 = call ptr @__errno_location() #11
  %4231 = load i32, ptr %4230, align 4, !tbaa !5
  %4232 = call ptr @strerror(i32 noundef %4231) #10
  %4233 = call ptr @__errno_location() #11
  %4234 = load i32, ptr %4233, align 4, !tbaa !5
  %4235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4222, ptr noundef @.str.5, i32 noundef %4223, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4226, ptr noundef %4229, ptr noundef %4232, i32 noundef %4234) #10
  br label %4236

4236:                                             ; preds = %4219, %4202
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %4237

4237:                                             ; preds = %4236
  br label %4238

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

4239:                                             ; No predecessors!
  br label %4240

4240:                                             ; preds = %4239
  br label %4241

4241:                                             ; preds = %4240, %4182
  br label %4242

4242:                                             ; preds = %4241
  br label %4243

4243:                                             ; preds = %4242
  br label %4244

4244:                                             ; preds = %4243
  %4245 = load i32, ptr @test_count, align 4, !tbaa !5
  %4246 = add nsw i32 %4245, 1
  store i32 %4246, ptr @test_count, align 4, !tbaa !5
  %4247 = load ptr, ptr %87, align 8, !tbaa !9
  %4248 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %4247, i32 noundef 10, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %4249 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  store i32 %4248, ptr %4249, align 4
  %4250 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  %4251 = load i32, ptr %4250, align 4
  %4252 = call zeroext i1 @s2n_result_is_ok(i32 %4251)
  br i1 %4252, label %4306, label %4253

4253:                                             ; preds = %4244
  br label %4254

4254:                                             ; preds = %4253
  br label %4255

4255:                                             ; preds = %4254
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %4256 = call ptr @__errno_location() #11
  %4257 = load i32, ptr %4256, align 4, !tbaa !5
  store i32 %4257, ptr %91, align 4, !tbaa !5
  %4258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4259 = call i32 @s2n_print_stacktrace(ptr noundef %4258)
  %4260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4261 = trunc i8 %4260 to i1
  br i1 %4261, label %4262, label %4284

4262:                                             ; preds = %4255
  %4263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4264 = call i32 @fileno(ptr noundef %4263) #10
  %4265 = call i32 @isatty(i32 noundef %4264) #10
  %4266 = icmp ne i32 %4265, 0
  br i1 %4266, label %4267, label %4284

4267:                                             ; preds = %4262
  %4268 = load i32, ptr %91, align 4, !tbaa !5
  %4269 = call ptr @__errno_location() #11
  store i32 %4268, ptr %4269, align 4, !tbaa !5
  %4270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4271 = load i32, ptr @test_count, align 4, !tbaa !5
  %4272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call ptr @s2n_strerror(i32 noundef %4273, ptr noundef @.str.4)
  %4275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call ptr @s2n_strerror_debug(i32 noundef %4276, ptr noundef @.str.4)
  %4278 = call ptr @__errno_location() #11
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @strerror(i32 noundef %4279) #10
  %4281 = call ptr @__errno_location() #11
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4270, ptr noundef @.str.2, i32 noundef %4271, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4274, ptr noundef %4277, ptr noundef %4280, i32 noundef %4282) #10
  br label %4301

4284:                                             ; preds = %4262, %4255
  %4285 = load i32, ptr %91, align 4, !tbaa !5
  %4286 = call ptr @__errno_location() #11
  store i32 %4285, ptr %4286, align 4, !tbaa !5
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = load i32, ptr @test_count, align 4, !tbaa !5
  %4289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror(i32 noundef %4290, ptr noundef @.str.4)
  %4292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @s2n_strerror_debug(i32 noundef %4293, ptr noundef @.str.4)
  %4295 = call ptr @__errno_location() #11
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @strerror(i32 noundef %4296) #10
  %4298 = call ptr @__errno_location() #11
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4287, ptr noundef @.str.5, i32 noundef %4288, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4291, ptr noundef %4294, ptr noundef %4297, i32 noundef %4299) #10
  br label %4301

4301:                                             ; preds = %4284, %4267
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %4302

4302:                                             ; preds = %4301
  br label %4303

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

4304:                                             ; No predecessors!
  br label %4305

4305:                                             ; preds = %4304
  br label %4306

4306:                                             ; preds = %4305, %4244
  br label %4307

4307:                                             ; preds = %4306
  br label %4308

4308:                                             ; preds = %4307
  br label %4309

4309:                                             ; preds = %4308
  %4310 = load i32, ptr @test_count, align 4, !tbaa !5
  %4311 = add nsw i32 %4310, 1
  store i32 %4311, ptr @test_count, align 4, !tbaa !5
  %4312 = load ptr, ptr %87, align 8, !tbaa !9
  %4313 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %4312)
  %4314 = icmp eq i32 %4313, -1
  br i1 %4314, label %4315, label %4368

4315:                                             ; preds = %4309
  br label %4316

4316:                                             ; preds = %4315
  br label %4317

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

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

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

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

4363:                                             ; preds = %4346, %4329
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %4364

4364:                                             ; preds = %4363
  br label %4365

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

4366:                                             ; No predecessors!
  br label %4367

4367:                                             ; preds = %4366
  br label %4368

4368:                                             ; preds = %4367, %4309
  br label %4369

4369:                                             ; preds = %4368
  br label %4370

4370:                                             ; preds = %4369
  call void @llvm.lifetime.start.p0(i64 20, ptr %93) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %93, ptr align 16 @__const.main.app_protocol_data, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 19, ptr %94) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %94, ptr align 16 @__const.main.other_app_protocol_data, i64 19, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %95) #10
  call void @llvm.memset.p0.i64(ptr align 8 %95, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %96) #10
  call void @llvm.memset.p0.i64(ptr align 8 %96, i8 0, i64 24, i1 false)
  br label %4371

4371:                                             ; preds = %4370
  %4372 = load i32, ptr @test_count, align 4, !tbaa !5
  %4373 = add nsw i32 %4372, 1
  store i32 %4373, ptr @test_count, align 4, !tbaa !5
  %4374 = getelementptr inbounds [20 x i8], ptr %93, i64 0, i64 0
  %4375 = call i32 @s2n_blob_init(ptr noundef %95, ptr noundef %4374, i32 noundef 20)
  %4376 = icmp eq i32 %4375, -1
  br i1 %4376, label %4377, label %4430

4377:                                             ; preds = %4371
  br label %4378

4378:                                             ; preds = %4377
  br label %4379

4379:                                             ; preds = %4378
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  %4380 = call ptr @__errno_location() #11
  %4381 = load i32, ptr %4380, align 4, !tbaa !5
  store i32 %4381, ptr %97, align 4, !tbaa !5
  %4382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4383 = call i32 @s2n_print_stacktrace(ptr noundef %4382)
  %4384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4385 = trunc i8 %4384 to i1
  br i1 %4385, label %4386, label %4408

4386:                                             ; preds = %4379
  %4387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4388 = call i32 @fileno(ptr noundef %4387) #10
  %4389 = call i32 @isatty(i32 noundef %4388) #10
  %4390 = icmp ne i32 %4389, 0
  br i1 %4390, label %4391, label %4408

4391:                                             ; preds = %4386
  %4392 = load i32, ptr %97, align 4, !tbaa !5
  %4393 = call ptr @__errno_location() #11
  store i32 %4392, ptr %4393, align 4, !tbaa !5
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = load i32, ptr @test_count, align 4, !tbaa !5
  %4396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = call ptr @s2n_strerror(i32 noundef %4397, ptr noundef @.str.4)
  %4399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  %4401 = call ptr @s2n_strerror_debug(i32 noundef %4400, ptr noundef @.str.4)
  %4402 = call ptr @__errno_location() #11
  %4403 = load i32, ptr %4402, align 4, !tbaa !5
  %4404 = call ptr @strerror(i32 noundef %4403) #10
  %4405 = call ptr @__errno_location() #11
  %4406 = load i32, ptr %4405, align 4, !tbaa !5
  %4407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4394, ptr noundef @.str.2, i32 noundef %4395, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4398, ptr noundef %4401, ptr noundef %4404, i32 noundef %4406) #10
  br label %4425

4408:                                             ; preds = %4386, %4379
  %4409 = load i32, ptr %97, align 4, !tbaa !5
  %4410 = call ptr @__errno_location() #11
  store i32 %4409, ptr %4410, align 4, !tbaa !5
  %4411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4412 = load i32, ptr @test_count, align 4, !tbaa !5
  %4413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4414 = load i32, ptr %4413, align 4, !tbaa !5
  %4415 = call ptr @s2n_strerror(i32 noundef %4414, ptr noundef @.str.4)
  %4416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4417 = load i32, ptr %4416, align 4, !tbaa !5
  %4418 = call ptr @s2n_strerror_debug(i32 noundef %4417, ptr noundef @.str.4)
  %4419 = call ptr @__errno_location() #11
  %4420 = load i32, ptr %4419, align 4, !tbaa !5
  %4421 = call ptr @strerror(i32 noundef %4420) #10
  %4422 = call ptr @__errno_location() #11
  %4423 = load i32, ptr %4422, align 4, !tbaa !5
  %4424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4411, ptr noundef @.str.5, i32 noundef %4412, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4415, ptr noundef %4418, ptr noundef %4421, i32 noundef %4423) #10
  br label %4425

4425:                                             ; preds = %4408, %4391
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  br label %4426

4426:                                             ; preds = %4425
  br label %4427

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

4428:                                             ; No predecessors!
  br label %4429

4429:                                             ; preds = %4428
  br label %4430

4430:                                             ; preds = %4429, %4371
  br label %4431

4431:                                             ; preds = %4430
  br label %4432

4432:                                             ; preds = %4431
  br label %4433

4433:                                             ; preds = %4432
  %4434 = load i32, ptr @test_count, align 4, !tbaa !5
  %4435 = add nsw i32 %4434, 1
  store i32 %4435, ptr @test_count, align 4, !tbaa !5
  %4436 = load ptr, ptr %87, align 8, !tbaa !9
  %4437 = call i32 @s2n_set_early_data_app_protocol(ptr noundef %4436, ptr noundef %96)
  %4438 = getelementptr inbounds %struct.s2n_result, ptr %98, i32 0, i32 0
  store i32 %4437, ptr %4438, align 4
  %4439 = getelementptr inbounds %struct.s2n_result, ptr %98, i32 0, i32 0
  %4440 = load i32, ptr %4439, align 4
  %4441 = call zeroext i1 @s2n_result_is_ok(i32 %4440)
  br i1 %4441, label %4495, label %4442

4442:                                             ; preds = %4433
  br label %4443

4443:                                             ; preds = %4442
  br label %4444

4444:                                             ; preds = %4443
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  %4445 = call ptr @__errno_location() #11
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  store i32 %4446, ptr %99, align 4, !tbaa !5
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = call i32 @s2n_print_stacktrace(ptr noundef %4447)
  %4449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4450 = trunc i8 %4449 to i1
  br i1 %4450, label %4451, label %4473

4451:                                             ; preds = %4444
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = call i32 @fileno(ptr noundef %4452) #10
  %4454 = call i32 @isatty(i32 noundef %4453) #10
  %4455 = icmp ne i32 %4454, 0
  br i1 %4455, label %4456, label %4473

4456:                                             ; preds = %4451
  %4457 = load i32, ptr %99, align 4, !tbaa !5
  %4458 = call ptr @__errno_location() #11
  store i32 %4457, ptr %4458, align 4, !tbaa !5
  %4459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4460 = load i32, ptr @test_count, align 4, !tbaa !5
  %4461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  %4463 = call ptr @s2n_strerror(i32 noundef %4462, ptr noundef @.str.4)
  %4464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  %4466 = call ptr @s2n_strerror_debug(i32 noundef %4465, ptr noundef @.str.4)
  %4467 = call ptr @__errno_location() #11
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  %4469 = call ptr @strerror(i32 noundef %4468) #10
  %4470 = call ptr @__errno_location() #11
  %4471 = load i32, ptr %4470, align 4, !tbaa !5
  %4472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4459, ptr noundef @.str.2, i32 noundef %4460, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4463, ptr noundef %4466, ptr noundef %4469, i32 noundef %4471) #10
  br label %4490

4473:                                             ; preds = %4451, %4444
  %4474 = load i32, ptr %99, align 4, !tbaa !5
  %4475 = call ptr @__errno_location() #11
  store i32 %4474, ptr %4475, align 4, !tbaa !5
  %4476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4477 = load i32, ptr @test_count, align 4, !tbaa !5
  %4478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4479 = load i32, ptr %4478, align 4, !tbaa !5
  %4480 = call ptr @s2n_strerror(i32 noundef %4479, ptr noundef @.str.4)
  %4481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4482 = load i32, ptr %4481, align 4, !tbaa !5
  %4483 = call ptr @s2n_strerror_debug(i32 noundef %4482, ptr noundef @.str.4)
  %4484 = call ptr @__errno_location() #11
  %4485 = load i32, ptr %4484, align 4, !tbaa !5
  %4486 = call ptr @strerror(i32 noundef %4485) #10
  %4487 = call ptr @__errno_location() #11
  %4488 = load i32, ptr %4487, align 4, !tbaa !5
  %4489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4476, ptr noundef @.str.5, i32 noundef %4477, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4480, ptr noundef %4483, ptr noundef %4486, i32 noundef %4488) #10
  br label %4490

4490:                                             ; preds = %4473, %4456
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %4491

4491:                                             ; preds = %4490
  br label %4492

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

4493:                                             ; No predecessors!
  br label %4494

4494:                                             ; preds = %4493
  br label %4495

4495:                                             ; preds = %4494, %4433
  br label %4496

4496:                                             ; preds = %4495
  br label %4497

4497:                                             ; preds = %4496
  br label %4498

4498:                                             ; preds = %4497
  %4499 = load i32, ptr @test_count, align 4, !tbaa !5
  %4500 = add nsw i32 %4499, 1
  store i32 %4500, ptr @test_count, align 4, !tbaa !5
  %4501 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %4502 = load ptr, ptr %87, align 8, !tbaa !9
  %4503 = call zeroext i1 %4501(ptr noundef %4502)
  br i1 %4503, label %4557, label %4504

4504:                                             ; preds = %4498
  br label %4505

4505:                                             ; preds = %4504
  br label %4506

4506:                                             ; preds = %4505
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %4507 = call ptr @__errno_location() #11
  %4508 = load i32, ptr %4507, align 4, !tbaa !5
  store i32 %4508, ptr %100, align 4, !tbaa !5
  %4509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4510 = call i32 @s2n_print_stacktrace(ptr noundef %4509)
  %4511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4512 = trunc i8 %4511 to i1
  br i1 %4512, label %4513, label %4535

4513:                                             ; preds = %4506
  %4514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4515 = call i32 @fileno(ptr noundef %4514) #10
  %4516 = call i32 @isatty(i32 noundef %4515) #10
  %4517 = icmp ne i32 %4516, 0
  br i1 %4517, label %4518, label %4535

4518:                                             ; preds = %4513
  %4519 = load i32, ptr %100, align 4, !tbaa !5
  %4520 = call ptr @__errno_location() #11
  store i32 %4519, ptr %4520, align 4, !tbaa !5
  %4521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4522 = load i32, ptr @test_count, align 4, !tbaa !5
  %4523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4524 = load i32, ptr %4523, align 4, !tbaa !5
  %4525 = call ptr @s2n_strerror(i32 noundef %4524, ptr noundef @.str.4)
  %4526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4527 = load i32, ptr %4526, align 4, !tbaa !5
  %4528 = call ptr @s2n_strerror_debug(i32 noundef %4527, ptr noundef @.str.4)
  %4529 = call ptr @__errno_location() #11
  %4530 = load i32, ptr %4529, align 4, !tbaa !5
  %4531 = call ptr @strerror(i32 noundef %4530) #10
  %4532 = call ptr @__errno_location() #11
  %4533 = load i32, ptr %4532, align 4, !tbaa !5
  %4534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4521, ptr noundef @.str.2, i32 noundef %4522, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 197, ptr noundef %4525, ptr noundef %4528, ptr noundef %4531, i32 noundef %4533) #10
  br label %4552

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

4552:                                             ; preds = %4535, %4518
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %4553

4553:                                             ; preds = %4552
  br label %4554

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

4555:                                             ; No predecessors!
  br label %4556

4556:                                             ; preds = %4555
  br label %4557

4557:                                             ; preds = %4556, %4498
  br label %4558

4558:                                             ; preds = %4557
  br label %4559

4559:                                             ; preds = %4558
  br label %4560

4560:                                             ; preds = %4559
  %4561 = load i32, ptr @test_count, align 4, !tbaa !5
  %4562 = add nsw i32 %4561, 1
  store i32 %4562, ptr @test_count, align 4, !tbaa !5
  %4563 = load ptr, ptr %87, align 8, !tbaa !9
  %4564 = call i32 @s2n_set_early_data_app_protocol(ptr noundef %4563, ptr noundef %95)
  %4565 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  store i32 %4564, ptr %4565, align 4
  %4566 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  %4567 = load i32, ptr %4566, align 4
  %4568 = call zeroext i1 @s2n_result_is_ok(i32 %4567)
  br i1 %4568, label %4622, label %4569

4569:                                             ; preds = %4560
  br label %4570

4570:                                             ; preds = %4569
  br label %4571

4571:                                             ; preds = %4570
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %4572 = call ptr @__errno_location() #11
  %4573 = load i32, ptr %4572, align 4, !tbaa !5
  store i32 %4573, ptr %102, align 4, !tbaa !5
  %4574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4575 = call i32 @s2n_print_stacktrace(ptr noundef %4574)
  %4576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4577 = trunc i8 %4576 to i1
  br i1 %4577, label %4578, label %4600

4578:                                             ; preds = %4571
  %4579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4580 = call i32 @fileno(ptr noundef %4579) #10
  %4581 = call i32 @isatty(i32 noundef %4580) #10
  %4582 = icmp ne i32 %4581, 0
  br i1 %4582, label %4583, label %4600

4583:                                             ; preds = %4578
  %4584 = load i32, ptr %102, align 4, !tbaa !5
  %4585 = call ptr @__errno_location() #11
  store i32 %4584, ptr %4585, align 4, !tbaa !5
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = load i32, ptr @test_count, align 4, !tbaa !5
  %4588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = call ptr @s2n_strerror(i32 noundef %4589, ptr noundef @.str.4)
  %4591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  %4593 = call ptr @s2n_strerror_debug(i32 noundef %4592, ptr noundef @.str.4)
  %4594 = call ptr @__errno_location() #11
  %4595 = load i32, ptr %4594, align 4, !tbaa !5
  %4596 = call ptr @strerror(i32 noundef %4595) #10
  %4597 = call ptr @__errno_location() #11
  %4598 = load i32, ptr %4597, align 4, !tbaa !5
  %4599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4586, ptr noundef @.str.2, i32 noundef %4587, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4590, ptr noundef %4593, ptr noundef %4596, i32 noundef %4598) #10
  br label %4617

4600:                                             ; preds = %4578, %4571
  %4601 = load i32, ptr %102, align 4, !tbaa !5
  %4602 = call ptr @__errno_location() #11
  store i32 %4601, ptr %4602, align 4, !tbaa !5
  %4603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4604 = load i32, ptr @test_count, align 4, !tbaa !5
  %4605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4606 = load i32, ptr %4605, align 4, !tbaa !5
  %4607 = call ptr @s2n_strerror(i32 noundef %4606, ptr noundef @.str.4)
  %4608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4609 = load i32, ptr %4608, align 4, !tbaa !5
  %4610 = call ptr @s2n_strerror_debug(i32 noundef %4609, ptr noundef @.str.4)
  %4611 = call ptr @__errno_location() #11
  %4612 = load i32, ptr %4611, align 4, !tbaa !5
  %4613 = call ptr @strerror(i32 noundef %4612) #10
  %4614 = call ptr @__errno_location() #11
  %4615 = load i32, ptr %4614, align 4, !tbaa !5
  %4616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4603, ptr noundef @.str.5, i32 noundef %4604, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4607, ptr noundef %4610, ptr noundef %4613, i32 noundef %4615) #10
  br label %4617

4617:                                             ; preds = %4600, %4583
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4618

4618:                                             ; preds = %4617
  br label %4619

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

4620:                                             ; No predecessors!
  br label %4621

4621:                                             ; preds = %4620
  br label %4622

4622:                                             ; preds = %4621, %4560
  br label %4623

4623:                                             ; preds = %4622
  br label %4624

4624:                                             ; preds = %4623
  br label %4625

4625:                                             ; preds = %4624
  %4626 = load i32, ptr @test_count, align 4, !tbaa !5
  %4627 = add nsw i32 %4626, 1
  store i32 %4627, ptr @test_count, align 4, !tbaa !5
  %4628 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %4629 = load ptr, ptr %87, align 8, !tbaa !9
  %4630 = call zeroext i1 %4628(ptr noundef %4629)
  br i1 %4630, label %4631, label %4684

4631:                                             ; preds = %4625
  br label %4632

4632:                                             ; preds = %4631
  br label %4633

4633:                                             ; preds = %4632
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  %4634 = call ptr @__errno_location() #11
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  store i32 %4635, ptr %103, align 4, !tbaa !5
  %4636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4637 = call i32 @s2n_print_stacktrace(ptr noundef %4636)
  %4638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4639 = trunc i8 %4638 to i1
  br i1 %4639, label %4640, label %4662

4640:                                             ; preds = %4633
  %4641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4642 = call i32 @fileno(ptr noundef %4641) #10
  %4643 = call i32 @isatty(i32 noundef %4642) #10
  %4644 = icmp ne i32 %4643, 0
  br i1 %4644, label %4645, label %4662

4645:                                             ; preds = %4640
  %4646 = load i32, ptr %103, align 4, !tbaa !5
  %4647 = call ptr @__errno_location() #11
  store i32 %4646, ptr %4647, align 4, !tbaa !5
  %4648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4649 = load i32, ptr @test_count, align 4, !tbaa !5
  %4650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4651 = load i32, ptr %4650, align 4, !tbaa !5
  %4652 = call ptr @s2n_strerror(i32 noundef %4651, ptr noundef @.str.4)
  %4653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4654 = load i32, ptr %4653, align 4, !tbaa !5
  %4655 = call ptr @s2n_strerror_debug(i32 noundef %4654, ptr noundef @.str.4)
  %4656 = call ptr @__errno_location() #11
  %4657 = load i32, ptr %4656, align 4, !tbaa !5
  %4658 = call ptr @strerror(i32 noundef %4657) #10
  %4659 = call ptr @__errno_location() #11
  %4660 = load i32, ptr %4659, align 4, !tbaa !5
  %4661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4648, ptr noundef @.str.2, i32 noundef %4649, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4652, ptr noundef %4655, ptr noundef %4658, i32 noundef %4660) #10
  br label %4679

4662:                                             ; preds = %4640, %4633
  %4663 = load i32, ptr %103, align 4, !tbaa !5
  %4664 = call ptr @__errno_location() #11
  store i32 %4663, ptr %4664, align 4, !tbaa !5
  %4665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4666 = load i32, ptr @test_count, align 4, !tbaa !5
  %4667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4668 = load i32, ptr %4667, align 4, !tbaa !5
  %4669 = call ptr @s2n_strerror(i32 noundef %4668, ptr noundef @.str.4)
  %4670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4671 = load i32, ptr %4670, align 4, !tbaa !5
  %4672 = call ptr @s2n_strerror_debug(i32 noundef %4671, ptr noundef @.str.4)
  %4673 = call ptr @__errno_location() #11
  %4674 = load i32, ptr %4673, align 4, !tbaa !5
  %4675 = call ptr @strerror(i32 noundef %4674) #10
  %4676 = call ptr @__errno_location() #11
  %4677 = load i32, ptr %4676, align 4, !tbaa !5
  %4678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4665, ptr noundef @.str.5, i32 noundef %4666, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4669, ptr noundef %4672, ptr noundef %4675, i32 noundef %4677) #10
  br label %4679

4679:                                             ; preds = %4662, %4645
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %4680

4680:                                             ; preds = %4679
  br label %4681

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

4682:                                             ; No predecessors!
  br label %4683

4683:                                             ; preds = %4682
  br label %4684

4684:                                             ; preds = %4683, %4625
  br label %4685

4685:                                             ; preds = %4684
  br label %4686

4686:                                             ; preds = %4685
  br label %4687

4687:                                             ; preds = %4686
  %4688 = load i32, ptr @test_count, align 4, !tbaa !5
  %4689 = add nsw i32 %4688, 1
  store i32 %4689, ptr @test_count, align 4, !tbaa !5
  %4690 = load ptr, ptr %87, align 8, !tbaa !9
  %4691 = getelementptr inbounds [19 x i8], ptr %94, i64 0, i64 0
  %4692 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %4690, ptr noundef %4691, i8 noundef zeroext 19)
  %4693 = icmp eq i32 %4692, -1
  br i1 %4693, label %4694, label %4747

4694:                                             ; preds = %4687
  br label %4695

4695:                                             ; preds = %4694
  br label %4696

4696:                                             ; preds = %4695
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  %4697 = call ptr @__errno_location() #11
  %4698 = load i32, ptr %4697, align 4, !tbaa !5
  store i32 %4698, ptr %104, align 4, !tbaa !5
  %4699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4700 = call i32 @s2n_print_stacktrace(ptr noundef %4699)
  %4701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4702 = trunc i8 %4701 to i1
  br i1 %4702, label %4703, label %4725

4703:                                             ; preds = %4696
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = call i32 @fileno(ptr noundef %4704) #10
  %4706 = call i32 @isatty(i32 noundef %4705) #10
  %4707 = icmp ne i32 %4706, 0
  br i1 %4707, label %4708, label %4725

4708:                                             ; preds = %4703
  %4709 = load i32, ptr %104, align 4, !tbaa !5
  %4710 = call ptr @__errno_location() #11
  store i32 %4709, ptr %4710, align 4, !tbaa !5
  %4711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4712 = load i32, ptr @test_count, align 4, !tbaa !5
  %4713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call ptr @s2n_strerror(i32 noundef %4714, ptr noundef @.str.4)
  %4716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call ptr @s2n_strerror_debug(i32 noundef %4717, ptr noundef @.str.4)
  %4719 = call ptr @__errno_location() #11
  %4720 = load i32, ptr %4719, align 4, !tbaa !5
  %4721 = call ptr @strerror(i32 noundef %4720) #10
  %4722 = call ptr @__errno_location() #11
  %4723 = load i32, ptr %4722, align 4, !tbaa !5
  %4724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4711, ptr noundef @.str.2, i32 noundef %4712, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 204, ptr noundef %4715, ptr noundef %4718, ptr noundef %4721, i32 noundef %4723) #10
  br label %4742

4725:                                             ; preds = %4703, %4696
  %4726 = load i32, ptr %104, align 4, !tbaa !5
  %4727 = call ptr @__errno_location() #11
  store i32 %4726, ptr %4727, align 4, !tbaa !5
  %4728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4729 = load i32, ptr @test_count, align 4, !tbaa !5
  %4730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4731 = load i32, ptr %4730, align 4, !tbaa !5
  %4732 = call ptr @s2n_strerror(i32 noundef %4731, ptr noundef @.str.4)
  %4733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4734 = load i32, ptr %4733, align 4, !tbaa !5
  %4735 = call ptr @s2n_strerror_debug(i32 noundef %4734, ptr noundef @.str.4)
  %4736 = call ptr @__errno_location() #11
  %4737 = load i32, ptr %4736, align 4, !tbaa !5
  %4738 = call ptr @strerror(i32 noundef %4737) #10
  %4739 = call ptr @__errno_location() #11
  %4740 = load i32, ptr %4739, align 4, !tbaa !5
  %4741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4728, ptr noundef @.str.5, i32 noundef %4729, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 204, ptr noundef %4732, ptr noundef %4735, ptr noundef %4738, i32 noundef %4740) #10
  br label %4742

4742:                                             ; preds = %4725, %4708
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %4743

4743:                                             ; preds = %4742
  br label %4744

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

4745:                                             ; No predecessors!
  br label %4746

4746:                                             ; preds = %4745
  br label %4747

4747:                                             ; preds = %4746, %4687
  br label %4748

4748:                                             ; preds = %4747
  br label %4749

4749:                                             ; preds = %4748
  br label %4750

4750:                                             ; preds = %4749
  %4751 = load i32, ptr @test_count, align 4, !tbaa !5
  %4752 = add nsw i32 %4751, 1
  store i32 %4752, ptr @test_count, align 4, !tbaa !5
  %4753 = load ptr, ptr %87, align 8, !tbaa !9
  %4754 = getelementptr inbounds [19 x i8], ptr %94, i64 0, i64 0
  %4755 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %4753, ptr noundef %4754, i8 noundef zeroext 19)
  %4756 = icmp eq i32 %4755, -1
  br i1 %4756, label %4757, label %4810

4757:                                             ; preds = %4750
  br label %4758

4758:                                             ; preds = %4757
  br label %4759

4759:                                             ; preds = %4758
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %4760 = call ptr @__errno_location() #11
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  store i32 %4761, ptr %105, align 4, !tbaa !5
  %4762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4763 = call i32 @s2n_print_stacktrace(ptr noundef %4762)
  %4764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4765 = trunc i8 %4764 to i1
  br i1 %4765, label %4766, label %4788

4766:                                             ; preds = %4759
  %4767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4768 = call i32 @fileno(ptr noundef %4767) #10
  %4769 = call i32 @isatty(i32 noundef %4768) #10
  %4770 = icmp ne i32 %4769, 0
  br i1 %4770, label %4771, label %4788

4771:                                             ; preds = %4766
  %4772 = load i32, ptr %105, align 4, !tbaa !5
  %4773 = call ptr @__errno_location() #11
  store i32 %4772, ptr %4773, align 4, !tbaa !5
  %4774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4775 = load i32, ptr @test_count, align 4, !tbaa !5
  %4776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4777 = load i32, ptr %4776, align 4, !tbaa !5
  %4778 = call ptr @s2n_strerror(i32 noundef %4777, ptr noundef @.str.4)
  %4779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4780 = load i32, ptr %4779, align 4, !tbaa !5
  %4781 = call ptr @s2n_strerror_debug(i32 noundef %4780, ptr noundef @.str.4)
  %4782 = call ptr @__errno_location() #11
  %4783 = load i32, ptr %4782, align 4, !tbaa !5
  %4784 = call ptr @strerror(i32 noundef %4783) #10
  %4785 = call ptr @__errno_location() #11
  %4786 = load i32, ptr %4785, align 4, !tbaa !5
  %4787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4774, ptr noundef @.str.2, i32 noundef %4775, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4778, ptr noundef %4781, ptr noundef %4784, i32 noundef %4786) #10
  br label %4805

4788:                                             ; preds = %4766, %4759
  %4789 = load i32, ptr %105, align 4, !tbaa !5
  %4790 = call ptr @__errno_location() #11
  store i32 %4789, ptr %4790, align 4, !tbaa !5
  %4791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4792 = load i32, ptr @test_count, align 4, !tbaa !5
  %4793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4794 = load i32, ptr %4793, align 4, !tbaa !5
  %4795 = call ptr @s2n_strerror(i32 noundef %4794, ptr noundef @.str.4)
  %4796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4797 = load i32, ptr %4796, align 4, !tbaa !5
  %4798 = call ptr @s2n_strerror_debug(i32 noundef %4797, ptr noundef @.str.4)
  %4799 = call ptr @__errno_location() #11
  %4800 = load i32, ptr %4799, align 4, !tbaa !5
  %4801 = call ptr @strerror(i32 noundef %4800) #10
  %4802 = call ptr @__errno_location() #11
  %4803 = load i32, ptr %4802, align 4, !tbaa !5
  %4804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4791, ptr noundef @.str.5, i32 noundef %4792, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4795, ptr noundef %4798, ptr noundef %4801, i32 noundef %4803) #10
  br label %4805

4805:                                             ; preds = %4788, %4771
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4806

4806:                                             ; preds = %4805
  br label %4807

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

4808:                                             ; No predecessors!
  br label %4809

4809:                                             ; preds = %4808
  br label %4810

4810:                                             ; preds = %4809, %4750
  br label %4811

4811:                                             ; preds = %4810
  br label %4812

4812:                                             ; preds = %4811
  br label %4813

4813:                                             ; preds = %4812
  %4814 = load i32, ptr @test_count, align 4, !tbaa !5
  %4815 = add nsw i32 %4814, 1
  store i32 %4815, ptr @test_count, align 4, !tbaa !5
  %4816 = load ptr, ptr %87, align 8, !tbaa !9
  %4817 = call i32 @s2n_set_early_data_app_protocol(ptr noundef %4816, ptr noundef %96)
  %4818 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  store i32 %4817, ptr %4818, align 4
  %4819 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  %4820 = load i32, ptr %4819, align 4
  %4821 = call zeroext i1 @s2n_result_is_ok(i32 %4820)
  br i1 %4821, label %4875, label %4822

4822:                                             ; preds = %4813
  br label %4823

4823:                                             ; preds = %4822
  br label %4824

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

4831:                                             ; preds = %4824
  %4832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4833 = call i32 @fileno(ptr noundef %4832) #10
  %4834 = call i32 @isatty(i32 noundef %4833) #10
  %4835 = icmp ne i32 %4834, 0
  br i1 %4835, label %4836, label %4853

4836:                                             ; preds = %4831
  %4837 = load i32, ptr %107, align 4, !tbaa !5
  %4838 = call ptr @__errno_location() #11
  store i32 %4837, ptr %4838, align 4, !tbaa !5
  %4839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4840 = load i32, ptr @test_count, align 4, !tbaa !5
  %4841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4842 = load i32, ptr %4841, align 4, !tbaa !5
  %4843 = call ptr @s2n_strerror(i32 noundef %4842, ptr noundef @.str.4)
  %4844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4845 = load i32, ptr %4844, align 4, !tbaa !5
  %4846 = call ptr @s2n_strerror_debug(i32 noundef %4845, ptr noundef @.str.4)
  %4847 = call ptr @__errno_location() #11
  %4848 = load i32, ptr %4847, align 4, !tbaa !5
  %4849 = call ptr @strerror(i32 noundef %4848) #10
  %4850 = call ptr @__errno_location() #11
  %4851 = load i32, ptr %4850, align 4, !tbaa !5
  %4852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4839, ptr noundef @.str.2, i32 noundef %4840, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4843, ptr noundef %4846, ptr noundef %4849, i32 noundef %4851) #10
  br label %4870

4853:                                             ; preds = %4831, %4824
  %4854 = load i32, ptr %107, align 4, !tbaa !5
  %4855 = call ptr @__errno_location() #11
  store i32 %4854, ptr %4855, align 4, !tbaa !5
  %4856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4857 = load i32, ptr @test_count, align 4, !tbaa !5
  %4858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4859 = load i32, ptr %4858, align 4, !tbaa !5
  %4860 = call ptr @s2n_strerror(i32 noundef %4859, ptr noundef @.str.4)
  %4861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4862 = load i32, ptr %4861, align 4, !tbaa !5
  %4863 = call ptr @s2n_strerror_debug(i32 noundef %4862, ptr noundef @.str.4)
  %4864 = call ptr @__errno_location() #11
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call ptr @strerror(i32 noundef %4865) #10
  %4867 = call ptr @__errno_location() #11
  %4868 = load i32, ptr %4867, align 4, !tbaa !5
  %4869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4856, ptr noundef @.str.5, i32 noundef %4857, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4860, ptr noundef %4863, ptr noundef %4866, i32 noundef %4868) #10
  br label %4870

4870:                                             ; preds = %4853, %4836
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %4871

4871:                                             ; preds = %4870
  br label %4872

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

4873:                                             ; No predecessors!
  br label %4874

4874:                                             ; preds = %4873
  br label %4875

4875:                                             ; preds = %4874, %4813
  br label %4876

4876:                                             ; preds = %4875
  br label %4877

4877:                                             ; preds = %4876
  br label %4878

4878:                                             ; preds = %4877
  %4879 = load i32, ptr @test_count, align 4, !tbaa !5
  %4880 = add nsw i32 %4879, 1
  store i32 %4880, ptr @test_count, align 4, !tbaa !5
  %4881 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %4882 = load ptr, ptr %87, align 8, !tbaa !9
  %4883 = call zeroext i1 %4881(ptr noundef %4882)
  br i1 %4883, label %4937, label %4884

4884:                                             ; preds = %4878
  br label %4885

4885:                                             ; preds = %4884
  br label %4886

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

4893:                                             ; preds = %4886
  %4894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4895 = call i32 @fileno(ptr noundef %4894) #10
  %4896 = call i32 @isatty(i32 noundef %4895) #10
  %4897 = icmp ne i32 %4896, 0
  br i1 %4897, label %4898, label %4915

4898:                                             ; preds = %4893
  %4899 = load i32, ptr %108, align 4, !tbaa !5
  %4900 = call ptr @__errno_location() #11
  store i32 %4899, ptr %4900, align 4, !tbaa !5
  %4901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4902 = load i32, ptr @test_count, align 4, !tbaa !5
  %4903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4904 = load i32, ptr %4903, align 4, !tbaa !5
  %4905 = call ptr @s2n_strerror(i32 noundef %4904, ptr noundef @.str.4)
  %4906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  %4908 = call ptr @s2n_strerror_debug(i32 noundef %4907, ptr noundef @.str.4)
  %4909 = call ptr @__errno_location() #11
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call ptr @strerror(i32 noundef %4910) #10
  %4912 = call ptr @__errno_location() #11
  %4913 = load i32, ptr %4912, align 4, !tbaa !5
  %4914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4901, ptr noundef @.str.2, i32 noundef %4902, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4905, ptr noundef %4908, ptr noundef %4911, i32 noundef %4913) #10
  br label %4932

4915:                                             ; preds = %4893, %4886
  %4916 = load i32, ptr %108, align 4, !tbaa !5
  %4917 = call ptr @__errno_location() #11
  store i32 %4916, ptr %4917, align 4, !tbaa !5
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = load i32, ptr @test_count, align 4, !tbaa !5
  %4920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4921 = load i32, ptr %4920, align 4, !tbaa !5
  %4922 = call ptr @s2n_strerror(i32 noundef %4921, ptr noundef @.str.4)
  %4923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror_debug(i32 noundef %4924, ptr noundef @.str.4)
  %4926 = call ptr @__errno_location() #11
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @strerror(i32 noundef %4927) #10
  %4929 = call ptr @__errno_location() #11
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4918, ptr noundef @.str.5, i32 noundef %4919, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4922, ptr noundef %4925, ptr noundef %4928, i32 noundef %4930) #10
  br label %4932

4932:                                             ; preds = %4915, %4898
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %4933

4933:                                             ; preds = %4932
  br label %4934

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

4935:                                             ; No predecessors!
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

4937:                                             ; preds = %4936, %4878
  br label %4938

4938:                                             ; preds = %4937
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

4940:                                             ; preds = %4939
  %4941 = load i32, ptr @test_count, align 4, !tbaa !5
  %4942 = add nsw i32 %4941, 1
  store i32 %4942, ptr @test_count, align 4, !tbaa !5
  %4943 = load ptr, ptr %87, align 8, !tbaa !9
  %4944 = call i32 @s2n_set_early_data_app_protocol(ptr noundef %4943, ptr noundef %95)
  %4945 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %4944, ptr %4945, align 4
  %4946 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  %4947 = load i32, ptr %4946, align 4
  %4948 = call zeroext i1 @s2n_result_is_ok(i32 %4947)
  br i1 %4948, label %5002, label %4949

4949:                                             ; preds = %4940
  br label %4950

4950:                                             ; preds = %4949
  br label %4951

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

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

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

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

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

4998:                                             ; preds = %4997
  br label %4999

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

5000:                                             ; No predecessors!
  br label %5001

5001:                                             ; preds = %5000
  br label %5002

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

5003:                                             ; preds = %5002
  br label %5004

5004:                                             ; preds = %5003
  br label %5005

5005:                                             ; preds = %5004
  %5006 = load i32, ptr @test_count, align 4, !tbaa !5
  %5007 = add nsw i32 %5006, 1
  store i32 %5007, ptr @test_count, align 4, !tbaa !5
  %5008 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %5009 = load ptr, ptr %87, align 8, !tbaa !9
  %5010 = call zeroext i1 %5008(ptr noundef %5009)
  br i1 %5010, label %5011, label %5064

5011:                                             ; preds = %5005
  br label %5012

5012:                                             ; preds = %5011
  br label %5013

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

5020:                                             ; preds = %5013
  %5021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5022 = call i32 @fileno(ptr noundef %5021) #10
  %5023 = call i32 @isatty(i32 noundef %5022) #10
  %5024 = icmp ne i32 %5023, 0
  br i1 %5024, label %5025, label %5042

5025:                                             ; preds = %5020
  %5026 = load i32, ptr %111, align 4, !tbaa !5
  %5027 = call ptr @__errno_location() #11
  store i32 %5026, ptr %5027, align 4, !tbaa !5
  %5028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5029 = load i32, ptr @test_count, align 4, !tbaa !5
  %5030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5031 = load i32, ptr %5030, align 4, !tbaa !5
  %5032 = call ptr @s2n_strerror(i32 noundef %5031, ptr noundef @.str.4)
  %5033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call ptr @s2n_strerror_debug(i32 noundef %5034, ptr noundef @.str.4)
  %5036 = call ptr @__errno_location() #11
  %5037 = load i32, ptr %5036, align 4, !tbaa !5
  %5038 = call ptr @strerror(i32 noundef %5037) #10
  %5039 = call ptr @__errno_location() #11
  %5040 = load i32, ptr %5039, align 4, !tbaa !5
  %5041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5028, ptr noundef @.str.2, i32 noundef %5029, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 214, ptr noundef %5032, ptr noundef %5035, ptr noundef %5038, i32 noundef %5040) #10
  br label %5059

5042:                                             ; preds = %5020, %5013
  %5043 = load i32, ptr %111, align 4, !tbaa !5
  %5044 = call ptr @__errno_location() #11
  store i32 %5043, ptr %5044, align 4, !tbaa !5
  %5045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5046 = load i32, ptr @test_count, align 4, !tbaa !5
  %5047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5048 = load i32, ptr %5047, align 4, !tbaa !5
  %5049 = call ptr @s2n_strerror(i32 noundef %5048, ptr noundef @.str.4)
  %5050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5051 = load i32, ptr %5050, align 4, !tbaa !5
  %5052 = call ptr @s2n_strerror_debug(i32 noundef %5051, ptr noundef @.str.4)
  %5053 = call ptr @__errno_location() #11
  %5054 = load i32, ptr %5053, align 4, !tbaa !5
  %5055 = call ptr @strerror(i32 noundef %5054) #10
  %5056 = call ptr @__errno_location() #11
  %5057 = load i32, ptr %5056, align 4, !tbaa !5
  %5058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5045, ptr noundef @.str.5, i32 noundef %5046, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 214, ptr noundef %5049, ptr noundef %5052, ptr noundef %5055, i32 noundef %5057) #10
  br label %5059

5059:                                             ; preds = %5042, %5025
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %5060

5060:                                             ; preds = %5059
  br label %5061

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

5062:                                             ; No predecessors!
  br label %5063

5063:                                             ; preds = %5062
  br label %5064

5064:                                             ; preds = %5063, %5005
  br label %5065

5065:                                             ; preds = %5064
  br label %5066

5066:                                             ; preds = %5065
  br label %5067

5067:                                             ; preds = %5066
  %5068 = load i32, ptr @test_count, align 4, !tbaa !5
  %5069 = add nsw i32 %5068, 1
  store i32 %5069, ptr @test_count, align 4, !tbaa !5
  %5070 = load ptr, ptr %87, align 8, !tbaa !9
  %5071 = getelementptr inbounds %struct.s2n_blob, ptr %95, i32 0, i32 0
  %5072 = load ptr, ptr %5071, align 8, !tbaa !44
  %5073 = getelementptr inbounds %struct.s2n_blob, ptr %95, i32 0, i32 1
  %5074 = load i32, ptr %5073, align 8, !tbaa !45
  %5075 = trunc i32 %5074 to i8
  %5076 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %5070, ptr noundef %5072, i8 noundef zeroext %5075)
  %5077 = icmp eq i32 %5076, -1
  br i1 %5077, label %5078, label %5131

5078:                                             ; preds = %5067
  br label %5079

5079:                                             ; preds = %5078
  br label %5080

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

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

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

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

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

5127:                                             ; preds = %5126
  br label %5128

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

5129:                                             ; No predecessors!
  br label %5130

5130:                                             ; preds = %5129
  br label %5131

5131:                                             ; preds = %5130, %5067
  br label %5132

5132:                                             ; preds = %5131
  br label %5133

5133:                                             ; preds = %5132
  br label %5134

5134:                                             ; preds = %5133
  %5135 = load i32, ptr @test_count, align 4, !tbaa !5
  %5136 = add nsw i32 %5135, 1
  store i32 %5136, ptr @test_count, align 4, !tbaa !5
  %5137 = load ptr, ptr %87, align 8, !tbaa !9
  %5138 = call i32 @s2n_set_early_data_app_protocol(ptr noundef %5137, ptr noundef %95)
  %5139 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  store i32 %5138, ptr %5139, align 4
  %5140 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  %5141 = load i32, ptr %5140, align 4
  %5142 = call zeroext i1 @s2n_result_is_ok(i32 %5141)
  br i1 %5142, label %5196, label %5143

5143:                                             ; preds = %5134
  br label %5144

5144:                                             ; preds = %5143
  br label %5145

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

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

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

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

5191:                                             ; preds = %5174, %5157
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %5192

5192:                                             ; preds = %5191
  br label %5193

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

5194:                                             ; No predecessors!
  br label %5195

5195:                                             ; preds = %5194
  br label %5196

5196:                                             ; preds = %5195, %5134
  br label %5197

5197:                                             ; preds = %5196
  br label %5198

5198:                                             ; preds = %5197
  br label %5199

5199:                                             ; preds = %5198
  %5200 = load i32, ptr @test_count, align 4, !tbaa !5
  %5201 = add nsw i32 %5200, 1
  store i32 %5201, ptr @test_count, align 4, !tbaa !5
  %5202 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 5), align 8, !tbaa !15
  %5203 = load ptr, ptr %87, align 8, !tbaa !9
  %5204 = call zeroext i1 %5202(ptr noundef %5203)
  br i1 %5204, label %5258, label %5205

5205:                                             ; preds = %5199
  br label %5206

5206:                                             ; preds = %5205
  br label %5207

5207:                                             ; preds = %5206
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #10
  %5208 = call ptr @__errno_location() #11
  %5209 = load i32, ptr %5208, align 4, !tbaa !5
  store i32 %5209, ptr %115, align 4, !tbaa !5
  %5210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5211 = call i32 @s2n_print_stacktrace(ptr noundef %5210)
  %5212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5213 = trunc i8 %5212 to i1
  br i1 %5213, label %5214, label %5236

5214:                                             ; preds = %5207
  %5215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5216 = call i32 @fileno(ptr noundef %5215) #10
  %5217 = call i32 @isatty(i32 noundef %5216) #10
  %5218 = icmp ne i32 %5217, 0
  br i1 %5218, label %5219, label %5236

5219:                                             ; preds = %5214
  %5220 = load i32, ptr %115, align 4, !tbaa !5
  %5221 = call ptr @__errno_location() #11
  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() #11
  %5231 = load i32, ptr %5230, align 4, !tbaa !5
  %5232 = call ptr @strerror(i32 noundef %5231) #10
  %5233 = call ptr @__errno_location() #11
  %5234 = load i32, ptr %5233, align 4, !tbaa !5
  %5235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5222, ptr noundef @.str.2, i32 noundef %5223, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 220, ptr noundef %5226, ptr noundef %5229, ptr noundef %5232, i32 noundef %5234) #10
  br label %5253

5236:                                             ; preds = %5214, %5207
  %5237 = load i32, ptr %115, align 4, !tbaa !5
  %5238 = call ptr @__errno_location() #11
  store i32 %5237, ptr %5238, align 4, !tbaa !5
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = load i32, ptr @test_count, align 4, !tbaa !5
  %5241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5242 = load i32, ptr %5241, align 4, !tbaa !5
  %5243 = call ptr @s2n_strerror(i32 noundef %5242, ptr noundef @.str.4)
  %5244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5245 = load i32, ptr %5244, align 4, !tbaa !5
  %5246 = call ptr @s2n_strerror_debug(i32 noundef %5245, ptr noundef @.str.4)
  %5247 = call ptr @__errno_location() #11
  %5248 = load i32, ptr %5247, align 4, !tbaa !5
  %5249 = call ptr @strerror(i32 noundef %5248) #10
  %5250 = call ptr @__errno_location() #11
  %5251 = load i32, ptr %5250, align 4, !tbaa !5
  %5252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5239, ptr noundef @.str.5, i32 noundef %5240, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 220, ptr noundef %5243, ptr noundef %5246, ptr noundef %5249, i32 noundef %5251) #10
  br label %5253

5253:                                             ; preds = %5236, %5219
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  br label %5254

5254:                                             ; preds = %5253
  br label %5255

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

5256:                                             ; No predecessors!
  br label %5257

5257:                                             ; preds = %5256
  br label %5258

5258:                                             ; preds = %5257, %5199
  br label %5259

5259:                                             ; preds = %5258
  br label %5260

5260:                                             ; preds = %5259
  br label %5261

5261:                                             ; preds = %5260
  %5262 = load i32, ptr @test_count, align 4, !tbaa !5
  %5263 = add nsw i32 %5262, 1
  store i32 %5263, ptr @test_count, align 4, !tbaa !5
  %5264 = load ptr, ptr %87, align 8, !tbaa !9
  %5265 = call i32 @s2n_connection_free(ptr noundef %5264)
  %5266 = icmp eq i32 %5265, -1
  br i1 %5266, label %5267, label %5320

5267:                                             ; preds = %5261
  br label %5268

5268:                                             ; preds = %5267
  br label %5269

5269:                                             ; preds = %5268
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %5270 = call ptr @__errno_location() #11
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  store i32 %5271, ptr %116, align 4, !tbaa !5
  %5272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5273 = call i32 @s2n_print_stacktrace(ptr noundef %5272)
  %5274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5275 = trunc i8 %5274 to i1
  br i1 %5275, label %5276, label %5298

5276:                                             ; preds = %5269
  %5277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5278 = call i32 @fileno(ptr noundef %5277) #10
  %5279 = call i32 @isatty(i32 noundef %5278) #10
  %5280 = icmp ne i32 %5279, 0
  br i1 %5280, label %5281, label %5298

5281:                                             ; preds = %5276
  %5282 = load i32, ptr %116, align 4, !tbaa !5
  %5283 = call ptr @__errno_location() #11
  store i32 %5282, ptr %5283, align 4, !tbaa !5
  %5284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5285 = load i32, ptr @test_count, align 4, !tbaa !5
  %5286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5287 = load i32, ptr %5286, align 4, !tbaa !5
  %5288 = call ptr @s2n_strerror(i32 noundef %5287, ptr noundef @.str.4)
  %5289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5290 = load i32, ptr %5289, align 4, !tbaa !5
  %5291 = call ptr @s2n_strerror_debug(i32 noundef %5290, ptr noundef @.str.4)
  %5292 = call ptr @__errno_location() #11
  %5293 = load i32, ptr %5292, align 4, !tbaa !5
  %5294 = call ptr @strerror(i32 noundef %5293) #10
  %5295 = call ptr @__errno_location() #11
  %5296 = load i32, ptr %5295, align 4, !tbaa !5
  %5297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5284, ptr noundef @.str.2, i32 noundef %5285, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 222, ptr noundef %5288, ptr noundef %5291, ptr noundef %5294, i32 noundef %5296) #10
  br label %5315

5298:                                             ; preds = %5276, %5269
  %5299 = load i32, ptr %116, align 4, !tbaa !5
  %5300 = call ptr @__errno_location() #11
  store i32 %5299, ptr %5300, align 4, !tbaa !5
  %5301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5302 = load i32, ptr @test_count, align 4, !tbaa !5
  %5303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5304 = load i32, ptr %5303, align 4, !tbaa !5
  %5305 = call ptr @s2n_strerror(i32 noundef %5304, ptr noundef @.str.4)
  %5306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5307 = load i32, ptr %5306, align 4, !tbaa !5
  %5308 = call ptr @s2n_strerror_debug(i32 noundef %5307, ptr noundef @.str.4)
  %5309 = call ptr @__errno_location() #11
  %5310 = load i32, ptr %5309, align 4, !tbaa !5
  %5311 = call ptr @strerror(i32 noundef %5310) #10
  %5312 = call ptr @__errno_location() #11
  %5313 = load i32, ptr %5312, align 4, !tbaa !5
  %5314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5301, ptr noundef @.str.5, i32 noundef %5302, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 222, ptr noundef %5305, ptr noundef %5308, ptr noundef %5311, i32 noundef %5313) #10
  br label %5315

5315:                                             ; preds = %5298, %5281
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %5316

5316:                                             ; preds = %5315
  br label %5317

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

5318:                                             ; No predecessors!
  br label %5319

5319:                                             ; preds = %5318
  br label %5320

5320:                                             ; preds = %5319, %5261
  br label %5321

5321:                                             ; preds = %5320
  br label %5322

5322:                                             ; preds = %5321
  call void @llvm.lifetime.end.p0(i64 24, ptr %96) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %95) #10
  call void @llvm.lifetime.end.p0(i64 19, ptr %94) #10
  call void @llvm.lifetime.end.p0(i64 20, ptr %93) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #10
  %5323 = call ptr @s2n_config_new()
  store ptr %5323, ptr %117, align 8, !tbaa !9
  br label %5324

5324:                                             ; preds = %5322
  %5325 = load i32, ptr @test_count, align 4, !tbaa !5
  %5326 = add nsw i32 %5325, 1
  store i32 %5326, ptr @test_count, align 4, !tbaa !5
  %5327 = load ptr, ptr %117, align 8, !tbaa !9
  %5328 = icmp eq ptr %5327, null
  br i1 %5328, label %5329, label %5382

5329:                                             ; preds = %5324
  br label %5330

5330:                                             ; preds = %5329
  br label %5331

5331:                                             ; preds = %5330
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %5332 = call ptr @__errno_location() #11
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  store i32 %5333, ptr %118, align 4, !tbaa !5
  %5334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5335 = call i32 @s2n_print_stacktrace(ptr noundef %5334)
  %5336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5337 = trunc i8 %5336 to i1
  br i1 %5337, label %5338, label %5360

5338:                                             ; preds = %5331
  %5339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5340 = call i32 @fileno(ptr noundef %5339) #10
  %5341 = call i32 @isatty(i32 noundef %5340) #10
  %5342 = icmp ne i32 %5341, 0
  br i1 %5342, label %5343, label %5360

5343:                                             ; preds = %5338
  %5344 = load i32, ptr %118, align 4, !tbaa !5
  %5345 = call ptr @__errno_location() #11
  store i32 %5344, ptr %5345, align 4, !tbaa !5
  %5346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5347 = load i32, ptr @test_count, align 4, !tbaa !5
  %5348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5349 = load i32, ptr %5348, align 4, !tbaa !5
  %5350 = call ptr @s2n_strerror(i32 noundef %5349, ptr noundef @.str.4)
  %5351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5352 = load i32, ptr %5351, align 4, !tbaa !5
  %5353 = call ptr @s2n_strerror_debug(i32 noundef %5352, ptr noundef @.str.4)
  %5354 = call ptr @__errno_location() #11
  %5355 = load i32, ptr %5354, align 4, !tbaa !5
  %5356 = call ptr @strerror(i32 noundef %5355) #10
  %5357 = call ptr @__errno_location() #11
  %5358 = load i32, ptr %5357, align 4, !tbaa !5
  %5359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5346, ptr noundef @.str.2, i32 noundef %5347, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 231, ptr noundef %5350, ptr noundef %5353, ptr noundef %5356, i32 noundef %5358) #10
  br label %5377

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

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

5378:                                             ; preds = %5377
  br label %5379

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

5380:                                             ; No predecessors!
  br label %5381

5381:                                             ; preds = %5380
  br label %5382

5382:                                             ; preds = %5381, %5324
  br label %5383

5383:                                             ; preds = %5382
  br label %5384

5384:                                             ; preds = %5383
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #10
  %5385 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5385, ptr %119, align 8, !tbaa !9
  br label %5386

5386:                                             ; preds = %5384
  %5387 = load i32, ptr @test_count, align 4, !tbaa !5
  %5388 = add nsw i32 %5387, 1
  store i32 %5388, ptr @test_count, align 4, !tbaa !5
  %5389 = load ptr, ptr %119, align 8, !tbaa !9
  %5390 = icmp eq ptr %5389, null
  br i1 %5390, label %5391, label %5444

5391:                                             ; preds = %5386
  br label %5392

5392:                                             ; preds = %5391
  br label %5393

5393:                                             ; preds = %5392
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %5394 = call ptr @__errno_location() #11
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  store i32 %5395, ptr %120, align 4, !tbaa !5
  %5396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5397 = call i32 @s2n_print_stacktrace(ptr noundef %5396)
  %5398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5399 = trunc i8 %5398 to i1
  br i1 %5399, label %5400, label %5422

5400:                                             ; preds = %5393
  %5401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5402 = call i32 @fileno(ptr noundef %5401) #10
  %5403 = call i32 @isatty(i32 noundef %5402) #10
  %5404 = icmp ne i32 %5403, 0
  br i1 %5404, label %5405, label %5422

5405:                                             ; preds = %5400
  %5406 = load i32, ptr %120, align 4, !tbaa !5
  %5407 = call ptr @__errno_location() #11
  store i32 %5406, ptr %5407, align 4, !tbaa !5
  %5408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5409 = load i32, ptr @test_count, align 4, !tbaa !5
  %5410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5411 = load i32, ptr %5410, align 4, !tbaa !5
  %5412 = call ptr @s2n_strerror(i32 noundef %5411, ptr noundef @.str.4)
  %5413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5414 = load i32, ptr %5413, align 4, !tbaa !5
  %5415 = call ptr @s2n_strerror_debug(i32 noundef %5414, ptr noundef @.str.4)
  %5416 = call ptr @__errno_location() #11
  %5417 = load i32, ptr %5416, align 4, !tbaa !5
  %5418 = call ptr @strerror(i32 noundef %5417) #10
  %5419 = call ptr @__errno_location() #11
  %5420 = load i32, ptr %5419, align 4, !tbaa !5
  %5421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5408, ptr noundef @.str.2, i32 noundef %5409, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 234, ptr noundef %5412, ptr noundef %5415, ptr noundef %5418, i32 noundef %5420) #10
  br label %5439

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

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

5440:                                             ; preds = %5439
  br label %5441

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

5442:                                             ; No predecessors!
  br label %5443

5443:                                             ; preds = %5442
  br label %5444

5444:                                             ; preds = %5443, %5386
  br label %5445

5445:                                             ; preds = %5444
  br label %5446

5446:                                             ; preds = %5445
  br label %5447

5447:                                             ; preds = %5446
  %5448 = load i32, ptr @test_count, align 4, !tbaa !5
  %5449 = add nsw i32 %5448, 1
  store i32 %5449, ptr @test_count, align 4, !tbaa !5
  %5450 = load ptr, ptr %119, align 8, !tbaa !9
  %5451 = load ptr, ptr %117, align 8, !tbaa !9
  %5452 = call i32 @s2n_connection_set_config(ptr noundef %5450, ptr noundef %5451)
  %5453 = icmp eq i32 %5452, -1
  br i1 %5453, label %5454, label %5507

5454:                                             ; preds = %5447
  br label %5455

5455:                                             ; preds = %5454
  br label %5456

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

5463:                                             ; preds = %5456
  %5464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5465 = call i32 @fileno(ptr noundef %5464) #10
  %5466 = call i32 @isatty(i32 noundef %5465) #10
  %5467 = icmp ne i32 %5466, 0
  br i1 %5467, label %5468, label %5485

5468:                                             ; preds = %5463
  %5469 = load i32, ptr %121, align 4, !tbaa !5
  %5470 = call ptr @__errno_location() #11
  store i32 %5469, ptr %5470, align 4, !tbaa !5
  %5471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5472 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5474, ptr noundef @.str.4)
  %5476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5477 = load i32, ptr %5476, align 4, !tbaa !5
  %5478 = call ptr @s2n_strerror_debug(i32 noundef %5477, ptr noundef @.str.4)
  %5479 = call ptr @__errno_location() #11
  %5480 = load i32, ptr %5479, align 4, !tbaa !5
  %5481 = call ptr @strerror(i32 noundef %5480) #10
  %5482 = call ptr @__errno_location() #11
  %5483 = load i32, ptr %5482, align 4, !tbaa !5
  %5484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5471, ptr noundef @.str.2, i32 noundef %5472, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 235, ptr noundef %5475, ptr noundef %5478, ptr noundef %5481, i32 noundef %5483) #10
  br label %5502

5485:                                             ; preds = %5463, %5456
  %5486 = load i32, ptr %121, align 4, !tbaa !5
  %5487 = call ptr @__errno_location() #11
  store i32 %5486, ptr %5487, align 4, !tbaa !5
  %5488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5489 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5491, ptr noundef @.str.4)
  %5493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  %5495 = call ptr @s2n_strerror_debug(i32 noundef %5494, ptr noundef @.str.4)
  %5496 = call ptr @__errno_location() #11
  %5497 = load i32, ptr %5496, align 4, !tbaa !5
  %5498 = call ptr @strerror(i32 noundef %5497) #10
  %5499 = call ptr @__errno_location() #11
  %5500 = load i32, ptr %5499, align 4, !tbaa !5
  %5501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5488, ptr noundef @.str.5, i32 noundef %5489, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 235, ptr noundef %5492, ptr noundef %5495, ptr noundef %5498, i32 noundef %5500) #10
  br label %5502

5502:                                             ; preds = %5485, %5468
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %5503

5503:                                             ; preds = %5502
  br label %5504

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

5505:                                             ; No predecessors!
  br label %5506

5506:                                             ; preds = %5505
  br label %5507

5507:                                             ; preds = %5506, %5447
  br label %5508

5508:                                             ; preds = %5507
  br label %5509

5509:                                             ; preds = %5508
  br label %5510

5510:                                             ; preds = %5509
  %5511 = load i32, ptr @test_count, align 4, !tbaa !5
  %5512 = add nsw i32 %5511, 1
  store i32 %5512, ptr @test_count, align 4, !tbaa !5
  %5513 = load ptr, ptr %119, align 8, !tbaa !9
  %5514 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %5513, i32 noundef 0, ptr noundef @s2n_tls13_aes_128_gcm_sha256)
  %5515 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %5514, ptr %5515, align 4
  %5516 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  %5517 = load i32, ptr %5516, align 4
  %5518 = call zeroext i1 @s2n_result_is_ok(i32 %5517)
  br i1 %5518, label %5572, label %5519

5519:                                             ; preds = %5510
  br label %5520

5520:                                             ; preds = %5519
  br label %5521

5521:                                             ; preds = %5520
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %5522 = call ptr @__errno_location() #11
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  store i32 %5523, ptr %123, align 4, !tbaa !5
  %5524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5525 = call i32 @s2n_print_stacktrace(ptr noundef %5524)
  %5526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5527 = trunc i8 %5526 to i1
  br i1 %5527, label %5528, label %5550

5528:                                             ; preds = %5521
  %5529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5530 = call i32 @fileno(ptr noundef %5529) #10
  %5531 = call i32 @isatty(i32 noundef %5530) #10
  %5532 = icmp ne i32 %5531, 0
  br i1 %5532, label %5533, label %5550

5533:                                             ; preds = %5528
  %5534 = load i32, ptr %123, align 4, !tbaa !5
  %5535 = call ptr @__errno_location() #11
  store i32 %5534, ptr %5535, align 4, !tbaa !5
  %5536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5537 = load i32, ptr @test_count, align 4, !tbaa !5
  %5538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5539 = load i32, ptr %5538, align 4, !tbaa !5
  %5540 = call ptr @s2n_strerror(i32 noundef %5539, ptr noundef @.str.4)
  %5541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5542 = load i32, ptr %5541, align 4, !tbaa !5
  %5543 = call ptr @s2n_strerror_debug(i32 noundef %5542, ptr noundef @.str.4)
  %5544 = call ptr @__errno_location() #11
  %5545 = load i32, ptr %5544, align 4, !tbaa !5
  %5546 = call ptr @strerror(i32 noundef %5545) #10
  %5547 = call ptr @__errno_location() #11
  %5548 = load i32, ptr %5547, align 4, !tbaa !5
  %5549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5536, ptr noundef @.str.2, i32 noundef %5537, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 236, ptr noundef %5540, ptr noundef %5543, ptr noundef %5546, i32 noundef %5548) #10
  br label %5567

5550:                                             ; preds = %5528, %5521
  %5551 = load i32, ptr %123, align 4, !tbaa !5
  %5552 = call ptr @__errno_location() #11
  store i32 %5551, ptr %5552, align 4, !tbaa !5
  %5553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5554 = load i32, ptr @test_count, align 4, !tbaa !5
  %5555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5556 = load i32, ptr %5555, align 4, !tbaa !5
  %5557 = call ptr @s2n_strerror(i32 noundef %5556, ptr noundef @.str.4)
  %5558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5559 = load i32, ptr %5558, align 4, !tbaa !5
  %5560 = call ptr @s2n_strerror_debug(i32 noundef %5559, ptr noundef @.str.4)
  %5561 = call ptr @__errno_location() #11
  %5562 = load i32, ptr %5561, align 4, !tbaa !5
  %5563 = call ptr @strerror(i32 noundef %5562) #10
  %5564 = call ptr @__errno_location() #11
  %5565 = load i32, ptr %5564, align 4, !tbaa !5
  %5566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5553, ptr noundef @.str.5, i32 noundef %5554, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 236, ptr noundef %5557, ptr noundef %5560, ptr noundef %5563, i32 noundef %5565) #10
  br label %5567

5567:                                             ; preds = %5550, %5533
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5568

5568:                                             ; preds = %5567
  br label %5569

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

5570:                                             ; No predecessors!
  br label %5571

5571:                                             ; preds = %5570
  br label %5572

5572:                                             ; preds = %5571, %5510
  br label %5573

5573:                                             ; preds = %5572
  br label %5574

5574:                                             ; preds = %5573
  br label %5575

5575:                                             ; preds = %5574
  %5576 = load i32, ptr @test_count, align 4, !tbaa !5
  %5577 = add nsw i32 %5576, 1
  store i32 %5577, ptr @test_count, align 4, !tbaa !5
  %5578 = load ptr, ptr %119, align 8, !tbaa !9
  %5579 = getelementptr inbounds %struct.s2n_connection, ptr %5578, i32 0, i32 52
  %5580 = getelementptr inbounds %struct.s2n_handshake, ptr %5579, i32 0, i32 6
  %5581 = load i32, ptr %5580, align 4, !tbaa !46
  %5582 = icmp eq i32 %5581, 0
  br i1 %5582, label %5636, label %5583

5583:                                             ; preds = %5575
  br label %5584

5584:                                             ; preds = %5583
  br label %5585

5585:                                             ; preds = %5584
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  %5586 = call ptr @__errno_location() #11
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  store i32 %5587, ptr %124, align 4, !tbaa !5
  %5588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5589 = call i32 @s2n_print_stacktrace(ptr noundef %5588)
  %5590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5591 = trunc i8 %5590 to i1
  br i1 %5591, label %5592, label %5614

5592:                                             ; preds = %5585
  %5593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5594 = call i32 @fileno(ptr noundef %5593) #10
  %5595 = call i32 @isatty(i32 noundef %5594) #10
  %5596 = icmp ne i32 %5595, 0
  br i1 %5596, label %5597, label %5614

5597:                                             ; preds = %5592
  %5598 = load i32, ptr %124, align 4, !tbaa !5
  %5599 = call ptr @__errno_location() #11
  store i32 %5598, ptr %5599, align 4, !tbaa !5
  %5600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5601 = load i32, ptr @test_count, align 4, !tbaa !5
  %5602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5603 = load i32, ptr %5602, align 4, !tbaa !5
  %5604 = call ptr @s2n_strerror(i32 noundef %5603, ptr noundef @.str.4)
  %5605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5606 = load i32, ptr %5605, align 4, !tbaa !5
  %5607 = call ptr @s2n_strerror_debug(i32 noundef %5606, ptr noundef @.str.4)
  %5608 = call ptr @__errno_location() #11
  %5609 = load i32, ptr %5608, align 4, !tbaa !5
  %5610 = call ptr @strerror(i32 noundef %5609) #10
  %5611 = call ptr @__errno_location() #11
  %5612 = load i32, ptr %5611, align 4, !tbaa !5
  %5613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5600, ptr noundef @.str.2, i32 noundef %5601, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5604, ptr noundef %5607, ptr noundef %5610, i32 noundef %5612) #10
  br label %5631

5614:                                             ; preds = %5592, %5585
  %5615 = load i32, ptr %124, align 4, !tbaa !5
  %5616 = call ptr @__errno_location() #11
  store i32 %5615, ptr %5616, align 4, !tbaa !5
  %5617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5618 = load i32, ptr @test_count, align 4, !tbaa !5
  %5619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5620 = load i32, ptr %5619, align 4, !tbaa !5
  %5621 = call ptr @s2n_strerror(i32 noundef %5620, ptr noundef @.str.4)
  %5622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5623 = load i32, ptr %5622, align 4, !tbaa !5
  %5624 = call ptr @s2n_strerror_debug(i32 noundef %5623, ptr noundef @.str.4)
  %5625 = call ptr @__errno_location() #11
  %5626 = load i32, ptr %5625, align 4, !tbaa !5
  %5627 = call ptr @strerror(i32 noundef %5626) #10
  %5628 = call ptr @__errno_location() #11
  %5629 = load i32, ptr %5628, align 4, !tbaa !5
  %5630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5617, ptr noundef @.str.5, i32 noundef %5618, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5621, ptr noundef %5624, ptr noundef %5627, i32 noundef %5629) #10
  br label %5631

5631:                                             ; preds = %5614, %5597
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %5632

5632:                                             ; preds = %5631
  br label %5633

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

5634:                                             ; No predecessors!
  br label %5635

5635:                                             ; preds = %5634
  br label %5636

5636:                                             ; preds = %5635, %5575
  br label %5637

5637:                                             ; preds = %5636
  br label %5638

5638:                                             ; preds = %5637
  %5639 = load ptr, ptr %119, align 8, !tbaa !9
  %5640 = getelementptr inbounds %struct.s2n_connection, ptr %5639, i32 0, i32 23
  store i8 33, ptr %5640, align 4, !tbaa !18
  %5641 = load ptr, ptr %117, align 8, !tbaa !9
  %5642 = load i32, ptr %5641, align 8
  %5643 = and i32 %5642, -3
  %5644 = or i32 %5643, 0
  store i32 %5644, ptr %5641, align 8
  br label %5645

5645:                                             ; preds = %5638
  %5646 = load i32, ptr @test_count, align 4, !tbaa !5
  %5647 = add nsw i32 %5646, 1
  store i32 %5647, ptr @test_count, align 4, !tbaa !5
  %5648 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 3), align 8, !tbaa !47
  %5649 = load ptr, ptr %119, align 8, !tbaa !9
  %5650 = call i32 %5648(ptr noundef %5649, ptr noundef null)
  %5651 = icmp eq i32 %5650, -1
  br i1 %5651, label %5652, label %5705

5652:                                             ; preds = %5645
  br label %5653

5653:                                             ; preds = %5652
  br label %5654

5654:                                             ; preds = %5653
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %5655 = call ptr @__errno_location() #11
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  store i32 %5656, ptr %125, align 4, !tbaa !5
  %5657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5658 = call i32 @s2n_print_stacktrace(ptr noundef %5657)
  %5659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5660 = trunc i8 %5659 to i1
  br i1 %5660, label %5661, label %5683

5661:                                             ; preds = %5654
  %5662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5663 = call i32 @fileno(ptr noundef %5662) #10
  %5664 = call i32 @isatty(i32 noundef %5663) #10
  %5665 = icmp ne i32 %5664, 0
  br i1 %5665, label %5666, label %5683

5666:                                             ; preds = %5661
  %5667 = load i32, ptr %125, align 4, !tbaa !5
  %5668 = call ptr @__errno_location() #11
  store i32 %5667, ptr %5668, align 4, !tbaa !5
  %5669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5670 = load i32, ptr @test_count, align 4, !tbaa !5
  %5671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5672 = load i32, ptr %5671, align 4, !tbaa !5
  %5673 = call ptr @s2n_strerror(i32 noundef %5672, ptr noundef @.str.4)
  %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_debug(i32 noundef %5675, ptr noundef @.str.4)
  %5677 = call ptr @__errno_location() #11
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  %5679 = call ptr @strerror(i32 noundef %5678) #10
  %5680 = call ptr @__errno_location() #11
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  %5682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5669, ptr noundef @.str.2, i32 noundef %5670, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5673, ptr noundef %5676, ptr noundef %5679, i32 noundef %5681) #10
  br label %5700

5683:                                             ; preds = %5661, %5654
  %5684 = load i32, ptr %125, align 4, !tbaa !5
  %5685 = call ptr @__errno_location() #11
  store i32 %5684, ptr %5685, align 4, !tbaa !5
  %5686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5687 = load i32, ptr @test_count, align 4, !tbaa !5
  %5688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5689 = load i32, ptr %5688, align 4, !tbaa !5
  %5690 = call ptr @s2n_strerror(i32 noundef %5689, ptr noundef @.str.4)
  %5691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5692 = load i32, ptr %5691, align 4, !tbaa !5
  %5693 = call ptr @s2n_strerror_debug(i32 noundef %5692, ptr noundef @.str.4)
  %5694 = call ptr @__errno_location() #11
  %5695 = load i32, ptr %5694, align 4, !tbaa !5
  %5696 = call ptr @strerror(i32 noundef %5695) #10
  %5697 = call ptr @__errno_location() #11
  %5698 = load i32, ptr %5697, align 4, !tbaa !5
  %5699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5686, ptr noundef @.str.5, i32 noundef %5687, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5690, ptr noundef %5693, ptr noundef %5696, i32 noundef %5698) #10
  br label %5700

5700:                                             ; preds = %5683, %5666
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %5701

5701:                                             ; preds = %5700
  br label %5702

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

5703:                                             ; No predecessors!
  br label %5704

5704:                                             ; preds = %5703
  br label %5705

5705:                                             ; preds = %5704, %5645
  br label %5706

5706:                                             ; preds = %5705
  br label %5707

5707:                                             ; preds = %5706
  br label %5708

5708:                                             ; preds = %5707
  %5709 = load i32, ptr @test_count, align 4, !tbaa !5
  %5710 = add nsw i32 %5709, 1
  store i32 %5710, ptr @test_count, align 4, !tbaa !5
  %5711 = load ptr, ptr %119, align 8, !tbaa !9
  %5712 = getelementptr inbounds %struct.s2n_connection, ptr %5711, i32 0, i32 52
  %5713 = getelementptr inbounds %struct.s2n_handshake, ptr %5712, i32 0, i32 6
  %5714 = load i32, ptr %5713, align 4, !tbaa !46
  %5715 = icmp eq i32 %5714, 0
  br i1 %5715, label %5769, label %5716

5716:                                             ; preds = %5708
  br label %5717

5717:                                             ; preds = %5716
  br label %5718

5718:                                             ; preds = %5717
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %5719 = call ptr @__errno_location() #11
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  store i32 %5720, ptr %126, align 4, !tbaa !5
  %5721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5722 = call i32 @s2n_print_stacktrace(ptr noundef %5721)
  %5723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5724 = trunc i8 %5723 to i1
  br i1 %5724, label %5725, label %5747

5725:                                             ; preds = %5718
  %5726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5727 = call i32 @fileno(ptr noundef %5726) #10
  %5728 = call i32 @isatty(i32 noundef %5727) #10
  %5729 = icmp ne i32 %5728, 0
  br i1 %5729, label %5730, label %5747

5730:                                             ; preds = %5725
  %5731 = load i32, ptr %126, align 4, !tbaa !5
  %5732 = call ptr @__errno_location() #11
  store i32 %5731, ptr %5732, align 4, !tbaa !5
  %5733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5734 = load i32, ptr @test_count, align 4, !tbaa !5
  %5735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5736 = load i32, ptr %5735, align 4, !tbaa !5
  %5737 = call ptr @s2n_strerror(i32 noundef %5736, ptr noundef @.str.4)
  %5738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5739 = load i32, ptr %5738, align 4, !tbaa !5
  %5740 = call ptr @s2n_strerror_debug(i32 noundef %5739, ptr noundef @.str.4)
  %5741 = call ptr @__errno_location() #11
  %5742 = load i32, ptr %5741, align 4, !tbaa !5
  %5743 = call ptr @strerror(i32 noundef %5742) #10
  %5744 = call ptr @__errno_location() #11
  %5745 = load i32, ptr %5744, align 4, !tbaa !5
  %5746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5733, ptr noundef @.str.2, i32 noundef %5734, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5737, ptr noundef %5740, ptr noundef %5743, i32 noundef %5745) #10
  br label %5764

5747:                                             ; preds = %5725, %5718
  %5748 = load i32, ptr %126, align 4, !tbaa !5
  %5749 = call ptr @__errno_location() #11
  store i32 %5748, ptr %5749, align 4, !tbaa !5
  %5750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5751 = load i32, ptr @test_count, align 4, !tbaa !5
  %5752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5753 = load i32, ptr %5752, align 4, !tbaa !5
  %5754 = call ptr @s2n_strerror(i32 noundef %5753, ptr noundef @.str.4)
  %5755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5756 = load i32, ptr %5755, align 4, !tbaa !5
  %5757 = call ptr @s2n_strerror_debug(i32 noundef %5756, ptr noundef @.str.4)
  %5758 = call ptr @__errno_location() #11
  %5759 = load i32, ptr %5758, align 4, !tbaa !5
  %5760 = call ptr @strerror(i32 noundef %5759) #10
  %5761 = call ptr @__errno_location() #11
  %5762 = load i32, ptr %5761, align 4, !tbaa !5
  %5763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5750, ptr noundef @.str.5, i32 noundef %5751, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5754, ptr noundef %5757, ptr noundef %5760, i32 noundef %5762) #10
  br label %5764

5764:                                             ; preds = %5747, %5730
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %5765

5765:                                             ; preds = %5764
  br label %5766

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

5767:                                             ; No predecessors!
  br label %5768

5768:                                             ; preds = %5767
  br label %5769

5769:                                             ; preds = %5768, %5708
  br label %5770

5770:                                             ; preds = %5769
  br label %5771

5771:                                             ; preds = %5770
  %5772 = load ptr, ptr %119, align 8, !tbaa !9
  %5773 = getelementptr inbounds %struct.s2n_connection, ptr %5772, i32 0, i32 23
  store i8 34, ptr %5773, align 4, !tbaa !18
  %5774 = load ptr, ptr %117, align 8, !tbaa !9
  %5775 = load i32, ptr %5774, align 8
  %5776 = and i32 %5775, -3
  %5777 = or i32 %5776, 2
  store i32 %5777, ptr %5774, align 8
  br label %5778

5778:                                             ; preds = %5771
  %5779 = load i32, ptr @test_count, align 4, !tbaa !5
  %5780 = add nsw i32 %5779, 1
  store i32 %5780, ptr @test_count, align 4, !tbaa !5
  %5781 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 3), align 8, !tbaa !47
  %5782 = load ptr, ptr %119, align 8, !tbaa !9
  %5783 = call i32 %5781(ptr noundef %5782, ptr noundef null)
  %5784 = icmp eq i32 %5783, -1
  br i1 %5784, label %5785, label %5838

5785:                                             ; preds = %5778
  br label %5786

5786:                                             ; preds = %5785
  br label %5787

5787:                                             ; preds = %5786
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %5788 = call ptr @__errno_location() #11
  %5789 = load i32, ptr %5788, align 4, !tbaa !5
  store i32 %5789, ptr %127, align 4, !tbaa !5
  %5790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5791 = call i32 @s2n_print_stacktrace(ptr noundef %5790)
  %5792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5793 = trunc i8 %5792 to i1
  br i1 %5793, label %5794, label %5816

5794:                                             ; preds = %5787
  %5795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5796 = call i32 @fileno(ptr noundef %5795) #10
  %5797 = call i32 @isatty(i32 noundef %5796) #10
  %5798 = icmp ne i32 %5797, 0
  br i1 %5798, label %5799, label %5816

5799:                                             ; preds = %5794
  %5800 = load i32, ptr %127, align 4, !tbaa !5
  %5801 = call ptr @__errno_location() #11
  store i32 %5800, ptr %5801, align 4, !tbaa !5
  %5802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5803 = load i32, ptr @test_count, align 4, !tbaa !5
  %5804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  %5806 = call ptr @s2n_strerror(i32 noundef %5805, ptr noundef @.str.4)
  %5807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5808 = load i32, ptr %5807, align 4, !tbaa !5
  %5809 = call ptr @s2n_strerror_debug(i32 noundef %5808, ptr noundef @.str.4)
  %5810 = call ptr @__errno_location() #11
  %5811 = load i32, ptr %5810, align 4, !tbaa !5
  %5812 = call ptr @strerror(i32 noundef %5811) #10
  %5813 = call ptr @__errno_location() #11
  %5814 = load i32, ptr %5813, align 4, !tbaa !5
  %5815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5802, ptr noundef @.str.2, i32 noundef %5803, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 249, ptr noundef %5806, ptr noundef %5809, ptr noundef %5812, i32 noundef %5814) #10
  br label %5833

5816:                                             ; preds = %5794, %5787
  %5817 = load i32, ptr %127, align 4, !tbaa !5
  %5818 = call ptr @__errno_location() #11
  store i32 %5817, ptr %5818, align 4, !tbaa !5
  %5819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5820 = load i32, ptr @test_count, align 4, !tbaa !5
  %5821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5822 = load i32, ptr %5821, align 4, !tbaa !5
  %5823 = call ptr @s2n_strerror(i32 noundef %5822, ptr noundef @.str.4)
  %5824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5825 = load i32, ptr %5824, align 4, !tbaa !5
  %5826 = call ptr @s2n_strerror_debug(i32 noundef %5825, ptr noundef @.str.4)
  %5827 = call ptr @__errno_location() #11
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  %5829 = call ptr @strerror(i32 noundef %5828) #10
  %5830 = call ptr @__errno_location() #11
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  %5832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5819, ptr noundef @.str.5, i32 noundef %5820, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 249, ptr noundef %5823, ptr noundef %5826, ptr noundef %5829, i32 noundef %5831) #10
  br label %5833

5833:                                             ; preds = %5816, %5799
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %5834

5834:                                             ; preds = %5833
  br label %5835

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

5836:                                             ; No predecessors!
  br label %5837

5837:                                             ; preds = %5836
  br label %5838

5838:                                             ; preds = %5837, %5778
  br label %5839

5839:                                             ; preds = %5838
  br label %5840

5840:                                             ; preds = %5839
  br label %5841

5841:                                             ; preds = %5840
  %5842 = load i32, ptr @test_count, align 4, !tbaa !5
  %5843 = add nsw i32 %5842, 1
  store i32 %5843, ptr @test_count, align 4, !tbaa !5
  %5844 = load ptr, ptr %119, align 8, !tbaa !9
  %5845 = getelementptr inbounds %struct.s2n_connection, ptr %5844, i32 0, i32 52
  %5846 = getelementptr inbounds %struct.s2n_handshake, ptr %5845, i32 0, i32 6
  %5847 = load i32, ptr %5846, align 4, !tbaa !46
  %5848 = icmp eq i32 %5847, 0
  br i1 %5848, label %5902, label %5849

5849:                                             ; preds = %5841
  br label %5850

5850:                                             ; preds = %5849
  br label %5851

5851:                                             ; preds = %5850
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  %5852 = call ptr @__errno_location() #11
  %5853 = load i32, ptr %5852, align 4, !tbaa !5
  store i32 %5853, ptr %128, align 4, !tbaa !5
  %5854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5855 = call i32 @s2n_print_stacktrace(ptr noundef %5854)
  %5856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5857 = trunc i8 %5856 to i1
  br i1 %5857, label %5858, label %5880

5858:                                             ; preds = %5851
  %5859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5860 = call i32 @fileno(ptr noundef %5859) #10
  %5861 = call i32 @isatty(i32 noundef %5860) #10
  %5862 = icmp ne i32 %5861, 0
  br i1 %5862, label %5863, label %5880

5863:                                             ; preds = %5858
  %5864 = load i32, ptr %128, align 4, !tbaa !5
  %5865 = call ptr @__errno_location() #11
  store i32 %5864, ptr %5865, align 4, !tbaa !5
  %5866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5867 = load i32, ptr @test_count, align 4, !tbaa !5
  %5868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5869 = load i32, ptr %5868, align 4, !tbaa !5
  %5870 = call ptr @s2n_strerror(i32 noundef %5869, ptr noundef @.str.4)
  %5871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5872 = load i32, ptr %5871, align 4, !tbaa !5
  %5873 = call ptr @s2n_strerror_debug(i32 noundef %5872, ptr noundef @.str.4)
  %5874 = call ptr @__errno_location() #11
  %5875 = load i32, ptr %5874, align 4, !tbaa !5
  %5876 = call ptr @strerror(i32 noundef %5875) #10
  %5877 = call ptr @__errno_location() #11
  %5878 = load i32, ptr %5877, align 4, !tbaa !5
  %5879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5866, ptr noundef @.str.2, i32 noundef %5867, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 250, ptr noundef %5870, ptr noundef %5873, ptr noundef %5876, i32 noundef %5878) #10
  br label %5897

5880:                                             ; preds = %5858, %5851
  %5881 = load i32, ptr %128, align 4, !tbaa !5
  %5882 = call ptr @__errno_location() #11
  store i32 %5881, ptr %5882, align 4, !tbaa !5
  %5883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5884 = load i32, ptr @test_count, align 4, !tbaa !5
  %5885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5886 = load i32, ptr %5885, align 4, !tbaa !5
  %5887 = call ptr @s2n_strerror(i32 noundef %5886, ptr noundef @.str.4)
  %5888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5889 = load i32, ptr %5888, align 4, !tbaa !5
  %5890 = call ptr @s2n_strerror_debug(i32 noundef %5889, ptr noundef @.str.4)
  %5891 = call ptr @__errno_location() #11
  %5892 = load i32, ptr %5891, align 4, !tbaa !5
  %5893 = call ptr @strerror(i32 noundef %5892) #10
  %5894 = call ptr @__errno_location() #11
  %5895 = load i32, ptr %5894, align 4, !tbaa !5
  %5896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5883, ptr noundef @.str.5, i32 noundef %5884, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 250, ptr noundef %5887, ptr noundef %5890, ptr noundef %5893, i32 noundef %5895) #10
  br label %5897

5897:                                             ; preds = %5880, %5863
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %5898

5898:                                             ; preds = %5897
  br label %5899

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

5900:                                             ; No predecessors!
  br label %5901

5901:                                             ; preds = %5900
  br label %5902

5902:                                             ; preds = %5901, %5841
  br label %5903

5903:                                             ; preds = %5902
  br label %5904

5904:                                             ; preds = %5903
  %5905 = load ptr, ptr %119, align 8, !tbaa !9
  %5906 = getelementptr inbounds %struct.s2n_connection, ptr %5905, i32 0, i32 23
  store i8 34, ptr %5906, align 4, !tbaa !18
  %5907 = load ptr, ptr %117, align 8, !tbaa !9
  %5908 = load i32, ptr %5907, align 8
  %5909 = and i32 %5908, -3
  %5910 = or i32 %5909, 0
  store i32 %5910, ptr %5907, align 8
  br label %5911

5911:                                             ; preds = %5904
  %5912 = load i32, ptr @test_count, align 4, !tbaa !5
  %5913 = add nsw i32 %5912, 1
  store i32 %5913, ptr @test_count, align 4, !tbaa !5
  %5914 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 3), align 8, !tbaa !47
  %5915 = load ptr, ptr %119, align 8, !tbaa !9
  %5916 = call i32 %5914(ptr noundef %5915, ptr noundef null)
  %5917 = icmp eq i32 %5916, -1
  br i1 %5917, label %5918, label %5971

5918:                                             ; preds = %5911
  br label %5919

5919:                                             ; preds = %5918
  br label %5920

5920:                                             ; preds = %5919
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %5921 = call ptr @__errno_location() #11
  %5922 = load i32, ptr %5921, align 4, !tbaa !5
  store i32 %5922, ptr %129, align 4, !tbaa !5
  %5923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5924 = call i32 @s2n_print_stacktrace(ptr noundef %5923)
  %5925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5926 = trunc i8 %5925 to i1
  br i1 %5926, label %5927, label %5949

5927:                                             ; preds = %5920
  %5928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5929 = call i32 @fileno(ptr noundef %5928) #10
  %5930 = call i32 @isatty(i32 noundef %5929) #10
  %5931 = icmp ne i32 %5930, 0
  br i1 %5931, label %5932, label %5949

5932:                                             ; preds = %5927
  %5933 = load i32, ptr %129, align 4, !tbaa !5
  %5934 = call ptr @__errno_location() #11
  store i32 %5933, ptr %5934, align 4, !tbaa !5
  %5935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5936 = load i32, ptr @test_count, align 4, !tbaa !5
  %5937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5938 = load i32, ptr %5937, align 4, !tbaa !5
  %5939 = call ptr @s2n_strerror(i32 noundef %5938, ptr noundef @.str.4)
  %5940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5941 = load i32, ptr %5940, align 4, !tbaa !5
  %5942 = call ptr @s2n_strerror_debug(i32 noundef %5941, ptr noundef @.str.4)
  %5943 = call ptr @__errno_location() #11
  %5944 = load i32, ptr %5943, align 4, !tbaa !5
  %5945 = call ptr @strerror(i32 noundef %5944) #10
  %5946 = call ptr @__errno_location() #11
  %5947 = load i32, ptr %5946, align 4, !tbaa !5
  %5948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5935, ptr noundef @.str.2, i32 noundef %5936, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 255, ptr noundef %5939, ptr noundef %5942, ptr noundef %5945, i32 noundef %5947) #10
  br label %5966

5949:                                             ; preds = %5927, %5920
  %5950 = load i32, ptr %129, align 4, !tbaa !5
  %5951 = call ptr @__errno_location() #11
  store i32 %5950, ptr %5951, align 4, !tbaa !5
  %5952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5953 = load i32, ptr @test_count, align 4, !tbaa !5
  %5954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5955 = load i32, ptr %5954, align 4, !tbaa !5
  %5956 = call ptr @s2n_strerror(i32 noundef %5955, ptr noundef @.str.4)
  %5957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5958 = load i32, ptr %5957, align 4, !tbaa !5
  %5959 = call ptr @s2n_strerror_debug(i32 noundef %5958, ptr noundef @.str.4)
  %5960 = call ptr @__errno_location() #11
  %5961 = load i32, ptr %5960, align 4, !tbaa !5
  %5962 = call ptr @strerror(i32 noundef %5961) #10
  %5963 = call ptr @__errno_location() #11
  %5964 = load i32, ptr %5963, align 4, !tbaa !5
  %5965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5952, ptr noundef @.str.5, i32 noundef %5953, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 255, ptr noundef %5956, ptr noundef %5959, ptr noundef %5962, i32 noundef %5964) #10
  br label %5966

5966:                                             ; preds = %5949, %5932
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %5967

5967:                                             ; preds = %5966
  br label %5968

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

5969:                                             ; No predecessors!
  br label %5970

5970:                                             ; preds = %5969
  br label %5971

5971:                                             ; preds = %5970, %5911
  br label %5972

5972:                                             ; preds = %5971
  br label %5973

5973:                                             ; preds = %5972
  br label %5974

5974:                                             ; preds = %5973
  %5975 = load i32, ptr @test_count, align 4, !tbaa !5
  %5976 = add nsw i32 %5975, 1
  store i32 %5976, ptr @test_count, align 4, !tbaa !5
  %5977 = load ptr, ptr %119, align 8, !tbaa !9
  %5978 = getelementptr inbounds %struct.s2n_connection, ptr %5977, i32 0, i32 52
  %5979 = getelementptr inbounds %struct.s2n_handshake, ptr %5978, i32 0, i32 6
  %5980 = load i32, ptr %5979, align 4, !tbaa !46
  %5981 = icmp eq i32 %5980, 160
  br i1 %5981, label %6035, label %5982

5982:                                             ; preds = %5974
  br label %5983

5983:                                             ; preds = %5982
  br label %5984

5984:                                             ; preds = %5983
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %5985 = call ptr @__errno_location() #11
  %5986 = load i32, ptr %5985, align 4, !tbaa !5
  store i32 %5986, ptr %130, align 4, !tbaa !5
  %5987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5988 = call i32 @s2n_print_stacktrace(ptr noundef %5987)
  %5989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5990 = trunc i8 %5989 to i1
  br i1 %5990, label %5991, label %6013

5991:                                             ; preds = %5984
  %5992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5993 = call i32 @fileno(ptr noundef %5992) #10
  %5994 = call i32 @isatty(i32 noundef %5993) #10
  %5995 = icmp ne i32 %5994, 0
  br i1 %5995, label %5996, label %6013

5996:                                             ; preds = %5991
  %5997 = load i32, ptr %130, align 4, !tbaa !5
  %5998 = call ptr @__errno_location() #11
  store i32 %5997, ptr %5998, align 4, !tbaa !5
  %5999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6000 = load i32, ptr @test_count, align 4, !tbaa !5
  %6001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6002 = load i32, ptr %6001, align 4, !tbaa !5
  %6003 = call ptr @s2n_strerror(i32 noundef %6002, ptr noundef @.str.4)
  %6004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6005 = load i32, ptr %6004, align 4, !tbaa !5
  %6006 = call ptr @s2n_strerror_debug(i32 noundef %6005, ptr noundef @.str.4)
  %6007 = call ptr @__errno_location() #11
  %6008 = load i32, ptr %6007, align 4, !tbaa !5
  %6009 = call ptr @strerror(i32 noundef %6008) #10
  %6010 = call ptr @__errno_location() #11
  %6011 = load i32, ptr %6010, align 4, !tbaa !5
  %6012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5999, ptr noundef @.str.2, i32 noundef %6000, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 256, ptr noundef %6003, ptr noundef %6006, ptr noundef %6009, i32 noundef %6011) #10
  br label %6030

6013:                                             ; preds = %5991, %5984
  %6014 = load i32, ptr %130, align 4, !tbaa !5
  %6015 = call ptr @__errno_location() #11
  store i32 %6014, ptr %6015, align 4, !tbaa !5
  %6016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6017 = load i32, ptr @test_count, align 4, !tbaa !5
  %6018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6019 = load i32, ptr %6018, align 4, !tbaa !5
  %6020 = call ptr @s2n_strerror(i32 noundef %6019, ptr noundef @.str.4)
  %6021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6022 = load i32, ptr %6021, align 4, !tbaa !5
  %6023 = call ptr @s2n_strerror_debug(i32 noundef %6022, ptr noundef @.str.4)
  %6024 = call ptr @__errno_location() #11
  %6025 = load i32, ptr %6024, align 4, !tbaa !5
  %6026 = call ptr @strerror(i32 noundef %6025) #10
  %6027 = call ptr @__errno_location() #11
  %6028 = load i32, ptr %6027, align 4, !tbaa !5
  %6029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6016, ptr noundef @.str.5, i32 noundef %6017, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 256, ptr noundef %6020, ptr noundef %6023, ptr noundef %6026, i32 noundef %6028) #10
  br label %6030

6030:                                             ; preds = %6013, %5996
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %6031

6031:                                             ; preds = %6030
  br label %6032

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

6033:                                             ; No predecessors!
  br label %6034

6034:                                             ; preds = %6033
  br label %6035

6035:                                             ; preds = %6034, %5974
  br label %6036

6036:                                             ; preds = %6035
  br label %6037

6037:                                             ; preds = %6036
  br label %6038

6038:                                             ; preds = %6037
  %6039 = load i32, ptr @test_count, align 4, !tbaa !5
  %6040 = add nsw i32 %6039, 1
  store i32 %6040, ptr @test_count, align 4, !tbaa !5
  %6041 = load ptr, ptr %117, align 8, !tbaa !9
  %6042 = call i32 @s2n_config_free(ptr noundef %6041)
  %6043 = icmp eq i32 %6042, -1
  br i1 %6043, label %6044, label %6097

6044:                                             ; preds = %6038
  br label %6045

6045:                                             ; preds = %6044
  br label %6046

6046:                                             ; preds = %6045
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %6047 = call ptr @__errno_location() #11
  %6048 = load i32, ptr %6047, align 4, !tbaa !5
  store i32 %6048, ptr %131, align 4, !tbaa !5
  %6049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6050 = call i32 @s2n_print_stacktrace(ptr noundef %6049)
  %6051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6052 = trunc i8 %6051 to i1
  br i1 %6052, label %6053, label %6075

6053:                                             ; preds = %6046
  %6054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6055 = call i32 @fileno(ptr noundef %6054) #10
  %6056 = call i32 @isatty(i32 noundef %6055) #10
  %6057 = icmp ne i32 %6056, 0
  br i1 %6057, label %6058, label %6075

6058:                                             ; preds = %6053
  %6059 = load i32, ptr %131, align 4, !tbaa !5
  %6060 = call ptr @__errno_location() #11
  store i32 %6059, ptr %6060, align 4, !tbaa !5
  %6061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6062 = load i32, ptr @test_count, align 4, !tbaa !5
  %6063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6064 = load i32, ptr %6063, align 4, !tbaa !5
  %6065 = call ptr @s2n_strerror(i32 noundef %6064, ptr noundef @.str.4)
  %6066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6067 = load i32, ptr %6066, align 4, !tbaa !5
  %6068 = call ptr @s2n_strerror_debug(i32 noundef %6067, ptr noundef @.str.4)
  %6069 = call ptr @__errno_location() #11
  %6070 = load i32, ptr %6069, align 4, !tbaa !5
  %6071 = call ptr @strerror(i32 noundef %6070) #10
  %6072 = call ptr @__errno_location() #11
  %6073 = load i32, ptr %6072, align 4, !tbaa !5
  %6074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6061, ptr noundef @.str.2, i32 noundef %6062, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 258, ptr noundef %6065, ptr noundef %6068, ptr noundef %6071, i32 noundef %6073) #10
  br label %6092

6075:                                             ; preds = %6053, %6046
  %6076 = load i32, ptr %131, align 4, !tbaa !5
  %6077 = call ptr @__errno_location() #11
  store i32 %6076, ptr %6077, align 4, !tbaa !5
  %6078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6079 = load i32, ptr @test_count, align 4, !tbaa !5
  %6080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6081 = load i32, ptr %6080, align 4, !tbaa !5
  %6082 = call ptr @s2n_strerror(i32 noundef %6081, ptr noundef @.str.4)
  %6083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6084 = load i32, ptr %6083, align 4, !tbaa !5
  %6085 = call ptr @s2n_strerror_debug(i32 noundef %6084, ptr noundef @.str.4)
  %6086 = call ptr @__errno_location() #11
  %6087 = load i32, ptr %6086, align 4, !tbaa !5
  %6088 = call ptr @strerror(i32 noundef %6087) #10
  %6089 = call ptr @__errno_location() #11
  %6090 = load i32, ptr %6089, align 4, !tbaa !5
  %6091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6078, ptr noundef @.str.5, i32 noundef %6079, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 258, ptr noundef %6082, ptr noundef %6085, ptr noundef %6088, i32 noundef %6090) #10
  br label %6092

6092:                                             ; preds = %6075, %6058
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %6093

6093:                                             ; preds = %6092
  br label %6094

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

6095:                                             ; No predecessors!
  br label %6096

6096:                                             ; preds = %6095
  br label %6097

6097:                                             ; preds = %6096, %6038
  br label %6098

6098:                                             ; preds = %6097
  br label %6099

6099:                                             ; preds = %6098
  br label %6100

6100:                                             ; preds = %6099
  %6101 = load i32, ptr @test_count, align 4, !tbaa !5
  %6102 = add nsw i32 %6101, 1
  store i32 %6102, ptr @test_count, align 4, !tbaa !5
  %6103 = load ptr, ptr %119, align 8, !tbaa !9
  %6104 = call i32 @s2n_connection_free(ptr noundef %6103)
  %6105 = icmp eq i32 %6104, -1
  br i1 %6105, label %6106, label %6159

6106:                                             ; preds = %6100
  br label %6107

6107:                                             ; preds = %6106
  br label %6108

6108:                                             ; preds = %6107
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %6109 = call ptr @__errno_location() #11
  %6110 = load i32, ptr %6109, align 4, !tbaa !5
  store i32 %6110, ptr %132, align 4, !tbaa !5
  %6111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6112 = call i32 @s2n_print_stacktrace(ptr noundef %6111)
  %6113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6114 = trunc i8 %6113 to i1
  br i1 %6114, label %6115, label %6137

6115:                                             ; preds = %6108
  %6116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6117 = call i32 @fileno(ptr noundef %6116) #10
  %6118 = call i32 @isatty(i32 noundef %6117) #10
  %6119 = icmp ne i32 %6118, 0
  br i1 %6119, label %6120, label %6137

6120:                                             ; preds = %6115
  %6121 = load i32, ptr %132, align 4, !tbaa !5
  %6122 = call ptr @__errno_location() #11
  store i32 %6121, ptr %6122, align 4, !tbaa !5
  %6123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6124 = load i32, ptr @test_count, align 4, !tbaa !5
  %6125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  %6127 = call ptr @s2n_strerror(i32 noundef %6126, ptr noundef @.str.4)
  %6128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call ptr @s2n_strerror_debug(i32 noundef %6129, ptr noundef @.str.4)
  %6131 = call ptr @__errno_location() #11
  %6132 = load i32, ptr %6131, align 4, !tbaa !5
  %6133 = call ptr @strerror(i32 noundef %6132) #10
  %6134 = call ptr @__errno_location() #11
  %6135 = load i32, ptr %6134, align 4, !tbaa !5
  %6136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6123, ptr noundef @.str.2, i32 noundef %6124, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 259, ptr noundef %6127, ptr noundef %6130, ptr noundef %6133, i32 noundef %6135) #10
  br label %6154

6137:                                             ; preds = %6115, %6108
  %6138 = load i32, ptr %132, align 4, !tbaa !5
  %6139 = call ptr @__errno_location() #11
  store i32 %6138, ptr %6139, align 4, !tbaa !5
  %6140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6141 = load i32, ptr @test_count, align 4, !tbaa !5
  %6142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6143 = load i32, ptr %6142, align 4, !tbaa !5
  %6144 = call ptr @s2n_strerror(i32 noundef %6143, ptr noundef @.str.4)
  %6145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6146 = load i32, ptr %6145, align 4, !tbaa !5
  %6147 = call ptr @s2n_strerror_debug(i32 noundef %6146, ptr noundef @.str.4)
  %6148 = call ptr @__errno_location() #11
  %6149 = load i32, ptr %6148, align 4, !tbaa !5
  %6150 = call ptr @strerror(i32 noundef %6149) #10
  %6151 = call ptr @__errno_location() #11
  %6152 = load i32, ptr %6151, align 4, !tbaa !5
  %6153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6140, ptr noundef @.str.5, i32 noundef %6141, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 259, ptr noundef %6144, ptr noundef %6147, ptr noundef %6150, i32 noundef %6152) #10
  br label %6154

6154:                                             ; preds = %6137, %6120
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %6155

6155:                                             ; preds = %6154
  br label %6156

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

6157:                                             ; No predecessors!
  br label %6158

6158:                                             ; preds = %6157
  br label %6159

6159:                                             ; preds = %6158, %6100
  br label %6160

6160:                                             ; preds = %6159
  br label %6161

6161:                                             ; preds = %6160
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #10
  %6162 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6162, ptr %133, align 8, !tbaa !9
  br label %6163

6163:                                             ; preds = %6161
  %6164 = load i32, ptr @test_count, align 4, !tbaa !5
  %6165 = add nsw i32 %6164, 1
  store i32 %6165, ptr @test_count, align 4, !tbaa !5
  %6166 = load ptr, ptr %133, align 8, !tbaa !9
  %6167 = icmp eq ptr %6166, null
  br i1 %6167, label %6168, label %6221

6168:                                             ; preds = %6163
  br label %6169

6169:                                             ; preds = %6168
  br label %6170

6170:                                             ; preds = %6169
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #10
  %6171 = call ptr @__errno_location() #11
  %6172 = load i32, ptr %6171, align 4, !tbaa !5
  store i32 %6172, ptr %134, align 4, !tbaa !5
  %6173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6174 = call i32 @s2n_print_stacktrace(ptr noundef %6173)
  %6175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6176 = trunc i8 %6175 to i1
  br i1 %6176, label %6177, label %6199

6177:                                             ; preds = %6170
  %6178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6179 = call i32 @fileno(ptr noundef %6178) #10
  %6180 = call i32 @isatty(i32 noundef %6179) #10
  %6181 = icmp ne i32 %6180, 0
  br i1 %6181, label %6182, label %6199

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

6199:                                             ; preds = %6177, %6170
  %6200 = load i32, ptr %134, align 4, !tbaa !5
  %6201 = call ptr @__errno_location() #11
  store i32 %6200, ptr %6201, align 4, !tbaa !5
  %6202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6203 = load i32, ptr @test_count, align 4, !tbaa !5
  %6204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6205 = load i32, ptr %6204, align 4, !tbaa !5
  %6206 = call ptr @s2n_strerror(i32 noundef %6205, ptr noundef @.str.4)
  %6207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6208 = load i32, ptr %6207, align 4, !tbaa !5
  %6209 = call ptr @s2n_strerror_debug(i32 noundef %6208, ptr noundef @.str.4)
  %6210 = call ptr @__errno_location() #11
  %6211 = load i32, ptr %6210, align 4, !tbaa !5
  %6212 = call ptr @strerror(i32 noundef %6211) #10
  %6213 = call ptr @__errno_location() #11
  %6214 = load i32, ptr %6213, align 4, !tbaa !5
  %6215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6202, ptr noundef @.str.5, i32 noundef %6203, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 266, ptr noundef %6206, ptr noundef %6209, ptr noundef %6212, i32 noundef %6214) #10
  br label %6216

6216:                                             ; preds = %6199, %6182
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #10
  br label %6217

6217:                                             ; preds = %6216
  br label %6218

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

6219:                                             ; No predecessors!
  br label %6220

6220:                                             ; preds = %6219
  br label %6221

6221:                                             ; preds = %6220, %6163
  br label %6222

6222:                                             ; preds = %6221
  br label %6223

6223:                                             ; preds = %6222
  %6224 = load ptr, ptr %133, align 8, !tbaa !9
  %6225 = getelementptr inbounds %struct.s2n_connection, ptr %6224, i32 0, i32 23
  store i8 34, ptr %6225, align 4, !tbaa !18
  %6226 = load ptr, ptr %133, align 8, !tbaa !9
  %6227 = getelementptr inbounds %struct.s2n_connection, ptr %6226, i32 0, i32 89
  store i32 0, ptr %6227, align 8, !tbaa !48
  %6228 = load ptr, ptr %133, align 8, !tbaa !9
  %6229 = getelementptr inbounds %struct.s2n_connection, ptr %6228, i32 0, i32 52
  %6230 = getelementptr inbounds %struct.s2n_handshake, ptr %6229, i32 0, i32 7
  store i32 0, ptr %6230, align 8, !tbaa !49
  br label %6231

6231:                                             ; preds = %6223
  %6232 = load i32, ptr @test_count, align 4, !tbaa !5
  %6233 = add nsw i32 %6232, 1
  store i32 %6233, ptr @test_count, align 4, !tbaa !5
  %6234 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 4), align 8, !tbaa !50
  %6235 = load ptr, ptr %133, align 8, !tbaa !9
  %6236 = call i32 %6234(ptr noundef %6235, ptr noundef null)
  %6237 = icmp eq i32 %6236, -1
  br i1 %6237, label %6238, label %6291

6238:                                             ; preds = %6231
  br label %6239

6239:                                             ; preds = %6238
  br label %6240

6240:                                             ; preds = %6239
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %6241 = call ptr @__errno_location() #11
  %6242 = load i32, ptr %6241, align 4, !tbaa !5
  store i32 %6242, ptr %135, align 4, !tbaa !5
  %6243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6244 = call i32 @s2n_print_stacktrace(ptr noundef %6243)
  %6245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6246 = trunc i8 %6245 to i1
  br i1 %6246, label %6247, label %6269

6247:                                             ; preds = %6240
  %6248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6249 = call i32 @fileno(ptr noundef %6248) #10
  %6250 = call i32 @isatty(i32 noundef %6249) #10
  %6251 = icmp ne i32 %6250, 0
  br i1 %6251, label %6252, label %6269

6252:                                             ; preds = %6247
  %6253 = load i32, ptr %135, align 4, !tbaa !5
  %6254 = call ptr @__errno_location() #11
  store i32 %6253, ptr %6254, align 4, !tbaa !5
  %6255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6256 = load i32, ptr @test_count, align 4, !tbaa !5
  %6257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6258 = load i32, ptr %6257, align 4, !tbaa !5
  %6259 = call ptr @s2n_strerror(i32 noundef %6258, ptr noundef @.str.4)
  %6260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6261 = load i32, ptr %6260, align 4, !tbaa !5
  %6262 = call ptr @s2n_strerror_debug(i32 noundef %6261, ptr noundef @.str.4)
  %6263 = call ptr @__errno_location() #11
  %6264 = load i32, ptr %6263, align 4, !tbaa !5
  %6265 = call ptr @strerror(i32 noundef %6264) #10
  %6266 = call ptr @__errno_location() #11
  %6267 = load i32, ptr %6266, align 4, !tbaa !5
  %6268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6255, ptr noundef @.str.2, i32 noundef %6256, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 272, ptr noundef %6259, ptr noundef %6262, ptr noundef %6265, i32 noundef %6267) #10
  br label %6286

6269:                                             ; preds = %6247, %6240
  %6270 = load i32, ptr %135, align 4, !tbaa !5
  %6271 = call ptr @__errno_location() #11
  store i32 %6270, ptr %6271, align 4, !tbaa !5
  %6272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6273 = load i32, ptr @test_count, align 4, !tbaa !5
  %6274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6275 = load i32, ptr %6274, align 4, !tbaa !5
  %6276 = call ptr @s2n_strerror(i32 noundef %6275, ptr noundef @.str.4)
  %6277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6278 = load i32, ptr %6277, align 4, !tbaa !5
  %6279 = call ptr @s2n_strerror_debug(i32 noundef %6278, ptr noundef @.str.4)
  %6280 = call ptr @__errno_location() #11
  %6281 = load i32, ptr %6280, align 4, !tbaa !5
  %6282 = call ptr @strerror(i32 noundef %6281) #10
  %6283 = call ptr @__errno_location() #11
  %6284 = load i32, ptr %6283, align 4, !tbaa !5
  %6285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6272, ptr noundef @.str.5, i32 noundef %6273, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 272, ptr noundef %6276, ptr noundef %6279, ptr noundef %6282, i32 noundef %6284) #10
  br label %6286

6286:                                             ; preds = %6269, %6252
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %6287

6287:                                             ; preds = %6286
  br label %6288

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

6289:                                             ; No predecessors!
  br label %6290

6290:                                             ; preds = %6289
  br label %6291

6291:                                             ; preds = %6290, %6231
  br label %6292

6292:                                             ; preds = %6291
  br label %6293

6293:                                             ; preds = %6292
  br label %6294

6294:                                             ; preds = %6293
  %6295 = load i32, ptr @test_count, align 4, !tbaa !5
  %6296 = add nsw i32 %6295, 1
  store i32 %6296, ptr @test_count, align 4, !tbaa !5
  %6297 = load ptr, ptr %133, align 8, !tbaa !9
  %6298 = getelementptr inbounds %struct.s2n_connection, ptr %6297, i32 0, i32 89
  %6299 = load i32, ptr %6298, align 8, !tbaa !48
  %6300 = icmp eq i32 %6299, 1
  br i1 %6300, label %6354, label %6301

6301:                                             ; preds = %6294
  br label %6302

6302:                                             ; preds = %6301
  br label %6303

6303:                                             ; preds = %6302
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %6304 = call ptr @__errno_location() #11
  %6305 = load i32, ptr %6304, align 4, !tbaa !5
  store i32 %6305, ptr %136, align 4, !tbaa !5
  %6306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6307 = call i32 @s2n_print_stacktrace(ptr noundef %6306)
  %6308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6309 = trunc i8 %6308 to i1
  br i1 %6309, label %6310, label %6332

6310:                                             ; preds = %6303
  %6311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6312 = call i32 @fileno(ptr noundef %6311) #10
  %6313 = call i32 @isatty(i32 noundef %6312) #10
  %6314 = icmp ne i32 %6313, 0
  br i1 %6314, label %6315, label %6332

6315:                                             ; preds = %6310
  %6316 = load i32, ptr %136, align 4, !tbaa !5
  %6317 = call ptr @__errno_location() #11
  store i32 %6316, ptr %6317, align 4, !tbaa !5
  %6318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6319 = load i32, ptr @test_count, align 4, !tbaa !5
  %6320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6321 = load i32, ptr %6320, align 4, !tbaa !5
  %6322 = call ptr @s2n_strerror(i32 noundef %6321, ptr noundef @.str.4)
  %6323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6324 = load i32, ptr %6323, align 4, !tbaa !5
  %6325 = call ptr @s2n_strerror_debug(i32 noundef %6324, ptr noundef @.str.4)
  %6326 = call ptr @__errno_location() #11
  %6327 = load i32, ptr %6326, align 4, !tbaa !5
  %6328 = call ptr @strerror(i32 noundef %6327) #10
  %6329 = call ptr @__errno_location() #11
  %6330 = load i32, ptr %6329, align 4, !tbaa !5
  %6331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6318, ptr noundef @.str.2, i32 noundef %6319, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 273, ptr noundef %6322, ptr noundef %6325, ptr noundef %6328, i32 noundef %6330) #10
  br label %6349

6332:                                             ; preds = %6310, %6303
  %6333 = load i32, ptr %136, align 4, !tbaa !5
  %6334 = call ptr @__errno_location() #11
  store i32 %6333, ptr %6334, align 4, !tbaa !5
  %6335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6336 = load i32, ptr @test_count, align 4, !tbaa !5
  %6337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6338 = load i32, ptr %6337, align 4, !tbaa !5
  %6339 = call ptr @s2n_strerror(i32 noundef %6338, ptr noundef @.str.4)
  %6340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6341 = load i32, ptr %6340, align 4, !tbaa !5
  %6342 = call ptr @s2n_strerror_debug(i32 noundef %6341, ptr noundef @.str.4)
  %6343 = call ptr @__errno_location() #11
  %6344 = load i32, ptr %6343, align 4, !tbaa !5
  %6345 = call ptr @strerror(i32 noundef %6344) #10
  %6346 = call ptr @__errno_location() #11
  %6347 = load i32, ptr %6346, align 4, !tbaa !5
  %6348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6335, ptr noundef @.str.5, i32 noundef %6336, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 273, ptr noundef %6339, ptr noundef %6342, ptr noundef %6345, i32 noundef %6347) #10
  br label %6349

6349:                                             ; preds = %6332, %6315
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %6350

6350:                                             ; preds = %6349
  br label %6351

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

6352:                                             ; No predecessors!
  br label %6353

6353:                                             ; preds = %6352
  br label %6354

6354:                                             ; preds = %6353, %6294
  br label %6355

6355:                                             ; preds = %6354
  br label %6356

6356:                                             ; preds = %6355
  %6357 = load ptr, ptr %133, align 8, !tbaa !9
  %6358 = getelementptr inbounds %struct.s2n_connection, ptr %6357, i32 0, i32 89
  store i32 0, ptr %6358, align 8, !tbaa !48
  %6359 = load ptr, ptr %133, align 8, !tbaa !9
  %6360 = getelementptr inbounds %struct.s2n_connection, ptr %6359, i32 0, i32 52
  %6361 = getelementptr inbounds %struct.s2n_handshake, ptr %6360, i32 0, i32 7
  store i32 1, ptr %6361, align 8, !tbaa !49
  br label %6362

6362:                                             ; preds = %6356
  br label %6363

6363:                                             ; preds = %6362
  br label %6364

6364:                                             ; preds = %6363
  %6365 = load i32, ptr @test_count, align 4, !tbaa !5
  %6366 = add nsw i32 %6365, 1
  store i32 %6366, ptr @test_count, align 4, !tbaa !5
  %6367 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_early_data_indication_extension, i32 0, i32 4), align 8, !tbaa !50
  %6368 = load ptr, ptr %133, align 8, !tbaa !9
  %6369 = call i32 %6367(ptr noundef %6368, ptr noundef null)
  %6370 = icmp eq i32 %6369, -1
  br i1 %6370, label %6424, label %6371

6371:                                             ; preds = %6364
  br label %6372

6372:                                             ; preds = %6371
  br label %6373

6373:                                             ; preds = %6372
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #10
  %6374 = call ptr @__errno_location() #11
  %6375 = load i32, ptr %6374, align 4, !tbaa !5
  store i32 %6375, ptr %137, align 4, !tbaa !5
  %6376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6377 = call i32 @s2n_print_stacktrace(ptr noundef %6376)
  %6378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6379 = trunc i8 %6378 to i1
  br i1 %6379, label %6380, label %6402

6380:                                             ; preds = %6373
  %6381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6382 = call i32 @fileno(ptr noundef %6381) #10
  %6383 = call i32 @isatty(i32 noundef %6382) #10
  %6384 = icmp ne i32 %6383, 0
  br i1 %6384, label %6385, label %6402

6385:                                             ; preds = %6380
  %6386 = load i32, ptr %137, align 4, !tbaa !5
  %6387 = call ptr @__errno_location() #11
  store i32 %6386, ptr %6387, align 4, !tbaa !5
  %6388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6389 = load i32, ptr @test_count, align 4, !tbaa !5
  %6390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call ptr @s2n_strerror(i32 noundef %6391, ptr noundef @.str.4)
  %6393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  %6395 = call ptr @s2n_strerror_debug(i32 noundef %6394, ptr noundef @.str.4)
  %6396 = call ptr @__errno_location() #11
  %6397 = load i32, ptr %6396, align 4, !tbaa !5
  %6398 = call ptr @strerror(i32 noundef %6397) #10
  %6399 = call ptr @__errno_location() #11
  %6400 = load i32, ptr %6399, align 4, !tbaa !5
  %6401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6388, ptr noundef @.str.2, i32 noundef %6389, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6392, ptr noundef %6395, ptr noundef %6398, i32 noundef %6400) #10
  br label %6419

6402:                                             ; preds = %6380, %6373
  %6403 = load i32, ptr %137, align 4, !tbaa !5
  %6404 = call ptr @__errno_location() #11
  store i32 %6403, ptr %6404, align 4, !tbaa !5
  %6405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6406 = load i32, ptr @test_count, align 4, !tbaa !5
  %6407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6408 = load i32, ptr %6407, align 4, !tbaa !5
  %6409 = call ptr @s2n_strerror(i32 noundef %6408, ptr noundef @.str.4)
  %6410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call ptr @s2n_strerror_debug(i32 noundef %6411, ptr noundef @.str.4)
  %6413 = call ptr @__errno_location() #11
  %6414 = load i32, ptr %6413, align 4, !tbaa !5
  %6415 = call ptr @strerror(i32 noundef %6414) #10
  %6416 = call ptr @__errno_location() #11
  %6417 = load i32, ptr %6416, align 4, !tbaa !5
  %6418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6405, ptr noundef @.str.5, i32 noundef %6406, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6409, ptr noundef %6412, ptr noundef %6415, i32 noundef %6417) #10
  br label %6419

6419:                                             ; preds = %6402, %6385
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  br label %6420

6420:                                             ; preds = %6419
  br label %6421

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

6422:                                             ; No predecessors!
  br label %6423

6423:                                             ; preds = %6422
  br label %6424

6424:                                             ; preds = %6423, %6364
  br label %6425

6425:                                             ; preds = %6424
  br label %6426

6426:                                             ; preds = %6425
  br label %6427

6427:                                             ; preds = %6426
  %6428 = load i32, ptr @test_count, align 4, !tbaa !5
  %6429 = add nsw i32 %6428, 1
  store i32 %6429, ptr @test_count, align 4, !tbaa !5
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = icmp eq i32 %6431, 335544394
  br i1 %6432, label %6486, label %6433

6433:                                             ; preds = %6427
  br label %6434

6434:                                             ; preds = %6433
  br label %6435

6435:                                             ; preds = %6434
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #10
  %6436 = call ptr @__errno_location() #11
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  store i32 %6437, ptr %138, align 4, !tbaa !5
  %6438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6439 = call i32 @s2n_print_stacktrace(ptr noundef %6438)
  %6440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6441 = trunc i8 %6440 to i1
  br i1 %6441, label %6442, label %6464

6442:                                             ; preds = %6435
  %6443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6444 = call i32 @fileno(ptr noundef %6443) #10
  %6445 = call i32 @isatty(i32 noundef %6444) #10
  %6446 = icmp ne i32 %6445, 0
  br i1 %6446, label %6447, label %6464

6447:                                             ; preds = %6442
  %6448 = load i32, ptr %138, align 4, !tbaa !5
  %6449 = call ptr @__errno_location() #11
  store i32 %6448, ptr %6449, align 4, !tbaa !5
  %6450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6451 = load i32, ptr @test_count, align 4, !tbaa !5
  %6452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6453 = load i32, ptr %6452, align 4, !tbaa !5
  %6454 = call ptr @s2n_strerror(i32 noundef %6453, ptr noundef @.str.4)
  %6455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6456 = load i32, ptr %6455, align 4, !tbaa !5
  %6457 = call ptr @s2n_strerror_debug(i32 noundef %6456, ptr noundef @.str.4)
  %6458 = call ptr @__errno_location() #11
  %6459 = load i32, ptr %6458, align 4, !tbaa !5
  %6460 = call ptr @strerror(i32 noundef %6459) #10
  %6461 = call ptr @__errno_location() #11
  %6462 = load i32, ptr %6461, align 4, !tbaa !5
  %6463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6450, ptr noundef @.str.2, i32 noundef %6451, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6454, ptr noundef %6457, ptr noundef %6460, i32 noundef %6462) #10
  br label %6481

6464:                                             ; preds = %6442, %6435
  %6465 = load i32, ptr %138, align 4, !tbaa !5
  %6466 = call ptr @__errno_location() #11
  store i32 %6465, ptr %6466, align 4, !tbaa !5
  %6467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6468 = load i32, ptr @test_count, align 4, !tbaa !5
  %6469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6470 = load i32, ptr %6469, align 4, !tbaa !5
  %6471 = call ptr @s2n_strerror(i32 noundef %6470, ptr noundef @.str.4)
  %6472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6473 = load i32, ptr %6472, align 4, !tbaa !5
  %6474 = call ptr @s2n_strerror_debug(i32 noundef %6473, ptr noundef @.str.4)
  %6475 = call ptr @__errno_location() #11
  %6476 = load i32, ptr %6475, align 4, !tbaa !5
  %6477 = call ptr @strerror(i32 noundef %6476) #10
  %6478 = call ptr @__errno_location() #11
  %6479 = load i32, ptr %6478, align 4, !tbaa !5
  %6480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6467, ptr noundef @.str.5, i32 noundef %6468, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6471, ptr noundef %6474, ptr noundef %6477, i32 noundef %6479) #10
  br label %6481

6481:                                             ; preds = %6464, %6447
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  br label %6482

6482:                                             ; preds = %6481
  br label %6483

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

6484:                                             ; No predecessors!
  br label %6485

6485:                                             ; preds = %6484
  br label %6486

6486:                                             ; preds = %6485, %6427
  br label %6487

6487:                                             ; preds = %6486
  br label %6488

6488:                                             ; preds = %6487
  br label %6489

6489:                                             ; preds = %6488
  %6490 = load i32, ptr @test_count, align 4, !tbaa !5
  %6491 = add nsw i32 %6490, 1
  store i32 %6491, ptr @test_count, align 4, !tbaa !5
  %6492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  %6494 = call ptr @s2n_strerror_debug(i32 noundef %6493, ptr noundef @.str.4)
  %6495 = icmp eq ptr %6494, null
  br i1 %6495, label %6496, label %6549

6496:                                             ; preds = %6489
  br label %6497

6497:                                             ; preds = %6496
  br label %6498

6498:                                             ; preds = %6497
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #10
  %6499 = call ptr @__errno_location() #11
  %6500 = load i32, ptr %6499, align 4, !tbaa !5
  store i32 %6500, ptr %139, align 4, !tbaa !5
  %6501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6502 = call i32 @s2n_print_stacktrace(ptr noundef %6501)
  %6503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6504 = trunc i8 %6503 to i1
  br i1 %6504, label %6505, label %6527

6505:                                             ; preds = %6498
  %6506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6507 = call i32 @fileno(ptr noundef %6506) #10
  %6508 = call i32 @isatty(i32 noundef %6507) #10
  %6509 = icmp ne i32 %6508, 0
  br i1 %6509, label %6510, label %6527

6510:                                             ; preds = %6505
  %6511 = load i32, ptr %139, align 4, !tbaa !5
  %6512 = call ptr @__errno_location() #11
  store i32 %6511, ptr %6512, align 4, !tbaa !5
  %6513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6514 = load i32, ptr @test_count, align 4, !tbaa !5
  %6515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6516 = load i32, ptr %6515, align 4, !tbaa !5
  %6517 = call ptr @s2n_strerror(i32 noundef %6516, ptr noundef @.str.4)
  %6518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6519 = load i32, ptr %6518, align 4, !tbaa !5
  %6520 = call ptr @s2n_strerror_debug(i32 noundef %6519, ptr noundef @.str.4)
  %6521 = call ptr @__errno_location() #11
  %6522 = load i32, ptr %6521, align 4, !tbaa !5
  %6523 = call ptr @strerror(i32 noundef %6522) #10
  %6524 = call ptr @__errno_location() #11
  %6525 = load i32, ptr %6524, align 4, !tbaa !5
  %6526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6513, ptr noundef @.str.2, i32 noundef %6514, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6517, ptr noundef %6520, ptr noundef %6523, i32 noundef %6525) #10
  br label %6544

6527:                                             ; preds = %6505, %6498
  %6528 = load i32, ptr %139, align 4, !tbaa !5
  %6529 = call ptr @__errno_location() #11
  store i32 %6528, ptr %6529, align 4, !tbaa !5
  %6530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6531 = load i32, ptr @test_count, align 4, !tbaa !5
  %6532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6533 = load i32, ptr %6532, align 4, !tbaa !5
  %6534 = call ptr @s2n_strerror(i32 noundef %6533, ptr noundef @.str.4)
  %6535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  %6537 = call ptr @s2n_strerror_debug(i32 noundef %6536, ptr noundef @.str.4)
  %6538 = call ptr @__errno_location() #11
  %6539 = load i32, ptr %6538, align 4, !tbaa !5
  %6540 = call ptr @strerror(i32 noundef %6539) #10
  %6541 = call ptr @__errno_location() #11
  %6542 = load i32, ptr %6541, align 4, !tbaa !5
  %6543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6530, ptr noundef @.str.5, i32 noundef %6531, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6534, ptr noundef %6537, ptr noundef %6540, i32 noundef %6542) #10
  br label %6544

6544:                                             ; preds = %6527, %6510
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #10
  br label %6545

6545:                                             ; preds = %6544
  br label %6546

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

6547:                                             ; No predecessors!
  br label %6548

6548:                                             ; preds = %6547
  br label %6549

6549:                                             ; preds = %6548, %6489
  br label %6550

6550:                                             ; preds = %6549
  br label %6551

6551:                                             ; preds = %6550
  br label %6552

6552:                                             ; preds = %6551
  br label %6553

6553:                                             ; preds = %6552
  br label %6554

6554:                                             ; preds = %6553
  %6555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6555, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6556 = call ptr @__errno_location() #11
  store i32 0, ptr %6556, align 4, !tbaa !5
  br label %6557

6557:                                             ; preds = %6554
  br label %6558

6558:                                             ; preds = %6557
  br label %6559

6559:                                             ; preds = %6558
  br label %6560

6560:                                             ; preds = %6559
  br label %6561

6561:                                             ; preds = %6560
  %6562 = load i32, ptr @test_count, align 4, !tbaa !5
  %6563 = add nsw i32 %6562, 1
  store i32 %6563, ptr @test_count, align 4, !tbaa !5
  %6564 = load ptr, ptr %133, align 8, !tbaa !9
  %6565 = call i32 @s2n_connection_free(ptr noundef %6564)
  %6566 = icmp eq i32 %6565, -1
  br i1 %6566, label %6567, label %6620

6567:                                             ; preds = %6561
  br label %6568

6568:                                             ; preds = %6567
  br label %6569

6569:                                             ; preds = %6568
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %6570 = call ptr @__errno_location() #11
  %6571 = load i32, ptr %6570, align 4, !tbaa !5
  store i32 %6571, ptr %140, align 4, !tbaa !5
  %6572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6573 = call i32 @s2n_print_stacktrace(ptr noundef %6572)
  %6574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6575 = trunc i8 %6574 to i1
  br i1 %6575, label %6576, label %6598

6576:                                             ; preds = %6569
  %6577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6578 = call i32 @fileno(ptr noundef %6577) #10
  %6579 = call i32 @isatty(i32 noundef %6578) #10
  %6580 = icmp ne i32 %6579, 0
  br i1 %6580, label %6581, label %6598

6581:                                             ; preds = %6576
  %6582 = load i32, ptr %140, align 4, !tbaa !5
  %6583 = call ptr @__errno_location() #11
  store i32 %6582, ptr %6583, align 4, !tbaa !5
  %6584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6585 = load i32, ptr @test_count, align 4, !tbaa !5
  %6586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6587 = load i32, ptr %6586, align 4, !tbaa !5
  %6588 = call ptr @s2n_strerror(i32 noundef %6587, ptr noundef @.str.4)
  %6589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6590 = load i32, ptr %6589, align 4, !tbaa !5
  %6591 = call ptr @s2n_strerror_debug(i32 noundef %6590, ptr noundef @.str.4)
  %6592 = call ptr @__errno_location() #11
  %6593 = load i32, ptr %6592, align 4, !tbaa !5
  %6594 = call ptr @strerror(i32 noundef %6593) #10
  %6595 = call ptr @__errno_location() #11
  %6596 = load i32, ptr %6595, align 4, !tbaa !5
  %6597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6584, ptr noundef @.str.2, i32 noundef %6585, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 286, ptr noundef %6588, ptr noundef %6591, ptr noundef %6594, i32 noundef %6596) #10
  br label %6615

6598:                                             ; preds = %6576, %6569
  %6599 = load i32, ptr %140, align 4, !tbaa !5
  %6600 = call ptr @__errno_location() #11
  store i32 %6599, ptr %6600, align 4, !tbaa !5
  %6601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6602 = load i32, ptr @test_count, align 4, !tbaa !5
  %6603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6604 = load i32, ptr %6603, align 4, !tbaa !5
  %6605 = call ptr @s2n_strerror(i32 noundef %6604, ptr noundef @.str.4)
  %6606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6607 = load i32, ptr %6606, align 4, !tbaa !5
  %6608 = call ptr @s2n_strerror_debug(i32 noundef %6607, ptr noundef @.str.4)
  %6609 = call ptr @__errno_location() #11
  %6610 = load i32, ptr %6609, align 4, !tbaa !5
  %6611 = call ptr @strerror(i32 noundef %6610) #10
  %6612 = call ptr @__errno_location() #11
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  %6614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6601, ptr noundef @.str.5, i32 noundef %6602, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 286, ptr noundef %6605, ptr noundef %6608, ptr noundef %6611, i32 noundef %6613) #10
  br label %6615

6615:                                             ; preds = %6598, %6581
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  br label %6616

6616:                                             ; preds = %6615
  br label %6617

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

6618:                                             ; No predecessors!
  br label %6619

6619:                                             ; preds = %6618
  br label %6620

6620:                                             ; preds = %6619, %6561
  br label %6621

6621:                                             ; preds = %6620
  br label %6622

6622:                                             ; preds = %6621
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #10
  %6623 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6623, ptr %141, align 8, !tbaa !9
  br label %6624

6624:                                             ; preds = %6622
  %6625 = load i32, ptr @test_count, align 4, !tbaa !5
  %6626 = add nsw i32 %6625, 1
  store i32 %6626, ptr @test_count, align 4, !tbaa !5
  %6627 = load ptr, ptr %141, align 8, !tbaa !9
  %6628 = icmp eq ptr %6627, null
  br i1 %6628, label %6629, label %6682

6629:                                             ; preds = %6624
  br label %6630

6630:                                             ; preds = %6629
  br label %6631

6631:                                             ; preds = %6630
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %6632 = call ptr @__errno_location() #11
  %6633 = load i32, ptr %6632, align 4, !tbaa !5
  store i32 %6633, ptr %142, align 4, !tbaa !5
  %6634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6635 = call i32 @s2n_print_stacktrace(ptr noundef %6634)
  %6636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6637 = trunc i8 %6636 to i1
  br i1 %6637, label %6638, label %6660

6638:                                             ; preds = %6631
  %6639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6640 = call i32 @fileno(ptr noundef %6639) #10
  %6641 = call i32 @isatty(i32 noundef %6640) #10
  %6642 = icmp ne i32 %6641, 0
  br i1 %6642, label %6643, label %6660

6643:                                             ; preds = %6638
  %6644 = load i32, ptr %142, align 4, !tbaa !5
  %6645 = call ptr @__errno_location() #11
  store i32 %6644, ptr %6645, align 4, !tbaa !5
  %6646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6647 = load i32, ptr @test_count, align 4, !tbaa !5
  %6648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6649 = load i32, ptr %6648, align 4, !tbaa !5
  %6650 = call ptr @s2n_strerror(i32 noundef %6649, ptr noundef @.str.4)
  %6651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6652 = load i32, ptr %6651, align 4, !tbaa !5
  %6653 = call ptr @s2n_strerror_debug(i32 noundef %6652, ptr noundef @.str.4)
  %6654 = call ptr @__errno_location() #11
  %6655 = load i32, ptr %6654, align 4, !tbaa !5
  %6656 = call ptr @strerror(i32 noundef %6655) #10
  %6657 = call ptr @__errno_location() #11
  %6658 = load i32, ptr %6657, align 4, !tbaa !5
  %6659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6646, ptr noundef @.str.2, i32 noundef %6647, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6650, ptr noundef %6653, ptr noundef %6656, i32 noundef %6658) #10
  br label %6677

6660:                                             ; preds = %6638, %6631
  %6661 = load i32, ptr %142, align 4, !tbaa !5
  %6662 = call ptr @__errno_location() #11
  store i32 %6661, ptr %6662, align 4, !tbaa !5
  %6663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6664 = load i32, ptr @test_count, align 4, !tbaa !5
  %6665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6666 = load i32, ptr %6665, align 4, !tbaa !5
  %6667 = call ptr @s2n_strerror(i32 noundef %6666, ptr noundef @.str.4)
  %6668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6669 = load i32, ptr %6668, align 4, !tbaa !5
  %6670 = call ptr @s2n_strerror_debug(i32 noundef %6669, ptr noundef @.str.4)
  %6671 = call ptr @__errno_location() #11
  %6672 = load i32, ptr %6671, align 4, !tbaa !5
  %6673 = call ptr @strerror(i32 noundef %6672) #10
  %6674 = call ptr @__errno_location() #11
  %6675 = load i32, ptr %6674, align 4, !tbaa !5
  %6676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6663, ptr noundef @.str.5, i32 noundef %6664, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6667, ptr noundef %6670, ptr noundef %6673, i32 noundef %6675) #10
  br label %6677

6677:                                             ; preds = %6660, %6643
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %6678

6678:                                             ; preds = %6677
  br label %6679

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

6680:                                             ; No predecessors!
  br label %6681

6681:                                             ; preds = %6680
  br label %6682

6682:                                             ; preds = %6681, %6624
  br label %6683

6683:                                             ; preds = %6682
  br label %6684

6684:                                             ; preds = %6683
  br label %6685

6685:                                             ; preds = %6684
  %6686 = load i32, ptr @test_count, align 4, !tbaa !5
  %6687 = add nsw i32 %6686, 1
  store i32 %6687, ptr @test_count, align 4, !tbaa !5
  %6688 = load ptr, ptr %141, align 8, !tbaa !9
  %6689 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6688, ptr noundef @.str.16)
  %6690 = icmp eq i32 %6689, -1
  br i1 %6690, label %6691, label %6744

6691:                                             ; preds = %6685
  br label %6692

6692:                                             ; preds = %6691
  br label %6693

6693:                                             ; preds = %6692
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #10
  %6694 = call ptr @__errno_location() #11
  %6695 = load i32, ptr %6694, align 4, !tbaa !5
  store i32 %6695, ptr %143, align 4, !tbaa !5
  %6696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6697 = call i32 @s2n_print_stacktrace(ptr noundef %6696)
  %6698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6699 = trunc i8 %6698 to i1
  br i1 %6699, label %6700, label %6722

6700:                                             ; preds = %6693
  %6701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6702 = call i32 @fileno(ptr noundef %6701) #10
  %6703 = call i32 @isatty(i32 noundef %6702) #10
  %6704 = icmp ne i32 %6703, 0
  br i1 %6704, label %6705, label %6722

6705:                                             ; preds = %6700
  %6706 = load i32, ptr %143, align 4, !tbaa !5
  %6707 = call ptr @__errno_location() #11
  store i32 %6706, ptr %6707, align 4, !tbaa !5
  %6708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6709 = load i32, ptr @test_count, align 4, !tbaa !5
  %6710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  %6712 = call ptr @s2n_strerror(i32 noundef %6711, ptr noundef @.str.4)
  %6713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call ptr @s2n_strerror_debug(i32 noundef %6714, ptr noundef @.str.4)
  %6716 = call ptr @__errno_location() #11
  %6717 = load i32, ptr %6716, align 4, !tbaa !5
  %6718 = call ptr @strerror(i32 noundef %6717) #10
  %6719 = call ptr @__errno_location() #11
  %6720 = load i32, ptr %6719, align 4, !tbaa !5
  %6721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6708, ptr noundef @.str.2, i32 noundef %6709, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 295, ptr noundef %6712, ptr noundef %6715, ptr noundef %6718, i32 noundef %6720) #10
  br label %6739

6722:                                             ; preds = %6700, %6693
  %6723 = load i32, ptr %143, align 4, !tbaa !5
  %6724 = call ptr @__errno_location() #11
  store i32 %6723, ptr %6724, align 4, !tbaa !5
  %6725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6726 = load i32, ptr @test_count, align 4, !tbaa !5
  %6727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6728 = load i32, ptr %6727, align 4, !tbaa !5
  %6729 = call ptr @s2n_strerror(i32 noundef %6728, ptr noundef @.str.4)
  %6730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6731 = load i32, ptr %6730, align 4, !tbaa !5
  %6732 = call ptr @s2n_strerror_debug(i32 noundef %6731, ptr noundef @.str.4)
  %6733 = call ptr @__errno_location() #11
  %6734 = load i32, ptr %6733, align 4, !tbaa !5
  %6735 = call ptr @strerror(i32 noundef %6734) #10
  %6736 = call ptr @__errno_location() #11
  %6737 = load i32, ptr %6736, align 4, !tbaa !5
  %6738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6725, ptr noundef @.str.5, i32 noundef %6726, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 295, ptr noundef %6729, ptr noundef %6732, ptr noundef %6735, i32 noundef %6737) #10
  br label %6739

6739:                                             ; preds = %6722, %6705
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #10
  br label %6740

6740:                                             ; preds = %6739
  br label %6741

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

6742:                                             ; No predecessors!
  br label %6743

6743:                                             ; preds = %6742
  br label %6744

6744:                                             ; preds = %6743, %6685
  br label %6745

6745:                                             ; preds = %6744
  br label %6746

6746:                                             ; preds = %6745
  br label %6747

6747:                                             ; preds = %6746
  %6748 = load i32, ptr @test_count, align 4, !tbaa !5
  %6749 = add nsw i32 %6748, 1
  store i32 %6749, ptr @test_count, align 4, !tbaa !5
  %6750 = load ptr, ptr %141, align 8, !tbaa !9
  %6751 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %6750, i32 noundef 1, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %6752 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  store i32 %6751, ptr %6752, align 4
  %6753 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  %6754 = load i32, ptr %6753, align 4
  %6755 = call zeroext i1 @s2n_result_is_ok(i32 %6754)
  br i1 %6755, label %6809, label %6756

6756:                                             ; preds = %6747
  br label %6757

6757:                                             ; preds = %6756
  br label %6758

6758:                                             ; preds = %6757
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #10
  %6759 = call ptr @__errno_location() #11
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  store i32 %6760, ptr %145, align 4, !tbaa !5
  %6761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6762 = call i32 @s2n_print_stacktrace(ptr noundef %6761)
  %6763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6764 = trunc i8 %6763 to i1
  br i1 %6764, label %6765, label %6787

6765:                                             ; preds = %6758
  %6766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6767 = call i32 @fileno(ptr noundef %6766) #10
  %6768 = call i32 @isatty(i32 noundef %6767) #10
  %6769 = icmp ne i32 %6768, 0
  br i1 %6769, label %6770, label %6787

6770:                                             ; preds = %6765
  %6771 = load i32, ptr %145, align 4, !tbaa !5
  %6772 = call ptr @__errno_location() #11
  store i32 %6771, ptr %6772, align 4, !tbaa !5
  %6773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6774 = load i32, ptr @test_count, align 4, !tbaa !5
  %6775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6776 = load i32, ptr %6775, align 4, !tbaa !5
  %6777 = call ptr @s2n_strerror(i32 noundef %6776, ptr noundef @.str.4)
  %6778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6779 = load i32, ptr %6778, align 4, !tbaa !5
  %6780 = call ptr @s2n_strerror_debug(i32 noundef %6779, ptr noundef @.str.4)
  %6781 = call ptr @__errno_location() #11
  %6782 = load i32, ptr %6781, align 4, !tbaa !5
  %6783 = call ptr @strerror(i32 noundef %6782) #10
  %6784 = call ptr @__errno_location() #11
  %6785 = load i32, ptr %6784, align 4, !tbaa !5
  %6786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6773, ptr noundef @.str.2, i32 noundef %6774, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6777, ptr noundef %6780, ptr noundef %6783, i32 noundef %6785) #10
  br label %6804

6787:                                             ; preds = %6765, %6758
  %6788 = load i32, ptr %145, align 4, !tbaa !5
  %6789 = call ptr @__errno_location() #11
  store i32 %6788, ptr %6789, align 4, !tbaa !5
  %6790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6791 = load i32, ptr @test_count, align 4, !tbaa !5
  %6792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6793 = load i32, ptr %6792, align 4, !tbaa !5
  %6794 = call ptr @s2n_strerror(i32 noundef %6793, ptr noundef @.str.4)
  %6795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6796 = load i32, ptr %6795, align 4, !tbaa !5
  %6797 = call ptr @s2n_strerror_debug(i32 noundef %6796, ptr noundef @.str.4)
  %6798 = call ptr @__errno_location() #11
  %6799 = load i32, ptr %6798, align 4, !tbaa !5
  %6800 = call ptr @strerror(i32 noundef %6799) #10
  %6801 = call ptr @__errno_location() #11
  %6802 = load i32, ptr %6801, align 4, !tbaa !5
  %6803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6790, ptr noundef @.str.5, i32 noundef %6791, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6794, ptr noundef %6797, ptr noundef %6800, i32 noundef %6802) #10
  br label %6804

6804:                                             ; preds = %6787, %6770
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %6805

6805:                                             ; preds = %6804
  br label %6806

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

6807:                                             ; No predecessors!
  br label %6808

6808:                                             ; preds = %6807
  br label %6809

6809:                                             ; preds = %6808, %6747
  br label %6810

6810:                                             ; preds = %6809
  br label %6811

6811:                                             ; preds = %6810
  br label %6812

6812:                                             ; preds = %6811
  %6813 = load i32, ptr @test_count, align 4, !tbaa !5
  %6814 = add nsw i32 %6813, 1
  store i32 %6814, ptr @test_count, align 4, !tbaa !5
  %6815 = load ptr, ptr %141, align 8, !tbaa !9
  %6816 = getelementptr inbounds %struct.s2n_connection, ptr %6815, i32 0, i32 89
  %6817 = load i32, ptr %6816, align 8, !tbaa !48
  %6818 = icmp eq i32 %6817, 0
  br i1 %6818, label %6872, label %6819

6819:                                             ; preds = %6812
  br label %6820

6820:                                             ; preds = %6819
  br label %6821

6821:                                             ; preds = %6820
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #10
  %6822 = call ptr @__errno_location() #11
  %6823 = load i32, ptr %6822, align 4, !tbaa !5
  store i32 %6823, ptr %146, align 4, !tbaa !5
  %6824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6825 = call i32 @s2n_print_stacktrace(ptr noundef %6824)
  %6826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6827 = trunc i8 %6826 to i1
  br i1 %6827, label %6828, label %6850

6828:                                             ; preds = %6821
  %6829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6830 = call i32 @fileno(ptr noundef %6829) #10
  %6831 = call i32 @isatty(i32 noundef %6830) #10
  %6832 = icmp ne i32 %6831, 0
  br i1 %6832, label %6833, label %6850

6833:                                             ; preds = %6828
  %6834 = load i32, ptr %146, align 4, !tbaa !5
  %6835 = call ptr @__errno_location() #11
  store i32 %6834, ptr %6835, align 4, !tbaa !5
  %6836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6837 = load i32, ptr @test_count, align 4, !tbaa !5
  %6838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6839 = load i32, ptr %6838, align 4, !tbaa !5
  %6840 = call ptr @s2n_strerror(i32 noundef %6839, ptr noundef @.str.4)
  %6841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6842 = load i32, ptr %6841, align 4, !tbaa !5
  %6843 = call ptr @s2n_strerror_debug(i32 noundef %6842, ptr noundef @.str.4)
  %6844 = call ptr @__errno_location() #11
  %6845 = load i32, ptr %6844, align 4, !tbaa !5
  %6846 = call ptr @strerror(i32 noundef %6845) #10
  %6847 = call ptr @__errno_location() #11
  %6848 = load i32, ptr %6847, align 4, !tbaa !5
  %6849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6836, ptr noundef @.str.2, i32 noundef %6837, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6840, ptr noundef %6843, ptr noundef %6846, i32 noundef %6848) #10
  br label %6867

6850:                                             ; preds = %6828, %6821
  %6851 = load i32, ptr %146, align 4, !tbaa !5
  %6852 = call ptr @__errno_location() #11
  store i32 %6851, ptr %6852, align 4, !tbaa !5
  %6853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6854 = load i32, ptr @test_count, align 4, !tbaa !5
  %6855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6856 = load i32, ptr %6855, align 4, !tbaa !5
  %6857 = call ptr @s2n_strerror(i32 noundef %6856, ptr noundef @.str.4)
  %6858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6859 = load i32, ptr %6858, align 4, !tbaa !5
  %6860 = call ptr @s2n_strerror_debug(i32 noundef %6859, ptr noundef @.str.4)
  %6861 = call ptr @__errno_location() #11
  %6862 = load i32, ptr %6861, align 4, !tbaa !5
  %6863 = call ptr @strerror(i32 noundef %6862) #10
  %6864 = call ptr @__errno_location() #11
  %6865 = load i32, ptr %6864, align 4, !tbaa !5
  %6866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6853, ptr noundef @.str.5, i32 noundef %6854, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6857, ptr noundef %6860, ptr noundef %6863, i32 noundef %6865) #10
  br label %6867

6867:                                             ; preds = %6850, %6833
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #10
  br label %6868

6868:                                             ; preds = %6867
  br label %6869

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

6870:                                             ; No predecessors!
  br label %6871

6871:                                             ; preds = %6870
  br label %6872

6872:                                             ; preds = %6871, %6812
  br label %6873

6873:                                             ; preds = %6872
  br label %6874

6874:                                             ; preds = %6873
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #10
  %6875 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6875, ptr %147, align 8, !tbaa !9
  br label %6876

6876:                                             ; preds = %6874
  %6877 = load i32, ptr @test_count, align 4, !tbaa !5
  %6878 = add nsw i32 %6877, 1
  store i32 %6878, ptr @test_count, align 4, !tbaa !5
  %6879 = load ptr, ptr %147, align 8, !tbaa !9
  %6880 = icmp eq ptr %6879, null
  br i1 %6880, label %6881, label %6934

6881:                                             ; preds = %6876
  br label %6882

6882:                                             ; preds = %6881
  br label %6883

6883:                                             ; preds = %6882
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #10
  %6884 = call ptr @__errno_location() #11
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  store i32 %6885, ptr %148, align 4, !tbaa !5
  %6886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6887 = call i32 @s2n_print_stacktrace(ptr noundef %6886)
  %6888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6889 = trunc i8 %6888 to i1
  br i1 %6889, label %6890, label %6912

6890:                                             ; preds = %6883
  %6891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6892 = call i32 @fileno(ptr noundef %6891) #10
  %6893 = call i32 @isatty(i32 noundef %6892) #10
  %6894 = icmp ne i32 %6893, 0
  br i1 %6894, label %6895, label %6912

6895:                                             ; preds = %6890
  %6896 = load i32, ptr %148, align 4, !tbaa !5
  %6897 = call ptr @__errno_location() #11
  store i32 %6896, ptr %6897, align 4, !tbaa !5
  %6898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6899 = load i32, ptr @test_count, align 4, !tbaa !5
  %6900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6901 = load i32, ptr %6900, align 4, !tbaa !5
  %6902 = call ptr @s2n_strerror(i32 noundef %6901, ptr noundef @.str.4)
  %6903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6904 = load i32, ptr %6903, align 4, !tbaa !5
  %6905 = call ptr @s2n_strerror_debug(i32 noundef %6904, ptr noundef @.str.4)
  %6906 = call ptr @__errno_location() #11
  %6907 = load i32, ptr %6906, align 4, !tbaa !5
  %6908 = call ptr @strerror(i32 noundef %6907) #10
  %6909 = call ptr @__errno_location() #11
  %6910 = load i32, ptr %6909, align 4, !tbaa !5
  %6911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6898, ptr noundef @.str.2, i32 noundef %6899, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6902, ptr noundef %6905, ptr noundef %6908, i32 noundef %6910) #10
  br label %6929

6912:                                             ; preds = %6890, %6883
  %6913 = load i32, ptr %148, align 4, !tbaa !5
  %6914 = call ptr @__errno_location() #11
  store i32 %6913, ptr %6914, align 4, !tbaa !5
  %6915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6916 = load i32, ptr @test_count, align 4, !tbaa !5
  %6917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6918 = load i32, ptr %6917, align 4, !tbaa !5
  %6919 = call ptr @s2n_strerror(i32 noundef %6918, ptr noundef @.str.4)
  %6920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6921 = load i32, ptr %6920, align 4, !tbaa !5
  %6922 = call ptr @s2n_strerror_debug(i32 noundef %6921, ptr noundef @.str.4)
  %6923 = call ptr @__errno_location() #11
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  %6925 = call ptr @strerror(i32 noundef %6924) #10
  %6926 = call ptr @__errno_location() #11
  %6927 = load i32, ptr %6926, align 4, !tbaa !5
  %6928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6915, ptr noundef @.str.5, i32 noundef %6916, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6919, ptr noundef %6922, ptr noundef %6925, i32 noundef %6927) #10
  br label %6929

6929:                                             ; preds = %6912, %6895
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #10
  br label %6930

6930:                                             ; preds = %6929
  br label %6931

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

6932:                                             ; No predecessors!
  br label %6933

6933:                                             ; preds = %6932
  br label %6934

6934:                                             ; preds = %6933, %6876
  br label %6935

6935:                                             ; preds = %6934
  br label %6936

6936:                                             ; preds = %6935
  br label %6937

6937:                                             ; preds = %6936
  %6938 = load i32, ptr @test_count, align 4, !tbaa !5
  %6939 = add nsw i32 %6938, 1
  store i32 %6939, ptr @test_count, align 4, !tbaa !5
  %6940 = load ptr, ptr %147, align 8, !tbaa !9
  %6941 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6940, ptr noundef @.str.16)
  %6942 = icmp eq i32 %6941, -1
  br i1 %6942, label %6943, label %6996

6943:                                             ; preds = %6937
  br label %6944

6944:                                             ; preds = %6943
  br label %6945

6945:                                             ; preds = %6944
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %6946 = call ptr @__errno_location() #11
  %6947 = load i32, ptr %6946, align 4, !tbaa !5
  store i32 %6947, ptr %149, align 4, !tbaa !5
  %6948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6949 = call i32 @s2n_print_stacktrace(ptr noundef %6948)
  %6950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6951 = trunc i8 %6950 to i1
  br i1 %6951, label %6952, label %6974

6952:                                             ; preds = %6945
  %6953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6954 = call i32 @fileno(ptr noundef %6953) #10
  %6955 = call i32 @isatty(i32 noundef %6954) #10
  %6956 = icmp ne i32 %6955, 0
  br i1 %6956, label %6957, label %6974

6957:                                             ; preds = %6952
  %6958 = load i32, ptr %149, align 4, !tbaa !5
  %6959 = call ptr @__errno_location() #11
  store i32 %6958, ptr %6959, align 4, !tbaa !5
  %6960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6961 = load i32, ptr @test_count, align 4, !tbaa !5
  %6962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call ptr @s2n_strerror(i32 noundef %6963, ptr noundef @.str.4)
  %6965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  %6967 = call ptr @s2n_strerror_debug(i32 noundef %6966, ptr noundef @.str.4)
  %6968 = call ptr @__errno_location() #11
  %6969 = load i32, ptr %6968, align 4, !tbaa !5
  %6970 = call ptr @strerror(i32 noundef %6969) #10
  %6971 = call ptr @__errno_location() #11
  %6972 = load i32, ptr %6971, align 4, !tbaa !5
  %6973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6960, ptr noundef @.str.2, i32 noundef %6961, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6964, ptr noundef %6967, ptr noundef %6970, i32 noundef %6972) #10
  br label %6991

6974:                                             ; preds = %6952, %6945
  %6975 = load i32, ptr %149, align 4, !tbaa !5
  %6976 = call ptr @__errno_location() #11
  store i32 %6975, ptr %6976, align 4, !tbaa !5
  %6977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6978 = load i32, ptr @test_count, align 4, !tbaa !5
  %6979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6980 = load i32, ptr %6979, align 4, !tbaa !5
  %6981 = call ptr @s2n_strerror(i32 noundef %6980, ptr noundef @.str.4)
  %6982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6983 = load i32, ptr %6982, align 4, !tbaa !5
  %6984 = call ptr @s2n_strerror_debug(i32 noundef %6983, ptr noundef @.str.4)
  %6985 = call ptr @__errno_location() #11
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  %6987 = call ptr @strerror(i32 noundef %6986) #10
  %6988 = call ptr @__errno_location() #11
  %6989 = load i32, ptr %6988, align 4, !tbaa !5
  %6990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6977, ptr noundef @.str.5, i32 noundef %6978, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6981, ptr noundef %6984, ptr noundef %6987, i32 noundef %6989) #10
  br label %6991

6991:                                             ; preds = %6974, %6957
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %6992

6992:                                             ; preds = %6991
  br label %6993

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

6994:                                             ; No predecessors!
  br label %6995

6995:                                             ; preds = %6994
  br label %6996

6996:                                             ; preds = %6995, %6937
  br label %6997

6997:                                             ; preds = %6996
  br label %6998

6998:                                             ; preds = %6997
  br label %6999

6999:                                             ; preds = %6998
  %7000 = load i32, ptr @test_count, align 4, !tbaa !5
  %7001 = add nsw i32 %7000, 1
  store i32 %7001, ptr @test_count, align 4, !tbaa !5
  %7002 = load ptr, ptr %147, align 8, !tbaa !9
  %7003 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %7002, i32 noundef 1, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %7004 = getelementptr inbounds %struct.s2n_result, ptr %150, i32 0, i32 0
  store i32 %7003, ptr %7004, align 4
  %7005 = getelementptr inbounds %struct.s2n_result, ptr %150, i32 0, i32 0
  %7006 = load i32, ptr %7005, align 4
  %7007 = call zeroext i1 @s2n_result_is_ok(i32 %7006)
  br i1 %7007, label %7061, label %7008

7008:                                             ; preds = %6999
  br label %7009

7009:                                             ; preds = %7008
  br label %7010

7010:                                             ; preds = %7009
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %7011 = call ptr @__errno_location() #11
  %7012 = load i32, ptr %7011, align 4, !tbaa !5
  store i32 %7012, ptr %151, align 4, !tbaa !5
  %7013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7014 = call i32 @s2n_print_stacktrace(ptr noundef %7013)
  %7015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7016 = trunc i8 %7015 to i1
  br i1 %7016, label %7017, label %7039

7017:                                             ; preds = %7010
  %7018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7019 = call i32 @fileno(ptr noundef %7018) #10
  %7020 = call i32 @isatty(i32 noundef %7019) #10
  %7021 = icmp ne i32 %7020, 0
  br i1 %7021, label %7022, label %7039

7022:                                             ; preds = %7017
  %7023 = load i32, ptr %151, align 4, !tbaa !5
  %7024 = call ptr @__errno_location() #11
  store i32 %7023, ptr %7024, align 4, !tbaa !5
  %7025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7026 = load i32, ptr @test_count, align 4, !tbaa !5
  %7027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  %7029 = call ptr @s2n_strerror(i32 noundef %7028, ptr noundef @.str.4)
  %7030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7031 = load i32, ptr %7030, align 4, !tbaa !5
  %7032 = call ptr @s2n_strerror_debug(i32 noundef %7031, ptr noundef @.str.4)
  %7033 = call ptr @__errno_location() #11
  %7034 = load i32, ptr %7033, align 4, !tbaa !5
  %7035 = call ptr @strerror(i32 noundef %7034) #10
  %7036 = call ptr @__errno_location() #11
  %7037 = load i32, ptr %7036, align 4, !tbaa !5
  %7038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7025, ptr noundef @.str.2, i32 noundef %7026, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 302, ptr noundef %7029, ptr noundef %7032, ptr noundef %7035, i32 noundef %7037) #10
  br label %7056

7039:                                             ; preds = %7017, %7010
  %7040 = load i32, ptr %151, align 4, !tbaa !5
  %7041 = call ptr @__errno_location() #11
  store i32 %7040, ptr %7041, align 4, !tbaa !5
  %7042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7043 = load i32, ptr @test_count, align 4, !tbaa !5
  %7044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7045 = load i32, ptr %7044, align 4, !tbaa !5
  %7046 = call ptr @s2n_strerror(i32 noundef %7045, ptr noundef @.str.4)
  %7047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7048 = load i32, ptr %7047, align 4, !tbaa !5
  %7049 = call ptr @s2n_strerror_debug(i32 noundef %7048, ptr noundef @.str.4)
  %7050 = call ptr @__errno_location() #11
  %7051 = load i32, ptr %7050, align 4, !tbaa !5
  %7052 = call ptr @strerror(i32 noundef %7051) #10
  %7053 = call ptr @__errno_location() #11
  %7054 = load i32, ptr %7053, align 4, !tbaa !5
  %7055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7042, ptr noundef @.str.5, i32 noundef %7043, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 302, ptr noundef %7046, ptr noundef %7049, ptr noundef %7052, i32 noundef %7054) #10
  br label %7056

7056:                                             ; preds = %7039, %7022
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %7057

7057:                                             ; preds = %7056
  br label %7058

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

7059:                                             ; No predecessors!
  br label %7060

7060:                                             ; preds = %7059
  br label %7061

7061:                                             ; preds = %7060, %6999
  br label %7062

7062:                                             ; preds = %7061
  br label %7063

7063:                                             ; preds = %7062
  br label %7064

7064:                                             ; preds = %7063
  %7065 = load i32, ptr @test_count, align 4, !tbaa !5
  %7066 = add nsw i32 %7065, 1
  store i32 %7066, ptr @test_count, align 4, !tbaa !5
  %7067 = load ptr, ptr %147, align 8, !tbaa !9
  %7068 = getelementptr inbounds %struct.s2n_connection, ptr %7067, i32 0, i32 89
  %7069 = load i32, ptr %7068, align 8, !tbaa !48
  %7070 = icmp eq i32 %7069, 0
  br i1 %7070, label %7124, label %7071

7071:                                             ; preds = %7064
  br label %7072

7072:                                             ; preds = %7071
  br label %7073

7073:                                             ; preds = %7072
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #10
  %7074 = call ptr @__errno_location() #11
  %7075 = load i32, ptr %7074, align 4, !tbaa !5
  store i32 %7075, ptr %152, align 4, !tbaa !5
  %7076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7077 = call i32 @s2n_print_stacktrace(ptr noundef %7076)
  %7078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7079 = trunc i8 %7078 to i1
  br i1 %7079, label %7080, label %7102

7080:                                             ; preds = %7073
  %7081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7082 = call i32 @fileno(ptr noundef %7081) #10
  %7083 = call i32 @isatty(i32 noundef %7082) #10
  %7084 = icmp ne i32 %7083, 0
  br i1 %7084, label %7085, label %7102

7085:                                             ; preds = %7080
  %7086 = load i32, ptr %152, align 4, !tbaa !5
  %7087 = call ptr @__errno_location() #11
  store i32 %7086, ptr %7087, align 4, !tbaa !5
  %7088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7089 = load i32, ptr @test_count, align 4, !tbaa !5
  %7090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7091 = load i32, ptr %7090, align 4, !tbaa !5
  %7092 = call ptr @s2n_strerror(i32 noundef %7091, ptr noundef @.str.4)
  %7093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7094 = load i32, ptr %7093, align 4, !tbaa !5
  %7095 = call ptr @s2n_strerror_debug(i32 noundef %7094, ptr noundef @.str.4)
  %7096 = call ptr @__errno_location() #11
  %7097 = load i32, ptr %7096, align 4, !tbaa !5
  %7098 = call ptr @strerror(i32 noundef %7097) #10
  %7099 = call ptr @__errno_location() #11
  %7100 = load i32, ptr %7099, align 4, !tbaa !5
  %7101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7088, ptr noundef @.str.2, i32 noundef %7089, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 303, ptr noundef %7092, ptr noundef %7095, ptr noundef %7098, i32 noundef %7100) #10
  br label %7119

7102:                                             ; preds = %7080, %7073
  %7103 = load i32, ptr %152, align 4, !tbaa !5
  %7104 = call ptr @__errno_location() #11
  store i32 %7103, ptr %7104, align 4, !tbaa !5
  %7105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7106 = load i32, ptr @test_count, align 4, !tbaa !5
  %7107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7108 = load i32, ptr %7107, align 4, !tbaa !5
  %7109 = call ptr @s2n_strerror(i32 noundef %7108, ptr noundef @.str.4)
  %7110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7111 = load i32, ptr %7110, align 4, !tbaa !5
  %7112 = call ptr @s2n_strerror_debug(i32 noundef %7111, ptr noundef @.str.4)
  %7113 = call ptr @__errno_location() #11
  %7114 = load i32, ptr %7113, align 4, !tbaa !5
  %7115 = call ptr @strerror(i32 noundef %7114) #10
  %7116 = call ptr @__errno_location() #11
  %7117 = load i32, ptr %7116, align 4, !tbaa !5
  %7118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7105, ptr noundef @.str.5, i32 noundef %7106, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 303, ptr noundef %7109, ptr noundef %7112, ptr noundef %7115, i32 noundef %7117) #10
  br label %7119

7119:                                             ; preds = %7102, %7085
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #10
  br label %7120

7120:                                             ; preds = %7119
  br label %7121

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

7122:                                             ; No predecessors!
  br label %7123

7123:                                             ; preds = %7122
  br label %7124

7124:                                             ; preds = %7123, %7064
  br label %7125

7125:                                             ; preds = %7124
  br label %7126

7126:                                             ; preds = %7125
  br label %7127

7127:                                             ; preds = %7126
  %7128 = load i32, ptr @test_count, align 4, !tbaa !5
  %7129 = add nsw i32 %7128, 1
  store i32 %7129, ptr @test_count, align 4, !tbaa !5
  %7130 = load ptr, ptr %147, align 8, !tbaa !9
  %7131 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %7130)
  %7132 = icmp eq i32 %7131, -1
  br i1 %7132, label %7133, label %7186

7133:                                             ; preds = %7127
  br label %7134

7134:                                             ; preds = %7133
  br label %7135

7135:                                             ; preds = %7134
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #10
  %7136 = call ptr @__errno_location() #11
  %7137 = load i32, ptr %7136, align 4, !tbaa !5
  store i32 %7137, ptr %153, align 4, !tbaa !5
  %7138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7139 = call i32 @s2n_print_stacktrace(ptr noundef %7138)
  %7140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7141 = trunc i8 %7140 to i1
  br i1 %7141, label %7142, label %7164

7142:                                             ; preds = %7135
  %7143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7144 = call i32 @fileno(ptr noundef %7143) #10
  %7145 = call i32 @isatty(i32 noundef %7144) #10
  %7146 = icmp ne i32 %7145, 0
  br i1 %7146, label %7147, label %7164

7147:                                             ; preds = %7142
  %7148 = load i32, ptr %153, align 4, !tbaa !5
  %7149 = call ptr @__errno_location() #11
  store i32 %7148, ptr %7149, align 4, !tbaa !5
  %7150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7151 = load i32, ptr @test_count, align 4, !tbaa !5
  %7152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7153 = load i32, ptr %7152, align 4, !tbaa !5
  %7154 = call ptr @s2n_strerror(i32 noundef %7153, ptr noundef @.str.4)
  %7155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7156 = load i32, ptr %7155, align 4, !tbaa !5
  %7157 = call ptr @s2n_strerror_debug(i32 noundef %7156, ptr noundef @.str.4)
  %7158 = call ptr @__errno_location() #11
  %7159 = load i32, ptr %7158, align 4, !tbaa !5
  %7160 = call ptr @strerror(i32 noundef %7159) #10
  %7161 = call ptr @__errno_location() #11
  %7162 = load i32, ptr %7161, align 4, !tbaa !5
  %7163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7150, ptr noundef @.str.2, i32 noundef %7151, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 304, ptr noundef %7154, ptr noundef %7157, ptr noundef %7160, i32 noundef %7162) #10
  br label %7181

7164:                                             ; preds = %7142, %7135
  %7165 = load i32, ptr %153, align 4, !tbaa !5
  %7166 = call ptr @__errno_location() #11
  store i32 %7165, ptr %7166, align 4, !tbaa !5
  %7167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7168 = load i32, ptr @test_count, align 4, !tbaa !5
  %7169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7170 = load i32, ptr %7169, align 4, !tbaa !5
  %7171 = call ptr @s2n_strerror(i32 noundef %7170, ptr noundef @.str.4)
  %7172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7173 = load i32, ptr %7172, align 4, !tbaa !5
  %7174 = call ptr @s2n_strerror_debug(i32 noundef %7173, ptr noundef @.str.4)
  %7175 = call ptr @__errno_location() #11
  %7176 = load i32, ptr %7175, align 4, !tbaa !5
  %7177 = call ptr @strerror(i32 noundef %7176) #10
  %7178 = call ptr @__errno_location() #11
  %7179 = load i32, ptr %7178, align 4, !tbaa !5
  %7180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7167, ptr noundef @.str.5, i32 noundef %7168, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 304, ptr noundef %7171, ptr noundef %7174, ptr noundef %7177, i32 noundef %7179) #10
  br label %7181

7181:                                             ; preds = %7164, %7147
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  br label %7182

7182:                                             ; preds = %7181
  br label %7183

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

7184:                                             ; No predecessors!
  br label %7185

7185:                                             ; preds = %7184
  br label %7186

7186:                                             ; preds = %7185, %7127
  br label %7187

7187:                                             ; preds = %7186
  br label %7188

7188:                                             ; preds = %7187
  br label %7189

7189:                                             ; preds = %7188
  %7190 = load i32, ptr @test_count, align 4, !tbaa !5
  %7191 = add nsw i32 %7190, 1
  store i32 %7191, ptr @test_count, align 4, !tbaa !5
  %7192 = load ptr, ptr %141, align 8, !tbaa !9
  %7193 = call i32 @s2n_client_hello_send(ptr noundef %7192)
  %7194 = icmp eq i32 %7193, -1
  br i1 %7194, label %7195, label %7248

7195:                                             ; preds = %7189
  br label %7196

7196:                                             ; preds = %7195
  br label %7197

7197:                                             ; preds = %7196
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %7198 = call ptr @__errno_location() #11
  %7199 = load i32, ptr %7198, align 4, !tbaa !5
  store i32 %7199, ptr %154, align 4, !tbaa !5
  %7200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7201 = call i32 @s2n_print_stacktrace(ptr noundef %7200)
  %7202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7203 = trunc i8 %7202 to i1
  br i1 %7203, label %7204, label %7226

7204:                                             ; preds = %7197
  %7205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7206 = call i32 @fileno(ptr noundef %7205) #10
  %7207 = call i32 @isatty(i32 noundef %7206) #10
  %7208 = icmp ne i32 %7207, 0
  br i1 %7208, label %7209, label %7226

7209:                                             ; preds = %7204
  %7210 = load i32, ptr %154, align 4, !tbaa !5
  %7211 = call ptr @__errno_location() #11
  store i32 %7210, ptr %7211, align 4, !tbaa !5
  %7212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7213 = load i32, ptr @test_count, align 4, !tbaa !5
  %7214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7215 = load i32, ptr %7214, align 4, !tbaa !5
  %7216 = call ptr @s2n_strerror(i32 noundef %7215, ptr noundef @.str.4)
  %7217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7218 = load i32, ptr %7217, align 4, !tbaa !5
  %7219 = call ptr @s2n_strerror_debug(i32 noundef %7218, ptr noundef @.str.4)
  %7220 = call ptr @__errno_location() #11
  %7221 = load i32, ptr %7220, align 4, !tbaa !5
  %7222 = call ptr @strerror(i32 noundef %7221) #10
  %7223 = call ptr @__errno_location() #11
  %7224 = load i32, ptr %7223, align 4, !tbaa !5
  %7225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7212, ptr noundef @.str.2, i32 noundef %7213, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 306, ptr noundef %7216, ptr noundef %7219, ptr noundef %7222, i32 noundef %7224) #10
  br label %7243

7226:                                             ; preds = %7204, %7197
  %7227 = load i32, ptr %154, align 4, !tbaa !5
  %7228 = call ptr @__errno_location() #11
  store i32 %7227, ptr %7228, align 4, !tbaa !5
  %7229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7230 = load i32, ptr @test_count, align 4, !tbaa !5
  %7231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7232 = load i32, ptr %7231, align 4, !tbaa !5
  %7233 = call ptr @s2n_strerror(i32 noundef %7232, ptr noundef @.str.4)
  %7234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7235 = load i32, ptr %7234, align 4, !tbaa !5
  %7236 = call ptr @s2n_strerror_debug(i32 noundef %7235, ptr noundef @.str.4)
  %7237 = call ptr @__errno_location() #11
  %7238 = load i32, ptr %7237, align 4, !tbaa !5
  %7239 = call ptr @strerror(i32 noundef %7238) #10
  %7240 = call ptr @__errno_location() #11
  %7241 = load i32, ptr %7240, align 4, !tbaa !5
  %7242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7229, ptr noundef @.str.5, i32 noundef %7230, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 306, ptr noundef %7233, ptr noundef %7236, ptr noundef %7239, i32 noundef %7241) #10
  br label %7243

7243:                                             ; preds = %7226, %7209
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %7244

7244:                                             ; preds = %7243
  br label %7245

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

7246:                                             ; No predecessors!
  br label %7247

7247:                                             ; preds = %7246
  br label %7248

7248:                                             ; preds = %7247, %7189
  br label %7249

7249:                                             ; preds = %7248
  br label %7250

7250:                                             ; preds = %7249
  br label %7251

7251:                                             ; preds = %7250
  %7252 = load i32, ptr @test_count, align 4, !tbaa !5
  %7253 = add nsw i32 %7252, 1
  store i32 %7253, ptr @test_count, align 4, !tbaa !5
  %7254 = load ptr, ptr %141, align 8, !tbaa !9
  %7255 = getelementptr inbounds %struct.s2n_connection, ptr %7254, i32 0, i32 52
  %7256 = getelementptr inbounds %struct.s2n_handshake, ptr %7255, i32 0, i32 0
  %7257 = load ptr, ptr %147, align 8, !tbaa !9
  %7258 = getelementptr inbounds %struct.s2n_connection, ptr %7257, i32 0, i32 52
  %7259 = getelementptr inbounds %struct.s2n_handshake, ptr %7258, i32 0, i32 0
  %7260 = load ptr, ptr %141, align 8, !tbaa !9
  %7261 = getelementptr inbounds %struct.s2n_connection, ptr %7260, i32 0, i32 52
  %7262 = getelementptr inbounds %struct.s2n_handshake, ptr %7261, i32 0, i32 0
  %7263 = getelementptr inbounds %struct.s2n_stuffer, ptr %7262, i32 0, i32 2
  %7264 = load i32, ptr %7263, align 4, !tbaa !51
  %7265 = load ptr, ptr %141, align 8, !tbaa !9
  %7266 = getelementptr inbounds %struct.s2n_connection, ptr %7265, i32 0, i32 52
  %7267 = getelementptr inbounds %struct.s2n_handshake, ptr %7266, i32 0, i32 0
  %7268 = getelementptr inbounds %struct.s2n_stuffer, ptr %7267, i32 0, i32 1
  %7269 = load i32, ptr %7268, align 8, !tbaa !52
  %7270 = sub i32 %7264, %7269
  %7271 = call i32 @s2n_stuffer_copy(ptr noundef %7256, ptr noundef %7259, i32 noundef %7270)
  %7272 = icmp eq i32 %7271, -1
  br i1 %7272, label %7273, label %7326

7273:                                             ; preds = %7251
  br label %7274

7274:                                             ; preds = %7273
  br label %7275

7275:                                             ; preds = %7274
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #10
  %7276 = call ptr @__errno_location() #11
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  store i32 %7277, ptr %155, align 4, !tbaa !5
  %7278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7279 = call i32 @s2n_print_stacktrace(ptr noundef %7278)
  %7280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7281 = trunc i8 %7280 to i1
  br i1 %7281, label %7282, label %7304

7282:                                             ; preds = %7275
  %7283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7284 = call i32 @fileno(ptr noundef %7283) #10
  %7285 = call i32 @isatty(i32 noundef %7284) #10
  %7286 = icmp ne i32 %7285, 0
  br i1 %7286, label %7287, label %7304

7287:                                             ; preds = %7282
  %7288 = load i32, ptr %155, align 4, !tbaa !5
  %7289 = call ptr @__errno_location() #11
  store i32 %7288, ptr %7289, align 4, !tbaa !5
  %7290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7291 = load i32, ptr @test_count, align 4, !tbaa !5
  %7292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7293 = load i32, ptr %7292, align 4, !tbaa !5
  %7294 = call ptr @s2n_strerror(i32 noundef %7293, ptr noundef @.str.4)
  %7295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7296 = load i32, ptr %7295, align 4, !tbaa !5
  %7297 = call ptr @s2n_strerror_debug(i32 noundef %7296, ptr noundef @.str.4)
  %7298 = call ptr @__errno_location() #11
  %7299 = load i32, ptr %7298, align 4, !tbaa !5
  %7300 = call ptr @strerror(i32 noundef %7299) #10
  %7301 = call ptr @__errno_location() #11
  %7302 = load i32, ptr %7301, align 4, !tbaa !5
  %7303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7290, ptr noundef @.str.2, i32 noundef %7291, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 308, ptr noundef %7294, ptr noundef %7297, ptr noundef %7300, i32 noundef %7302) #10
  br label %7321

7304:                                             ; preds = %7282, %7275
  %7305 = load i32, ptr %155, align 4, !tbaa !5
  %7306 = call ptr @__errno_location() #11
  store i32 %7305, ptr %7306, align 4, !tbaa !5
  %7307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7308 = load i32, ptr @test_count, align 4, !tbaa !5
  %7309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call ptr @s2n_strerror(i32 noundef %7310, ptr noundef @.str.4)
  %7312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @s2n_strerror_debug(i32 noundef %7313, ptr noundef @.str.4)
  %7315 = call ptr @__errno_location() #11
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call ptr @strerror(i32 noundef %7316) #10
  %7318 = call ptr @__errno_location() #11
  %7319 = load i32, ptr %7318, align 4, !tbaa !5
  %7320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7307, ptr noundef @.str.5, i32 noundef %7308, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 308, ptr noundef %7311, ptr noundef %7314, ptr noundef %7317, i32 noundef %7319) #10
  br label %7321

7321:                                             ; preds = %7304, %7287
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #10
  br label %7322

7322:                                             ; preds = %7321
  br label %7323

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

7324:                                             ; No predecessors!
  br label %7325

7325:                                             ; preds = %7324
  br label %7326

7326:                                             ; preds = %7325, %7251
  br label %7327

7327:                                             ; preds = %7326
  br label %7328

7328:                                             ; preds = %7327
  br label %7329

7329:                                             ; preds = %7328
  %7330 = load i32, ptr @test_count, align 4, !tbaa !5
  %7331 = add nsw i32 %7330, 1
  store i32 %7331, ptr @test_count, align 4, !tbaa !5
  %7332 = load ptr, ptr %147, align 8, !tbaa !9
  %7333 = call i32 @s2n_establish_session(ptr noundef %7332)
  %7334 = icmp eq i32 %7333, -1
  br i1 %7334, label %7335, label %7388

7335:                                             ; preds = %7329
  br label %7336

7336:                                             ; preds = %7335
  br label %7337

7337:                                             ; preds = %7336
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %7338 = call ptr @__errno_location() #11
  %7339 = load i32, ptr %7338, align 4, !tbaa !5
  store i32 %7339, ptr %156, align 4, !tbaa !5
  %7340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7341 = call i32 @s2n_print_stacktrace(ptr noundef %7340)
  %7342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7343 = trunc i8 %7342 to i1
  br i1 %7343, label %7344, label %7366

7344:                                             ; preds = %7337
  %7345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7346 = call i32 @fileno(ptr noundef %7345) #10
  %7347 = call i32 @isatty(i32 noundef %7346) #10
  %7348 = icmp ne i32 %7347, 0
  br i1 %7348, label %7349, label %7366

7349:                                             ; preds = %7344
  %7350 = load i32, ptr %156, align 4, !tbaa !5
  %7351 = call ptr @__errno_location() #11
  store i32 %7350, ptr %7351, align 4, !tbaa !5
  %7352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7353 = load i32, ptr @test_count, align 4, !tbaa !5
  %7354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7355 = load i32, ptr %7354, align 4, !tbaa !5
  %7356 = call ptr @s2n_strerror(i32 noundef %7355, ptr noundef @.str.4)
  %7357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  %7359 = call ptr @s2n_strerror_debug(i32 noundef %7358, ptr noundef @.str.4)
  %7360 = call ptr @__errno_location() #11
  %7361 = load i32, ptr %7360, align 4, !tbaa !5
  %7362 = call ptr @strerror(i32 noundef %7361) #10
  %7363 = call ptr @__errno_location() #11
  %7364 = load i32, ptr %7363, align 4, !tbaa !5
  %7365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7352, ptr noundef @.str.2, i32 noundef %7353, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 309, ptr noundef %7356, ptr noundef %7359, ptr noundef %7362, i32 noundef %7364) #10
  br label %7383

7366:                                             ; preds = %7344, %7337
  %7367 = load i32, ptr %156, align 4, !tbaa !5
  %7368 = call ptr @__errno_location() #11
  store i32 %7367, ptr %7368, align 4, !tbaa !5
  %7369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7370 = load i32, ptr @test_count, align 4, !tbaa !5
  %7371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7372 = load i32, ptr %7371, align 4, !tbaa !5
  %7373 = call ptr @s2n_strerror(i32 noundef %7372, ptr noundef @.str.4)
  %7374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7375 = load i32, ptr %7374, align 4, !tbaa !5
  %7376 = call ptr @s2n_strerror_debug(i32 noundef %7375, ptr noundef @.str.4)
  %7377 = call ptr @__errno_location() #11
  %7378 = load i32, ptr %7377, align 4, !tbaa !5
  %7379 = call ptr @strerror(i32 noundef %7378) #10
  %7380 = call ptr @__errno_location() #11
  %7381 = load i32, ptr %7380, align 4, !tbaa !5
  %7382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7369, ptr noundef @.str.5, i32 noundef %7370, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 309, ptr noundef %7373, ptr noundef %7376, ptr noundef %7379, i32 noundef %7381) #10
  br label %7383

7383:                                             ; preds = %7366, %7349
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %7384

7384:                                             ; preds = %7383
  br label %7385

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

7386:                                             ; No predecessors!
  br label %7387

7387:                                             ; preds = %7386
  br label %7388

7388:                                             ; preds = %7387, %7329
  br label %7389

7389:                                             ; preds = %7388
  br label %7390

7390:                                             ; preds = %7389
  br label %7391

7391:                                             ; preds = %7390
  %7392 = load i32, ptr @test_count, align 4, !tbaa !5
  %7393 = add nsw i32 %7392, 1
  store i32 %7393, ptr @test_count, align 4, !tbaa !5
  %7394 = load ptr, ptr %141, align 8, !tbaa !9
  %7395 = getelementptr inbounds %struct.s2n_connection, ptr %7394, i32 0, i32 89
  %7396 = load i32, ptr %7395, align 8, !tbaa !48
  %7397 = icmp eq i32 %7396, 2
  br i1 %7397, label %7451, label %7398

7398:                                             ; preds = %7391
  br label %7399

7399:                                             ; preds = %7398
  br label %7400

7400:                                             ; preds = %7399
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %7401 = call ptr @__errno_location() #11
  %7402 = load i32, ptr %7401, align 4, !tbaa !5
  store i32 %7402, ptr %157, align 4, !tbaa !5
  %7403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7404 = call i32 @s2n_print_stacktrace(ptr noundef %7403)
  %7405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7406 = trunc i8 %7405 to i1
  br i1 %7406, label %7407, label %7429

7407:                                             ; preds = %7400
  %7408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7409 = call i32 @fileno(ptr noundef %7408) #10
  %7410 = call i32 @isatty(i32 noundef %7409) #10
  %7411 = icmp ne i32 %7410, 0
  br i1 %7411, label %7412, label %7429

7412:                                             ; preds = %7407
  %7413 = load i32, ptr %157, align 4, !tbaa !5
  %7414 = call ptr @__errno_location() #11
  store i32 %7413, ptr %7414, align 4, !tbaa !5
  %7415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7416 = load i32, ptr @test_count, align 4, !tbaa !5
  %7417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7418 = load i32, ptr %7417, align 4, !tbaa !5
  %7419 = call ptr @s2n_strerror(i32 noundef %7418, ptr noundef @.str.4)
  %7420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  %7422 = call ptr @s2n_strerror_debug(i32 noundef %7421, ptr noundef @.str.4)
  %7423 = call ptr @__errno_location() #11
  %7424 = load i32, ptr %7423, align 4, !tbaa !5
  %7425 = call ptr @strerror(i32 noundef %7424) #10
  %7426 = call ptr @__errno_location() #11
  %7427 = load i32, ptr %7426, align 4, !tbaa !5
  %7428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7415, ptr noundef @.str.2, i32 noundef %7416, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 311, ptr noundef %7419, ptr noundef %7422, ptr noundef %7425, i32 noundef %7427) #10
  br label %7446

7429:                                             ; preds = %7407, %7400
  %7430 = load i32, ptr %157, align 4, !tbaa !5
  %7431 = call ptr @__errno_location() #11
  store i32 %7430, ptr %7431, align 4, !tbaa !5
  %7432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7433 = load i32, ptr @test_count, align 4, !tbaa !5
  %7434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @s2n_strerror(i32 noundef %7435, ptr noundef @.str.4)
  %7437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call ptr @s2n_strerror_debug(i32 noundef %7438, ptr noundef @.str.4)
  %7440 = call ptr @__errno_location() #11
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @strerror(i32 noundef %7441) #10
  %7443 = call ptr @__errno_location() #11
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7432, ptr noundef @.str.5, i32 noundef %7433, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 311, ptr noundef %7436, ptr noundef %7439, ptr noundef %7442, i32 noundef %7444) #10
  br label %7446

7446:                                             ; preds = %7429, %7412
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %7447

7447:                                             ; preds = %7446
  br label %7448

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

7449:                                             ; No predecessors!
  br label %7450

7450:                                             ; preds = %7449
  br label %7451

7451:                                             ; preds = %7450, %7391
  br label %7452

7452:                                             ; preds = %7451
  br label %7453

7453:                                             ; preds = %7452
  br label %7454

7454:                                             ; preds = %7453
  %7455 = load i32, ptr @test_count, align 4, !tbaa !5
  %7456 = add nsw i32 %7455, 1
  store i32 %7456, ptr @test_count, align 4, !tbaa !5
  %7457 = load ptr, ptr %147, align 8, !tbaa !9
  %7458 = getelementptr inbounds %struct.s2n_connection, ptr %7457, i32 0, i32 89
  %7459 = load i32, ptr %7458, align 8, !tbaa !48
  %7460 = icmp eq i32 %7459, 2
  br i1 %7460, label %7514, label %7461

7461:                                             ; preds = %7454
  br label %7462

7462:                                             ; preds = %7461
  br label %7463

7463:                                             ; preds = %7462
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #10
  %7464 = call ptr @__errno_location() #11
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  store i32 %7465, ptr %158, align 4, !tbaa !5
  %7466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7467 = call i32 @s2n_print_stacktrace(ptr noundef %7466)
  %7468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7469 = trunc i8 %7468 to i1
  br i1 %7469, label %7470, label %7492

7470:                                             ; preds = %7463
  %7471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7472 = call i32 @fileno(ptr noundef %7471) #10
  %7473 = call i32 @isatty(i32 noundef %7472) #10
  %7474 = icmp ne i32 %7473, 0
  br i1 %7474, label %7475, label %7492

7475:                                             ; preds = %7470
  %7476 = load i32, ptr %158, align 4, !tbaa !5
  %7477 = call ptr @__errno_location() #11
  store i32 %7476, ptr %7477, align 4, !tbaa !5
  %7478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7479 = load i32, ptr @test_count, align 4, !tbaa !5
  %7480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7481 = load i32, ptr %7480, align 4, !tbaa !5
  %7482 = call ptr @s2n_strerror(i32 noundef %7481, ptr noundef @.str.4)
  %7483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  %7485 = call ptr @s2n_strerror_debug(i32 noundef %7484, ptr noundef @.str.4)
  %7486 = call ptr @__errno_location() #11
  %7487 = load i32, ptr %7486, align 4, !tbaa !5
  %7488 = call ptr @strerror(i32 noundef %7487) #10
  %7489 = call ptr @__errno_location() #11
  %7490 = load i32, ptr %7489, align 4, !tbaa !5
  %7491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7478, ptr noundef @.str.2, i32 noundef %7479, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 312, ptr noundef %7482, ptr noundef %7485, ptr noundef %7488, i32 noundef %7490) #10
  br label %7509

7492:                                             ; preds = %7470, %7463
  %7493 = load i32, ptr %158, align 4, !tbaa !5
  %7494 = call ptr @__errno_location() #11
  store i32 %7493, ptr %7494, align 4, !tbaa !5
  %7495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7496 = load i32, ptr @test_count, align 4, !tbaa !5
  %7497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7498 = load i32, ptr %7497, align 4, !tbaa !5
  %7499 = call ptr @s2n_strerror(i32 noundef %7498, ptr noundef @.str.4)
  %7500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7501 = load i32, ptr %7500, align 4, !tbaa !5
  %7502 = call ptr @s2n_strerror_debug(i32 noundef %7501, ptr noundef @.str.4)
  %7503 = call ptr @__errno_location() #11
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @strerror(i32 noundef %7504) #10
  %7506 = call ptr @__errno_location() #11
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7495, ptr noundef @.str.5, i32 noundef %7496, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 312, ptr noundef %7499, ptr noundef %7502, ptr noundef %7505, i32 noundef %7507) #10
  br label %7509

7509:                                             ; preds = %7492, %7475
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #10
  br label %7510

7510:                                             ; preds = %7509
  br label %7511

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

7512:                                             ; No predecessors!
  br label %7513

7513:                                             ; preds = %7512
  br label %7514

7514:                                             ; preds = %7513, %7454
  br label %7515

7515:                                             ; preds = %7514
  br label %7516

7516:                                             ; preds = %7515
  br label %7517

7517:                                             ; preds = %7516
  %7518 = load i32, ptr @test_count, align 4, !tbaa !5
  %7519 = add nsw i32 %7518, 1
  store i32 %7519, ptr @test_count, align 4, !tbaa !5
  %7520 = load ptr, ptr %141, align 8, !tbaa !9
  %7521 = call i32 @s2n_connection_free(ptr noundef %7520)
  %7522 = icmp eq i32 %7521, -1
  br i1 %7522, label %7523, label %7576

7523:                                             ; preds = %7517
  br label %7524

7524:                                             ; preds = %7523
  br label %7525

7525:                                             ; preds = %7524
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #10
  %7526 = call ptr @__errno_location() #11
  %7527 = load i32, ptr %7526, align 4, !tbaa !5
  store i32 %7527, ptr %159, align 4, !tbaa !5
  %7528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7529 = call i32 @s2n_print_stacktrace(ptr noundef %7528)
  %7530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7531 = trunc i8 %7530 to i1
  br i1 %7531, label %7532, label %7554

7532:                                             ; preds = %7525
  %7533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7534 = call i32 @fileno(ptr noundef %7533) #10
  %7535 = call i32 @isatty(i32 noundef %7534) #10
  %7536 = icmp ne i32 %7535, 0
  br i1 %7536, label %7537, label %7554

7537:                                             ; preds = %7532
  %7538 = load i32, ptr %159, align 4, !tbaa !5
  %7539 = call ptr @__errno_location() #11
  store i32 %7538, ptr %7539, align 4, !tbaa !5
  %7540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7541 = load i32, ptr @test_count, align 4, !tbaa !5
  %7542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7543 = load i32, ptr %7542, align 4, !tbaa !5
  %7544 = call ptr @s2n_strerror(i32 noundef %7543, ptr noundef @.str.4)
  %7545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7546 = load i32, ptr %7545, align 4, !tbaa !5
  %7547 = call ptr @s2n_strerror_debug(i32 noundef %7546, ptr noundef @.str.4)
  %7548 = call ptr @__errno_location() #11
  %7549 = load i32, ptr %7548, align 4, !tbaa !5
  %7550 = call ptr @strerror(i32 noundef %7549) #10
  %7551 = call ptr @__errno_location() #11
  %7552 = load i32, ptr %7551, align 4, !tbaa !5
  %7553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7540, ptr noundef @.str.2, i32 noundef %7541, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7544, ptr noundef %7547, ptr noundef %7550, i32 noundef %7552) #10
  br label %7571

7554:                                             ; preds = %7532, %7525
  %7555 = load i32, ptr %159, align 4, !tbaa !5
  %7556 = call ptr @__errno_location() #11
  store i32 %7555, ptr %7556, align 4, !tbaa !5
  %7557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7558 = load i32, ptr @test_count, align 4, !tbaa !5
  %7559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7560 = load i32, ptr %7559, align 4, !tbaa !5
  %7561 = call ptr @s2n_strerror(i32 noundef %7560, ptr noundef @.str.4)
  %7562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7563 = load i32, ptr %7562, align 4, !tbaa !5
  %7564 = call ptr @s2n_strerror_debug(i32 noundef %7563, ptr noundef @.str.4)
  %7565 = call ptr @__errno_location() #11
  %7566 = load i32, ptr %7565, align 4, !tbaa !5
  %7567 = call ptr @strerror(i32 noundef %7566) #10
  %7568 = call ptr @__errno_location() #11
  %7569 = load i32, ptr %7568, align 4, !tbaa !5
  %7570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7557, ptr noundef @.str.5, i32 noundef %7558, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7561, ptr noundef %7564, ptr noundef %7567, i32 noundef %7569) #10
  br label %7571

7571:                                             ; preds = %7554, %7537
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #10
  br label %7572

7572:                                             ; preds = %7571
  br label %7573

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

7574:                                             ; No predecessors!
  br label %7575

7575:                                             ; preds = %7574
  br label %7576

7576:                                             ; preds = %7575, %7517
  br label %7577

7577:                                             ; preds = %7576
  br label %7578

7578:                                             ; preds = %7577
  br label %7579

7579:                                             ; preds = %7578
  %7580 = load i32, ptr @test_count, align 4, !tbaa !5
  %7581 = add nsw i32 %7580, 1
  store i32 %7581, ptr @test_count, align 4, !tbaa !5
  %7582 = load ptr, ptr %147, align 8, !tbaa !9
  %7583 = call i32 @s2n_connection_free(ptr noundef %7582)
  %7584 = icmp eq i32 %7583, -1
  br i1 %7584, label %7585, label %7638

7585:                                             ; preds = %7579
  br label %7586

7586:                                             ; preds = %7585
  br label %7587

7587:                                             ; preds = %7586
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #10
  %7588 = call ptr @__errno_location() #11
  %7589 = load i32, ptr %7588, align 4, !tbaa !5
  store i32 %7589, ptr %160, align 4, !tbaa !5
  %7590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7591 = call i32 @s2n_print_stacktrace(ptr noundef %7590)
  %7592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7593 = trunc i8 %7592 to i1
  br i1 %7593, label %7594, label %7616

7594:                                             ; preds = %7587
  %7595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7596 = call i32 @fileno(ptr noundef %7595) #10
  %7597 = call i32 @isatty(i32 noundef %7596) #10
  %7598 = icmp ne i32 %7597, 0
  br i1 %7598, label %7599, label %7616

7599:                                             ; preds = %7594
  %7600 = load i32, ptr %160, align 4, !tbaa !5
  %7601 = call ptr @__errno_location() #11
  store i32 %7600, ptr %7601, align 4, !tbaa !5
  %7602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7603 = load i32, ptr @test_count, align 4, !tbaa !5
  %7604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7605 = load i32, ptr %7604, align 4, !tbaa !5
  %7606 = call ptr @s2n_strerror(i32 noundef %7605, ptr noundef @.str.4)
  %7607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7608 = load i32, ptr %7607, align 4, !tbaa !5
  %7609 = call ptr @s2n_strerror_debug(i32 noundef %7608, ptr noundef @.str.4)
  %7610 = call ptr @__errno_location() #11
  %7611 = load i32, ptr %7610, align 4, !tbaa !5
  %7612 = call ptr @strerror(i32 noundef %7611) #10
  %7613 = call ptr @__errno_location() #11
  %7614 = load i32, ptr %7613, align 4, !tbaa !5
  %7615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7602, ptr noundef @.str.2, i32 noundef %7603, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7606, ptr noundef %7609, ptr noundef %7612, i32 noundef %7614) #10
  br label %7633

7616:                                             ; preds = %7594, %7587
  %7617 = load i32, ptr %160, align 4, !tbaa !5
  %7618 = call ptr @__errno_location() #11
  store i32 %7617, ptr %7618, align 4, !tbaa !5
  %7619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7620 = load i32, ptr @test_count, align 4, !tbaa !5
  %7621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7622 = load i32, ptr %7621, align 4, !tbaa !5
  %7623 = call ptr @s2n_strerror(i32 noundef %7622, ptr noundef @.str.4)
  %7624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7625 = load i32, ptr %7624, align 4, !tbaa !5
  %7626 = call ptr @s2n_strerror_debug(i32 noundef %7625, ptr noundef @.str.4)
  %7627 = call ptr @__errno_location() #11
  %7628 = load i32, ptr %7627, align 4, !tbaa !5
  %7629 = call ptr @strerror(i32 noundef %7628) #10
  %7630 = call ptr @__errno_location() #11
  %7631 = load i32, ptr %7630, align 4, !tbaa !5
  %7632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7619, ptr noundef @.str.5, i32 noundef %7620, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7623, ptr noundef %7626, ptr noundef %7629, i32 noundef %7631) #10
  br label %7633

7633:                                             ; preds = %7616, %7599
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #10
  br label %7634

7634:                                             ; preds = %7633
  br label %7635

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

7636:                                             ; No predecessors!
  br label %7637

7637:                                             ; preds = %7636
  br label %7638

7638:                                             ; preds = %7637, %7579
  br label %7639

7639:                                             ; preds = %7638
  br label %7640

7640:                                             ; preds = %7639
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #10
  %7641 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7641, ptr %161, align 8, !tbaa !9
  br label %7642

7642:                                             ; preds = %7640
  %7643 = load i32, ptr @test_count, align 4, !tbaa !5
  %7644 = add nsw i32 %7643, 1
  store i32 %7644, ptr @test_count, align 4, !tbaa !5
  %7645 = load ptr, ptr %161, align 8, !tbaa !9
  %7646 = icmp eq ptr %7645, null
  br i1 %7646, label %7647, label %7700

7647:                                             ; preds = %7642
  br label %7648

7648:                                             ; preds = %7647
  br label %7649

7649:                                             ; preds = %7648
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #10
  %7650 = call ptr @__errno_location() #11
  %7651 = load i32, ptr %7650, align 4, !tbaa !5
  store i32 %7651, ptr %162, align 4, !tbaa !5
  %7652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7653 = call i32 @s2n_print_stacktrace(ptr noundef %7652)
  %7654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7655 = trunc i8 %7654 to i1
  br i1 %7655, label %7656, label %7678

7656:                                             ; preds = %7649
  %7657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7658 = call i32 @fileno(ptr noundef %7657) #10
  %7659 = call i32 @isatty(i32 noundef %7658) #10
  %7660 = icmp ne i32 %7659, 0
  br i1 %7660, label %7661, label %7678

7661:                                             ; preds = %7656
  %7662 = load i32, ptr %162, align 4, !tbaa !5
  %7663 = call ptr @__errno_location() #11
  store i32 %7662, ptr %7663, align 4, !tbaa !5
  %7664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7665 = load i32, ptr @test_count, align 4, !tbaa !5
  %7666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7667 = load i32, ptr %7666, align 4, !tbaa !5
  %7668 = call ptr @s2n_strerror(i32 noundef %7667, ptr noundef @.str.4)
  %7669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7670 = load i32, ptr %7669, align 4, !tbaa !5
  %7671 = call ptr @s2n_strerror_debug(i32 noundef %7670, ptr noundef @.str.4)
  %7672 = call ptr @__errno_location() #11
  %7673 = load i32, ptr %7672, align 4, !tbaa !5
  %7674 = call ptr @strerror(i32 noundef %7673) #10
  %7675 = call ptr @__errno_location() #11
  %7676 = load i32, ptr %7675, align 4, !tbaa !5
  %7677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7664, ptr noundef @.str.2, i32 noundef %7665, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 321, ptr noundef %7668, ptr noundef %7671, ptr noundef %7674, i32 noundef %7676) #10
  br label %7695

7678:                                             ; preds = %7656, %7649
  %7679 = load i32, ptr %162, align 4, !tbaa !5
  %7680 = call ptr @__errno_location() #11
  store i32 %7679, ptr %7680, align 4, !tbaa !5
  %7681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7682 = load i32, ptr @test_count, align 4, !tbaa !5
  %7683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7684 = load i32, ptr %7683, align 4, !tbaa !5
  %7685 = call ptr @s2n_strerror(i32 noundef %7684, ptr noundef @.str.4)
  %7686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7687 = load i32, ptr %7686, align 4, !tbaa !5
  %7688 = call ptr @s2n_strerror_debug(i32 noundef %7687, ptr noundef @.str.4)
  %7689 = call ptr @__errno_location() #11
  %7690 = load i32, ptr %7689, align 4, !tbaa !5
  %7691 = call ptr @strerror(i32 noundef %7690) #10
  %7692 = call ptr @__errno_location() #11
  %7693 = load i32, ptr %7692, align 4, !tbaa !5
  %7694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7681, ptr noundef @.str.5, i32 noundef %7682, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 321, ptr noundef %7685, ptr noundef %7688, ptr noundef %7691, i32 noundef %7693) #10
  br label %7695

7695:                                             ; preds = %7678, %7661
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #10
  br label %7696

7696:                                             ; preds = %7695
  br label %7697

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

7698:                                             ; No predecessors!
  br label %7699

7699:                                             ; preds = %7698
  br label %7700

7700:                                             ; preds = %7699, %7642
  br label %7701

7701:                                             ; preds = %7700
  br label %7702

7702:                                             ; preds = %7701
  br label %7703

7703:                                             ; preds = %7702
  %7704 = load i32, ptr @test_count, align 4, !tbaa !5
  %7705 = add nsw i32 %7704, 1
  store i32 %7705, ptr @test_count, align 4, !tbaa !5
  %7706 = load ptr, ptr %161, align 8, !tbaa !9
  %7707 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %7706, ptr noundef @.str.16)
  %7708 = icmp eq i32 %7707, -1
  br i1 %7708, label %7709, label %7762

7709:                                             ; preds = %7703
  br label %7710

7710:                                             ; preds = %7709
  br label %7711

7711:                                             ; preds = %7710
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %7712 = call ptr @__errno_location() #11
  %7713 = load i32, ptr %7712, align 4, !tbaa !5
  store i32 %7713, ptr %163, align 4, !tbaa !5
  %7714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7715 = call i32 @s2n_print_stacktrace(ptr noundef %7714)
  %7716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7717 = trunc i8 %7716 to i1
  br i1 %7717, label %7718, label %7740

7718:                                             ; preds = %7711
  %7719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7720 = call i32 @fileno(ptr noundef %7719) #10
  %7721 = call i32 @isatty(i32 noundef %7720) #10
  %7722 = icmp ne i32 %7721, 0
  br i1 %7722, label %7723, label %7740

7723:                                             ; preds = %7718
  %7724 = load i32, ptr %163, align 4, !tbaa !5
  %7725 = call ptr @__errno_location() #11
  store i32 %7724, ptr %7725, align 4, !tbaa !5
  %7726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7727 = load i32, ptr @test_count, align 4, !tbaa !5
  %7728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7729 = load i32, ptr %7728, align 4, !tbaa !5
  %7730 = call ptr @s2n_strerror(i32 noundef %7729, ptr noundef @.str.4)
  %7731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7732 = load i32, ptr %7731, align 4, !tbaa !5
  %7733 = call ptr @s2n_strerror_debug(i32 noundef %7732, ptr noundef @.str.4)
  %7734 = call ptr @__errno_location() #11
  %7735 = load i32, ptr %7734, align 4, !tbaa !5
  %7736 = call ptr @strerror(i32 noundef %7735) #10
  %7737 = call ptr @__errno_location() #11
  %7738 = load i32, ptr %7737, align 4, !tbaa !5
  %7739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7726, ptr noundef @.str.2, i32 noundef %7727, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 322, ptr noundef %7730, ptr noundef %7733, ptr noundef %7736, i32 noundef %7738) #10
  br label %7757

7740:                                             ; preds = %7718, %7711
  %7741 = load i32, ptr %163, align 4, !tbaa !5
  %7742 = call ptr @__errno_location() #11
  store i32 %7741, ptr %7742, align 4, !tbaa !5
  %7743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7744 = load i32, ptr @test_count, align 4, !tbaa !5
  %7745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  %7747 = call ptr @s2n_strerror(i32 noundef %7746, ptr noundef @.str.4)
  %7748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7749 = load i32, ptr %7748, align 4, !tbaa !5
  %7750 = call ptr @s2n_strerror_debug(i32 noundef %7749, ptr noundef @.str.4)
  %7751 = call ptr @__errno_location() #11
  %7752 = load i32, ptr %7751, align 4, !tbaa !5
  %7753 = call ptr @strerror(i32 noundef %7752) #10
  %7754 = call ptr @__errno_location() #11
  %7755 = load i32, ptr %7754, align 4, !tbaa !5
  %7756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7743, ptr noundef @.str.5, i32 noundef %7744, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 322, ptr noundef %7747, ptr noundef %7750, ptr noundef %7753, i32 noundef %7755) #10
  br label %7757

7757:                                             ; preds = %7740, %7723
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %7758

7758:                                             ; preds = %7757
  br label %7759

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

7760:                                             ; No predecessors!
  br label %7761

7761:                                             ; preds = %7760
  br label %7762

7762:                                             ; preds = %7761, %7703
  br label %7763

7763:                                             ; preds = %7762
  br label %7764

7764:                                             ; preds = %7763
  br label %7765

7765:                                             ; preds = %7764
  %7766 = load i32, ptr @test_count, align 4, !tbaa !5
  %7767 = add nsw i32 %7766, 1
  store i32 %7767, ptr @test_count, align 4, !tbaa !5
  %7768 = load ptr, ptr %161, align 8, !tbaa !9
  %7769 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %7768, i32 noundef 1, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %7770 = getelementptr inbounds %struct.s2n_result, ptr %164, i32 0, i32 0
  store i32 %7769, ptr %7770, align 4
  %7771 = getelementptr inbounds %struct.s2n_result, ptr %164, i32 0, i32 0
  %7772 = load i32, ptr %7771, align 4
  %7773 = call zeroext i1 @s2n_result_is_ok(i32 %7772)
  br i1 %7773, label %7827, label %7774

7774:                                             ; preds = %7765
  br label %7775

7775:                                             ; preds = %7774
  br label %7776

7776:                                             ; preds = %7775
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  %7777 = call ptr @__errno_location() #11
  %7778 = load i32, ptr %7777, align 4, !tbaa !5
  store i32 %7778, ptr %165, align 4, !tbaa !5
  %7779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7780 = call i32 @s2n_print_stacktrace(ptr noundef %7779)
  %7781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7782 = trunc i8 %7781 to i1
  br i1 %7782, label %7783, label %7805

7783:                                             ; preds = %7776
  %7784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7785 = call i32 @fileno(ptr noundef %7784) #10
  %7786 = call i32 @isatty(i32 noundef %7785) #10
  %7787 = icmp ne i32 %7786, 0
  br i1 %7787, label %7788, label %7805

7788:                                             ; preds = %7783
  %7789 = load i32, ptr %165, align 4, !tbaa !5
  %7790 = call ptr @__errno_location() #11
  store i32 %7789, ptr %7790, align 4, !tbaa !5
  %7791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7792 = load i32, ptr @test_count, align 4, !tbaa !5
  %7793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7794 = load i32, ptr %7793, align 4, !tbaa !5
  %7795 = call ptr @s2n_strerror(i32 noundef %7794, ptr noundef @.str.4)
  %7796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7797 = load i32, ptr %7796, align 4, !tbaa !5
  %7798 = call ptr @s2n_strerror_debug(i32 noundef %7797, ptr noundef @.str.4)
  %7799 = call ptr @__errno_location() #11
  %7800 = load i32, ptr %7799, align 4, !tbaa !5
  %7801 = call ptr @strerror(i32 noundef %7800) #10
  %7802 = call ptr @__errno_location() #11
  %7803 = load i32, ptr %7802, align 4, !tbaa !5
  %7804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7791, ptr noundef @.str.2, i32 noundef %7792, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 323, ptr noundef %7795, ptr noundef %7798, ptr noundef %7801, i32 noundef %7803) #10
  br label %7822

7805:                                             ; preds = %7783, %7776
  %7806 = load i32, ptr %165, align 4, !tbaa !5
  %7807 = call ptr @__errno_location() #11
  store i32 %7806, ptr %7807, align 4, !tbaa !5
  %7808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7809 = load i32, ptr @test_count, align 4, !tbaa !5
  %7810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7811 = load i32, ptr %7810, align 4, !tbaa !5
  %7812 = call ptr @s2n_strerror(i32 noundef %7811, ptr noundef @.str.4)
  %7813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7814 = load i32, ptr %7813, align 4, !tbaa !5
  %7815 = call ptr @s2n_strerror_debug(i32 noundef %7814, ptr noundef @.str.4)
  %7816 = call ptr @__errno_location() #11
  %7817 = load i32, ptr %7816, align 4, !tbaa !5
  %7818 = call ptr @strerror(i32 noundef %7817) #10
  %7819 = call ptr @__errno_location() #11
  %7820 = load i32, ptr %7819, align 4, !tbaa !5
  %7821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7808, ptr noundef @.str.5, i32 noundef %7809, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 323, ptr noundef %7812, ptr noundef %7815, ptr noundef %7818, i32 noundef %7820) #10
  br label %7822

7822:                                             ; preds = %7805, %7788
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  br label %7823

7823:                                             ; preds = %7822
  br label %7824

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

7825:                                             ; No predecessors!
  br label %7826

7826:                                             ; preds = %7825
  br label %7827

7827:                                             ; preds = %7826, %7765
  br label %7828

7828:                                             ; preds = %7827
  br label %7829

7829:                                             ; preds = %7828
  br label %7830

7830:                                             ; preds = %7829
  %7831 = load i32, ptr @test_count, align 4, !tbaa !5
  %7832 = add nsw i32 %7831, 1
  store i32 %7832, ptr @test_count, align 4, !tbaa !5
  %7833 = load ptr, ptr %161, align 8, !tbaa !9
  %7834 = getelementptr inbounds %struct.s2n_connection, ptr %7833, i32 0, i32 89
  %7835 = load i32, ptr %7834, align 8, !tbaa !48
  %7836 = icmp eq i32 %7835, 0
  br i1 %7836, label %7890, label %7837

7837:                                             ; preds = %7830
  br label %7838

7838:                                             ; preds = %7837
  br label %7839

7839:                                             ; preds = %7838
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #10
  %7840 = call ptr @__errno_location() #11
  %7841 = load i32, ptr %7840, align 4, !tbaa !5
  store i32 %7841, ptr %166, align 4, !tbaa !5
  %7842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7843 = call i32 @s2n_print_stacktrace(ptr noundef %7842)
  %7844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7845 = trunc i8 %7844 to i1
  br i1 %7845, label %7846, label %7868

7846:                                             ; preds = %7839
  %7847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7848 = call i32 @fileno(ptr noundef %7847) #10
  %7849 = call i32 @isatty(i32 noundef %7848) #10
  %7850 = icmp ne i32 %7849, 0
  br i1 %7850, label %7851, label %7868

7851:                                             ; preds = %7846
  %7852 = load i32, ptr %166, align 4, !tbaa !5
  %7853 = call ptr @__errno_location() #11
  store i32 %7852, ptr %7853, align 4, !tbaa !5
  %7854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7855 = load i32, ptr @test_count, align 4, !tbaa !5
  %7856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7857 = load i32, ptr %7856, align 4, !tbaa !5
  %7858 = call ptr @s2n_strerror(i32 noundef %7857, ptr noundef @.str.4)
  %7859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7860 = load i32, ptr %7859, align 4, !tbaa !5
  %7861 = call ptr @s2n_strerror_debug(i32 noundef %7860, ptr noundef @.str.4)
  %7862 = call ptr @__errno_location() #11
  %7863 = load i32, ptr %7862, align 4, !tbaa !5
  %7864 = call ptr @strerror(i32 noundef %7863) #10
  %7865 = call ptr @__errno_location() #11
  %7866 = load i32, ptr %7865, align 4, !tbaa !5
  %7867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7854, ptr noundef @.str.2, i32 noundef %7855, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 324, ptr noundef %7858, ptr noundef %7861, ptr noundef %7864, i32 noundef %7866) #10
  br label %7885

7868:                                             ; preds = %7846, %7839
  %7869 = load i32, ptr %166, align 4, !tbaa !5
  %7870 = call ptr @__errno_location() #11
  store i32 %7869, ptr %7870, align 4, !tbaa !5
  %7871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7872 = load i32, ptr @test_count, align 4, !tbaa !5
  %7873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7874 = load i32, ptr %7873, align 4, !tbaa !5
  %7875 = call ptr @s2n_strerror(i32 noundef %7874, ptr noundef @.str.4)
  %7876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7877 = load i32, ptr %7876, align 4, !tbaa !5
  %7878 = call ptr @s2n_strerror_debug(i32 noundef %7877, ptr noundef @.str.4)
  %7879 = call ptr @__errno_location() #11
  %7880 = load i32, ptr %7879, align 4, !tbaa !5
  %7881 = call ptr @strerror(i32 noundef %7880) #10
  %7882 = call ptr @__errno_location() #11
  %7883 = load i32, ptr %7882, align 4, !tbaa !5
  %7884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7871, ptr noundef @.str.5, i32 noundef %7872, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 324, ptr noundef %7875, ptr noundef %7878, ptr noundef %7881, i32 noundef %7883) #10
  br label %7885

7885:                                             ; preds = %7868, %7851
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #10
  br label %7886

7886:                                             ; preds = %7885
  br label %7887

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

7888:                                             ; No predecessors!
  br label %7889

7889:                                             ; preds = %7888
  br label %7890

7890:                                             ; preds = %7889, %7830
  br label %7891

7891:                                             ; preds = %7890
  br label %7892

7892:                                             ; preds = %7891
  br label %7893

7893:                                             ; preds = %7892
  %7894 = load i32, ptr @test_count, align 4, !tbaa !5
  %7895 = add nsw i32 %7894, 1
  store i32 %7895, ptr @test_count, align 4, !tbaa !5
  %7896 = load ptr, ptr %161, align 8, !tbaa !9
  %7897 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %7896)
  %7898 = icmp eq i32 %7897, -1
  br i1 %7898, label %7899, label %7952

7899:                                             ; preds = %7893
  br label %7900

7900:                                             ; preds = %7899
  br label %7901

7901:                                             ; preds = %7900
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  %7902 = call ptr @__errno_location() #11
  %7903 = load i32, ptr %7902, align 4, !tbaa !5
  store i32 %7903, ptr %167, align 4, !tbaa !5
  %7904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7905 = call i32 @s2n_print_stacktrace(ptr noundef %7904)
  %7906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7907 = trunc i8 %7906 to i1
  br i1 %7907, label %7908, label %7930

7908:                                             ; preds = %7901
  %7909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7910 = call i32 @fileno(ptr noundef %7909) #10
  %7911 = call i32 @isatty(i32 noundef %7910) #10
  %7912 = icmp ne i32 %7911, 0
  br i1 %7912, label %7913, label %7930

7913:                                             ; preds = %7908
  %7914 = load i32, ptr %167, align 4, !tbaa !5
  %7915 = call ptr @__errno_location() #11
  store i32 %7914, ptr %7915, align 4, !tbaa !5
  %7916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7917 = load i32, ptr @test_count, align 4, !tbaa !5
  %7918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7919 = load i32, ptr %7918, align 4, !tbaa !5
  %7920 = call ptr @s2n_strerror(i32 noundef %7919, ptr noundef @.str.4)
  %7921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7922 = load i32, ptr %7921, align 4, !tbaa !5
  %7923 = call ptr @s2n_strerror_debug(i32 noundef %7922, ptr noundef @.str.4)
  %7924 = call ptr @__errno_location() #11
  %7925 = load i32, ptr %7924, align 4, !tbaa !5
  %7926 = call ptr @strerror(i32 noundef %7925) #10
  %7927 = call ptr @__errno_location() #11
  %7928 = load i32, ptr %7927, align 4, !tbaa !5
  %7929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7916, ptr noundef @.str.2, i32 noundef %7917, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 325, ptr noundef %7920, ptr noundef %7923, ptr noundef %7926, i32 noundef %7928) #10
  br label %7947

7930:                                             ; preds = %7908, %7901
  %7931 = load i32, ptr %167, align 4, !tbaa !5
  %7932 = call ptr @__errno_location() #11
  store i32 %7931, ptr %7932, align 4, !tbaa !5
  %7933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7934 = load i32, ptr @test_count, align 4, !tbaa !5
  %7935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call ptr @s2n_strerror(i32 noundef %7936, ptr noundef @.str.4)
  %7938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7939 = load i32, ptr %7938, align 4, !tbaa !5
  %7940 = call ptr @s2n_strerror_debug(i32 noundef %7939, ptr noundef @.str.4)
  %7941 = call ptr @__errno_location() #11
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  %7943 = call ptr @strerror(i32 noundef %7942) #10
  %7944 = call ptr @__errno_location() #11
  %7945 = load i32, ptr %7944, align 4, !tbaa !5
  %7946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7933, ptr noundef @.str.5, i32 noundef %7934, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 325, ptr noundef %7937, ptr noundef %7940, ptr noundef %7943, i32 noundef %7945) #10
  br label %7947

7947:                                             ; preds = %7930, %7913
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  br label %7948

7948:                                             ; preds = %7947
  br label %7949

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

7950:                                             ; No predecessors!
  br label %7951

7951:                                             ; preds = %7950
  br label %7952

7952:                                             ; preds = %7951, %7893
  br label %7953

7953:                                             ; preds = %7952
  br label %7954

7954:                                             ; preds = %7953
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #10
  %7955 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7955, ptr %168, align 8, !tbaa !9
  br label %7956

7956:                                             ; preds = %7954
  %7957 = load i32, ptr @test_count, align 4, !tbaa !5
  %7958 = add nsw i32 %7957, 1
  store i32 %7958, ptr @test_count, align 4, !tbaa !5
  %7959 = load ptr, ptr %168, align 8, !tbaa !9
  %7960 = icmp eq ptr %7959, null
  br i1 %7960, label %7961, label %8014

7961:                                             ; preds = %7956
  br label %7962

7962:                                             ; preds = %7961
  br label %7963

7963:                                             ; preds = %7962
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %7964 = call ptr @__errno_location() #11
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  store i32 %7965, ptr %169, align 4, !tbaa !5
  %7966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7967 = call i32 @s2n_print_stacktrace(ptr noundef %7966)
  %7968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7969 = trunc i8 %7968 to i1
  br i1 %7969, label %7970, label %7992

7970:                                             ; preds = %7963
  %7971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7972 = call i32 @fileno(ptr noundef %7971) #10
  %7973 = call i32 @isatty(i32 noundef %7972) #10
  %7974 = icmp ne i32 %7973, 0
  br i1 %7974, label %7975, label %7992

7975:                                             ; preds = %7970
  %7976 = load i32, ptr %169, align 4, !tbaa !5
  %7977 = call ptr @__errno_location() #11
  store i32 %7976, ptr %7977, align 4, !tbaa !5
  %7978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7979 = load i32, ptr @test_count, align 4, !tbaa !5
  %7980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7981 = load i32, ptr %7980, align 4, !tbaa !5
  %7982 = call ptr @s2n_strerror(i32 noundef %7981, ptr noundef @.str.4)
  %7983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7984 = load i32, ptr %7983, align 4, !tbaa !5
  %7985 = call ptr @s2n_strerror_debug(i32 noundef %7984, ptr noundef @.str.4)
  %7986 = call ptr @__errno_location() #11
  %7987 = load i32, ptr %7986, align 4, !tbaa !5
  %7988 = call ptr @strerror(i32 noundef %7987) #10
  %7989 = call ptr @__errno_location() #11
  %7990 = load i32, ptr %7989, align 4, !tbaa !5
  %7991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7978, ptr noundef @.str.2, i32 noundef %7979, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7982, ptr noundef %7985, ptr noundef %7988, i32 noundef %7990) #10
  br label %8009

7992:                                             ; preds = %7970, %7963
  %7993 = load i32, ptr %169, align 4, !tbaa !5
  %7994 = call ptr @__errno_location() #11
  store i32 %7993, ptr %7994, align 4, !tbaa !5
  %7995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7996 = load i32, ptr @test_count, align 4, !tbaa !5
  %7997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7998 = load i32, ptr %7997, align 4, !tbaa !5
  %7999 = call ptr @s2n_strerror(i32 noundef %7998, ptr noundef @.str.4)
  %8000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8001 = load i32, ptr %8000, align 4, !tbaa !5
  %8002 = call ptr @s2n_strerror_debug(i32 noundef %8001, ptr noundef @.str.4)
  %8003 = call ptr @__errno_location() #11
  %8004 = load i32, ptr %8003, align 4, !tbaa !5
  %8005 = call ptr @strerror(i32 noundef %8004) #10
  %8006 = call ptr @__errno_location() #11
  %8007 = load i32, ptr %8006, align 4, !tbaa !5
  %8008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7995, ptr noundef @.str.5, i32 noundef %7996, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7999, ptr noundef %8002, ptr noundef %8005, i32 noundef %8007) #10
  br label %8009

8009:                                             ; preds = %7992, %7975
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %8010

8010:                                             ; preds = %8009
  br label %8011

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

8012:                                             ; No predecessors!
  br label %8013

8013:                                             ; preds = %8012
  br label %8014

8014:                                             ; preds = %8013, %7956
  br label %8015

8015:                                             ; preds = %8014
  br label %8016

8016:                                             ; preds = %8015
  br label %8017

8017:                                             ; preds = %8016
  %8018 = load i32, ptr @test_count, align 4, !tbaa !5
  %8019 = add nsw i32 %8018, 1
  store i32 %8019, ptr @test_count, align 4, !tbaa !5
  %8020 = load ptr, ptr %168, align 8, !tbaa !9
  %8021 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8020, ptr noundef @.str.16)
  %8022 = icmp eq i32 %8021, -1
  br i1 %8022, label %8023, label %8076

8023:                                             ; preds = %8017
  br label %8024

8024:                                             ; preds = %8023
  br label %8025

8025:                                             ; preds = %8024
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #10
  %8026 = call ptr @__errno_location() #11
  %8027 = load i32, ptr %8026, align 4, !tbaa !5
  store i32 %8027, ptr %170, align 4, !tbaa !5
  %8028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8029 = call i32 @s2n_print_stacktrace(ptr noundef %8028)
  %8030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8031 = trunc i8 %8030 to i1
  br i1 %8031, label %8032, label %8054

8032:                                             ; preds = %8025
  %8033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8034 = call i32 @fileno(ptr noundef %8033) #10
  %8035 = call i32 @isatty(i32 noundef %8034) #10
  %8036 = icmp ne i32 %8035, 0
  br i1 %8036, label %8037, label %8054

8037:                                             ; preds = %8032
  %8038 = load i32, ptr %170, align 4, !tbaa !5
  %8039 = call ptr @__errno_location() #11
  store i32 %8038, ptr %8039, align 4, !tbaa !5
  %8040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8041 = load i32, ptr @test_count, align 4, !tbaa !5
  %8042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8043 = load i32, ptr %8042, align 4, !tbaa !5
  %8044 = call ptr @s2n_strerror(i32 noundef %8043, ptr noundef @.str.4)
  %8045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8046 = load i32, ptr %8045, align 4, !tbaa !5
  %8047 = call ptr @s2n_strerror_debug(i32 noundef %8046, ptr noundef @.str.4)
  %8048 = call ptr @__errno_location() #11
  %8049 = load i32, ptr %8048, align 4, !tbaa !5
  %8050 = call ptr @strerror(i32 noundef %8049) #10
  %8051 = call ptr @__errno_location() #11
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  %8053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8040, ptr noundef @.str.2, i32 noundef %8041, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 329, ptr noundef %8044, ptr noundef %8047, ptr noundef %8050, i32 noundef %8052) #10
  br label %8071

8054:                                             ; preds = %8032, %8025
  %8055 = load i32, ptr %170, align 4, !tbaa !5
  %8056 = call ptr @__errno_location() #11
  store i32 %8055, ptr %8056, align 4, !tbaa !5
  %8057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8058 = load i32, ptr @test_count, align 4, !tbaa !5
  %8059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8060 = load i32, ptr %8059, align 4, !tbaa !5
  %8061 = call ptr @s2n_strerror(i32 noundef %8060, ptr noundef @.str.4)
  %8062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8063 = load i32, ptr %8062, align 4, !tbaa !5
  %8064 = call ptr @s2n_strerror_debug(i32 noundef %8063, ptr noundef @.str.4)
  %8065 = call ptr @__errno_location() #11
  %8066 = load i32, ptr %8065, align 4, !tbaa !5
  %8067 = call ptr @strerror(i32 noundef %8066) #10
  %8068 = call ptr @__errno_location() #11
  %8069 = load i32, ptr %8068, align 4, !tbaa !5
  %8070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8057, ptr noundef @.str.5, i32 noundef %8058, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 329, ptr noundef %8061, ptr noundef %8064, ptr noundef %8067, i32 noundef %8069) #10
  br label %8071

8071:                                             ; preds = %8054, %8037
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #10
  br label %8072

8072:                                             ; preds = %8071
  br label %8073

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

8074:                                             ; No predecessors!
  br label %8075

8075:                                             ; preds = %8074
  br label %8076

8076:                                             ; preds = %8075, %8017
  br label %8077

8077:                                             ; preds = %8076
  br label %8078

8078:                                             ; preds = %8077
  br label %8079

8079:                                             ; preds = %8078
  %8080 = load i32, ptr @test_count, align 4, !tbaa !5
  %8081 = add nsw i32 %8080, 1
  store i32 %8081, ptr @test_count, align 4, !tbaa !5
  %8082 = load ptr, ptr %168, align 8, !tbaa !9
  %8083 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %8082, i32 noundef 1, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %8084 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  store i32 %8083, ptr %8084, align 4
  %8085 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  %8086 = load i32, ptr %8085, align 4
  %8087 = call zeroext i1 @s2n_result_is_ok(i32 %8086)
  br i1 %8087, label %8141, label %8088

8088:                                             ; preds = %8079
  br label %8089

8089:                                             ; preds = %8088
  br label %8090

8090:                                             ; preds = %8089
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #10
  %8091 = call ptr @__errno_location() #11
  %8092 = load i32, ptr %8091, align 4, !tbaa !5
  store i32 %8092, ptr %172, align 4, !tbaa !5
  %8093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8094 = call i32 @s2n_print_stacktrace(ptr noundef %8093)
  %8095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8096 = trunc i8 %8095 to i1
  br i1 %8096, label %8097, label %8119

8097:                                             ; preds = %8090
  %8098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8099 = call i32 @fileno(ptr noundef %8098) #10
  %8100 = call i32 @isatty(i32 noundef %8099) #10
  %8101 = icmp ne i32 %8100, 0
  br i1 %8101, label %8102, label %8119

8102:                                             ; preds = %8097
  %8103 = load i32, ptr %172, align 4, !tbaa !5
  %8104 = call ptr @__errno_location() #11
  store i32 %8103, ptr %8104, align 4, !tbaa !5
  %8105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8106 = load i32, ptr @test_count, align 4, !tbaa !5
  %8107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8108 = load i32, ptr %8107, align 4, !tbaa !5
  %8109 = call ptr @s2n_strerror(i32 noundef %8108, ptr noundef @.str.4)
  %8110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8111 = load i32, ptr %8110, align 4, !tbaa !5
  %8112 = call ptr @s2n_strerror_debug(i32 noundef %8111, ptr noundef @.str.4)
  %8113 = call ptr @__errno_location() #11
  %8114 = load i32, ptr %8113, align 4, !tbaa !5
  %8115 = call ptr @strerror(i32 noundef %8114) #10
  %8116 = call ptr @__errno_location() #11
  %8117 = load i32, ptr %8116, align 4, !tbaa !5
  %8118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8105, ptr noundef @.str.2, i32 noundef %8106, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 330, ptr noundef %8109, ptr noundef %8112, ptr noundef %8115, i32 noundef %8117) #10
  br label %8136

8119:                                             ; preds = %8097, %8090
  %8120 = load i32, ptr %172, align 4, !tbaa !5
  %8121 = call ptr @__errno_location() #11
  store i32 %8120, ptr %8121, align 4, !tbaa !5
  %8122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8123 = load i32, ptr @test_count, align 4, !tbaa !5
  %8124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8125 = load i32, ptr %8124, align 4, !tbaa !5
  %8126 = call ptr @s2n_strerror(i32 noundef %8125, ptr noundef @.str.4)
  %8127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8128 = load i32, ptr %8127, align 4, !tbaa !5
  %8129 = call ptr @s2n_strerror_debug(i32 noundef %8128, ptr noundef @.str.4)
  %8130 = call ptr @__errno_location() #11
  %8131 = load i32, ptr %8130, align 4, !tbaa !5
  %8132 = call ptr @strerror(i32 noundef %8131) #10
  %8133 = call ptr @__errno_location() #11
  %8134 = load i32, ptr %8133, align 4, !tbaa !5
  %8135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8122, ptr noundef @.str.5, i32 noundef %8123, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 330, ptr noundef %8126, ptr noundef %8129, ptr noundef %8132, i32 noundef %8134) #10
  br label %8136

8136:                                             ; preds = %8119, %8102
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #10
  br label %8137

8137:                                             ; preds = %8136
  br label %8138

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

8139:                                             ; No predecessors!
  br label %8140

8140:                                             ; preds = %8139
  br label %8141

8141:                                             ; preds = %8140, %8079
  br label %8142

8142:                                             ; preds = %8141
  br label %8143

8143:                                             ; preds = %8142
  br label %8144

8144:                                             ; preds = %8143
  %8145 = load i32, ptr @test_count, align 4, !tbaa !5
  %8146 = add nsw i32 %8145, 1
  store i32 %8146, ptr @test_count, align 4, !tbaa !5
  %8147 = load ptr, ptr %168, align 8, !tbaa !9
  %8148 = getelementptr inbounds %struct.s2n_connection, ptr %8147, i32 0, i32 89
  %8149 = load i32, ptr %8148, align 8, !tbaa !48
  %8150 = icmp eq i32 %8149, 0
  br i1 %8150, label %8204, label %8151

8151:                                             ; preds = %8144
  br label %8152

8152:                                             ; preds = %8151
  br label %8153

8153:                                             ; preds = %8152
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #10
  %8154 = call ptr @__errno_location() #11
  %8155 = load i32, ptr %8154, align 4, !tbaa !5
  store i32 %8155, ptr %173, align 4, !tbaa !5
  %8156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8157 = call i32 @s2n_print_stacktrace(ptr noundef %8156)
  %8158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8159 = trunc i8 %8158 to i1
  br i1 %8159, label %8160, label %8182

8160:                                             ; preds = %8153
  %8161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8162 = call i32 @fileno(ptr noundef %8161) #10
  %8163 = call i32 @isatty(i32 noundef %8162) #10
  %8164 = icmp ne i32 %8163, 0
  br i1 %8164, label %8165, label %8182

8165:                                             ; preds = %8160
  %8166 = load i32, ptr %173, align 4, !tbaa !5
  %8167 = call ptr @__errno_location() #11
  store i32 %8166, ptr %8167, align 4, !tbaa !5
  %8168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8169 = load i32, ptr @test_count, align 4, !tbaa !5
  %8170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8171 = load i32, ptr %8170, align 4, !tbaa !5
  %8172 = call ptr @s2n_strerror(i32 noundef %8171, ptr noundef @.str.4)
  %8173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8174 = load i32, ptr %8173, align 4, !tbaa !5
  %8175 = call ptr @s2n_strerror_debug(i32 noundef %8174, ptr noundef @.str.4)
  %8176 = call ptr @__errno_location() #11
  %8177 = load i32, ptr %8176, align 4, !tbaa !5
  %8178 = call ptr @strerror(i32 noundef %8177) #10
  %8179 = call ptr @__errno_location() #11
  %8180 = load i32, ptr %8179, align 4, !tbaa !5
  %8181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8168, ptr noundef @.str.2, i32 noundef %8169, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 331, ptr noundef %8172, ptr noundef %8175, ptr noundef %8178, i32 noundef %8180) #10
  br label %8199

8182:                                             ; preds = %8160, %8153
  %8183 = load i32, ptr %173, align 4, !tbaa !5
  %8184 = call ptr @__errno_location() #11
  store i32 %8183, ptr %8184, align 4, !tbaa !5
  %8185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8186 = load i32, ptr @test_count, align 4, !tbaa !5
  %8187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8188 = load i32, ptr %8187, align 4, !tbaa !5
  %8189 = call ptr @s2n_strerror(i32 noundef %8188, ptr noundef @.str.4)
  %8190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8191 = load i32, ptr %8190, align 4, !tbaa !5
  %8192 = call ptr @s2n_strerror_debug(i32 noundef %8191, ptr noundef @.str.4)
  %8193 = call ptr @__errno_location() #11
  %8194 = load i32, ptr %8193, align 4, !tbaa !5
  %8195 = call ptr @strerror(i32 noundef %8194) #10
  %8196 = call ptr @__errno_location() #11
  %8197 = load i32, ptr %8196, align 4, !tbaa !5
  %8198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8185, ptr noundef @.str.5, i32 noundef %8186, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 331, ptr noundef %8189, ptr noundef %8192, ptr noundef %8195, i32 noundef %8197) #10
  br label %8199

8199:                                             ; preds = %8182, %8165
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #10
  br label %8200

8200:                                             ; preds = %8199
  br label %8201

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

8202:                                             ; No predecessors!
  br label %8203

8203:                                             ; preds = %8202
  br label %8204

8204:                                             ; preds = %8203, %8144
  br label %8205

8205:                                             ; preds = %8204
  br label %8206

8206:                                             ; preds = %8205
  br label %8207

8207:                                             ; preds = %8206
  %8208 = load i32, ptr @test_count, align 4, !tbaa !5
  %8209 = add nsw i32 %8208, 1
  store i32 %8209, ptr @test_count, align 4, !tbaa !5
  %8210 = load ptr, ptr %161, align 8, !tbaa !9
  %8211 = call i32 @s2n_client_hello_send(ptr noundef %8210)
  %8212 = icmp eq i32 %8211, -1
  br i1 %8212, label %8213, label %8266

8213:                                             ; preds = %8207
  br label %8214

8214:                                             ; preds = %8213
  br label %8215

8215:                                             ; preds = %8214
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #10
  %8216 = call ptr @__errno_location() #11
  %8217 = load i32, ptr %8216, align 4, !tbaa !5
  store i32 %8217, ptr %174, align 4, !tbaa !5
  %8218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8219 = call i32 @s2n_print_stacktrace(ptr noundef %8218)
  %8220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8221 = trunc i8 %8220 to i1
  br i1 %8221, label %8222, label %8244

8222:                                             ; preds = %8215
  %8223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8224 = call i32 @fileno(ptr noundef %8223) #10
  %8225 = call i32 @isatty(i32 noundef %8224) #10
  %8226 = icmp ne i32 %8225, 0
  br i1 %8226, label %8227, label %8244

8227:                                             ; preds = %8222
  %8228 = load i32, ptr %174, align 4, !tbaa !5
  %8229 = call ptr @__errno_location() #11
  store i32 %8228, ptr %8229, align 4, !tbaa !5
  %8230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8231 = load i32, ptr @test_count, align 4, !tbaa !5
  %8232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8233 = load i32, ptr %8232, align 4, !tbaa !5
  %8234 = call ptr @s2n_strerror(i32 noundef %8233, ptr noundef @.str.4)
  %8235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8236 = load i32, ptr %8235, align 4, !tbaa !5
  %8237 = call ptr @s2n_strerror_debug(i32 noundef %8236, ptr noundef @.str.4)
  %8238 = call ptr @__errno_location() #11
  %8239 = load i32, ptr %8238, align 4, !tbaa !5
  %8240 = call ptr @strerror(i32 noundef %8239) #10
  %8241 = call ptr @__errno_location() #11
  %8242 = load i32, ptr %8241, align 4, !tbaa !5
  %8243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8230, ptr noundef @.str.2, i32 noundef %8231, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 333, ptr noundef %8234, ptr noundef %8237, ptr noundef %8240, i32 noundef %8242) #10
  br label %8261

8244:                                             ; preds = %8222, %8215
  %8245 = load i32, ptr %174, align 4, !tbaa !5
  %8246 = call ptr @__errno_location() #11
  store i32 %8245, ptr %8246, align 4, !tbaa !5
  %8247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8248 = load i32, ptr @test_count, align 4, !tbaa !5
  %8249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8250 = load i32, ptr %8249, align 4, !tbaa !5
  %8251 = call ptr @s2n_strerror(i32 noundef %8250, ptr noundef @.str.4)
  %8252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8253 = load i32, ptr %8252, align 4, !tbaa !5
  %8254 = call ptr @s2n_strerror_debug(i32 noundef %8253, ptr noundef @.str.4)
  %8255 = call ptr @__errno_location() #11
  %8256 = load i32, ptr %8255, align 4, !tbaa !5
  %8257 = call ptr @strerror(i32 noundef %8256) #10
  %8258 = call ptr @__errno_location() #11
  %8259 = load i32, ptr %8258, align 4, !tbaa !5
  %8260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8247, ptr noundef @.str.5, i32 noundef %8248, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 333, ptr noundef %8251, ptr noundef %8254, ptr noundef %8257, i32 noundef %8259) #10
  br label %8261

8261:                                             ; preds = %8244, %8227
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #10
  br label %8262

8262:                                             ; preds = %8261
  br label %8263

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

8264:                                             ; No predecessors!
  br label %8265

8265:                                             ; preds = %8264
  br label %8266

8266:                                             ; preds = %8265, %8207
  br label %8267

8267:                                             ; preds = %8266
  br label %8268

8268:                                             ; preds = %8267
  br label %8269

8269:                                             ; preds = %8268
  %8270 = load i32, ptr @test_count, align 4, !tbaa !5
  %8271 = add nsw i32 %8270, 1
  store i32 %8271, ptr @test_count, align 4, !tbaa !5
  %8272 = load ptr, ptr %161, align 8, !tbaa !9
  %8273 = getelementptr inbounds %struct.s2n_connection, ptr %8272, i32 0, i32 52
  %8274 = getelementptr inbounds %struct.s2n_handshake, ptr %8273, i32 0, i32 0
  %8275 = load ptr, ptr %168, align 8, !tbaa !9
  %8276 = getelementptr inbounds %struct.s2n_connection, ptr %8275, i32 0, i32 52
  %8277 = getelementptr inbounds %struct.s2n_handshake, ptr %8276, i32 0, i32 0
  %8278 = load ptr, ptr %161, align 8, !tbaa !9
  %8279 = getelementptr inbounds %struct.s2n_connection, ptr %8278, i32 0, i32 52
  %8280 = getelementptr inbounds %struct.s2n_handshake, ptr %8279, i32 0, i32 0
  %8281 = getelementptr inbounds %struct.s2n_stuffer, ptr %8280, i32 0, i32 2
  %8282 = load i32, ptr %8281, align 4, !tbaa !51
  %8283 = load ptr, ptr %161, align 8, !tbaa !9
  %8284 = getelementptr inbounds %struct.s2n_connection, ptr %8283, i32 0, i32 52
  %8285 = getelementptr inbounds %struct.s2n_handshake, ptr %8284, i32 0, i32 0
  %8286 = getelementptr inbounds %struct.s2n_stuffer, ptr %8285, i32 0, i32 1
  %8287 = load i32, ptr %8286, align 8, !tbaa !52
  %8288 = sub i32 %8282, %8287
  %8289 = call i32 @s2n_stuffer_copy(ptr noundef %8274, ptr noundef %8277, i32 noundef %8288)
  %8290 = icmp eq i32 %8289, -1
  br i1 %8290, label %8291, label %8344

8291:                                             ; preds = %8269
  br label %8292

8292:                                             ; preds = %8291
  br label %8293

8293:                                             ; preds = %8292
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %8294 = call ptr @__errno_location() #11
  %8295 = load i32, ptr %8294, align 4, !tbaa !5
  store i32 %8295, ptr %175, align 4, !tbaa !5
  %8296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8297 = call i32 @s2n_print_stacktrace(ptr noundef %8296)
  %8298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8299 = trunc i8 %8298 to i1
  br i1 %8299, label %8300, label %8322

8300:                                             ; preds = %8293
  %8301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8302 = call i32 @fileno(ptr noundef %8301) #10
  %8303 = call i32 @isatty(i32 noundef %8302) #10
  %8304 = icmp ne i32 %8303, 0
  br i1 %8304, label %8305, label %8322

8305:                                             ; preds = %8300
  %8306 = load i32, ptr %175, align 4, !tbaa !5
  %8307 = call ptr @__errno_location() #11
  store i32 %8306, ptr %8307, align 4, !tbaa !5
  %8308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8309 = load i32, ptr @test_count, align 4, !tbaa !5
  %8310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8311 = load i32, ptr %8310, align 4, !tbaa !5
  %8312 = call ptr @s2n_strerror(i32 noundef %8311, ptr noundef @.str.4)
  %8313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8314 = load i32, ptr %8313, align 4, !tbaa !5
  %8315 = call ptr @s2n_strerror_debug(i32 noundef %8314, ptr noundef @.str.4)
  %8316 = call ptr @__errno_location() #11
  %8317 = load i32, ptr %8316, align 4, !tbaa !5
  %8318 = call ptr @strerror(i32 noundef %8317) #10
  %8319 = call ptr @__errno_location() #11
  %8320 = load i32, ptr %8319, align 4, !tbaa !5
  %8321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8308, ptr noundef @.str.2, i32 noundef %8309, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 335, ptr noundef %8312, ptr noundef %8315, ptr noundef %8318, i32 noundef %8320) #10
  br label %8339

8322:                                             ; preds = %8300, %8293
  %8323 = load i32, ptr %175, align 4, !tbaa !5
  %8324 = call ptr @__errno_location() #11
  store i32 %8323, ptr %8324, align 4, !tbaa !5
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8328, ptr noundef @.str.4)
  %8330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8331 = load i32, ptr %8330, align 4, !tbaa !5
  %8332 = call ptr @s2n_strerror_debug(i32 noundef %8331, ptr noundef @.str.4)
  %8333 = call ptr @__errno_location() #11
  %8334 = load i32, ptr %8333, align 4, !tbaa !5
  %8335 = call ptr @strerror(i32 noundef %8334) #10
  %8336 = call ptr @__errno_location() #11
  %8337 = load i32, ptr %8336, align 4, !tbaa !5
  %8338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8325, ptr noundef @.str.5, i32 noundef %8326, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 335, ptr noundef %8329, ptr noundef %8332, ptr noundef %8335, i32 noundef %8337) #10
  br label %8339

8339:                                             ; preds = %8322, %8305
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %8340

8340:                                             ; preds = %8339
  br label %8341

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

8342:                                             ; No predecessors!
  br label %8343

8343:                                             ; preds = %8342
  br label %8344

8344:                                             ; preds = %8343, %8269
  br label %8345

8345:                                             ; preds = %8344
  br label %8346

8346:                                             ; preds = %8345
  br label %8347

8347:                                             ; preds = %8346
  %8348 = load i32, ptr @test_count, align 4, !tbaa !5
  %8349 = add nsw i32 %8348, 1
  store i32 %8349, ptr @test_count, align 4, !tbaa !5
  %8350 = load ptr, ptr %168, align 8, !tbaa !9
  %8351 = call i32 @s2n_establish_session(ptr noundef %8350)
  %8352 = icmp eq i32 %8351, -1
  br i1 %8352, label %8353, label %8406

8353:                                             ; preds = %8347
  br label %8354

8354:                                             ; preds = %8353
  br label %8355

8355:                                             ; preds = %8354
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #10
  %8356 = call ptr @__errno_location() #11
  %8357 = load i32, ptr %8356, align 4, !tbaa !5
  store i32 %8357, ptr %176, align 4, !tbaa !5
  %8358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8359 = call i32 @s2n_print_stacktrace(ptr noundef %8358)
  %8360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8361 = trunc i8 %8360 to i1
  br i1 %8361, label %8362, label %8384

8362:                                             ; preds = %8355
  %8363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8364 = call i32 @fileno(ptr noundef %8363) #10
  %8365 = call i32 @isatty(i32 noundef %8364) #10
  %8366 = icmp ne i32 %8365, 0
  br i1 %8366, label %8367, label %8384

8367:                                             ; preds = %8362
  %8368 = load i32, ptr %176, align 4, !tbaa !5
  %8369 = call ptr @__errno_location() #11
  store i32 %8368, ptr %8369, align 4, !tbaa !5
  %8370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8371 = load i32, ptr @test_count, align 4, !tbaa !5
  %8372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8373 = load i32, ptr %8372, align 4, !tbaa !5
  %8374 = call ptr @s2n_strerror(i32 noundef %8373, ptr noundef @.str.4)
  %8375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8376 = load i32, ptr %8375, align 4, !tbaa !5
  %8377 = call ptr @s2n_strerror_debug(i32 noundef %8376, ptr noundef @.str.4)
  %8378 = call ptr @__errno_location() #11
  %8379 = load i32, ptr %8378, align 4, !tbaa !5
  %8380 = call ptr @strerror(i32 noundef %8379) #10
  %8381 = call ptr @__errno_location() #11
  %8382 = load i32, ptr %8381, align 4, !tbaa !5
  %8383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8370, ptr noundef @.str.2, i32 noundef %8371, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 336, ptr noundef %8374, ptr noundef %8377, ptr noundef %8380, i32 noundef %8382) #10
  br label %8401

8384:                                             ; preds = %8362, %8355
  %8385 = load i32, ptr %176, align 4, !tbaa !5
  %8386 = call ptr @__errno_location() #11
  store i32 %8385, ptr %8386, align 4, !tbaa !5
  %8387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8388 = load i32, ptr @test_count, align 4, !tbaa !5
  %8389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8390 = load i32, ptr %8389, align 4, !tbaa !5
  %8391 = call ptr @s2n_strerror(i32 noundef %8390, ptr noundef @.str.4)
  %8392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8393 = load i32, ptr %8392, align 4, !tbaa !5
  %8394 = call ptr @s2n_strerror_debug(i32 noundef %8393, ptr noundef @.str.4)
  %8395 = call ptr @__errno_location() #11
  %8396 = load i32, ptr %8395, align 4, !tbaa !5
  %8397 = call ptr @strerror(i32 noundef %8396) #10
  %8398 = call ptr @__errno_location() #11
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  %8400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8387, ptr noundef @.str.5, i32 noundef %8388, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 336, ptr noundef %8391, ptr noundef %8394, ptr noundef %8397, i32 noundef %8399) #10
  br label %8401

8401:                                             ; preds = %8384, %8367
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #10
  br label %8402

8402:                                             ; preds = %8401
  br label %8403

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

8404:                                             ; No predecessors!
  br label %8405

8405:                                             ; preds = %8404
  br label %8406

8406:                                             ; preds = %8405, %8347
  br label %8407

8407:                                             ; preds = %8406
  br label %8408

8408:                                             ; preds = %8407
  br label %8409

8409:                                             ; preds = %8408
  %8410 = load i32, ptr @test_count, align 4, !tbaa !5
  %8411 = add nsw i32 %8410, 1
  store i32 %8411, ptr @test_count, align 4, !tbaa !5
  %8412 = load ptr, ptr %161, align 8, !tbaa !9
  %8413 = getelementptr inbounds %struct.s2n_connection, ptr %8412, i32 0, i32 89
  %8414 = load i32, ptr %8413, align 8, !tbaa !48
  %8415 = icmp eq i32 %8414, 1
  br i1 %8415, label %8469, label %8416

8416:                                             ; preds = %8409
  br label %8417

8417:                                             ; preds = %8416
  br label %8418

8418:                                             ; preds = %8417
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #10
  %8419 = call ptr @__errno_location() #11
  %8420 = load i32, ptr %8419, align 4, !tbaa !5
  store i32 %8420, ptr %177, align 4, !tbaa !5
  %8421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8422 = call i32 @s2n_print_stacktrace(ptr noundef %8421)
  %8423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8424 = trunc i8 %8423 to i1
  br i1 %8424, label %8425, label %8447

8425:                                             ; preds = %8418
  %8426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8427 = call i32 @fileno(ptr noundef %8426) #10
  %8428 = call i32 @isatty(i32 noundef %8427) #10
  %8429 = icmp ne i32 %8428, 0
  br i1 %8429, label %8430, label %8447

8430:                                             ; preds = %8425
  %8431 = load i32, ptr %177, align 4, !tbaa !5
  %8432 = call ptr @__errno_location() #11
  store i32 %8431, ptr %8432, align 4, !tbaa !5
  %8433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8434 = load i32, ptr @test_count, align 4, !tbaa !5
  %8435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8436 = load i32, ptr %8435, align 4, !tbaa !5
  %8437 = call ptr @s2n_strerror(i32 noundef %8436, ptr noundef @.str.4)
  %8438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8439 = load i32, ptr %8438, align 4, !tbaa !5
  %8440 = call ptr @s2n_strerror_debug(i32 noundef %8439, ptr noundef @.str.4)
  %8441 = call ptr @__errno_location() #11
  %8442 = load i32, ptr %8441, align 4, !tbaa !5
  %8443 = call ptr @strerror(i32 noundef %8442) #10
  %8444 = call ptr @__errno_location() #11
  %8445 = load i32, ptr %8444, align 4, !tbaa !5
  %8446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8433, ptr noundef @.str.2, i32 noundef %8434, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8437, ptr noundef %8440, ptr noundef %8443, i32 noundef %8445) #10
  br label %8464

8447:                                             ; preds = %8425, %8418
  %8448 = load i32, ptr %177, align 4, !tbaa !5
  %8449 = call ptr @__errno_location() #11
  store i32 %8448, ptr %8449, align 4, !tbaa !5
  %8450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8451 = load i32, ptr @test_count, align 4, !tbaa !5
  %8452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8453 = load i32, ptr %8452, align 4, !tbaa !5
  %8454 = call ptr @s2n_strerror(i32 noundef %8453, ptr noundef @.str.4)
  %8455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8456 = load i32, ptr %8455, align 4, !tbaa !5
  %8457 = call ptr @s2n_strerror_debug(i32 noundef %8456, ptr noundef @.str.4)
  %8458 = call ptr @__errno_location() #11
  %8459 = load i32, ptr %8458, align 4, !tbaa !5
  %8460 = call ptr @strerror(i32 noundef %8459) #10
  %8461 = call ptr @__errno_location() #11
  %8462 = load i32, ptr %8461, align 4, !tbaa !5
  %8463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8450, ptr noundef @.str.5, i32 noundef %8451, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8454, ptr noundef %8457, ptr noundef %8460, i32 noundef %8462) #10
  br label %8464

8464:                                             ; preds = %8447, %8430
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #10
  br label %8465

8465:                                             ; preds = %8464
  br label %8466

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

8467:                                             ; No predecessors!
  br label %8468

8468:                                             ; preds = %8467
  br label %8469

8469:                                             ; preds = %8468, %8409
  br label %8470

8470:                                             ; preds = %8469
  br label %8471

8471:                                             ; preds = %8470
  br label %8472

8472:                                             ; preds = %8471
  %8473 = load i32, ptr @test_count, align 4, !tbaa !5
  %8474 = add nsw i32 %8473, 1
  store i32 %8474, ptr @test_count, align 4, !tbaa !5
  %8475 = load ptr, ptr %168, align 8, !tbaa !9
  %8476 = getelementptr inbounds %struct.s2n_connection, ptr %8475, i32 0, i32 89
  %8477 = load i32, ptr %8476, align 8, !tbaa !48
  %8478 = icmp eq i32 %8477, 4
  br i1 %8478, label %8532, label %8479

8479:                                             ; preds = %8472
  br label %8480

8480:                                             ; preds = %8479
  br label %8481

8481:                                             ; preds = %8480
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %8482 = call ptr @__errno_location() #11
  %8483 = load i32, ptr %8482, align 4, !tbaa !5
  store i32 %8483, ptr %178, align 4, !tbaa !5
  %8484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8485 = call i32 @s2n_print_stacktrace(ptr noundef %8484)
  %8486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8487 = trunc i8 %8486 to i1
  br i1 %8487, label %8488, label %8510

8488:                                             ; preds = %8481
  %8489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8490 = call i32 @fileno(ptr noundef %8489) #10
  %8491 = call i32 @isatty(i32 noundef %8490) #10
  %8492 = icmp ne i32 %8491, 0
  br i1 %8492, label %8493, label %8510

8493:                                             ; preds = %8488
  %8494 = load i32, ptr %178, align 4, !tbaa !5
  %8495 = call ptr @__errno_location() #11
  store i32 %8494, ptr %8495, align 4, !tbaa !5
  %8496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8497 = load i32, ptr @test_count, align 4, !tbaa !5
  %8498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8499 = load i32, ptr %8498, align 4, !tbaa !5
  %8500 = call ptr @s2n_strerror(i32 noundef %8499, ptr noundef @.str.4)
  %8501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8502 = load i32, ptr %8501, align 4, !tbaa !5
  %8503 = call ptr @s2n_strerror_debug(i32 noundef %8502, ptr noundef @.str.4)
  %8504 = call ptr @__errno_location() #11
  %8505 = load i32, ptr %8504, align 4, !tbaa !5
  %8506 = call ptr @strerror(i32 noundef %8505) #10
  %8507 = call ptr @__errno_location() #11
  %8508 = load i32, ptr %8507, align 4, !tbaa !5
  %8509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8496, ptr noundef @.str.2, i32 noundef %8497, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 339, ptr noundef %8500, ptr noundef %8503, ptr noundef %8506, i32 noundef %8508) #10
  br label %8527

8510:                                             ; preds = %8488, %8481
  %8511 = load i32, ptr %178, align 4, !tbaa !5
  %8512 = call ptr @__errno_location() #11
  store i32 %8511, ptr %8512, align 4, !tbaa !5
  %8513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8514 = load i32, ptr @test_count, align 4, !tbaa !5
  %8515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8516 = load i32, ptr %8515, align 4, !tbaa !5
  %8517 = call ptr @s2n_strerror(i32 noundef %8516, ptr noundef @.str.4)
  %8518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8519 = load i32, ptr %8518, align 4, !tbaa !5
  %8520 = call ptr @s2n_strerror_debug(i32 noundef %8519, ptr noundef @.str.4)
  %8521 = call ptr @__errno_location() #11
  %8522 = load i32, ptr %8521, align 4, !tbaa !5
  %8523 = call ptr @strerror(i32 noundef %8522) #10
  %8524 = call ptr @__errno_location() #11
  %8525 = load i32, ptr %8524, align 4, !tbaa !5
  %8526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8513, ptr noundef @.str.5, i32 noundef %8514, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 339, ptr noundef %8517, ptr noundef %8520, ptr noundef %8523, i32 noundef %8525) #10
  br label %8527

8527:                                             ; preds = %8510, %8493
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %8528

8528:                                             ; preds = %8527
  br label %8529

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

8530:                                             ; No predecessors!
  br label %8531

8531:                                             ; preds = %8530
  br label %8532

8532:                                             ; preds = %8531, %8472
  br label %8533

8533:                                             ; preds = %8532
  br label %8534

8534:                                             ; preds = %8533
  br label %8535

8535:                                             ; preds = %8534
  %8536 = load i32, ptr @test_count, align 4, !tbaa !5
  %8537 = add nsw i32 %8536, 1
  store i32 %8537, ptr @test_count, align 4, !tbaa !5
  %8538 = load ptr, ptr %161, align 8, !tbaa !9
  %8539 = call i32 @s2n_connection_free(ptr noundef %8538)
  %8540 = icmp eq i32 %8539, -1
  br i1 %8540, label %8541, label %8594

8541:                                             ; preds = %8535
  br label %8542

8542:                                             ; preds = %8541
  br label %8543

8543:                                             ; preds = %8542
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #10
  %8544 = call ptr @__errno_location() #11
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  store i32 %8545, ptr %179, align 4, !tbaa !5
  %8546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8547 = call i32 @s2n_print_stacktrace(ptr noundef %8546)
  %8548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8549 = trunc i8 %8548 to i1
  br i1 %8549, label %8550, label %8572

8550:                                             ; preds = %8543
  %8551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8552 = call i32 @fileno(ptr noundef %8551) #10
  %8553 = call i32 @isatty(i32 noundef %8552) #10
  %8554 = icmp ne i32 %8553, 0
  br i1 %8554, label %8555, label %8572

8555:                                             ; preds = %8550
  %8556 = load i32, ptr %179, align 4, !tbaa !5
  %8557 = call ptr @__errno_location() #11
  store i32 %8556, ptr %8557, align 4, !tbaa !5
  %8558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8559 = load i32, ptr @test_count, align 4, !tbaa !5
  %8560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8561 = load i32, ptr %8560, align 4, !tbaa !5
  %8562 = call ptr @s2n_strerror(i32 noundef %8561, ptr noundef @.str.4)
  %8563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8564 = load i32, ptr %8563, align 4, !tbaa !5
  %8565 = call ptr @s2n_strerror_debug(i32 noundef %8564, ptr noundef @.str.4)
  %8566 = call ptr @__errno_location() #11
  %8567 = load i32, ptr %8566, align 4, !tbaa !5
  %8568 = call ptr @strerror(i32 noundef %8567) #10
  %8569 = call ptr @__errno_location() #11
  %8570 = load i32, ptr %8569, align 4, !tbaa !5
  %8571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8558, ptr noundef @.str.2, i32 noundef %8559, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 341, ptr noundef %8562, ptr noundef %8565, ptr noundef %8568, i32 noundef %8570) #10
  br label %8589

8572:                                             ; preds = %8550, %8543
  %8573 = load i32, ptr %179, align 4, !tbaa !5
  %8574 = call ptr @__errno_location() #11
  store i32 %8573, ptr %8574, align 4, !tbaa !5
  %8575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8576 = load i32, ptr @test_count, align 4, !tbaa !5
  %8577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8578 = load i32, ptr %8577, align 4, !tbaa !5
  %8579 = call ptr @s2n_strerror(i32 noundef %8578, ptr noundef @.str.4)
  %8580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8581 = load i32, ptr %8580, align 4, !tbaa !5
  %8582 = call ptr @s2n_strerror_debug(i32 noundef %8581, ptr noundef @.str.4)
  %8583 = call ptr @__errno_location() #11
  %8584 = load i32, ptr %8583, align 4, !tbaa !5
  %8585 = call ptr @strerror(i32 noundef %8584) #10
  %8586 = call ptr @__errno_location() #11
  %8587 = load i32, ptr %8586, align 4, !tbaa !5
  %8588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8575, ptr noundef @.str.5, i32 noundef %8576, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 341, ptr noundef %8579, ptr noundef %8582, ptr noundef %8585, i32 noundef %8587) #10
  br label %8589

8589:                                             ; preds = %8572, %8555
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #10
  br label %8590

8590:                                             ; preds = %8589
  br label %8591

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

8592:                                             ; No predecessors!
  br label %8593

8593:                                             ; preds = %8592
  br label %8594

8594:                                             ; preds = %8593, %8535
  br label %8595

8595:                                             ; preds = %8594
  br label %8596

8596:                                             ; preds = %8595
  br label %8597

8597:                                             ; preds = %8596
  %8598 = load i32, ptr @test_count, align 4, !tbaa !5
  %8599 = add nsw i32 %8598, 1
  store i32 %8599, ptr @test_count, align 4, !tbaa !5
  %8600 = load ptr, ptr %168, align 8, !tbaa !9
  %8601 = call i32 @s2n_connection_free(ptr noundef %8600)
  %8602 = icmp eq i32 %8601, -1
  br i1 %8602, label %8603, label %8656

8603:                                             ; preds = %8597
  br label %8604

8604:                                             ; preds = %8603
  br label %8605

8605:                                             ; preds = %8604
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #10
  %8606 = call ptr @__errno_location() #11
  %8607 = load i32, ptr %8606, align 4, !tbaa !5
  store i32 %8607, ptr %180, align 4, !tbaa !5
  %8608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8609 = call i32 @s2n_print_stacktrace(ptr noundef %8608)
  %8610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8611 = trunc i8 %8610 to i1
  br i1 %8611, label %8612, label %8634

8612:                                             ; preds = %8605
  %8613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8614 = call i32 @fileno(ptr noundef %8613) #10
  %8615 = call i32 @isatty(i32 noundef %8614) #10
  %8616 = icmp ne i32 %8615, 0
  br i1 %8616, label %8617, label %8634

8617:                                             ; preds = %8612
  %8618 = load i32, ptr %180, align 4, !tbaa !5
  %8619 = call ptr @__errno_location() #11
  store i32 %8618, ptr %8619, align 4, !tbaa !5
  %8620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8621 = load i32, ptr @test_count, align 4, !tbaa !5
  %8622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8623 = load i32, ptr %8622, align 4, !tbaa !5
  %8624 = call ptr @s2n_strerror(i32 noundef %8623, ptr noundef @.str.4)
  %8625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8626 = load i32, ptr %8625, align 4, !tbaa !5
  %8627 = call ptr @s2n_strerror_debug(i32 noundef %8626, ptr noundef @.str.4)
  %8628 = call ptr @__errno_location() #11
  %8629 = load i32, ptr %8628, align 4, !tbaa !5
  %8630 = call ptr @strerror(i32 noundef %8629) #10
  %8631 = call ptr @__errno_location() #11
  %8632 = load i32, ptr %8631, align 4, !tbaa !5
  %8633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8620, ptr noundef @.str.2, i32 noundef %8621, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8624, ptr noundef %8627, ptr noundef %8630, i32 noundef %8632) #10
  br label %8651

8634:                                             ; preds = %8612, %8605
  %8635 = load i32, ptr %180, align 4, !tbaa !5
  %8636 = call ptr @__errno_location() #11
  store i32 %8635, ptr %8636, align 4, !tbaa !5
  %8637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8638 = load i32, ptr @test_count, align 4, !tbaa !5
  %8639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8640 = load i32, ptr %8639, align 4, !tbaa !5
  %8641 = call ptr @s2n_strerror(i32 noundef %8640, ptr noundef @.str.4)
  %8642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8643 = load i32, ptr %8642, align 4, !tbaa !5
  %8644 = call ptr @s2n_strerror_debug(i32 noundef %8643, ptr noundef @.str.4)
  %8645 = call ptr @__errno_location() #11
  %8646 = load i32, ptr %8645, align 4, !tbaa !5
  %8647 = call ptr @strerror(i32 noundef %8646) #10
  %8648 = call ptr @__errno_location() #11
  %8649 = load i32, ptr %8648, align 4, !tbaa !5
  %8650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8637, ptr noundef @.str.5, i32 noundef %8638, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8641, ptr noundef %8644, ptr noundef %8647, i32 noundef %8649) #10
  br label %8651

8651:                                             ; preds = %8634, %8617
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #10
  br label %8652

8652:                                             ; preds = %8651
  br label %8653

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

8654:                                             ; No predecessors!
  br label %8655

8655:                                             ; preds = %8654
  br label %8656

8656:                                             ; preds = %8655, %8597
  br label %8657

8657:                                             ; preds = %8656
  br label %8658

8658:                                             ; preds = %8657
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #10
  %8659 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8659, ptr %181, align 8, !tbaa !9
  br label %8660

8660:                                             ; preds = %8658
  %8661 = load i32, ptr @test_count, align 4, !tbaa !5
  %8662 = add nsw i32 %8661, 1
  store i32 %8662, ptr @test_count, align 4, !tbaa !5
  %8663 = load ptr, ptr %181, align 8, !tbaa !9
  %8664 = icmp eq ptr %8663, null
  br i1 %8664, label %8665, label %8718

8665:                                             ; preds = %8660
  br label %8666

8666:                                             ; preds = %8665
  br label %8667

8667:                                             ; preds = %8666
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #10
  %8668 = call ptr @__errno_location() #11
  %8669 = load i32, ptr %8668, align 4, !tbaa !5
  store i32 %8669, ptr %182, align 4, !tbaa !5
  %8670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8671 = call i32 @s2n_print_stacktrace(ptr noundef %8670)
  %8672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8673 = trunc i8 %8672 to i1
  br i1 %8673, label %8674, label %8696

8674:                                             ; preds = %8667
  %8675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8676 = call i32 @fileno(ptr noundef %8675) #10
  %8677 = call i32 @isatty(i32 noundef %8676) #10
  %8678 = icmp ne i32 %8677, 0
  br i1 %8678, label %8679, label %8696

8679:                                             ; preds = %8674
  %8680 = load i32, ptr %182, align 4, !tbaa !5
  %8681 = call ptr @__errno_location() #11
  store i32 %8680, ptr %8681, align 4, !tbaa !5
  %8682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8683 = load i32, ptr @test_count, align 4, !tbaa !5
  %8684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8685 = load i32, ptr %8684, align 4, !tbaa !5
  %8686 = call ptr @s2n_strerror(i32 noundef %8685, ptr noundef @.str.4)
  %8687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8688 = load i32, ptr %8687, align 4, !tbaa !5
  %8689 = call ptr @s2n_strerror_debug(i32 noundef %8688, ptr noundef @.str.4)
  %8690 = call ptr @__errno_location() #11
  %8691 = load i32, ptr %8690, align 4, !tbaa !5
  %8692 = call ptr @strerror(i32 noundef %8691) #10
  %8693 = call ptr @__errno_location() #11
  %8694 = load i32, ptr %8693, align 4, !tbaa !5
  %8695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8682, ptr noundef @.str.2, i32 noundef %8683, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8686, ptr noundef %8689, ptr noundef %8692, i32 noundef %8694) #10
  br label %8713

8696:                                             ; preds = %8674, %8667
  %8697 = load i32, ptr %182, align 4, !tbaa !5
  %8698 = call ptr @__errno_location() #11
  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() #11
  %8708 = load i32, ptr %8707, align 4, !tbaa !5
  %8709 = call ptr @strerror(i32 noundef %8708) #10
  %8710 = call ptr @__errno_location() #11
  %8711 = load i32, ptr %8710, align 4, !tbaa !5
  %8712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8699, ptr noundef @.str.5, i32 noundef %8700, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8703, ptr noundef %8706, ptr noundef %8709, i32 noundef %8711) #10
  br label %8713

8713:                                             ; preds = %8696, %8679
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #10
  br label %8714

8714:                                             ; preds = %8713
  br label %8715

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

8716:                                             ; No predecessors!
  br label %8717

8717:                                             ; preds = %8716
  br label %8718

8718:                                             ; preds = %8717, %8660
  br label %8719

8719:                                             ; preds = %8718
  br label %8720

8720:                                             ; preds = %8719
  br label %8721

8721:                                             ; preds = %8720
  %8722 = load i32, ptr @test_count, align 4, !tbaa !5
  %8723 = add nsw i32 %8722, 1
  store i32 %8723, ptr @test_count, align 4, !tbaa !5
  %8724 = load ptr, ptr %181, align 8, !tbaa !9
  %8725 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8724, ptr noundef @.str.16)
  %8726 = icmp eq i32 %8725, -1
  br i1 %8726, label %8727, label %8780

8727:                                             ; preds = %8721
  br label %8728

8728:                                             ; preds = %8727
  br label %8729

8729:                                             ; preds = %8728
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %8730 = call ptr @__errno_location() #11
  %8731 = load i32, ptr %8730, align 4, !tbaa !5
  store i32 %8731, ptr %183, align 4, !tbaa !5
  %8732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8733 = call i32 @s2n_print_stacktrace(ptr noundef %8732)
  %8734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8735 = trunc i8 %8734 to i1
  br i1 %8735, label %8736, label %8758

8736:                                             ; preds = %8729
  %8737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8738 = call i32 @fileno(ptr noundef %8737) #10
  %8739 = call i32 @isatty(i32 noundef %8738) #10
  %8740 = icmp ne i32 %8739, 0
  br i1 %8740, label %8741, label %8758

8741:                                             ; preds = %8736
  %8742 = load i32, ptr %183, align 4, !tbaa !5
  %8743 = call ptr @__errno_location() #11
  store i32 %8742, ptr %8743, align 4, !tbaa !5
  %8744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8745 = load i32, ptr @test_count, align 4, !tbaa !5
  %8746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8747 = load i32, ptr %8746, align 4, !tbaa !5
  %8748 = call ptr @s2n_strerror(i32 noundef %8747, ptr noundef @.str.4)
  %8749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8750 = load i32, ptr %8749, align 4, !tbaa !5
  %8751 = call ptr @s2n_strerror_debug(i32 noundef %8750, ptr noundef @.str.4)
  %8752 = call ptr @__errno_location() #11
  %8753 = load i32, ptr %8752, align 4, !tbaa !5
  %8754 = call ptr @strerror(i32 noundef %8753) #10
  %8755 = call ptr @__errno_location() #11
  %8756 = load i32, ptr %8755, align 4, !tbaa !5
  %8757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8744, ptr noundef @.str.2, i32 noundef %8745, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 349, ptr noundef %8748, ptr noundef %8751, ptr noundef %8754, i32 noundef %8756) #10
  br label %8775

8758:                                             ; preds = %8736, %8729
  %8759 = load i32, ptr %183, align 4, !tbaa !5
  %8760 = call ptr @__errno_location() #11
  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() #11
  %8770 = load i32, ptr %8769, align 4, !tbaa !5
  %8771 = call ptr @strerror(i32 noundef %8770) #10
  %8772 = call ptr @__errno_location() #11
  %8773 = load i32, ptr %8772, align 4, !tbaa !5
  %8774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8761, ptr noundef @.str.5, i32 noundef %8762, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 349, ptr noundef %8765, ptr noundef %8768, ptr noundef %8771, i32 noundef %8773) #10
  br label %8775

8775:                                             ; preds = %8758, %8741
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %8776

8776:                                             ; preds = %8775
  br label %8777

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

8778:                                             ; No predecessors!
  br label %8779

8779:                                             ; preds = %8778
  br label %8780

8780:                                             ; preds = %8779, %8721
  br label %8781

8781:                                             ; preds = %8780
  br label %8782

8782:                                             ; preds = %8781
  br label %8783

8783:                                             ; preds = %8782
  %8784 = load i32, ptr @test_count, align 4, !tbaa !5
  %8785 = add nsw i32 %8784, 1
  store i32 %8785, ptr @test_count, align 4, !tbaa !5
  %8786 = load ptr, ptr %181, align 8, !tbaa !9
  %8787 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %8786, i32 noundef 1, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %8788 = getelementptr inbounds %struct.s2n_result, ptr %184, i32 0, i32 0
  store i32 %8787, ptr %8788, align 4
  %8789 = getelementptr inbounds %struct.s2n_result, ptr %184, i32 0, i32 0
  %8790 = load i32, ptr %8789, align 4
  %8791 = call zeroext i1 @s2n_result_is_ok(i32 %8790)
  br i1 %8791, label %8845, label %8792

8792:                                             ; preds = %8783
  br label %8793

8793:                                             ; preds = %8792
  br label %8794

8794:                                             ; preds = %8793
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %8795 = call ptr @__errno_location() #11
  %8796 = load i32, ptr %8795, align 4, !tbaa !5
  store i32 %8796, ptr %185, align 4, !tbaa !5
  %8797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8798 = call i32 @s2n_print_stacktrace(ptr noundef %8797)
  %8799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8800 = trunc i8 %8799 to i1
  br i1 %8800, label %8801, label %8823

8801:                                             ; preds = %8794
  %8802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8803 = call i32 @fileno(ptr noundef %8802) #10
  %8804 = call i32 @isatty(i32 noundef %8803) #10
  %8805 = icmp ne i32 %8804, 0
  br i1 %8805, label %8806, label %8823

8806:                                             ; preds = %8801
  %8807 = load i32, ptr %185, align 4, !tbaa !5
  %8808 = call ptr @__errno_location() #11
  store i32 %8807, ptr %8808, align 4, !tbaa !5
  %8809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8810 = load i32, ptr @test_count, align 4, !tbaa !5
  %8811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8812 = load i32, ptr %8811, align 4, !tbaa !5
  %8813 = call ptr @s2n_strerror(i32 noundef %8812, ptr noundef @.str.4)
  %8814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8815 = load i32, ptr %8814, align 4, !tbaa !5
  %8816 = call ptr @s2n_strerror_debug(i32 noundef %8815, ptr noundef @.str.4)
  %8817 = call ptr @__errno_location() #11
  %8818 = load i32, ptr %8817, align 4, !tbaa !5
  %8819 = call ptr @strerror(i32 noundef %8818) #10
  %8820 = call ptr @__errno_location() #11
  %8821 = load i32, ptr %8820, align 4, !tbaa !5
  %8822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8809, ptr noundef @.str.2, i32 noundef %8810, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 350, ptr noundef %8813, ptr noundef %8816, ptr noundef %8819, i32 noundef %8821) #10
  br label %8840

8823:                                             ; preds = %8801, %8794
  %8824 = load i32, ptr %185, align 4, !tbaa !5
  %8825 = call ptr @__errno_location() #11
  store i32 %8824, ptr %8825, align 4, !tbaa !5
  %8826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8827 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8829, ptr noundef @.str.4)
  %8831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8832 = load i32, ptr %8831, align 4, !tbaa !5
  %8833 = call ptr @s2n_strerror_debug(i32 noundef %8832, ptr noundef @.str.4)
  %8834 = call ptr @__errno_location() #11
  %8835 = load i32, ptr %8834, align 4, !tbaa !5
  %8836 = call ptr @strerror(i32 noundef %8835) #10
  %8837 = call ptr @__errno_location() #11
  %8838 = load i32, ptr %8837, align 4, !tbaa !5
  %8839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8826, ptr noundef @.str.5, i32 noundef %8827, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 350, ptr noundef %8830, ptr noundef %8833, ptr noundef %8836, i32 noundef %8838) #10
  br label %8840

8840:                                             ; preds = %8823, %8806
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %8841

8841:                                             ; preds = %8840
  br label %8842

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

8843:                                             ; No predecessors!
  br label %8844

8844:                                             ; preds = %8843
  br label %8845

8845:                                             ; preds = %8844, %8783
  br label %8846

8846:                                             ; preds = %8845
  br label %8847

8847:                                             ; preds = %8846
  br label %8848

8848:                                             ; preds = %8847
  %8849 = load i32, ptr @test_count, align 4, !tbaa !5
  %8850 = add nsw i32 %8849, 1
  store i32 %8850, ptr @test_count, align 4, !tbaa !5
  %8851 = load ptr, ptr %181, align 8, !tbaa !9
  %8852 = getelementptr inbounds %struct.s2n_connection, ptr %8851, i32 0, i32 89
  %8853 = load i32, ptr %8852, align 8, !tbaa !48
  %8854 = icmp eq i32 %8853, 0
  br i1 %8854, label %8908, label %8855

8855:                                             ; preds = %8848
  br label %8856

8856:                                             ; preds = %8855
  br label %8857

8857:                                             ; preds = %8856
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #10
  %8858 = call ptr @__errno_location() #11
  %8859 = load i32, ptr %8858, align 4, !tbaa !5
  store i32 %8859, ptr %186, align 4, !tbaa !5
  %8860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8861 = call i32 @s2n_print_stacktrace(ptr noundef %8860)
  %8862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8863 = trunc i8 %8862 to i1
  br i1 %8863, label %8864, label %8886

8864:                                             ; preds = %8857
  %8865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8866 = call i32 @fileno(ptr noundef %8865) #10
  %8867 = call i32 @isatty(i32 noundef %8866) #10
  %8868 = icmp ne i32 %8867, 0
  br i1 %8868, label %8869, label %8886

8869:                                             ; preds = %8864
  %8870 = load i32, ptr %186, align 4, !tbaa !5
  %8871 = call ptr @__errno_location() #11
  store i32 %8870, ptr %8871, align 4, !tbaa !5
  %8872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8873 = load i32, ptr @test_count, align 4, !tbaa !5
  %8874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8875 = load i32, ptr %8874, align 4, !tbaa !5
  %8876 = call ptr @s2n_strerror(i32 noundef %8875, ptr noundef @.str.4)
  %8877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8878 = load i32, ptr %8877, align 4, !tbaa !5
  %8879 = call ptr @s2n_strerror_debug(i32 noundef %8878, ptr noundef @.str.4)
  %8880 = call ptr @__errno_location() #11
  %8881 = load i32, ptr %8880, align 4, !tbaa !5
  %8882 = call ptr @strerror(i32 noundef %8881) #10
  %8883 = call ptr @__errno_location() #11
  %8884 = load i32, ptr %8883, align 4, !tbaa !5
  %8885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8872, ptr noundef @.str.2, i32 noundef %8873, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 351, ptr noundef %8876, ptr noundef %8879, ptr noundef %8882, i32 noundef %8884) #10
  br label %8903

8886:                                             ; preds = %8864, %8857
  %8887 = load i32, ptr %186, align 4, !tbaa !5
  %8888 = call ptr @__errno_location() #11
  store i32 %8887, ptr %8888, align 4, !tbaa !5
  %8889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8890 = load i32, ptr @test_count, align 4, !tbaa !5
  %8891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8892 = load i32, ptr %8891, align 4, !tbaa !5
  %8893 = call ptr @s2n_strerror(i32 noundef %8892, ptr noundef @.str.4)
  %8894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8895 = load i32, ptr %8894, align 4, !tbaa !5
  %8896 = call ptr @s2n_strerror_debug(i32 noundef %8895, ptr noundef @.str.4)
  %8897 = call ptr @__errno_location() #11
  %8898 = load i32, ptr %8897, align 4, !tbaa !5
  %8899 = call ptr @strerror(i32 noundef %8898) #10
  %8900 = call ptr @__errno_location() #11
  %8901 = load i32, ptr %8900, align 4, !tbaa !5
  %8902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8889, ptr noundef @.str.5, i32 noundef %8890, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 351, ptr noundef %8893, ptr noundef %8896, ptr noundef %8899, i32 noundef %8901) #10
  br label %8903

8903:                                             ; preds = %8886, %8869
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #10
  br label %8904

8904:                                             ; preds = %8903
  br label %8905

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

8906:                                             ; No predecessors!
  br label %8907

8907:                                             ; preds = %8906
  br label %8908

8908:                                             ; preds = %8907, %8848
  br label %8909

8909:                                             ; preds = %8908
  br label %8910

8910:                                             ; preds = %8909
  br label %8911

8911:                                             ; preds = %8910
  %8912 = load i32, ptr @test_count, align 4, !tbaa !5
  %8913 = add nsw i32 %8912, 1
  store i32 %8913, ptr @test_count, align 4, !tbaa !5
  %8914 = load ptr, ptr %181, align 8, !tbaa !9
  %8915 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %8914)
  %8916 = icmp eq i32 %8915, -1
  br i1 %8916, label %8917, label %8970

8917:                                             ; preds = %8911
  br label %8918

8918:                                             ; preds = %8917
  br label %8919

8919:                                             ; preds = %8918
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %8920 = call ptr @__errno_location() #11
  %8921 = load i32, ptr %8920, align 4, !tbaa !5
  store i32 %8921, ptr %187, align 4, !tbaa !5
  %8922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8923 = call i32 @s2n_print_stacktrace(ptr noundef %8922)
  %8924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8925 = trunc i8 %8924 to i1
  br i1 %8925, label %8926, label %8948

8926:                                             ; preds = %8919
  %8927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8928 = call i32 @fileno(ptr noundef %8927) #10
  %8929 = call i32 @isatty(i32 noundef %8928) #10
  %8930 = icmp ne i32 %8929, 0
  br i1 %8930, label %8931, label %8948

8931:                                             ; preds = %8926
  %8932 = load i32, ptr %187, align 4, !tbaa !5
  %8933 = call ptr @__errno_location() #11
  store i32 %8932, ptr %8933, align 4, !tbaa !5
  %8934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8935 = load i32, ptr @test_count, align 4, !tbaa !5
  %8936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8937 = load i32, ptr %8936, align 4, !tbaa !5
  %8938 = call ptr @s2n_strerror(i32 noundef %8937, ptr noundef @.str.4)
  %8939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8940 = load i32, ptr %8939, align 4, !tbaa !5
  %8941 = call ptr @s2n_strerror_debug(i32 noundef %8940, ptr noundef @.str.4)
  %8942 = call ptr @__errno_location() #11
  %8943 = load i32, ptr %8942, align 4, !tbaa !5
  %8944 = call ptr @strerror(i32 noundef %8943) #10
  %8945 = call ptr @__errno_location() #11
  %8946 = load i32, ptr %8945, align 4, !tbaa !5
  %8947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8934, ptr noundef @.str.2, i32 noundef %8935, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 352, ptr noundef %8938, ptr noundef %8941, ptr noundef %8944, i32 noundef %8946) #10
  br label %8965

8948:                                             ; preds = %8926, %8919
  %8949 = load i32, ptr %187, align 4, !tbaa !5
  %8950 = call ptr @__errno_location() #11
  store i32 %8949, ptr %8950, align 4, !tbaa !5
  %8951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8952 = load i32, ptr @test_count, align 4, !tbaa !5
  %8953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8954 = load i32, ptr %8953, align 4, !tbaa !5
  %8955 = call ptr @s2n_strerror(i32 noundef %8954, ptr noundef @.str.4)
  %8956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8957 = load i32, ptr %8956, align 4, !tbaa !5
  %8958 = call ptr @s2n_strerror_debug(i32 noundef %8957, ptr noundef @.str.4)
  %8959 = call ptr @__errno_location() #11
  %8960 = load i32, ptr %8959, align 4, !tbaa !5
  %8961 = call ptr @strerror(i32 noundef %8960) #10
  %8962 = call ptr @__errno_location() #11
  %8963 = load i32, ptr %8962, align 4, !tbaa !5
  %8964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8951, ptr noundef @.str.5, i32 noundef %8952, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 352, ptr noundef %8955, ptr noundef %8958, ptr noundef %8961, i32 noundef %8963) #10
  br label %8965

8965:                                             ; preds = %8948, %8931
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %8966

8966:                                             ; preds = %8965
  br label %8967

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

8968:                                             ; No predecessors!
  br label %8969

8969:                                             ; preds = %8968
  br label %8970

8970:                                             ; preds = %8969, %8911
  br label %8971

8971:                                             ; preds = %8970
  br label %8972

8972:                                             ; preds = %8971
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #10
  %8973 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8973, ptr %188, align 8, !tbaa !9
  br label %8974

8974:                                             ; preds = %8972
  %8975 = load i32, ptr @test_count, align 4, !tbaa !5
  %8976 = add nsw i32 %8975, 1
  store i32 %8976, ptr @test_count, align 4, !tbaa !5
  %8977 = load ptr, ptr %188, align 8, !tbaa !9
  %8978 = icmp eq ptr %8977, null
  br i1 %8978, label %8979, label %9032

8979:                                             ; preds = %8974
  br label %8980

8980:                                             ; preds = %8979
  br label %8981

8981:                                             ; preds = %8980
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #10
  %8982 = call ptr @__errno_location() #11
  %8983 = load i32, ptr %8982, align 4, !tbaa !5
  store i32 %8983, ptr %189, align 4, !tbaa !5
  %8984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8985 = call i32 @s2n_print_stacktrace(ptr noundef %8984)
  %8986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8987 = trunc i8 %8986 to i1
  br i1 %8987, label %8988, label %9010

8988:                                             ; preds = %8981
  %8989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8990 = call i32 @fileno(ptr noundef %8989) #10
  %8991 = call i32 @isatty(i32 noundef %8990) #10
  %8992 = icmp ne i32 %8991, 0
  br i1 %8992, label %8993, label %9010

8993:                                             ; preds = %8988
  %8994 = load i32, ptr %189, align 4, !tbaa !5
  %8995 = call ptr @__errno_location() #11
  store i32 %8994, ptr %8995, align 4, !tbaa !5
  %8996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8997 = load i32, ptr @test_count, align 4, !tbaa !5
  %8998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8999 = load i32, ptr %8998, align 4, !tbaa !5
  %9000 = call ptr @s2n_strerror(i32 noundef %8999, ptr noundef @.str.4)
  %9001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9002 = load i32, ptr %9001, align 4, !tbaa !5
  %9003 = call ptr @s2n_strerror_debug(i32 noundef %9002, ptr noundef @.str.4)
  %9004 = call ptr @__errno_location() #11
  %9005 = load i32, ptr %9004, align 4, !tbaa !5
  %9006 = call ptr @strerror(i32 noundef %9005) #10
  %9007 = call ptr @__errno_location() #11
  %9008 = load i32, ptr %9007, align 4, !tbaa !5
  %9009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8996, ptr noundef @.str.2, i32 noundef %8997, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 355, ptr noundef %9000, ptr noundef %9003, ptr noundef %9006, i32 noundef %9008) #10
  br label %9027

9010:                                             ; preds = %8988, %8981
  %9011 = load i32, ptr %189, align 4, !tbaa !5
  %9012 = call ptr @__errno_location() #11
  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() #11
  %9022 = load i32, ptr %9021, align 4, !tbaa !5
  %9023 = call ptr @strerror(i32 noundef %9022) #10
  %9024 = call ptr @__errno_location() #11
  %9025 = load i32, ptr %9024, align 4, !tbaa !5
  %9026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9013, ptr noundef @.str.5, i32 noundef %9014, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 355, ptr noundef %9017, ptr noundef %9020, ptr noundef %9023, i32 noundef %9025) #10
  br label %9027

9027:                                             ; preds = %9010, %8993
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #10
  br label %9028

9028:                                             ; preds = %9027
  br label %9029

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

9030:                                             ; No predecessors!
  br label %9031

9031:                                             ; preds = %9030
  br label %9032

9032:                                             ; preds = %9031, %8974
  br label %9033

9033:                                             ; preds = %9032
  br label %9034

9034:                                             ; preds = %9033
  br label %9035

9035:                                             ; preds = %9034
  %9036 = load i32, ptr @test_count, align 4, !tbaa !5
  %9037 = add nsw i32 %9036, 1
  store i32 %9037, ptr @test_count, align 4, !tbaa !5
  %9038 = load ptr, ptr %188, align 8, !tbaa !9
  %9039 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %9038, ptr noundef @.str.16)
  %9040 = icmp eq i32 %9039, -1
  br i1 %9040, label %9041, label %9094

9041:                                             ; preds = %9035
  br label %9042

9042:                                             ; preds = %9041
  br label %9043

9043:                                             ; preds = %9042
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  %9044 = call ptr @__errno_location() #11
  %9045 = load i32, ptr %9044, align 4, !tbaa !5
  store i32 %9045, ptr %190, align 4, !tbaa !5
  %9046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9047 = call i32 @s2n_print_stacktrace(ptr noundef %9046)
  %9048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9049 = trunc i8 %9048 to i1
  br i1 %9049, label %9050, label %9072

9050:                                             ; preds = %9043
  %9051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9052 = call i32 @fileno(ptr noundef %9051) #10
  %9053 = call i32 @isatty(i32 noundef %9052) #10
  %9054 = icmp ne i32 %9053, 0
  br i1 %9054, label %9055, label %9072

9055:                                             ; preds = %9050
  %9056 = load i32, ptr %190, align 4, !tbaa !5
  %9057 = call ptr @__errno_location() #11
  store i32 %9056, ptr %9057, align 4, !tbaa !5
  %9058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9059 = load i32, ptr @test_count, align 4, !tbaa !5
  %9060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9061 = load i32, ptr %9060, align 4, !tbaa !5
  %9062 = call ptr @s2n_strerror(i32 noundef %9061, ptr noundef @.str.4)
  %9063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9064 = load i32, ptr %9063, align 4, !tbaa !5
  %9065 = call ptr @s2n_strerror_debug(i32 noundef %9064, ptr noundef @.str.4)
  %9066 = call ptr @__errno_location() #11
  %9067 = load i32, ptr %9066, align 4, !tbaa !5
  %9068 = call ptr @strerror(i32 noundef %9067) #10
  %9069 = call ptr @__errno_location() #11
  %9070 = load i32, ptr %9069, align 4, !tbaa !5
  %9071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9058, ptr noundef @.str.2, i32 noundef %9059, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 356, ptr noundef %9062, ptr noundef %9065, ptr noundef %9068, i32 noundef %9070) #10
  br label %9089

9072:                                             ; preds = %9050, %9043
  %9073 = load i32, ptr %190, align 4, !tbaa !5
  %9074 = call ptr @__errno_location() #11
  store i32 %9073, ptr %9074, align 4, !tbaa !5
  %9075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9076 = load i32, ptr @test_count, align 4, !tbaa !5
  %9077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9078 = load i32, ptr %9077, align 4, !tbaa !5
  %9079 = call ptr @s2n_strerror(i32 noundef %9078, ptr noundef @.str.4)
  %9080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9081 = load i32, ptr %9080, align 4, !tbaa !5
  %9082 = call ptr @s2n_strerror_debug(i32 noundef %9081, ptr noundef @.str.4)
  %9083 = call ptr @__errno_location() #11
  %9084 = load i32, ptr %9083, align 4, !tbaa !5
  %9085 = call ptr @strerror(i32 noundef %9084) #10
  %9086 = call ptr @__errno_location() #11
  %9087 = load i32, ptr %9086, align 4, !tbaa !5
  %9088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9075, ptr noundef @.str.5, i32 noundef %9076, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 356, ptr noundef %9079, ptr noundef %9082, ptr noundef %9085, i32 noundef %9087) #10
  br label %9089

9089:                                             ; preds = %9072, %9055
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  br label %9090

9090:                                             ; preds = %9089
  br label %9091

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

9092:                                             ; No predecessors!
  br label %9093

9093:                                             ; preds = %9092
  br label %9094

9094:                                             ; preds = %9093, %9035
  br label %9095

9095:                                             ; preds = %9094
  br label %9096

9096:                                             ; preds = %9095
  br label %9097

9097:                                             ; preds = %9096
  %9098 = load i32, ptr @test_count, align 4, !tbaa !5
  %9099 = add nsw i32 %9098, 1
  store i32 %9099, ptr @test_count, align 4, !tbaa !5
  %9100 = load ptr, ptr %188, align 8, !tbaa !9
  %9101 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %9100, i32 noundef 1, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %9102 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  store i32 %9101, ptr %9102, align 4
  %9103 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  %9104 = load i32, ptr %9103, align 4
  %9105 = call zeroext i1 @s2n_result_is_ok(i32 %9104)
  br i1 %9105, label %9159, label %9106

9106:                                             ; preds = %9097
  br label %9107

9107:                                             ; preds = %9106
  br label %9108

9108:                                             ; preds = %9107
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #10
  %9109 = call ptr @__errno_location() #11
  %9110 = load i32, ptr %9109, align 4, !tbaa !5
  store i32 %9110, ptr %192, align 4, !tbaa !5
  %9111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9112 = call i32 @s2n_print_stacktrace(ptr noundef %9111)
  %9113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9114 = trunc i8 %9113 to i1
  br i1 %9114, label %9115, label %9137

9115:                                             ; preds = %9108
  %9116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9117 = call i32 @fileno(ptr noundef %9116) #10
  %9118 = call i32 @isatty(i32 noundef %9117) #10
  %9119 = icmp ne i32 %9118, 0
  br i1 %9119, label %9120, label %9137

9120:                                             ; preds = %9115
  %9121 = load i32, ptr %192, align 4, !tbaa !5
  %9122 = call ptr @__errno_location() #11
  store i32 %9121, ptr %9122, align 4, !tbaa !5
  %9123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9124 = load i32, ptr @test_count, align 4, !tbaa !5
  %9125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9126 = load i32, ptr %9125, align 4, !tbaa !5
  %9127 = call ptr @s2n_strerror(i32 noundef %9126, ptr noundef @.str.4)
  %9128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9129 = load i32, ptr %9128, align 4, !tbaa !5
  %9130 = call ptr @s2n_strerror_debug(i32 noundef %9129, ptr noundef @.str.4)
  %9131 = call ptr @__errno_location() #11
  %9132 = load i32, ptr %9131, align 4, !tbaa !5
  %9133 = call ptr @strerror(i32 noundef %9132) #10
  %9134 = call ptr @__errno_location() #11
  %9135 = load i32, ptr %9134, align 4, !tbaa !5
  %9136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9123, ptr noundef @.str.2, i32 noundef %9124, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 357, ptr noundef %9127, ptr noundef %9130, ptr noundef %9133, i32 noundef %9135) #10
  br label %9154

9137:                                             ; preds = %9115, %9108
  %9138 = load i32, ptr %192, align 4, !tbaa !5
  %9139 = call ptr @__errno_location() #11
  store i32 %9138, ptr %9139, align 4, !tbaa !5
  %9140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9141 = load i32, ptr @test_count, align 4, !tbaa !5
  %9142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9143 = load i32, ptr %9142, align 4, !tbaa !5
  %9144 = call ptr @s2n_strerror(i32 noundef %9143, ptr noundef @.str.4)
  %9145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9146 = load i32, ptr %9145, align 4, !tbaa !5
  %9147 = call ptr @s2n_strerror_debug(i32 noundef %9146, ptr noundef @.str.4)
  %9148 = call ptr @__errno_location() #11
  %9149 = load i32, ptr %9148, align 4, !tbaa !5
  %9150 = call ptr @strerror(i32 noundef %9149) #10
  %9151 = call ptr @__errno_location() #11
  %9152 = load i32, ptr %9151, align 4, !tbaa !5
  %9153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9140, ptr noundef @.str.5, i32 noundef %9141, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 357, ptr noundef %9144, ptr noundef %9147, ptr noundef %9150, i32 noundef %9152) #10
  br label %9154

9154:                                             ; preds = %9137, %9120
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #10
  br label %9155

9155:                                             ; preds = %9154
  br label %9156

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

9157:                                             ; No predecessors!
  br label %9158

9158:                                             ; preds = %9157
  br label %9159

9159:                                             ; preds = %9158, %9097
  br label %9160

9160:                                             ; preds = %9159
  br label %9161

9161:                                             ; preds = %9160
  br label %9162

9162:                                             ; preds = %9161
  %9163 = load i32, ptr @test_count, align 4, !tbaa !5
  %9164 = add nsw i32 %9163, 1
  store i32 %9164, ptr @test_count, align 4, !tbaa !5
  %9165 = load ptr, ptr %188, align 8, !tbaa !9
  %9166 = getelementptr inbounds %struct.s2n_connection, ptr %9165, i32 0, i32 89
  %9167 = load i32, ptr %9166, align 8, !tbaa !48
  %9168 = icmp eq i32 %9167, 0
  br i1 %9168, label %9222, label %9169

9169:                                             ; preds = %9162
  br label %9170

9170:                                             ; preds = %9169
  br label %9171

9171:                                             ; preds = %9170
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #10
  %9172 = call ptr @__errno_location() #11
  %9173 = load i32, ptr %9172, align 4, !tbaa !5
  store i32 %9173, ptr %193, align 4, !tbaa !5
  %9174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9175 = call i32 @s2n_print_stacktrace(ptr noundef %9174)
  %9176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9177 = trunc i8 %9176 to i1
  br i1 %9177, label %9178, label %9200

9178:                                             ; preds = %9171
  %9179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9180 = call i32 @fileno(ptr noundef %9179) #10
  %9181 = call i32 @isatty(i32 noundef %9180) #10
  %9182 = icmp ne i32 %9181, 0
  br i1 %9182, label %9183, label %9200

9183:                                             ; preds = %9178
  %9184 = load i32, ptr %193, align 4, !tbaa !5
  %9185 = call ptr @__errno_location() #11
  store i32 %9184, ptr %9185, align 4, !tbaa !5
  %9186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9187 = load i32, ptr @test_count, align 4, !tbaa !5
  %9188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9189 = load i32, ptr %9188, align 4, !tbaa !5
  %9190 = call ptr @s2n_strerror(i32 noundef %9189, ptr noundef @.str.4)
  %9191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9192 = load i32, ptr %9191, align 4, !tbaa !5
  %9193 = call ptr @s2n_strerror_debug(i32 noundef %9192, ptr noundef @.str.4)
  %9194 = call ptr @__errno_location() #11
  %9195 = load i32, ptr %9194, align 4, !tbaa !5
  %9196 = call ptr @strerror(i32 noundef %9195) #10
  %9197 = call ptr @__errno_location() #11
  %9198 = load i32, ptr %9197, align 4, !tbaa !5
  %9199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9186, ptr noundef @.str.2, i32 noundef %9187, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 358, ptr noundef %9190, ptr noundef %9193, ptr noundef %9196, i32 noundef %9198) #10
  br label %9217

9200:                                             ; preds = %9178, %9171
  %9201 = load i32, ptr %193, align 4, !tbaa !5
  %9202 = call ptr @__errno_location() #11
  store i32 %9201, ptr %9202, align 4, !tbaa !5
  %9203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9204 = load i32, ptr @test_count, align 4, !tbaa !5
  %9205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9206 = load i32, ptr %9205, align 4, !tbaa !5
  %9207 = call ptr @s2n_strerror(i32 noundef %9206, ptr noundef @.str.4)
  %9208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9209 = load i32, ptr %9208, align 4, !tbaa !5
  %9210 = call ptr @s2n_strerror_debug(i32 noundef %9209, ptr noundef @.str.4)
  %9211 = call ptr @__errno_location() #11
  %9212 = load i32, ptr %9211, align 4, !tbaa !5
  %9213 = call ptr @strerror(i32 noundef %9212) #10
  %9214 = call ptr @__errno_location() #11
  %9215 = load i32, ptr %9214, align 4, !tbaa !5
  %9216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9203, ptr noundef @.str.5, i32 noundef %9204, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 358, ptr noundef %9207, ptr noundef %9210, ptr noundef %9213, i32 noundef %9215) #10
  br label %9217

9217:                                             ; preds = %9200, %9183
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #10
  br label %9218

9218:                                             ; preds = %9217
  br label %9219

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

9220:                                             ; No predecessors!
  br label %9221

9221:                                             ; preds = %9220
  br label %9222

9222:                                             ; preds = %9221, %9162
  br label %9223

9223:                                             ; preds = %9222
  br label %9224

9224:                                             ; preds = %9223
  br label %9225

9225:                                             ; preds = %9224
  %9226 = load i32, ptr @test_count, align 4, !tbaa !5
  %9227 = add nsw i32 %9226, 1
  store i32 %9227, ptr @test_count, align 4, !tbaa !5
  %9228 = load ptr, ptr %188, align 8, !tbaa !9
  %9229 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %9228)
  %9230 = icmp eq i32 %9229, -1
  br i1 %9230, label %9231, label %9284

9231:                                             ; preds = %9225
  br label %9232

9232:                                             ; preds = %9231
  br label %9233

9233:                                             ; preds = %9232
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #10
  %9234 = call ptr @__errno_location() #11
  %9235 = load i32, ptr %9234, align 4, !tbaa !5
  store i32 %9235, ptr %194, align 4, !tbaa !5
  %9236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9237 = call i32 @s2n_print_stacktrace(ptr noundef %9236)
  %9238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9239 = trunc i8 %9238 to i1
  br i1 %9239, label %9240, label %9262

9240:                                             ; preds = %9233
  %9241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9242 = call i32 @fileno(ptr noundef %9241) #10
  %9243 = call i32 @isatty(i32 noundef %9242) #10
  %9244 = icmp ne i32 %9243, 0
  br i1 %9244, label %9245, label %9262

9245:                                             ; preds = %9240
  %9246 = load i32, ptr %194, align 4, !tbaa !5
  %9247 = call ptr @__errno_location() #11
  store i32 %9246, ptr %9247, align 4, !tbaa !5
  %9248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9249 = load i32, ptr @test_count, align 4, !tbaa !5
  %9250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9251 = load i32, ptr %9250, align 4, !tbaa !5
  %9252 = call ptr @s2n_strerror(i32 noundef %9251, ptr noundef @.str.4)
  %9253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9254 = load i32, ptr %9253, align 4, !tbaa !5
  %9255 = call ptr @s2n_strerror_debug(i32 noundef %9254, ptr noundef @.str.4)
  %9256 = call ptr @__errno_location() #11
  %9257 = load i32, ptr %9256, align 4, !tbaa !5
  %9258 = call ptr @strerror(i32 noundef %9257) #10
  %9259 = call ptr @__errno_location() #11
  %9260 = load i32, ptr %9259, align 4, !tbaa !5
  %9261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9248, ptr noundef @.str.2, i32 noundef %9249, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 359, ptr noundef %9252, ptr noundef %9255, ptr noundef %9258, i32 noundef %9260) #10
  br label %9279

9262:                                             ; preds = %9240, %9233
  %9263 = load i32, ptr %194, align 4, !tbaa !5
  %9264 = call ptr @__errno_location() #11
  store i32 %9263, ptr %9264, align 4, !tbaa !5
  %9265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9266 = load i32, ptr @test_count, align 4, !tbaa !5
  %9267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9268 = load i32, ptr %9267, align 4, !tbaa !5
  %9269 = call ptr @s2n_strerror(i32 noundef %9268, ptr noundef @.str.4)
  %9270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9271 = load i32, ptr %9270, align 4, !tbaa !5
  %9272 = call ptr @s2n_strerror_debug(i32 noundef %9271, ptr noundef @.str.4)
  %9273 = call ptr @__errno_location() #11
  %9274 = load i32, ptr %9273, align 4, !tbaa !5
  %9275 = call ptr @strerror(i32 noundef %9274) #10
  %9276 = call ptr @__errno_location() #11
  %9277 = load i32, ptr %9276, align 4, !tbaa !5
  %9278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9265, ptr noundef @.str.5, i32 noundef %9266, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 359, ptr noundef %9269, ptr noundef %9272, ptr noundef %9275, i32 noundef %9277) #10
  br label %9279

9279:                                             ; preds = %9262, %9245
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #10
  br label %9280

9280:                                             ; preds = %9279
  br label %9281

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

9282:                                             ; No predecessors!
  br label %9283

9283:                                             ; preds = %9282
  br label %9284

9284:                                             ; preds = %9283, %9225
  br label %9285

9285:                                             ; preds = %9284
  br label %9286

9286:                                             ; preds = %9285
  br label %9287

9287:                                             ; preds = %9286
  %9288 = load i32, ptr @test_count, align 4, !tbaa !5
  %9289 = add nsw i32 %9288, 1
  store i32 %9289, ptr @test_count, align 4, !tbaa !5
  %9290 = load ptr, ptr %181, align 8, !tbaa !9
  %9291 = call i32 @s2n_client_hello_send(ptr noundef %9290)
  %9292 = icmp eq i32 %9291, -1
  br i1 %9292, label %9293, label %9346

9293:                                             ; preds = %9287
  br label %9294

9294:                                             ; preds = %9293
  br label %9295

9295:                                             ; preds = %9294
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #10
  %9296 = call ptr @__errno_location() #11
  %9297 = load i32, ptr %9296, align 4, !tbaa !5
  store i32 %9297, ptr %195, align 4, !tbaa !5
  %9298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9299 = call i32 @s2n_print_stacktrace(ptr noundef %9298)
  %9300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9301 = trunc i8 %9300 to i1
  br i1 %9301, label %9302, label %9324

9302:                                             ; preds = %9295
  %9303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9304 = call i32 @fileno(ptr noundef %9303) #10
  %9305 = call i32 @isatty(i32 noundef %9304) #10
  %9306 = icmp ne i32 %9305, 0
  br i1 %9306, label %9307, label %9324

9307:                                             ; preds = %9302
  %9308 = load i32, ptr %195, align 4, !tbaa !5
  %9309 = call ptr @__errno_location() #11
  store i32 %9308, ptr %9309, align 4, !tbaa !5
  %9310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9311 = load i32, ptr @test_count, align 4, !tbaa !5
  %9312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9313 = load i32, ptr %9312, align 4, !tbaa !5
  %9314 = call ptr @s2n_strerror(i32 noundef %9313, ptr noundef @.str.4)
  %9315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9316 = load i32, ptr %9315, align 4, !tbaa !5
  %9317 = call ptr @s2n_strerror_debug(i32 noundef %9316, ptr noundef @.str.4)
  %9318 = call ptr @__errno_location() #11
  %9319 = load i32, ptr %9318, align 4, !tbaa !5
  %9320 = call ptr @strerror(i32 noundef %9319) #10
  %9321 = call ptr @__errno_location() #11
  %9322 = load i32, ptr %9321, align 4, !tbaa !5
  %9323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9310, ptr noundef @.str.2, i32 noundef %9311, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 361, ptr noundef %9314, ptr noundef %9317, ptr noundef %9320, i32 noundef %9322) #10
  br label %9341

9324:                                             ; preds = %9302, %9295
  %9325 = load i32, ptr %195, align 4, !tbaa !5
  %9326 = call ptr @__errno_location() #11
  store i32 %9325, ptr %9326, align 4, !tbaa !5
  %9327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9328 = load i32, ptr @test_count, align 4, !tbaa !5
  %9329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9330 = load i32, ptr %9329, align 4, !tbaa !5
  %9331 = call ptr @s2n_strerror(i32 noundef %9330, ptr noundef @.str.4)
  %9332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9333 = load i32, ptr %9332, align 4, !tbaa !5
  %9334 = call ptr @s2n_strerror_debug(i32 noundef %9333, ptr noundef @.str.4)
  %9335 = call ptr @__errno_location() #11
  %9336 = load i32, ptr %9335, align 4, !tbaa !5
  %9337 = call ptr @strerror(i32 noundef %9336) #10
  %9338 = call ptr @__errno_location() #11
  %9339 = load i32, ptr %9338, align 4, !tbaa !5
  %9340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9327, ptr noundef @.str.5, i32 noundef %9328, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 361, ptr noundef %9331, ptr noundef %9334, ptr noundef %9337, i32 noundef %9339) #10
  br label %9341

9341:                                             ; preds = %9324, %9307
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #10
  br label %9342

9342:                                             ; preds = %9341
  br label %9343

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

9344:                                             ; No predecessors!
  br label %9345

9345:                                             ; preds = %9344
  br label %9346

9346:                                             ; preds = %9345, %9287
  br label %9347

9347:                                             ; preds = %9346
  br label %9348

9348:                                             ; preds = %9347
  br label %9349

9349:                                             ; preds = %9348
  %9350 = load i32, ptr @test_count, align 4, !tbaa !5
  %9351 = add nsw i32 %9350, 1
  store i32 %9351, ptr @test_count, align 4, !tbaa !5
  %9352 = load ptr, ptr %181, align 8, !tbaa !9
  %9353 = getelementptr inbounds %struct.s2n_connection, ptr %9352, i32 0, i32 52
  %9354 = getelementptr inbounds %struct.s2n_handshake, ptr %9353, i32 0, i32 0
  %9355 = load ptr, ptr %188, align 8, !tbaa !9
  %9356 = getelementptr inbounds %struct.s2n_connection, ptr %9355, i32 0, i32 52
  %9357 = getelementptr inbounds %struct.s2n_handshake, ptr %9356, i32 0, i32 0
  %9358 = load ptr, ptr %181, align 8, !tbaa !9
  %9359 = getelementptr inbounds %struct.s2n_connection, ptr %9358, i32 0, i32 52
  %9360 = getelementptr inbounds %struct.s2n_handshake, ptr %9359, i32 0, i32 0
  %9361 = getelementptr inbounds %struct.s2n_stuffer, ptr %9360, i32 0, i32 2
  %9362 = load i32, ptr %9361, align 4, !tbaa !51
  %9363 = load ptr, ptr %181, align 8, !tbaa !9
  %9364 = getelementptr inbounds %struct.s2n_connection, ptr %9363, i32 0, i32 52
  %9365 = getelementptr inbounds %struct.s2n_handshake, ptr %9364, i32 0, i32 0
  %9366 = getelementptr inbounds %struct.s2n_stuffer, ptr %9365, i32 0, i32 1
  %9367 = load i32, ptr %9366, align 8, !tbaa !52
  %9368 = sub i32 %9362, %9367
  %9369 = call i32 @s2n_stuffer_copy(ptr noundef %9354, ptr noundef %9357, i32 noundef %9368)
  %9370 = icmp eq i32 %9369, -1
  br i1 %9370, label %9371, label %9424

9371:                                             ; preds = %9349
  br label %9372

9372:                                             ; preds = %9371
  br label %9373

9373:                                             ; preds = %9372
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #10
  %9374 = call ptr @__errno_location() #11
  %9375 = load i32, ptr %9374, align 4, !tbaa !5
  store i32 %9375, ptr %196, align 4, !tbaa !5
  %9376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9377 = call i32 @s2n_print_stacktrace(ptr noundef %9376)
  %9378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9379 = trunc i8 %9378 to i1
  br i1 %9379, label %9380, label %9402

9380:                                             ; preds = %9373
  %9381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9382 = call i32 @fileno(ptr noundef %9381) #10
  %9383 = call i32 @isatty(i32 noundef %9382) #10
  %9384 = icmp ne i32 %9383, 0
  br i1 %9384, label %9385, label %9402

9385:                                             ; preds = %9380
  %9386 = load i32, ptr %196, align 4, !tbaa !5
  %9387 = call ptr @__errno_location() #11
  store i32 %9386, ptr %9387, align 4, !tbaa !5
  %9388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9389 = load i32, ptr @test_count, align 4, !tbaa !5
  %9390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9391 = load i32, ptr %9390, align 4, !tbaa !5
  %9392 = call ptr @s2n_strerror(i32 noundef %9391, ptr noundef @.str.4)
  %9393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9394 = load i32, ptr %9393, align 4, !tbaa !5
  %9395 = call ptr @s2n_strerror_debug(i32 noundef %9394, ptr noundef @.str.4)
  %9396 = call ptr @__errno_location() #11
  %9397 = load i32, ptr %9396, align 4, !tbaa !5
  %9398 = call ptr @strerror(i32 noundef %9397) #10
  %9399 = call ptr @__errno_location() #11
  %9400 = load i32, ptr %9399, align 4, !tbaa !5
  %9401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9388, ptr noundef @.str.2, i32 noundef %9389, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 363, ptr noundef %9392, ptr noundef %9395, ptr noundef %9398, i32 noundef %9400) #10
  br label %9419

9402:                                             ; preds = %9380, %9373
  %9403 = load i32, ptr %196, align 4, !tbaa !5
  %9404 = call ptr @__errno_location() #11
  store i32 %9403, ptr %9404, align 4, !tbaa !5
  %9405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9406 = load i32, ptr @test_count, align 4, !tbaa !5
  %9407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9408 = load i32, ptr %9407, align 4, !tbaa !5
  %9409 = call ptr @s2n_strerror(i32 noundef %9408, ptr noundef @.str.4)
  %9410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9411 = load i32, ptr %9410, align 4, !tbaa !5
  %9412 = call ptr @s2n_strerror_debug(i32 noundef %9411, ptr noundef @.str.4)
  %9413 = call ptr @__errno_location() #11
  %9414 = load i32, ptr %9413, align 4, !tbaa !5
  %9415 = call ptr @strerror(i32 noundef %9414) #10
  %9416 = call ptr @__errno_location() #11
  %9417 = load i32, ptr %9416, align 4, !tbaa !5
  %9418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9405, ptr noundef @.str.5, i32 noundef %9406, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 363, ptr noundef %9409, ptr noundef %9412, ptr noundef %9415, i32 noundef %9417) #10
  br label %9419

9419:                                             ; preds = %9402, %9385
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #10
  br label %9420

9420:                                             ; preds = %9419
  br label %9421

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

9422:                                             ; No predecessors!
  br label %9423

9423:                                             ; preds = %9422
  br label %9424

9424:                                             ; preds = %9423, %9349
  br label %9425

9425:                                             ; preds = %9424
  br label %9426

9426:                                             ; preds = %9425
  br label %9427

9427:                                             ; preds = %9426
  %9428 = load i32, ptr @test_count, align 4, !tbaa !5
  %9429 = add nsw i32 %9428, 1
  store i32 %9429, ptr @test_count, align 4, !tbaa !5
  %9430 = load ptr, ptr %188, align 8, !tbaa !9
  %9431 = call i32 @s2n_establish_session(ptr noundef %9430)
  %9432 = icmp eq i32 %9431, -1
  br i1 %9432, label %9433, label %9486

9433:                                             ; preds = %9427
  br label %9434

9434:                                             ; preds = %9433
  br label %9435

9435:                                             ; preds = %9434
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #10
  %9436 = call ptr @__errno_location() #11
  %9437 = load i32, ptr %9436, align 4, !tbaa !5
  store i32 %9437, ptr %197, align 4, !tbaa !5
  %9438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9439 = call i32 @s2n_print_stacktrace(ptr noundef %9438)
  %9440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9441 = trunc i8 %9440 to i1
  br i1 %9441, label %9442, label %9464

9442:                                             ; preds = %9435
  %9443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9444 = call i32 @fileno(ptr noundef %9443) #10
  %9445 = call i32 @isatty(i32 noundef %9444) #10
  %9446 = icmp ne i32 %9445, 0
  br i1 %9446, label %9447, label %9464

9447:                                             ; preds = %9442
  %9448 = load i32, ptr %197, align 4, !tbaa !5
  %9449 = call ptr @__errno_location() #11
  store i32 %9448, ptr %9449, align 4, !tbaa !5
  %9450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9451 = load i32, ptr @test_count, align 4, !tbaa !5
  %9452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9453 = load i32, ptr %9452, align 4, !tbaa !5
  %9454 = call ptr @s2n_strerror(i32 noundef %9453, ptr noundef @.str.4)
  %9455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9456 = load i32, ptr %9455, align 4, !tbaa !5
  %9457 = call ptr @s2n_strerror_debug(i32 noundef %9456, ptr noundef @.str.4)
  %9458 = call ptr @__errno_location() #11
  %9459 = load i32, ptr %9458, align 4, !tbaa !5
  %9460 = call ptr @strerror(i32 noundef %9459) #10
  %9461 = call ptr @__errno_location() #11
  %9462 = load i32, ptr %9461, align 4, !tbaa !5
  %9463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9450, ptr noundef @.str.2, i32 noundef %9451, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 364, ptr noundef %9454, ptr noundef %9457, ptr noundef %9460, i32 noundef %9462) #10
  br label %9481

9464:                                             ; preds = %9442, %9435
  %9465 = load i32, ptr %197, align 4, !tbaa !5
  %9466 = call ptr @__errno_location() #11
  store i32 %9465, ptr %9466, align 4, !tbaa !5
  %9467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9468 = load i32, ptr @test_count, align 4, !tbaa !5
  %9469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9470 = load i32, ptr %9469, align 4, !tbaa !5
  %9471 = call ptr @s2n_strerror(i32 noundef %9470, ptr noundef @.str.4)
  %9472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9473 = load i32, ptr %9472, align 4, !tbaa !5
  %9474 = call ptr @s2n_strerror_debug(i32 noundef %9473, ptr noundef @.str.4)
  %9475 = call ptr @__errno_location() #11
  %9476 = load i32, ptr %9475, align 4, !tbaa !5
  %9477 = call ptr @strerror(i32 noundef %9476) #10
  %9478 = call ptr @__errno_location() #11
  %9479 = load i32, ptr %9478, align 4, !tbaa !5
  %9480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9467, ptr noundef @.str.5, i32 noundef %9468, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 364, ptr noundef %9471, ptr noundef %9474, ptr noundef %9477, i32 noundef %9479) #10
  br label %9481

9481:                                             ; preds = %9464, %9447
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #10
  br label %9482

9482:                                             ; preds = %9481
  br label %9483

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

9484:                                             ; No predecessors!
  br label %9485

9485:                                             ; preds = %9484
  br label %9486

9486:                                             ; preds = %9485, %9427
  br label %9487

9487:                                             ; preds = %9486
  br label %9488

9488:                                             ; preds = %9487
  br label %9489

9489:                                             ; preds = %9488
  %9490 = load i32, ptr @test_count, align 4, !tbaa !5
  %9491 = add nsw i32 %9490, 1
  store i32 %9491, ptr @test_count, align 4, !tbaa !5
  %9492 = load ptr, ptr %181, align 8, !tbaa !9
  %9493 = getelementptr inbounds %struct.s2n_connection, ptr %9492, i32 0, i32 89
  %9494 = load i32, ptr %9493, align 8, !tbaa !48
  %9495 = icmp eq i32 %9494, 1
  br i1 %9495, label %9549, label %9496

9496:                                             ; preds = %9489
  br label %9497

9497:                                             ; preds = %9496
  br label %9498

9498:                                             ; preds = %9497
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #10
  %9499 = call ptr @__errno_location() #11
  %9500 = load i32, ptr %9499, align 4, !tbaa !5
  store i32 %9500, ptr %198, align 4, !tbaa !5
  %9501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9502 = call i32 @s2n_print_stacktrace(ptr noundef %9501)
  %9503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9504 = trunc i8 %9503 to i1
  br i1 %9504, label %9505, label %9527

9505:                                             ; preds = %9498
  %9506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9507 = call i32 @fileno(ptr noundef %9506) #10
  %9508 = call i32 @isatty(i32 noundef %9507) #10
  %9509 = icmp ne i32 %9508, 0
  br i1 %9509, label %9510, label %9527

9510:                                             ; preds = %9505
  %9511 = load i32, ptr %198, align 4, !tbaa !5
  %9512 = call ptr @__errno_location() #11
  store i32 %9511, ptr %9512, align 4, !tbaa !5
  %9513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9514 = load i32, ptr @test_count, align 4, !tbaa !5
  %9515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9516 = load i32, ptr %9515, align 4, !tbaa !5
  %9517 = call ptr @s2n_strerror(i32 noundef %9516, ptr noundef @.str.4)
  %9518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9519 = load i32, ptr %9518, align 4, !tbaa !5
  %9520 = call ptr @s2n_strerror_debug(i32 noundef %9519, ptr noundef @.str.4)
  %9521 = call ptr @__errno_location() #11
  %9522 = load i32, ptr %9521, align 4, !tbaa !5
  %9523 = call ptr @strerror(i32 noundef %9522) #10
  %9524 = call ptr @__errno_location() #11
  %9525 = load i32, ptr %9524, align 4, !tbaa !5
  %9526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9513, ptr noundef @.str.2, i32 noundef %9514, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 366, ptr noundef %9517, ptr noundef %9520, ptr noundef %9523, i32 noundef %9525) #10
  br label %9544

9527:                                             ; preds = %9505, %9498
  %9528 = load i32, ptr %198, align 4, !tbaa !5
  %9529 = call ptr @__errno_location() #11
  store i32 %9528, ptr %9529, align 4, !tbaa !5
  %9530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9531 = load i32, ptr @test_count, align 4, !tbaa !5
  %9532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9533 = load i32, ptr %9532, align 4, !tbaa !5
  %9534 = call ptr @s2n_strerror(i32 noundef %9533, ptr noundef @.str.4)
  %9535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9536 = load i32, ptr %9535, align 4, !tbaa !5
  %9537 = call ptr @s2n_strerror_debug(i32 noundef %9536, ptr noundef @.str.4)
  %9538 = call ptr @__errno_location() #11
  %9539 = load i32, ptr %9538, align 4, !tbaa !5
  %9540 = call ptr @strerror(i32 noundef %9539) #10
  %9541 = call ptr @__errno_location() #11
  %9542 = load i32, ptr %9541, align 4, !tbaa !5
  %9543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9530, ptr noundef @.str.5, i32 noundef %9531, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 366, ptr noundef %9534, ptr noundef %9537, ptr noundef %9540, i32 noundef %9542) #10
  br label %9544

9544:                                             ; preds = %9527, %9510
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  br label %9545

9545:                                             ; preds = %9544
  br label %9546

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

9547:                                             ; No predecessors!
  br label %9548

9548:                                             ; preds = %9547
  br label %9549

9549:                                             ; preds = %9548, %9489
  br label %9550

9550:                                             ; preds = %9549
  br label %9551

9551:                                             ; preds = %9550
  br label %9552

9552:                                             ; preds = %9551
  %9553 = load i32, ptr @test_count, align 4, !tbaa !5
  %9554 = add nsw i32 %9553, 1
  store i32 %9554, ptr @test_count, align 4, !tbaa !5
  %9555 = load ptr, ptr %188, align 8, !tbaa !9
  %9556 = getelementptr inbounds %struct.s2n_connection, ptr %9555, i32 0, i32 89
  %9557 = load i32, ptr %9556, align 8, !tbaa !48
  %9558 = icmp eq i32 %9557, 3
  br i1 %9558, label %9612, label %9559

9559:                                             ; preds = %9552
  br label %9560

9560:                                             ; preds = %9559
  br label %9561

9561:                                             ; preds = %9560
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #10
  %9562 = call ptr @__errno_location() #11
  %9563 = load i32, ptr %9562, align 4, !tbaa !5
  store i32 %9563, ptr %199, align 4, !tbaa !5
  %9564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9565 = call i32 @s2n_print_stacktrace(ptr noundef %9564)
  %9566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9567 = trunc i8 %9566 to i1
  br i1 %9567, label %9568, label %9590

9568:                                             ; preds = %9561
  %9569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9570 = call i32 @fileno(ptr noundef %9569) #10
  %9571 = call i32 @isatty(i32 noundef %9570) #10
  %9572 = icmp ne i32 %9571, 0
  br i1 %9572, label %9573, label %9590

9573:                                             ; preds = %9568
  %9574 = load i32, ptr %199, align 4, !tbaa !5
  %9575 = call ptr @__errno_location() #11
  store i32 %9574, ptr %9575, align 4, !tbaa !5
  %9576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9577 = load i32, ptr @test_count, align 4, !tbaa !5
  %9578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9579 = load i32, ptr %9578, align 4, !tbaa !5
  %9580 = call ptr @s2n_strerror(i32 noundef %9579, ptr noundef @.str.4)
  %9581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9582 = load i32, ptr %9581, align 4, !tbaa !5
  %9583 = call ptr @s2n_strerror_debug(i32 noundef %9582, ptr noundef @.str.4)
  %9584 = call ptr @__errno_location() #11
  %9585 = load i32, ptr %9584, align 4, !tbaa !5
  %9586 = call ptr @strerror(i32 noundef %9585) #10
  %9587 = call ptr @__errno_location() #11
  %9588 = load i32, ptr %9587, align 4, !tbaa !5
  %9589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9576, ptr noundef @.str.2, i32 noundef %9577, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 367, ptr noundef %9580, ptr noundef %9583, ptr noundef %9586, i32 noundef %9588) #10
  br label %9607

9590:                                             ; preds = %9568, %9561
  %9591 = load i32, ptr %199, align 4, !tbaa !5
  %9592 = call ptr @__errno_location() #11
  store i32 %9591, ptr %9592, align 4, !tbaa !5
  %9593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9594 = load i32, ptr @test_count, align 4, !tbaa !5
  %9595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9596 = load i32, ptr %9595, align 4, !tbaa !5
  %9597 = call ptr @s2n_strerror(i32 noundef %9596, ptr noundef @.str.4)
  %9598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9599 = load i32, ptr %9598, align 4, !tbaa !5
  %9600 = call ptr @s2n_strerror_debug(i32 noundef %9599, ptr noundef @.str.4)
  %9601 = call ptr @__errno_location() #11
  %9602 = load i32, ptr %9601, align 4, !tbaa !5
  %9603 = call ptr @strerror(i32 noundef %9602) #10
  %9604 = call ptr @__errno_location() #11
  %9605 = load i32, ptr %9604, align 4, !tbaa !5
  %9606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9593, ptr noundef @.str.5, i32 noundef %9594, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 367, ptr noundef %9597, ptr noundef %9600, ptr noundef %9603, i32 noundef %9605) #10
  br label %9607

9607:                                             ; preds = %9590, %9573
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #10
  br label %9608

9608:                                             ; preds = %9607
  br label %9609

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

9610:                                             ; No predecessors!
  br label %9611

9611:                                             ; preds = %9610
  br label %9612

9612:                                             ; preds = %9611, %9552
  br label %9613

9613:                                             ; preds = %9612
  br label %9614

9614:                                             ; preds = %9613
  br label %9615

9615:                                             ; preds = %9614
  %9616 = load i32, ptr @test_count, align 4, !tbaa !5
  %9617 = add nsw i32 %9616, 1
  store i32 %9617, ptr @test_count, align 4, !tbaa !5
  %9618 = load ptr, ptr %181, align 8, !tbaa !9
  %9619 = call i32 @s2n_connection_free(ptr noundef %9618)
  %9620 = icmp eq i32 %9619, -1
  br i1 %9620, label %9621, label %9674

9621:                                             ; preds = %9615
  br label %9622

9622:                                             ; preds = %9621
  br label %9623

9623:                                             ; preds = %9622
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #10
  %9624 = call ptr @__errno_location() #11
  %9625 = load i32, ptr %9624, align 4, !tbaa !5
  store i32 %9625, ptr %200, align 4, !tbaa !5
  %9626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9627 = call i32 @s2n_print_stacktrace(ptr noundef %9626)
  %9628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9629 = trunc i8 %9628 to i1
  br i1 %9629, label %9630, label %9652

9630:                                             ; preds = %9623
  %9631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9632 = call i32 @fileno(ptr noundef %9631) #10
  %9633 = call i32 @isatty(i32 noundef %9632) #10
  %9634 = icmp ne i32 %9633, 0
  br i1 %9634, label %9635, label %9652

9635:                                             ; preds = %9630
  %9636 = load i32, ptr %200, align 4, !tbaa !5
  %9637 = call ptr @__errno_location() #11
  store i32 %9636, ptr %9637, align 4, !tbaa !5
  %9638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9639 = load i32, ptr @test_count, align 4, !tbaa !5
  %9640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9641 = load i32, ptr %9640, align 4, !tbaa !5
  %9642 = call ptr @s2n_strerror(i32 noundef %9641, ptr noundef @.str.4)
  %9643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9644 = load i32, ptr %9643, align 4, !tbaa !5
  %9645 = call ptr @s2n_strerror_debug(i32 noundef %9644, ptr noundef @.str.4)
  %9646 = call ptr @__errno_location() #11
  %9647 = load i32, ptr %9646, align 4, !tbaa !5
  %9648 = call ptr @strerror(i32 noundef %9647) #10
  %9649 = call ptr @__errno_location() #11
  %9650 = load i32, ptr %9649, align 4, !tbaa !5
  %9651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9638, ptr noundef @.str.2, i32 noundef %9639, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 369, ptr noundef %9642, ptr noundef %9645, ptr noundef %9648, i32 noundef %9650) #10
  br label %9669

9652:                                             ; preds = %9630, %9623
  %9653 = load i32, ptr %200, align 4, !tbaa !5
  %9654 = call ptr @__errno_location() #11
  store i32 %9653, ptr %9654, align 4, !tbaa !5
  %9655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9656 = load i32, ptr @test_count, align 4, !tbaa !5
  %9657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9658 = load i32, ptr %9657, align 4, !tbaa !5
  %9659 = call ptr @s2n_strerror(i32 noundef %9658, ptr noundef @.str.4)
  %9660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9661 = load i32, ptr %9660, align 4, !tbaa !5
  %9662 = call ptr @s2n_strerror_debug(i32 noundef %9661, ptr noundef @.str.4)
  %9663 = call ptr @__errno_location() #11
  %9664 = load i32, ptr %9663, align 4, !tbaa !5
  %9665 = call ptr @strerror(i32 noundef %9664) #10
  %9666 = call ptr @__errno_location() #11
  %9667 = load i32, ptr %9666, align 4, !tbaa !5
  %9668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9655, ptr noundef @.str.5, i32 noundef %9656, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 369, ptr noundef %9659, ptr noundef %9662, ptr noundef %9665, i32 noundef %9667) #10
  br label %9669

9669:                                             ; preds = %9652, %9635
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #10
  br label %9670

9670:                                             ; preds = %9669
  br label %9671

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

9672:                                             ; No predecessors!
  br label %9673

9673:                                             ; preds = %9672
  br label %9674

9674:                                             ; preds = %9673, %9615
  br label %9675

9675:                                             ; preds = %9674
  br label %9676

9676:                                             ; preds = %9675
  br label %9677

9677:                                             ; preds = %9676
  %9678 = load i32, ptr @test_count, align 4, !tbaa !5
  %9679 = add nsw i32 %9678, 1
  store i32 %9679, ptr @test_count, align 4, !tbaa !5
  %9680 = load ptr, ptr %188, align 8, !tbaa !9
  %9681 = call i32 @s2n_connection_free(ptr noundef %9680)
  %9682 = icmp eq i32 %9681, -1
  br i1 %9682, label %9683, label %9736

9683:                                             ; preds = %9677
  br label %9684

9684:                                             ; preds = %9683
  br label %9685

9685:                                             ; preds = %9684
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #10
  %9686 = call ptr @__errno_location() #11
  %9687 = load i32, ptr %9686, align 4, !tbaa !5
  store i32 %9687, ptr %201, align 4, !tbaa !5
  %9688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9689 = call i32 @s2n_print_stacktrace(ptr noundef %9688)
  %9690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9691 = trunc i8 %9690 to i1
  br i1 %9691, label %9692, label %9714

9692:                                             ; preds = %9685
  %9693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9694 = call i32 @fileno(ptr noundef %9693) #10
  %9695 = call i32 @isatty(i32 noundef %9694) #10
  %9696 = icmp ne i32 %9695, 0
  br i1 %9696, label %9697, label %9714

9697:                                             ; preds = %9692
  %9698 = load i32, ptr %201, align 4, !tbaa !5
  %9699 = call ptr @__errno_location() #11
  store i32 %9698, ptr %9699, align 4, !tbaa !5
  %9700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9701 = load i32, ptr @test_count, align 4, !tbaa !5
  %9702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9703 = load i32, ptr %9702, align 4, !tbaa !5
  %9704 = call ptr @s2n_strerror(i32 noundef %9703, ptr noundef @.str.4)
  %9705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9706 = load i32, ptr %9705, align 4, !tbaa !5
  %9707 = call ptr @s2n_strerror_debug(i32 noundef %9706, ptr noundef @.str.4)
  %9708 = call ptr @__errno_location() #11
  %9709 = load i32, ptr %9708, align 4, !tbaa !5
  %9710 = call ptr @strerror(i32 noundef %9709) #10
  %9711 = call ptr @__errno_location() #11
  %9712 = load i32, ptr %9711, align 4, !tbaa !5
  %9713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9700, ptr noundef @.str.2, i32 noundef %9701, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 370, ptr noundef %9704, ptr noundef %9707, ptr noundef %9710, i32 noundef %9712) #10
  br label %9731

9714:                                             ; preds = %9692, %9685
  %9715 = load i32, ptr %201, align 4, !tbaa !5
  %9716 = call ptr @__errno_location() #11
  store i32 %9715, ptr %9716, align 4, !tbaa !5
  %9717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9718 = load i32, ptr @test_count, align 4, !tbaa !5
  %9719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9720 = load i32, ptr %9719, align 4, !tbaa !5
  %9721 = call ptr @s2n_strerror(i32 noundef %9720, ptr noundef @.str.4)
  %9722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9723 = load i32, ptr %9722, align 4, !tbaa !5
  %9724 = call ptr @s2n_strerror_debug(i32 noundef %9723, ptr noundef @.str.4)
  %9725 = call ptr @__errno_location() #11
  %9726 = load i32, ptr %9725, align 4, !tbaa !5
  %9727 = call ptr @strerror(i32 noundef %9726) #10
  %9728 = call ptr @__errno_location() #11
  %9729 = load i32, ptr %9728, align 4, !tbaa !5
  %9730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9717, ptr noundef @.str.5, i32 noundef %9718, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 370, ptr noundef %9721, ptr noundef %9724, ptr noundef %9727, i32 noundef %9729) #10
  br label %9731

9731:                                             ; preds = %9714, %9697
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #10
  br label %9732

9732:                                             ; preds = %9731
  br label %9733

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

9734:                                             ; No predecessors!
  br label %9735

9735:                                             ; preds = %9734
  br label %9736

9736:                                             ; preds = %9735, %9677
  br label %9737

9737:                                             ; preds = %9736
  br label %9738

9738:                                             ; preds = %9737
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #10
  %9739 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9739, ptr %202, align 8, !tbaa !9
  br label %9740

9740:                                             ; preds = %9738
  %9741 = load i32, ptr @test_count, align 4, !tbaa !5
  %9742 = add nsw i32 %9741, 1
  store i32 %9742, ptr @test_count, align 4, !tbaa !5
  %9743 = load ptr, ptr %202, align 8, !tbaa !9
  %9744 = icmp eq ptr %9743, null
  br i1 %9744, label %9745, label %9798

9745:                                             ; preds = %9740
  br label %9746

9746:                                             ; preds = %9745
  br label %9747

9747:                                             ; preds = %9746
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #10
  %9748 = call ptr @__errno_location() #11
  %9749 = load i32, ptr %9748, align 4, !tbaa !5
  store i32 %9749, ptr %203, align 4, !tbaa !5
  %9750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9751 = call i32 @s2n_print_stacktrace(ptr noundef %9750)
  %9752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9753 = trunc i8 %9752 to i1
  br i1 %9753, label %9754, label %9776

9754:                                             ; preds = %9747
  %9755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9756 = call i32 @fileno(ptr noundef %9755) #10
  %9757 = call i32 @isatty(i32 noundef %9756) #10
  %9758 = icmp ne i32 %9757, 0
  br i1 %9758, label %9759, label %9776

9759:                                             ; preds = %9754
  %9760 = load i32, ptr %203, align 4, !tbaa !5
  %9761 = call ptr @__errno_location() #11
  store i32 %9760, ptr %9761, align 4, !tbaa !5
  %9762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9763 = load i32, ptr @test_count, align 4, !tbaa !5
  %9764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9765 = load i32, ptr %9764, align 4, !tbaa !5
  %9766 = call ptr @s2n_strerror(i32 noundef %9765, ptr noundef @.str.4)
  %9767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9768 = load i32, ptr %9767, align 4, !tbaa !5
  %9769 = call ptr @s2n_strerror_debug(i32 noundef %9768, ptr noundef @.str.4)
  %9770 = call ptr @__errno_location() #11
  %9771 = load i32, ptr %9770, align 4, !tbaa !5
  %9772 = call ptr @strerror(i32 noundef %9771) #10
  %9773 = call ptr @__errno_location() #11
  %9774 = load i32, ptr %9773, align 4, !tbaa !5
  %9775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9762, ptr noundef @.str.2, i32 noundef %9763, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 376, ptr noundef %9766, ptr noundef %9769, ptr noundef %9772, i32 noundef %9774) #10
  br label %9793

9776:                                             ; preds = %9754, %9747
  %9777 = load i32, ptr %203, align 4, !tbaa !5
  %9778 = call ptr @__errno_location() #11
  store i32 %9777, ptr %9778, align 4, !tbaa !5
  %9779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9780 = load i32, ptr @test_count, align 4, !tbaa !5
  %9781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9782 = load i32, ptr %9781, align 4, !tbaa !5
  %9783 = call ptr @s2n_strerror(i32 noundef %9782, ptr noundef @.str.4)
  %9784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9785 = load i32, ptr %9784, align 4, !tbaa !5
  %9786 = call ptr @s2n_strerror_debug(i32 noundef %9785, ptr noundef @.str.4)
  %9787 = call ptr @__errno_location() #11
  %9788 = load i32, ptr %9787, align 4, !tbaa !5
  %9789 = call ptr @strerror(i32 noundef %9788) #10
  %9790 = call ptr @__errno_location() #11
  %9791 = load i32, ptr %9790, align 4, !tbaa !5
  %9792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9779, ptr noundef @.str.5, i32 noundef %9780, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 376, ptr noundef %9783, ptr noundef %9786, ptr noundef %9789, i32 noundef %9791) #10
  br label %9793

9793:                                             ; preds = %9776, %9759
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #10
  br label %9794

9794:                                             ; preds = %9793
  br label %9795

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

9796:                                             ; No predecessors!
  br label %9797

9797:                                             ; preds = %9796
  br label %9798

9798:                                             ; preds = %9797, %9740
  br label %9799

9799:                                             ; preds = %9798
  br label %9800

9800:                                             ; preds = %9799
  br label %9801

9801:                                             ; preds = %9800
  %9802 = load i32, ptr @test_count, align 4, !tbaa !5
  %9803 = add nsw i32 %9802, 1
  store i32 %9803, ptr @test_count, align 4, !tbaa !5
  %9804 = load ptr, ptr %202, align 8, !tbaa !9
  %9805 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %9804, ptr noundef @.str.16)
  %9806 = icmp eq i32 %9805, -1
  br i1 %9806, label %9807, label %9860

9807:                                             ; preds = %9801
  br label %9808

9808:                                             ; preds = %9807
  br label %9809

9809:                                             ; preds = %9808
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #10
  %9810 = call ptr @__errno_location() #11
  %9811 = load i32, ptr %9810, align 4, !tbaa !5
  store i32 %9811, ptr %204, align 4, !tbaa !5
  %9812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9813 = call i32 @s2n_print_stacktrace(ptr noundef %9812)
  %9814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9815 = trunc i8 %9814 to i1
  br i1 %9815, label %9816, label %9838

9816:                                             ; preds = %9809
  %9817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9818 = call i32 @fileno(ptr noundef %9817) #10
  %9819 = call i32 @isatty(i32 noundef %9818) #10
  %9820 = icmp ne i32 %9819, 0
  br i1 %9820, label %9821, label %9838

9821:                                             ; preds = %9816
  %9822 = load i32, ptr %204, align 4, !tbaa !5
  %9823 = call ptr @__errno_location() #11
  store i32 %9822, ptr %9823, align 4, !tbaa !5
  %9824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9825 = load i32, ptr @test_count, align 4, !tbaa !5
  %9826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call ptr @s2n_strerror(i32 noundef %9827, ptr noundef @.str.4)
  %9829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9830 = load i32, ptr %9829, align 4, !tbaa !5
  %9831 = call ptr @s2n_strerror_debug(i32 noundef %9830, ptr noundef @.str.4)
  %9832 = call ptr @__errno_location() #11
  %9833 = load i32, ptr %9832, align 4, !tbaa !5
  %9834 = call ptr @strerror(i32 noundef %9833) #10
  %9835 = call ptr @__errno_location() #11
  %9836 = load i32, ptr %9835, align 4, !tbaa !5
  %9837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9824, ptr noundef @.str.2, i32 noundef %9825, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 377, ptr noundef %9828, ptr noundef %9831, ptr noundef %9834, i32 noundef %9836) #10
  br label %9855

9838:                                             ; preds = %9816, %9809
  %9839 = load i32, ptr %204, align 4, !tbaa !5
  %9840 = call ptr @__errno_location() #11
  store i32 %9839, ptr %9840, align 4, !tbaa !5
  %9841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9842 = load i32, ptr @test_count, align 4, !tbaa !5
  %9843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9844 = load i32, ptr %9843, align 4, !tbaa !5
  %9845 = call ptr @s2n_strerror(i32 noundef %9844, ptr noundef @.str.4)
  %9846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9847 = load i32, ptr %9846, align 4, !tbaa !5
  %9848 = call ptr @s2n_strerror_debug(i32 noundef %9847, ptr noundef @.str.4)
  %9849 = call ptr @__errno_location() #11
  %9850 = load i32, ptr %9849, align 4, !tbaa !5
  %9851 = call ptr @strerror(i32 noundef %9850) #10
  %9852 = call ptr @__errno_location() #11
  %9853 = load i32, ptr %9852, align 4, !tbaa !5
  %9854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9841, ptr noundef @.str.5, i32 noundef %9842, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 377, ptr noundef %9845, ptr noundef %9848, ptr noundef %9851, i32 noundef %9853) #10
  br label %9855

9855:                                             ; preds = %9838, %9821
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #10
  br label %9856

9856:                                             ; preds = %9855
  br label %9857

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

9858:                                             ; No predecessors!
  br label %9859

9859:                                             ; preds = %9858
  br label %9860

9860:                                             ; preds = %9859, %9801
  br label %9861

9861:                                             ; preds = %9860
  br label %9862

9862:                                             ; preds = %9861
  br label %9863

9863:                                             ; preds = %9862
  %9864 = load i32, ptr @test_count, align 4, !tbaa !5
  %9865 = add nsw i32 %9864, 1
  store i32 %9865, ptr @test_count, align 4, !tbaa !5
  %9866 = load ptr, ptr %202, align 8, !tbaa !9
  %9867 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %9866, i32 noundef 0, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %9868 = getelementptr inbounds %struct.s2n_result, ptr %205, i32 0, i32 0
  store i32 %9867, ptr %9868, align 4
  %9869 = getelementptr inbounds %struct.s2n_result, ptr %205, i32 0, i32 0
  %9870 = load i32, ptr %9869, align 4
  %9871 = call zeroext i1 @s2n_result_is_ok(i32 %9870)
  br i1 %9871, label %9925, label %9872

9872:                                             ; preds = %9863
  br label %9873

9873:                                             ; preds = %9872
  br label %9874

9874:                                             ; preds = %9873
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #10
  %9875 = call ptr @__errno_location() #11
  %9876 = load i32, ptr %9875, align 4, !tbaa !5
  store i32 %9876, ptr %206, align 4, !tbaa !5
  %9877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9878 = call i32 @s2n_print_stacktrace(ptr noundef %9877)
  %9879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9880 = trunc i8 %9879 to i1
  br i1 %9880, label %9881, label %9903

9881:                                             ; preds = %9874
  %9882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9883 = call i32 @fileno(ptr noundef %9882) #10
  %9884 = call i32 @isatty(i32 noundef %9883) #10
  %9885 = icmp ne i32 %9884, 0
  br i1 %9885, label %9886, label %9903

9886:                                             ; preds = %9881
  %9887 = load i32, ptr %206, align 4, !tbaa !5
  %9888 = call ptr @__errno_location() #11
  store i32 %9887, ptr %9888, align 4, !tbaa !5
  %9889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9890 = load i32, ptr @test_count, align 4, !tbaa !5
  %9891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9892 = load i32, ptr %9891, align 4, !tbaa !5
  %9893 = call ptr @s2n_strerror(i32 noundef %9892, ptr noundef @.str.4)
  %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_debug(i32 noundef %9895, ptr noundef @.str.4)
  %9897 = call ptr @__errno_location() #11
  %9898 = load i32, ptr %9897, align 4, !tbaa !5
  %9899 = call ptr @strerror(i32 noundef %9898) #10
  %9900 = call ptr @__errno_location() #11
  %9901 = load i32, ptr %9900, align 4, !tbaa !5
  %9902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9889, ptr noundef @.str.2, i32 noundef %9890, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 378, ptr noundef %9893, ptr noundef %9896, ptr noundef %9899, i32 noundef %9901) #10
  br label %9920

9903:                                             ; preds = %9881, %9874
  %9904 = load i32, ptr %206, align 4, !tbaa !5
  %9905 = call ptr @__errno_location() #11
  store i32 %9904, ptr %9905, align 4, !tbaa !5
  %9906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9907 = load i32, ptr @test_count, align 4, !tbaa !5
  %9908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9909 = load i32, ptr %9908, align 4, !tbaa !5
  %9910 = call ptr @s2n_strerror(i32 noundef %9909, ptr noundef @.str.4)
  %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_debug(i32 noundef %9912, ptr noundef @.str.4)
  %9914 = call ptr @__errno_location() #11
  %9915 = load i32, ptr %9914, align 4, !tbaa !5
  %9916 = call ptr @strerror(i32 noundef %9915) #10
  %9917 = call ptr @__errno_location() #11
  %9918 = load i32, ptr %9917, align 4, !tbaa !5
  %9919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9906, ptr noundef @.str.5, i32 noundef %9907, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 378, ptr noundef %9910, ptr noundef %9913, ptr noundef %9916, i32 noundef %9918) #10
  br label %9920

9920:                                             ; preds = %9903, %9886
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #10
  br label %9921

9921:                                             ; preds = %9920
  br label %9922

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

9923:                                             ; No predecessors!
  br label %9924

9924:                                             ; preds = %9923
  br label %9925

9925:                                             ; preds = %9924, %9863
  br label %9926

9926:                                             ; preds = %9925
  br label %9927

9927:                                             ; preds = %9926
  br label %9928

9928:                                             ; preds = %9927
  %9929 = load i32, ptr @test_count, align 4, !tbaa !5
  %9930 = add nsw i32 %9929, 1
  store i32 %9930, ptr @test_count, align 4, !tbaa !5
  %9931 = load ptr, ptr %202, align 8, !tbaa !9
  %9932 = getelementptr inbounds %struct.s2n_connection, ptr %9931, i32 0, i32 89
  %9933 = load i32, ptr %9932, align 8, !tbaa !48
  %9934 = icmp eq i32 %9933, 0
  br i1 %9934, label %9988, label %9935

9935:                                             ; preds = %9928
  br label %9936

9936:                                             ; preds = %9935
  br label %9937

9937:                                             ; preds = %9936
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #10
  %9938 = call ptr @__errno_location() #11
  %9939 = load i32, ptr %9938, align 4, !tbaa !5
  store i32 %9939, ptr %207, 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) #10
  %9947 = call i32 @isatty(i32 noundef %9946) #10
  %9948 = icmp ne i32 %9947, 0
  br i1 %9948, label %9949, label %9966

9949:                                             ; preds = %9944
  %9950 = load i32, ptr %207, align 4, !tbaa !5
  %9951 = call ptr @__errno_location() #11
  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() #11
  %9961 = load i32, ptr %9960, align 4, !tbaa !5
  %9962 = call ptr @strerror(i32 noundef %9961) #10
  %9963 = call ptr @__errno_location() #11
  %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.48, ptr noundef @.str.1, i32 noundef 379, ptr noundef %9956, ptr noundef %9959, ptr noundef %9962, i32 noundef %9964) #10
  br label %9983

9966:                                             ; preds = %9944, %9937
  %9967 = load i32, ptr %207, align 4, !tbaa !5
  %9968 = call ptr @__errno_location() #11
  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() #11
  %9978 = load i32, ptr %9977, align 4, !tbaa !5
  %9979 = call ptr @strerror(i32 noundef %9978) #10
  %9980 = call ptr @__errno_location() #11
  %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.48, ptr noundef @.str.1, i32 noundef 379, ptr noundef %9973, ptr noundef %9976, ptr noundef %9979, i32 noundef %9981) #10
  br label %9983

9983:                                             ; preds = %9966, %9949
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #10
  br label %9984

9984:                                             ; preds = %9983
  br label %9985

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

9986:                                             ; No predecessors!
  br label %9987

9987:                                             ; preds = %9986
  br label %9988

9988:                                             ; preds = %9987, %9928
  br label %9989

9989:                                             ; preds = %9988
  br label %9990

9990:                                             ; preds = %9989
  br label %9991

9991:                                             ; preds = %9990
  %9992 = load i32, ptr @test_count, align 4, !tbaa !5
  %9993 = add nsw i32 %9992, 1
  store i32 %9993, ptr @test_count, align 4, !tbaa !5
  %9994 = load ptr, ptr %202, align 8, !tbaa !9
  %9995 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %9994)
  %9996 = icmp eq i32 %9995, -1
  br i1 %9996, label %9997, label %10050

9997:                                             ; preds = %9991
  br label %9998

9998:                                             ; preds = %9997
  br label %9999

9999:                                             ; preds = %9998
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #10
  %10000 = call ptr @__errno_location() #11
  %10001 = load i32, ptr %10000, align 4, !tbaa !5
  store i32 %10001, ptr %208, align 4, !tbaa !5
  %10002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10003 = call i32 @s2n_print_stacktrace(ptr noundef %10002)
  %10004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10005 = trunc i8 %10004 to i1
  br i1 %10005, label %10006, label %10028

10006:                                            ; preds = %9999
  %10007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10008 = call i32 @fileno(ptr noundef %10007) #10
  %10009 = call i32 @isatty(i32 noundef %10008) #10
  %10010 = icmp ne i32 %10009, 0
  br i1 %10010, label %10011, label %10028

10011:                                            ; preds = %10006
  %10012 = load i32, ptr %208, align 4, !tbaa !5
  %10013 = call ptr @__errno_location() #11
  store i32 %10012, ptr %10013, align 4, !tbaa !5
  %10014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10015 = load i32, ptr @test_count, align 4, !tbaa !5
  %10016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10017 = load i32, ptr %10016, align 4, !tbaa !5
  %10018 = call ptr @s2n_strerror(i32 noundef %10017, ptr noundef @.str.4)
  %10019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10020 = load i32, ptr %10019, align 4, !tbaa !5
  %10021 = call ptr @s2n_strerror_debug(i32 noundef %10020, ptr noundef @.str.4)
  %10022 = call ptr @__errno_location() #11
  %10023 = load i32, ptr %10022, align 4, !tbaa !5
  %10024 = call ptr @strerror(i32 noundef %10023) #10
  %10025 = call ptr @__errno_location() #11
  %10026 = load i32, ptr %10025, align 4, !tbaa !5
  %10027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10014, ptr noundef @.str.2, i32 noundef %10015, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 380, ptr noundef %10018, ptr noundef %10021, ptr noundef %10024, i32 noundef %10026) #10
  br label %10045

10028:                                            ; preds = %10006, %9999
  %10029 = load i32, ptr %208, align 4, !tbaa !5
  %10030 = call ptr @__errno_location() #11
  store i32 %10029, ptr %10030, align 4, !tbaa !5
  %10031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10032 = load i32, ptr @test_count, align 4, !tbaa !5
  %10033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10034 = load i32, ptr %10033, align 4, !tbaa !5
  %10035 = call ptr @s2n_strerror(i32 noundef %10034, ptr noundef @.str.4)
  %10036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10037 = load i32, ptr %10036, align 4, !tbaa !5
  %10038 = call ptr @s2n_strerror_debug(i32 noundef %10037, ptr noundef @.str.4)
  %10039 = call ptr @__errno_location() #11
  %10040 = load i32, ptr %10039, align 4, !tbaa !5
  %10041 = call ptr @strerror(i32 noundef %10040) #10
  %10042 = call ptr @__errno_location() #11
  %10043 = load i32, ptr %10042, align 4, !tbaa !5
  %10044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10031, ptr noundef @.str.5, i32 noundef %10032, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 380, ptr noundef %10035, ptr noundef %10038, ptr noundef %10041, i32 noundef %10043) #10
  br label %10045

10045:                                            ; preds = %10028, %10011
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #10
  br label %10046

10046:                                            ; preds = %10045
  br label %10047

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

10048:                                            ; No predecessors!
  br label %10049

10049:                                            ; preds = %10048
  br label %10050

10050:                                            ; preds = %10049, %9991
  br label %10051

10051:                                            ; preds = %10050
  br label %10052

10052:                                            ; preds = %10051
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #10
  %10053 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10053, ptr %209, align 8, !tbaa !9
  br label %10054

10054:                                            ; preds = %10052
  %10055 = load i32, ptr @test_count, align 4, !tbaa !5
  %10056 = add nsw i32 %10055, 1
  store i32 %10056, ptr @test_count, align 4, !tbaa !5
  %10057 = load ptr, ptr %209, align 8, !tbaa !9
  %10058 = icmp eq ptr %10057, null
  br i1 %10058, label %10059, label %10112

10059:                                            ; preds = %10054
  br label %10060

10060:                                            ; preds = %10059
  br label %10061

10061:                                            ; preds = %10060
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #10
  %10062 = call ptr @__errno_location() #11
  %10063 = load i32, ptr %10062, align 4, !tbaa !5
  store i32 %10063, ptr %210, align 4, !tbaa !5
  %10064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10065 = call i32 @s2n_print_stacktrace(ptr noundef %10064)
  %10066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10067 = trunc i8 %10066 to i1
  br i1 %10067, label %10068, label %10090

10068:                                            ; preds = %10061
  %10069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10070 = call i32 @fileno(ptr noundef %10069) #10
  %10071 = call i32 @isatty(i32 noundef %10070) #10
  %10072 = icmp ne i32 %10071, 0
  br i1 %10072, label %10073, label %10090

10073:                                            ; preds = %10068
  %10074 = load i32, ptr %210, align 4, !tbaa !5
  %10075 = call ptr @__errno_location() #11
  store i32 %10074, ptr %10075, align 4, !tbaa !5
  %10076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10077 = load i32, ptr @test_count, align 4, !tbaa !5
  %10078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10079 = load i32, ptr %10078, align 4, !tbaa !5
  %10080 = call ptr @s2n_strerror(i32 noundef %10079, ptr noundef @.str.4)
  %10081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10082 = load i32, ptr %10081, align 4, !tbaa !5
  %10083 = call ptr @s2n_strerror_debug(i32 noundef %10082, ptr noundef @.str.4)
  %10084 = call ptr @__errno_location() #11
  %10085 = load i32, ptr %10084, align 4, !tbaa !5
  %10086 = call ptr @strerror(i32 noundef %10085) #10
  %10087 = call ptr @__errno_location() #11
  %10088 = load i32, ptr %10087, align 4, !tbaa !5
  %10089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10076, ptr noundef @.str.2, i32 noundef %10077, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 383, ptr noundef %10080, ptr noundef %10083, ptr noundef %10086, i32 noundef %10088) #10
  br label %10107

10090:                                            ; preds = %10068, %10061
  %10091 = load i32, ptr %210, align 4, !tbaa !5
  %10092 = call ptr @__errno_location() #11
  store i32 %10091, ptr %10092, align 4, !tbaa !5
  %10093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10094 = load i32, ptr @test_count, align 4, !tbaa !5
  %10095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10096 = load i32, ptr %10095, align 4, !tbaa !5
  %10097 = call ptr @s2n_strerror(i32 noundef %10096, ptr noundef @.str.4)
  %10098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10099 = load i32, ptr %10098, align 4, !tbaa !5
  %10100 = call ptr @s2n_strerror_debug(i32 noundef %10099, ptr noundef @.str.4)
  %10101 = call ptr @__errno_location() #11
  %10102 = load i32, ptr %10101, align 4, !tbaa !5
  %10103 = call ptr @strerror(i32 noundef %10102) #10
  %10104 = call ptr @__errno_location() #11
  %10105 = load i32, ptr %10104, align 4, !tbaa !5
  %10106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10093, ptr noundef @.str.5, i32 noundef %10094, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 383, ptr noundef %10097, ptr noundef %10100, ptr noundef %10103, i32 noundef %10105) #10
  br label %10107

10107:                                            ; preds = %10090, %10073
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #10
  br label %10108

10108:                                            ; preds = %10107
  br label %10109

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

10110:                                            ; No predecessors!
  br label %10111

10111:                                            ; preds = %10110
  br label %10112

10112:                                            ; preds = %10111, %10054
  br label %10113

10113:                                            ; preds = %10112
  br label %10114

10114:                                            ; preds = %10113
  br label %10115

10115:                                            ; preds = %10114
  %10116 = load i32, ptr @test_count, align 4, !tbaa !5
  %10117 = add nsw i32 %10116, 1
  store i32 %10117, ptr @test_count, align 4, !tbaa !5
  %10118 = load ptr, ptr %209, align 8, !tbaa !9
  %10119 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %10118, ptr noundef @.str.16)
  %10120 = icmp eq i32 %10119, -1
  br i1 %10120, label %10121, label %10174

10121:                                            ; preds = %10115
  br label %10122

10122:                                            ; preds = %10121
  br label %10123

10123:                                            ; preds = %10122
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #10
  %10124 = call ptr @__errno_location() #11
  %10125 = load i32, ptr %10124, align 4, !tbaa !5
  store i32 %10125, ptr %211, align 4, !tbaa !5
  %10126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10127 = call i32 @s2n_print_stacktrace(ptr noundef %10126)
  %10128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10129 = trunc i8 %10128 to i1
  br i1 %10129, label %10130, label %10152

10130:                                            ; preds = %10123
  %10131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10132 = call i32 @fileno(ptr noundef %10131) #10
  %10133 = call i32 @isatty(i32 noundef %10132) #10
  %10134 = icmp ne i32 %10133, 0
  br i1 %10134, label %10135, label %10152

10135:                                            ; preds = %10130
  %10136 = load i32, ptr %211, align 4, !tbaa !5
  %10137 = call ptr @__errno_location() #11
  store i32 %10136, ptr %10137, align 4, !tbaa !5
  %10138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10139 = load i32, ptr @test_count, align 4, !tbaa !5
  %10140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10141 = load i32, ptr %10140, align 4, !tbaa !5
  %10142 = call ptr @s2n_strerror(i32 noundef %10141, ptr noundef @.str.4)
  %10143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10144 = load i32, ptr %10143, align 4, !tbaa !5
  %10145 = call ptr @s2n_strerror_debug(i32 noundef %10144, ptr noundef @.str.4)
  %10146 = call ptr @__errno_location() #11
  %10147 = load i32, ptr %10146, align 4, !tbaa !5
  %10148 = call ptr @strerror(i32 noundef %10147) #10
  %10149 = call ptr @__errno_location() #11
  %10150 = load i32, ptr %10149, align 4, !tbaa !5
  %10151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10138, ptr noundef @.str.2, i32 noundef %10139, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 384, ptr noundef %10142, ptr noundef %10145, ptr noundef %10148, i32 noundef %10150) #10
  br label %10169

10152:                                            ; preds = %10130, %10123
  %10153 = load i32, ptr %211, align 4, !tbaa !5
  %10154 = call ptr @__errno_location() #11
  store i32 %10153, ptr %10154, align 4, !tbaa !5
  %10155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10156 = load i32, ptr @test_count, align 4, !tbaa !5
  %10157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10158 = load i32, ptr %10157, align 4, !tbaa !5
  %10159 = call ptr @s2n_strerror(i32 noundef %10158, ptr noundef @.str.4)
  %10160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10161 = load i32, ptr %10160, align 4, !tbaa !5
  %10162 = call ptr @s2n_strerror_debug(i32 noundef %10161, ptr noundef @.str.4)
  %10163 = call ptr @__errno_location() #11
  %10164 = load i32, ptr %10163, align 4, !tbaa !5
  %10165 = call ptr @strerror(i32 noundef %10164) #10
  %10166 = call ptr @__errno_location() #11
  %10167 = load i32, ptr %10166, align 4, !tbaa !5
  %10168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10155, ptr noundef @.str.5, i32 noundef %10156, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 384, ptr noundef %10159, ptr noundef %10162, ptr noundef %10165, i32 noundef %10167) #10
  br label %10169

10169:                                            ; preds = %10152, %10135
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #10
  br label %10170

10170:                                            ; preds = %10169
  br label %10171

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

10172:                                            ; No predecessors!
  br label %10173

10173:                                            ; preds = %10172
  br label %10174

10174:                                            ; preds = %10173, %10115
  br label %10175

10175:                                            ; preds = %10174
  br label %10176

10176:                                            ; preds = %10175
  br label %10177

10177:                                            ; preds = %10176
  %10178 = load i32, ptr @test_count, align 4, !tbaa !5
  %10179 = add nsw i32 %10178, 1
  store i32 %10179, ptr @test_count, align 4, !tbaa !5
  %10180 = load ptr, ptr %209, align 8, !tbaa !9
  %10181 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %10180, i32 noundef 0, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %10182 = getelementptr inbounds %struct.s2n_result, ptr %212, i32 0, i32 0
  store i32 %10181, ptr %10182, align 4
  %10183 = getelementptr inbounds %struct.s2n_result, ptr %212, i32 0, i32 0
  %10184 = load i32, ptr %10183, align 4
  %10185 = call zeroext i1 @s2n_result_is_ok(i32 %10184)
  br i1 %10185, label %10239, label %10186

10186:                                            ; preds = %10177
  br label %10187

10187:                                            ; preds = %10186
  br label %10188

10188:                                            ; preds = %10187
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #10
  %10189 = call ptr @__errno_location() #11
  %10190 = load i32, ptr %10189, align 4, !tbaa !5
  store i32 %10190, ptr %213, align 4, !tbaa !5
  %10191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10192 = call i32 @s2n_print_stacktrace(ptr noundef %10191)
  %10193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10194 = trunc i8 %10193 to i1
  br i1 %10194, label %10195, label %10217

10195:                                            ; preds = %10188
  %10196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10197 = call i32 @fileno(ptr noundef %10196) #10
  %10198 = call i32 @isatty(i32 noundef %10197) #10
  %10199 = icmp ne i32 %10198, 0
  br i1 %10199, label %10200, label %10217

10200:                                            ; preds = %10195
  %10201 = load i32, ptr %213, align 4, !tbaa !5
  %10202 = call ptr @__errno_location() #11
  store i32 %10201, ptr %10202, align 4, !tbaa !5
  %10203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10204 = load i32, ptr @test_count, align 4, !tbaa !5
  %10205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10206 = load i32, ptr %10205, align 4, !tbaa !5
  %10207 = call ptr @s2n_strerror(i32 noundef %10206, ptr noundef @.str.4)
  %10208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10209 = load i32, ptr %10208, align 4, !tbaa !5
  %10210 = call ptr @s2n_strerror_debug(i32 noundef %10209, ptr noundef @.str.4)
  %10211 = call ptr @__errno_location() #11
  %10212 = load i32, ptr %10211, align 4, !tbaa !5
  %10213 = call ptr @strerror(i32 noundef %10212) #10
  %10214 = call ptr @__errno_location() #11
  %10215 = load i32, ptr %10214, align 4, !tbaa !5
  %10216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10203, ptr noundef @.str.2, i32 noundef %10204, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 385, ptr noundef %10207, ptr noundef %10210, ptr noundef %10213, i32 noundef %10215) #10
  br label %10234

10217:                                            ; preds = %10195, %10188
  %10218 = load i32, ptr %213, align 4, !tbaa !5
  %10219 = call ptr @__errno_location() #11
  store i32 %10218, ptr %10219, align 4, !tbaa !5
  %10220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10221 = load i32, ptr @test_count, align 4, !tbaa !5
  %10222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10223 = load i32, ptr %10222, align 4, !tbaa !5
  %10224 = call ptr @s2n_strerror(i32 noundef %10223, ptr noundef @.str.4)
  %10225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10226 = load i32, ptr %10225, align 4, !tbaa !5
  %10227 = call ptr @s2n_strerror_debug(i32 noundef %10226, ptr noundef @.str.4)
  %10228 = call ptr @__errno_location() #11
  %10229 = load i32, ptr %10228, align 4, !tbaa !5
  %10230 = call ptr @strerror(i32 noundef %10229) #10
  %10231 = call ptr @__errno_location() #11
  %10232 = load i32, ptr %10231, align 4, !tbaa !5
  %10233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10220, ptr noundef @.str.5, i32 noundef %10221, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 385, ptr noundef %10224, ptr noundef %10227, ptr noundef %10230, i32 noundef %10232) #10
  br label %10234

10234:                                            ; preds = %10217, %10200
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #10
  br label %10235

10235:                                            ; preds = %10234
  br label %10236

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

10237:                                            ; No predecessors!
  br label %10238

10238:                                            ; preds = %10237
  br label %10239

10239:                                            ; preds = %10238, %10177
  br label %10240

10240:                                            ; preds = %10239
  br label %10241

10241:                                            ; preds = %10240
  br label %10242

10242:                                            ; preds = %10241
  %10243 = load i32, ptr @test_count, align 4, !tbaa !5
  %10244 = add nsw i32 %10243, 1
  store i32 %10244, ptr @test_count, align 4, !tbaa !5
  %10245 = load ptr, ptr %209, align 8, !tbaa !9
  %10246 = getelementptr inbounds %struct.s2n_connection, ptr %10245, i32 0, i32 89
  %10247 = load i32, ptr %10246, align 8, !tbaa !48
  %10248 = icmp eq i32 %10247, 0
  br i1 %10248, label %10302, label %10249

10249:                                            ; preds = %10242
  br label %10250

10250:                                            ; preds = %10249
  br label %10251

10251:                                            ; preds = %10250
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #10
  %10252 = call ptr @__errno_location() #11
  %10253 = load i32, ptr %10252, align 4, !tbaa !5
  store i32 %10253, ptr %214, align 4, !tbaa !5
  %10254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10255 = call i32 @s2n_print_stacktrace(ptr noundef %10254)
  %10256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10257 = trunc i8 %10256 to i1
  br i1 %10257, label %10258, label %10280

10258:                                            ; preds = %10251
  %10259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10260 = call i32 @fileno(ptr noundef %10259) #10
  %10261 = call i32 @isatty(i32 noundef %10260) #10
  %10262 = icmp ne i32 %10261, 0
  br i1 %10262, label %10263, label %10280

10263:                                            ; preds = %10258
  %10264 = load i32, ptr %214, align 4, !tbaa !5
  %10265 = call ptr @__errno_location() #11
  store i32 %10264, ptr %10265, align 4, !tbaa !5
  %10266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10267 = load i32, ptr @test_count, align 4, !tbaa !5
  %10268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10269 = load i32, ptr %10268, align 4, !tbaa !5
  %10270 = call ptr @s2n_strerror(i32 noundef %10269, ptr noundef @.str.4)
  %10271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10272 = load i32, ptr %10271, align 4, !tbaa !5
  %10273 = call ptr @s2n_strerror_debug(i32 noundef %10272, ptr noundef @.str.4)
  %10274 = call ptr @__errno_location() #11
  %10275 = load i32, ptr %10274, align 4, !tbaa !5
  %10276 = call ptr @strerror(i32 noundef %10275) #10
  %10277 = call ptr @__errno_location() #11
  %10278 = load i32, ptr %10277, align 4, !tbaa !5
  %10279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10266, ptr noundef @.str.2, i32 noundef %10267, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 386, ptr noundef %10270, ptr noundef %10273, ptr noundef %10276, i32 noundef %10278) #10
  br label %10297

10280:                                            ; preds = %10258, %10251
  %10281 = load i32, ptr %214, align 4, !tbaa !5
  %10282 = call ptr @__errno_location() #11
  store i32 %10281, ptr %10282, align 4, !tbaa !5
  %10283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10284 = load i32, ptr @test_count, align 4, !tbaa !5
  %10285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10286 = load i32, ptr %10285, align 4, !tbaa !5
  %10287 = call ptr @s2n_strerror(i32 noundef %10286, ptr noundef @.str.4)
  %10288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10289 = load i32, ptr %10288, align 4, !tbaa !5
  %10290 = call ptr @s2n_strerror_debug(i32 noundef %10289, ptr noundef @.str.4)
  %10291 = call ptr @__errno_location() #11
  %10292 = load i32, ptr %10291, align 4, !tbaa !5
  %10293 = call ptr @strerror(i32 noundef %10292) #10
  %10294 = call ptr @__errno_location() #11
  %10295 = load i32, ptr %10294, align 4, !tbaa !5
  %10296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10283, ptr noundef @.str.5, i32 noundef %10284, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 386, ptr noundef %10287, ptr noundef %10290, ptr noundef %10293, i32 noundef %10295) #10
  br label %10297

10297:                                            ; preds = %10280, %10263
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #10
  br label %10298

10298:                                            ; preds = %10297
  br label %10299

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

10300:                                            ; No predecessors!
  br label %10301

10301:                                            ; preds = %10300
  br label %10302

10302:                                            ; preds = %10301, %10242
  br label %10303

10303:                                            ; preds = %10302
  br label %10304

10304:                                            ; preds = %10303
  br label %10305

10305:                                            ; preds = %10304
  %10306 = load i32, ptr @test_count, align 4, !tbaa !5
  %10307 = add nsw i32 %10306, 1
  store i32 %10307, ptr @test_count, align 4, !tbaa !5
  %10308 = load ptr, ptr %209, align 8, !tbaa !9
  %10309 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %10308)
  %10310 = icmp eq i32 %10309, -1
  br i1 %10310, label %10311, label %10364

10311:                                            ; preds = %10305
  br label %10312

10312:                                            ; preds = %10311
  br label %10313

10313:                                            ; preds = %10312
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #10
  %10314 = call ptr @__errno_location() #11
  %10315 = load i32, ptr %10314, align 4, !tbaa !5
  store i32 %10315, ptr %215, align 4, !tbaa !5
  %10316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10317 = call i32 @s2n_print_stacktrace(ptr noundef %10316)
  %10318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10319 = trunc i8 %10318 to i1
  br i1 %10319, label %10320, label %10342

10320:                                            ; preds = %10313
  %10321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10322 = call i32 @fileno(ptr noundef %10321) #10
  %10323 = call i32 @isatty(i32 noundef %10322) #10
  %10324 = icmp ne i32 %10323, 0
  br i1 %10324, label %10325, label %10342

10325:                                            ; preds = %10320
  %10326 = load i32, ptr %215, align 4, !tbaa !5
  %10327 = call ptr @__errno_location() #11
  store i32 %10326, ptr %10327, align 4, !tbaa !5
  %10328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10329 = load i32, ptr @test_count, align 4, !tbaa !5
  %10330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10331 = load i32, ptr %10330, align 4, !tbaa !5
  %10332 = call ptr @s2n_strerror(i32 noundef %10331, ptr noundef @.str.4)
  %10333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10334 = load i32, ptr %10333, align 4, !tbaa !5
  %10335 = call ptr @s2n_strerror_debug(i32 noundef %10334, ptr noundef @.str.4)
  %10336 = call ptr @__errno_location() #11
  %10337 = load i32, ptr %10336, align 4, !tbaa !5
  %10338 = call ptr @strerror(i32 noundef %10337) #10
  %10339 = call ptr @__errno_location() #11
  %10340 = load i32, ptr %10339, align 4, !tbaa !5
  %10341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10328, ptr noundef @.str.2, i32 noundef %10329, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 387, ptr noundef %10332, ptr noundef %10335, ptr noundef %10338, i32 noundef %10340) #10
  br label %10359

10342:                                            ; preds = %10320, %10313
  %10343 = load i32, ptr %215, align 4, !tbaa !5
  %10344 = call ptr @__errno_location() #11
  store i32 %10343, ptr %10344, align 4, !tbaa !5
  %10345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10346 = load i32, ptr @test_count, align 4, !tbaa !5
  %10347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10348 = load i32, ptr %10347, align 4, !tbaa !5
  %10349 = call ptr @s2n_strerror(i32 noundef %10348, ptr noundef @.str.4)
  %10350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10351 = load i32, ptr %10350, align 4, !tbaa !5
  %10352 = call ptr @s2n_strerror_debug(i32 noundef %10351, ptr noundef @.str.4)
  %10353 = call ptr @__errno_location() #11
  %10354 = load i32, ptr %10353, align 4, !tbaa !5
  %10355 = call ptr @strerror(i32 noundef %10354) #10
  %10356 = call ptr @__errno_location() #11
  %10357 = load i32, ptr %10356, align 4, !tbaa !5
  %10358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10345, ptr noundef @.str.5, i32 noundef %10346, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 387, ptr noundef %10349, ptr noundef %10352, ptr noundef %10355, i32 noundef %10357) #10
  br label %10359

10359:                                            ; preds = %10342, %10325
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #10
  br label %10360

10360:                                            ; preds = %10359
  br label %10361

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

10362:                                            ; No predecessors!
  br label %10363

10363:                                            ; preds = %10362
  br label %10364

10364:                                            ; preds = %10363, %10305
  br label %10365

10365:                                            ; preds = %10364
  br label %10366

10366:                                            ; preds = %10365
  br label %10367

10367:                                            ; preds = %10366
  %10368 = load i32, ptr @test_count, align 4, !tbaa !5
  %10369 = add nsw i32 %10368, 1
  store i32 %10369, ptr @test_count, align 4, !tbaa !5
  %10370 = load ptr, ptr %202, align 8, !tbaa !9
  %10371 = call i32 @s2n_client_hello_send(ptr noundef %10370)
  %10372 = icmp eq i32 %10371, -1
  br i1 %10372, label %10373, label %10426

10373:                                            ; preds = %10367
  br label %10374

10374:                                            ; preds = %10373
  br label %10375

10375:                                            ; preds = %10374
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #10
  %10376 = call ptr @__errno_location() #11
  %10377 = load i32, ptr %10376, align 4, !tbaa !5
  store i32 %10377, ptr %216, align 4, !tbaa !5
  %10378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10379 = call i32 @s2n_print_stacktrace(ptr noundef %10378)
  %10380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10381 = trunc i8 %10380 to i1
  br i1 %10381, label %10382, label %10404

10382:                                            ; preds = %10375
  %10383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10384 = call i32 @fileno(ptr noundef %10383) #10
  %10385 = call i32 @isatty(i32 noundef %10384) #10
  %10386 = icmp ne i32 %10385, 0
  br i1 %10386, label %10387, label %10404

10387:                                            ; preds = %10382
  %10388 = load i32, ptr %216, align 4, !tbaa !5
  %10389 = call ptr @__errno_location() #11
  store i32 %10388, ptr %10389, align 4, !tbaa !5
  %10390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10391 = load i32, ptr @test_count, align 4, !tbaa !5
  %10392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10393 = load i32, ptr %10392, align 4, !tbaa !5
  %10394 = call ptr @s2n_strerror(i32 noundef %10393, ptr noundef @.str.4)
  %10395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10396 = load i32, ptr %10395, align 4, !tbaa !5
  %10397 = call ptr @s2n_strerror_debug(i32 noundef %10396, ptr noundef @.str.4)
  %10398 = call ptr @__errno_location() #11
  %10399 = load i32, ptr %10398, align 4, !tbaa !5
  %10400 = call ptr @strerror(i32 noundef %10399) #10
  %10401 = call ptr @__errno_location() #11
  %10402 = load i32, ptr %10401, align 4, !tbaa !5
  %10403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10390, ptr noundef @.str.2, i32 noundef %10391, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 389, ptr noundef %10394, ptr noundef %10397, ptr noundef %10400, i32 noundef %10402) #10
  br label %10421

10404:                                            ; preds = %10382, %10375
  %10405 = load i32, ptr %216, align 4, !tbaa !5
  %10406 = call ptr @__errno_location() #11
  store i32 %10405, ptr %10406, align 4, !tbaa !5
  %10407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10408 = load i32, ptr @test_count, align 4, !tbaa !5
  %10409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10410 = load i32, ptr %10409, align 4, !tbaa !5
  %10411 = call ptr @s2n_strerror(i32 noundef %10410, ptr noundef @.str.4)
  %10412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10413 = load i32, ptr %10412, align 4, !tbaa !5
  %10414 = call ptr @s2n_strerror_debug(i32 noundef %10413, ptr noundef @.str.4)
  %10415 = call ptr @__errno_location() #11
  %10416 = load i32, ptr %10415, align 4, !tbaa !5
  %10417 = call ptr @strerror(i32 noundef %10416) #10
  %10418 = call ptr @__errno_location() #11
  %10419 = load i32, ptr %10418, align 4, !tbaa !5
  %10420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10407, ptr noundef @.str.5, i32 noundef %10408, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 389, ptr noundef %10411, ptr noundef %10414, ptr noundef %10417, i32 noundef %10419) #10
  br label %10421

10421:                                            ; preds = %10404, %10387
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #10
  br label %10422

10422:                                            ; preds = %10421
  br label %10423

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

10424:                                            ; No predecessors!
  br label %10425

10425:                                            ; preds = %10424
  br label %10426

10426:                                            ; preds = %10425, %10367
  br label %10427

10427:                                            ; preds = %10426
  br label %10428

10428:                                            ; preds = %10427
  br label %10429

10429:                                            ; preds = %10428
  %10430 = load i32, ptr @test_count, align 4, !tbaa !5
  %10431 = add nsw i32 %10430, 1
  store i32 %10431, ptr @test_count, align 4, !tbaa !5
  %10432 = load ptr, ptr %202, align 8, !tbaa !9
  %10433 = getelementptr inbounds %struct.s2n_connection, ptr %10432, i32 0, i32 52
  %10434 = getelementptr inbounds %struct.s2n_handshake, ptr %10433, i32 0, i32 0
  %10435 = load ptr, ptr %209, align 8, !tbaa !9
  %10436 = getelementptr inbounds %struct.s2n_connection, ptr %10435, i32 0, i32 52
  %10437 = getelementptr inbounds %struct.s2n_handshake, ptr %10436, i32 0, i32 0
  %10438 = load ptr, ptr %202, align 8, !tbaa !9
  %10439 = getelementptr inbounds %struct.s2n_connection, ptr %10438, i32 0, i32 52
  %10440 = getelementptr inbounds %struct.s2n_handshake, ptr %10439, i32 0, i32 0
  %10441 = getelementptr inbounds %struct.s2n_stuffer, ptr %10440, i32 0, i32 2
  %10442 = load i32, ptr %10441, align 4, !tbaa !51
  %10443 = load ptr, ptr %202, align 8, !tbaa !9
  %10444 = getelementptr inbounds %struct.s2n_connection, ptr %10443, i32 0, i32 52
  %10445 = getelementptr inbounds %struct.s2n_handshake, ptr %10444, i32 0, i32 0
  %10446 = getelementptr inbounds %struct.s2n_stuffer, ptr %10445, i32 0, i32 1
  %10447 = load i32, ptr %10446, align 8, !tbaa !52
  %10448 = sub i32 %10442, %10447
  %10449 = call i32 @s2n_stuffer_copy(ptr noundef %10434, ptr noundef %10437, i32 noundef %10448)
  %10450 = icmp eq i32 %10449, -1
  br i1 %10450, label %10451, label %10504

10451:                                            ; preds = %10429
  br label %10452

10452:                                            ; preds = %10451
  br label %10453

10453:                                            ; preds = %10452
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #10
  %10454 = call ptr @__errno_location() #11
  %10455 = load i32, ptr %10454, align 4, !tbaa !5
  store i32 %10455, ptr %217, align 4, !tbaa !5
  %10456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10457 = call i32 @s2n_print_stacktrace(ptr noundef %10456)
  %10458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10459 = trunc i8 %10458 to i1
  br i1 %10459, label %10460, label %10482

10460:                                            ; preds = %10453
  %10461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10462 = call i32 @fileno(ptr noundef %10461) #10
  %10463 = call i32 @isatty(i32 noundef %10462) #10
  %10464 = icmp ne i32 %10463, 0
  br i1 %10464, label %10465, label %10482

10465:                                            ; preds = %10460
  %10466 = load i32, ptr %217, align 4, !tbaa !5
  %10467 = call ptr @__errno_location() #11
  store i32 %10466, ptr %10467, align 4, !tbaa !5
  %10468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10469 = load i32, ptr @test_count, align 4, !tbaa !5
  %10470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10471 = load i32, ptr %10470, align 4, !tbaa !5
  %10472 = call ptr @s2n_strerror(i32 noundef %10471, ptr noundef @.str.4)
  %10473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10474 = load i32, ptr %10473, align 4, !tbaa !5
  %10475 = call ptr @s2n_strerror_debug(i32 noundef %10474, ptr noundef @.str.4)
  %10476 = call ptr @__errno_location() #11
  %10477 = load i32, ptr %10476, align 4, !tbaa !5
  %10478 = call ptr @strerror(i32 noundef %10477) #10
  %10479 = call ptr @__errno_location() #11
  %10480 = load i32, ptr %10479, align 4, !tbaa !5
  %10481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10468, ptr noundef @.str.2, i32 noundef %10469, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 391, ptr noundef %10472, ptr noundef %10475, ptr noundef %10478, i32 noundef %10480) #10
  br label %10499

10482:                                            ; preds = %10460, %10453
  %10483 = load i32, ptr %217, align 4, !tbaa !5
  %10484 = call ptr @__errno_location() #11
  store i32 %10483, ptr %10484, align 4, !tbaa !5
  %10485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10486 = load i32, ptr @test_count, align 4, !tbaa !5
  %10487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10488 = load i32, ptr %10487, align 4, !tbaa !5
  %10489 = call ptr @s2n_strerror(i32 noundef %10488, ptr noundef @.str.4)
  %10490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10491 = load i32, ptr %10490, align 4, !tbaa !5
  %10492 = call ptr @s2n_strerror_debug(i32 noundef %10491, ptr noundef @.str.4)
  %10493 = call ptr @__errno_location() #11
  %10494 = load i32, ptr %10493, align 4, !tbaa !5
  %10495 = call ptr @strerror(i32 noundef %10494) #10
  %10496 = call ptr @__errno_location() #11
  %10497 = load i32, ptr %10496, align 4, !tbaa !5
  %10498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10485, ptr noundef @.str.5, i32 noundef %10486, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 391, ptr noundef %10489, ptr noundef %10492, ptr noundef %10495, i32 noundef %10497) #10
  br label %10499

10499:                                            ; preds = %10482, %10465
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #10
  br label %10500

10500:                                            ; preds = %10499
  br label %10501

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

10502:                                            ; No predecessors!
  br label %10503

10503:                                            ; preds = %10502
  br label %10504

10504:                                            ; preds = %10503, %10429
  br label %10505

10505:                                            ; preds = %10504
  br label %10506

10506:                                            ; preds = %10505
  br label %10507

10507:                                            ; preds = %10506
  %10508 = load i32, ptr @test_count, align 4, !tbaa !5
  %10509 = add nsw i32 %10508, 1
  store i32 %10509, ptr @test_count, align 4, !tbaa !5
  %10510 = load ptr, ptr %209, align 8, !tbaa !9
  %10511 = call i32 @s2n_establish_session(ptr noundef %10510)
  %10512 = icmp eq i32 %10511, -1
  br i1 %10512, label %10513, label %10566

10513:                                            ; preds = %10507
  br label %10514

10514:                                            ; preds = %10513
  br label %10515

10515:                                            ; preds = %10514
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #10
  %10516 = call ptr @__errno_location() #11
  %10517 = load i32, ptr %10516, align 4, !tbaa !5
  store i32 %10517, ptr %218, align 4, !tbaa !5
  %10518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10519 = call i32 @s2n_print_stacktrace(ptr noundef %10518)
  %10520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10521 = trunc i8 %10520 to i1
  br i1 %10521, label %10522, label %10544

10522:                                            ; preds = %10515
  %10523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10524 = call i32 @fileno(ptr noundef %10523) #10
  %10525 = call i32 @isatty(i32 noundef %10524) #10
  %10526 = icmp ne i32 %10525, 0
  br i1 %10526, label %10527, label %10544

10527:                                            ; preds = %10522
  %10528 = load i32, ptr %218, align 4, !tbaa !5
  %10529 = call ptr @__errno_location() #11
  store i32 %10528, ptr %10529, align 4, !tbaa !5
  %10530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10531 = load i32, ptr @test_count, align 4, !tbaa !5
  %10532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10533 = load i32, ptr %10532, align 4, !tbaa !5
  %10534 = call ptr @s2n_strerror(i32 noundef %10533, ptr noundef @.str.4)
  %10535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10536 = load i32, ptr %10535, align 4, !tbaa !5
  %10537 = call ptr @s2n_strerror_debug(i32 noundef %10536, ptr noundef @.str.4)
  %10538 = call ptr @__errno_location() #11
  %10539 = load i32, ptr %10538, align 4, !tbaa !5
  %10540 = call ptr @strerror(i32 noundef %10539) #10
  %10541 = call ptr @__errno_location() #11
  %10542 = load i32, ptr %10541, align 4, !tbaa !5
  %10543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10530, ptr noundef @.str.2, i32 noundef %10531, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 392, ptr noundef %10534, ptr noundef %10537, ptr noundef %10540, i32 noundef %10542) #10
  br label %10561

10544:                                            ; preds = %10522, %10515
  %10545 = load i32, ptr %218, align 4, !tbaa !5
  %10546 = call ptr @__errno_location() #11
  store i32 %10545, ptr %10546, align 4, !tbaa !5
  %10547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10548 = load i32, ptr @test_count, align 4, !tbaa !5
  %10549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10550 = load i32, ptr %10549, align 4, !tbaa !5
  %10551 = call ptr @s2n_strerror(i32 noundef %10550, ptr noundef @.str.4)
  %10552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10553 = load i32, ptr %10552, align 4, !tbaa !5
  %10554 = call ptr @s2n_strerror_debug(i32 noundef %10553, ptr noundef @.str.4)
  %10555 = call ptr @__errno_location() #11
  %10556 = load i32, ptr %10555, align 4, !tbaa !5
  %10557 = call ptr @strerror(i32 noundef %10556) #10
  %10558 = call ptr @__errno_location() #11
  %10559 = load i32, ptr %10558, align 4, !tbaa !5
  %10560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10547, ptr noundef @.str.5, i32 noundef %10548, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 392, ptr noundef %10551, ptr noundef %10554, ptr noundef %10557, i32 noundef %10559) #10
  br label %10561

10561:                                            ; preds = %10544, %10527
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #10
  br label %10562

10562:                                            ; preds = %10561
  br label %10563

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

10564:                                            ; No predecessors!
  br label %10565

10565:                                            ; preds = %10564
  br label %10566

10566:                                            ; preds = %10565, %10507
  br label %10567

10567:                                            ; preds = %10566
  br label %10568

10568:                                            ; preds = %10567
  br label %10569

10569:                                            ; preds = %10568
  %10570 = load i32, ptr @test_count, align 4, !tbaa !5
  %10571 = add nsw i32 %10570, 1
  store i32 %10571, ptr @test_count, align 4, !tbaa !5
  %10572 = load ptr, ptr %202, align 8, !tbaa !9
  %10573 = getelementptr inbounds %struct.s2n_connection, ptr %10572, i32 0, i32 89
  %10574 = load i32, ptr %10573, align 8, !tbaa !48
  %10575 = icmp eq i32 %10574, 2
  br i1 %10575, label %10629, label %10576

10576:                                            ; preds = %10569
  br label %10577

10577:                                            ; preds = %10576
  br label %10578

10578:                                            ; preds = %10577
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #10
  %10579 = call ptr @__errno_location() #11
  %10580 = load i32, ptr %10579, align 4, !tbaa !5
  store i32 %10580, ptr %219, align 4, !tbaa !5
  %10581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10582 = call i32 @s2n_print_stacktrace(ptr noundef %10581)
  %10583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10584 = trunc i8 %10583 to i1
  br i1 %10584, label %10585, label %10607

10585:                                            ; preds = %10578
  %10586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10587 = call i32 @fileno(ptr noundef %10586) #10
  %10588 = call i32 @isatty(i32 noundef %10587) #10
  %10589 = icmp ne i32 %10588, 0
  br i1 %10589, label %10590, label %10607

10590:                                            ; preds = %10585
  %10591 = load i32, ptr %219, align 4, !tbaa !5
  %10592 = call ptr @__errno_location() #11
  store i32 %10591, ptr %10592, align 4, !tbaa !5
  %10593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10594 = load i32, ptr @test_count, align 4, !tbaa !5
  %10595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10596 = load i32, ptr %10595, align 4, !tbaa !5
  %10597 = call ptr @s2n_strerror(i32 noundef %10596, ptr noundef @.str.4)
  %10598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10599 = load i32, ptr %10598, align 4, !tbaa !5
  %10600 = call ptr @s2n_strerror_debug(i32 noundef %10599, ptr noundef @.str.4)
  %10601 = call ptr @__errno_location() #11
  %10602 = load i32, ptr %10601, align 4, !tbaa !5
  %10603 = call ptr @strerror(i32 noundef %10602) #10
  %10604 = call ptr @__errno_location() #11
  %10605 = load i32, ptr %10604, align 4, !tbaa !5
  %10606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10593, ptr noundef @.str.2, i32 noundef %10594, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 394, ptr noundef %10597, ptr noundef %10600, ptr noundef %10603, i32 noundef %10605) #10
  br label %10624

10607:                                            ; preds = %10585, %10578
  %10608 = load i32, ptr %219, align 4, !tbaa !5
  %10609 = call ptr @__errno_location() #11
  store i32 %10608, ptr %10609, align 4, !tbaa !5
  %10610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10611 = load i32, ptr @test_count, align 4, !tbaa !5
  %10612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10613 = load i32, ptr %10612, align 4, !tbaa !5
  %10614 = call ptr @s2n_strerror(i32 noundef %10613, ptr noundef @.str.4)
  %10615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10616 = load i32, ptr %10615, align 4, !tbaa !5
  %10617 = call ptr @s2n_strerror_debug(i32 noundef %10616, ptr noundef @.str.4)
  %10618 = call ptr @__errno_location() #11
  %10619 = load i32, ptr %10618, align 4, !tbaa !5
  %10620 = call ptr @strerror(i32 noundef %10619) #10
  %10621 = call ptr @__errno_location() #11
  %10622 = load i32, ptr %10621, align 4, !tbaa !5
  %10623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10610, ptr noundef @.str.5, i32 noundef %10611, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 394, ptr noundef %10614, ptr noundef %10617, ptr noundef %10620, i32 noundef %10622) #10
  br label %10624

10624:                                            ; preds = %10607, %10590
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #10
  br label %10625

10625:                                            ; preds = %10624
  br label %10626

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

10627:                                            ; No predecessors!
  br label %10628

10628:                                            ; preds = %10627
  br label %10629

10629:                                            ; preds = %10628, %10569
  br label %10630

10630:                                            ; preds = %10629
  br label %10631

10631:                                            ; preds = %10630
  br label %10632

10632:                                            ; preds = %10631
  %10633 = load i32, ptr @test_count, align 4, !tbaa !5
  %10634 = add nsw i32 %10633, 1
  store i32 %10634, ptr @test_count, align 4, !tbaa !5
  %10635 = load ptr, ptr %209, align 8, !tbaa !9
  %10636 = getelementptr inbounds %struct.s2n_connection, ptr %10635, i32 0, i32 89
  %10637 = load i32, ptr %10636, align 8, !tbaa !48
  %10638 = icmp eq i32 %10637, 2
  br i1 %10638, label %10692, label %10639

10639:                                            ; preds = %10632
  br label %10640

10640:                                            ; preds = %10639
  br label %10641

10641:                                            ; preds = %10640
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #10
  %10642 = call ptr @__errno_location() #11
  %10643 = load i32, ptr %10642, align 4, !tbaa !5
  store i32 %10643, ptr %220, align 4, !tbaa !5
  %10644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10645 = call i32 @s2n_print_stacktrace(ptr noundef %10644)
  %10646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10647 = trunc i8 %10646 to i1
  br i1 %10647, label %10648, label %10670

10648:                                            ; preds = %10641
  %10649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10650 = call i32 @fileno(ptr noundef %10649) #10
  %10651 = call i32 @isatty(i32 noundef %10650) #10
  %10652 = icmp ne i32 %10651, 0
  br i1 %10652, label %10653, label %10670

10653:                                            ; preds = %10648
  %10654 = load i32, ptr %220, align 4, !tbaa !5
  %10655 = call ptr @__errno_location() #11
  store i32 %10654, ptr %10655, align 4, !tbaa !5
  %10656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10657 = load i32, ptr @test_count, align 4, !tbaa !5
  %10658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10659 = load i32, ptr %10658, align 4, !tbaa !5
  %10660 = call ptr @s2n_strerror(i32 noundef %10659, ptr noundef @.str.4)
  %10661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10662 = load i32, ptr %10661, align 4, !tbaa !5
  %10663 = call ptr @s2n_strerror_debug(i32 noundef %10662, ptr noundef @.str.4)
  %10664 = call ptr @__errno_location() #11
  %10665 = load i32, ptr %10664, align 4, !tbaa !5
  %10666 = call ptr @strerror(i32 noundef %10665) #10
  %10667 = call ptr @__errno_location() #11
  %10668 = load i32, ptr %10667, align 4, !tbaa !5
  %10669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10656, ptr noundef @.str.2, i32 noundef %10657, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 395, ptr noundef %10660, ptr noundef %10663, ptr noundef %10666, i32 noundef %10668) #10
  br label %10687

10670:                                            ; preds = %10648, %10641
  %10671 = load i32, ptr %220, align 4, !tbaa !5
  %10672 = call ptr @__errno_location() #11
  store i32 %10671, ptr %10672, align 4, !tbaa !5
  %10673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10674 = load i32, ptr @test_count, align 4, !tbaa !5
  %10675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10676 = load i32, ptr %10675, align 4, !tbaa !5
  %10677 = call ptr @s2n_strerror(i32 noundef %10676, ptr noundef @.str.4)
  %10678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10679 = load i32, ptr %10678, align 4, !tbaa !5
  %10680 = call ptr @s2n_strerror_debug(i32 noundef %10679, ptr noundef @.str.4)
  %10681 = call ptr @__errno_location() #11
  %10682 = load i32, ptr %10681, align 4, !tbaa !5
  %10683 = call ptr @strerror(i32 noundef %10682) #10
  %10684 = call ptr @__errno_location() #11
  %10685 = load i32, ptr %10684, align 4, !tbaa !5
  %10686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10673, ptr noundef @.str.5, i32 noundef %10674, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 395, ptr noundef %10677, ptr noundef %10680, ptr noundef %10683, i32 noundef %10685) #10
  br label %10687

10687:                                            ; preds = %10670, %10653
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #10
  br label %10688

10688:                                            ; preds = %10687
  br label %10689

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

10690:                                            ; No predecessors!
  br label %10691

10691:                                            ; preds = %10690
  br label %10692

10692:                                            ; preds = %10691, %10632
  br label %10693

10693:                                            ; preds = %10692
  br label %10694

10694:                                            ; preds = %10693
  br label %10695

10695:                                            ; preds = %10694
  %10696 = load i32, ptr @test_count, align 4, !tbaa !5
  %10697 = add nsw i32 %10696, 1
  store i32 %10697, ptr @test_count, align 4, !tbaa !5
  %10698 = load ptr, ptr %202, align 8, !tbaa !9
  %10699 = call i32 @s2n_connection_free(ptr noundef %10698)
  %10700 = icmp eq i32 %10699, -1
  br i1 %10700, label %10701, label %10754

10701:                                            ; preds = %10695
  br label %10702

10702:                                            ; preds = %10701
  br label %10703

10703:                                            ; preds = %10702
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #10
  %10704 = call ptr @__errno_location() #11
  %10705 = load i32, ptr %10704, align 4, !tbaa !5
  store i32 %10705, ptr %221, align 4, !tbaa !5
  %10706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10707 = call i32 @s2n_print_stacktrace(ptr noundef %10706)
  %10708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10709 = trunc i8 %10708 to i1
  br i1 %10709, label %10710, label %10732

10710:                                            ; preds = %10703
  %10711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10712 = call i32 @fileno(ptr noundef %10711) #10
  %10713 = call i32 @isatty(i32 noundef %10712) #10
  %10714 = icmp ne i32 %10713, 0
  br i1 %10714, label %10715, label %10732

10715:                                            ; preds = %10710
  %10716 = load i32, ptr %221, align 4, !tbaa !5
  %10717 = call ptr @__errno_location() #11
  store i32 %10716, ptr %10717, align 4, !tbaa !5
  %10718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10719 = load i32, ptr @test_count, align 4, !tbaa !5
  %10720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10721 = load i32, ptr %10720, align 4, !tbaa !5
  %10722 = call ptr @s2n_strerror(i32 noundef %10721, ptr noundef @.str.4)
  %10723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10724 = load i32, ptr %10723, align 4, !tbaa !5
  %10725 = call ptr @s2n_strerror_debug(i32 noundef %10724, ptr noundef @.str.4)
  %10726 = call ptr @__errno_location() #11
  %10727 = load i32, ptr %10726, align 4, !tbaa !5
  %10728 = call ptr @strerror(i32 noundef %10727) #10
  %10729 = call ptr @__errno_location() #11
  %10730 = load i32, ptr %10729, align 4, !tbaa !5
  %10731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10718, ptr noundef @.str.2, i32 noundef %10719, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 397, ptr noundef %10722, ptr noundef %10725, ptr noundef %10728, i32 noundef %10730) #10
  br label %10749

10732:                                            ; preds = %10710, %10703
  %10733 = load i32, ptr %221, align 4, !tbaa !5
  %10734 = call ptr @__errno_location() #11
  store i32 %10733, ptr %10734, align 4, !tbaa !5
  %10735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10736 = load i32, ptr @test_count, align 4, !tbaa !5
  %10737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10738 = load i32, ptr %10737, align 4, !tbaa !5
  %10739 = call ptr @s2n_strerror(i32 noundef %10738, ptr noundef @.str.4)
  %10740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10741 = load i32, ptr %10740, align 4, !tbaa !5
  %10742 = call ptr @s2n_strerror_debug(i32 noundef %10741, ptr noundef @.str.4)
  %10743 = call ptr @__errno_location() #11
  %10744 = load i32, ptr %10743, align 4, !tbaa !5
  %10745 = call ptr @strerror(i32 noundef %10744) #10
  %10746 = call ptr @__errno_location() #11
  %10747 = load i32, ptr %10746, align 4, !tbaa !5
  %10748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10735, ptr noundef @.str.5, i32 noundef %10736, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 397, ptr noundef %10739, ptr noundef %10742, ptr noundef %10745, i32 noundef %10747) #10
  br label %10749

10749:                                            ; preds = %10732, %10715
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #10
  br label %10750

10750:                                            ; preds = %10749
  br label %10751

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

10752:                                            ; No predecessors!
  br label %10753

10753:                                            ; preds = %10752
  br label %10754

10754:                                            ; preds = %10753, %10695
  br label %10755

10755:                                            ; preds = %10754
  br label %10756

10756:                                            ; preds = %10755
  br label %10757

10757:                                            ; preds = %10756
  %10758 = load i32, ptr @test_count, align 4, !tbaa !5
  %10759 = add nsw i32 %10758, 1
  store i32 %10759, ptr @test_count, align 4, !tbaa !5
  %10760 = load ptr, ptr %209, align 8, !tbaa !9
  %10761 = call i32 @s2n_connection_free(ptr noundef %10760)
  %10762 = icmp eq i32 %10761, -1
  br i1 %10762, label %10763, label %10816

10763:                                            ; preds = %10757
  br label %10764

10764:                                            ; preds = %10763
  br label %10765

10765:                                            ; preds = %10764
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #10
  %10766 = call ptr @__errno_location() #11
  %10767 = load i32, ptr %10766, align 4, !tbaa !5
  store i32 %10767, ptr %222, align 4, !tbaa !5
  %10768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10769 = call i32 @s2n_print_stacktrace(ptr noundef %10768)
  %10770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10771 = trunc i8 %10770 to i1
  br i1 %10771, label %10772, label %10794

10772:                                            ; preds = %10765
  %10773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10774 = call i32 @fileno(ptr noundef %10773) #10
  %10775 = call i32 @isatty(i32 noundef %10774) #10
  %10776 = icmp ne i32 %10775, 0
  br i1 %10776, label %10777, label %10794

10777:                                            ; preds = %10772
  %10778 = load i32, ptr %222, align 4, !tbaa !5
  %10779 = call ptr @__errno_location() #11
  store i32 %10778, ptr %10779, align 4, !tbaa !5
  %10780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10781 = load i32, ptr @test_count, align 4, !tbaa !5
  %10782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10783 = load i32, ptr %10782, align 4, !tbaa !5
  %10784 = call ptr @s2n_strerror(i32 noundef %10783, ptr noundef @.str.4)
  %10785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10786 = load i32, ptr %10785, align 4, !tbaa !5
  %10787 = call ptr @s2n_strerror_debug(i32 noundef %10786, ptr noundef @.str.4)
  %10788 = call ptr @__errno_location() #11
  %10789 = load i32, ptr %10788, align 4, !tbaa !5
  %10790 = call ptr @strerror(i32 noundef %10789) #10
  %10791 = call ptr @__errno_location() #11
  %10792 = load i32, ptr %10791, align 4, !tbaa !5
  %10793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10780, ptr noundef @.str.2, i32 noundef %10781, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 398, ptr noundef %10784, ptr noundef %10787, ptr noundef %10790, i32 noundef %10792) #10
  br label %10811

10794:                                            ; preds = %10772, %10765
  %10795 = load i32, ptr %222, align 4, !tbaa !5
  %10796 = call ptr @__errno_location() #11
  store i32 %10795, ptr %10796, align 4, !tbaa !5
  %10797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10798 = load i32, ptr @test_count, align 4, !tbaa !5
  %10799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10800 = load i32, ptr %10799, align 4, !tbaa !5
  %10801 = call ptr @s2n_strerror(i32 noundef %10800, ptr noundef @.str.4)
  %10802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10803 = load i32, ptr %10802, align 4, !tbaa !5
  %10804 = call ptr @s2n_strerror_debug(i32 noundef %10803, ptr noundef @.str.4)
  %10805 = call ptr @__errno_location() #11
  %10806 = load i32, ptr %10805, align 4, !tbaa !5
  %10807 = call ptr @strerror(i32 noundef %10806) #10
  %10808 = call ptr @__errno_location() #11
  %10809 = load i32, ptr %10808, align 4, !tbaa !5
  %10810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10797, ptr noundef @.str.5, i32 noundef %10798, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 398, ptr noundef %10801, ptr noundef %10804, ptr noundef %10807, i32 noundef %10809) #10
  br label %10811

10811:                                            ; preds = %10794, %10777
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #10
  br label %10812

10812:                                            ; preds = %10811
  br label %10813

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

10814:                                            ; No predecessors!
  br label %10815

10815:                                            ; preds = %10814
  br label %10816

10816:                                            ; preds = %10815, %10757
  br label %10817

10817:                                            ; preds = %10816
  br label %10818

10818:                                            ; preds = %10817
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %223) #10
  %10819 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10819, ptr %223, align 8, !tbaa !9
  br label %10820

10820:                                            ; preds = %10818
  %10821 = load i32, ptr @test_count, align 4, !tbaa !5
  %10822 = add nsw i32 %10821, 1
  store i32 %10822, ptr @test_count, align 4, !tbaa !5
  %10823 = load ptr, ptr %223, align 8, !tbaa !9
  %10824 = icmp eq ptr %10823, null
  br i1 %10824, label %10825, label %10878

10825:                                            ; preds = %10820
  br label %10826

10826:                                            ; preds = %10825
  br label %10827

10827:                                            ; preds = %10826
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #10
  %10828 = call ptr @__errno_location() #11
  %10829 = load i32, ptr %10828, align 4, !tbaa !5
  store i32 %10829, ptr %224, align 4, !tbaa !5
  %10830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10831 = call i32 @s2n_print_stacktrace(ptr noundef %10830)
  %10832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10833 = trunc i8 %10832 to i1
  br i1 %10833, label %10834, label %10856

10834:                                            ; preds = %10827
  %10835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10836 = call i32 @fileno(ptr noundef %10835) #10
  %10837 = call i32 @isatty(i32 noundef %10836) #10
  %10838 = icmp ne i32 %10837, 0
  br i1 %10838, label %10839, label %10856

10839:                                            ; preds = %10834
  %10840 = load i32, ptr %224, align 4, !tbaa !5
  %10841 = call ptr @__errno_location() #11
  store i32 %10840, ptr %10841, align 4, !tbaa !5
  %10842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10843 = load i32, ptr @test_count, align 4, !tbaa !5
  %10844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10845 = load i32, ptr %10844, align 4, !tbaa !5
  %10846 = call ptr @s2n_strerror(i32 noundef %10845, ptr noundef @.str.4)
  %10847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10848 = load i32, ptr %10847, align 4, !tbaa !5
  %10849 = call ptr @s2n_strerror_debug(i32 noundef %10848, ptr noundef @.str.4)
  %10850 = call ptr @__errno_location() #11
  %10851 = load i32, ptr %10850, align 4, !tbaa !5
  %10852 = call ptr @strerror(i32 noundef %10851) #10
  %10853 = call ptr @__errno_location() #11
  %10854 = load i32, ptr %10853, align 4, !tbaa !5
  %10855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10842, ptr noundef @.str.2, i32 noundef %10843, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 422, ptr noundef %10846, ptr noundef %10849, ptr noundef %10852, i32 noundef %10854) #10
  br label %10873

10856:                                            ; preds = %10834, %10827
  %10857 = load i32, ptr %224, align 4, !tbaa !5
  %10858 = call ptr @__errno_location() #11
  store i32 %10857, ptr %10858, align 4, !tbaa !5
  %10859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10860 = load i32, ptr @test_count, align 4, !tbaa !5
  %10861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10862 = load i32, ptr %10861, align 4, !tbaa !5
  %10863 = call ptr @s2n_strerror(i32 noundef %10862, ptr noundef @.str.4)
  %10864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10865 = load i32, ptr %10864, align 4, !tbaa !5
  %10866 = call ptr @s2n_strerror_debug(i32 noundef %10865, ptr noundef @.str.4)
  %10867 = call ptr @__errno_location() #11
  %10868 = load i32, ptr %10867, align 4, !tbaa !5
  %10869 = call ptr @strerror(i32 noundef %10868) #10
  %10870 = call ptr @__errno_location() #11
  %10871 = load i32, ptr %10870, align 4, !tbaa !5
  %10872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10859, ptr noundef @.str.5, i32 noundef %10860, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 422, ptr noundef %10863, ptr noundef %10866, ptr noundef %10869, i32 noundef %10871) #10
  br label %10873

10873:                                            ; preds = %10856, %10839
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #10
  br label %10874

10874:                                            ; preds = %10873
  br label %10875

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

10876:                                            ; No predecessors!
  br label %10877

10877:                                            ; preds = %10876
  br label %10878

10878:                                            ; preds = %10877, %10820
  br label %10879

10879:                                            ; preds = %10878
  br label %10880

10880:                                            ; preds = %10879
  br label %10881

10881:                                            ; preds = %10880
  %10882 = load i32, ptr @test_count, align 4, !tbaa !5
  %10883 = add nsw i32 %10882, 1
  store i32 %10883, ptr @test_count, align 4, !tbaa !5
  %10884 = load ptr, ptr %223, align 8, !tbaa !9
  %10885 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %10884, ptr noundef @.str.16)
  %10886 = icmp eq i32 %10885, -1
  br i1 %10886, label %10887, label %10940

10887:                                            ; preds = %10881
  br label %10888

10888:                                            ; preds = %10887
  br label %10889

10889:                                            ; preds = %10888
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #10
  %10890 = call ptr @__errno_location() #11
  %10891 = load i32, ptr %10890, align 4, !tbaa !5
  store i32 %10891, ptr %225, align 4, !tbaa !5
  %10892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10893 = call i32 @s2n_print_stacktrace(ptr noundef %10892)
  %10894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10895 = trunc i8 %10894 to i1
  br i1 %10895, label %10896, label %10918

10896:                                            ; preds = %10889
  %10897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10898 = call i32 @fileno(ptr noundef %10897) #10
  %10899 = call i32 @isatty(i32 noundef %10898) #10
  %10900 = icmp ne i32 %10899, 0
  br i1 %10900, label %10901, label %10918

10901:                                            ; preds = %10896
  %10902 = load i32, ptr %225, align 4, !tbaa !5
  %10903 = call ptr @__errno_location() #11
  store i32 %10902, ptr %10903, align 4, !tbaa !5
  %10904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10905 = load i32, ptr @test_count, align 4, !tbaa !5
  %10906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10907 = load i32, ptr %10906, align 4, !tbaa !5
  %10908 = call ptr @s2n_strerror(i32 noundef %10907, ptr noundef @.str.4)
  %10909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10910 = load i32, ptr %10909, align 4, !tbaa !5
  %10911 = call ptr @s2n_strerror_debug(i32 noundef %10910, ptr noundef @.str.4)
  %10912 = call ptr @__errno_location() #11
  %10913 = load i32, ptr %10912, align 4, !tbaa !5
  %10914 = call ptr @strerror(i32 noundef %10913) #10
  %10915 = call ptr @__errno_location() #11
  %10916 = load i32, ptr %10915, align 4, !tbaa !5
  %10917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10904, ptr noundef @.str.2, i32 noundef %10905, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 423, ptr noundef %10908, ptr noundef %10911, ptr noundef %10914, i32 noundef %10916) #10
  br label %10935

10918:                                            ; preds = %10896, %10889
  %10919 = load i32, ptr %225, align 4, !tbaa !5
  %10920 = call ptr @__errno_location() #11
  store i32 %10919, ptr %10920, align 4, !tbaa !5
  %10921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10922 = load i32, ptr @test_count, align 4, !tbaa !5
  %10923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10924 = load i32, ptr %10923, align 4, !tbaa !5
  %10925 = call ptr @s2n_strerror(i32 noundef %10924, ptr noundef @.str.4)
  %10926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10927 = load i32, ptr %10926, align 4, !tbaa !5
  %10928 = call ptr @s2n_strerror_debug(i32 noundef %10927, ptr noundef @.str.4)
  %10929 = call ptr @__errno_location() #11
  %10930 = load i32, ptr %10929, align 4, !tbaa !5
  %10931 = call ptr @strerror(i32 noundef %10930) #10
  %10932 = call ptr @__errno_location() #11
  %10933 = load i32, ptr %10932, align 4, !tbaa !5
  %10934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10921, ptr noundef @.str.5, i32 noundef %10922, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 423, ptr noundef %10925, ptr noundef %10928, ptr noundef %10931, i32 noundef %10933) #10
  br label %10935

10935:                                            ; preds = %10918, %10901
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #10
  br label %10936

10936:                                            ; preds = %10935
  br label %10937

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

10938:                                            ; No predecessors!
  br label %10939

10939:                                            ; preds = %10938
  br label %10940

10940:                                            ; preds = %10939, %10881
  br label %10941

10941:                                            ; preds = %10940
  br label %10942

10942:                                            ; preds = %10941
  br label %10943

10943:                                            ; preds = %10942
  %10944 = load i32, ptr @test_count, align 4, !tbaa !5
  %10945 = add nsw i32 %10944, 1
  store i32 %10945, ptr @test_count, align 4, !tbaa !5
  %10946 = load ptr, ptr %223, align 8, !tbaa !9
  %10947 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %10946, i32 noundef 1, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %10948 = getelementptr inbounds %struct.s2n_result, ptr %226, i32 0, i32 0
  store i32 %10947, ptr %10948, align 4
  %10949 = getelementptr inbounds %struct.s2n_result, ptr %226, i32 0, i32 0
  %10950 = load i32, ptr %10949, align 4
  %10951 = call zeroext i1 @s2n_result_is_ok(i32 %10950)
  br i1 %10951, label %11005, label %10952

10952:                                            ; preds = %10943
  br label %10953

10953:                                            ; preds = %10952
  br label %10954

10954:                                            ; preds = %10953
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #10
  %10955 = call ptr @__errno_location() #11
  %10956 = load i32, ptr %10955, align 4, !tbaa !5
  store i32 %10956, ptr %227, align 4, !tbaa !5
  %10957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10958 = call i32 @s2n_print_stacktrace(ptr noundef %10957)
  %10959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10960 = trunc i8 %10959 to i1
  br i1 %10960, label %10961, label %10983

10961:                                            ; preds = %10954
  %10962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10963 = call i32 @fileno(ptr noundef %10962) #10
  %10964 = call i32 @isatty(i32 noundef %10963) #10
  %10965 = icmp ne i32 %10964, 0
  br i1 %10965, label %10966, label %10983

10966:                                            ; preds = %10961
  %10967 = load i32, ptr %227, align 4, !tbaa !5
  %10968 = call ptr @__errno_location() #11
  store i32 %10967, ptr %10968, align 4, !tbaa !5
  %10969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10970 = load i32, ptr @test_count, align 4, !tbaa !5
  %10971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10972 = load i32, ptr %10971, align 4, !tbaa !5
  %10973 = call ptr @s2n_strerror(i32 noundef %10972, ptr noundef @.str.4)
  %10974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10975 = load i32, ptr %10974, align 4, !tbaa !5
  %10976 = call ptr @s2n_strerror_debug(i32 noundef %10975, ptr noundef @.str.4)
  %10977 = call ptr @__errno_location() #11
  %10978 = load i32, ptr %10977, align 4, !tbaa !5
  %10979 = call ptr @strerror(i32 noundef %10978) #10
  %10980 = call ptr @__errno_location() #11
  %10981 = load i32, ptr %10980, align 4, !tbaa !5
  %10982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10969, ptr noundef @.str.2, i32 noundef %10970, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 424, ptr noundef %10973, ptr noundef %10976, ptr noundef %10979, i32 noundef %10981) #10
  br label %11000

10983:                                            ; preds = %10961, %10954
  %10984 = load i32, ptr %227, align 4, !tbaa !5
  %10985 = call ptr @__errno_location() #11
  store i32 %10984, ptr %10985, align 4, !tbaa !5
  %10986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10987 = load i32, ptr @test_count, align 4, !tbaa !5
  %10988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10989 = load i32, ptr %10988, align 4, !tbaa !5
  %10990 = call ptr @s2n_strerror(i32 noundef %10989, ptr noundef @.str.4)
  %10991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10992 = load i32, ptr %10991, align 4, !tbaa !5
  %10993 = call ptr @s2n_strerror_debug(i32 noundef %10992, ptr noundef @.str.4)
  %10994 = call ptr @__errno_location() #11
  %10995 = load i32, ptr %10994, align 4, !tbaa !5
  %10996 = call ptr @strerror(i32 noundef %10995) #10
  %10997 = call ptr @__errno_location() #11
  %10998 = load i32, ptr %10997, align 4, !tbaa !5
  %10999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10986, ptr noundef @.str.5, i32 noundef %10987, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 424, ptr noundef %10990, ptr noundef %10993, ptr noundef %10996, i32 noundef %10998) #10
  br label %11000

11000:                                            ; preds = %10983, %10966
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #10
  br label %11001

11001:                                            ; preds = %11000
  br label %11002

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

11003:                                            ; No predecessors!
  br label %11004

11004:                                            ; preds = %11003
  br label %11005

11005:                                            ; preds = %11004, %10943
  br label %11006

11006:                                            ; preds = %11005
  br label %11007

11007:                                            ; preds = %11006
  br label %11008

11008:                                            ; preds = %11007
  %11009 = load i32, ptr @test_count, align 4, !tbaa !5
  %11010 = add nsw i32 %11009, 1
  store i32 %11010, ptr @test_count, align 4, !tbaa !5
  %11011 = load ptr, ptr %223, align 8, !tbaa !9
  %11012 = getelementptr inbounds %struct.s2n_connection, ptr %11011, i32 0, i32 89
  %11013 = load i32, ptr %11012, align 8, !tbaa !48
  %11014 = icmp eq i32 %11013, 0
  br i1 %11014, label %11068, label %11015

11015:                                            ; preds = %11008
  br label %11016

11016:                                            ; preds = %11015
  br label %11017

11017:                                            ; preds = %11016
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #10
  %11018 = call ptr @__errno_location() #11
  %11019 = load i32, ptr %11018, align 4, !tbaa !5
  store i32 %11019, ptr %228, align 4, !tbaa !5
  %11020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11021 = call i32 @s2n_print_stacktrace(ptr noundef %11020)
  %11022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11023 = trunc i8 %11022 to i1
  br i1 %11023, label %11024, label %11046

11024:                                            ; preds = %11017
  %11025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11026 = call i32 @fileno(ptr noundef %11025) #10
  %11027 = call i32 @isatty(i32 noundef %11026) #10
  %11028 = icmp ne i32 %11027, 0
  br i1 %11028, label %11029, label %11046

11029:                                            ; preds = %11024
  %11030 = load i32, ptr %228, align 4, !tbaa !5
  %11031 = call ptr @__errno_location() #11
  store i32 %11030, ptr %11031, align 4, !tbaa !5
  %11032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11033 = load i32, ptr @test_count, align 4, !tbaa !5
  %11034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11035 = load i32, ptr %11034, align 4, !tbaa !5
  %11036 = call ptr @s2n_strerror(i32 noundef %11035, ptr noundef @.str.4)
  %11037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11038 = load i32, ptr %11037, align 4, !tbaa !5
  %11039 = call ptr @s2n_strerror_debug(i32 noundef %11038, ptr noundef @.str.4)
  %11040 = call ptr @__errno_location() #11
  %11041 = load i32, ptr %11040, align 4, !tbaa !5
  %11042 = call ptr @strerror(i32 noundef %11041) #10
  %11043 = call ptr @__errno_location() #11
  %11044 = load i32, ptr %11043, align 4, !tbaa !5
  %11045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11032, ptr noundef @.str.2, i32 noundef %11033, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 425, ptr noundef %11036, ptr noundef %11039, ptr noundef %11042, i32 noundef %11044) #10
  br label %11063

11046:                                            ; preds = %11024, %11017
  %11047 = load i32, ptr %228, align 4, !tbaa !5
  %11048 = call ptr @__errno_location() #11
  store i32 %11047, ptr %11048, align 4, !tbaa !5
  %11049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11050 = load i32, ptr @test_count, align 4, !tbaa !5
  %11051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11052 = load i32, ptr %11051, align 4, !tbaa !5
  %11053 = call ptr @s2n_strerror(i32 noundef %11052, ptr noundef @.str.4)
  %11054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11055 = load i32, ptr %11054, align 4, !tbaa !5
  %11056 = call ptr @s2n_strerror_debug(i32 noundef %11055, ptr noundef @.str.4)
  %11057 = call ptr @__errno_location() #11
  %11058 = load i32, ptr %11057, align 4, !tbaa !5
  %11059 = call ptr @strerror(i32 noundef %11058) #10
  %11060 = call ptr @__errno_location() #11
  %11061 = load i32, ptr %11060, align 4, !tbaa !5
  %11062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11049, ptr noundef @.str.5, i32 noundef %11050, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 425, ptr noundef %11053, ptr noundef %11056, ptr noundef %11059, i32 noundef %11061) #10
  br label %11063

11063:                                            ; preds = %11046, %11029
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #10
  br label %11064

11064:                                            ; preds = %11063
  br label %11065

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

11066:                                            ; No predecessors!
  br label %11067

11067:                                            ; preds = %11066
  br label %11068

11068:                                            ; preds = %11067, %11008
  br label %11069

11069:                                            ; preds = %11068
  br label %11070

11070:                                            ; preds = %11069
  br label %11071

11071:                                            ; preds = %11070
  %11072 = load i32, ptr @test_count, align 4, !tbaa !5
  %11073 = add nsw i32 %11072, 1
  store i32 %11073, ptr @test_count, align 4, !tbaa !5
  %11074 = load ptr, ptr %223, align 8, !tbaa !9
  %11075 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %11074)
  %11076 = icmp eq i32 %11075, -1
  br i1 %11076, label %11077, label %11130

11077:                                            ; preds = %11071
  br label %11078

11078:                                            ; preds = %11077
  br label %11079

11079:                                            ; preds = %11078
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #10
  %11080 = call ptr @__errno_location() #11
  %11081 = load i32, ptr %11080, align 4, !tbaa !5
  store i32 %11081, ptr %229, align 4, !tbaa !5
  %11082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11083 = call i32 @s2n_print_stacktrace(ptr noundef %11082)
  %11084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11085 = trunc i8 %11084 to i1
  br i1 %11085, label %11086, label %11108

11086:                                            ; preds = %11079
  %11087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11088 = call i32 @fileno(ptr noundef %11087) #10
  %11089 = call i32 @isatty(i32 noundef %11088) #10
  %11090 = icmp ne i32 %11089, 0
  br i1 %11090, label %11091, label %11108

11091:                                            ; preds = %11086
  %11092 = load i32, ptr %229, align 4, !tbaa !5
  %11093 = call ptr @__errno_location() #11
  store i32 %11092, ptr %11093, align 4, !tbaa !5
  %11094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11095 = load i32, ptr @test_count, align 4, !tbaa !5
  %11096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11097 = load i32, ptr %11096, align 4, !tbaa !5
  %11098 = call ptr @s2n_strerror(i32 noundef %11097, ptr noundef @.str.4)
  %11099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11100 = load i32, ptr %11099, align 4, !tbaa !5
  %11101 = call ptr @s2n_strerror_debug(i32 noundef %11100, ptr noundef @.str.4)
  %11102 = call ptr @__errno_location() #11
  %11103 = load i32, ptr %11102, align 4, !tbaa !5
  %11104 = call ptr @strerror(i32 noundef %11103) #10
  %11105 = call ptr @__errno_location() #11
  %11106 = load i32, ptr %11105, align 4, !tbaa !5
  %11107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11094, ptr noundef @.str.2, i32 noundef %11095, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 426, ptr noundef %11098, ptr noundef %11101, ptr noundef %11104, i32 noundef %11106) #10
  br label %11125

11108:                                            ; preds = %11086, %11079
  %11109 = load i32, ptr %229, align 4, !tbaa !5
  %11110 = call ptr @__errno_location() #11
  store i32 %11109, ptr %11110, align 4, !tbaa !5
  %11111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11112 = load i32, ptr @test_count, align 4, !tbaa !5
  %11113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11114 = load i32, ptr %11113, align 4, !tbaa !5
  %11115 = call ptr @s2n_strerror(i32 noundef %11114, ptr noundef @.str.4)
  %11116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11117 = load i32, ptr %11116, align 4, !tbaa !5
  %11118 = call ptr @s2n_strerror_debug(i32 noundef %11117, ptr noundef @.str.4)
  %11119 = call ptr @__errno_location() #11
  %11120 = load i32, ptr %11119, align 4, !tbaa !5
  %11121 = call ptr @strerror(i32 noundef %11120) #10
  %11122 = call ptr @__errno_location() #11
  %11123 = load i32, ptr %11122, align 4, !tbaa !5
  %11124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11111, ptr noundef @.str.5, i32 noundef %11112, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 426, ptr noundef %11115, ptr noundef %11118, ptr noundef %11121, i32 noundef %11123) #10
  br label %11125

11125:                                            ; preds = %11108, %11091
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #10
  br label %11126

11126:                                            ; preds = %11125
  br label %11127

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

11128:                                            ; No predecessors!
  br label %11129

11129:                                            ; preds = %11128
  br label %11130

11130:                                            ; preds = %11129, %11071
  br label %11131

11131:                                            ; preds = %11130
  br label %11132

11132:                                            ; preds = %11131
  call void @llvm.lifetime.start.p0(i64 8, ptr %230) #10
  %11133 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11133, ptr %230, align 8, !tbaa !9
  br label %11134

11134:                                            ; preds = %11132
  %11135 = load i32, ptr @test_count, align 4, !tbaa !5
  %11136 = add nsw i32 %11135, 1
  store i32 %11136, ptr @test_count, align 4, !tbaa !5
  %11137 = load ptr, ptr %230, align 8, !tbaa !9
  %11138 = icmp eq ptr %11137, null
  br i1 %11138, label %11139, label %11192

11139:                                            ; preds = %11134
  br label %11140

11140:                                            ; preds = %11139
  br label %11141

11141:                                            ; preds = %11140
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #10
  %11142 = call ptr @__errno_location() #11
  %11143 = load i32, ptr %11142, align 4, !tbaa !5
  store i32 %11143, ptr %231, align 4, !tbaa !5
  %11144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11145 = call i32 @s2n_print_stacktrace(ptr noundef %11144)
  %11146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11147 = trunc i8 %11146 to i1
  br i1 %11147, label %11148, label %11170

11148:                                            ; preds = %11141
  %11149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11150 = call i32 @fileno(ptr noundef %11149) #10
  %11151 = call i32 @isatty(i32 noundef %11150) #10
  %11152 = icmp ne i32 %11151, 0
  br i1 %11152, label %11153, label %11170

11153:                                            ; preds = %11148
  %11154 = load i32, ptr %231, align 4, !tbaa !5
  %11155 = call ptr @__errno_location() #11
  store i32 %11154, ptr %11155, align 4, !tbaa !5
  %11156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11157 = load i32, ptr @test_count, align 4, !tbaa !5
  %11158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11159 = load i32, ptr %11158, align 4, !tbaa !5
  %11160 = call ptr @s2n_strerror(i32 noundef %11159, ptr noundef @.str.4)
  %11161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11162 = load i32, ptr %11161, align 4, !tbaa !5
  %11163 = call ptr @s2n_strerror_debug(i32 noundef %11162, ptr noundef @.str.4)
  %11164 = call ptr @__errno_location() #11
  %11165 = load i32, ptr %11164, align 4, !tbaa !5
  %11166 = call ptr @strerror(i32 noundef %11165) #10
  %11167 = call ptr @__errno_location() #11
  %11168 = load i32, ptr %11167, align 4, !tbaa !5
  %11169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11156, ptr noundef @.str.2, i32 noundef %11157, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 429, ptr noundef %11160, ptr noundef %11163, ptr noundef %11166, i32 noundef %11168) #10
  br label %11187

11170:                                            ; preds = %11148, %11141
  %11171 = load i32, ptr %231, align 4, !tbaa !5
  %11172 = call ptr @__errno_location() #11
  store i32 %11171, ptr %11172, align 4, !tbaa !5
  %11173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11174 = load i32, ptr @test_count, align 4, !tbaa !5
  %11175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11176 = load i32, ptr %11175, align 4, !tbaa !5
  %11177 = call ptr @s2n_strerror(i32 noundef %11176, ptr noundef @.str.4)
  %11178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11179 = load i32, ptr %11178, align 4, !tbaa !5
  %11180 = call ptr @s2n_strerror_debug(i32 noundef %11179, ptr noundef @.str.4)
  %11181 = call ptr @__errno_location() #11
  %11182 = load i32, ptr %11181, align 4, !tbaa !5
  %11183 = call ptr @strerror(i32 noundef %11182) #10
  %11184 = call ptr @__errno_location() #11
  %11185 = load i32, ptr %11184, align 4, !tbaa !5
  %11186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11173, ptr noundef @.str.5, i32 noundef %11174, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 429, ptr noundef %11177, ptr noundef %11180, ptr noundef %11183, i32 noundef %11185) #10
  br label %11187

11187:                                            ; preds = %11170, %11153
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #10
  br label %11188

11188:                                            ; preds = %11187
  br label %11189

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

11190:                                            ; No predecessors!
  br label %11191

11191:                                            ; preds = %11190
  br label %11192

11192:                                            ; preds = %11191, %11134
  br label %11193

11193:                                            ; preds = %11192
  br label %11194

11194:                                            ; preds = %11193
  br label %11195

11195:                                            ; preds = %11194
  %11196 = load i32, ptr @test_count, align 4, !tbaa !5
  %11197 = add nsw i32 %11196, 1
  store i32 %11197, ptr @test_count, align 4, !tbaa !5
  %11198 = load ptr, ptr %230, align 8, !tbaa !9
  %11199 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11198, ptr noundef @.str.16)
  %11200 = icmp eq i32 %11199, -1
  br i1 %11200, label %11201, label %11254

11201:                                            ; preds = %11195
  br label %11202

11202:                                            ; preds = %11201
  br label %11203

11203:                                            ; preds = %11202
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #10
  %11204 = call ptr @__errno_location() #11
  %11205 = load i32, ptr %11204, align 4, !tbaa !5
  store i32 %11205, ptr %232, align 4, !tbaa !5
  %11206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11207 = call i32 @s2n_print_stacktrace(ptr noundef %11206)
  %11208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11209 = trunc i8 %11208 to i1
  br i1 %11209, label %11210, label %11232

11210:                                            ; preds = %11203
  %11211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11212 = call i32 @fileno(ptr noundef %11211) #10
  %11213 = call i32 @isatty(i32 noundef %11212) #10
  %11214 = icmp ne i32 %11213, 0
  br i1 %11214, label %11215, label %11232

11215:                                            ; preds = %11210
  %11216 = load i32, ptr %232, align 4, !tbaa !5
  %11217 = call ptr @__errno_location() #11
  store i32 %11216, ptr %11217, align 4, !tbaa !5
  %11218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11219 = load i32, ptr @test_count, align 4, !tbaa !5
  %11220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11221 = load i32, ptr %11220, align 4, !tbaa !5
  %11222 = call ptr @s2n_strerror(i32 noundef %11221, ptr noundef @.str.4)
  %11223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11224 = load i32, ptr %11223, align 4, !tbaa !5
  %11225 = call ptr @s2n_strerror_debug(i32 noundef %11224, ptr noundef @.str.4)
  %11226 = call ptr @__errno_location() #11
  %11227 = load i32, ptr %11226, align 4, !tbaa !5
  %11228 = call ptr @strerror(i32 noundef %11227) #10
  %11229 = call ptr @__errno_location() #11
  %11230 = load i32, ptr %11229, align 4, !tbaa !5
  %11231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11218, ptr noundef @.str.2, i32 noundef %11219, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 430, ptr noundef %11222, ptr noundef %11225, ptr noundef %11228, i32 noundef %11230) #10
  br label %11249

11232:                                            ; preds = %11210, %11203
  %11233 = load i32, ptr %232, align 4, !tbaa !5
  %11234 = call ptr @__errno_location() #11
  store i32 %11233, ptr %11234, align 4, !tbaa !5
  %11235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11236 = load i32, ptr @test_count, align 4, !tbaa !5
  %11237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11238 = load i32, ptr %11237, align 4, !tbaa !5
  %11239 = call ptr @s2n_strerror(i32 noundef %11238, ptr noundef @.str.4)
  %11240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11241 = load i32, ptr %11240, align 4, !tbaa !5
  %11242 = call ptr @s2n_strerror_debug(i32 noundef %11241, ptr noundef @.str.4)
  %11243 = call ptr @__errno_location() #11
  %11244 = load i32, ptr %11243, align 4, !tbaa !5
  %11245 = call ptr @strerror(i32 noundef %11244) #10
  %11246 = call ptr @__errno_location() #11
  %11247 = load i32, ptr %11246, align 4, !tbaa !5
  %11248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11235, ptr noundef @.str.5, i32 noundef %11236, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 430, ptr noundef %11239, ptr noundef %11242, ptr noundef %11245, i32 noundef %11247) #10
  br label %11249

11249:                                            ; preds = %11232, %11215
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #10
  br label %11250

11250:                                            ; preds = %11249
  br label %11251

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

11252:                                            ; No predecessors!
  br label %11253

11253:                                            ; preds = %11252
  br label %11254

11254:                                            ; preds = %11253, %11195
  br label %11255

11255:                                            ; preds = %11254
  br label %11256

11256:                                            ; preds = %11255
  br label %11257

11257:                                            ; preds = %11256
  %11258 = load i32, ptr @test_count, align 4, !tbaa !5
  %11259 = add nsw i32 %11258, 1
  store i32 %11259, ptr @test_count, align 4, !tbaa !5
  %11260 = load ptr, ptr %230, align 8, !tbaa !9
  %11261 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %11260, i32 noundef 0, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %11262 = getelementptr inbounds %struct.s2n_result, ptr %233, i32 0, i32 0
  store i32 %11261, ptr %11262, align 4
  %11263 = getelementptr inbounds %struct.s2n_result, ptr %233, i32 0, i32 0
  %11264 = load i32, ptr %11263, align 4
  %11265 = call zeroext i1 @s2n_result_is_ok(i32 %11264)
  br i1 %11265, label %11319, label %11266

11266:                                            ; preds = %11257
  br label %11267

11267:                                            ; preds = %11266
  br label %11268

11268:                                            ; preds = %11267
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #10
  %11269 = call ptr @__errno_location() #11
  %11270 = load i32, ptr %11269, align 4, !tbaa !5
  store i32 %11270, ptr %234, align 4, !tbaa !5
  %11271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11272 = call i32 @s2n_print_stacktrace(ptr noundef %11271)
  %11273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11274 = trunc i8 %11273 to i1
  br i1 %11274, label %11275, label %11297

11275:                                            ; preds = %11268
  %11276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11277 = call i32 @fileno(ptr noundef %11276) #10
  %11278 = call i32 @isatty(i32 noundef %11277) #10
  %11279 = icmp ne i32 %11278, 0
  br i1 %11279, label %11280, label %11297

11280:                                            ; preds = %11275
  %11281 = load i32, ptr %234, align 4, !tbaa !5
  %11282 = call ptr @__errno_location() #11
  store i32 %11281, ptr %11282, align 4, !tbaa !5
  %11283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11284 = load i32, ptr @test_count, align 4, !tbaa !5
  %11285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11286 = load i32, ptr %11285, align 4, !tbaa !5
  %11287 = call ptr @s2n_strerror(i32 noundef %11286, ptr noundef @.str.4)
  %11288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11289 = load i32, ptr %11288, align 4, !tbaa !5
  %11290 = call ptr @s2n_strerror_debug(i32 noundef %11289, ptr noundef @.str.4)
  %11291 = call ptr @__errno_location() #11
  %11292 = load i32, ptr %11291, align 4, !tbaa !5
  %11293 = call ptr @strerror(i32 noundef %11292) #10
  %11294 = call ptr @__errno_location() #11
  %11295 = load i32, ptr %11294, align 4, !tbaa !5
  %11296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11283, ptr noundef @.str.2, i32 noundef %11284, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 431, ptr noundef %11287, ptr noundef %11290, ptr noundef %11293, i32 noundef %11295) #10
  br label %11314

11297:                                            ; preds = %11275, %11268
  %11298 = load i32, ptr %234, align 4, !tbaa !5
  %11299 = call ptr @__errno_location() #11
  store i32 %11298, ptr %11299, align 4, !tbaa !5
  %11300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11301 = load i32, ptr @test_count, align 4, !tbaa !5
  %11302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11303 = load i32, ptr %11302, align 4, !tbaa !5
  %11304 = call ptr @s2n_strerror(i32 noundef %11303, ptr noundef @.str.4)
  %11305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11306 = load i32, ptr %11305, align 4, !tbaa !5
  %11307 = call ptr @s2n_strerror_debug(i32 noundef %11306, ptr noundef @.str.4)
  %11308 = call ptr @__errno_location() #11
  %11309 = load i32, ptr %11308, align 4, !tbaa !5
  %11310 = call ptr @strerror(i32 noundef %11309) #10
  %11311 = call ptr @__errno_location() #11
  %11312 = load i32, ptr %11311, align 4, !tbaa !5
  %11313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11300, ptr noundef @.str.5, i32 noundef %11301, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 431, ptr noundef %11304, ptr noundef %11307, ptr noundef %11310, i32 noundef %11312) #10
  br label %11314

11314:                                            ; preds = %11297, %11280
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #10
  br label %11315

11315:                                            ; preds = %11314
  br label %11316

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

11317:                                            ; No predecessors!
  br label %11318

11318:                                            ; preds = %11317
  br label %11319

11319:                                            ; preds = %11318, %11257
  br label %11320

11320:                                            ; preds = %11319
  br label %11321

11321:                                            ; preds = %11320
  br label %11322

11322:                                            ; preds = %11321
  %11323 = load i32, ptr @test_count, align 4, !tbaa !5
  %11324 = add nsw i32 %11323, 1
  store i32 %11324, ptr @test_count, align 4, !tbaa !5
  %11325 = load ptr, ptr %230, align 8, !tbaa !9
  %11326 = getelementptr inbounds %struct.s2n_connection, ptr %11325, i32 0, i32 89
  %11327 = load i32, ptr %11326, align 8, !tbaa !48
  %11328 = icmp eq i32 %11327, 0
  br i1 %11328, label %11382, label %11329

11329:                                            ; preds = %11322
  br label %11330

11330:                                            ; preds = %11329
  br label %11331

11331:                                            ; preds = %11330
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #10
  %11332 = call ptr @__errno_location() #11
  %11333 = load i32, ptr %11332, align 4, !tbaa !5
  store i32 %11333, ptr %235, align 4, !tbaa !5
  %11334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11335 = call i32 @s2n_print_stacktrace(ptr noundef %11334)
  %11336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11337 = trunc i8 %11336 to i1
  br i1 %11337, label %11338, label %11360

11338:                                            ; preds = %11331
  %11339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11340 = call i32 @fileno(ptr noundef %11339) #10
  %11341 = call i32 @isatty(i32 noundef %11340) #10
  %11342 = icmp ne i32 %11341, 0
  br i1 %11342, label %11343, label %11360

11343:                                            ; preds = %11338
  %11344 = load i32, ptr %235, align 4, !tbaa !5
  %11345 = call ptr @__errno_location() #11
  store i32 %11344, ptr %11345, align 4, !tbaa !5
  %11346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11347 = load i32, ptr @test_count, align 4, !tbaa !5
  %11348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11349 = load i32, ptr %11348, align 4, !tbaa !5
  %11350 = call ptr @s2n_strerror(i32 noundef %11349, ptr noundef @.str.4)
  %11351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11352 = load i32, ptr %11351, align 4, !tbaa !5
  %11353 = call ptr @s2n_strerror_debug(i32 noundef %11352, ptr noundef @.str.4)
  %11354 = call ptr @__errno_location() #11
  %11355 = load i32, ptr %11354, align 4, !tbaa !5
  %11356 = call ptr @strerror(i32 noundef %11355) #10
  %11357 = call ptr @__errno_location() #11
  %11358 = load i32, ptr %11357, align 4, !tbaa !5
  %11359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11346, ptr noundef @.str.2, i32 noundef %11347, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 432, ptr noundef %11350, ptr noundef %11353, ptr noundef %11356, i32 noundef %11358) #10
  br label %11377

11360:                                            ; preds = %11338, %11331
  %11361 = load i32, ptr %235, align 4, !tbaa !5
  %11362 = call ptr @__errno_location() #11
  store i32 %11361, ptr %11362, align 4, !tbaa !5
  %11363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11364 = load i32, ptr @test_count, align 4, !tbaa !5
  %11365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11366 = load i32, ptr %11365, align 4, !tbaa !5
  %11367 = call ptr @s2n_strerror(i32 noundef %11366, ptr noundef @.str.4)
  %11368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11369 = load i32, ptr %11368, align 4, !tbaa !5
  %11370 = call ptr @s2n_strerror_debug(i32 noundef %11369, ptr noundef @.str.4)
  %11371 = call ptr @__errno_location() #11
  %11372 = load i32, ptr %11371, align 4, !tbaa !5
  %11373 = call ptr @strerror(i32 noundef %11372) #10
  %11374 = call ptr @__errno_location() #11
  %11375 = load i32, ptr %11374, align 4, !tbaa !5
  %11376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11363, ptr noundef @.str.5, i32 noundef %11364, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 432, ptr noundef %11367, ptr noundef %11370, ptr noundef %11373, i32 noundef %11375) #10
  br label %11377

11377:                                            ; preds = %11360, %11343
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #10
  br label %11378

11378:                                            ; preds = %11377
  br label %11379

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

11380:                                            ; No predecessors!
  br label %11381

11381:                                            ; preds = %11380
  br label %11382

11382:                                            ; preds = %11381, %11322
  br label %11383

11383:                                            ; preds = %11382
  br label %11384

11384:                                            ; preds = %11383
  br label %11385

11385:                                            ; preds = %11384
  %11386 = load i32, ptr @test_count, align 4, !tbaa !5
  %11387 = add nsw i32 %11386, 1
  store i32 %11387, ptr @test_count, align 4, !tbaa !5
  %11388 = load ptr, ptr %230, align 8, !tbaa !9
  %11389 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %11388)
  %11390 = icmp eq i32 %11389, -1
  br i1 %11390, label %11391, label %11444

11391:                                            ; preds = %11385
  br label %11392

11392:                                            ; preds = %11391
  br label %11393

11393:                                            ; preds = %11392
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #10
  %11394 = call ptr @__errno_location() #11
  %11395 = load i32, ptr %11394, align 4, !tbaa !5
  store i32 %11395, ptr %236, align 4, !tbaa !5
  %11396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11397 = call i32 @s2n_print_stacktrace(ptr noundef %11396)
  %11398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11399 = trunc i8 %11398 to i1
  br i1 %11399, label %11400, label %11422

11400:                                            ; preds = %11393
  %11401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11402 = call i32 @fileno(ptr noundef %11401) #10
  %11403 = call i32 @isatty(i32 noundef %11402) #10
  %11404 = icmp ne i32 %11403, 0
  br i1 %11404, label %11405, label %11422

11405:                                            ; preds = %11400
  %11406 = load i32, ptr %236, align 4, !tbaa !5
  %11407 = call ptr @__errno_location() #11
  store i32 %11406, ptr %11407, align 4, !tbaa !5
  %11408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11409 = load i32, ptr @test_count, align 4, !tbaa !5
  %11410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11411 = load i32, ptr %11410, align 4, !tbaa !5
  %11412 = call ptr @s2n_strerror(i32 noundef %11411, ptr noundef @.str.4)
  %11413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11414 = load i32, ptr %11413, align 4, !tbaa !5
  %11415 = call ptr @s2n_strerror_debug(i32 noundef %11414, ptr noundef @.str.4)
  %11416 = call ptr @__errno_location() #11
  %11417 = load i32, ptr %11416, align 4, !tbaa !5
  %11418 = call ptr @strerror(i32 noundef %11417) #10
  %11419 = call ptr @__errno_location() #11
  %11420 = load i32, ptr %11419, align 4, !tbaa !5
  %11421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11408, ptr noundef @.str.2, i32 noundef %11409, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 433, ptr noundef %11412, ptr noundef %11415, ptr noundef %11418, i32 noundef %11420) #10
  br label %11439

11422:                                            ; preds = %11400, %11393
  %11423 = load i32, ptr %236, align 4, !tbaa !5
  %11424 = call ptr @__errno_location() #11
  store i32 %11423, ptr %11424, align 4, !tbaa !5
  %11425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11426 = load i32, ptr @test_count, align 4, !tbaa !5
  %11427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11428 = load i32, ptr %11427, align 4, !tbaa !5
  %11429 = call ptr @s2n_strerror(i32 noundef %11428, ptr noundef @.str.4)
  %11430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11431 = load i32, ptr %11430, align 4, !tbaa !5
  %11432 = call ptr @s2n_strerror_debug(i32 noundef %11431, ptr noundef @.str.4)
  %11433 = call ptr @__errno_location() #11
  %11434 = load i32, ptr %11433, align 4, !tbaa !5
  %11435 = call ptr @strerror(i32 noundef %11434) #10
  %11436 = call ptr @__errno_location() #11
  %11437 = load i32, ptr %11436, align 4, !tbaa !5
  %11438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11425, ptr noundef @.str.5, i32 noundef %11426, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 433, ptr noundef %11429, ptr noundef %11432, ptr noundef %11435, i32 noundef %11437) #10
  br label %11439

11439:                                            ; preds = %11422, %11405
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #10
  br label %11440

11440:                                            ; preds = %11439
  br label %11441

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

11442:                                            ; No predecessors!
  br label %11443

11443:                                            ; preds = %11442
  br label %11444

11444:                                            ; preds = %11443, %11385
  br label %11445

11445:                                            ; preds = %11444
  br label %11446

11446:                                            ; preds = %11445
  br label %11447

11447:                                            ; preds = %11446
  %11448 = load i32, ptr @test_count, align 4, !tbaa !5
  %11449 = add nsw i32 %11448, 1
  store i32 %11449, ptr @test_count, align 4, !tbaa !5
  %11450 = load ptr, ptr %223, align 8, !tbaa !9
  %11451 = call i32 @s2n_client_hello_send(ptr noundef %11450)
  %11452 = icmp eq i32 %11451, -1
  br i1 %11452, label %11453, label %11506

11453:                                            ; preds = %11447
  br label %11454

11454:                                            ; preds = %11453
  br label %11455

11455:                                            ; preds = %11454
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #10
  %11456 = call ptr @__errno_location() #11
  %11457 = load i32, ptr %11456, align 4, !tbaa !5
  store i32 %11457, ptr %237, align 4, !tbaa !5
  %11458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11459 = call i32 @s2n_print_stacktrace(ptr noundef %11458)
  %11460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11461 = trunc i8 %11460 to i1
  br i1 %11461, label %11462, label %11484

11462:                                            ; preds = %11455
  %11463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11464 = call i32 @fileno(ptr noundef %11463) #10
  %11465 = call i32 @isatty(i32 noundef %11464) #10
  %11466 = icmp ne i32 %11465, 0
  br i1 %11466, label %11467, label %11484

11467:                                            ; preds = %11462
  %11468 = load i32, ptr %237, align 4, !tbaa !5
  %11469 = call ptr @__errno_location() #11
  store i32 %11468, ptr %11469, align 4, !tbaa !5
  %11470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11471 = load i32, ptr @test_count, align 4, !tbaa !5
  %11472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11473 = load i32, ptr %11472, align 4, !tbaa !5
  %11474 = call ptr @s2n_strerror(i32 noundef %11473, ptr noundef @.str.4)
  %11475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11476 = load i32, ptr %11475, align 4, !tbaa !5
  %11477 = call ptr @s2n_strerror_debug(i32 noundef %11476, ptr noundef @.str.4)
  %11478 = call ptr @__errno_location() #11
  %11479 = load i32, ptr %11478, align 4, !tbaa !5
  %11480 = call ptr @strerror(i32 noundef %11479) #10
  %11481 = call ptr @__errno_location() #11
  %11482 = load i32, ptr %11481, align 4, !tbaa !5
  %11483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11470, ptr noundef @.str.2, i32 noundef %11471, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 435, ptr noundef %11474, ptr noundef %11477, ptr noundef %11480, i32 noundef %11482) #10
  br label %11501

11484:                                            ; preds = %11462, %11455
  %11485 = load i32, ptr %237, align 4, !tbaa !5
  %11486 = call ptr @__errno_location() #11
  store i32 %11485, ptr %11486, align 4, !tbaa !5
  %11487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11488 = load i32, ptr @test_count, align 4, !tbaa !5
  %11489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11490 = load i32, ptr %11489, align 4, !tbaa !5
  %11491 = call ptr @s2n_strerror(i32 noundef %11490, ptr noundef @.str.4)
  %11492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11493 = load i32, ptr %11492, align 4, !tbaa !5
  %11494 = call ptr @s2n_strerror_debug(i32 noundef %11493, ptr noundef @.str.4)
  %11495 = call ptr @__errno_location() #11
  %11496 = load i32, ptr %11495, align 4, !tbaa !5
  %11497 = call ptr @strerror(i32 noundef %11496) #10
  %11498 = call ptr @__errno_location() #11
  %11499 = load i32, ptr %11498, align 4, !tbaa !5
  %11500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11487, ptr noundef @.str.5, i32 noundef %11488, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 435, ptr noundef %11491, ptr noundef %11494, ptr noundef %11497, i32 noundef %11499) #10
  br label %11501

11501:                                            ; preds = %11484, %11467
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #10
  br label %11502

11502:                                            ; preds = %11501
  br label %11503

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

11504:                                            ; No predecessors!
  br label %11505

11505:                                            ; preds = %11504
  br label %11506

11506:                                            ; preds = %11505, %11447
  br label %11507

11507:                                            ; preds = %11506
  br label %11508

11508:                                            ; preds = %11507
  br label %11509

11509:                                            ; preds = %11508
  %11510 = load i32, ptr @test_count, align 4, !tbaa !5
  %11511 = add nsw i32 %11510, 1
  store i32 %11511, ptr @test_count, align 4, !tbaa !5
  %11512 = load ptr, ptr %223, align 8, !tbaa !9
  %11513 = getelementptr inbounds %struct.s2n_connection, ptr %11512, i32 0, i32 52
  %11514 = getelementptr inbounds %struct.s2n_handshake, ptr %11513, i32 0, i32 0
  %11515 = load ptr, ptr %230, align 8, !tbaa !9
  %11516 = getelementptr inbounds %struct.s2n_connection, ptr %11515, i32 0, i32 52
  %11517 = getelementptr inbounds %struct.s2n_handshake, ptr %11516, i32 0, i32 0
  %11518 = load ptr, ptr %223, align 8, !tbaa !9
  %11519 = getelementptr inbounds %struct.s2n_connection, ptr %11518, i32 0, i32 52
  %11520 = getelementptr inbounds %struct.s2n_handshake, ptr %11519, i32 0, i32 0
  %11521 = getelementptr inbounds %struct.s2n_stuffer, ptr %11520, i32 0, i32 2
  %11522 = load i32, ptr %11521, align 4, !tbaa !51
  %11523 = load ptr, ptr %223, align 8, !tbaa !9
  %11524 = getelementptr inbounds %struct.s2n_connection, ptr %11523, i32 0, i32 52
  %11525 = getelementptr inbounds %struct.s2n_handshake, ptr %11524, i32 0, i32 0
  %11526 = getelementptr inbounds %struct.s2n_stuffer, ptr %11525, i32 0, i32 1
  %11527 = load i32, ptr %11526, align 8, !tbaa !52
  %11528 = sub i32 %11522, %11527
  %11529 = call i32 @s2n_stuffer_copy(ptr noundef %11514, ptr noundef %11517, i32 noundef %11528)
  %11530 = icmp eq i32 %11529, -1
  br i1 %11530, label %11531, label %11584

11531:                                            ; preds = %11509
  br label %11532

11532:                                            ; preds = %11531
  br label %11533

11533:                                            ; preds = %11532
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #10
  %11534 = call ptr @__errno_location() #11
  %11535 = load i32, ptr %11534, align 4, !tbaa !5
  store i32 %11535, ptr %238, align 4, !tbaa !5
  %11536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11537 = call i32 @s2n_print_stacktrace(ptr noundef %11536)
  %11538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11539 = trunc i8 %11538 to i1
  br i1 %11539, label %11540, label %11562

11540:                                            ; preds = %11533
  %11541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11542 = call i32 @fileno(ptr noundef %11541) #10
  %11543 = call i32 @isatty(i32 noundef %11542) #10
  %11544 = icmp ne i32 %11543, 0
  br i1 %11544, label %11545, label %11562

11545:                                            ; preds = %11540
  %11546 = load i32, ptr %238, align 4, !tbaa !5
  %11547 = call ptr @__errno_location() #11
  store i32 %11546, ptr %11547, align 4, !tbaa !5
  %11548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11549 = load i32, ptr @test_count, align 4, !tbaa !5
  %11550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11551 = load i32, ptr %11550, align 4, !tbaa !5
  %11552 = call ptr @s2n_strerror(i32 noundef %11551, ptr noundef @.str.4)
  %11553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11554 = load i32, ptr %11553, align 4, !tbaa !5
  %11555 = call ptr @s2n_strerror_debug(i32 noundef %11554, ptr noundef @.str.4)
  %11556 = call ptr @__errno_location() #11
  %11557 = load i32, ptr %11556, align 4, !tbaa !5
  %11558 = call ptr @strerror(i32 noundef %11557) #10
  %11559 = call ptr @__errno_location() #11
  %11560 = load i32, ptr %11559, align 4, !tbaa !5
  %11561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11548, ptr noundef @.str.2, i32 noundef %11549, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 437, ptr noundef %11552, ptr noundef %11555, ptr noundef %11558, i32 noundef %11560) #10
  br label %11579

11562:                                            ; preds = %11540, %11533
  %11563 = load i32, ptr %238, align 4, !tbaa !5
  %11564 = call ptr @__errno_location() #11
  store i32 %11563, ptr %11564, align 4, !tbaa !5
  %11565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11566 = load i32, ptr @test_count, align 4, !tbaa !5
  %11567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11568 = load i32, ptr %11567, align 4, !tbaa !5
  %11569 = call ptr @s2n_strerror(i32 noundef %11568, ptr noundef @.str.4)
  %11570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11571 = load i32, ptr %11570, align 4, !tbaa !5
  %11572 = call ptr @s2n_strerror_debug(i32 noundef %11571, ptr noundef @.str.4)
  %11573 = call ptr @__errno_location() #11
  %11574 = load i32, ptr %11573, align 4, !tbaa !5
  %11575 = call ptr @strerror(i32 noundef %11574) #10
  %11576 = call ptr @__errno_location() #11
  %11577 = load i32, ptr %11576, align 4, !tbaa !5
  %11578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11565, ptr noundef @.str.5, i32 noundef %11566, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 437, ptr noundef %11569, ptr noundef %11572, ptr noundef %11575, i32 noundef %11577) #10
  br label %11579

11579:                                            ; preds = %11562, %11545
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #10
  br label %11580

11580:                                            ; preds = %11579
  br label %11581

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

11582:                                            ; No predecessors!
  br label %11583

11583:                                            ; preds = %11582
  br label %11584

11584:                                            ; preds = %11583, %11509
  br label %11585

11585:                                            ; preds = %11584
  br label %11586

11586:                                            ; preds = %11585
  br label %11587

11587:                                            ; preds = %11586
  %11588 = load i32, ptr @test_count, align 4, !tbaa !5
  %11589 = add nsw i32 %11588, 1
  store i32 %11589, ptr @test_count, align 4, !tbaa !5
  %11590 = load ptr, ptr %230, align 8, !tbaa !9
  %11591 = call i32 @s2n_establish_session(ptr noundef %11590)
  %11592 = icmp eq i32 %11591, -1
  br i1 %11592, label %11593, label %11646

11593:                                            ; preds = %11587
  br label %11594

11594:                                            ; preds = %11593
  br label %11595

11595:                                            ; preds = %11594
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #10
  %11596 = call ptr @__errno_location() #11
  %11597 = load i32, ptr %11596, align 4, !tbaa !5
  store i32 %11597, ptr %239, align 4, !tbaa !5
  %11598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11599 = call i32 @s2n_print_stacktrace(ptr noundef %11598)
  %11600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11601 = trunc i8 %11600 to i1
  br i1 %11601, label %11602, label %11624

11602:                                            ; preds = %11595
  %11603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11604 = call i32 @fileno(ptr noundef %11603) #10
  %11605 = call i32 @isatty(i32 noundef %11604) #10
  %11606 = icmp ne i32 %11605, 0
  br i1 %11606, label %11607, label %11624

11607:                                            ; preds = %11602
  %11608 = load i32, ptr %239, align 4, !tbaa !5
  %11609 = call ptr @__errno_location() #11
  store i32 %11608, ptr %11609, align 4, !tbaa !5
  %11610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11611 = load i32, ptr @test_count, align 4, !tbaa !5
  %11612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11613 = load i32, ptr %11612, align 4, !tbaa !5
  %11614 = call ptr @s2n_strerror(i32 noundef %11613, ptr noundef @.str.4)
  %11615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11616 = load i32, ptr %11615, align 4, !tbaa !5
  %11617 = call ptr @s2n_strerror_debug(i32 noundef %11616, ptr noundef @.str.4)
  %11618 = call ptr @__errno_location() #11
  %11619 = load i32, ptr %11618, align 4, !tbaa !5
  %11620 = call ptr @strerror(i32 noundef %11619) #10
  %11621 = call ptr @__errno_location() #11
  %11622 = load i32, ptr %11621, align 4, !tbaa !5
  %11623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11610, ptr noundef @.str.2, i32 noundef %11611, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11614, ptr noundef %11617, ptr noundef %11620, i32 noundef %11622) #10
  br label %11641

11624:                                            ; preds = %11602, %11595
  %11625 = load i32, ptr %239, align 4, !tbaa !5
  %11626 = call ptr @__errno_location() #11
  store i32 %11625, ptr %11626, align 4, !tbaa !5
  %11627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11628 = load i32, ptr @test_count, align 4, !tbaa !5
  %11629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11630 = load i32, ptr %11629, align 4, !tbaa !5
  %11631 = call ptr @s2n_strerror(i32 noundef %11630, ptr noundef @.str.4)
  %11632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11633 = load i32, ptr %11632, align 4, !tbaa !5
  %11634 = call ptr @s2n_strerror_debug(i32 noundef %11633, ptr noundef @.str.4)
  %11635 = call ptr @__errno_location() #11
  %11636 = load i32, ptr %11635, align 4, !tbaa !5
  %11637 = call ptr @strerror(i32 noundef %11636) #10
  %11638 = call ptr @__errno_location() #11
  %11639 = load i32, ptr %11638, align 4, !tbaa !5
  %11640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11627, ptr noundef @.str.5, i32 noundef %11628, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11631, ptr noundef %11634, ptr noundef %11637, i32 noundef %11639) #10
  br label %11641

11641:                                            ; preds = %11624, %11607
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #10
  br label %11642

11642:                                            ; preds = %11641
  br label %11643

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

11644:                                            ; No predecessors!
  br label %11645

11645:                                            ; preds = %11644
  br label %11646

11646:                                            ; preds = %11645, %11587
  br label %11647

11647:                                            ; preds = %11646
  br label %11648

11648:                                            ; preds = %11647
  br label %11649

11649:                                            ; preds = %11648
  %11650 = load i32, ptr @test_count, align 4, !tbaa !5
  %11651 = add nsw i32 %11650, 1
  store i32 %11651, ptr @test_count, align 4, !tbaa !5
  %11652 = load ptr, ptr %223, align 8, !tbaa !9
  %11653 = getelementptr inbounds %struct.s2n_connection, ptr %11652, i32 0, i32 89
  %11654 = load i32, ptr %11653, align 8, !tbaa !48
  %11655 = icmp eq i32 %11654, 1
  br i1 %11655, label %11709, label %11656

11656:                                            ; preds = %11649
  br label %11657

11657:                                            ; preds = %11656
  br label %11658

11658:                                            ; preds = %11657
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #10
  %11659 = call ptr @__errno_location() #11
  %11660 = load i32, ptr %11659, align 4, !tbaa !5
  store i32 %11660, ptr %240, align 4, !tbaa !5
  %11661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11662 = call i32 @s2n_print_stacktrace(ptr noundef %11661)
  %11663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11664 = trunc i8 %11663 to i1
  br i1 %11664, label %11665, label %11687

11665:                                            ; preds = %11658
  %11666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11667 = call i32 @fileno(ptr noundef %11666) #10
  %11668 = call i32 @isatty(i32 noundef %11667) #10
  %11669 = icmp ne i32 %11668, 0
  br i1 %11669, label %11670, label %11687

11670:                                            ; preds = %11665
  %11671 = load i32, ptr %240, align 4, !tbaa !5
  %11672 = call ptr @__errno_location() #11
  store i32 %11671, ptr %11672, align 4, !tbaa !5
  %11673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11674 = load i32, ptr @test_count, align 4, !tbaa !5
  %11675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11676 = load i32, ptr %11675, align 4, !tbaa !5
  %11677 = call ptr @s2n_strerror(i32 noundef %11676, ptr noundef @.str.4)
  %11678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11679 = load i32, ptr %11678, align 4, !tbaa !5
  %11680 = call ptr @s2n_strerror_debug(i32 noundef %11679, ptr noundef @.str.4)
  %11681 = call ptr @__errno_location() #11
  %11682 = load i32, ptr %11681, align 4, !tbaa !5
  %11683 = call ptr @strerror(i32 noundef %11682) #10
  %11684 = call ptr @__errno_location() #11
  %11685 = load i32, ptr %11684, align 4, !tbaa !5
  %11686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11673, ptr noundef @.str.2, i32 noundef %11674, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 439, ptr noundef %11677, ptr noundef %11680, ptr noundef %11683, i32 noundef %11685) #10
  br label %11704

11687:                                            ; preds = %11665, %11658
  %11688 = load i32, ptr %240, align 4, !tbaa !5
  %11689 = call ptr @__errno_location() #11
  store i32 %11688, ptr %11689, align 4, !tbaa !5
  %11690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11691 = load i32, ptr @test_count, align 4, !tbaa !5
  %11692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11693 = load i32, ptr %11692, align 4, !tbaa !5
  %11694 = call ptr @s2n_strerror(i32 noundef %11693, ptr noundef @.str.4)
  %11695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11696 = load i32, ptr %11695, align 4, !tbaa !5
  %11697 = call ptr @s2n_strerror_debug(i32 noundef %11696, ptr noundef @.str.4)
  %11698 = call ptr @__errno_location() #11
  %11699 = load i32, ptr %11698, align 4, !tbaa !5
  %11700 = call ptr @strerror(i32 noundef %11699) #10
  %11701 = call ptr @__errno_location() #11
  %11702 = load i32, ptr %11701, align 4, !tbaa !5
  %11703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11690, ptr noundef @.str.5, i32 noundef %11691, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 439, ptr noundef %11694, ptr noundef %11697, ptr noundef %11700, i32 noundef %11702) #10
  br label %11704

11704:                                            ; preds = %11687, %11670
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #10
  br label %11705

11705:                                            ; preds = %11704
  br label %11706

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

11707:                                            ; No predecessors!
  br label %11708

11708:                                            ; preds = %11707
  br label %11709

11709:                                            ; preds = %11708, %11649
  br label %11710

11710:                                            ; preds = %11709
  br label %11711

11711:                                            ; preds = %11710
  br label %11712

11712:                                            ; preds = %11711
  %11713 = load i32, ptr @test_count, align 4, !tbaa !5
  %11714 = add nsw i32 %11713, 1
  store i32 %11714, ptr @test_count, align 4, !tbaa !5
  %11715 = load ptr, ptr %230, align 8, !tbaa !9
  %11716 = call i32 @s2n_set_hello_retry_required(ptr noundef %11715)
  %11717 = icmp eq i32 %11716, -1
  br i1 %11717, label %11718, label %11771

11718:                                            ; preds = %11712
  br label %11719

11719:                                            ; preds = %11718
  br label %11720

11720:                                            ; preds = %11719
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #10
  %11721 = call ptr @__errno_location() #11
  %11722 = load i32, ptr %11721, align 4, !tbaa !5
  store i32 %11722, ptr %241, align 4, !tbaa !5
  %11723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11724 = call i32 @s2n_print_stacktrace(ptr noundef %11723)
  %11725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11726 = trunc i8 %11725 to i1
  br i1 %11726, label %11727, label %11749

11727:                                            ; preds = %11720
  %11728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11729 = call i32 @fileno(ptr noundef %11728) #10
  %11730 = call i32 @isatty(i32 noundef %11729) #10
  %11731 = icmp ne i32 %11730, 0
  br i1 %11731, label %11732, label %11749

11732:                                            ; preds = %11727
  %11733 = load i32, ptr %241, align 4, !tbaa !5
  %11734 = call ptr @__errno_location() #11
  store i32 %11733, ptr %11734, align 4, !tbaa !5
  %11735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11736 = load i32, ptr @test_count, align 4, !tbaa !5
  %11737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11738 = load i32, ptr %11737, align 4, !tbaa !5
  %11739 = call ptr @s2n_strerror(i32 noundef %11738, ptr noundef @.str.4)
  %11740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11741 = load i32, ptr %11740, align 4, !tbaa !5
  %11742 = call ptr @s2n_strerror_debug(i32 noundef %11741, ptr noundef @.str.4)
  %11743 = call ptr @__errno_location() #11
  %11744 = load i32, ptr %11743, align 4, !tbaa !5
  %11745 = call ptr @strerror(i32 noundef %11744) #10
  %11746 = call ptr @__errno_location() #11
  %11747 = load i32, ptr %11746, align 4, !tbaa !5
  %11748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11735, ptr noundef @.str.2, i32 noundef %11736, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 442, ptr noundef %11739, ptr noundef %11742, ptr noundef %11745, i32 noundef %11747) #10
  br label %11766

11749:                                            ; preds = %11727, %11720
  %11750 = load i32, ptr %241, align 4, !tbaa !5
  %11751 = call ptr @__errno_location() #11
  store i32 %11750, ptr %11751, align 4, !tbaa !5
  %11752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11753 = load i32, ptr @test_count, align 4, !tbaa !5
  %11754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11755 = load i32, ptr %11754, align 4, !tbaa !5
  %11756 = call ptr @s2n_strerror(i32 noundef %11755, ptr noundef @.str.4)
  %11757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11758 = load i32, ptr %11757, align 4, !tbaa !5
  %11759 = call ptr @s2n_strerror_debug(i32 noundef %11758, ptr noundef @.str.4)
  %11760 = call ptr @__errno_location() #11
  %11761 = load i32, ptr %11760, align 4, !tbaa !5
  %11762 = call ptr @strerror(i32 noundef %11761) #10
  %11763 = call ptr @__errno_location() #11
  %11764 = load i32, ptr %11763, align 4, !tbaa !5
  %11765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11752, ptr noundef @.str.5, i32 noundef %11753, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 442, ptr noundef %11756, ptr noundef %11759, ptr noundef %11762, i32 noundef %11764) #10
  br label %11766

11766:                                            ; preds = %11749, %11732
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #10
  br label %11767

11767:                                            ; preds = %11766
  br label %11768

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

11769:                                            ; No predecessors!
  br label %11770

11770:                                            ; preds = %11769
  br label %11771

11771:                                            ; preds = %11770, %11712
  br label %11772

11772:                                            ; preds = %11771
  br label %11773

11773:                                            ; preds = %11772
  %11774 = load ptr, ptr %230, align 8, !tbaa !9
  %11775 = getelementptr inbounds %struct.s2n_connection, ptr %11774, i32 0, i32 52
  %11776 = getelementptr inbounds %struct.s2n_handshake, ptr %11775, i32 0, i32 7
  store i32 2, ptr %11776, align 8, !tbaa !49
  %11777 = load ptr, ptr %223, align 8, !tbaa !9
  %11778 = getelementptr inbounds %struct.s2n_connection, ptr %11777, i32 0, i32 52
  %11779 = getelementptr inbounds %struct.s2n_handshake, ptr %11778, i32 0, i32 7
  store i32 2, ptr %11779, align 8, !tbaa !49
  %11780 = load ptr, ptr %223, align 8, !tbaa !9
  %11781 = getelementptr inbounds %struct.s2n_connection, ptr %11780, i32 0, i32 31
  %11782 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11781, i32 0, i32 3
  %11783 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11782, i32 0, i32 0
  store ptr @s2n_ecc_curve_secp521r1, ptr %11783, align 8, !tbaa !53
  br label %11784

11784:                                            ; preds = %11773
  %11785 = load i32, ptr @test_count, align 4, !tbaa !5
  %11786 = add nsw i32 %11785, 1
  store i32 %11786, ptr @test_count, align 4, !tbaa !5
  %11787 = load ptr, ptr %230, align 8, !tbaa !9
  %11788 = call i32 @s2n_server_hello_retry_send(ptr noundef %11787)
  %11789 = icmp eq i32 %11788, -1
  br i1 %11789, label %11790, label %11843

11790:                                            ; preds = %11784
  br label %11791

11791:                                            ; preds = %11790
  br label %11792

11792:                                            ; preds = %11791
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #10
  %11793 = call ptr @__errno_location() #11
  %11794 = load i32, ptr %11793, align 4, !tbaa !5
  store i32 %11794, ptr %242, align 4, !tbaa !5
  %11795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11796 = call i32 @s2n_print_stacktrace(ptr noundef %11795)
  %11797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11798 = trunc i8 %11797 to i1
  br i1 %11798, label %11799, label %11821

11799:                                            ; preds = %11792
  %11800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11801 = call i32 @fileno(ptr noundef %11800) #10
  %11802 = call i32 @isatty(i32 noundef %11801) #10
  %11803 = icmp ne i32 %11802, 0
  br i1 %11803, label %11804, label %11821

11804:                                            ; preds = %11799
  %11805 = load i32, ptr %242, align 4, !tbaa !5
  %11806 = call ptr @__errno_location() #11
  store i32 %11805, ptr %11806, align 4, !tbaa !5
  %11807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11808 = load i32, ptr @test_count, align 4, !tbaa !5
  %11809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11810 = load i32, ptr %11809, align 4, !tbaa !5
  %11811 = call ptr @s2n_strerror(i32 noundef %11810, ptr noundef @.str.4)
  %11812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11813 = load i32, ptr %11812, align 4, !tbaa !5
  %11814 = call ptr @s2n_strerror_debug(i32 noundef %11813, ptr noundef @.str.4)
  %11815 = call ptr @__errno_location() #11
  %11816 = load i32, ptr %11815, align 4, !tbaa !5
  %11817 = call ptr @strerror(i32 noundef %11816) #10
  %11818 = call ptr @__errno_location() #11
  %11819 = load i32, ptr %11818, align 4, !tbaa !5
  %11820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11807, ptr noundef @.str.2, i32 noundef %11808, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 451, ptr noundef %11811, ptr noundef %11814, ptr noundef %11817, i32 noundef %11819) #10
  br label %11838

11821:                                            ; preds = %11799, %11792
  %11822 = load i32, ptr %242, align 4, !tbaa !5
  %11823 = call ptr @__errno_location() #11
  store i32 %11822, ptr %11823, align 4, !tbaa !5
  %11824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11825 = load i32, ptr @test_count, align 4, !tbaa !5
  %11826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11827 = load i32, ptr %11826, align 4, !tbaa !5
  %11828 = call ptr @s2n_strerror(i32 noundef %11827, ptr noundef @.str.4)
  %11829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11830 = load i32, ptr %11829, align 4, !tbaa !5
  %11831 = call ptr @s2n_strerror_debug(i32 noundef %11830, ptr noundef @.str.4)
  %11832 = call ptr @__errno_location() #11
  %11833 = load i32, ptr %11832, align 4, !tbaa !5
  %11834 = call ptr @strerror(i32 noundef %11833) #10
  %11835 = call ptr @__errno_location() #11
  %11836 = load i32, ptr %11835, align 4, !tbaa !5
  %11837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11824, ptr noundef @.str.5, i32 noundef %11825, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 451, ptr noundef %11828, ptr noundef %11831, ptr noundef %11834, i32 noundef %11836) #10
  br label %11838

11838:                                            ; preds = %11821, %11804
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #10
  br label %11839

11839:                                            ; preds = %11838
  br label %11840

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

11841:                                            ; No predecessors!
  br label %11842

11842:                                            ; preds = %11841
  br label %11843

11843:                                            ; preds = %11842, %11784
  br label %11844

11844:                                            ; preds = %11843
  br label %11845

11845:                                            ; preds = %11844
  br label %11846

11846:                                            ; preds = %11845
  %11847 = load i32, ptr @test_count, align 4, !tbaa !5
  %11848 = add nsw i32 %11847, 1
  store i32 %11848, ptr @test_count, align 4, !tbaa !5
  %11849 = load ptr, ptr %230, align 8, !tbaa !9
  %11850 = getelementptr inbounds %struct.s2n_connection, ptr %11849, i32 0, i32 52
  %11851 = getelementptr inbounds %struct.s2n_handshake, ptr %11850, i32 0, i32 0
  %11852 = load ptr, ptr %223, align 8, !tbaa !9
  %11853 = getelementptr inbounds %struct.s2n_connection, ptr %11852, i32 0, i32 52
  %11854 = getelementptr inbounds %struct.s2n_handshake, ptr %11853, i32 0, i32 0
  %11855 = load ptr, ptr %230, align 8, !tbaa !9
  %11856 = getelementptr inbounds %struct.s2n_connection, ptr %11855, i32 0, i32 52
  %11857 = getelementptr inbounds %struct.s2n_handshake, ptr %11856, i32 0, i32 0
  %11858 = getelementptr inbounds %struct.s2n_stuffer, ptr %11857, i32 0, i32 2
  %11859 = load i32, ptr %11858, align 4, !tbaa !51
  %11860 = load ptr, ptr %230, align 8, !tbaa !9
  %11861 = getelementptr inbounds %struct.s2n_connection, ptr %11860, i32 0, i32 52
  %11862 = getelementptr inbounds %struct.s2n_handshake, ptr %11861, i32 0, i32 0
  %11863 = getelementptr inbounds %struct.s2n_stuffer, ptr %11862, i32 0, i32 1
  %11864 = load i32, ptr %11863, align 8, !tbaa !52
  %11865 = sub i32 %11859, %11864
  %11866 = call i32 @s2n_stuffer_copy(ptr noundef %11851, ptr noundef %11854, i32 noundef %11865)
  %11867 = icmp eq i32 %11866, -1
  br i1 %11867, label %11868, label %11921

11868:                                            ; preds = %11846
  br label %11869

11869:                                            ; preds = %11868
  br label %11870

11870:                                            ; preds = %11869
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #10
  %11871 = call ptr @__errno_location() #11
  %11872 = load i32, ptr %11871, align 4, !tbaa !5
  store i32 %11872, ptr %243, align 4, !tbaa !5
  %11873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11874 = call i32 @s2n_print_stacktrace(ptr noundef %11873)
  %11875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11876 = trunc i8 %11875 to i1
  br i1 %11876, label %11877, label %11899

11877:                                            ; preds = %11870
  %11878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11879 = call i32 @fileno(ptr noundef %11878) #10
  %11880 = call i32 @isatty(i32 noundef %11879) #10
  %11881 = icmp ne i32 %11880, 0
  br i1 %11881, label %11882, label %11899

11882:                                            ; preds = %11877
  %11883 = load i32, ptr %243, align 4, !tbaa !5
  %11884 = call ptr @__errno_location() #11
  store i32 %11883, ptr %11884, align 4, !tbaa !5
  %11885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11886 = load i32, ptr @test_count, align 4, !tbaa !5
  %11887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11888 = load i32, ptr %11887, align 4, !tbaa !5
  %11889 = call ptr @s2n_strerror(i32 noundef %11888, ptr noundef @.str.4)
  %11890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11891 = load i32, ptr %11890, align 4, !tbaa !5
  %11892 = call ptr @s2n_strerror_debug(i32 noundef %11891, ptr noundef @.str.4)
  %11893 = call ptr @__errno_location() #11
  %11894 = load i32, ptr %11893, align 4, !tbaa !5
  %11895 = call ptr @strerror(i32 noundef %11894) #10
  %11896 = call ptr @__errno_location() #11
  %11897 = load i32, ptr %11896, align 4, !tbaa !5
  %11898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11885, ptr noundef @.str.2, i32 noundef %11886, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 453, ptr noundef %11889, ptr noundef %11892, ptr noundef %11895, i32 noundef %11897) #10
  br label %11916

11899:                                            ; preds = %11877, %11870
  %11900 = load i32, ptr %243, align 4, !tbaa !5
  %11901 = call ptr @__errno_location() #11
  store i32 %11900, ptr %11901, align 4, !tbaa !5
  %11902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11903 = load i32, ptr @test_count, align 4, !tbaa !5
  %11904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11905 = load i32, ptr %11904, align 4, !tbaa !5
  %11906 = call ptr @s2n_strerror(i32 noundef %11905, ptr noundef @.str.4)
  %11907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11908 = load i32, ptr %11907, align 4, !tbaa !5
  %11909 = call ptr @s2n_strerror_debug(i32 noundef %11908, ptr noundef @.str.4)
  %11910 = call ptr @__errno_location() #11
  %11911 = load i32, ptr %11910, align 4, !tbaa !5
  %11912 = call ptr @strerror(i32 noundef %11911) #10
  %11913 = call ptr @__errno_location() #11
  %11914 = load i32, ptr %11913, align 4, !tbaa !5
  %11915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11902, ptr noundef @.str.5, i32 noundef %11903, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 453, ptr noundef %11906, ptr noundef %11909, ptr noundef %11912, i32 noundef %11914) #10
  br label %11916

11916:                                            ; preds = %11899, %11882
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #10
  br label %11917

11917:                                            ; preds = %11916
  br label %11918

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

11919:                                            ; No predecessors!
  br label %11920

11920:                                            ; preds = %11919
  br label %11921

11921:                                            ; preds = %11920, %11846
  br label %11922

11922:                                            ; preds = %11921
  br label %11923

11923:                                            ; preds = %11922
  br label %11924

11924:                                            ; preds = %11923
  %11925 = load i32, ptr @test_count, align 4, !tbaa !5
  %11926 = add nsw i32 %11925, 1
  store i32 %11926, ptr @test_count, align 4, !tbaa !5
  %11927 = load ptr, ptr %223, align 8, !tbaa !9
  %11928 = call i32 @s2n_server_hello_recv(ptr noundef %11927)
  %11929 = icmp eq i32 %11928, -1
  br i1 %11929, label %11930, label %11983

11930:                                            ; preds = %11924
  br label %11931

11931:                                            ; preds = %11930
  br label %11932

11932:                                            ; preds = %11931
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #10
  %11933 = call ptr @__errno_location() #11
  %11934 = load i32, ptr %11933, align 4, !tbaa !5
  store i32 %11934, ptr %244, align 4, !tbaa !5
  %11935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11936 = call i32 @s2n_print_stacktrace(ptr noundef %11935)
  %11937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11938 = trunc i8 %11937 to i1
  br i1 %11938, label %11939, label %11961

11939:                                            ; preds = %11932
  %11940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11941 = call i32 @fileno(ptr noundef %11940) #10
  %11942 = call i32 @isatty(i32 noundef %11941) #10
  %11943 = icmp ne i32 %11942, 0
  br i1 %11943, label %11944, label %11961

11944:                                            ; preds = %11939
  %11945 = load i32, ptr %244, align 4, !tbaa !5
  %11946 = call ptr @__errno_location() #11
  store i32 %11945, ptr %11946, align 4, !tbaa !5
  %11947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11948 = load i32, ptr @test_count, align 4, !tbaa !5
  %11949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11950 = load i32, ptr %11949, align 4, !tbaa !5
  %11951 = call ptr @s2n_strerror(i32 noundef %11950, ptr noundef @.str.4)
  %11952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11953 = load i32, ptr %11952, align 4, !tbaa !5
  %11954 = call ptr @s2n_strerror_debug(i32 noundef %11953, ptr noundef @.str.4)
  %11955 = call ptr @__errno_location() #11
  %11956 = load i32, ptr %11955, align 4, !tbaa !5
  %11957 = call ptr @strerror(i32 noundef %11956) #10
  %11958 = call ptr @__errno_location() #11
  %11959 = load i32, ptr %11958, align 4, !tbaa !5
  %11960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11947, ptr noundef @.str.2, i32 noundef %11948, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 454, ptr noundef %11951, ptr noundef %11954, ptr noundef %11957, i32 noundef %11959) #10
  br label %11978

11961:                                            ; preds = %11939, %11932
  %11962 = load i32, ptr %244, align 4, !tbaa !5
  %11963 = call ptr @__errno_location() #11
  store i32 %11962, ptr %11963, align 4, !tbaa !5
  %11964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11965 = load i32, ptr @test_count, align 4, !tbaa !5
  %11966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11967 = load i32, ptr %11966, align 4, !tbaa !5
  %11968 = call ptr @s2n_strerror(i32 noundef %11967, ptr noundef @.str.4)
  %11969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11970 = load i32, ptr %11969, align 4, !tbaa !5
  %11971 = call ptr @s2n_strerror_debug(i32 noundef %11970, ptr noundef @.str.4)
  %11972 = call ptr @__errno_location() #11
  %11973 = load i32, ptr %11972, align 4, !tbaa !5
  %11974 = call ptr @strerror(i32 noundef %11973) #10
  %11975 = call ptr @__errno_location() #11
  %11976 = load i32, ptr %11975, align 4, !tbaa !5
  %11977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11964, ptr noundef @.str.5, i32 noundef %11965, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 454, ptr noundef %11968, ptr noundef %11971, ptr noundef %11974, i32 noundef %11976) #10
  br label %11978

11978:                                            ; preds = %11961, %11944
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #10
  br label %11979

11979:                                            ; preds = %11978
  br label %11980

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

11981:                                            ; No predecessors!
  br label %11982

11982:                                            ; preds = %11981
  br label %11983

11983:                                            ; preds = %11982, %11924
  br label %11984

11984:                                            ; preds = %11983
  br label %11985

11985:                                            ; preds = %11984
  br label %11986

11986:                                            ; preds = %11985
  %11987 = load i32, ptr @test_count, align 4, !tbaa !5
  %11988 = add nsw i32 %11987, 1
  store i32 %11988, ptr @test_count, align 4, !tbaa !5
  %11989 = load ptr, ptr %223, align 8, !tbaa !9
  %11990 = getelementptr inbounds %struct.s2n_connection, ptr %11989, i32 0, i32 89
  %11991 = load i32, ptr %11990, align 8, !tbaa !48
  %11992 = icmp eq i32 %11991, 4
  br i1 %11992, label %12046, label %11993

11993:                                            ; preds = %11986
  br label %11994

11994:                                            ; preds = %11993
  br label %11995

11995:                                            ; preds = %11994
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #10
  %11996 = call ptr @__errno_location() #11
  %11997 = load i32, ptr %11996, align 4, !tbaa !5
  store i32 %11997, ptr %245, align 4, !tbaa !5
  %11998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11999 = call i32 @s2n_print_stacktrace(ptr noundef %11998)
  %12000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12001 = trunc i8 %12000 to i1
  br i1 %12001, label %12002, label %12024

12002:                                            ; preds = %11995
  %12003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12004 = call i32 @fileno(ptr noundef %12003) #10
  %12005 = call i32 @isatty(i32 noundef %12004) #10
  %12006 = icmp ne i32 %12005, 0
  br i1 %12006, label %12007, label %12024

12007:                                            ; preds = %12002
  %12008 = load i32, ptr %245, align 4, !tbaa !5
  %12009 = call ptr @__errno_location() #11
  store i32 %12008, ptr %12009, align 4, !tbaa !5
  %12010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12011 = load i32, ptr @test_count, align 4, !tbaa !5
  %12012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12013 = load i32, ptr %12012, align 4, !tbaa !5
  %12014 = call ptr @s2n_strerror(i32 noundef %12013, ptr noundef @.str.4)
  %12015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12016 = load i32, ptr %12015, align 4, !tbaa !5
  %12017 = call ptr @s2n_strerror_debug(i32 noundef %12016, ptr noundef @.str.4)
  %12018 = call ptr @__errno_location() #11
  %12019 = load i32, ptr %12018, align 4, !tbaa !5
  %12020 = call ptr @strerror(i32 noundef %12019) #10
  %12021 = call ptr @__errno_location() #11
  %12022 = load i32, ptr %12021, align 4, !tbaa !5
  %12023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12010, ptr noundef @.str.2, i32 noundef %12011, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 455, ptr noundef %12014, ptr noundef %12017, ptr noundef %12020, i32 noundef %12022) #10
  br label %12041

12024:                                            ; preds = %12002, %11995
  %12025 = load i32, ptr %245, align 4, !tbaa !5
  %12026 = call ptr @__errno_location() #11
  store i32 %12025, ptr %12026, align 4, !tbaa !5
  %12027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12028 = load i32, ptr @test_count, align 4, !tbaa !5
  %12029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12030 = load i32, ptr %12029, align 4, !tbaa !5
  %12031 = call ptr @s2n_strerror(i32 noundef %12030, ptr noundef @.str.4)
  %12032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12033 = load i32, ptr %12032, align 4, !tbaa !5
  %12034 = call ptr @s2n_strerror_debug(i32 noundef %12033, ptr noundef @.str.4)
  %12035 = call ptr @__errno_location() #11
  %12036 = load i32, ptr %12035, align 4, !tbaa !5
  %12037 = call ptr @strerror(i32 noundef %12036) #10
  %12038 = call ptr @__errno_location() #11
  %12039 = load i32, ptr %12038, align 4, !tbaa !5
  %12040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12027, ptr noundef @.str.5, i32 noundef %12028, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 455, ptr noundef %12031, ptr noundef %12034, ptr noundef %12037, i32 noundef %12039) #10
  br label %12041

12041:                                            ; preds = %12024, %12007
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #10
  br label %12042

12042:                                            ; preds = %12041
  br label %12043

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

12044:                                            ; No predecessors!
  br label %12045

12045:                                            ; preds = %12044
  br label %12046

12046:                                            ; preds = %12045, %11986
  br label %12047

12047:                                            ; preds = %12046
  br label %12048

12048:                                            ; preds = %12047
  br label %12049

12049:                                            ; preds = %12048
  %12050 = load i32, ptr @test_count, align 4, !tbaa !5
  %12051 = add nsw i32 %12050, 1
  store i32 %12051, ptr @test_count, align 4, !tbaa !5
  %12052 = load ptr, ptr %223, align 8, !tbaa !9
  %12053 = call i32 @s2n_client_hello_send(ptr noundef %12052)
  %12054 = icmp eq i32 %12053, -1
  br i1 %12054, label %12055, label %12108

12055:                                            ; preds = %12049
  br label %12056

12056:                                            ; preds = %12055
  br label %12057

12057:                                            ; preds = %12056
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #10
  %12058 = call ptr @__errno_location() #11
  %12059 = load i32, ptr %12058, align 4, !tbaa !5
  store i32 %12059, ptr %246, align 4, !tbaa !5
  %12060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12061 = call i32 @s2n_print_stacktrace(ptr noundef %12060)
  %12062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12063 = trunc i8 %12062 to i1
  br i1 %12063, label %12064, label %12086

12064:                                            ; preds = %12057
  %12065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12066 = call i32 @fileno(ptr noundef %12065) #10
  %12067 = call i32 @isatty(i32 noundef %12066) #10
  %12068 = icmp ne i32 %12067, 0
  br i1 %12068, label %12069, label %12086

12069:                                            ; preds = %12064
  %12070 = load i32, ptr %246, align 4, !tbaa !5
  %12071 = call ptr @__errno_location() #11
  store i32 %12070, ptr %12071, align 4, !tbaa !5
  %12072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12073 = load i32, ptr @test_count, align 4, !tbaa !5
  %12074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12075 = load i32, ptr %12074, align 4, !tbaa !5
  %12076 = call ptr @s2n_strerror(i32 noundef %12075, ptr noundef @.str.4)
  %12077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12078 = load i32, ptr %12077, align 4, !tbaa !5
  %12079 = call ptr @s2n_strerror_debug(i32 noundef %12078, ptr noundef @.str.4)
  %12080 = call ptr @__errno_location() #11
  %12081 = load i32, ptr %12080, align 4, !tbaa !5
  %12082 = call ptr @strerror(i32 noundef %12081) #10
  %12083 = call ptr @__errno_location() #11
  %12084 = load i32, ptr %12083, align 4, !tbaa !5
  %12085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12072, ptr noundef @.str.2, i32 noundef %12073, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12076, ptr noundef %12079, ptr noundef %12082, i32 noundef %12084) #10
  br label %12103

12086:                                            ; preds = %12064, %12057
  %12087 = load i32, ptr %246, align 4, !tbaa !5
  %12088 = call ptr @__errno_location() #11
  store i32 %12087, ptr %12088, align 4, !tbaa !5
  %12089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12090 = load i32, ptr @test_count, align 4, !tbaa !5
  %12091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12092 = load i32, ptr %12091, align 4, !tbaa !5
  %12093 = call ptr @s2n_strerror(i32 noundef %12092, ptr noundef @.str.4)
  %12094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12095 = load i32, ptr %12094, align 4, !tbaa !5
  %12096 = call ptr @s2n_strerror_debug(i32 noundef %12095, ptr noundef @.str.4)
  %12097 = call ptr @__errno_location() #11
  %12098 = load i32, ptr %12097, align 4, !tbaa !5
  %12099 = call ptr @strerror(i32 noundef %12098) #10
  %12100 = call ptr @__errno_location() #11
  %12101 = load i32, ptr %12100, align 4, !tbaa !5
  %12102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12089, ptr noundef @.str.5, i32 noundef %12090, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12093, ptr noundef %12096, ptr noundef %12099, i32 noundef %12101) #10
  br label %12103

12103:                                            ; preds = %12086, %12069
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #10
  br label %12104

12104:                                            ; preds = %12103
  br label %12105

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

12106:                                            ; No predecessors!
  br label %12107

12107:                                            ; preds = %12106
  br label %12108

12108:                                            ; preds = %12107, %12049
  br label %12109

12109:                                            ; preds = %12108
  br label %12110

12110:                                            ; preds = %12109
  br label %12111

12111:                                            ; preds = %12110
  %12112 = load i32, ptr @test_count, align 4, !tbaa !5
  %12113 = add nsw i32 %12112, 1
  store i32 %12113, ptr @test_count, align 4, !tbaa !5
  %12114 = load ptr, ptr %223, align 8, !tbaa !9
  %12115 = getelementptr inbounds %struct.s2n_connection, ptr %12114, i32 0, i32 89
  %12116 = load i32, ptr %12115, align 8, !tbaa !48
  %12117 = icmp eq i32 %12116, 4
  br i1 %12117, label %12171, label %12118

12118:                                            ; preds = %12111
  br label %12119

12119:                                            ; preds = %12118
  br label %12120

12120:                                            ; preds = %12119
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #10
  %12121 = call ptr @__errno_location() #11
  %12122 = load i32, ptr %12121, align 4, !tbaa !5
  store i32 %12122, ptr %247, align 4, !tbaa !5
  %12123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12124 = call i32 @s2n_print_stacktrace(ptr noundef %12123)
  %12125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12126 = trunc i8 %12125 to i1
  br i1 %12126, label %12127, label %12149

12127:                                            ; preds = %12120
  %12128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12129 = call i32 @fileno(ptr noundef %12128) #10
  %12130 = call i32 @isatty(i32 noundef %12129) #10
  %12131 = icmp ne i32 %12130, 0
  br i1 %12131, label %12132, label %12149

12132:                                            ; preds = %12127
  %12133 = load i32, ptr %247, align 4, !tbaa !5
  %12134 = call ptr @__errno_location() #11
  store i32 %12133, ptr %12134, align 4, !tbaa !5
  %12135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12136 = load i32, ptr @test_count, align 4, !tbaa !5
  %12137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12138 = load i32, ptr %12137, align 4, !tbaa !5
  %12139 = call ptr @s2n_strerror(i32 noundef %12138, ptr noundef @.str.4)
  %12140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12141 = load i32, ptr %12140, align 4, !tbaa !5
  %12142 = call ptr @s2n_strerror_debug(i32 noundef %12141, ptr noundef @.str.4)
  %12143 = call ptr @__errno_location() #11
  %12144 = load i32, ptr %12143, align 4, !tbaa !5
  %12145 = call ptr @strerror(i32 noundef %12144) #10
  %12146 = call ptr @__errno_location() #11
  %12147 = load i32, ptr %12146, align 4, !tbaa !5
  %12148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12135, ptr noundef @.str.2, i32 noundef %12136, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 458, ptr noundef %12139, ptr noundef %12142, ptr noundef %12145, i32 noundef %12147) #10
  br label %12166

12149:                                            ; preds = %12127, %12120
  %12150 = load i32, ptr %247, align 4, !tbaa !5
  %12151 = call ptr @__errno_location() #11
  store i32 %12150, ptr %12151, align 4, !tbaa !5
  %12152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12153 = load i32, ptr @test_count, align 4, !tbaa !5
  %12154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12155 = load i32, ptr %12154, align 4, !tbaa !5
  %12156 = call ptr @s2n_strerror(i32 noundef %12155, ptr noundef @.str.4)
  %12157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12158 = load i32, ptr %12157, align 4, !tbaa !5
  %12159 = call ptr @s2n_strerror_debug(i32 noundef %12158, ptr noundef @.str.4)
  %12160 = call ptr @__errno_location() #11
  %12161 = load i32, ptr %12160, align 4, !tbaa !5
  %12162 = call ptr @strerror(i32 noundef %12161) #10
  %12163 = call ptr @__errno_location() #11
  %12164 = load i32, ptr %12163, align 4, !tbaa !5
  %12165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12152, ptr noundef @.str.5, i32 noundef %12153, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 458, ptr noundef %12156, ptr noundef %12159, ptr noundef %12162, i32 noundef %12164) #10
  br label %12166

12166:                                            ; preds = %12149, %12132
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #10
  br label %12167

12167:                                            ; preds = %12166
  br label %12168

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

12169:                                            ; No predecessors!
  br label %12170

12170:                                            ; preds = %12169
  br label %12171

12171:                                            ; preds = %12170, %12111
  br label %12172

12172:                                            ; preds = %12171
  br label %12173

12173:                                            ; preds = %12172
  br label %12174

12174:                                            ; preds = %12173
  %12175 = load i32, ptr @test_count, align 4, !tbaa !5
  %12176 = add nsw i32 %12175, 1
  store i32 %12176, ptr @test_count, align 4, !tbaa !5
  %12177 = load ptr, ptr %223, align 8, !tbaa !9
  %12178 = call i32 @s2n_connection_free(ptr noundef %12177)
  %12179 = icmp eq i32 %12178, -1
  br i1 %12179, label %12180, label %12233

12180:                                            ; preds = %12174
  br label %12181

12181:                                            ; preds = %12180
  br label %12182

12182:                                            ; preds = %12181
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #10
  %12183 = call ptr @__errno_location() #11
  %12184 = load i32, ptr %12183, align 4, !tbaa !5
  store i32 %12184, ptr %248, align 4, !tbaa !5
  %12185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12186 = call i32 @s2n_print_stacktrace(ptr noundef %12185)
  %12187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12188 = trunc i8 %12187 to i1
  br i1 %12188, label %12189, label %12211

12189:                                            ; preds = %12182
  %12190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12191 = call i32 @fileno(ptr noundef %12190) #10
  %12192 = call i32 @isatty(i32 noundef %12191) #10
  %12193 = icmp ne i32 %12192, 0
  br i1 %12193, label %12194, label %12211

12194:                                            ; preds = %12189
  %12195 = load i32, ptr %248, align 4, !tbaa !5
  %12196 = call ptr @__errno_location() #11
  store i32 %12195, ptr %12196, align 4, !tbaa !5
  %12197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12198 = load i32, ptr @test_count, align 4, !tbaa !5
  %12199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12200 = load i32, ptr %12199, align 4, !tbaa !5
  %12201 = call ptr @s2n_strerror(i32 noundef %12200, ptr noundef @.str.4)
  %12202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12203 = load i32, ptr %12202, align 4, !tbaa !5
  %12204 = call ptr @s2n_strerror_debug(i32 noundef %12203, ptr noundef @.str.4)
  %12205 = call ptr @__errno_location() #11
  %12206 = load i32, ptr %12205, align 4, !tbaa !5
  %12207 = call ptr @strerror(i32 noundef %12206) #10
  %12208 = call ptr @__errno_location() #11
  %12209 = load i32, ptr %12208, align 4, !tbaa !5
  %12210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12197, ptr noundef @.str.2, i32 noundef %12198, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 460, ptr noundef %12201, ptr noundef %12204, ptr noundef %12207, i32 noundef %12209) #10
  br label %12228

12211:                                            ; preds = %12189, %12182
  %12212 = load i32, ptr %248, align 4, !tbaa !5
  %12213 = call ptr @__errno_location() #11
  store i32 %12212, ptr %12213, align 4, !tbaa !5
  %12214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12215 = load i32, ptr @test_count, align 4, !tbaa !5
  %12216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12217 = load i32, ptr %12216, align 4, !tbaa !5
  %12218 = call ptr @s2n_strerror(i32 noundef %12217, ptr noundef @.str.4)
  %12219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12220 = load i32, ptr %12219, align 4, !tbaa !5
  %12221 = call ptr @s2n_strerror_debug(i32 noundef %12220, ptr noundef @.str.4)
  %12222 = call ptr @__errno_location() #11
  %12223 = load i32, ptr %12222, align 4, !tbaa !5
  %12224 = call ptr @strerror(i32 noundef %12223) #10
  %12225 = call ptr @__errno_location() #11
  %12226 = load i32, ptr %12225, align 4, !tbaa !5
  %12227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12214, ptr noundef @.str.5, i32 noundef %12215, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 460, ptr noundef %12218, ptr noundef %12221, ptr noundef %12224, i32 noundef %12226) #10
  br label %12228

12228:                                            ; preds = %12211, %12194
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #10
  br label %12229

12229:                                            ; preds = %12228
  br label %12230

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

12231:                                            ; No predecessors!
  br label %12232

12232:                                            ; preds = %12231
  br label %12233

12233:                                            ; preds = %12232, %12174
  br label %12234

12234:                                            ; preds = %12233
  br label %12235

12235:                                            ; preds = %12234
  br label %12236

12236:                                            ; preds = %12235
  %12237 = load i32, ptr @test_count, align 4, !tbaa !5
  %12238 = add nsw i32 %12237, 1
  store i32 %12238, ptr @test_count, align 4, !tbaa !5
  %12239 = load ptr, ptr %230, align 8, !tbaa !9
  %12240 = call i32 @s2n_connection_free(ptr noundef %12239)
  %12241 = icmp eq i32 %12240, -1
  br i1 %12241, label %12242, label %12295

12242:                                            ; preds = %12236
  br label %12243

12243:                                            ; preds = %12242
  br label %12244

12244:                                            ; preds = %12243
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #10
  %12245 = call ptr @__errno_location() #11
  %12246 = load i32, ptr %12245, align 4, !tbaa !5
  store i32 %12246, ptr %249, align 4, !tbaa !5
  %12247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12248 = call i32 @s2n_print_stacktrace(ptr noundef %12247)
  %12249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12250 = trunc i8 %12249 to i1
  br i1 %12250, label %12251, label %12273

12251:                                            ; preds = %12244
  %12252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12253 = call i32 @fileno(ptr noundef %12252) #10
  %12254 = call i32 @isatty(i32 noundef %12253) #10
  %12255 = icmp ne i32 %12254, 0
  br i1 %12255, label %12256, label %12273

12256:                                            ; preds = %12251
  %12257 = load i32, ptr %249, align 4, !tbaa !5
  %12258 = call ptr @__errno_location() #11
  store i32 %12257, ptr %12258, align 4, !tbaa !5
  %12259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12260 = load i32, ptr @test_count, align 4, !tbaa !5
  %12261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12262 = load i32, ptr %12261, align 4, !tbaa !5
  %12263 = call ptr @s2n_strerror(i32 noundef %12262, ptr noundef @.str.4)
  %12264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12265 = load i32, ptr %12264, align 4, !tbaa !5
  %12266 = call ptr @s2n_strerror_debug(i32 noundef %12265, ptr noundef @.str.4)
  %12267 = call ptr @__errno_location() #11
  %12268 = load i32, ptr %12267, align 4, !tbaa !5
  %12269 = call ptr @strerror(i32 noundef %12268) #10
  %12270 = call ptr @__errno_location() #11
  %12271 = load i32, ptr %12270, align 4, !tbaa !5
  %12272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12259, ptr noundef @.str.2, i32 noundef %12260, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 461, ptr noundef %12263, ptr noundef %12266, ptr noundef %12269, i32 noundef %12271) #10
  br label %12290

12273:                                            ; preds = %12251, %12244
  %12274 = load i32, ptr %249, align 4, !tbaa !5
  %12275 = call ptr @__errno_location() #11
  store i32 %12274, ptr %12275, align 4, !tbaa !5
  %12276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12277 = load i32, ptr @test_count, align 4, !tbaa !5
  %12278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12279 = load i32, ptr %12278, align 4, !tbaa !5
  %12280 = call ptr @s2n_strerror(i32 noundef %12279, ptr noundef @.str.4)
  %12281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12282 = load i32, ptr %12281, align 4, !tbaa !5
  %12283 = call ptr @s2n_strerror_debug(i32 noundef %12282, ptr noundef @.str.4)
  %12284 = call ptr @__errno_location() #11
  %12285 = load i32, ptr %12284, align 4, !tbaa !5
  %12286 = call ptr @strerror(i32 noundef %12285) #10
  %12287 = call ptr @__errno_location() #11
  %12288 = load i32, ptr %12287, align 4, !tbaa !5
  %12289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12276, ptr noundef @.str.5, i32 noundef %12277, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 461, ptr noundef %12280, ptr noundef %12283, ptr noundef %12286, i32 noundef %12288) #10
  br label %12290

12290:                                            ; preds = %12273, %12256
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #10
  br label %12291

12291:                                            ; preds = %12290
  br label %12292

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

12293:                                            ; No predecessors!
  br label %12294

12294:                                            ; preds = %12293
  br label %12295

12295:                                            ; preds = %12294, %12236
  br label %12296

12296:                                            ; preds = %12295
  br label %12297

12297:                                            ; preds = %12296
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %223) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #10
  %12298 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %12298, ptr %250, align 8, !tbaa !9
  br label %12299

12299:                                            ; preds = %12297
  %12300 = load i32, ptr @test_count, align 4, !tbaa !5
  %12301 = add nsw i32 %12300, 1
  store i32 %12301, ptr @test_count, align 4, !tbaa !5
  %12302 = load ptr, ptr %250, align 8, !tbaa !9
  %12303 = icmp eq ptr %12302, null
  br i1 %12303, label %12304, label %12357

12304:                                            ; preds = %12299
  br label %12305

12305:                                            ; preds = %12304
  br label %12306

12306:                                            ; preds = %12305
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #10
  %12307 = call ptr @__errno_location() #11
  %12308 = load i32, ptr %12307, align 4, !tbaa !5
  store i32 %12308, ptr %251, align 4, !tbaa !5
  %12309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12310 = call i32 @s2n_print_stacktrace(ptr noundef %12309)
  %12311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12312 = trunc i8 %12311 to i1
  br i1 %12312, label %12313, label %12335

12313:                                            ; preds = %12306
  %12314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12315 = call i32 @fileno(ptr noundef %12314) #10
  %12316 = call i32 @isatty(i32 noundef %12315) #10
  %12317 = icmp ne i32 %12316, 0
  br i1 %12317, label %12318, label %12335

12318:                                            ; preds = %12313
  %12319 = load i32, ptr %251, align 4, !tbaa !5
  %12320 = call ptr @__errno_location() #11
  store i32 %12319, ptr %12320, align 4, !tbaa !5
  %12321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12322 = load i32, ptr @test_count, align 4, !tbaa !5
  %12323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12324 = load i32, ptr %12323, align 4, !tbaa !5
  %12325 = call ptr @s2n_strerror(i32 noundef %12324, ptr noundef @.str.4)
  %12326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12327 = load i32, ptr %12326, align 4, !tbaa !5
  %12328 = call ptr @s2n_strerror_debug(i32 noundef %12327, ptr noundef @.str.4)
  %12329 = call ptr @__errno_location() #11
  %12330 = load i32, ptr %12329, align 4, !tbaa !5
  %12331 = call ptr @strerror(i32 noundef %12330) #10
  %12332 = call ptr @__errno_location() #11
  %12333 = load i32, ptr %12332, align 4, !tbaa !5
  %12334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12321, ptr noundef @.str.2, i32 noundef %12322, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 467, ptr noundef %12325, ptr noundef %12328, ptr noundef %12331, i32 noundef %12333) #10
  br label %12352

12335:                                            ; preds = %12313, %12306
  %12336 = load i32, ptr %251, align 4, !tbaa !5
  %12337 = call ptr @__errno_location() #11
  store i32 %12336, ptr %12337, align 4, !tbaa !5
  %12338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12339 = load i32, ptr @test_count, align 4, !tbaa !5
  %12340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12341 = load i32, ptr %12340, align 4, !tbaa !5
  %12342 = call ptr @s2n_strerror(i32 noundef %12341, ptr noundef @.str.4)
  %12343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12344 = load i32, ptr %12343, align 4, !tbaa !5
  %12345 = call ptr @s2n_strerror_debug(i32 noundef %12344, ptr noundef @.str.4)
  %12346 = call ptr @__errno_location() #11
  %12347 = load i32, ptr %12346, align 4, !tbaa !5
  %12348 = call ptr @strerror(i32 noundef %12347) #10
  %12349 = call ptr @__errno_location() #11
  %12350 = load i32, ptr %12349, align 4, !tbaa !5
  %12351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12338, ptr noundef @.str.5, i32 noundef %12339, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 467, ptr noundef %12342, ptr noundef %12345, ptr noundef %12348, i32 noundef %12350) #10
  br label %12352

12352:                                            ; preds = %12335, %12318
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #10
  br label %12353

12353:                                            ; preds = %12352
  br label %12354

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

12355:                                            ; No predecessors!
  br label %12356

12356:                                            ; preds = %12355
  br label %12357

12357:                                            ; preds = %12356, %12299
  br label %12358

12358:                                            ; preds = %12357
  br label %12359

12359:                                            ; preds = %12358
  %12360 = load ptr, ptr %250, align 8, !tbaa !9
  %12361 = getelementptr inbounds %struct.s2n_connection, ptr %12360, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %12361, align 8, !tbaa !54
  br label %12362

12362:                                            ; preds = %12359
  %12363 = load i32, ptr @test_count, align 4, !tbaa !5
  %12364 = add nsw i32 %12363, 1
  store i32 %12364, ptr @test_count, align 4, !tbaa !5
  %12365 = load ptr, ptr %250, align 8, !tbaa !9
  %12366 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %12365, i32 noundef 1, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %12367 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  store i32 %12366, ptr %12367, align 4
  %12368 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  %12369 = load i32, ptr %12368, align 4
  %12370 = call zeroext i1 @s2n_result_is_ok(i32 %12369)
  br i1 %12370, label %12424, label %12371

12371:                                            ; preds = %12362
  br label %12372

12372:                                            ; preds = %12371
  br label %12373

12373:                                            ; preds = %12372
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #10
  %12374 = call ptr @__errno_location() #11
  %12375 = load i32, ptr %12374, align 4, !tbaa !5
  store i32 %12375, ptr %253, align 4, !tbaa !5
  %12376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12377 = call i32 @s2n_print_stacktrace(ptr noundef %12376)
  %12378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12379 = trunc i8 %12378 to i1
  br i1 %12379, label %12380, label %12402

12380:                                            ; preds = %12373
  %12381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12382 = call i32 @fileno(ptr noundef %12381) #10
  %12383 = call i32 @isatty(i32 noundef %12382) #10
  %12384 = icmp ne i32 %12383, 0
  br i1 %12384, label %12385, label %12402

12385:                                            ; preds = %12380
  %12386 = load i32, ptr %253, align 4, !tbaa !5
  %12387 = call ptr @__errno_location() #11
  store i32 %12386, ptr %12387, align 4, !tbaa !5
  %12388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12389 = load i32, ptr @test_count, align 4, !tbaa !5
  %12390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12391 = load i32, ptr %12390, align 4, !tbaa !5
  %12392 = call ptr @s2n_strerror(i32 noundef %12391, ptr noundef @.str.4)
  %12393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12394 = load i32, ptr %12393, align 4, !tbaa !5
  %12395 = call ptr @s2n_strerror_debug(i32 noundef %12394, ptr noundef @.str.4)
  %12396 = call ptr @__errno_location() #11
  %12397 = load i32, ptr %12396, align 4, !tbaa !5
  %12398 = call ptr @strerror(i32 noundef %12397) #10
  %12399 = call ptr @__errno_location() #11
  %12400 = load i32, ptr %12399, align 4, !tbaa !5
  %12401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12388, ptr noundef @.str.2, i32 noundef %12389, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 469, ptr noundef %12392, ptr noundef %12395, ptr noundef %12398, i32 noundef %12400) #10
  br label %12419

12402:                                            ; preds = %12380, %12373
  %12403 = load i32, ptr %253, align 4, !tbaa !5
  %12404 = call ptr @__errno_location() #11
  store i32 %12403, ptr %12404, align 4, !tbaa !5
  %12405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12406 = load i32, ptr @test_count, align 4, !tbaa !5
  %12407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12408 = load i32, ptr %12407, align 4, !tbaa !5
  %12409 = call ptr @s2n_strerror(i32 noundef %12408, ptr noundef @.str.4)
  %12410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12411 = load i32, ptr %12410, align 4, !tbaa !5
  %12412 = call ptr @s2n_strerror_debug(i32 noundef %12411, ptr noundef @.str.4)
  %12413 = call ptr @__errno_location() #11
  %12414 = load i32, ptr %12413, align 4, !tbaa !5
  %12415 = call ptr @strerror(i32 noundef %12414) #10
  %12416 = call ptr @__errno_location() #11
  %12417 = load i32, ptr %12416, align 4, !tbaa !5
  %12418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12405, ptr noundef @.str.5, i32 noundef %12406, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 469, ptr noundef %12409, ptr noundef %12412, ptr noundef %12415, i32 noundef %12417) #10
  br label %12419

12419:                                            ; preds = %12402, %12385
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #10
  br label %12420

12420:                                            ; preds = %12419
  br label %12421

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

12422:                                            ; No predecessors!
  br label %12423

12423:                                            ; preds = %12422
  br label %12424

12424:                                            ; preds = %12423, %12362
  br label %12425

12425:                                            ; preds = %12424
  br label %12426

12426:                                            ; preds = %12425
  br label %12427

12427:                                            ; preds = %12426
  %12428 = load i32, ptr @test_count, align 4, !tbaa !5
  %12429 = add nsw i32 %12428, 1
  store i32 %12429, ptr @test_count, align 4, !tbaa !5
  %12430 = load ptr, ptr %250, align 8, !tbaa !9
  %12431 = getelementptr inbounds %struct.s2n_connection, ptr %12430, i32 0, i32 89
  %12432 = load i32, ptr %12431, align 8, !tbaa !48
  %12433 = icmp eq i32 %12432, 0
  br i1 %12433, label %12487, label %12434

12434:                                            ; preds = %12427
  br label %12435

12435:                                            ; preds = %12434
  br label %12436

12436:                                            ; preds = %12435
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #10
  %12437 = call ptr @__errno_location() #11
  %12438 = load i32, ptr %12437, align 4, !tbaa !5
  store i32 %12438, ptr %254, align 4, !tbaa !5
  %12439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12440 = call i32 @s2n_print_stacktrace(ptr noundef %12439)
  %12441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12442 = trunc i8 %12441 to i1
  br i1 %12442, label %12443, label %12465

12443:                                            ; preds = %12436
  %12444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12445 = call i32 @fileno(ptr noundef %12444) #10
  %12446 = call i32 @isatty(i32 noundef %12445) #10
  %12447 = icmp ne i32 %12446, 0
  br i1 %12447, label %12448, label %12465

12448:                                            ; preds = %12443
  %12449 = load i32, ptr %254, align 4, !tbaa !5
  %12450 = call ptr @__errno_location() #11
  store i32 %12449, ptr %12450, align 4, !tbaa !5
  %12451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12452 = load i32, ptr @test_count, align 4, !tbaa !5
  %12453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12454 = load i32, ptr %12453, align 4, !tbaa !5
  %12455 = call ptr @s2n_strerror(i32 noundef %12454, ptr noundef @.str.4)
  %12456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12457 = load i32, ptr %12456, align 4, !tbaa !5
  %12458 = call ptr @s2n_strerror_debug(i32 noundef %12457, ptr noundef @.str.4)
  %12459 = call ptr @__errno_location() #11
  %12460 = load i32, ptr %12459, align 4, !tbaa !5
  %12461 = call ptr @strerror(i32 noundef %12460) #10
  %12462 = call ptr @__errno_location() #11
  %12463 = load i32, ptr %12462, align 4, !tbaa !5
  %12464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12451, ptr noundef @.str.2, i32 noundef %12452, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 470, ptr noundef %12455, ptr noundef %12458, ptr noundef %12461, i32 noundef %12463) #10
  br label %12482

12465:                                            ; preds = %12443, %12436
  %12466 = load i32, ptr %254, align 4, !tbaa !5
  %12467 = call ptr @__errno_location() #11
  store i32 %12466, ptr %12467, align 4, !tbaa !5
  %12468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12469 = load i32, ptr @test_count, align 4, !tbaa !5
  %12470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12471 = load i32, ptr %12470, align 4, !tbaa !5
  %12472 = call ptr @s2n_strerror(i32 noundef %12471, ptr noundef @.str.4)
  %12473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12474 = load i32, ptr %12473, align 4, !tbaa !5
  %12475 = call ptr @s2n_strerror_debug(i32 noundef %12474, ptr noundef @.str.4)
  %12476 = call ptr @__errno_location() #11
  %12477 = load i32, ptr %12476, align 4, !tbaa !5
  %12478 = call ptr @strerror(i32 noundef %12477) #10
  %12479 = call ptr @__errno_location() #11
  %12480 = load i32, ptr %12479, align 4, !tbaa !5
  %12481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12468, ptr noundef @.str.5, i32 noundef %12469, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 470, ptr noundef %12472, ptr noundef %12475, ptr noundef %12478, i32 noundef %12480) #10
  br label %12482

12482:                                            ; preds = %12465, %12448
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #10
  br label %12483

12483:                                            ; preds = %12482
  br label %12484

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

12485:                                            ; No predecessors!
  br label %12486

12486:                                            ; preds = %12485
  br label %12487

12487:                                            ; preds = %12486, %12427
  br label %12488

12488:                                            ; preds = %12487
  br label %12489

12489:                                            ; preds = %12488
  br label %12490

12490:                                            ; preds = %12489
  %12491 = load i32, ptr @test_count, align 4, !tbaa !5
  %12492 = add nsw i32 %12491, 1
  store i32 %12492, ptr @test_count, align 4, !tbaa !5
  %12493 = load ptr, ptr %250, align 8, !tbaa !9
  %12494 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %12493)
  %12495 = icmp eq i32 %12494, -1
  br i1 %12495, label %12496, label %12549

12496:                                            ; preds = %12490
  br label %12497

12497:                                            ; preds = %12496
  br label %12498

12498:                                            ; preds = %12497
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #10
  %12499 = call ptr @__errno_location() #11
  %12500 = load i32, ptr %12499, align 4, !tbaa !5
  store i32 %12500, ptr %255, align 4, !tbaa !5
  %12501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12502 = call i32 @s2n_print_stacktrace(ptr noundef %12501)
  %12503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12504 = trunc i8 %12503 to i1
  br i1 %12504, label %12505, label %12527

12505:                                            ; preds = %12498
  %12506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12507 = call i32 @fileno(ptr noundef %12506) #10
  %12508 = call i32 @isatty(i32 noundef %12507) #10
  %12509 = icmp ne i32 %12508, 0
  br i1 %12509, label %12510, label %12527

12510:                                            ; preds = %12505
  %12511 = load i32, ptr %255, align 4, !tbaa !5
  %12512 = call ptr @__errno_location() #11
  store i32 %12511, ptr %12512, align 4, !tbaa !5
  %12513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12514 = load i32, ptr @test_count, align 4, !tbaa !5
  %12515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12516 = load i32, ptr %12515, align 4, !tbaa !5
  %12517 = call ptr @s2n_strerror(i32 noundef %12516, ptr noundef @.str.4)
  %12518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12519 = load i32, ptr %12518, align 4, !tbaa !5
  %12520 = call ptr @s2n_strerror_debug(i32 noundef %12519, ptr noundef @.str.4)
  %12521 = call ptr @__errno_location() #11
  %12522 = load i32, ptr %12521, align 4, !tbaa !5
  %12523 = call ptr @strerror(i32 noundef %12522) #10
  %12524 = call ptr @__errno_location() #11
  %12525 = load i32, ptr %12524, align 4, !tbaa !5
  %12526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12513, ptr noundef @.str.2, i32 noundef %12514, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 471, ptr noundef %12517, ptr noundef %12520, ptr noundef %12523, i32 noundef %12525) #10
  br label %12544

12527:                                            ; preds = %12505, %12498
  %12528 = load i32, ptr %255, align 4, !tbaa !5
  %12529 = call ptr @__errno_location() #11
  store i32 %12528, ptr %12529, align 4, !tbaa !5
  %12530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12531 = load i32, ptr @test_count, align 4, !tbaa !5
  %12532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12533 = load i32, ptr %12532, align 4, !tbaa !5
  %12534 = call ptr @s2n_strerror(i32 noundef %12533, ptr noundef @.str.4)
  %12535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12536 = load i32, ptr %12535, align 4, !tbaa !5
  %12537 = call ptr @s2n_strerror_debug(i32 noundef %12536, ptr noundef @.str.4)
  %12538 = call ptr @__errno_location() #11
  %12539 = load i32, ptr %12538, align 4, !tbaa !5
  %12540 = call ptr @strerror(i32 noundef %12539) #10
  %12541 = call ptr @__errno_location() #11
  %12542 = load i32, ptr %12541, align 4, !tbaa !5
  %12543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12530, ptr noundef @.str.5, i32 noundef %12531, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 471, ptr noundef %12534, ptr noundef %12537, ptr noundef %12540, i32 noundef %12542) #10
  br label %12544

12544:                                            ; preds = %12527, %12510
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #10
  br label %12545

12545:                                            ; preds = %12544
  br label %12546

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

12547:                                            ; No predecessors!
  br label %12548

12548:                                            ; preds = %12547
  br label %12549

12549:                                            ; preds = %12548, %12490
  br label %12550

12550:                                            ; preds = %12549
  br label %12551

12551:                                            ; preds = %12550
  call void @llvm.lifetime.start.p0(i64 8, ptr %256) #10
  %12552 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12552, ptr %256, align 8, !tbaa !9
  br label %12553

12553:                                            ; preds = %12551
  %12554 = load i32, ptr @test_count, align 4, !tbaa !5
  %12555 = add nsw i32 %12554, 1
  store i32 %12555, ptr @test_count, align 4, !tbaa !5
  %12556 = load ptr, ptr %256, align 8, !tbaa !9
  %12557 = icmp eq ptr %12556, null
  br i1 %12557, label %12558, label %12611

12558:                                            ; preds = %12553
  br label %12559

12559:                                            ; preds = %12558
  br label %12560

12560:                                            ; preds = %12559
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #10
  %12561 = call ptr @__errno_location() #11
  %12562 = load i32, ptr %12561, align 4, !tbaa !5
  store i32 %12562, ptr %257, align 4, !tbaa !5
  %12563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12564 = call i32 @s2n_print_stacktrace(ptr noundef %12563)
  %12565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12566 = trunc i8 %12565 to i1
  br i1 %12566, label %12567, label %12589

12567:                                            ; preds = %12560
  %12568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12569 = call i32 @fileno(ptr noundef %12568) #10
  %12570 = call i32 @isatty(i32 noundef %12569) #10
  %12571 = icmp ne i32 %12570, 0
  br i1 %12571, label %12572, label %12589

12572:                                            ; preds = %12567
  %12573 = load i32, ptr %257, align 4, !tbaa !5
  %12574 = call ptr @__errno_location() #11
  store i32 %12573, ptr %12574, align 4, !tbaa !5
  %12575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12576 = load i32, ptr @test_count, align 4, !tbaa !5
  %12577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12578 = load i32, ptr %12577, align 4, !tbaa !5
  %12579 = call ptr @s2n_strerror(i32 noundef %12578, ptr noundef @.str.4)
  %12580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12581 = load i32, ptr %12580, align 4, !tbaa !5
  %12582 = call ptr @s2n_strerror_debug(i32 noundef %12581, ptr noundef @.str.4)
  %12583 = call ptr @__errno_location() #11
  %12584 = load i32, ptr %12583, align 4, !tbaa !5
  %12585 = call ptr @strerror(i32 noundef %12584) #10
  %12586 = call ptr @__errno_location() #11
  %12587 = load i32, ptr %12586, align 4, !tbaa !5
  %12588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12575, ptr noundef @.str.2, i32 noundef %12576, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 474, ptr noundef %12579, ptr noundef %12582, ptr noundef %12585, i32 noundef %12587) #10
  br label %12606

12589:                                            ; preds = %12567, %12560
  %12590 = load i32, ptr %257, align 4, !tbaa !5
  %12591 = call ptr @__errno_location() #11
  store i32 %12590, ptr %12591, align 4, !tbaa !5
  %12592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12593 = load i32, ptr @test_count, align 4, !tbaa !5
  %12594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12595 = load i32, ptr %12594, align 4, !tbaa !5
  %12596 = call ptr @s2n_strerror(i32 noundef %12595, ptr noundef @.str.4)
  %12597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12598 = load i32, ptr %12597, align 4, !tbaa !5
  %12599 = call ptr @s2n_strerror_debug(i32 noundef %12598, ptr noundef @.str.4)
  %12600 = call ptr @__errno_location() #11
  %12601 = load i32, ptr %12600, align 4, !tbaa !5
  %12602 = call ptr @strerror(i32 noundef %12601) #10
  %12603 = call ptr @__errno_location() #11
  %12604 = load i32, ptr %12603, align 4, !tbaa !5
  %12605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12592, ptr noundef @.str.5, i32 noundef %12593, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 474, ptr noundef %12596, ptr noundef %12599, ptr noundef %12602, i32 noundef %12604) #10
  br label %12606

12606:                                            ; preds = %12589, %12572
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #10
  br label %12607

12607:                                            ; preds = %12606
  br label %12608

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

12609:                                            ; No predecessors!
  br label %12610

12610:                                            ; preds = %12609
  br label %12611

12611:                                            ; preds = %12610, %12553
  br label %12612

12612:                                            ; preds = %12611
  br label %12613

12613:                                            ; preds = %12612
  %12614 = load ptr, ptr %256, align 8, !tbaa !9
  %12615 = getelementptr inbounds %struct.s2n_connection, ptr %12614, i32 0, i32 2
  store ptr @security_policy_test_all_tls13, ptr %12615, align 8, !tbaa !54
  br label %12616

12616:                                            ; preds = %12613
  %12617 = load i32, ptr @test_count, align 4, !tbaa !5
  %12618 = add nsw i32 %12617, 1
  store i32 %12618, ptr @test_count, align 4, !tbaa !5
  %12619 = load ptr, ptr %256, align 8, !tbaa !9
  %12620 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %12619, i32 noundef 1, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %12621 = getelementptr inbounds %struct.s2n_result, ptr %258, i32 0, i32 0
  store i32 %12620, ptr %12621, align 4
  %12622 = getelementptr inbounds %struct.s2n_result, ptr %258, i32 0, i32 0
  %12623 = load i32, ptr %12622, align 4
  %12624 = call zeroext i1 @s2n_result_is_ok(i32 %12623)
  br i1 %12624, label %12678, label %12625

12625:                                            ; preds = %12616
  br label %12626

12626:                                            ; preds = %12625
  br label %12627

12627:                                            ; preds = %12626
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #10
  %12628 = call ptr @__errno_location() #11
  %12629 = load i32, ptr %12628, align 4, !tbaa !5
  store i32 %12629, ptr %259, align 4, !tbaa !5
  %12630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12631 = call i32 @s2n_print_stacktrace(ptr noundef %12630)
  %12632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12633 = trunc i8 %12632 to i1
  br i1 %12633, label %12634, label %12656

12634:                                            ; preds = %12627
  %12635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12636 = call i32 @fileno(ptr noundef %12635) #10
  %12637 = call i32 @isatty(i32 noundef %12636) #10
  %12638 = icmp ne i32 %12637, 0
  br i1 %12638, label %12639, label %12656

12639:                                            ; preds = %12634
  %12640 = load i32, ptr %259, align 4, !tbaa !5
  %12641 = call ptr @__errno_location() #11
  store i32 %12640, ptr %12641, align 4, !tbaa !5
  %12642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12643 = load i32, ptr @test_count, align 4, !tbaa !5
  %12644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12645 = load i32, ptr %12644, align 4, !tbaa !5
  %12646 = call ptr @s2n_strerror(i32 noundef %12645, ptr noundef @.str.4)
  %12647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12648 = load i32, ptr %12647, align 4, !tbaa !5
  %12649 = call ptr @s2n_strerror_debug(i32 noundef %12648, ptr noundef @.str.4)
  %12650 = call ptr @__errno_location() #11
  %12651 = load i32, ptr %12650, align 4, !tbaa !5
  %12652 = call ptr @strerror(i32 noundef %12651) #10
  %12653 = call ptr @__errno_location() #11
  %12654 = load i32, ptr %12653, align 4, !tbaa !5
  %12655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12642, ptr noundef @.str.2, i32 noundef %12643, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 476, ptr noundef %12646, ptr noundef %12649, ptr noundef %12652, i32 noundef %12654) #10
  br label %12673

12656:                                            ; preds = %12634, %12627
  %12657 = load i32, ptr %259, align 4, !tbaa !5
  %12658 = call ptr @__errno_location() #11
  store i32 %12657, ptr %12658, align 4, !tbaa !5
  %12659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12660 = load i32, ptr @test_count, align 4, !tbaa !5
  %12661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12662 = load i32, ptr %12661, align 4, !tbaa !5
  %12663 = call ptr @s2n_strerror(i32 noundef %12662, ptr noundef @.str.4)
  %12664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12665 = load i32, ptr %12664, align 4, !tbaa !5
  %12666 = call ptr @s2n_strerror_debug(i32 noundef %12665, ptr noundef @.str.4)
  %12667 = call ptr @__errno_location() #11
  %12668 = load i32, ptr %12667, align 4, !tbaa !5
  %12669 = call ptr @strerror(i32 noundef %12668) #10
  %12670 = call ptr @__errno_location() #11
  %12671 = load i32, ptr %12670, align 4, !tbaa !5
  %12672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12659, ptr noundef @.str.5, i32 noundef %12660, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 476, ptr noundef %12663, ptr noundef %12666, ptr noundef %12669, i32 noundef %12671) #10
  br label %12673

12673:                                            ; preds = %12656, %12639
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #10
  br label %12674

12674:                                            ; preds = %12673
  br label %12675

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

12676:                                            ; No predecessors!
  br label %12677

12677:                                            ; preds = %12676
  br label %12678

12678:                                            ; preds = %12677, %12616
  br label %12679

12679:                                            ; preds = %12678
  br label %12680

12680:                                            ; preds = %12679
  br label %12681

12681:                                            ; preds = %12680
  %12682 = load i32, ptr @test_count, align 4, !tbaa !5
  %12683 = add nsw i32 %12682, 1
  store i32 %12683, ptr @test_count, align 4, !tbaa !5
  %12684 = load ptr, ptr %256, align 8, !tbaa !9
  %12685 = getelementptr inbounds %struct.s2n_connection, ptr %12684, i32 0, i32 89
  %12686 = load i32, ptr %12685, align 8, !tbaa !48
  %12687 = icmp eq i32 %12686, 0
  br i1 %12687, label %12741, label %12688

12688:                                            ; preds = %12681
  br label %12689

12689:                                            ; preds = %12688
  br label %12690

12690:                                            ; preds = %12689
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #10
  %12691 = call ptr @__errno_location() #11
  %12692 = load i32, ptr %12691, align 4, !tbaa !5
  store i32 %12692, ptr %260, align 4, !tbaa !5
  %12693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12694 = call i32 @s2n_print_stacktrace(ptr noundef %12693)
  %12695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12696 = trunc i8 %12695 to i1
  br i1 %12696, label %12697, label %12719

12697:                                            ; preds = %12690
  %12698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12699 = call i32 @fileno(ptr noundef %12698) #10
  %12700 = call i32 @isatty(i32 noundef %12699) #10
  %12701 = icmp ne i32 %12700, 0
  br i1 %12701, label %12702, label %12719

12702:                                            ; preds = %12697
  %12703 = load i32, ptr %260, align 4, !tbaa !5
  %12704 = call ptr @__errno_location() #11
  store i32 %12703, ptr %12704, align 4, !tbaa !5
  %12705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12706 = load i32, ptr @test_count, align 4, !tbaa !5
  %12707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12708 = load i32, ptr %12707, align 4, !tbaa !5
  %12709 = call ptr @s2n_strerror(i32 noundef %12708, ptr noundef @.str.4)
  %12710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12711 = load i32, ptr %12710, align 4, !tbaa !5
  %12712 = call ptr @s2n_strerror_debug(i32 noundef %12711, ptr noundef @.str.4)
  %12713 = call ptr @__errno_location() #11
  %12714 = load i32, ptr %12713, align 4, !tbaa !5
  %12715 = call ptr @strerror(i32 noundef %12714) #10
  %12716 = call ptr @__errno_location() #11
  %12717 = load i32, ptr %12716, align 4, !tbaa !5
  %12718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12705, ptr noundef @.str.2, i32 noundef %12706, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 477, ptr noundef %12709, ptr noundef %12712, ptr noundef %12715, i32 noundef %12717) #10
  br label %12736

12719:                                            ; preds = %12697, %12690
  %12720 = load i32, ptr %260, align 4, !tbaa !5
  %12721 = call ptr @__errno_location() #11
  store i32 %12720, ptr %12721, align 4, !tbaa !5
  %12722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12723 = load i32, ptr @test_count, align 4, !tbaa !5
  %12724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12725 = load i32, ptr %12724, align 4, !tbaa !5
  %12726 = call ptr @s2n_strerror(i32 noundef %12725, ptr noundef @.str.4)
  %12727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12728 = load i32, ptr %12727, align 4, !tbaa !5
  %12729 = call ptr @s2n_strerror_debug(i32 noundef %12728, ptr noundef @.str.4)
  %12730 = call ptr @__errno_location() #11
  %12731 = load i32, ptr %12730, align 4, !tbaa !5
  %12732 = call ptr @strerror(i32 noundef %12731) #10
  %12733 = call ptr @__errno_location() #11
  %12734 = load i32, ptr %12733, align 4, !tbaa !5
  %12735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12722, ptr noundef @.str.5, i32 noundef %12723, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 477, ptr noundef %12726, ptr noundef %12729, ptr noundef %12732, i32 noundef %12734) #10
  br label %12736

12736:                                            ; preds = %12719, %12702
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #10
  br label %12737

12737:                                            ; preds = %12736
  br label %12738

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

12739:                                            ; No predecessors!
  br label %12740

12740:                                            ; preds = %12739
  br label %12741

12741:                                            ; preds = %12740, %12681
  br label %12742

12742:                                            ; preds = %12741
  br label %12743

12743:                                            ; preds = %12742
  br label %12744

12744:                                            ; preds = %12743
  %12745 = load i32, ptr @test_count, align 4, !tbaa !5
  %12746 = add nsw i32 %12745, 1
  store i32 %12746, ptr @test_count, align 4, !tbaa !5
  %12747 = load ptr, ptr %256, align 8, !tbaa !9
  %12748 = call i32 @s2n_connection_set_early_data_expected(ptr noundef %12747)
  %12749 = icmp eq i32 %12748, -1
  br i1 %12749, label %12750, label %12803

12750:                                            ; preds = %12744
  br label %12751

12751:                                            ; preds = %12750
  br label %12752

12752:                                            ; preds = %12751
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #10
  %12753 = call ptr @__errno_location() #11
  %12754 = load i32, ptr %12753, align 4, !tbaa !5
  store i32 %12754, ptr %261, align 4, !tbaa !5
  %12755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12756 = call i32 @s2n_print_stacktrace(ptr noundef %12755)
  %12757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12758 = trunc i8 %12757 to i1
  br i1 %12758, label %12759, label %12781

12759:                                            ; preds = %12752
  %12760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12761 = call i32 @fileno(ptr noundef %12760) #10
  %12762 = call i32 @isatty(i32 noundef %12761) #10
  %12763 = icmp ne i32 %12762, 0
  br i1 %12763, label %12764, label %12781

12764:                                            ; preds = %12759
  %12765 = load i32, ptr %261, align 4, !tbaa !5
  %12766 = call ptr @__errno_location() #11
  store i32 %12765, ptr %12766, align 4, !tbaa !5
  %12767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12768 = load i32, ptr @test_count, align 4, !tbaa !5
  %12769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12770 = load i32, ptr %12769, align 4, !tbaa !5
  %12771 = call ptr @s2n_strerror(i32 noundef %12770, ptr noundef @.str.4)
  %12772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12773 = load i32, ptr %12772, align 4, !tbaa !5
  %12774 = call ptr @s2n_strerror_debug(i32 noundef %12773, ptr noundef @.str.4)
  %12775 = call ptr @__errno_location() #11
  %12776 = load i32, ptr %12775, align 4, !tbaa !5
  %12777 = call ptr @strerror(i32 noundef %12776) #10
  %12778 = call ptr @__errno_location() #11
  %12779 = load i32, ptr %12778, align 4, !tbaa !5
  %12780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12767, ptr noundef @.str.2, i32 noundef %12768, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 478, ptr noundef %12771, ptr noundef %12774, ptr noundef %12777, i32 noundef %12779) #10
  br label %12798

12781:                                            ; preds = %12759, %12752
  %12782 = load i32, ptr %261, align 4, !tbaa !5
  %12783 = call ptr @__errno_location() #11
  store i32 %12782, ptr %12783, align 4, !tbaa !5
  %12784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12785 = load i32, ptr @test_count, align 4, !tbaa !5
  %12786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12787 = load i32, ptr %12786, align 4, !tbaa !5
  %12788 = call ptr @s2n_strerror(i32 noundef %12787, ptr noundef @.str.4)
  %12789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12790 = load i32, ptr %12789, align 4, !tbaa !5
  %12791 = call ptr @s2n_strerror_debug(i32 noundef %12790, ptr noundef @.str.4)
  %12792 = call ptr @__errno_location() #11
  %12793 = load i32, ptr %12792, align 4, !tbaa !5
  %12794 = call ptr @strerror(i32 noundef %12793) #10
  %12795 = call ptr @__errno_location() #11
  %12796 = load i32, ptr %12795, align 4, !tbaa !5
  %12797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12784, ptr noundef @.str.5, i32 noundef %12785, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 478, ptr noundef %12788, ptr noundef %12791, ptr noundef %12794, i32 noundef %12796) #10
  br label %12798

12798:                                            ; preds = %12781, %12764
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #10
  br label %12799

12799:                                            ; preds = %12798
  br label %12800

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

12801:                                            ; No predecessors!
  br label %12802

12802:                                            ; preds = %12801
  br label %12803

12803:                                            ; preds = %12802, %12744
  br label %12804

12804:                                            ; preds = %12803
  br label %12805

12805:                                            ; preds = %12804
  br label %12806

12806:                                            ; preds = %12805
  %12807 = load i32, ptr @test_count, align 4, !tbaa !5
  %12808 = add nsw i32 %12807, 1
  store i32 %12808, ptr @test_count, align 4, !tbaa !5
  %12809 = load ptr, ptr %250, align 8, !tbaa !9
  %12810 = call i32 @s2n_client_hello_send(ptr noundef %12809)
  %12811 = icmp eq i32 %12810, -1
  br i1 %12811, label %12812, label %12865

12812:                                            ; preds = %12806
  br label %12813

12813:                                            ; preds = %12812
  br label %12814

12814:                                            ; preds = %12813
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #10
  %12815 = call ptr @__errno_location() #11
  %12816 = load i32, ptr %12815, align 4, !tbaa !5
  store i32 %12816, ptr %262, align 4, !tbaa !5
  %12817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12818 = call i32 @s2n_print_stacktrace(ptr noundef %12817)
  %12819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12820 = trunc i8 %12819 to i1
  br i1 %12820, label %12821, label %12843

12821:                                            ; preds = %12814
  %12822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12823 = call i32 @fileno(ptr noundef %12822) #10
  %12824 = call i32 @isatty(i32 noundef %12823) #10
  %12825 = icmp ne i32 %12824, 0
  br i1 %12825, label %12826, label %12843

12826:                                            ; preds = %12821
  %12827 = load i32, ptr %262, align 4, !tbaa !5
  %12828 = call ptr @__errno_location() #11
  store i32 %12827, ptr %12828, align 4, !tbaa !5
  %12829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12830 = load i32, ptr @test_count, align 4, !tbaa !5
  %12831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12832 = load i32, ptr %12831, align 4, !tbaa !5
  %12833 = call ptr @s2n_strerror(i32 noundef %12832, ptr noundef @.str.4)
  %12834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12835 = load i32, ptr %12834, align 4, !tbaa !5
  %12836 = call ptr @s2n_strerror_debug(i32 noundef %12835, ptr noundef @.str.4)
  %12837 = call ptr @__errno_location() #11
  %12838 = load i32, ptr %12837, align 4, !tbaa !5
  %12839 = call ptr @strerror(i32 noundef %12838) #10
  %12840 = call ptr @__errno_location() #11
  %12841 = load i32, ptr %12840, align 4, !tbaa !5
  %12842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12829, ptr noundef @.str.2, i32 noundef %12830, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 480, ptr noundef %12833, ptr noundef %12836, ptr noundef %12839, i32 noundef %12841) #10
  br label %12860

12843:                                            ; preds = %12821, %12814
  %12844 = load i32, ptr %262, align 4, !tbaa !5
  %12845 = call ptr @__errno_location() #11
  store i32 %12844, ptr %12845, align 4, !tbaa !5
  %12846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12847 = load i32, ptr @test_count, align 4, !tbaa !5
  %12848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12849 = load i32, ptr %12848, align 4, !tbaa !5
  %12850 = call ptr @s2n_strerror(i32 noundef %12849, ptr noundef @.str.4)
  %12851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12852 = load i32, ptr %12851, align 4, !tbaa !5
  %12853 = call ptr @s2n_strerror_debug(i32 noundef %12852, ptr noundef @.str.4)
  %12854 = call ptr @__errno_location() #11
  %12855 = load i32, ptr %12854, align 4, !tbaa !5
  %12856 = call ptr @strerror(i32 noundef %12855) #10
  %12857 = call ptr @__errno_location() #11
  %12858 = load i32, ptr %12857, align 4, !tbaa !5
  %12859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12846, ptr noundef @.str.5, i32 noundef %12847, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 480, ptr noundef %12850, ptr noundef %12853, ptr noundef %12856, i32 noundef %12858) #10
  br label %12860

12860:                                            ; preds = %12843, %12826
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #10
  br label %12861

12861:                                            ; preds = %12860
  br label %12862

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

12863:                                            ; No predecessors!
  br label %12864

12864:                                            ; preds = %12863
  br label %12865

12865:                                            ; preds = %12864, %12806
  br label %12866

12866:                                            ; preds = %12865
  br label %12867

12867:                                            ; preds = %12866
  br label %12868

12868:                                            ; preds = %12867
  %12869 = load i32, ptr @test_count, align 4, !tbaa !5
  %12870 = add nsw i32 %12869, 1
  store i32 %12870, ptr @test_count, align 4, !tbaa !5
  %12871 = load ptr, ptr %250, align 8, !tbaa !9
  %12872 = getelementptr inbounds %struct.s2n_connection, ptr %12871, i32 0, i32 52
  %12873 = getelementptr inbounds %struct.s2n_handshake, ptr %12872, i32 0, i32 0
  %12874 = load ptr, ptr %256, align 8, !tbaa !9
  %12875 = getelementptr inbounds %struct.s2n_connection, ptr %12874, i32 0, i32 52
  %12876 = getelementptr inbounds %struct.s2n_handshake, ptr %12875, i32 0, i32 0
  %12877 = load ptr, ptr %250, align 8, !tbaa !9
  %12878 = getelementptr inbounds %struct.s2n_connection, ptr %12877, i32 0, i32 52
  %12879 = getelementptr inbounds %struct.s2n_handshake, ptr %12878, i32 0, i32 0
  %12880 = getelementptr inbounds %struct.s2n_stuffer, ptr %12879, i32 0, i32 2
  %12881 = load i32, ptr %12880, align 4, !tbaa !51
  %12882 = load ptr, ptr %250, align 8, !tbaa !9
  %12883 = getelementptr inbounds %struct.s2n_connection, ptr %12882, i32 0, i32 52
  %12884 = getelementptr inbounds %struct.s2n_handshake, ptr %12883, i32 0, i32 0
  %12885 = getelementptr inbounds %struct.s2n_stuffer, ptr %12884, i32 0, i32 1
  %12886 = load i32, ptr %12885, align 8, !tbaa !52
  %12887 = sub i32 %12881, %12886
  %12888 = call i32 @s2n_stuffer_copy(ptr noundef %12873, ptr noundef %12876, i32 noundef %12887)
  %12889 = icmp eq i32 %12888, -1
  br i1 %12889, label %12890, label %12943

12890:                                            ; preds = %12868
  br label %12891

12891:                                            ; preds = %12890
  br label %12892

12892:                                            ; preds = %12891
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #10
  %12893 = call ptr @__errno_location() #11
  %12894 = load i32, ptr %12893, align 4, !tbaa !5
  store i32 %12894, ptr %263, align 4, !tbaa !5
  %12895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12896 = call i32 @s2n_print_stacktrace(ptr noundef %12895)
  %12897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12898 = trunc i8 %12897 to i1
  br i1 %12898, label %12899, label %12921

12899:                                            ; preds = %12892
  %12900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12901 = call i32 @fileno(ptr noundef %12900) #10
  %12902 = call i32 @isatty(i32 noundef %12901) #10
  %12903 = icmp ne i32 %12902, 0
  br i1 %12903, label %12904, label %12921

12904:                                            ; preds = %12899
  %12905 = load i32, ptr %263, align 4, !tbaa !5
  %12906 = call ptr @__errno_location() #11
  store i32 %12905, ptr %12906, align 4, !tbaa !5
  %12907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12908 = load i32, ptr @test_count, align 4, !tbaa !5
  %12909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12910 = load i32, ptr %12909, align 4, !tbaa !5
  %12911 = call ptr @s2n_strerror(i32 noundef %12910, ptr noundef @.str.4)
  %12912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12913 = load i32, ptr %12912, align 4, !tbaa !5
  %12914 = call ptr @s2n_strerror_debug(i32 noundef %12913, ptr noundef @.str.4)
  %12915 = call ptr @__errno_location() #11
  %12916 = load i32, ptr %12915, align 4, !tbaa !5
  %12917 = call ptr @strerror(i32 noundef %12916) #10
  %12918 = call ptr @__errno_location() #11
  %12919 = load i32, ptr %12918, align 4, !tbaa !5
  %12920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12907, ptr noundef @.str.2, i32 noundef %12908, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 482, ptr noundef %12911, ptr noundef %12914, ptr noundef %12917, i32 noundef %12919) #10
  br label %12938

12921:                                            ; preds = %12899, %12892
  %12922 = load i32, ptr %263, align 4, !tbaa !5
  %12923 = call ptr @__errno_location() #11
  store i32 %12922, ptr %12923, align 4, !tbaa !5
  %12924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12925 = load i32, ptr @test_count, align 4, !tbaa !5
  %12926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12927 = load i32, ptr %12926, align 4, !tbaa !5
  %12928 = call ptr @s2n_strerror(i32 noundef %12927, ptr noundef @.str.4)
  %12929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12930 = load i32, ptr %12929, align 4, !tbaa !5
  %12931 = call ptr @s2n_strerror_debug(i32 noundef %12930, ptr noundef @.str.4)
  %12932 = call ptr @__errno_location() #11
  %12933 = load i32, ptr %12932, align 4, !tbaa !5
  %12934 = call ptr @strerror(i32 noundef %12933) #10
  %12935 = call ptr @__errno_location() #11
  %12936 = load i32, ptr %12935, align 4, !tbaa !5
  %12937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12924, ptr noundef @.str.5, i32 noundef %12925, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 482, ptr noundef %12928, ptr noundef %12931, ptr noundef %12934, i32 noundef %12936) #10
  br label %12938

12938:                                            ; preds = %12921, %12904
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #10
  br label %12939

12939:                                            ; preds = %12938
  br label %12940

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

12941:                                            ; No predecessors!
  br label %12942

12942:                                            ; preds = %12941
  br label %12943

12943:                                            ; preds = %12942, %12868
  br label %12944

12944:                                            ; preds = %12943
  br label %12945

12945:                                            ; preds = %12944
  br label %12946

12946:                                            ; preds = %12945
  %12947 = load i32, ptr @test_count, align 4, !tbaa !5
  %12948 = add nsw i32 %12947, 1
  store i32 %12948, ptr @test_count, align 4, !tbaa !5
  %12949 = load ptr, ptr %256, align 8, !tbaa !9
  %12950 = call i32 @s2n_establish_session(ptr noundef %12949)
  %12951 = icmp eq i32 %12950, -1
  br i1 %12951, label %12952, label %13005

12952:                                            ; preds = %12946
  br label %12953

12953:                                            ; preds = %12952
  br label %12954

12954:                                            ; preds = %12953
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #10
  %12955 = call ptr @__errno_location() #11
  %12956 = load i32, ptr %12955, align 4, !tbaa !5
  store i32 %12956, ptr %264, align 4, !tbaa !5
  %12957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12958 = call i32 @s2n_print_stacktrace(ptr noundef %12957)
  %12959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12960 = trunc i8 %12959 to i1
  br i1 %12960, label %12961, label %12983

12961:                                            ; preds = %12954
  %12962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12963 = call i32 @fileno(ptr noundef %12962) #10
  %12964 = call i32 @isatty(i32 noundef %12963) #10
  %12965 = icmp ne i32 %12964, 0
  br i1 %12965, label %12966, label %12983

12966:                                            ; preds = %12961
  %12967 = load i32, ptr %264, align 4, !tbaa !5
  %12968 = call ptr @__errno_location() #11
  store i32 %12967, ptr %12968, align 4, !tbaa !5
  %12969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12970 = load i32, ptr @test_count, align 4, !tbaa !5
  %12971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12972 = load i32, ptr %12971, align 4, !tbaa !5
  %12973 = call ptr @s2n_strerror(i32 noundef %12972, ptr noundef @.str.4)
  %12974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12975 = load i32, ptr %12974, align 4, !tbaa !5
  %12976 = call ptr @s2n_strerror_debug(i32 noundef %12975, ptr noundef @.str.4)
  %12977 = call ptr @__errno_location() #11
  %12978 = load i32, ptr %12977, align 4, !tbaa !5
  %12979 = call ptr @strerror(i32 noundef %12978) #10
  %12980 = call ptr @__errno_location() #11
  %12981 = load i32, ptr %12980, align 4, !tbaa !5
  %12982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12969, ptr noundef @.str.2, i32 noundef %12970, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 483, ptr noundef %12973, ptr noundef %12976, ptr noundef %12979, i32 noundef %12981) #10
  br label %13000

12983:                                            ; preds = %12961, %12954
  %12984 = load i32, ptr %264, align 4, !tbaa !5
  %12985 = call ptr @__errno_location() #11
  store i32 %12984, ptr %12985, align 4, !tbaa !5
  %12986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12987 = load i32, ptr @test_count, align 4, !tbaa !5
  %12988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12989 = load i32, ptr %12988, align 4, !tbaa !5
  %12990 = call ptr @s2n_strerror(i32 noundef %12989, ptr noundef @.str.4)
  %12991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12992 = load i32, ptr %12991, align 4, !tbaa !5
  %12993 = call ptr @s2n_strerror_debug(i32 noundef %12992, ptr noundef @.str.4)
  %12994 = call ptr @__errno_location() #11
  %12995 = load i32, ptr %12994, align 4, !tbaa !5
  %12996 = call ptr @strerror(i32 noundef %12995) #10
  %12997 = call ptr @__errno_location() #11
  %12998 = load i32, ptr %12997, align 4, !tbaa !5
  %12999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12986, ptr noundef @.str.5, i32 noundef %12987, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 483, ptr noundef %12990, ptr noundef %12993, ptr noundef %12996, i32 noundef %12998) #10
  br label %13000

13000:                                            ; preds = %12983, %12966
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #10
  br label %13001

13001:                                            ; preds = %13000
  br label %13002

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

13003:                                            ; No predecessors!
  br label %13004

13004:                                            ; preds = %13003
  br label %13005

13005:                                            ; preds = %13004, %12946
  br label %13006

13006:                                            ; preds = %13005
  br label %13007

13007:                                            ; preds = %13006
  br label %13008

13008:                                            ; preds = %13007
  %13009 = load i32, ptr @test_count, align 4, !tbaa !5
  %13010 = add nsw i32 %13009, 1
  store i32 %13010, ptr @test_count, align 4, !tbaa !5
  %13011 = load ptr, ptr %250, align 8, !tbaa !9
  %13012 = getelementptr inbounds %struct.s2n_connection, ptr %13011, i32 0, i32 89
  %13013 = load i32, ptr %13012, align 8, !tbaa !48
  %13014 = icmp eq i32 %13013, 1
  br i1 %13014, label %13068, label %13015

13015:                                            ; preds = %13008
  br label %13016

13016:                                            ; preds = %13015
  br label %13017

13017:                                            ; preds = %13016
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #10
  %13018 = call ptr @__errno_location() #11
  %13019 = load i32, ptr %13018, align 4, !tbaa !5
  store i32 %13019, ptr %265, align 4, !tbaa !5
  %13020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13021 = call i32 @s2n_print_stacktrace(ptr noundef %13020)
  %13022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13023 = trunc i8 %13022 to i1
  br i1 %13023, label %13024, label %13046

13024:                                            ; preds = %13017
  %13025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13026 = call i32 @fileno(ptr noundef %13025) #10
  %13027 = call i32 @isatty(i32 noundef %13026) #10
  %13028 = icmp ne i32 %13027, 0
  br i1 %13028, label %13029, label %13046

13029:                                            ; preds = %13024
  %13030 = load i32, ptr %265, align 4, !tbaa !5
  %13031 = call ptr @__errno_location() #11
  store i32 %13030, ptr %13031, align 4, !tbaa !5
  %13032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13033 = load i32, ptr @test_count, align 4, !tbaa !5
  %13034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13035 = load i32, ptr %13034, align 4, !tbaa !5
  %13036 = call ptr @s2n_strerror(i32 noundef %13035, ptr noundef @.str.4)
  %13037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13038 = load i32, ptr %13037, align 4, !tbaa !5
  %13039 = call ptr @s2n_strerror_debug(i32 noundef %13038, ptr noundef @.str.4)
  %13040 = call ptr @__errno_location() #11
  %13041 = load i32, ptr %13040, align 4, !tbaa !5
  %13042 = call ptr @strerror(i32 noundef %13041) #10
  %13043 = call ptr @__errno_location() #11
  %13044 = load i32, ptr %13043, align 4, !tbaa !5
  %13045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13032, ptr noundef @.str.2, i32 noundef %13033, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 484, ptr noundef %13036, ptr noundef %13039, ptr noundef %13042, i32 noundef %13044) #10
  br label %13063

13046:                                            ; preds = %13024, %13017
  %13047 = load i32, ptr %265, align 4, !tbaa !5
  %13048 = call ptr @__errno_location() #11
  store i32 %13047, ptr %13048, align 4, !tbaa !5
  %13049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13050 = load i32, ptr @test_count, align 4, !tbaa !5
  %13051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13052 = load i32, ptr %13051, align 4, !tbaa !5
  %13053 = call ptr @s2n_strerror(i32 noundef %13052, ptr noundef @.str.4)
  %13054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13055 = load i32, ptr %13054, align 4, !tbaa !5
  %13056 = call ptr @s2n_strerror_debug(i32 noundef %13055, ptr noundef @.str.4)
  %13057 = call ptr @__errno_location() #11
  %13058 = load i32, ptr %13057, align 4, !tbaa !5
  %13059 = call ptr @strerror(i32 noundef %13058) #10
  %13060 = call ptr @__errno_location() #11
  %13061 = load i32, ptr %13060, align 4, !tbaa !5
  %13062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13049, ptr noundef @.str.5, i32 noundef %13050, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 484, ptr noundef %13053, ptr noundef %13056, ptr noundef %13059, i32 noundef %13061) #10
  br label %13063

13063:                                            ; preds = %13046, %13029
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #10
  br label %13064

13064:                                            ; preds = %13063
  br label %13065

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

13066:                                            ; No predecessors!
  br label %13067

13067:                                            ; preds = %13066
  br label %13068

13068:                                            ; preds = %13067, %13008
  br label %13069

13069:                                            ; preds = %13068
  br label %13070

13070:                                            ; preds = %13069
  br label %13071

13071:                                            ; preds = %13070
  %13072 = load i32, ptr @test_count, align 4, !tbaa !5
  %13073 = add nsw i32 %13072, 1
  store i32 %13073, ptr @test_count, align 4, !tbaa !5
  %13074 = load ptr, ptr %256, align 8, !tbaa !9
  %13075 = getelementptr inbounds %struct.s2n_connection, ptr %13074, i32 0, i32 89
  %13076 = load i32, ptr %13075, align 8, !tbaa !48
  %13077 = icmp eq i32 %13076, 4
  br i1 %13077, label %13131, label %13078

13078:                                            ; preds = %13071
  br label %13079

13079:                                            ; preds = %13078
  br label %13080

13080:                                            ; preds = %13079
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #10
  %13081 = call ptr @__errno_location() #11
  %13082 = load i32, ptr %13081, align 4, !tbaa !5
  store i32 %13082, ptr %266, align 4, !tbaa !5
  %13083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13084 = call i32 @s2n_print_stacktrace(ptr noundef %13083)
  %13085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13086 = trunc i8 %13085 to i1
  br i1 %13086, label %13087, label %13109

13087:                                            ; preds = %13080
  %13088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13089 = call i32 @fileno(ptr noundef %13088) #10
  %13090 = call i32 @isatty(i32 noundef %13089) #10
  %13091 = icmp ne i32 %13090, 0
  br i1 %13091, label %13092, label %13109

13092:                                            ; preds = %13087
  %13093 = load i32, ptr %266, align 4, !tbaa !5
  %13094 = call ptr @__errno_location() #11
  store i32 %13093, ptr %13094, align 4, !tbaa !5
  %13095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13096 = load i32, ptr @test_count, align 4, !tbaa !5
  %13097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13098 = load i32, ptr %13097, align 4, !tbaa !5
  %13099 = call ptr @s2n_strerror(i32 noundef %13098, ptr noundef @.str.4)
  %13100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13101 = load i32, ptr %13100, align 4, !tbaa !5
  %13102 = call ptr @s2n_strerror_debug(i32 noundef %13101, ptr noundef @.str.4)
  %13103 = call ptr @__errno_location() #11
  %13104 = load i32, ptr %13103, align 4, !tbaa !5
  %13105 = call ptr @strerror(i32 noundef %13104) #10
  %13106 = call ptr @__errno_location() #11
  %13107 = load i32, ptr %13106, align 4, !tbaa !5
  %13108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13095, ptr noundef @.str.2, i32 noundef %13096, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 485, ptr noundef %13099, ptr noundef %13102, ptr noundef %13105, i32 noundef %13107) #10
  br label %13126

13109:                                            ; preds = %13087, %13080
  %13110 = load i32, ptr %266, align 4, !tbaa !5
  %13111 = call ptr @__errno_location() #11
  store i32 %13110, ptr %13111, align 4, !tbaa !5
  %13112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13113 = load i32, ptr @test_count, align 4, !tbaa !5
  %13114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13115 = load i32, ptr %13114, align 4, !tbaa !5
  %13116 = call ptr @s2n_strerror(i32 noundef %13115, ptr noundef @.str.4)
  %13117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13118 = load i32, ptr %13117, align 4, !tbaa !5
  %13119 = call ptr @s2n_strerror_debug(i32 noundef %13118, ptr noundef @.str.4)
  %13120 = call ptr @__errno_location() #11
  %13121 = load i32, ptr %13120, align 4, !tbaa !5
  %13122 = call ptr @strerror(i32 noundef %13121) #10
  %13123 = call ptr @__errno_location() #11
  %13124 = load i32, ptr %13123, align 4, !tbaa !5
  %13125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13112, ptr noundef @.str.5, i32 noundef %13113, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 485, ptr noundef %13116, ptr noundef %13119, ptr noundef %13122, i32 noundef %13124) #10
  br label %13126

13126:                                            ; preds = %13109, %13092
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #10
  br label %13127

13127:                                            ; preds = %13126
  br label %13128

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

13129:                                            ; No predecessors!
  br label %13130

13130:                                            ; preds = %13129
  br label %13131

13131:                                            ; preds = %13130, %13071
  br label %13132

13132:                                            ; preds = %13131
  br label %13133

13133:                                            ; preds = %13132
  br label %13134

13134:                                            ; preds = %13133
  %13135 = load i32, ptr @test_count, align 4, !tbaa !5
  %13136 = add nsw i32 %13135, 1
  store i32 %13136, ptr @test_count, align 4, !tbaa !5
  %13137 = load ptr, ptr %256, align 8, !tbaa !9
  %13138 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %13137)
  br i1 %13138, label %13192, label %13139

13139:                                            ; preds = %13134
  br label %13140

13140:                                            ; preds = %13139
  br label %13141

13141:                                            ; preds = %13140
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #10
  %13142 = call ptr @__errno_location() #11
  %13143 = load i32, ptr %13142, align 4, !tbaa !5
  store i32 %13143, ptr %267, align 4, !tbaa !5
  %13144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13145 = call i32 @s2n_print_stacktrace(ptr noundef %13144)
  %13146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13147 = trunc i8 %13146 to i1
  br i1 %13147, label %13148, label %13170

13148:                                            ; preds = %13141
  %13149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13150 = call i32 @fileno(ptr noundef %13149) #10
  %13151 = call i32 @isatty(i32 noundef %13150) #10
  %13152 = icmp ne i32 %13151, 0
  br i1 %13152, label %13153, label %13170

13153:                                            ; preds = %13148
  %13154 = load i32, ptr %267, align 4, !tbaa !5
  %13155 = call ptr @__errno_location() #11
  store i32 %13154, ptr %13155, align 4, !tbaa !5
  %13156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13157 = load i32, ptr @test_count, align 4, !tbaa !5
  %13158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13159 = load i32, ptr %13158, align 4, !tbaa !5
  %13160 = call ptr @s2n_strerror(i32 noundef %13159, ptr noundef @.str.4)
  %13161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13162 = load i32, ptr %13161, align 4, !tbaa !5
  %13163 = call ptr @s2n_strerror_debug(i32 noundef %13162, ptr noundef @.str.4)
  %13164 = call ptr @__errno_location() #11
  %13165 = load i32, ptr %13164, align 4, !tbaa !5
  %13166 = call ptr @strerror(i32 noundef %13165) #10
  %13167 = call ptr @__errno_location() #11
  %13168 = load i32, ptr %13167, align 4, !tbaa !5
  %13169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13156, ptr noundef @.str.2, i32 noundef %13157, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 487, ptr noundef %13160, ptr noundef %13163, ptr noundef %13166, i32 noundef %13168) #10
  br label %13187

13170:                                            ; preds = %13148, %13141
  %13171 = load i32, ptr %267, align 4, !tbaa !5
  %13172 = call ptr @__errno_location() #11
  store i32 %13171, ptr %13172, align 4, !tbaa !5
  %13173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13174 = load i32, ptr @test_count, align 4, !tbaa !5
  %13175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13176 = load i32, ptr %13175, align 4, !tbaa !5
  %13177 = call ptr @s2n_strerror(i32 noundef %13176, ptr noundef @.str.4)
  %13178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13179 = load i32, ptr %13178, align 4, !tbaa !5
  %13180 = call ptr @s2n_strerror_debug(i32 noundef %13179, ptr noundef @.str.4)
  %13181 = call ptr @__errno_location() #11
  %13182 = load i32, ptr %13181, align 4, !tbaa !5
  %13183 = call ptr @strerror(i32 noundef %13182) #10
  %13184 = call ptr @__errno_location() #11
  %13185 = load i32, ptr %13184, align 4, !tbaa !5
  %13186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13173, ptr noundef @.str.5, i32 noundef %13174, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 487, ptr noundef %13177, ptr noundef %13180, ptr noundef %13183, i32 noundef %13185) #10
  br label %13187

13187:                                            ; preds = %13170, %13153
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #10
  br label %13188

13188:                                            ; preds = %13187
  br label %13189

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

13190:                                            ; No predecessors!
  br label %13191

13191:                                            ; preds = %13190
  br label %13192

13192:                                            ; preds = %13191, %13134
  br label %13193

13193:                                            ; preds = %13192
  br label %13194

13194:                                            ; preds = %13193
  %13195 = load ptr, ptr %256, align 8, !tbaa !9
  %13196 = getelementptr inbounds %struct.s2n_connection, ptr %13195, i32 0, i32 52
  %13197 = getelementptr inbounds %struct.s2n_handshake, ptr %13196, i32 0, i32 7
  store i32 2, ptr %13197, align 8, !tbaa !49
  %13198 = load ptr, ptr %250, align 8, !tbaa !9
  %13199 = getelementptr inbounds %struct.s2n_connection, ptr %13198, i32 0, i32 52
  %13200 = getelementptr inbounds %struct.s2n_handshake, ptr %13199, i32 0, i32 7
  store i32 2, ptr %13200, align 8, !tbaa !49
  br label %13201

13201:                                            ; preds = %13194
  %13202 = load i32, ptr @test_count, align 4, !tbaa !5
  %13203 = add nsw i32 %13202, 1
  store i32 %13203, ptr @test_count, align 4, !tbaa !5
  %13204 = load ptr, ptr %256, align 8, !tbaa !9
  %13205 = call i32 @s2n_server_hello_retry_send(ptr noundef %13204)
  %13206 = icmp eq i32 %13205, -1
  br i1 %13206, label %13207, label %13260

13207:                                            ; preds = %13201
  br label %13208

13208:                                            ; preds = %13207
  br label %13209

13209:                                            ; preds = %13208
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #10
  %13210 = call ptr @__errno_location() #11
  %13211 = load i32, ptr %13210, align 4, !tbaa !5
  store i32 %13211, ptr %268, align 4, !tbaa !5
  %13212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13213 = call i32 @s2n_print_stacktrace(ptr noundef %13212)
  %13214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13215 = trunc i8 %13214 to i1
  br i1 %13215, label %13216, label %13238

13216:                                            ; preds = %13209
  %13217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13218 = call i32 @fileno(ptr noundef %13217) #10
  %13219 = call i32 @isatty(i32 noundef %13218) #10
  %13220 = icmp ne i32 %13219, 0
  br i1 %13220, label %13221, label %13238

13221:                                            ; preds = %13216
  %13222 = load i32, ptr %268, align 4, !tbaa !5
  %13223 = call ptr @__errno_location() #11
  store i32 %13222, ptr %13223, align 4, !tbaa !5
  %13224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13225 = load i32, ptr @test_count, align 4, !tbaa !5
  %13226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13227 = load i32, ptr %13226, align 4, !tbaa !5
  %13228 = call ptr @s2n_strerror(i32 noundef %13227, ptr noundef @.str.4)
  %13229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13230 = load i32, ptr %13229, align 4, !tbaa !5
  %13231 = call ptr @s2n_strerror_debug(i32 noundef %13230, ptr noundef @.str.4)
  %13232 = call ptr @__errno_location() #11
  %13233 = load i32, ptr %13232, align 4, !tbaa !5
  %13234 = call ptr @strerror(i32 noundef %13233) #10
  %13235 = call ptr @__errno_location() #11
  %13236 = load i32, ptr %13235, align 4, !tbaa !5
  %13237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13224, ptr noundef @.str.2, i32 noundef %13225, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 493, ptr noundef %13228, ptr noundef %13231, ptr noundef %13234, i32 noundef %13236) #10
  br label %13255

13238:                                            ; preds = %13216, %13209
  %13239 = load i32, ptr %268, align 4, !tbaa !5
  %13240 = call ptr @__errno_location() #11
  store i32 %13239, ptr %13240, align 4, !tbaa !5
  %13241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13242 = load i32, ptr @test_count, align 4, !tbaa !5
  %13243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13244 = load i32, ptr %13243, align 4, !tbaa !5
  %13245 = call ptr @s2n_strerror(i32 noundef %13244, ptr noundef @.str.4)
  %13246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13247 = load i32, ptr %13246, align 4, !tbaa !5
  %13248 = call ptr @s2n_strerror_debug(i32 noundef %13247, ptr noundef @.str.4)
  %13249 = call ptr @__errno_location() #11
  %13250 = load i32, ptr %13249, align 4, !tbaa !5
  %13251 = call ptr @strerror(i32 noundef %13250) #10
  %13252 = call ptr @__errno_location() #11
  %13253 = load i32, ptr %13252, align 4, !tbaa !5
  %13254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13241, ptr noundef @.str.5, i32 noundef %13242, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 493, ptr noundef %13245, ptr noundef %13248, ptr noundef %13251, i32 noundef %13253) #10
  br label %13255

13255:                                            ; preds = %13238, %13221
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #10
  br label %13256

13256:                                            ; preds = %13255
  br label %13257

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

13258:                                            ; No predecessors!
  br label %13259

13259:                                            ; preds = %13258
  br label %13260

13260:                                            ; preds = %13259, %13201
  br label %13261

13261:                                            ; preds = %13260
  br label %13262

13262:                                            ; preds = %13261
  br label %13263

13263:                                            ; preds = %13262
  %13264 = load i32, ptr @test_count, align 4, !tbaa !5
  %13265 = add nsw i32 %13264, 1
  store i32 %13265, ptr @test_count, align 4, !tbaa !5
  %13266 = load ptr, ptr %256, align 8, !tbaa !9
  %13267 = getelementptr inbounds %struct.s2n_connection, ptr %13266, i32 0, i32 52
  %13268 = getelementptr inbounds %struct.s2n_handshake, ptr %13267, i32 0, i32 0
  %13269 = load ptr, ptr %250, align 8, !tbaa !9
  %13270 = getelementptr inbounds %struct.s2n_connection, ptr %13269, i32 0, i32 52
  %13271 = getelementptr inbounds %struct.s2n_handshake, ptr %13270, i32 0, i32 0
  %13272 = load ptr, ptr %256, align 8, !tbaa !9
  %13273 = getelementptr inbounds %struct.s2n_connection, ptr %13272, i32 0, i32 52
  %13274 = getelementptr inbounds %struct.s2n_handshake, ptr %13273, i32 0, i32 0
  %13275 = getelementptr inbounds %struct.s2n_stuffer, ptr %13274, i32 0, i32 2
  %13276 = load i32, ptr %13275, align 4, !tbaa !51
  %13277 = load ptr, ptr %256, align 8, !tbaa !9
  %13278 = getelementptr inbounds %struct.s2n_connection, ptr %13277, i32 0, i32 52
  %13279 = getelementptr inbounds %struct.s2n_handshake, ptr %13278, i32 0, i32 0
  %13280 = getelementptr inbounds %struct.s2n_stuffer, ptr %13279, i32 0, i32 1
  %13281 = load i32, ptr %13280, align 8, !tbaa !52
  %13282 = sub i32 %13276, %13281
  %13283 = call i32 @s2n_stuffer_copy(ptr noundef %13268, ptr noundef %13271, i32 noundef %13282)
  %13284 = icmp eq i32 %13283, -1
  br i1 %13284, label %13285, label %13338

13285:                                            ; preds = %13263
  br label %13286

13286:                                            ; preds = %13285
  br label %13287

13287:                                            ; preds = %13286
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #10
  %13288 = call ptr @__errno_location() #11
  %13289 = load i32, ptr %13288, align 4, !tbaa !5
  store i32 %13289, ptr %269, align 4, !tbaa !5
  %13290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13291 = call i32 @s2n_print_stacktrace(ptr noundef %13290)
  %13292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13293 = trunc i8 %13292 to i1
  br i1 %13293, label %13294, label %13316

13294:                                            ; preds = %13287
  %13295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13296 = call i32 @fileno(ptr noundef %13295) #10
  %13297 = call i32 @isatty(i32 noundef %13296) #10
  %13298 = icmp ne i32 %13297, 0
  br i1 %13298, label %13299, label %13316

13299:                                            ; preds = %13294
  %13300 = load i32, ptr %269, align 4, !tbaa !5
  %13301 = call ptr @__errno_location() #11
  store i32 %13300, ptr %13301, align 4, !tbaa !5
  %13302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13303 = load i32, ptr @test_count, align 4, !tbaa !5
  %13304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13305 = load i32, ptr %13304, align 4, !tbaa !5
  %13306 = call ptr @s2n_strerror(i32 noundef %13305, ptr noundef @.str.4)
  %13307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13308 = load i32, ptr %13307, align 4, !tbaa !5
  %13309 = call ptr @s2n_strerror_debug(i32 noundef %13308, ptr noundef @.str.4)
  %13310 = call ptr @__errno_location() #11
  %13311 = load i32, ptr %13310, align 4, !tbaa !5
  %13312 = call ptr @strerror(i32 noundef %13311) #10
  %13313 = call ptr @__errno_location() #11
  %13314 = load i32, ptr %13313, align 4, !tbaa !5
  %13315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13302, ptr noundef @.str.2, i32 noundef %13303, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 495, ptr noundef %13306, ptr noundef %13309, ptr noundef %13312, i32 noundef %13314) #10
  br label %13333

13316:                                            ; preds = %13294, %13287
  %13317 = load i32, ptr %269, align 4, !tbaa !5
  %13318 = call ptr @__errno_location() #11
  store i32 %13317, ptr %13318, align 4, !tbaa !5
  %13319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13320 = load i32, ptr @test_count, align 4, !tbaa !5
  %13321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13322 = load i32, ptr %13321, align 4, !tbaa !5
  %13323 = call ptr @s2n_strerror(i32 noundef %13322, ptr noundef @.str.4)
  %13324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13325 = load i32, ptr %13324, align 4, !tbaa !5
  %13326 = call ptr @s2n_strerror_debug(i32 noundef %13325, ptr noundef @.str.4)
  %13327 = call ptr @__errno_location() #11
  %13328 = load i32, ptr %13327, align 4, !tbaa !5
  %13329 = call ptr @strerror(i32 noundef %13328) #10
  %13330 = call ptr @__errno_location() #11
  %13331 = load i32, ptr %13330, align 4, !tbaa !5
  %13332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13319, ptr noundef @.str.5, i32 noundef %13320, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 495, ptr noundef %13323, ptr noundef %13326, ptr noundef %13329, i32 noundef %13331) #10
  br label %13333

13333:                                            ; preds = %13316, %13299
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #10
  br label %13334

13334:                                            ; preds = %13333
  br label %13335

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

13336:                                            ; No predecessors!
  br label %13337

13337:                                            ; preds = %13336
  br label %13338

13338:                                            ; preds = %13337, %13263
  br label %13339

13339:                                            ; preds = %13338
  br label %13340

13340:                                            ; preds = %13339
  br label %13341

13341:                                            ; preds = %13340
  %13342 = load i32, ptr @test_count, align 4, !tbaa !5
  %13343 = add nsw i32 %13342, 1
  store i32 %13343, ptr @test_count, align 4, !tbaa !5
  %13344 = load ptr, ptr %250, align 8, !tbaa !9
  %13345 = call i32 @s2n_server_hello_recv(ptr noundef %13344)
  %13346 = icmp eq i32 %13345, -1
  br i1 %13346, label %13347, label %13400

13347:                                            ; preds = %13341
  br label %13348

13348:                                            ; preds = %13347
  br label %13349

13349:                                            ; preds = %13348
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #10
  %13350 = call ptr @__errno_location() #11
  %13351 = load i32, ptr %13350, align 4, !tbaa !5
  store i32 %13351, ptr %270, align 4, !tbaa !5
  %13352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13353 = call i32 @s2n_print_stacktrace(ptr noundef %13352)
  %13354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13355 = trunc i8 %13354 to i1
  br i1 %13355, label %13356, label %13378

13356:                                            ; preds = %13349
  %13357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13358 = call i32 @fileno(ptr noundef %13357) #10
  %13359 = call i32 @isatty(i32 noundef %13358) #10
  %13360 = icmp ne i32 %13359, 0
  br i1 %13360, label %13361, label %13378

13361:                                            ; preds = %13356
  %13362 = load i32, ptr %270, align 4, !tbaa !5
  %13363 = call ptr @__errno_location() #11
  store i32 %13362, ptr %13363, align 4, !tbaa !5
  %13364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13365 = load i32, ptr @test_count, align 4, !tbaa !5
  %13366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13367 = load i32, ptr %13366, align 4, !tbaa !5
  %13368 = call ptr @s2n_strerror(i32 noundef %13367, ptr noundef @.str.4)
  %13369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13370 = load i32, ptr %13369, align 4, !tbaa !5
  %13371 = call ptr @s2n_strerror_debug(i32 noundef %13370, ptr noundef @.str.4)
  %13372 = call ptr @__errno_location() #11
  %13373 = load i32, ptr %13372, align 4, !tbaa !5
  %13374 = call ptr @strerror(i32 noundef %13373) #10
  %13375 = call ptr @__errno_location() #11
  %13376 = load i32, ptr %13375, align 4, !tbaa !5
  %13377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13364, ptr noundef @.str.2, i32 noundef %13365, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 496, ptr noundef %13368, ptr noundef %13371, ptr noundef %13374, i32 noundef %13376) #10
  br label %13395

13378:                                            ; preds = %13356, %13349
  %13379 = load i32, ptr %270, align 4, !tbaa !5
  %13380 = call ptr @__errno_location() #11
  store i32 %13379, ptr %13380, align 4, !tbaa !5
  %13381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13382 = load i32, ptr @test_count, align 4, !tbaa !5
  %13383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13384 = load i32, ptr %13383, align 4, !tbaa !5
  %13385 = call ptr @s2n_strerror(i32 noundef %13384, ptr noundef @.str.4)
  %13386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13387 = load i32, ptr %13386, align 4, !tbaa !5
  %13388 = call ptr @s2n_strerror_debug(i32 noundef %13387, ptr noundef @.str.4)
  %13389 = call ptr @__errno_location() #11
  %13390 = load i32, ptr %13389, align 4, !tbaa !5
  %13391 = call ptr @strerror(i32 noundef %13390) #10
  %13392 = call ptr @__errno_location() #11
  %13393 = load i32, ptr %13392, align 4, !tbaa !5
  %13394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13381, ptr noundef @.str.5, i32 noundef %13382, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 496, ptr noundef %13385, ptr noundef %13388, ptr noundef %13391, i32 noundef %13393) #10
  br label %13395

13395:                                            ; preds = %13378, %13361
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #10
  br label %13396

13396:                                            ; preds = %13395
  br label %13397

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

13398:                                            ; No predecessors!
  br label %13399

13399:                                            ; preds = %13398
  br label %13400

13400:                                            ; preds = %13399, %13341
  br label %13401

13401:                                            ; preds = %13400
  br label %13402

13402:                                            ; preds = %13401
  br label %13403

13403:                                            ; preds = %13402
  %13404 = load i32, ptr @test_count, align 4, !tbaa !5
  %13405 = add nsw i32 %13404, 1
  store i32 %13405, ptr @test_count, align 4, !tbaa !5
  %13406 = load ptr, ptr %250, align 8, !tbaa !9
  %13407 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %13406)
  br i1 %13407, label %13461, label %13408

13408:                                            ; preds = %13403
  br label %13409

13409:                                            ; preds = %13408
  br label %13410

13410:                                            ; preds = %13409
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #10
  %13411 = call ptr @__errno_location() #11
  %13412 = load i32, ptr %13411, align 4, !tbaa !5
  store i32 %13412, ptr %271, align 4, !tbaa !5
  %13413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13414 = call i32 @s2n_print_stacktrace(ptr noundef %13413)
  %13415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13416 = trunc i8 %13415 to i1
  br i1 %13416, label %13417, label %13439

13417:                                            ; preds = %13410
  %13418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13419 = call i32 @fileno(ptr noundef %13418) #10
  %13420 = call i32 @isatty(i32 noundef %13419) #10
  %13421 = icmp ne i32 %13420, 0
  br i1 %13421, label %13422, label %13439

13422:                                            ; preds = %13417
  %13423 = load i32, ptr %271, align 4, !tbaa !5
  %13424 = call ptr @__errno_location() #11
  store i32 %13423, ptr %13424, align 4, !tbaa !5
  %13425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13426 = load i32, ptr @test_count, align 4, !tbaa !5
  %13427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13428 = load i32, ptr %13427, align 4, !tbaa !5
  %13429 = call ptr @s2n_strerror(i32 noundef %13428, ptr noundef @.str.4)
  %13430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13431 = load i32, ptr %13430, align 4, !tbaa !5
  %13432 = call ptr @s2n_strerror_debug(i32 noundef %13431, ptr noundef @.str.4)
  %13433 = call ptr @__errno_location() #11
  %13434 = load i32, ptr %13433, align 4, !tbaa !5
  %13435 = call ptr @strerror(i32 noundef %13434) #10
  %13436 = call ptr @__errno_location() #11
  %13437 = load i32, ptr %13436, align 4, !tbaa !5
  %13438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13425, ptr noundef @.str.2, i32 noundef %13426, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 497, ptr noundef %13429, ptr noundef %13432, ptr noundef %13435, i32 noundef %13437) #10
  br label %13456

13439:                                            ; preds = %13417, %13410
  %13440 = load i32, ptr %271, align 4, !tbaa !5
  %13441 = call ptr @__errno_location() #11
  store i32 %13440, ptr %13441, align 4, !tbaa !5
  %13442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13443 = load i32, ptr @test_count, align 4, !tbaa !5
  %13444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13445 = load i32, ptr %13444, align 4, !tbaa !5
  %13446 = call ptr @s2n_strerror(i32 noundef %13445, ptr noundef @.str.4)
  %13447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13448 = load i32, ptr %13447, align 4, !tbaa !5
  %13449 = call ptr @s2n_strerror_debug(i32 noundef %13448, ptr noundef @.str.4)
  %13450 = call ptr @__errno_location() #11
  %13451 = load i32, ptr %13450, align 4, !tbaa !5
  %13452 = call ptr @strerror(i32 noundef %13451) #10
  %13453 = call ptr @__errno_location() #11
  %13454 = load i32, ptr %13453, align 4, !tbaa !5
  %13455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13442, ptr noundef @.str.5, i32 noundef %13443, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 497, ptr noundef %13446, ptr noundef %13449, ptr noundef %13452, i32 noundef %13454) #10
  br label %13456

13456:                                            ; preds = %13439, %13422
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #10
  br label %13457

13457:                                            ; preds = %13456
  br label %13458

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

13459:                                            ; No predecessors!
  br label %13460

13460:                                            ; preds = %13459
  br label %13461

13461:                                            ; preds = %13460, %13403
  br label %13462

13462:                                            ; preds = %13461
  br label %13463

13463:                                            ; preds = %13462
  br label %13464

13464:                                            ; preds = %13463
  %13465 = load i32, ptr @test_count, align 4, !tbaa !5
  %13466 = add nsw i32 %13465, 1
  store i32 %13466, ptr @test_count, align 4, !tbaa !5
  %13467 = load ptr, ptr %250, align 8, !tbaa !9
  %13468 = getelementptr inbounds %struct.s2n_connection, ptr %13467, i32 0, i32 89
  %13469 = load i32, ptr %13468, align 8, !tbaa !48
  %13470 = icmp eq i32 %13469, 4
  br i1 %13470, label %13524, label %13471

13471:                                            ; preds = %13464
  br label %13472

13472:                                            ; preds = %13471
  br label %13473

13473:                                            ; preds = %13472
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #10
  %13474 = call ptr @__errno_location() #11
  %13475 = load i32, ptr %13474, align 4, !tbaa !5
  store i32 %13475, ptr %272, align 4, !tbaa !5
  %13476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13477 = call i32 @s2n_print_stacktrace(ptr noundef %13476)
  %13478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13479 = trunc i8 %13478 to i1
  br i1 %13479, label %13480, label %13502

13480:                                            ; preds = %13473
  %13481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13482 = call i32 @fileno(ptr noundef %13481) #10
  %13483 = call i32 @isatty(i32 noundef %13482) #10
  %13484 = icmp ne i32 %13483, 0
  br i1 %13484, label %13485, label %13502

13485:                                            ; preds = %13480
  %13486 = load i32, ptr %272, align 4, !tbaa !5
  %13487 = call ptr @__errno_location() #11
  store i32 %13486, ptr %13487, align 4, !tbaa !5
  %13488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13489 = load i32, ptr @test_count, align 4, !tbaa !5
  %13490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13491 = load i32, ptr %13490, align 4, !tbaa !5
  %13492 = call ptr @s2n_strerror(i32 noundef %13491, ptr noundef @.str.4)
  %13493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13494 = load i32, ptr %13493, align 4, !tbaa !5
  %13495 = call ptr @s2n_strerror_debug(i32 noundef %13494, ptr noundef @.str.4)
  %13496 = call ptr @__errno_location() #11
  %13497 = load i32, ptr %13496, align 4, !tbaa !5
  %13498 = call ptr @strerror(i32 noundef %13497) #10
  %13499 = call ptr @__errno_location() #11
  %13500 = load i32, ptr %13499, align 4, !tbaa !5
  %13501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13488, ptr noundef @.str.2, i32 noundef %13489, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 498, ptr noundef %13492, ptr noundef %13495, ptr noundef %13498, i32 noundef %13500) #10
  br label %13519

13502:                                            ; preds = %13480, %13473
  %13503 = load i32, ptr %272, align 4, !tbaa !5
  %13504 = call ptr @__errno_location() #11
  store i32 %13503, ptr %13504, align 4, !tbaa !5
  %13505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13506 = load i32, ptr @test_count, align 4, !tbaa !5
  %13507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13508 = load i32, ptr %13507, align 4, !tbaa !5
  %13509 = call ptr @s2n_strerror(i32 noundef %13508, ptr noundef @.str.4)
  %13510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13511 = load i32, ptr %13510, align 4, !tbaa !5
  %13512 = call ptr @s2n_strerror_debug(i32 noundef %13511, ptr noundef @.str.4)
  %13513 = call ptr @__errno_location() #11
  %13514 = load i32, ptr %13513, align 4, !tbaa !5
  %13515 = call ptr @strerror(i32 noundef %13514) #10
  %13516 = call ptr @__errno_location() #11
  %13517 = load i32, ptr %13516, align 4, !tbaa !5
  %13518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13505, ptr noundef @.str.5, i32 noundef %13506, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 498, ptr noundef %13509, ptr noundef %13512, ptr noundef %13515, i32 noundef %13517) #10
  br label %13519

13519:                                            ; preds = %13502, %13485
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #10
  br label %13520

13520:                                            ; preds = %13519
  br label %13521

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

13522:                                            ; No predecessors!
  br label %13523

13523:                                            ; preds = %13522
  br label %13524

13524:                                            ; preds = %13523, %13464
  br label %13525

13525:                                            ; preds = %13524
  br label %13526

13526:                                            ; preds = %13525
  br label %13527

13527:                                            ; preds = %13526
  %13528 = load i32, ptr @test_count, align 4, !tbaa !5
  %13529 = add nsw i32 %13528, 1
  store i32 %13529, ptr @test_count, align 4, !tbaa !5
  %13530 = load ptr, ptr %256, align 8, !tbaa !9
  %13531 = getelementptr inbounds %struct.s2n_connection, ptr %13530, i32 0, i32 89
  %13532 = load i32, ptr %13531, align 8, !tbaa !48
  %13533 = icmp eq i32 %13532, 4
  br i1 %13533, label %13587, label %13534

13534:                                            ; preds = %13527
  br label %13535

13535:                                            ; preds = %13534
  br label %13536

13536:                                            ; preds = %13535
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #10
  %13537 = call ptr @__errno_location() #11
  %13538 = load i32, ptr %13537, align 4, !tbaa !5
  store i32 %13538, ptr %273, align 4, !tbaa !5
  %13539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13540 = call i32 @s2n_print_stacktrace(ptr noundef %13539)
  %13541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13542 = trunc i8 %13541 to i1
  br i1 %13542, label %13543, label %13565

13543:                                            ; preds = %13536
  %13544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13545 = call i32 @fileno(ptr noundef %13544) #10
  %13546 = call i32 @isatty(i32 noundef %13545) #10
  %13547 = icmp ne i32 %13546, 0
  br i1 %13547, label %13548, label %13565

13548:                                            ; preds = %13543
  %13549 = load i32, ptr %273, align 4, !tbaa !5
  %13550 = call ptr @__errno_location() #11
  store i32 %13549, ptr %13550, align 4, !tbaa !5
  %13551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13552 = load i32, ptr @test_count, align 4, !tbaa !5
  %13553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13554 = load i32, ptr %13553, align 4, !tbaa !5
  %13555 = call ptr @s2n_strerror(i32 noundef %13554, ptr noundef @.str.4)
  %13556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13557 = load i32, ptr %13556, align 4, !tbaa !5
  %13558 = call ptr @s2n_strerror_debug(i32 noundef %13557, ptr noundef @.str.4)
  %13559 = call ptr @__errno_location() #11
  %13560 = load i32, ptr %13559, align 4, !tbaa !5
  %13561 = call ptr @strerror(i32 noundef %13560) #10
  %13562 = call ptr @__errno_location() #11
  %13563 = load i32, ptr %13562, align 4, !tbaa !5
  %13564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13551, ptr noundef @.str.2, i32 noundef %13552, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 499, ptr noundef %13555, ptr noundef %13558, ptr noundef %13561, i32 noundef %13563) #10
  br label %13582

13565:                                            ; preds = %13543, %13536
  %13566 = load i32, ptr %273, align 4, !tbaa !5
  %13567 = call ptr @__errno_location() #11
  store i32 %13566, ptr %13567, align 4, !tbaa !5
  %13568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13569 = load i32, ptr @test_count, align 4, !tbaa !5
  %13570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13571 = load i32, ptr %13570, align 4, !tbaa !5
  %13572 = call ptr @s2n_strerror(i32 noundef %13571, ptr noundef @.str.4)
  %13573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13574 = load i32, ptr %13573, align 4, !tbaa !5
  %13575 = call ptr @s2n_strerror_debug(i32 noundef %13574, ptr noundef @.str.4)
  %13576 = call ptr @__errno_location() #11
  %13577 = load i32, ptr %13576, align 4, !tbaa !5
  %13578 = call ptr @strerror(i32 noundef %13577) #10
  %13579 = call ptr @__errno_location() #11
  %13580 = load i32, ptr %13579, align 4, !tbaa !5
  %13581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13568, ptr noundef @.str.5, i32 noundef %13569, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 499, ptr noundef %13572, ptr noundef %13575, ptr noundef %13578, i32 noundef %13580) #10
  br label %13582

13582:                                            ; preds = %13565, %13548
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #10
  br label %13583

13583:                                            ; preds = %13582
  br label %13584

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

13585:                                            ; No predecessors!
  br label %13586

13586:                                            ; preds = %13585
  br label %13587

13587:                                            ; preds = %13586, %13527
  br label %13588

13588:                                            ; preds = %13587
  br label %13589

13589:                                            ; preds = %13588
  br label %13590

13590:                                            ; preds = %13589
  %13591 = load i32, ptr @test_count, align 4, !tbaa !5
  %13592 = add nsw i32 %13591, 1
  store i32 %13592, ptr @test_count, align 4, !tbaa !5
  %13593 = load ptr, ptr %250, align 8, !tbaa !9
  %13594 = call i32 @s2n_client_hello_send(ptr noundef %13593)
  %13595 = icmp eq i32 %13594, -1
  br i1 %13595, label %13596, label %13649

13596:                                            ; preds = %13590
  br label %13597

13597:                                            ; preds = %13596
  br label %13598

13598:                                            ; preds = %13597
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #10
  %13599 = call ptr @__errno_location() #11
  %13600 = load i32, ptr %13599, align 4, !tbaa !5
  store i32 %13600, ptr %274, align 4, !tbaa !5
  %13601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13602 = call i32 @s2n_print_stacktrace(ptr noundef %13601)
  %13603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13604 = trunc i8 %13603 to i1
  br i1 %13604, label %13605, label %13627

13605:                                            ; preds = %13598
  %13606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13607 = call i32 @fileno(ptr noundef %13606) #10
  %13608 = call i32 @isatty(i32 noundef %13607) #10
  %13609 = icmp ne i32 %13608, 0
  br i1 %13609, label %13610, label %13627

13610:                                            ; preds = %13605
  %13611 = load i32, ptr %274, align 4, !tbaa !5
  %13612 = call ptr @__errno_location() #11
  store i32 %13611, ptr %13612, align 4, !tbaa !5
  %13613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13614 = load i32, ptr @test_count, align 4, !tbaa !5
  %13615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13616 = load i32, ptr %13615, align 4, !tbaa !5
  %13617 = call ptr @s2n_strerror(i32 noundef %13616, ptr noundef @.str.4)
  %13618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13619 = load i32, ptr %13618, align 4, !tbaa !5
  %13620 = call ptr @s2n_strerror_debug(i32 noundef %13619, ptr noundef @.str.4)
  %13621 = call ptr @__errno_location() #11
  %13622 = load i32, ptr %13621, align 4, !tbaa !5
  %13623 = call ptr @strerror(i32 noundef %13622) #10
  %13624 = call ptr @__errno_location() #11
  %13625 = load i32, ptr %13624, align 4, !tbaa !5
  %13626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13613, ptr noundef @.str.2, i32 noundef %13614, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 501, ptr noundef %13617, ptr noundef %13620, ptr noundef %13623, i32 noundef %13625) #10
  br label %13644

13627:                                            ; preds = %13605, %13598
  %13628 = load i32, ptr %274, align 4, !tbaa !5
  %13629 = call ptr @__errno_location() #11
  store i32 %13628, ptr %13629, align 4, !tbaa !5
  %13630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13631 = load i32, ptr @test_count, align 4, !tbaa !5
  %13632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13633 = load i32, ptr %13632, align 4, !tbaa !5
  %13634 = call ptr @s2n_strerror(i32 noundef %13633, ptr noundef @.str.4)
  %13635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13636 = load i32, ptr %13635, align 4, !tbaa !5
  %13637 = call ptr @s2n_strerror_debug(i32 noundef %13636, ptr noundef @.str.4)
  %13638 = call ptr @__errno_location() #11
  %13639 = load i32, ptr %13638, align 4, !tbaa !5
  %13640 = call ptr @strerror(i32 noundef %13639) #10
  %13641 = call ptr @__errno_location() #11
  %13642 = load i32, ptr %13641, align 4, !tbaa !5
  %13643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13630, ptr noundef @.str.5, i32 noundef %13631, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 501, ptr noundef %13634, ptr noundef %13637, ptr noundef %13640, i32 noundef %13642) #10
  br label %13644

13644:                                            ; preds = %13627, %13610
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #10
  br label %13645

13645:                                            ; preds = %13644
  br label %13646

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

13647:                                            ; No predecessors!
  br label %13648

13648:                                            ; preds = %13647
  br label %13649

13649:                                            ; preds = %13648, %13590
  br label %13650

13650:                                            ; preds = %13649
  br label %13651

13651:                                            ; preds = %13650
  br label %13652

13652:                                            ; preds = %13651
  %13653 = load i32, ptr @test_count, align 4, !tbaa !5
  %13654 = add nsw i32 %13653, 1
  store i32 %13654, ptr @test_count, align 4, !tbaa !5
  %13655 = load ptr, ptr %250, align 8, !tbaa !9
  %13656 = getelementptr inbounds %struct.s2n_connection, ptr %13655, i32 0, i32 89
  %13657 = load i32, ptr %13656, align 8, !tbaa !48
  %13658 = icmp eq i32 %13657, 4
  br i1 %13658, label %13712, label %13659

13659:                                            ; preds = %13652
  br label %13660

13660:                                            ; preds = %13659
  br label %13661

13661:                                            ; preds = %13660
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #10
  %13662 = call ptr @__errno_location() #11
  %13663 = load i32, ptr %13662, align 4, !tbaa !5
  store i32 %13663, ptr %275, align 4, !tbaa !5
  %13664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13665 = call i32 @s2n_print_stacktrace(ptr noundef %13664)
  %13666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13667 = trunc i8 %13666 to i1
  br i1 %13667, label %13668, label %13690

13668:                                            ; preds = %13661
  %13669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13670 = call i32 @fileno(ptr noundef %13669) #10
  %13671 = call i32 @isatty(i32 noundef %13670) #10
  %13672 = icmp ne i32 %13671, 0
  br i1 %13672, label %13673, label %13690

13673:                                            ; preds = %13668
  %13674 = load i32, ptr %275, align 4, !tbaa !5
  %13675 = call ptr @__errno_location() #11
  store i32 %13674, ptr %13675, align 4, !tbaa !5
  %13676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13677 = load i32, ptr @test_count, align 4, !tbaa !5
  %13678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13679 = load i32, ptr %13678, align 4, !tbaa !5
  %13680 = call ptr @s2n_strerror(i32 noundef %13679, ptr noundef @.str.4)
  %13681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13682 = load i32, ptr %13681, align 4, !tbaa !5
  %13683 = call ptr @s2n_strerror_debug(i32 noundef %13682, ptr noundef @.str.4)
  %13684 = call ptr @__errno_location() #11
  %13685 = load i32, ptr %13684, align 4, !tbaa !5
  %13686 = call ptr @strerror(i32 noundef %13685) #10
  %13687 = call ptr @__errno_location() #11
  %13688 = load i32, ptr %13687, align 4, !tbaa !5
  %13689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13676, ptr noundef @.str.2, i32 noundef %13677, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 502, ptr noundef %13680, ptr noundef %13683, ptr noundef %13686, i32 noundef %13688) #10
  br label %13707

13690:                                            ; preds = %13668, %13661
  %13691 = load i32, ptr %275, align 4, !tbaa !5
  %13692 = call ptr @__errno_location() #11
  store i32 %13691, ptr %13692, align 4, !tbaa !5
  %13693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13694 = load i32, ptr @test_count, align 4, !tbaa !5
  %13695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13696 = load i32, ptr %13695, align 4, !tbaa !5
  %13697 = call ptr @s2n_strerror(i32 noundef %13696, ptr noundef @.str.4)
  %13698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13699 = load i32, ptr %13698, align 4, !tbaa !5
  %13700 = call ptr @s2n_strerror_debug(i32 noundef %13699, ptr noundef @.str.4)
  %13701 = call ptr @__errno_location() #11
  %13702 = load i32, ptr %13701, align 4, !tbaa !5
  %13703 = call ptr @strerror(i32 noundef %13702) #10
  %13704 = call ptr @__errno_location() #11
  %13705 = load i32, ptr %13704, align 4, !tbaa !5
  %13706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13693, ptr noundef @.str.5, i32 noundef %13694, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 502, ptr noundef %13697, ptr noundef %13700, ptr noundef %13703, i32 noundef %13705) #10
  br label %13707

13707:                                            ; preds = %13690, %13673
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #10
  br label %13708

13708:                                            ; preds = %13707
  br label %13709

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

13710:                                            ; No predecessors!
  br label %13711

13711:                                            ; preds = %13710
  br label %13712

13712:                                            ; preds = %13711, %13652
  br label %13713

13713:                                            ; preds = %13712
  br label %13714

13714:                                            ; preds = %13713
  br label %13715

13715:                                            ; preds = %13714
  %13716 = load i32, ptr @test_count, align 4, !tbaa !5
  %13717 = add nsw i32 %13716, 1
  store i32 %13717, ptr @test_count, align 4, !tbaa !5
  %13718 = load ptr, ptr %256, align 8, !tbaa !9
  %13719 = getelementptr inbounds %struct.s2n_connection, ptr %13718, i32 0, i32 89
  %13720 = load i32, ptr %13719, align 8, !tbaa !48
  %13721 = icmp eq i32 %13720, 4
  br i1 %13721, label %13775, label %13722

13722:                                            ; preds = %13715
  br label %13723

13723:                                            ; preds = %13722
  br label %13724

13724:                                            ; preds = %13723
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #10
  %13725 = call ptr @__errno_location() #11
  %13726 = load i32, ptr %13725, align 4, !tbaa !5
  store i32 %13726, ptr %276, align 4, !tbaa !5
  %13727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13728 = call i32 @s2n_print_stacktrace(ptr noundef %13727)
  %13729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13730 = trunc i8 %13729 to i1
  br i1 %13730, label %13731, label %13753

13731:                                            ; preds = %13724
  %13732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13733 = call i32 @fileno(ptr noundef %13732) #10
  %13734 = call i32 @isatty(i32 noundef %13733) #10
  %13735 = icmp ne i32 %13734, 0
  br i1 %13735, label %13736, label %13753

13736:                                            ; preds = %13731
  %13737 = load i32, ptr %276, align 4, !tbaa !5
  %13738 = call ptr @__errno_location() #11
  store i32 %13737, ptr %13738, align 4, !tbaa !5
  %13739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13740 = load i32, ptr @test_count, align 4, !tbaa !5
  %13741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13742 = load i32, ptr %13741, align 4, !tbaa !5
  %13743 = call ptr @s2n_strerror(i32 noundef %13742, ptr noundef @.str.4)
  %13744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13745 = load i32, ptr %13744, align 4, !tbaa !5
  %13746 = call ptr @s2n_strerror_debug(i32 noundef %13745, ptr noundef @.str.4)
  %13747 = call ptr @__errno_location() #11
  %13748 = load i32, ptr %13747, align 4, !tbaa !5
  %13749 = call ptr @strerror(i32 noundef %13748) #10
  %13750 = call ptr @__errno_location() #11
  %13751 = load i32, ptr %13750, align 4, !tbaa !5
  %13752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13739, ptr noundef @.str.2, i32 noundef %13740, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 503, ptr noundef %13743, ptr noundef %13746, ptr noundef %13749, i32 noundef %13751) #10
  br label %13770

13753:                                            ; preds = %13731, %13724
  %13754 = load i32, ptr %276, align 4, !tbaa !5
  %13755 = call ptr @__errno_location() #11
  store i32 %13754, ptr %13755, align 4, !tbaa !5
  %13756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13757 = load i32, ptr @test_count, align 4, !tbaa !5
  %13758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13759 = load i32, ptr %13758, align 4, !tbaa !5
  %13760 = call ptr @s2n_strerror(i32 noundef %13759, ptr noundef @.str.4)
  %13761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13762 = load i32, ptr %13761, align 4, !tbaa !5
  %13763 = call ptr @s2n_strerror_debug(i32 noundef %13762, ptr noundef @.str.4)
  %13764 = call ptr @__errno_location() #11
  %13765 = load i32, ptr %13764, align 4, !tbaa !5
  %13766 = call ptr @strerror(i32 noundef %13765) #10
  %13767 = call ptr @__errno_location() #11
  %13768 = load i32, ptr %13767, align 4, !tbaa !5
  %13769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13756, ptr noundef @.str.5, i32 noundef %13757, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 503, ptr noundef %13760, ptr noundef %13763, ptr noundef %13766, i32 noundef %13768) #10
  br label %13770

13770:                                            ; preds = %13753, %13736
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #10
  br label %13771

13771:                                            ; preds = %13770
  br label %13772

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

13773:                                            ; No predecessors!
  br label %13774

13774:                                            ; preds = %13773
  br label %13775

13775:                                            ; preds = %13774, %13715
  br label %13776

13776:                                            ; preds = %13775
  br label %13777

13777:                                            ; preds = %13776
  br label %13778

13778:                                            ; preds = %13777
  %13779 = load i32, ptr @test_count, align 4, !tbaa !5
  %13780 = add nsw i32 %13779, 1
  store i32 %13780, ptr @test_count, align 4, !tbaa !5
  %13781 = load ptr, ptr %250, align 8, !tbaa !9
  %13782 = call i32 @s2n_connection_free(ptr noundef %13781)
  %13783 = icmp eq i32 %13782, -1
  br i1 %13783, label %13784, label %13837

13784:                                            ; preds = %13778
  br label %13785

13785:                                            ; preds = %13784
  br label %13786

13786:                                            ; preds = %13785
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #10
  %13787 = call ptr @__errno_location() #11
  %13788 = load i32, ptr %13787, align 4, !tbaa !5
  store i32 %13788, ptr %277, align 4, !tbaa !5
  %13789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13790 = call i32 @s2n_print_stacktrace(ptr noundef %13789)
  %13791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13792 = trunc i8 %13791 to i1
  br i1 %13792, label %13793, label %13815

13793:                                            ; preds = %13786
  %13794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13795 = call i32 @fileno(ptr noundef %13794) #10
  %13796 = call i32 @isatty(i32 noundef %13795) #10
  %13797 = icmp ne i32 %13796, 0
  br i1 %13797, label %13798, label %13815

13798:                                            ; preds = %13793
  %13799 = load i32, ptr %277, align 4, !tbaa !5
  %13800 = call ptr @__errno_location() #11
  store i32 %13799, ptr %13800, align 4, !tbaa !5
  %13801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13802 = load i32, ptr @test_count, align 4, !tbaa !5
  %13803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13804 = load i32, ptr %13803, align 4, !tbaa !5
  %13805 = call ptr @s2n_strerror(i32 noundef %13804, ptr noundef @.str.4)
  %13806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13807 = load i32, ptr %13806, align 4, !tbaa !5
  %13808 = call ptr @s2n_strerror_debug(i32 noundef %13807, ptr noundef @.str.4)
  %13809 = call ptr @__errno_location() #11
  %13810 = load i32, ptr %13809, align 4, !tbaa !5
  %13811 = call ptr @strerror(i32 noundef %13810) #10
  %13812 = call ptr @__errno_location() #11
  %13813 = load i32, ptr %13812, align 4, !tbaa !5
  %13814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13801, ptr noundef @.str.2, i32 noundef %13802, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 505, ptr noundef %13805, ptr noundef %13808, ptr noundef %13811, i32 noundef %13813) #10
  br label %13832

13815:                                            ; preds = %13793, %13786
  %13816 = load i32, ptr %277, align 4, !tbaa !5
  %13817 = call ptr @__errno_location() #11
  store i32 %13816, ptr %13817, align 4, !tbaa !5
  %13818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13819 = load i32, ptr @test_count, align 4, !tbaa !5
  %13820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13821 = load i32, ptr %13820, align 4, !tbaa !5
  %13822 = call ptr @s2n_strerror(i32 noundef %13821, ptr noundef @.str.4)
  %13823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13824 = load i32, ptr %13823, align 4, !tbaa !5
  %13825 = call ptr @s2n_strerror_debug(i32 noundef %13824, ptr noundef @.str.4)
  %13826 = call ptr @__errno_location() #11
  %13827 = load i32, ptr %13826, align 4, !tbaa !5
  %13828 = call ptr @strerror(i32 noundef %13827) #10
  %13829 = call ptr @__errno_location() #11
  %13830 = load i32, ptr %13829, align 4, !tbaa !5
  %13831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13818, ptr noundef @.str.5, i32 noundef %13819, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 505, ptr noundef %13822, ptr noundef %13825, ptr noundef %13828, i32 noundef %13830) #10
  br label %13832

13832:                                            ; preds = %13815, %13798
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #10
  br label %13833

13833:                                            ; preds = %13832
  br label %13834

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

13835:                                            ; No predecessors!
  br label %13836

13836:                                            ; preds = %13835
  br label %13837

13837:                                            ; preds = %13836, %13778
  br label %13838

13838:                                            ; preds = %13837
  br label %13839

13839:                                            ; preds = %13838
  br label %13840

13840:                                            ; preds = %13839
  %13841 = load i32, ptr @test_count, align 4, !tbaa !5
  %13842 = add nsw i32 %13841, 1
  store i32 %13842, ptr @test_count, align 4, !tbaa !5
  %13843 = load ptr, ptr %256, align 8, !tbaa !9
  %13844 = call i32 @s2n_connection_free(ptr noundef %13843)
  %13845 = icmp eq i32 %13844, -1
  br i1 %13845, label %13846, label %13899

13846:                                            ; preds = %13840
  br label %13847

13847:                                            ; preds = %13846
  br label %13848

13848:                                            ; preds = %13847
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #10
  %13849 = call ptr @__errno_location() #11
  %13850 = load i32, ptr %13849, align 4, !tbaa !5
  store i32 %13850, ptr %278, align 4, !tbaa !5
  %13851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13852 = call i32 @s2n_print_stacktrace(ptr noundef %13851)
  %13853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13854 = trunc i8 %13853 to i1
  br i1 %13854, label %13855, label %13877

13855:                                            ; preds = %13848
  %13856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13857 = call i32 @fileno(ptr noundef %13856) #10
  %13858 = call i32 @isatty(i32 noundef %13857) #10
  %13859 = icmp ne i32 %13858, 0
  br i1 %13859, label %13860, label %13877

13860:                                            ; preds = %13855
  %13861 = load i32, ptr %278, align 4, !tbaa !5
  %13862 = call ptr @__errno_location() #11
  store i32 %13861, ptr %13862, align 4, !tbaa !5
  %13863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13864 = load i32, ptr @test_count, align 4, !tbaa !5
  %13865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13866 = load i32, ptr %13865, align 4, !tbaa !5
  %13867 = call ptr @s2n_strerror(i32 noundef %13866, ptr noundef @.str.4)
  %13868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13869 = load i32, ptr %13868, align 4, !tbaa !5
  %13870 = call ptr @s2n_strerror_debug(i32 noundef %13869, ptr noundef @.str.4)
  %13871 = call ptr @__errno_location() #11
  %13872 = load i32, ptr %13871, align 4, !tbaa !5
  %13873 = call ptr @strerror(i32 noundef %13872) #10
  %13874 = call ptr @__errno_location() #11
  %13875 = load i32, ptr %13874, align 4, !tbaa !5
  %13876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13863, ptr noundef @.str.2, i32 noundef %13864, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 506, ptr noundef %13867, ptr noundef %13870, ptr noundef %13873, i32 noundef %13875) #10
  br label %13894

13877:                                            ; preds = %13855, %13848
  %13878 = load i32, ptr %278, align 4, !tbaa !5
  %13879 = call ptr @__errno_location() #11
  store i32 %13878, ptr %13879, align 4, !tbaa !5
  %13880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13881 = load i32, ptr @test_count, align 4, !tbaa !5
  %13882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13883 = load i32, ptr %13882, align 4, !tbaa !5
  %13884 = call ptr @s2n_strerror(i32 noundef %13883, ptr noundef @.str.4)
  %13885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13886 = load i32, ptr %13885, align 4, !tbaa !5
  %13887 = call ptr @s2n_strerror_debug(i32 noundef %13886, ptr noundef @.str.4)
  %13888 = call ptr @__errno_location() #11
  %13889 = load i32, ptr %13888, align 4, !tbaa !5
  %13890 = call ptr @strerror(i32 noundef %13889) #10
  %13891 = call ptr @__errno_location() #11
  %13892 = load i32, ptr %13891, align 4, !tbaa !5
  %13893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13880, ptr noundef @.str.5, i32 noundef %13881, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 506, ptr noundef %13884, ptr noundef %13887, ptr noundef %13890, i32 noundef %13892) #10
  br label %13894

13894:                                            ; preds = %13877, %13860
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #10
  br label %13895

13895:                                            ; preds = %13894
  br label %13896

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

13897:                                            ; No predecessors!
  br label %13898

13898:                                            ; preds = %13897
  br label %13899

13899:                                            ; preds = %13898, %13840
  br label %13900

13900:                                            ; preds = %13899
  br label %13901

13901:                                            ; preds = %13900
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #10
  br label %13902

13902:                                            ; preds = %13901
  br label %13903

13903:                                            ; preds = %13902
  %13904 = call i32 @s2n_cleanup()
  %13905 = icmp eq i32 %13904, -1
  br i1 %13905, label %13906, label %13957

13906:                                            ; preds = %13903
  br label %13907

13907:                                            ; preds = %13906
  br label %13908

13908:                                            ; preds = %13907
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #10
  %13909 = call ptr @__errno_location() #11
  %13910 = load i32, ptr %13909, align 4, !tbaa !5
  store i32 %13910, ptr %279, align 4, !tbaa !5
  %13911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13912 = call i32 @s2n_print_stacktrace(ptr noundef %13911)
  %13913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13914 = trunc i8 %13913 to i1
  br i1 %13914, label %13915, label %13937

13915:                                            ; preds = %13908
  %13916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13917 = call i32 @fileno(ptr noundef %13916) #10
  %13918 = call i32 @isatty(i32 noundef %13917) #10
  %13919 = icmp ne i32 %13918, 0
  br i1 %13919, label %13920, label %13937

13920:                                            ; preds = %13915
  %13921 = load i32, ptr %279, align 4, !tbaa !5
  %13922 = call ptr @__errno_location() #11
  store i32 %13921, ptr %13922, align 4, !tbaa !5
  %13923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13924 = load i32, ptr @test_count, align 4, !tbaa !5
  %13925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13926 = load i32, ptr %13925, align 4, !tbaa !5
  %13927 = call ptr @s2n_strerror(i32 noundef %13926, ptr noundef @.str.4)
  %13928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13929 = load i32, ptr %13928, align 4, !tbaa !5
  %13930 = call ptr @s2n_strerror_debug(i32 noundef %13929, ptr noundef @.str.4)
  %13931 = call ptr @__errno_location() #11
  %13932 = load i32, ptr %13931, align 4, !tbaa !5
  %13933 = call ptr @strerror(i32 noundef %13932) #10
  %13934 = call ptr @__errno_location() #11
  %13935 = load i32, ptr %13934, align 4, !tbaa !5
  %13936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13923, ptr noundef @.str.2, i32 noundef %13924, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 510, ptr noundef %13927, ptr noundef %13930, ptr noundef %13933, i32 noundef %13935) #10
  br label %13954

13937:                                            ; preds = %13915, %13908
  %13938 = load i32, ptr %279, align 4, !tbaa !5
  %13939 = call ptr @__errno_location() #11
  store i32 %13938, ptr %13939, align 4, !tbaa !5
  %13940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13941 = load i32, ptr @test_count, align 4, !tbaa !5
  %13942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13943 = load i32, ptr %13942, align 4, !tbaa !5
  %13944 = call ptr @s2n_strerror(i32 noundef %13943, ptr noundef @.str.4)
  %13945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13946 = load i32, ptr %13945, align 4, !tbaa !5
  %13947 = call ptr @s2n_strerror_debug(i32 noundef %13946, ptr noundef @.str.4)
  %13948 = call ptr @__errno_location() #11
  %13949 = load i32, ptr %13948, align 4, !tbaa !5
  %13950 = call ptr @strerror(i32 noundef %13949) #10
  %13951 = call ptr @__errno_location() #11
  %13952 = load i32, ptr %13951, align 4, !tbaa !5
  %13953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13940, ptr noundef @.str.5, i32 noundef %13941, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 510, ptr noundef %13944, ptr noundef %13947, ptr noundef %13950, i32 noundef %13952) #10
  br label %13954

13954:                                            ; preds = %13937, %13920
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #10
  br label %13955

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

13956:                                            ; No predecessors!
  br label %13957

13957:                                            ; preds = %13956, %13903
  br label %13958

13958:                                            ; preds = %13957
  br label %13959

13959:                                            ; preds = %13958
  br label %13960

13960:                                            ; preds = %13959
  %13961 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %13962 = icmp eq i32 %13961, -1
  br i1 %13962, label %13963, label %14014

13963:                                            ; preds = %13960
  br label %13964

13964:                                            ; preds = %13963
  br label %13965

13965:                                            ; preds = %13964
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #10
  %13966 = call ptr @__errno_location() #11
  %13967 = load i32, ptr %13966, align 4, !tbaa !5
  store i32 %13967, ptr %280, align 4, !tbaa !5
  %13968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13969 = call i32 @s2n_print_stacktrace(ptr noundef %13968)
  %13970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13971 = trunc i8 %13970 to i1
  br i1 %13971, label %13972, label %13994

13972:                                            ; preds = %13965
  %13973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13974 = call i32 @fileno(ptr noundef %13973) #10
  %13975 = call i32 @isatty(i32 noundef %13974) #10
  %13976 = icmp ne i32 %13975, 0
  br i1 %13976, label %13977, label %13994

13977:                                            ; preds = %13972
  %13978 = load i32, ptr %280, align 4, !tbaa !5
  %13979 = call ptr @__errno_location() #11
  store i32 %13978, ptr %13979, align 4, !tbaa !5
  %13980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13981 = load i32, ptr @test_count, align 4, !tbaa !5
  %13982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13983 = load i32, ptr %13982, align 4, !tbaa !5
  %13984 = call ptr @s2n_strerror(i32 noundef %13983, ptr noundef @.str.4)
  %13985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13986 = load i32, ptr %13985, align 4, !tbaa !5
  %13987 = call ptr @s2n_strerror_debug(i32 noundef %13986, ptr noundef @.str.4)
  %13988 = call ptr @__errno_location() #11
  %13989 = load i32, ptr %13988, align 4, !tbaa !5
  %13990 = call ptr @strerror(i32 noundef %13989) #10
  %13991 = call ptr @__errno_location() #11
  %13992 = load i32, ptr %13991, align 4, !tbaa !5
  %13993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13980, ptr noundef @.str.2, i32 noundef %13981, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 510, ptr noundef %13984, ptr noundef %13987, ptr noundef %13990, i32 noundef %13992) #10
  br label %14011

13994:                                            ; preds = %13972, %13965
  %13995 = load i32, ptr %280, align 4, !tbaa !5
  %13996 = call ptr @__errno_location() #11
  store i32 %13995, ptr %13996, align 4, !tbaa !5
  %13997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13998 = load i32, ptr @test_count, align 4, !tbaa !5
  %13999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14000 = load i32, ptr %13999, align 4, !tbaa !5
  %14001 = call ptr @s2n_strerror(i32 noundef %14000, ptr noundef @.str.4)
  %14002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14003 = load i32, ptr %14002, align 4, !tbaa !5
  %14004 = call ptr @s2n_strerror_debug(i32 noundef %14003, ptr noundef @.str.4)
  %14005 = call ptr @__errno_location() #11
  %14006 = load i32, ptr %14005, align 4, !tbaa !5
  %14007 = call ptr @strerror(i32 noundef %14006) #10
  %14008 = call ptr @__errno_location() #11
  %14009 = load i32, ptr %14008, align 4, !tbaa !5
  %14010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13997, ptr noundef @.str.5, i32 noundef %13998, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 510, ptr noundef %14001, ptr noundef %14004, ptr noundef %14007, i32 noundef %14009) #10
  br label %14011

14011:                                            ; preds = %13994, %13977
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #10
  br label %14012

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

14013:                                            ; No predecessors!
  br label %14014

14014:                                            ; preds = %14013, %13960
  br label %14015

14015:                                            ; preds = %14014
  %14016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14017 = trunc i8 %14016 to i1
  br i1 %14017, label %14018, label %14034

14018:                                            ; preds = %14015
  %14019 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14020 = call i32 @fileno(ptr noundef %14019) #10
  %14021 = call i32 @isatty(i32 noundef %14020) #10
  %14022 = icmp ne i32 %14021, 0
  br i1 %14022, label %14023, label %14034

14023:                                            ; preds = %14018
  %14024 = load i32, ptr @test_count, align 4, !tbaa !5
  %14025 = icmp ne i32 %14024, 0
  br i1 %14025, label %14026, label %14030

14026:                                            ; preds = %14023
  %14027 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14028 = load i32, ptr @test_count, align 4, !tbaa !5
  %14029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14027, ptr noundef @.str.10, i32 noundef %14028) #10
  br label %14033

14030:                                            ; preds = %14023
  %14031 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14031, ptr noundef @.str.11) #10
  br label %14033

14033:                                            ; preds = %14030, %14026
  br label %14045

14034:                                            ; preds = %14018, %14015
  %14035 = load i32, ptr @test_count, align 4, !tbaa !5
  %14036 = icmp ne i32 %14035, 0
  br i1 %14036, label %14037, label %14041

14037:                                            ; preds = %14034
  %14038 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14039 = load i32, ptr @test_count, align 4, !tbaa !5
  %14040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14038, ptr noundef @.str.12, i32 noundef %14039) #10
  br label %14044

14041:                                            ; preds = %14034
  %14042 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14042, ptr noundef @.str.13) #10
  br label %14044

14044:                                            ; preds = %14041, %14037
  br label %14045

14045:                                            ; preds = %14044, %14033
  store i32 0, ptr %3, align 4
  br label %14047

14046:                                            ; No predecessors!
  br label %14047

14047:                                            ; preds = %14046, %14045, %604
  %14048 = load i32, ptr %3, align 4
  ret i32 %14048
}

; 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 i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) #2

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

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

declare i32 @s2n_connection_set_early_data_expected(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_set_hello_retry_required(ptr noundef) #2

declare i32 @s2n_psk_parameters_wipe(ptr noundef) #2

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

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

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

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

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

declare ptr @s2n_config_new() #2

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

declare i32 @s2n_config_free(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_client_hello_send(ptr noundef) #2

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

declare i32 @s2n_establish_session(ptr noundef) #2

declare i32 @s2n_server_hello_retry_send(ptr noundef) #2

declare i32 @s2n_server_hello_recv(ptr noundef) #2

declare zeroext i1 @s2n_is_hello_retry_handshake(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 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }

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

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


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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_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 [96 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
@s2n_client_early_data_indication_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.14 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [89 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.18 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [77 x i8], align 1
@s2n_client_psk_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.23 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [74 x i8], align 1
@s2n_rsa_with_3des_ede_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.27 = external hidden unnamed_addr constant [129 x i8], align 1
@__const.main.app_protocol_data = external hidden unnamed_addr constant [20 x i8], align 16
@__const.main.other_app_protocol_data = external hidden unnamed_addr constant [19 x i8], align 16
@.str.28 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.35 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_ecc_curve_secp521r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.68 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [74 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@security_policy_test_all_tls13 = external constant %struct.s2n_security_policy, align 8
@.str.72 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [55 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 [20 x i8], align 16
  %4 = alloca [19 x i8], align 16
  %5 = alloca %struct.s2n_blob, align 8
  %6 = alloca %struct.s2n_blob, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %7 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %9 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10 = tail call i32 @fflush(ptr noundef %9)
  %11 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %12 = icmp eq i32 %11, -1
  br i1 %12, label %13, label %37

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

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

24:                                               ; preds = %20, %13
  br label %25

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

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

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

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

53:                                               ; preds = %49, %42
  br label %54

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

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

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

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

80:                                               ; preds = %76, %69
  br label %81

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

93:                                               ; preds = %66
  %94 = tail call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %94, label %170, label %95

95:                                               ; preds = %93
  %96 = tail call i32 @s2n_cleanup() #11
  %97 = icmp eq i32 %96, -1
  br i1 %97, label %98, label %122

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

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

109:                                              ; preds = %105, %98
  br label %110

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

122:                                              ; preds = %95
  %123 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %124 = icmp eq i32 %123, -1
  br i1 %124, label %125, label %149

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

132:                                              ; preds = %125
  %133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %134 = tail call i32 @fileno(ptr noundef %133) #11
  %135 = tail call i32 @isatty(i32 noundef %134) #11
  %.not741 = icmp eq i32 %135, 0
  br i1 %.not741, label %136, label %137

136:                                              ; preds = %132, %125
  br label %137

137:                                              ; preds = %132, %136
  %.str.5.sink1003 = phi ptr [ @.str.5, %136 ], [ @.str.2, %132 ]
  store i32 %127, ptr %126, align 4, !tbaa !5
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = load i32, ptr @test_count, align 4, !tbaa !5
  %140 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = tail call ptr @s2n_strerror(i32 noundef %141, ptr noundef nonnull @.str.4) #11
  %143 = load i32, ptr %140, align 4, !tbaa !5
  %144 = tail call ptr @s2n_strerror_debug(i32 noundef %143, ptr noundef nonnull @.str.4) #11
  %145 = load i32, ptr %126, align 4, !tbaa !5
  %146 = tail call ptr @strerror(i32 noundef %145) #11
  %147 = load i32, ptr %126, align 4, !tbaa !5
  %148 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %138, ptr noundef nonnull %.str.5.sink1003, i32 noundef %139, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %142, ptr noundef %144, ptr noundef %146, i32 noundef %147) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

149:                                              ; preds = %122
  %150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %151 = trunc nuw i8 %150 to i1
  br i1 %151, label %152, label %163

152:                                              ; preds = %149
  %153 = load ptr, ptr @stdout, align 8, !tbaa !9
  %154 = tail call i32 @fileno(ptr noundef %153) #11
  %155 = tail call i32 @isatty(i32 noundef %154) #11
  %.not = icmp eq i32 %155, 0
  br i1 %.not, label %163, label %156

156:                                              ; preds = %152
  %157 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not740 = icmp eq i32 %157, 0
  %158 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not740, label %161, label %159

159:                                              ; preds = %156
  %160 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %158, ptr noundef nonnull @.str.10, i32 noundef %157) #11
  br label %6090

161:                                              ; preds = %156
  %162 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %158, ptr noundef nonnull @.str.11) #11
  br label %6090

163:                                              ; preds = %152, %149
  %164 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not739 = icmp eq i32 %164, 0
  %165 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not739, label %168, label %166

166:                                              ; preds = %163
  %167 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %165, ptr noundef nonnull @.str.12, i32 noundef %164) #11
  br label %6090

168:                                              ; preds = %163
  %169 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %165, ptr noundef nonnull @.str.13) #11
  br label %6090

170:                                              ; preds = %93
  %171 = load i32, ptr @test_count, align 4, !tbaa !5
  %172 = add nsw i32 %171, 1
  store i32 %172, ptr @test_count, align 4, !tbaa !5
  %173 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_early_data_indication_extension, i64 24), align 8, !tbaa !15
  %174 = tail call zeroext i1 %173(ptr noundef null) #11
  br i1 %174, label %175, label %199

175:                                              ; preds = %170
  %176 = tail call ptr @__errno_location() #12
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = tail call i32 @s2n_print_stacktrace(ptr noundef %178) #11
  %180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %181 = trunc nuw i8 %180 to i1
  br i1 %181, label %182, label %186

182:                                              ; preds = %175
  %183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %184 = tail call i32 @fileno(ptr noundef %183) #11
  %185 = tail call i32 @isatty(i32 noundef %184) #11
  %.not956 = icmp eq i32 %185, 0
  br i1 %.not956, label %186, label %187

186:                                              ; preds = %182, %175
  br label %187

187:                                              ; preds = %182, %186
  %.str.5.sink1014 = phi ptr [ @.str.5, %186 ], [ @.str.2, %182 ]
  store i32 %177, ptr %176, align 4, !tbaa !5
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = load i32, ptr @test_count, align 4, !tbaa !5
  %190 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = tail call ptr @s2n_strerror(i32 noundef %191, ptr noundef nonnull @.str.4) #11
  %193 = load i32, ptr %190, align 4, !tbaa !5
  %194 = tail call ptr @s2n_strerror_debug(i32 noundef %193, ptr noundef nonnull @.str.4) #11
  %195 = load i32, ptr %176, align 4, !tbaa !5
  %196 = tail call ptr @strerror(i32 noundef %195) #11
  %197 = load i32, ptr %176, align 4, !tbaa !5
  %198 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %188, ptr noundef nonnull %.str.5.sink1014, i32 noundef %189, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %192, ptr noundef %194, ptr noundef %196, i32 noundef %197) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

199:                                              ; preds = %170
  %200 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %201 = load i32, ptr @test_count, align 4, !tbaa !5
  %202 = add nsw i32 %201, 1
  store i32 %202, ptr @test_count, align 4, !tbaa !5
  %203 = icmp eq ptr %200, null
  br i1 %203, label %204, label %228

204:                                              ; preds = %199
  %205 = tail call ptr @__errno_location() #12
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = tail call i32 @s2n_print_stacktrace(ptr noundef %207) #11
  %209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %210 = trunc nuw i8 %209 to i1
  br i1 %210, label %211, label %215

211:                                              ; preds = %204
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = tail call i32 @fileno(ptr noundef %212) #11
  %214 = tail call i32 @isatty(i32 noundef %213) #11
  %.not955 = icmp eq i32 %214, 0
  br i1 %.not955, label %215, label %216

215:                                              ; preds = %211, %204
  br label %216

216:                                              ; preds = %211, %215
  %.str.5.sink1025 = phi ptr [ @.str.5, %215 ], [ @.str.2, %211 ]
  store i32 %206, ptr %205, align 4, !tbaa !5
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = load i32, ptr @test_count, align 4, !tbaa !5
  %219 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %220 = load i32, ptr %219, align 4, !tbaa !5
  %221 = tail call ptr @s2n_strerror(i32 noundef %220, ptr noundef nonnull @.str.4) #11
  %222 = load i32, ptr %219, align 4, !tbaa !5
  %223 = tail call ptr @s2n_strerror_debug(i32 noundef %222, ptr noundef nonnull @.str.4) #11
  %224 = load i32, ptr %205, align 4, !tbaa !5
  %225 = tail call ptr @strerror(i32 noundef %224) #11
  %226 = load i32, ptr %205, align 4, !tbaa !5
  %227 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %217, ptr noundef nonnull %.str.5.sink1025, i32 noundef %218, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %221, ptr noundef %223, ptr noundef %225, i32 noundef %226) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

228:                                              ; preds = %199
  %229 = add nsw i32 %201, 2
  store i32 %229, ptr @test_count, align 4, !tbaa !5
  %230 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %200, ptr noundef nonnull @.str.16) #11
  %231 = icmp eq i32 %230, -1
  br i1 %231, label %232, label %256

232:                                              ; preds = %228
  %233 = tail call ptr @__errno_location() #12
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %236 = tail call i32 @s2n_print_stacktrace(ptr noundef %235) #11
  %237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %238 = trunc nuw i8 %237 to i1
  br i1 %238, label %239, label %243

239:                                              ; preds = %232
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = tail call i32 @fileno(ptr noundef %240) #11
  %242 = tail call i32 @isatty(i32 noundef %241) #11
  %.not954 = icmp eq i32 %242, 0
  br i1 %.not954, label %243, label %244

243:                                              ; preds = %239, %232
  br label %244

244:                                              ; preds = %239, %243
  %.str.5.sink1036 = phi ptr [ @.str.5, %243 ], [ @.str.2, %239 ]
  store i32 %234, ptr %233, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = tail call ptr @s2n_strerror(i32 noundef %248, ptr noundef nonnull @.str.4) #11
  %250 = load i32, ptr %247, align 4, !tbaa !5
  %251 = tail call ptr @s2n_strerror_debug(i32 noundef %250, ptr noundef nonnull @.str.4) #11
  %252 = load i32, ptr %233, align 4, !tbaa !5
  %253 = tail call ptr @strerror(i32 noundef %252) #11
  %254 = load i32, ptr %233, align 4, !tbaa !5
  %255 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %245, ptr noundef nonnull %.str.5.sink1036, i32 noundef %246, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %249, ptr noundef %251, ptr noundef %253, i32 noundef %254) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

256:                                              ; preds = %228
  %257 = load i32, ptr @test_count, align 4, !tbaa !5
  %258 = add nsw i32 %257, 1
  store i32 %258, ptr @test_count, align 4, !tbaa !5
  %259 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %200, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %260 = tail call zeroext i1 @s2n_result_is_ok(i32 %259)
  br i1 %260, label %285, label %261

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

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

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

273:                                              ; preds = %268, %272
  %.str.5.sink1047 = phi ptr [ @.str.5, %272 ], [ @.str.2, %268 ]
  store i32 %263, ptr %262, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = tail call ptr @s2n_strerror(i32 noundef %277, ptr noundef nonnull @.str.4) #11
  %279 = load i32, ptr %276, align 4, !tbaa !5
  %280 = tail call ptr @s2n_strerror_debug(i32 noundef %279, ptr noundef nonnull @.str.4) #11
  %281 = load i32, ptr %262, align 4, !tbaa !5
  %282 = tail call ptr @strerror(i32 noundef %281) #11
  %283 = load i32, ptr %262, align 4, !tbaa !5
  %284 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %274, ptr noundef nonnull %.str.5.sink1047, i32 noundef %275, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %278, ptr noundef %280, ptr noundef %282, i32 noundef %283) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

285:                                              ; preds = %256
  %286 = load i32, ptr @test_count, align 4, !tbaa !5
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr @test_count, align 4, !tbaa !5
  %288 = tail call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %200) #11
  %289 = icmp eq i32 %288, -1
  br i1 %289, label %290, label %314

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

297:                                              ; preds = %290
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = tail call i32 @fileno(ptr noundef %298) #11
  %300 = tail call i32 @isatty(i32 noundef %299) #11
  %.not953 = icmp eq i32 %300, 0
  br i1 %.not953, label %301, label %302

301:                                              ; preds = %297, %290
  br label %302

302:                                              ; preds = %297, %301
  %.str.5.sink1058 = phi ptr [ @.str.5, %301 ], [ @.str.2, %297 ]
  store i32 %292, ptr %291, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %306 = load i32, ptr %305, align 4, !tbaa !5
  %307 = tail call ptr @s2n_strerror(i32 noundef %306, ptr noundef nonnull @.str.4) #11
  %308 = load i32, ptr %305, align 4, !tbaa !5
  %309 = tail call ptr @s2n_strerror_debug(i32 noundef %308, ptr noundef nonnull @.str.4) #11
  %310 = load i32, ptr %291, align 4, !tbaa !5
  %311 = tail call ptr @strerror(i32 noundef %310) #11
  %312 = load i32, ptr %291, align 4, !tbaa !5
  %313 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %303, ptr noundef nonnull %.str.5.sink1058, i32 noundef %304, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %307, ptr noundef %309, ptr noundef %311, i32 noundef %312) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

314:                                              ; preds = %285
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr @test_count, align 4, !tbaa !5
  %317 = tail call zeroext i1 %173(ptr noundef nonnull %200) #11
  br i1 %317, label %342, label %318

318:                                              ; preds = %314
  %319 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %328 = tail call i32 @isatty(i32 noundef %327) #11
  %.not744 = icmp eq i32 %328, 0
  br i1 %.not744, label %329, label %330

329:                                              ; preds = %325, %318
  br label %330

330:                                              ; preds = %325, %329
  %.str.5.sink1069 = 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) #11
  %336 = load i32, ptr %333, align 4, !tbaa !5
  %337 = tail call ptr @s2n_strerror_debug(i32 noundef %336, ptr noundef nonnull @.str.4) #11
  %338 = load i32, ptr %319, align 4, !tbaa !5
  %339 = tail call ptr @strerror(i32 noundef %338) #11
  %340 = load i32, ptr %319, align 4, !tbaa !5
  %341 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %331, ptr noundef nonnull %.str.5.sink1069, i32 noundef %332, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %335, ptr noundef %337, ptr noundef %339, i32 noundef %340) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

342:                                              ; preds = %314
  %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_connection_free(ptr noundef nonnull %200) #11
  %346 = icmp eq i32 %345, -1
  br i1 %346, label %347, label %371

347:                                              ; preds = %342
  %348 = tail call ptr @__errno_location() #12
  %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) #11
  %352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %353 = trunc nuw i8 %352 to i1
  br i1 %353, label %354, label %358

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

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

359:                                              ; preds = %354, %358
  %.str.5.sink1080 = 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) #11
  %365 = load i32, ptr %362, align 4, !tbaa !5
  %366 = tail call ptr @s2n_strerror_debug(i32 noundef %365, ptr noundef nonnull @.str.4) #11
  %367 = load i32, ptr %348, align 4, !tbaa !5
  %368 = tail call ptr @strerror(i32 noundef %367) #11
  %369 = load i32, ptr %348, align 4, !tbaa !5
  %370 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %360, ptr noundef nonnull %.str.5.sink1080, i32 noundef %361, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %364, ptr noundef %366, ptr noundef %368, i32 noundef %369) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

371:                                              ; preds = %342
  %372 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr @test_count, align 4, !tbaa !5
  %375 = icmp eq ptr %372, null
  br i1 %375, label %376, label %400

376:                                              ; preds = %371
  %377 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %386 = tail call i32 @isatty(i32 noundef %385) #11
  %.not951 = icmp eq i32 %386, 0
  br i1 %.not951, label %387, label %388

387:                                              ; preds = %383, %376
  br label %388

388:                                              ; preds = %383, %387
  %.str.5.sink1091 = 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) #11
  %394 = load i32, ptr %391, align 4, !tbaa !5
  %395 = tail call ptr @s2n_strerror_debug(i32 noundef %394, ptr noundef nonnull @.str.4) #11
  %396 = load i32, ptr %377, align 4, !tbaa !5
  %397 = tail call ptr @strerror(i32 noundef %396) #11
  %398 = load i32, ptr %377, align 4, !tbaa !5
  %399 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %389, ptr noundef nonnull %.str.5.sink1091, i32 noundef %390, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %393, ptr noundef %395, ptr noundef %397, i32 noundef %398) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

400:                                              ; preds = %371
  %401 = add nsw i32 %373, 2
  store i32 %401, ptr @test_count, align 4, !tbaa !5
  %402 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %372, ptr noundef nonnull @.str.16) #11
  %403 = icmp eq i32 %402, -1
  br i1 %403, label %404, label %428

404:                                              ; preds = %400
  %405 = tail call ptr @__errno_location() #12
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = tail call i32 @s2n_print_stacktrace(ptr noundef %407) #11
  %409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %410 = trunc nuw i8 %409 to i1
  br i1 %410, label %411, label %415

411:                                              ; preds = %404
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = tail call i32 @fileno(ptr noundef %412) #11
  %414 = tail call i32 @isatty(i32 noundef %413) #11
  %.not950 = icmp eq i32 %414, 0
  br i1 %.not950, label %415, label %416

415:                                              ; preds = %411, %404
  br label %416

416:                                              ; preds = %411, %415
  %.str.5.sink1102 = phi ptr [ @.str.5, %415 ], [ @.str.2, %411 ]
  store i32 %406, ptr %405, align 4, !tbaa !5
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = tail call ptr @s2n_strerror(i32 noundef %420, ptr noundef nonnull @.str.4) #11
  %422 = load i32, ptr %419, align 4, !tbaa !5
  %423 = tail call ptr @s2n_strerror_debug(i32 noundef %422, ptr noundef nonnull @.str.4) #11
  %424 = load i32, ptr %405, align 4, !tbaa !5
  %425 = tail call ptr @strerror(i32 noundef %424) #11
  %426 = load i32, ptr %405, align 4, !tbaa !5
  %427 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %417, ptr noundef nonnull %.str.5.sink1102, i32 noundef %418, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %421, ptr noundef %423, ptr noundef %425, i32 noundef %426) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

428:                                              ; preds = %400
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr @test_count, align 4, !tbaa !5
  %431 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %372, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %432 = tail call zeroext i1 @s2n_result_is_ok(i32 %431)
  br i1 %432, label %457, label %433

433:                                              ; preds = %428
  %434 = tail call ptr @__errno_location() #12
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = tail call i32 @s2n_print_stacktrace(ptr noundef %436) #11
  %438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %439 = trunc nuw i8 %438 to i1
  br i1 %439, label %440, label %444

440:                                              ; preds = %433
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = tail call i32 @fileno(ptr noundef %441) #11
  %443 = tail call i32 @isatty(i32 noundef %442) #11
  %.not745 = icmp eq i32 %443, 0
  br i1 %.not745, label %444, label %445

444:                                              ; preds = %440, %433
  br label %445

445:                                              ; preds = %440, %444
  %.str.5.sink1113 = phi ptr [ @.str.5, %444 ], [ @.str.2, %440 ]
  store i32 %435, ptr %434, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = tail call ptr @s2n_strerror(i32 noundef %449, ptr noundef nonnull @.str.4) #11
  %451 = load i32, ptr %448, align 4, !tbaa !5
  %452 = tail call ptr @s2n_strerror_debug(i32 noundef %451, ptr noundef nonnull @.str.4) #11
  %453 = load i32, ptr %434, align 4, !tbaa !5
  %454 = tail call ptr @strerror(i32 noundef %453) #11
  %455 = load i32, ptr %434, align 4, !tbaa !5
  %456 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %446, ptr noundef nonnull %.str.5.sink1113, i32 noundef %447, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %450, ptr noundef %452, ptr noundef %454, i32 noundef %455) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

457:                                              ; preds = %428
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr @test_count, align 4, !tbaa !5
  %460 = tail call zeroext i1 %173(ptr noundef nonnull %372) #11
  br i1 %460, label %461, label %485

461:                                              ; preds = %457
  %462 = tail call ptr @__errno_location() #12
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = tail call i32 @s2n_print_stacktrace(ptr noundef %464) #11
  %466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %467 = trunc nuw i8 %466 to i1
  br i1 %467, label %468, label %472

468:                                              ; preds = %461
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = tail call i32 @fileno(ptr noundef %469) #11
  %471 = tail call i32 @isatty(i32 noundef %470) #11
  %.not949 = icmp eq i32 %471, 0
  br i1 %.not949, label %472, label %473

472:                                              ; preds = %468, %461
  br label %473

473:                                              ; preds = %468, %472
  %.str.5.sink1124 = phi ptr [ @.str.5, %472 ], [ @.str.2, %468 ]
  store i32 %463, ptr %462, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = tail call ptr @s2n_strerror(i32 noundef %477, ptr noundef nonnull @.str.4) #11
  %479 = load i32, ptr %476, align 4, !tbaa !5
  %480 = tail call ptr @s2n_strerror_debug(i32 noundef %479, ptr noundef nonnull @.str.4) #11
  %481 = load i32, ptr %462, align 4, !tbaa !5
  %482 = tail call ptr @strerror(i32 noundef %481) #11
  %483 = load i32, ptr %462, align 4, !tbaa !5
  %484 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %474, ptr noundef nonnull %.str.5.sink1124, i32 noundef %475, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %478, ptr noundef %480, ptr noundef %482, i32 noundef %483) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

485:                                              ; preds = %457
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr @test_count, align 4, !tbaa !5
  %488 = tail call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %372) #11
  %489 = icmp eq i32 %488, -1
  br i1 %489, label %490, label %514

490:                                              ; preds = %485
  %491 = tail call ptr @__errno_location() #12
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = tail call i32 @s2n_print_stacktrace(ptr noundef %493) #11
  %495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %496 = trunc nuw i8 %495 to i1
  br i1 %496, label %497, label %501

497:                                              ; preds = %490
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = tail call i32 @fileno(ptr noundef %498) #11
  %500 = tail call i32 @isatty(i32 noundef %499) #11
  %.not948 = icmp eq i32 %500, 0
  br i1 %.not948, label %501, label %502

501:                                              ; preds = %497, %490
  br label %502

502:                                              ; preds = %497, %501
  %.str.5.sink1135 = phi ptr [ @.str.5, %501 ], [ @.str.2, %497 ]
  store i32 %492, ptr %491, align 4, !tbaa !5
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = tail call ptr @s2n_strerror(i32 noundef %506, ptr noundef nonnull @.str.4) #11
  %508 = load i32, ptr %505, align 4, !tbaa !5
  %509 = tail call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef nonnull @.str.4) #11
  %510 = load i32, ptr %491, align 4, !tbaa !5
  %511 = tail call ptr @strerror(i32 noundef %510) #11
  %512 = load i32, ptr %491, align 4, !tbaa !5
  %513 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %503, ptr noundef nonnull %.str.5.sink1135, i32 noundef %504, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %507, ptr noundef %509, ptr noundef %511, i32 noundef %512) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

514:                                              ; preds = %485
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr @test_count, align 4, !tbaa !5
  %517 = tail call zeroext i1 %173(ptr noundef nonnull %372) #11
  br i1 %517, label %542, label %518

518:                                              ; preds = %514
  %519 = tail call ptr @__errno_location() #12
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = tail call i32 @s2n_print_stacktrace(ptr noundef %521) #11
  %523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %524 = trunc nuw i8 %523 to i1
  br i1 %524, label %525, label %529

525:                                              ; preds = %518
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = tail call i32 @fileno(ptr noundef %526) #11
  %528 = tail call i32 @isatty(i32 noundef %527) #11
  %.not746 = icmp eq i32 %528, 0
  br i1 %.not746, label %529, label %530

529:                                              ; preds = %525, %518
  br label %530

530:                                              ; preds = %525, %529
  %.str.5.sink1146 = phi ptr [ @.str.5, %529 ], [ @.str.2, %525 ]
  store i32 %520, ptr %519, align 4, !tbaa !5
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = tail call ptr @s2n_strerror(i32 noundef %534, ptr noundef nonnull @.str.4) #11
  %536 = load i32, ptr %533, align 4, !tbaa !5
  %537 = tail call ptr @s2n_strerror_debug(i32 noundef %536, ptr noundef nonnull @.str.4) #11
  %538 = load i32, ptr %519, align 4, !tbaa !5
  %539 = tail call ptr @strerror(i32 noundef %538) #11
  %540 = load i32, ptr %519, align 4, !tbaa !5
  %541 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %531, ptr noundef nonnull %.str.5.sink1146, i32 noundef %532, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %535, ptr noundef %537, ptr noundef %539, i32 noundef %540) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

542:                                              ; preds = %514
  %543 = load i32, ptr @test_count, align 4, !tbaa !5
  %544 = add nsw i32 %543, 1
  store i32 %544, ptr @test_count, align 4, !tbaa !5
  %545 = tail call i32 @s2n_connection_free(ptr noundef nonnull %372) #11
  %546 = icmp eq i32 %545, -1
  br i1 %546, label %547, label %571

547:                                              ; preds = %542
  %548 = tail call ptr @__errno_location() #12
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = tail call i32 @s2n_print_stacktrace(ptr noundef %550) #11
  %552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %553 = trunc nuw i8 %552 to i1
  br i1 %553, label %554, label %558

554:                                              ; preds = %547
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = tail call i32 @fileno(ptr noundef %555) #11
  %557 = tail call i32 @isatty(i32 noundef %556) #11
  %.not947 = icmp eq i32 %557, 0
  br i1 %.not947, label %558, label %559

558:                                              ; preds = %554, %547
  br label %559

559:                                              ; preds = %554, %558
  %.str.5.sink1157 = phi ptr [ @.str.5, %558 ], [ @.str.2, %554 ]
  store i32 %549, ptr %548, align 4, !tbaa !5
  %560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = tail call ptr @s2n_strerror(i32 noundef %563, ptr noundef nonnull @.str.4) #11
  %565 = load i32, ptr %562, align 4, !tbaa !5
  %566 = tail call ptr @s2n_strerror_debug(i32 noundef %565, ptr noundef nonnull @.str.4) #11
  %567 = load i32, ptr %548, align 4, !tbaa !5
  %568 = tail call ptr @strerror(i32 noundef %567) #11
  %569 = load i32, ptr %548, align 4, !tbaa !5
  %570 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %560, ptr noundef nonnull %.str.5.sink1157, i32 noundef %561, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %564, ptr noundef %566, ptr noundef %568, i32 noundef %569) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

571:                                              ; preds = %542
  %572 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr @test_count, align 4, !tbaa !5
  %575 = icmp eq ptr %572, null
  br i1 %575, label %576, label %600

576:                                              ; preds = %571
  %577 = tail call ptr @__errno_location() #12
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = tail call i32 @s2n_print_stacktrace(ptr noundef %579) #11
  %581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %582 = trunc nuw i8 %581 to i1
  br i1 %582, label %583, label %587

583:                                              ; preds = %576
  %584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %585 = tail call i32 @fileno(ptr noundef %584) #11
  %586 = tail call i32 @isatty(i32 noundef %585) #11
  %.not946 = icmp eq i32 %586, 0
  br i1 %.not946, label %587, label %588

587:                                              ; preds = %583, %576
  br label %588

588:                                              ; preds = %583, %587
  %.str.5.sink1168 = phi ptr [ @.str.5, %587 ], [ @.str.2, %583 ]
  store i32 %578, ptr %577, align 4, !tbaa !5
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = load i32, ptr @test_count, align 4, !tbaa !5
  %591 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = tail call ptr @s2n_strerror(i32 noundef %592, ptr noundef nonnull @.str.4) #11
  %594 = load i32, ptr %591, align 4, !tbaa !5
  %595 = tail call ptr @s2n_strerror_debug(i32 noundef %594, ptr noundef nonnull @.str.4) #11
  %596 = load i32, ptr %577, align 4, !tbaa !5
  %597 = tail call ptr @strerror(i32 noundef %596) #11
  %598 = load i32, ptr %577, align 4, !tbaa !5
  %599 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %589, ptr noundef nonnull %.str.5.sink1168, i32 noundef %590, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %593, ptr noundef %595, ptr noundef %597, i32 noundef %598) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

600:                                              ; preds = %571
  %601 = add nsw i32 %573, 2
  store i32 %601, ptr @test_count, align 4, !tbaa !5
  %602 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %572, ptr noundef nonnull @.str.16) #11
  %603 = icmp eq i32 %602, -1
  br i1 %603, label %604, label %628

604:                                              ; preds = %600
  %605 = tail call ptr @__errno_location() #12
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %608 = tail call i32 @s2n_print_stacktrace(ptr noundef %607) #11
  %609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %610 = trunc nuw i8 %609 to i1
  br i1 %610, label %611, label %615

611:                                              ; preds = %604
  %612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %613 = tail call i32 @fileno(ptr noundef %612) #11
  %614 = tail call i32 @isatty(i32 noundef %613) #11
  %.not945 = icmp eq i32 %614, 0
  br i1 %.not945, label %615, label %616

615:                                              ; preds = %611, %604
  br label %616

616:                                              ; preds = %611, %615
  %.str.5.sink1179 = phi ptr [ @.str.5, %615 ], [ @.str.2, %611 ]
  store i32 %606, ptr %605, align 4, !tbaa !5
  %617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %618 = load i32, ptr @test_count, align 4, !tbaa !5
  %619 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %621 = tail call ptr @s2n_strerror(i32 noundef %620, ptr noundef nonnull @.str.4) #11
  %622 = load i32, ptr %619, align 4, !tbaa !5
  %623 = tail call ptr @s2n_strerror_debug(i32 noundef %622, ptr noundef nonnull @.str.4) #11
  %624 = load i32, ptr %605, align 4, !tbaa !5
  %625 = tail call ptr @strerror(i32 noundef %624) #11
  %626 = load i32, ptr %605, align 4, !tbaa !5
  %627 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %617, ptr noundef nonnull %.str.5.sink1179, i32 noundef %618, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %621, ptr noundef %623, ptr noundef %625, i32 noundef %626) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

628:                                              ; preds = %600
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = add nsw i32 %629, 1
  store i32 %630, ptr @test_count, align 4, !tbaa !5
  %631 = tail call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %572) #11
  %632 = icmp eq i32 %631, -1
  br i1 %632, label %633, label %657

633:                                              ; preds = %628
  %634 = tail call ptr @__errno_location() #12
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = tail call i32 @s2n_print_stacktrace(ptr noundef %636) #11
  %638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %639 = trunc nuw i8 %638 to i1
  br i1 %639, label %640, label %644

640:                                              ; preds = %633
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = tail call i32 @fileno(ptr noundef %641) #11
  %643 = tail call i32 @isatty(i32 noundef %642) #11
  %.not944 = icmp eq i32 %643, 0
  br i1 %.not944, label %644, label %645

644:                                              ; preds = %640, %633
  br label %645

645:                                              ; preds = %640, %644
  %.str.5.sink1190 = phi ptr [ @.str.5, %644 ], [ @.str.2, %640 ]
  store i32 %635, ptr %634, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = tail call ptr @s2n_strerror(i32 noundef %649, ptr noundef nonnull @.str.4) #11
  %651 = load i32, ptr %648, align 4, !tbaa !5
  %652 = tail call ptr @s2n_strerror_debug(i32 noundef %651, ptr noundef nonnull @.str.4) #11
  %653 = load i32, ptr %634, align 4, !tbaa !5
  %654 = tail call ptr @strerror(i32 noundef %653) #11
  %655 = load i32, ptr %634, align 4, !tbaa !5
  %656 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %646, ptr noundef nonnull %.str.5.sink1190, i32 noundef %647, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %650, ptr noundef %652, ptr noundef %654, i32 noundef %655) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

657:                                              ; preds = %628
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = add nsw i32 %658, 1
  store i32 %659, ptr @test_count, align 4, !tbaa !5
  %660 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_psk_extension, i64 24), align 8, !tbaa !15
  %661 = tail call zeroext i1 %660(ptr noundef nonnull %572) #11
  br i1 %661, label %662, label %686

662:                                              ; preds = %657
  %663 = tail call ptr @__errno_location() #12
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = tail call i32 @s2n_print_stacktrace(ptr noundef %665) #11
  %667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %668 = trunc nuw i8 %667 to i1
  br i1 %668, label %669, label %673

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

673:                                              ; preds = %669, %662
  br label %674

674:                                              ; preds = %669, %673
  %.str.5.sink1201 = phi ptr [ @.str.5, %673 ], [ @.str.2, %669 ]
  store i32 %664, ptr %663, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = tail call ptr @s2n_strerror(i32 noundef %678, ptr noundef nonnull @.str.4) #11
  %680 = load i32, ptr %677, align 4, !tbaa !5
  %681 = tail call ptr @s2n_strerror_debug(i32 noundef %680, ptr noundef nonnull @.str.4) #11
  %682 = load i32, ptr %663, align 4, !tbaa !5
  %683 = tail call ptr @strerror(i32 noundef %682) #11
  %684 = load i32, ptr %663, align 4, !tbaa !5
  %685 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef nonnull %.str.5.sink1201, i32 noundef %676, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %679, ptr noundef %681, ptr noundef %683, i32 noundef %684) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

686:                                              ; preds = %657
  %687 = load i32, ptr @test_count, align 4, !tbaa !5
  %688 = add nsw i32 %687, 1
  store i32 %688, ptr @test_count, align 4, !tbaa !5
  %689 = tail call zeroext i1 %173(ptr noundef nonnull %572) #11
  br i1 %689, label %690, label %714

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

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

701:                                              ; preds = %697, %690
  br label %702

702:                                              ; preds = %697, %701
  %.str.5.sink1212 = phi ptr [ @.str.5, %701 ], [ @.str.2, %697 ]
  store i32 %692, ptr %691, align 4, !tbaa !5
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = tail call ptr @s2n_strerror(i32 noundef %706, ptr noundef nonnull @.str.4) #11
  %708 = load i32, ptr %705, align 4, !tbaa !5
  %709 = tail call ptr @s2n_strerror_debug(i32 noundef %708, ptr noundef nonnull @.str.4) #11
  %710 = load i32, ptr %691, align 4, !tbaa !5
  %711 = tail call ptr @strerror(i32 noundef %710) #11
  %712 = load i32, ptr %691, align 4, !tbaa !5
  %713 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %703, ptr noundef nonnull %.str.5.sink1212, i32 noundef %704, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %707, ptr noundef %709, ptr noundef %711, i32 noundef %712) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

714:                                              ; preds = %686
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr @test_count, align 4, !tbaa !5
  %717 = tail call i32 @s2n_connection_free(ptr noundef nonnull %572) #11
  %718 = icmp eq i32 %717, -1
  br i1 %718, label %719, label %743

719:                                              ; preds = %714
  %720 = tail call ptr @__errno_location() #12
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = tail call i32 @s2n_print_stacktrace(ptr noundef %722) #11
  %724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %725 = trunc nuw i8 %724 to i1
  br i1 %725, label %726, label %730

726:                                              ; preds = %719
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = tail call i32 @fileno(ptr noundef %727) #11
  %729 = tail call i32 @isatty(i32 noundef %728) #11
  %.not941 = icmp eq i32 %729, 0
  br i1 %.not941, label %730, label %731

730:                                              ; preds = %726, %719
  br label %731

731:                                              ; preds = %726, %730
  %.str.5.sink1223 = phi ptr [ @.str.5, %730 ], [ @.str.2, %726 ]
  store i32 %721, ptr %720, align 4, !tbaa !5
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = tail call ptr @s2n_strerror(i32 noundef %735, ptr noundef nonnull @.str.4) #11
  %737 = load i32, ptr %734, align 4, !tbaa !5
  %738 = tail call ptr @s2n_strerror_debug(i32 noundef %737, ptr noundef nonnull @.str.4) #11
  %739 = load i32, ptr %720, align 4, !tbaa !5
  %740 = tail call ptr @strerror(i32 noundef %739) #11
  %741 = load i32, ptr %720, align 4, !tbaa !5
  %742 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %732, ptr noundef nonnull %.str.5.sink1223, i32 noundef %733, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %736, ptr noundef %738, ptr noundef %740, i32 noundef %741) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

743:                                              ; preds = %714
  %744 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = icmp eq ptr %744, null
  br i1 %747, label %748, label %772

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

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

759:                                              ; preds = %755, %748
  br label %760

760:                                              ; preds = %755, %759
  %.str.5.sink1234 = phi ptr [ @.str.5, %759 ], [ @.str.2, %755 ]
  store i32 %750, ptr %749, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = tail call ptr @s2n_strerror(i32 noundef %764, ptr noundef nonnull @.str.4) #11
  %766 = load i32, ptr %763, align 4, !tbaa !5
  %767 = tail call ptr @s2n_strerror_debug(i32 noundef %766, ptr noundef nonnull @.str.4) #11
  %768 = load i32, ptr %749, align 4, !tbaa !5
  %769 = tail call ptr @strerror(i32 noundef %768) #11
  %770 = load i32, ptr %749, align 4, !tbaa !5
  %771 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef nonnull %.str.5.sink1234, i32 noundef %762, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %765, ptr noundef %767, ptr noundef %769, i32 noundef %770) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

772:                                              ; preds = %743
  %773 = add nsw i32 %745, 2
  store i32 %773, ptr @test_count, align 4, !tbaa !5
  %774 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %744, ptr noundef nonnull @.str.16) #11
  %775 = icmp eq i32 %774, -1
  br i1 %775, label %776, label %800

776:                                              ; preds = %772
  %777 = tail call ptr @__errno_location() #12
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = tail call i32 @s2n_print_stacktrace(ptr noundef %779) #11
  %781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %782 = trunc nuw i8 %781 to i1
  br i1 %782, label %783, label %787

783:                                              ; preds = %776
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = tail call i32 @fileno(ptr noundef %784) #11
  %786 = tail call i32 @isatty(i32 noundef %785) #11
  %.not939 = icmp eq i32 %786, 0
  br i1 %.not939, label %787, label %788

787:                                              ; preds = %783, %776
  br label %788

788:                                              ; preds = %783, %787
  %.str.5.sink1245 = phi ptr [ @.str.5, %787 ], [ @.str.2, %783 ]
  store i32 %778, ptr %777, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = tail call ptr @s2n_strerror(i32 noundef %792, ptr noundef nonnull @.str.4) #11
  %794 = load i32, ptr %791, align 4, !tbaa !5
  %795 = tail call ptr @s2n_strerror_debug(i32 noundef %794, ptr noundef nonnull @.str.4) #11
  %796 = load i32, ptr %777, align 4, !tbaa !5
  %797 = tail call ptr @strerror(i32 noundef %796) #11
  %798 = load i32, ptr %777, align 4, !tbaa !5
  %799 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.5.sink1245, i32 noundef %790, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %793, ptr noundef %795, ptr noundef %797, i32 noundef %798) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

800:                                              ; preds = %772
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = add nsw i32 %801, 1
  store i32 %802, ptr @test_count, align 4, !tbaa !5
  %803 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %744, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %804 = tail call zeroext i1 @s2n_result_is_ok(i32 %803)
  br i1 %804, label %829, label %805

805:                                              ; preds = %800
  %806 = tail call ptr @__errno_location() #12
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = tail call i32 @s2n_print_stacktrace(ptr noundef %808) #11
  %810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %811 = trunc nuw i8 %810 to i1
  br i1 %811, label %812, label %816

812:                                              ; preds = %805
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = tail call i32 @fileno(ptr noundef %813) #11
  %815 = tail call i32 @isatty(i32 noundef %814) #11
  %.not747 = icmp eq i32 %815, 0
  br i1 %.not747, label %816, label %817

816:                                              ; preds = %812, %805
  br label %817

817:                                              ; preds = %812, %816
  %.str.5.sink1256 = phi ptr [ @.str.5, %816 ], [ @.str.2, %812 ]
  store i32 %807, ptr %806, align 4, !tbaa !5
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = load i32, ptr @test_count, align 4, !tbaa !5
  %820 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = tail call ptr @s2n_strerror(i32 noundef %821, ptr noundef nonnull @.str.4) #11
  %823 = load i32, ptr %820, align 4, !tbaa !5
  %824 = tail call ptr @s2n_strerror_debug(i32 noundef %823, ptr noundef nonnull @.str.4) #11
  %825 = load i32, ptr %806, align 4, !tbaa !5
  %826 = tail call ptr @strerror(i32 noundef %825) #11
  %827 = load i32, ptr %806, align 4, !tbaa !5
  %828 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %818, ptr noundef nonnull %.str.5.sink1256, i32 noundef %819, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %822, ptr noundef %824, ptr noundef %826, i32 noundef %827) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

829:                                              ; preds = %800
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = add nsw i32 %830, 1
  store i32 %831, ptr @test_count, align 4, !tbaa !5
  %832 = tail call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %744) #11
  %833 = icmp eq i32 %832, -1
  br i1 %833, label %834, label %858

834:                                              ; preds = %829
  %835 = tail call ptr @__errno_location() #12
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = tail call i32 @s2n_print_stacktrace(ptr noundef %837) #11
  %839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %840 = trunc nuw i8 %839 to i1
  br i1 %840, label %841, label %845

841:                                              ; preds = %834
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = tail call i32 @fileno(ptr noundef %842) #11
  %844 = tail call i32 @isatty(i32 noundef %843) #11
  %.not938 = icmp eq i32 %844, 0
  br i1 %.not938, label %845, label %846

845:                                              ; preds = %841, %834
  br label %846

846:                                              ; preds = %841, %845
  %.str.5.sink1267 = phi ptr [ @.str.5, %845 ], [ @.str.2, %841 ]
  store i32 %836, ptr %835, align 4, !tbaa !5
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = load i32, ptr @test_count, align 4, !tbaa !5
  %849 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = tail call ptr @s2n_strerror(i32 noundef %850, ptr noundef nonnull @.str.4) #11
  %852 = load i32, ptr %849, align 4, !tbaa !5
  %853 = tail call ptr @s2n_strerror_debug(i32 noundef %852, ptr noundef nonnull @.str.4) #11
  %854 = load i32, ptr %835, align 4, !tbaa !5
  %855 = tail call ptr @strerror(i32 noundef %854) #11
  %856 = load i32, ptr %835, align 4, !tbaa !5
  %857 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %847, ptr noundef nonnull %.str.5.sink1267, i32 noundef %848, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %851, ptr noundef %853, ptr noundef %855, i32 noundef %856) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

858:                                              ; preds = %829
  %859 = load i32, ptr @test_count, align 4, !tbaa !5
  %860 = add nsw i32 %859, 1
  store i32 %860, ptr @test_count, align 4, !tbaa !5
  %861 = tail call zeroext i1 %173(ptr noundef nonnull %744) #11
  br i1 %861, label %886, label %862

862:                                              ; preds = %858
  %863 = tail call ptr @__errno_location() #12
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = tail call i32 @s2n_print_stacktrace(ptr noundef %865) #11
  %867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %868 = trunc nuw i8 %867 to i1
  br i1 %868, label %869, label %873

869:                                              ; preds = %862
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = tail call i32 @fileno(ptr noundef %870) #11
  %872 = tail call i32 @isatty(i32 noundef %871) #11
  %.not748 = icmp eq i32 %872, 0
  br i1 %.not748, label %873, label %874

873:                                              ; preds = %869, %862
  br label %874

874:                                              ; preds = %869, %873
  %.str.5.sink1278 = phi ptr [ @.str.5, %873 ], [ @.str.2, %869 ]
  store i32 %864, ptr %863, align 4, !tbaa !5
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = tail call ptr @s2n_strerror(i32 noundef %878, ptr noundef nonnull @.str.4) #11
  %880 = load i32, ptr %877, align 4, !tbaa !5
  %881 = tail call ptr @s2n_strerror_debug(i32 noundef %880, ptr noundef nonnull @.str.4) #11
  %882 = load i32, ptr %863, align 4, !tbaa !5
  %883 = tail call ptr @strerror(i32 noundef %882) #11
  %884 = load i32, ptr %863, align 4, !tbaa !5
  %885 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %875, ptr noundef nonnull %.str.5.sink1278, i32 noundef %876, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %879, ptr noundef %881, ptr noundef %883, i32 noundef %884) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

886:                                              ; preds = %858
  %887 = load i32, ptr @test_count, align 4, !tbaa !5
  %888 = add nsw i32 %887, 1
  store i32 %888, ptr @test_count, align 4, !tbaa !5
  %889 = tail call i32 @s2n_set_hello_retry_required(ptr noundef nonnull %744) #11
  %890 = icmp eq i32 %889, -1
  br i1 %890, label %891, label %915

891:                                              ; preds = %886
  %892 = tail call ptr @__errno_location() #12
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = tail call i32 @s2n_print_stacktrace(ptr noundef %894) #11
  %896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %897 = trunc nuw i8 %896 to i1
  br i1 %897, label %898, label %902

898:                                              ; preds = %891
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = tail call i32 @fileno(ptr noundef %899) #11
  %901 = tail call i32 @isatty(i32 noundef %900) #11
  %.not937 = icmp eq i32 %901, 0
  br i1 %.not937, label %902, label %903

902:                                              ; preds = %898, %891
  br label %903

903:                                              ; preds = %898, %902
  %.str.5.sink1289 = phi ptr [ @.str.5, %902 ], [ @.str.2, %898 ]
  store i32 %893, ptr %892, align 4, !tbaa !5
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = load i32, ptr @test_count, align 4, !tbaa !5
  %906 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = tail call ptr @s2n_strerror(i32 noundef %907, ptr noundef nonnull @.str.4) #11
  %909 = load i32, ptr %906, align 4, !tbaa !5
  %910 = tail call ptr @s2n_strerror_debug(i32 noundef %909, ptr noundef nonnull @.str.4) #11
  %911 = load i32, ptr %892, align 4, !tbaa !5
  %912 = tail call ptr @strerror(i32 noundef %911) #11
  %913 = load i32, ptr %892, align 4, !tbaa !5
  %914 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %904, ptr noundef nonnull %.str.5.sink1289, i32 noundef %905, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %908, ptr noundef %910, ptr noundef %912, i32 noundef %913) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

915:                                              ; preds = %886
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = add nsw i32 %916, 1
  store i32 %917, ptr @test_count, align 4, !tbaa !5
  %918 = tail call zeroext i1 %173(ptr noundef nonnull %744) #11
  br i1 %918, label %919, label %943

919:                                              ; preds = %915
  %920 = tail call ptr @__errno_location() #12
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = tail call i32 @s2n_print_stacktrace(ptr noundef %922) #11
  %924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %925 = trunc nuw i8 %924 to i1
  br i1 %925, label %926, label %930

926:                                              ; preds = %919
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = tail call i32 @fileno(ptr noundef %927) #11
  %929 = tail call i32 @isatty(i32 noundef %928) #11
  %.not936 = icmp eq i32 %929, 0
  br i1 %.not936, label %930, label %931

930:                                              ; preds = %926, %919
  br label %931

931:                                              ; preds = %926, %930
  %.str.5.sink1300 = phi ptr [ @.str.5, %930 ], [ @.str.2, %926 ]
  store i32 %921, ptr %920, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = tail call ptr @s2n_strerror(i32 noundef %935, ptr noundef nonnull @.str.4) #11
  %937 = load i32, ptr %934, align 4, !tbaa !5
  %938 = tail call ptr @s2n_strerror_debug(i32 noundef %937, ptr noundef nonnull @.str.4) #11
  %939 = load i32, ptr %920, align 4, !tbaa !5
  %940 = tail call ptr @strerror(i32 noundef %939) #11
  %941 = load i32, ptr %920, align 4, !tbaa !5
  %942 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %932, ptr noundef nonnull %.str.5.sink1300, i32 noundef %933, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %936, ptr noundef %938, ptr noundef %940, i32 noundef %941) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

943:                                              ; preds = %915
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr @test_count, align 4, !tbaa !5
  %946 = tail call i32 @s2n_connection_free(ptr noundef nonnull %744) #11
  %947 = icmp eq i32 %946, -1
  br i1 %947, label %948, label %972

948:                                              ; preds = %943
  %949 = tail call ptr @__errno_location() #12
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = tail call i32 @s2n_print_stacktrace(ptr noundef %951) #11
  %953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %954 = trunc nuw i8 %953 to i1
  br i1 %954, label %955, label %959

955:                                              ; preds = %948
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = tail call i32 @fileno(ptr noundef %956) #11
  %958 = tail call i32 @isatty(i32 noundef %957) #11
  %.not935 = icmp eq i32 %958, 0
  br i1 %.not935, label %959, label %960

959:                                              ; preds = %955, %948
  br label %960

960:                                              ; preds = %955, %959
  %.str.5.sink1311 = phi ptr [ @.str.5, %959 ], [ @.str.2, %955 ]
  store i32 %950, ptr %949, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = tail call ptr @s2n_strerror(i32 noundef %964, ptr noundef nonnull @.str.4) #11
  %966 = load i32, ptr %963, align 4, !tbaa !5
  %967 = tail call ptr @s2n_strerror_debug(i32 noundef %966, ptr noundef nonnull @.str.4) #11
  %968 = load i32, ptr %949, align 4, !tbaa !5
  %969 = tail call ptr @strerror(i32 noundef %968) #11
  %970 = load i32, ptr %949, align 4, !tbaa !5
  %971 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef nonnull %.str.5.sink1311, i32 noundef %962, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %965, ptr noundef %967, ptr noundef %969, i32 noundef %970) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

972:                                              ; preds = %943
  %973 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = add nsw i32 %974, 1
  store i32 %975, ptr @test_count, align 4, !tbaa !5
  %976 = icmp eq ptr %973, null
  br i1 %976, label %977, label %1001

977:                                              ; preds = %972
  %978 = tail call ptr @__errno_location() #12
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = tail call i32 @s2n_print_stacktrace(ptr noundef %980) #11
  %982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %983 = trunc nuw i8 %982 to i1
  br i1 %983, label %984, label %988

984:                                              ; preds = %977
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = tail call i32 @fileno(ptr noundef %985) #11
  %987 = tail call i32 @isatty(i32 noundef %986) #11
  %.not934 = icmp eq i32 %987, 0
  br i1 %.not934, label %988, label %989

988:                                              ; preds = %984, %977
  br label %989

989:                                              ; preds = %984, %988
  %.str.5.sink1322 = phi ptr [ @.str.5, %988 ], [ @.str.2, %984 ]
  store i32 %979, ptr %978, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = tail call ptr @s2n_strerror(i32 noundef %993, ptr noundef nonnull @.str.4) #11
  %995 = load i32, ptr %992, align 4, !tbaa !5
  %996 = tail call ptr @s2n_strerror_debug(i32 noundef %995, ptr noundef nonnull @.str.4) #11
  %997 = load i32, ptr %978, align 4, !tbaa !5
  %998 = tail call ptr @strerror(i32 noundef %997) #11
  %999 = load i32, ptr %978, align 4, !tbaa !5
  %1000 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef nonnull %.str.5.sink1322, i32 noundef %991, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %994, ptr noundef %996, ptr noundef %998, i32 noundef %999) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1001:                                             ; preds = %972
  %1002 = add nsw i32 %974, 2
  store i32 %1002, ptr @test_count, align 4, !tbaa !5
  %1003 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %973, ptr noundef nonnull @.str.16) #11
  %1004 = icmp eq i32 %1003, -1
  br i1 %1004, label %1005, label %1029

1005:                                             ; preds = %1001
  %1006 = tail call ptr @__errno_location() #12
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = tail call i32 @s2n_print_stacktrace(ptr noundef %1008) #11
  %1010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1011 = trunc nuw i8 %1010 to i1
  br i1 %1011, label %1012, label %1016

1012:                                             ; preds = %1005
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = tail call i32 @fileno(ptr noundef %1013) #11
  %1015 = tail call i32 @isatty(i32 noundef %1014) #11
  %.not933 = icmp eq i32 %1015, 0
  br i1 %.not933, label %1016, label %1017

1016:                                             ; preds = %1012, %1005
  br label %1017

1017:                                             ; preds = %1012, %1016
  %.str.5.sink1333 = phi ptr [ @.str.5, %1016 ], [ @.str.2, %1012 ]
  store i32 %1007, ptr %1006, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = load i32, ptr @test_count, align 4, !tbaa !5
  %1020 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = tail call ptr @s2n_strerror(i32 noundef %1021, ptr noundef nonnull @.str.4) #11
  %1023 = load i32, ptr %1020, align 4, !tbaa !5
  %1024 = tail call ptr @s2n_strerror_debug(i32 noundef %1023, ptr noundef nonnull @.str.4) #11
  %1025 = load i32, ptr %1006, align 4, !tbaa !5
  %1026 = tail call ptr @strerror(i32 noundef %1025) #11
  %1027 = load i32, ptr %1006, align 4, !tbaa !5
  %1028 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1018, ptr noundef nonnull %.str.5.sink1333, i32 noundef %1019, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1022, ptr noundef %1024, ptr noundef %1026, i32 noundef %1027) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1029:                                             ; preds = %1001
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = add nsw i32 %1030, 1
  store i32 %1031, ptr @test_count, align 4, !tbaa !5
  %1032 = tail call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %973) #11
  %1033 = icmp eq i32 %1032, -1
  br i1 %1033, label %1034, label %1058

1034:                                             ; preds = %1029
  %1035 = tail call ptr @__errno_location() #12
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = tail call i32 @s2n_print_stacktrace(ptr noundef %1037) #11
  %1039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1040 = trunc nuw i8 %1039 to i1
  br i1 %1040, label %1041, label %1045

1041:                                             ; preds = %1034
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = tail call i32 @fileno(ptr noundef %1042) #11
  %1044 = tail call i32 @isatty(i32 noundef %1043) #11
  %.not932 = icmp eq i32 %1044, 0
  br i1 %.not932, label %1045, label %1046

1045:                                             ; preds = %1041, %1034
  br label %1046

1046:                                             ; preds = %1041, %1045
  %.str.5.sink1344 = phi ptr [ @.str.5, %1045 ], [ @.str.2, %1041 ]
  store i32 %1036, ptr %1035, align 4, !tbaa !5
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = load i32, ptr @test_count, align 4, !tbaa !5
  %1049 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1050 = load i32, ptr %1049, align 4, !tbaa !5
  %1051 = tail call ptr @s2n_strerror(i32 noundef %1050, ptr noundef nonnull @.str.4) #11
  %1052 = load i32, ptr %1049, align 4, !tbaa !5
  %1053 = tail call ptr @s2n_strerror_debug(i32 noundef %1052, ptr noundef nonnull @.str.4) #11
  %1054 = load i32, ptr %1035, align 4, !tbaa !5
  %1055 = tail call ptr @strerror(i32 noundef %1054) #11
  %1056 = load i32, ptr %1035, align 4, !tbaa !5
  %1057 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1047, ptr noundef nonnull %.str.5.sink1344, i32 noundef %1048, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1051, ptr noundef %1053, ptr noundef %1055, i32 noundef %1056) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1058:                                             ; preds = %1029
  %1059 = load i32, ptr @test_count, align 4, !tbaa !5
  %1060 = add nsw i32 %1059, 1
  store i32 %1060, ptr @test_count, align 4, !tbaa !5
  %1061 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %973, i32 noundef 0, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %1062 = tail call zeroext i1 @s2n_result_is_ok(i32 %1061)
  br i1 %1062, label %1087, label %1063

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

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

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

1075:                                             ; preds = %1070, %1074
  %.str.5.sink1355 = phi ptr [ @.str.5, %1074 ], [ @.str.2, %1070 ]
  store i32 %1065, ptr %1064, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = load i32, ptr @test_count, align 4, !tbaa !5
  %1078 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = tail call ptr @s2n_strerror(i32 noundef %1079, ptr noundef nonnull @.str.4) #11
  %1081 = load i32, ptr %1078, align 4, !tbaa !5
  %1082 = tail call ptr @s2n_strerror_debug(i32 noundef %1081, ptr noundef nonnull @.str.4) #11
  %1083 = load i32, ptr %1064, align 4, !tbaa !5
  %1084 = tail call ptr @strerror(i32 noundef %1083) #11
  %1085 = load i32, ptr %1064, align 4, !tbaa !5
  %1086 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1076, ptr noundef nonnull %.str.5.sink1355, i32 noundef %1077, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1080, ptr noundef %1082, ptr noundef %1084, i32 noundef %1085) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1087:                                             ; preds = %1058
  %1088 = load i32, ptr @test_count, align 4, !tbaa !5
  %1089 = add nsw i32 %1088, 1
  store i32 %1089, ptr @test_count, align 4, !tbaa !5
  %1090 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %973, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %1091 = tail call zeroext i1 @s2n_result_is_ok(i32 %1090)
  br i1 %1091, label %1116, label %1092

1092:                                             ; preds = %1087
  %1093 = tail call ptr @__errno_location() #12
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = tail call i32 @s2n_print_stacktrace(ptr noundef %1095) #11
  %1097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1098 = trunc nuw i8 %1097 to i1
  br i1 %1098, label %1099, label %1103

1099:                                             ; preds = %1092
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = tail call i32 @fileno(ptr noundef %1100) #11
  %1102 = tail call i32 @isatty(i32 noundef %1101) #11
  %.not750 = icmp eq i32 %1102, 0
  br i1 %.not750, label %1103, label %1104

1103:                                             ; preds = %1099, %1092
  br label %1104

1104:                                             ; preds = %1099, %1103
  %.str.5.sink1366 = phi ptr [ @.str.5, %1103 ], [ @.str.2, %1099 ]
  store i32 %1094, ptr %1093, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = tail call ptr @s2n_strerror(i32 noundef %1108, ptr noundef nonnull @.str.4) #11
  %1110 = load i32, ptr %1107, align 4, !tbaa !5
  %1111 = tail call ptr @s2n_strerror_debug(i32 noundef %1110, ptr noundef nonnull @.str.4) #11
  %1112 = load i32, ptr %1093, align 4, !tbaa !5
  %1113 = tail call ptr @strerror(i32 noundef %1112) #11
  %1114 = load i32, ptr %1093, align 4, !tbaa !5
  %1115 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef nonnull %.str.5.sink1366, i32 noundef %1106, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1109, ptr noundef %1111, ptr noundef %1113, i32 noundef %1114) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1116:                                             ; preds = %1087
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = tail call zeroext i1 %173(ptr noundef nonnull %973) #11
  br i1 %1119, label %1120, label %1144

1120:                                             ; preds = %1116
  %1121 = tail call ptr @__errno_location() #12
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = tail call i32 @s2n_print_stacktrace(ptr noundef %1123) #11
  %1125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1126 = trunc nuw i8 %1125 to i1
  br i1 %1126, label %1127, label %1131

1127:                                             ; preds = %1120
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = tail call i32 @fileno(ptr noundef %1128) #11
  %1130 = tail call i32 @isatty(i32 noundef %1129) #11
  %.not931 = icmp eq i32 %1130, 0
  br i1 %.not931, label %1131, label %1132

1131:                                             ; preds = %1127, %1120
  br label %1132

1132:                                             ; preds = %1127, %1131
  %.str.5.sink1377 = phi ptr [ @.str.5, %1131 ], [ @.str.2, %1127 ]
  store i32 %1122, ptr %1121, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = tail call ptr @s2n_strerror(i32 noundef %1136, ptr noundef nonnull @.str.4) #11
  %1138 = load i32, ptr %1135, align 4, !tbaa !5
  %1139 = tail call ptr @s2n_strerror_debug(i32 noundef %1138, ptr noundef nonnull @.str.4) #11
  %1140 = load i32, ptr %1121, align 4, !tbaa !5
  %1141 = tail call ptr @strerror(i32 noundef %1140) #11
  %1142 = load i32, ptr %1121, align 4, !tbaa !5
  %1143 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1133, ptr noundef nonnull %.str.5.sink1377, i32 noundef %1134, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1137, ptr noundef %1139, ptr noundef %1141, i32 noundef %1142) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1144:                                             ; preds = %1116
  %1145 = load i32, ptr @test_count, align 4, !tbaa !5
  %1146 = add nsw i32 %1145, 1
  store i32 %1146, ptr @test_count, align 4, !tbaa !5
  %1147 = getelementptr inbounds i8, ptr %973, i64 1688
  %1148 = tail call i32 @s2n_psk_parameters_wipe(ptr noundef nonnull %1147) #11
  %1149 = tail call zeroext i1 @s2n_result_is_ok(i32 %1148)
  br i1 %1149, label %1174, label %1150

1150:                                             ; preds = %1144
  %1151 = tail call ptr @__errno_location() #12
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = tail call i32 @s2n_print_stacktrace(ptr noundef %1153) #11
  %1155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1156 = trunc nuw i8 %1155 to i1
  br i1 %1156, label %1157, label %1161

1157:                                             ; preds = %1150
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = tail call i32 @fileno(ptr noundef %1158) #11
  %1160 = tail call i32 @isatty(i32 noundef %1159) #11
  %.not751 = icmp eq i32 %1160, 0
  br i1 %.not751, label %1161, label %1162

1161:                                             ; preds = %1157, %1150
  br label %1162

1162:                                             ; preds = %1157, %1161
  %.str.5.sink1388 = phi ptr [ @.str.5, %1161 ], [ @.str.2, %1157 ]
  store i32 %1152, ptr %1151, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = tail call ptr @s2n_strerror(i32 noundef %1166, ptr noundef nonnull @.str.4) #11
  %1168 = load i32, ptr %1165, align 4, !tbaa !5
  %1169 = tail call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef nonnull @.str.4) #11
  %1170 = load i32, ptr %1151, align 4, !tbaa !5
  %1171 = tail call ptr @strerror(i32 noundef %1170) #11
  %1172 = load i32, ptr %1151, align 4, !tbaa !5
  %1173 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1163, ptr noundef nonnull %.str.5.sink1388, i32 noundef %1164, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1167, ptr noundef %1169, ptr noundef %1171, i32 noundef %1172) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1174:                                             ; preds = %1144
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %973, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %1178 = tail call zeroext i1 @s2n_result_is_ok(i32 %1177)
  br i1 %1178, label %1203, label %1179

1179:                                             ; preds = %1174
  %1180 = tail call ptr @__errno_location() #12
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = tail call i32 @s2n_print_stacktrace(ptr noundef %1182) #11
  %1184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1185 = trunc nuw i8 %1184 to i1
  br i1 %1185, label %1186, label %1190

1186:                                             ; preds = %1179
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = tail call i32 @fileno(ptr noundef %1187) #11
  %1189 = tail call i32 @isatty(i32 noundef %1188) #11
  %.not752 = icmp eq i32 %1189, 0
  br i1 %.not752, label %1190, label %1191

1190:                                             ; preds = %1186, %1179
  br label %1191

1191:                                             ; preds = %1186, %1190
  %.str.5.sink1399 = phi ptr [ @.str.5, %1190 ], [ @.str.2, %1186 ]
  store i32 %1181, ptr %1180, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = tail call ptr @s2n_strerror(i32 noundef %1195, ptr noundef nonnull @.str.4) #11
  %1197 = load i32, ptr %1194, align 4, !tbaa !5
  %1198 = tail call ptr @s2n_strerror_debug(i32 noundef %1197, ptr noundef nonnull @.str.4) #11
  %1199 = load i32, ptr %1180, align 4, !tbaa !5
  %1200 = tail call ptr @strerror(i32 noundef %1199) #11
  %1201 = load i32, ptr %1180, align 4, !tbaa !5
  %1202 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1192, ptr noundef nonnull %.str.5.sink1399, i32 noundef %1193, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1196, ptr noundef %1198, ptr noundef %1200, i32 noundef %1201) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1203:                                             ; preds = %1174
  %1204 = load i32, ptr @test_count, align 4, !tbaa !5
  %1205 = add nsw i32 %1204, 1
  store i32 %1205, ptr @test_count, align 4, !tbaa !5
  %1206 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %973, i32 noundef 0, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %1207 = tail call zeroext i1 @s2n_result_is_ok(i32 %1206)
  br i1 %1207, label %1232, label %1208

1208:                                             ; preds = %1203
  %1209 = tail call ptr @__errno_location() #12
  %1210 = load i32, ptr %1209, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = tail call i32 @s2n_print_stacktrace(ptr noundef %1211) #11
  %1213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1214 = trunc nuw i8 %1213 to i1
  br i1 %1214, label %1215, label %1219

1215:                                             ; preds = %1208
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = tail call i32 @fileno(ptr noundef %1216) #11
  %1218 = tail call i32 @isatty(i32 noundef %1217) #11
  %.not753 = icmp eq i32 %1218, 0
  br i1 %.not753, label %1219, label %1220

1219:                                             ; preds = %1215, %1208
  br label %1220

1220:                                             ; preds = %1215, %1219
  %.str.5.sink1410 = phi ptr [ @.str.5, %1219 ], [ @.str.2, %1215 ]
  store i32 %1210, ptr %1209, align 4, !tbaa !5
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = load i32, ptr @test_count, align 4, !tbaa !5
  %1223 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = tail call ptr @s2n_strerror(i32 noundef %1224, ptr noundef nonnull @.str.4) #11
  %1226 = load i32, ptr %1223, align 4, !tbaa !5
  %1227 = tail call ptr @s2n_strerror_debug(i32 noundef %1226, ptr noundef nonnull @.str.4) #11
  %1228 = load i32, ptr %1209, align 4, !tbaa !5
  %1229 = tail call ptr @strerror(i32 noundef %1228) #11
  %1230 = load i32, ptr %1209, align 4, !tbaa !5
  %1231 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1221, ptr noundef nonnull %.str.5.sink1410, i32 noundef %1222, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %1225, ptr noundef %1227, ptr noundef %1229, i32 noundef %1230) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1232:                                             ; preds = %1203
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = add nsw i32 %1233, 1
  store i32 %1234, ptr @test_count, align 4, !tbaa !5
  %1235 = tail call zeroext i1 %173(ptr noundef nonnull %973) #11
  br i1 %1235, label %1260, label %1236

1236:                                             ; preds = %1232
  %1237 = tail call ptr @__errno_location() #12
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = tail call i32 @s2n_print_stacktrace(ptr noundef %1239) #11
  %1241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1242 = trunc nuw i8 %1241 to i1
  br i1 %1242, label %1243, label %1247

1243:                                             ; preds = %1236
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = tail call i32 @fileno(ptr noundef %1244) #11
  %1246 = tail call i32 @isatty(i32 noundef %1245) #11
  %.not754 = icmp eq i32 %1246, 0
  br i1 %.not754, label %1247, label %1248

1247:                                             ; preds = %1243, %1236
  br label %1248

1248:                                             ; preds = %1243, %1247
  %.str.5.sink1421 = phi ptr [ @.str.5, %1247 ], [ @.str.2, %1243 ]
  store i32 %1238, ptr %1237, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = tail call ptr @s2n_strerror(i32 noundef %1252, ptr noundef nonnull @.str.4) #11
  %1254 = load i32, ptr %1251, align 4, !tbaa !5
  %1255 = tail call ptr @s2n_strerror_debug(i32 noundef %1254, ptr noundef nonnull @.str.4) #11
  %1256 = load i32, ptr %1237, align 4, !tbaa !5
  %1257 = tail call ptr @strerror(i32 noundef %1256) #11
  %1258 = load i32, ptr %1237, align 4, !tbaa !5
  %1259 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1249, ptr noundef nonnull %.str.5.sink1421, i32 noundef %1250, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1253, ptr noundef %1255, ptr noundef %1257, i32 noundef %1258) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1260:                                             ; preds = %1232
  %1261 = load i32, ptr @test_count, align 4, !tbaa !5
  %1262 = add nsw i32 %1261, 1
  store i32 %1262, ptr @test_count, align 4, !tbaa !5
  %1263 = tail call i32 @s2n_connection_free(ptr noundef nonnull %973) #11
  %1264 = icmp eq i32 %1263, -1
  br i1 %1264, label %1265, label %1289

1265:                                             ; preds = %1260
  %1266 = tail call ptr @__errno_location() #12
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = tail call i32 @s2n_print_stacktrace(ptr noundef %1268) #11
  %1270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1271 = trunc nuw i8 %1270 to i1
  br i1 %1271, label %1272, label %1276

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

1276:                                             ; preds = %1272, %1265
  br label %1277

1277:                                             ; preds = %1272, %1276
  %.str.5.sink1432 = phi ptr [ @.str.5, %1276 ], [ @.str.2, %1272 ]
  store i32 %1267, ptr %1266, align 4, !tbaa !5
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = tail call ptr @s2n_strerror(i32 noundef %1281, ptr noundef nonnull @.str.4) #11
  %1283 = load i32, ptr %1280, align 4, !tbaa !5
  %1284 = tail call ptr @s2n_strerror_debug(i32 noundef %1283, ptr noundef nonnull @.str.4) #11
  %1285 = load i32, ptr %1266, align 4, !tbaa !5
  %1286 = tail call ptr @strerror(i32 noundef %1285) #11
  %1287 = load i32, ptr %1266, align 4, !tbaa !5
  %1288 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1278, ptr noundef nonnull %.str.5.sink1432, i32 noundef %1279, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1282, ptr noundef %1284, ptr noundef %1286, i32 noundef %1287) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1289:                                             ; preds = %1260
  %1290 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = add nsw i32 %1291, 1
  store i32 %1292, ptr @test_count, align 4, !tbaa !5
  %1293 = icmp eq ptr %1290, null
  br i1 %1293, label %1294, label %1318

1294:                                             ; preds = %1289
  %1295 = tail call ptr @__errno_location() #12
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1298 = tail call i32 @s2n_print_stacktrace(ptr noundef %1297) #11
  %1299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1300 = trunc nuw i8 %1299 to i1
  br i1 %1300, label %1301, label %1305

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

1305:                                             ; preds = %1301, %1294
  br label %1306

1306:                                             ; preds = %1301, %1305
  %.str.5.sink1443 = phi ptr [ @.str.5, %1305 ], [ @.str.2, %1301 ]
  store i32 %1296, ptr %1295, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = tail call ptr @s2n_strerror(i32 noundef %1310, ptr noundef nonnull @.str.4) #11
  %1312 = load i32, ptr %1309, align 4, !tbaa !5
  %1313 = tail call ptr @s2n_strerror_debug(i32 noundef %1312, ptr noundef nonnull @.str.4) #11
  %1314 = load i32, ptr %1295, align 4, !tbaa !5
  %1315 = tail call ptr @strerror(i32 noundef %1314) #11
  %1316 = load i32, ptr %1295, align 4, !tbaa !5
  %1317 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1307, ptr noundef nonnull %.str.5.sink1443, i32 noundef %1308, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1311, ptr noundef %1313, ptr noundef %1315, i32 noundef %1316) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1318:                                             ; preds = %1289
  %1319 = add nsw i32 %1291, 2
  store i32 %1319, ptr @test_count, align 4, !tbaa !5
  %1320 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1290, ptr noundef nonnull @.str.16) #11
  %1321 = icmp eq i32 %1320, -1
  br i1 %1321, label %1322, label %1346

1322:                                             ; preds = %1318
  %1323 = tail call ptr @__errno_location() #12
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = tail call i32 @s2n_print_stacktrace(ptr noundef %1325) #11
  %1327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1328 = trunc nuw i8 %1327 to i1
  br i1 %1328, label %1329, label %1333

1329:                                             ; preds = %1322
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = tail call i32 @fileno(ptr noundef %1330) #11
  %1332 = tail call i32 @isatty(i32 noundef %1331) #11
  %.not928 = icmp eq i32 %1332, 0
  br i1 %.not928, label %1333, label %1334

1333:                                             ; preds = %1329, %1322
  br label %1334

1334:                                             ; preds = %1329, %1333
  %.str.5.sink1454 = phi ptr [ @.str.5, %1333 ], [ @.str.2, %1329 ]
  store i32 %1324, ptr %1323, align 4, !tbaa !5
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = tail call ptr @s2n_strerror(i32 noundef %1338, ptr noundef nonnull @.str.4) #11
  %1340 = load i32, ptr %1337, align 4, !tbaa !5
  %1341 = tail call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef nonnull @.str.4) #11
  %1342 = load i32, ptr %1323, align 4, !tbaa !5
  %1343 = tail call ptr @strerror(i32 noundef %1342) #11
  %1344 = load i32, ptr %1323, align 4, !tbaa !5
  %1345 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1335, ptr noundef nonnull %.str.5.sink1454, i32 noundef %1336, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1339, ptr noundef %1341, ptr noundef %1343, i32 noundef %1344) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1346:                                             ; preds = %1318
  %1347 = load i32, ptr @test_count, align 4, !tbaa !5
  %1348 = add nsw i32 %1347, 1
  store i32 %1348, ptr @test_count, align 4, !tbaa !5
  %1349 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %1290, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %1350 = tail call zeroext i1 @s2n_result_is_ok(i32 %1349)
  br i1 %1350, label %1375, label %1351

1351:                                             ; preds = %1346
  %1352 = tail call ptr @__errno_location() #12
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = tail call i32 @s2n_print_stacktrace(ptr noundef %1354) #11
  %1356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1357 = trunc nuw i8 %1356 to i1
  br i1 %1357, label %1358, label %1362

1358:                                             ; preds = %1351
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = tail call i32 @fileno(ptr noundef %1359) #11
  %1361 = tail call i32 @isatty(i32 noundef %1360) #11
  %.not755 = icmp eq i32 %1361, 0
  br i1 %.not755, label %1362, label %1363

1362:                                             ; preds = %1358, %1351
  br label %1363

1363:                                             ; preds = %1358, %1362
  %.str.5.sink1465 = phi ptr [ @.str.5, %1362 ], [ @.str.2, %1358 ]
  store i32 %1353, ptr %1352, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = load i32, ptr @test_count, align 4, !tbaa !5
  %1366 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = tail call ptr @s2n_strerror(i32 noundef %1367, ptr noundef nonnull @.str.4) #11
  %1369 = load i32, ptr %1366, align 4, !tbaa !5
  %1370 = tail call ptr @s2n_strerror_debug(i32 noundef %1369, ptr noundef nonnull @.str.4) #11
  %1371 = load i32, ptr %1352, align 4, !tbaa !5
  %1372 = tail call ptr @strerror(i32 noundef %1371) #11
  %1373 = load i32, ptr %1352, align 4, !tbaa !5
  %1374 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1364, ptr noundef nonnull %.str.5.sink1465, i32 noundef %1365, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1368, ptr noundef %1370, ptr noundef %1372, i32 noundef %1373) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1375:                                             ; preds = %1346
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr @test_count, align 4, !tbaa !5
  %1378 = tail call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %1290) #11
  %1379 = icmp eq i32 %1378, -1
  br i1 %1379, label %1380, label %1404

1380:                                             ; preds = %1375
  %1381 = tail call ptr @__errno_location() #12
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = tail call i32 @s2n_print_stacktrace(ptr noundef %1383) #11
  %1385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1386 = trunc nuw i8 %1385 to i1
  br i1 %1386, label %1387, label %1391

1387:                                             ; preds = %1380
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = tail call i32 @fileno(ptr noundef %1388) #11
  %1390 = tail call i32 @isatty(i32 noundef %1389) #11
  %.not927 = icmp eq i32 %1390, 0
  br i1 %.not927, label %1391, label %1392

1391:                                             ; preds = %1387, %1380
  br label %1392

1392:                                             ; preds = %1387, %1391
  %.str.5.sink1476 = phi ptr [ @.str.5, %1391 ], [ @.str.2, %1387 ]
  store i32 %1382, ptr %1381, align 4, !tbaa !5
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = load i32, ptr @test_count, align 4, !tbaa !5
  %1395 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = tail call ptr @s2n_strerror(i32 noundef %1396, ptr noundef nonnull @.str.4) #11
  %1398 = load i32, ptr %1395, align 4, !tbaa !5
  %1399 = tail call ptr @s2n_strerror_debug(i32 noundef %1398, ptr noundef nonnull @.str.4) #11
  %1400 = load i32, ptr %1381, align 4, !tbaa !5
  %1401 = tail call ptr @strerror(i32 noundef %1400) #11
  %1402 = load i32, ptr %1381, align 4, !tbaa !5
  %1403 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1393, ptr noundef nonnull %.str.5.sink1476, i32 noundef %1394, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %1397, ptr noundef %1399, ptr noundef %1401, i32 noundef %1402) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1404:                                             ; preds = %1375
  %1405 = getelementptr inbounds i8, ptr %1290, i64 220
  store i8 33, ptr %1405, align 4, !tbaa !18
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = tail call zeroext i1 %173(ptr noundef nonnull %1290) #11
  br i1 %1408, label %1409, label %1433

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

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

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

1421:                                             ; preds = %1416, %1420
  %.str.5.sink1487 = phi ptr [ @.str.5, %1420 ], [ @.str.2, %1416 ]
  store i32 %1411, ptr %1410, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = tail call ptr @s2n_strerror(i32 noundef %1425, ptr noundef nonnull @.str.4) #11
  %1427 = load i32, ptr %1424, align 4, !tbaa !5
  %1428 = tail call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef nonnull @.str.4) #11
  %1429 = load i32, ptr %1410, align 4, !tbaa !5
  %1430 = tail call ptr @strerror(i32 noundef %1429) #11
  %1431 = load i32, ptr %1410, align 4, !tbaa !5
  %1432 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1422, ptr noundef nonnull %.str.5.sink1487, i32 noundef %1423, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1426, ptr noundef %1428, ptr noundef %1430, i32 noundef %1431) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1433:                                             ; preds = %1404
  store i8 34, ptr %1405, align 4, !tbaa !18
  %1434 = load i32, ptr @test_count, align 4, !tbaa !5
  %1435 = add nsw i32 %1434, 1
  store i32 %1435, ptr @test_count, align 4, !tbaa !5
  %1436 = tail call zeroext i1 %173(ptr noundef nonnull %1290) #11
  br i1 %1436, label %1461, label %1437

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

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

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

1449:                                             ; preds = %1444, %1448
  %.str.5.sink1498 = phi ptr [ @.str.5, %1448 ], [ @.str.2, %1444 ]
  store i32 %1439, ptr %1438, align 4, !tbaa !5
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = load i32, ptr @test_count, align 4, !tbaa !5
  %1452 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = tail call ptr @s2n_strerror(i32 noundef %1453, ptr noundef nonnull @.str.4) #11
  %1455 = load i32, ptr %1452, align 4, !tbaa !5
  %1456 = tail call ptr @s2n_strerror_debug(i32 noundef %1455, ptr noundef nonnull @.str.4) #11
  %1457 = load i32, ptr %1438, align 4, !tbaa !5
  %1458 = tail call ptr @strerror(i32 noundef %1457) #11
  %1459 = load i32, ptr %1438, align 4, !tbaa !5
  %1460 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1450, ptr noundef nonnull %.str.5.sink1498, i32 noundef %1451, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1454, ptr noundef %1456, ptr noundef %1458, i32 noundef %1459) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1461:                                             ; preds = %1433
  store i8 35, ptr %1405, align 4, !tbaa !18
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = add nsw i32 %1462, 1
  store i32 %1463, ptr @test_count, align 4, !tbaa !5
  %1464 = tail call zeroext i1 %173(ptr noundef nonnull %1290) #11
  br i1 %1464, label %1489, label %1465

1465:                                             ; preds = %1461
  %1466 = tail call ptr @__errno_location() #12
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1469 = tail call i32 @s2n_print_stacktrace(ptr noundef %1468) #11
  %1470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1471 = trunc nuw i8 %1470 to i1
  br i1 %1471, label %1472, label %1476

1472:                                             ; preds = %1465
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = tail call i32 @fileno(ptr noundef %1473) #11
  %1475 = tail call i32 @isatty(i32 noundef %1474) #11
  %.not757 = icmp eq i32 %1475, 0
  br i1 %.not757, label %1476, label %1477

1476:                                             ; preds = %1472, %1465
  br label %1477

1477:                                             ; preds = %1472, %1476
  %.str.5.sink1509 = phi ptr [ @.str.5, %1476 ], [ @.str.2, %1472 ]
  store i32 %1467, ptr %1466, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = load i32, ptr @test_count, align 4, !tbaa !5
  %1480 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1481 = load i32, ptr %1480, align 4, !tbaa !5
  %1482 = tail call ptr @s2n_strerror(i32 noundef %1481, ptr noundef nonnull @.str.4) #11
  %1483 = load i32, ptr %1480, align 4, !tbaa !5
  %1484 = tail call ptr @s2n_strerror_debug(i32 noundef %1483, ptr noundef nonnull @.str.4) #11
  %1485 = load i32, ptr %1466, align 4, !tbaa !5
  %1486 = tail call ptr @strerror(i32 noundef %1485) #11
  %1487 = load i32, ptr %1466, align 4, !tbaa !5
  %1488 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1478, ptr noundef nonnull %.str.5.sink1509, i32 noundef %1479, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1482, ptr noundef %1484, ptr noundef %1486, i32 noundef %1487) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1489:                                             ; preds = %1461
  %1490 = load i32, ptr @test_count, align 4, !tbaa !5
  %1491 = add nsw i32 %1490, 1
  store i32 %1491, ptr @test_count, align 4, !tbaa !5
  %1492 = tail call i32 @s2n_connection_free(ptr noundef nonnull %1290) #11
  %1493 = icmp eq i32 %1492, -1
  br i1 %1493, label %1494, label %1518

1494:                                             ; preds = %1489
  %1495 = tail call ptr @__errno_location() #12
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = tail call i32 @s2n_print_stacktrace(ptr noundef %1497) #11
  %1499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1500 = trunc nuw i8 %1499 to i1
  br i1 %1500, label %1501, label %1505

1501:                                             ; preds = %1494
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = tail call i32 @fileno(ptr noundef %1502) #11
  %1504 = tail call i32 @isatty(i32 noundef %1503) #11
  %.not925 = icmp eq i32 %1504, 0
  br i1 %.not925, label %1505, label %1506

1505:                                             ; preds = %1501, %1494
  br label %1506

1506:                                             ; preds = %1501, %1505
  %.str.5.sink1520 = phi ptr [ @.str.5, %1505 ], [ @.str.2, %1501 ]
  store i32 %1496, ptr %1495, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = tail call ptr @s2n_strerror(i32 noundef %1510, ptr noundef nonnull @.str.4) #11
  %1512 = load i32, ptr %1509, align 4, !tbaa !5
  %1513 = tail call ptr @s2n_strerror_debug(i32 noundef %1512, ptr noundef nonnull @.str.4) #11
  %1514 = load i32, ptr %1495, align 4, !tbaa !5
  %1515 = tail call ptr @strerror(i32 noundef %1514) #11
  %1516 = load i32, ptr %1495, align 4, !tbaa !5
  %1517 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1507, ptr noundef nonnull %.str.5.sink1520, i32 noundef %1508, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1511, ptr noundef %1513, ptr noundef %1515, i32 noundef %1516) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1518:                                             ; preds = %1489
  %1519 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = add nsw i32 %1520, 1
  store i32 %1521, ptr @test_count, align 4, !tbaa !5
  %1522 = icmp eq ptr %1519, null
  br i1 %1522, label %1523, label %1547

1523:                                             ; preds = %1518
  %1524 = tail call ptr @__errno_location() #12
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1527 = tail call i32 @s2n_print_stacktrace(ptr noundef %1526) #11
  %1528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1529 = trunc nuw i8 %1528 to i1
  br i1 %1529, label %1530, label %1534

1530:                                             ; preds = %1523
  %1531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1532 = tail call i32 @fileno(ptr noundef %1531) #11
  %1533 = tail call i32 @isatty(i32 noundef %1532) #11
  %.not924 = icmp eq i32 %1533, 0
  br i1 %.not924, label %1534, label %1535

1534:                                             ; preds = %1530, %1523
  br label %1535

1535:                                             ; preds = %1530, %1534
  %.str.5.sink1531 = phi ptr [ @.str.5, %1534 ], [ @.str.2, %1530 ]
  store i32 %1525, ptr %1524, align 4, !tbaa !5
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = load i32, ptr @test_count, align 4, !tbaa !5
  %1538 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = tail call ptr @s2n_strerror(i32 noundef %1539, ptr noundef nonnull @.str.4) #11
  %1541 = load i32, ptr %1538, align 4, !tbaa !5
  %1542 = tail call ptr @s2n_strerror_debug(i32 noundef %1541, ptr noundef nonnull @.str.4) #11
  %1543 = load i32, ptr %1524, align 4, !tbaa !5
  %1544 = tail call ptr @strerror(i32 noundef %1543) #11
  %1545 = load i32, ptr %1524, align 4, !tbaa !5
  %1546 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1536, ptr noundef nonnull %.str.5.sink1531, i32 noundef %1537, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1540, ptr noundef %1542, ptr noundef %1544, i32 noundef %1545) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1547:                                             ; preds = %1518
  %1548 = add nsw i32 %1520, 2
  store i32 %1548, ptr @test_count, align 4, !tbaa !5
  %1549 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1519, ptr noundef nonnull @.str.16) #11
  %1550 = icmp eq i32 %1549, -1
  br i1 %1550, label %1551, label %1575

1551:                                             ; preds = %1547
  %1552 = tail call ptr @__errno_location() #12
  %1553 = load i32, ptr %1552, align 4, !tbaa !5
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = tail call i32 @s2n_print_stacktrace(ptr noundef %1554) #11
  %1556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1557 = trunc nuw i8 %1556 to i1
  br i1 %1557, label %1558, label %1562

1558:                                             ; preds = %1551
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = tail call i32 @fileno(ptr noundef %1559) #11
  %1561 = tail call i32 @isatty(i32 noundef %1560) #11
  %.not923 = icmp eq i32 %1561, 0
  br i1 %.not923, label %1562, label %1563

1562:                                             ; preds = %1558, %1551
  br label %1563

1563:                                             ; preds = %1558, %1562
  %.str.5.sink1542 = phi ptr [ @.str.5, %1562 ], [ @.str.2, %1558 ]
  store i32 %1553, ptr %1552, align 4, !tbaa !5
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = tail call ptr @s2n_strerror(i32 noundef %1567, ptr noundef nonnull @.str.4) #11
  %1569 = load i32, ptr %1566, align 4, !tbaa !5
  %1570 = tail call ptr @s2n_strerror_debug(i32 noundef %1569, ptr noundef nonnull @.str.4) #11
  %1571 = load i32, ptr %1552, align 4, !tbaa !5
  %1572 = tail call ptr @strerror(i32 noundef %1571) #11
  %1573 = load i32, ptr %1552, align 4, !tbaa !5
  %1574 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1564, ptr noundef nonnull %.str.5.sink1542, i32 noundef %1565, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1568, ptr noundef %1570, ptr noundef %1572, i32 noundef %1573) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1575:                                             ; preds = %1547
  %1576 = load i32, ptr @test_count, align 4, !tbaa !5
  %1577 = add nsw i32 %1576, 1
  store i32 %1577, ptr @test_count, align 4, !tbaa !5
  %1578 = tail call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %1519) #11
  %1579 = icmp eq i32 %1578, -1
  br i1 %1579, label %1580, label %1604

1580:                                             ; preds = %1575
  %1581 = tail call ptr @__errno_location() #12
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = tail call i32 @s2n_print_stacktrace(ptr noundef %1583) #11
  %1585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1586 = trunc nuw i8 %1585 to i1
  br i1 %1586, label %1587, label %1591

1587:                                             ; preds = %1580
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = tail call i32 @fileno(ptr noundef %1588) #11
  %1590 = tail call i32 @isatty(i32 noundef %1589) #11
  %.not922 = icmp eq i32 %1590, 0
  br i1 %.not922, label %1591, label %1592

1591:                                             ; preds = %1587, %1580
  br label %1592

1592:                                             ; preds = %1587, %1591
  %.str.5.sink1553 = phi ptr [ @.str.5, %1591 ], [ @.str.2, %1587 ]
  store i32 %1582, ptr %1581, align 4, !tbaa !5
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = load i32, ptr @test_count, align 4, !tbaa !5
  %1595 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = tail call ptr @s2n_strerror(i32 noundef %1596, ptr noundef nonnull @.str.4) #11
  %1598 = load i32, ptr %1595, align 4, !tbaa !5
  %1599 = tail call ptr @s2n_strerror_debug(i32 noundef %1598, ptr noundef nonnull @.str.4) #11
  %1600 = load i32, ptr %1581, align 4, !tbaa !5
  %1601 = tail call ptr @strerror(i32 noundef %1600) #11
  %1602 = load i32, ptr %1581, align 4, !tbaa !5
  %1603 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1593, ptr noundef nonnull %.str.5.sink1553, i32 noundef %1594, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1597, ptr noundef %1599, ptr noundef %1601, i32 noundef %1602) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1604:                                             ; preds = %1575
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = add nsw i32 %1605, 1
  store i32 %1606, ptr @test_count, align 4, !tbaa !5
  %1607 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %1519, i32 noundef 10, ptr noundef nonnull @s2n_rsa_with_3des_ede_cbc_sha) #11
  %1608 = tail call zeroext i1 @s2n_result_is_ok(i32 %1607)
  br i1 %1608, label %1633, label %1609

1609:                                             ; preds = %1604
  %1610 = tail call ptr @__errno_location() #12
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = tail call i32 @s2n_print_stacktrace(ptr noundef %1612) #11
  %1614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1615 = trunc nuw i8 %1614 to i1
  br i1 %1615, label %1616, label %1620

1616:                                             ; preds = %1609
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = tail call i32 @fileno(ptr noundef %1617) #11
  %1619 = tail call i32 @isatty(i32 noundef %1618) #11
  %.not758 = icmp eq i32 %1619, 0
  br i1 %.not758, label %1620, label %1621

1620:                                             ; preds = %1616, %1609
  br label %1621

1621:                                             ; preds = %1616, %1620
  %.str.5.sink1564 = phi ptr [ @.str.5, %1620 ], [ @.str.2, %1616 ]
  store i32 %1611, ptr %1610, align 4, !tbaa !5
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = load i32, ptr @test_count, align 4, !tbaa !5
  %1624 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = tail call ptr @s2n_strerror(i32 noundef %1625, ptr noundef nonnull @.str.4) #11
  %1627 = load i32, ptr %1624, align 4, !tbaa !5
  %1628 = tail call ptr @s2n_strerror_debug(i32 noundef %1627, ptr noundef nonnull @.str.4) #11
  %1629 = load i32, ptr %1610, align 4, !tbaa !5
  %1630 = tail call ptr @strerror(i32 noundef %1629) #11
  %1631 = load i32, ptr %1610, align 4, !tbaa !5
  %1632 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1622, ptr noundef nonnull %.str.5.sink1564, i32 noundef %1623, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1626, ptr noundef %1628, ptr noundef %1630, i32 noundef %1631) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1633:                                             ; preds = %1604
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = add nsw i32 %1634, 1
  store i32 %1635, ptr @test_count, align 4, !tbaa !5
  %1636 = tail call zeroext i1 %173(ptr noundef nonnull %1519) #11
  br i1 %1636, label %1637, label %1661

1637:                                             ; preds = %1633
  %1638 = tail call ptr @__errno_location() #12
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = tail call i32 @s2n_print_stacktrace(ptr noundef %1640) #11
  %1642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1643 = trunc nuw i8 %1642 to i1
  br i1 %1643, label %1644, label %1648

1644:                                             ; preds = %1637
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = tail call i32 @fileno(ptr noundef %1645) #11
  %1647 = tail call i32 @isatty(i32 noundef %1646) #11
  %.not921 = icmp eq i32 %1647, 0
  br i1 %.not921, label %1648, label %1649

1648:                                             ; preds = %1644, %1637
  br label %1649

1649:                                             ; preds = %1644, %1648
  %.str.5.sink1575 = phi ptr [ @.str.5, %1648 ], [ @.str.2, %1644 ]
  store i32 %1639, ptr %1638, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = tail call ptr @s2n_strerror(i32 noundef %1653, ptr noundef nonnull @.str.4) #11
  %1655 = load i32, ptr %1652, align 4, !tbaa !5
  %1656 = tail call ptr @s2n_strerror_debug(i32 noundef %1655, ptr noundef nonnull @.str.4) #11
  %1657 = load i32, ptr %1638, align 4, !tbaa !5
  %1658 = tail call ptr @strerror(i32 noundef %1657) #11
  %1659 = load i32, ptr %1638, align 4, !tbaa !5
  %1660 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1650, ptr noundef nonnull %.str.5.sink1575, i32 noundef %1651, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1654, ptr noundef %1656, ptr noundef %1658, i32 noundef %1659) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1661:                                             ; preds = %1633
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = add nsw i32 %1662, 1
  store i32 %1663, ptr @test_count, align 4, !tbaa !5
  %1664 = getelementptr inbounds i8, ptr %1519, i64 1688
  %1665 = tail call i32 @s2n_psk_parameters_wipe(ptr noundef nonnull %1664) #11
  %1666 = tail call zeroext i1 @s2n_result_is_ok(i32 %1665)
  br i1 %1666, label %1691, label %1667

1667:                                             ; preds = %1661
  %1668 = tail call ptr @__errno_location() #12
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = tail call i32 @s2n_print_stacktrace(ptr noundef %1670) #11
  %1672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1673 = trunc nuw i8 %1672 to i1
  br i1 %1673, label %1674, label %1678

1674:                                             ; preds = %1667
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = tail call i32 @fileno(ptr noundef %1675) #11
  %1677 = tail call i32 @isatty(i32 noundef %1676) #11
  %.not759 = icmp eq i32 %1677, 0
  br i1 %.not759, label %1678, label %1679

1678:                                             ; preds = %1674, %1667
  br label %1679

1679:                                             ; preds = %1674, %1678
  %.str.5.sink1586 = phi ptr [ @.str.5, %1678 ], [ @.str.2, %1674 ]
  store i32 %1669, ptr %1668, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = load i32, ptr @test_count, align 4, !tbaa !5
  %1682 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = tail call ptr @s2n_strerror(i32 noundef %1683, ptr noundef nonnull @.str.4) #11
  %1685 = load i32, ptr %1682, align 4, !tbaa !5
  %1686 = tail call ptr @s2n_strerror_debug(i32 noundef %1685, ptr noundef nonnull @.str.4) #11
  %1687 = load i32, ptr %1668, align 4, !tbaa !5
  %1688 = tail call ptr @strerror(i32 noundef %1687) #11
  %1689 = load i32, ptr %1668, align 4, !tbaa !5
  %1690 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1680, ptr noundef nonnull %.str.5.sink1586, i32 noundef %1681, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1684, ptr noundef %1686, ptr noundef %1688, i32 noundef %1689) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1691:                                             ; preds = %1661
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = add nsw i32 %1692, 1
  store i32 %1693, ptr @test_count, align 4, !tbaa !5
  %1694 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %1519, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %1695 = tail call zeroext i1 @s2n_result_is_ok(i32 %1694)
  br i1 %1695, label %1720, label %1696

1696:                                             ; preds = %1691
  %1697 = tail call ptr @__errno_location() #12
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = tail call i32 @s2n_print_stacktrace(ptr noundef %1699) #11
  %1701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1702 = trunc nuw i8 %1701 to i1
  br i1 %1702, label %1703, label %1707

1703:                                             ; preds = %1696
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = tail call i32 @fileno(ptr noundef %1704) #11
  %1706 = tail call i32 @isatty(i32 noundef %1705) #11
  %.not760 = icmp eq i32 %1706, 0
  br i1 %.not760, label %1707, label %1708

1707:                                             ; preds = %1703, %1696
  br label %1708

1708:                                             ; preds = %1703, %1707
  %.str.5.sink1597 = phi ptr [ @.str.5, %1707 ], [ @.str.2, %1703 ]
  store i32 %1698, ptr %1697, align 4, !tbaa !5
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = tail call ptr @s2n_strerror(i32 noundef %1712, ptr noundef nonnull @.str.4) #11
  %1714 = load i32, ptr %1711, align 4, !tbaa !5
  %1715 = tail call ptr @s2n_strerror_debug(i32 noundef %1714, ptr noundef nonnull @.str.4) #11
  %1716 = load i32, ptr %1697, align 4, !tbaa !5
  %1717 = tail call ptr @strerror(i32 noundef %1716) #11
  %1718 = load i32, ptr %1697, align 4, !tbaa !5
  %1719 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1709, ptr noundef nonnull %.str.5.sink1597, i32 noundef %1710, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1713, ptr noundef %1715, ptr noundef %1717, i32 noundef %1718) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1720:                                             ; preds = %1691
  %1721 = load i32, ptr @test_count, align 4, !tbaa !5
  %1722 = add nsw i32 %1721, 1
  store i32 %1722, ptr @test_count, align 4, !tbaa !5
  %1723 = tail call zeroext i1 %173(ptr noundef nonnull %1519) #11
  br i1 %1723, label %1748, label %1724

1724:                                             ; preds = %1720
  %1725 = tail call ptr @__errno_location() #12
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = tail call i32 @s2n_print_stacktrace(ptr noundef %1727) #11
  %1729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1730 = trunc nuw i8 %1729 to i1
  br i1 %1730, label %1731, label %1735

1731:                                             ; preds = %1724
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = tail call i32 @fileno(ptr noundef %1732) #11
  %1734 = tail call i32 @isatty(i32 noundef %1733) #11
  %.not761 = icmp eq i32 %1734, 0
  br i1 %.not761, label %1735, label %1736

1735:                                             ; preds = %1731, %1724
  br label %1736

1736:                                             ; preds = %1731, %1735
  %.str.5.sink1608 = phi ptr [ @.str.5, %1735 ], [ @.str.2, %1731 ]
  store i32 %1726, ptr %1725, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = tail call ptr @s2n_strerror(i32 noundef %1740, ptr noundef nonnull @.str.4) #11
  %1742 = load i32, ptr %1739, align 4, !tbaa !5
  %1743 = tail call ptr @s2n_strerror_debug(i32 noundef %1742, ptr noundef nonnull @.str.4) #11
  %1744 = load i32, ptr %1725, align 4, !tbaa !5
  %1745 = tail call ptr @strerror(i32 noundef %1744) #11
  %1746 = load i32, ptr %1725, align 4, !tbaa !5
  %1747 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1737, ptr noundef nonnull %.str.5.sink1608, i32 noundef %1738, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1741, ptr noundef %1743, ptr noundef %1745, i32 noundef %1746) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1748:                                             ; preds = %1720
  %1749 = load i32, ptr @test_count, align 4, !tbaa !5
  %1750 = add nsw i32 %1749, 1
  store i32 %1750, ptr @test_count, align 4, !tbaa !5
  %1751 = tail call i32 @s2n_connection_free(ptr noundef nonnull %1519) #11
  %1752 = icmp eq i32 %1751, -1
  br i1 %1752, label %1753, label %1777

1753:                                             ; preds = %1748
  %1754 = tail call ptr @__errno_location() #12
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = tail call i32 @s2n_print_stacktrace(ptr noundef %1756) #11
  %1758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1759 = trunc nuw i8 %1758 to i1
  br i1 %1759, label %1760, label %1764

1760:                                             ; preds = %1753
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = tail call i32 @fileno(ptr noundef %1761) #11
  %1763 = tail call i32 @isatty(i32 noundef %1762) #11
  %.not920 = icmp eq i32 %1763, 0
  br i1 %.not920, label %1764, label %1765

1764:                                             ; preds = %1760, %1753
  br label %1765

1765:                                             ; preds = %1760, %1764
  %.str.5.sink1619 = phi ptr [ @.str.5, %1764 ], [ @.str.2, %1760 ]
  store i32 %1755, ptr %1754, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = tail call ptr @s2n_strerror(i32 noundef %1769, ptr noundef nonnull @.str.4) #11
  %1771 = load i32, ptr %1768, align 4, !tbaa !5
  %1772 = tail call ptr @s2n_strerror_debug(i32 noundef %1771, ptr noundef nonnull @.str.4) #11
  %1773 = load i32, ptr %1754, align 4, !tbaa !5
  %1774 = tail call ptr @strerror(i32 noundef %1773) #11
  %1775 = load i32, ptr %1754, align 4, !tbaa !5
  %1776 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1766, ptr noundef nonnull %.str.5.sink1619, i32 noundef %1767, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1770, ptr noundef %1772, ptr noundef %1774, i32 noundef %1775) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1777:                                             ; preds = %1748
  %1778 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %1779 = load i32, ptr @test_count, align 4, !tbaa !5
  %1780 = add nsw i32 %1779, 1
  store i32 %1780, ptr @test_count, align 4, !tbaa !5
  %1781 = icmp eq ptr %1778, null
  br i1 %1781, label %1782, label %1806

1782:                                             ; preds = %1777
  %1783 = tail call ptr @__errno_location() #12
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = tail call i32 @s2n_print_stacktrace(ptr noundef %1785) #11
  %1787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1788 = trunc nuw i8 %1787 to i1
  br i1 %1788, label %1789, label %1793

1789:                                             ; preds = %1782
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = tail call i32 @fileno(ptr noundef %1790) #11
  %1792 = tail call i32 @isatty(i32 noundef %1791) #11
  %.not919 = icmp eq i32 %1792, 0
  br i1 %.not919, label %1793, label %1794

1793:                                             ; preds = %1789, %1782
  br label %1794

1794:                                             ; preds = %1789, %1793
  %.str.5.sink1630 = phi ptr [ @.str.5, %1793 ], [ @.str.2, %1789 ]
  store i32 %1784, ptr %1783, align 4, !tbaa !5
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = load i32, ptr @test_count, align 4, !tbaa !5
  %1797 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = tail call ptr @s2n_strerror(i32 noundef %1798, ptr noundef nonnull @.str.4) #11
  %1800 = load i32, ptr %1797, align 4, !tbaa !5
  %1801 = tail call ptr @s2n_strerror_debug(i32 noundef %1800, ptr noundef nonnull @.str.4) #11
  %1802 = load i32, ptr %1783, align 4, !tbaa !5
  %1803 = tail call ptr @strerror(i32 noundef %1802) #11
  %1804 = load i32, ptr %1783, align 4, !tbaa !5
  %1805 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1795, ptr noundef nonnull %.str.5.sink1630, i32 noundef %1796, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1799, ptr noundef %1801, ptr noundef %1803, i32 noundef %1804) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1806:                                             ; preds = %1777
  %1807 = add nsw i32 %1779, 2
  store i32 %1807, ptr @test_count, align 4, !tbaa !5
  %1808 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %1778, ptr noundef nonnull @.str.16) #11
  %1809 = icmp eq i32 %1808, -1
  br i1 %1809, label %1810, label %1834

1810:                                             ; preds = %1806
  %1811 = tail call ptr @__errno_location() #12
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1814 = tail call i32 @s2n_print_stacktrace(ptr noundef %1813) #11
  %1815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1816 = trunc nuw i8 %1815 to i1
  br i1 %1816, label %1817, label %1821

1817:                                             ; preds = %1810
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = tail call i32 @fileno(ptr noundef %1818) #11
  %1820 = tail call i32 @isatty(i32 noundef %1819) #11
  %.not918 = icmp eq i32 %1820, 0
  br i1 %.not918, label %1821, label %1822

1821:                                             ; preds = %1817, %1810
  br label %1822

1822:                                             ; preds = %1817, %1821
  %.str.5.sink1641 = phi ptr [ @.str.5, %1821 ], [ @.str.2, %1817 ]
  store i32 %1812, ptr %1811, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = load i32, ptr @test_count, align 4, !tbaa !5
  %1825 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = tail call ptr @s2n_strerror(i32 noundef %1826, ptr noundef nonnull @.str.4) #11
  %1828 = load i32, ptr %1825, align 4, !tbaa !5
  %1829 = tail call ptr @s2n_strerror_debug(i32 noundef %1828, ptr noundef nonnull @.str.4) #11
  %1830 = load i32, ptr %1811, align 4, !tbaa !5
  %1831 = tail call ptr @strerror(i32 noundef %1830) #11
  %1832 = load i32, ptr %1811, align 4, !tbaa !5
  %1833 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1823, ptr noundef nonnull %.str.5.sink1641, i32 noundef %1824, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1827, ptr noundef %1829, ptr noundef %1831, i32 noundef %1832) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1834:                                             ; preds = %1806
  %1835 = load i32, ptr @test_count, align 4, !tbaa !5
  %1836 = add nsw i32 %1835, 1
  store i32 %1836, ptr @test_count, align 4, !tbaa !5
  %1837 = tail call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %1778, i32 noundef 10, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %1838 = tail call zeroext i1 @s2n_result_is_ok(i32 %1837)
  br i1 %1838, label %1863, label %1839

1839:                                             ; preds = %1834
  %1840 = tail call ptr @__errno_location() #12
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = tail call i32 @s2n_print_stacktrace(ptr noundef %1842) #11
  %1844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1845 = trunc nuw i8 %1844 to i1
  br i1 %1845, label %1846, label %1850

1846:                                             ; preds = %1839
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = tail call i32 @fileno(ptr noundef %1847) #11
  %1849 = tail call i32 @isatty(i32 noundef %1848) #11
  %.not762 = icmp eq i32 %1849, 0
  br i1 %.not762, label %1850, label %1851

1850:                                             ; preds = %1846, %1839
  br label %1851

1851:                                             ; preds = %1846, %1850
  %.str.5.sink1652 = phi ptr [ @.str.5, %1850 ], [ @.str.2, %1846 ]
  store i32 %1841, ptr %1840, align 4, !tbaa !5
  %1852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1853 = load i32, ptr @test_count, align 4, !tbaa !5
  %1854 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = tail call ptr @s2n_strerror(i32 noundef %1855, ptr noundef nonnull @.str.4) #11
  %1857 = load i32, ptr %1854, align 4, !tbaa !5
  %1858 = tail call ptr @s2n_strerror_debug(i32 noundef %1857, ptr noundef nonnull @.str.4) #11
  %1859 = load i32, ptr %1840, align 4, !tbaa !5
  %1860 = tail call ptr @strerror(i32 noundef %1859) #11
  %1861 = load i32, ptr %1840, align 4, !tbaa !5
  %1862 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1852, ptr noundef nonnull %.str.5.sink1652, i32 noundef %1853, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1856, ptr noundef %1858, ptr noundef %1860, i32 noundef %1861) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1863:                                             ; preds = %1834
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = add nsw i32 %1864, 1
  store i32 %1865, ptr @test_count, align 4, !tbaa !5
  %1866 = tail call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %1778) #11
  %1867 = icmp eq i32 %1866, -1
  br i1 %1867, label %1868, label %1892

1868:                                             ; preds = %1863
  %1869 = tail call ptr @__errno_location() #12
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1872 = tail call i32 @s2n_print_stacktrace(ptr noundef %1871) #11
  %1873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1874 = trunc nuw i8 %1873 to i1
  br i1 %1874, label %1875, label %1879

1875:                                             ; preds = %1868
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = tail call i32 @fileno(ptr noundef %1876) #11
  %1878 = tail call i32 @isatty(i32 noundef %1877) #11
  %.not917 = icmp eq i32 %1878, 0
  br i1 %.not917, label %1879, label %1880

1879:                                             ; preds = %1875, %1868
  br label %1880

1880:                                             ; preds = %1875, %1879
  %.str.5.sink1663 = phi ptr [ @.str.5, %1879 ], [ @.str.2, %1875 ]
  store i32 %1870, ptr %1869, align 4, !tbaa !5
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1882 = load i32, ptr @test_count, align 4, !tbaa !5
  %1883 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = tail call ptr @s2n_strerror(i32 noundef %1884, ptr noundef nonnull @.str.4) #11
  %1886 = load i32, ptr %1883, align 4, !tbaa !5
  %1887 = tail call ptr @s2n_strerror_debug(i32 noundef %1886, ptr noundef nonnull @.str.4) #11
  %1888 = load i32, ptr %1869, align 4, !tbaa !5
  %1889 = tail call ptr @strerror(i32 noundef %1888) #11
  %1890 = load i32, ptr %1869, align 4, !tbaa !5
  %1891 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1881, ptr noundef nonnull %.str.5.sink1663, i32 noundef %1882, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1885, ptr noundef %1887, ptr noundef %1889, i32 noundef %1890) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

1892:                                             ; preds = %1863
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %3) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %3, ptr noundef nonnull align 16 dereferenceable(20) @__const.main.app_protocol_data, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 19, ptr nonnull %4) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(19) %4, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.other_app_protocol_data, i64 19, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false)
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %1894 = add nsw i32 %1893, 1
  store i32 %1894, ptr @test_count, align 4, !tbaa !5
  %1895 = call i32 @s2n_blob_init(ptr noundef nonnull %5, ptr noundef nonnull %3, i32 noundef 20) #11
  %1896 = icmp eq i32 %1895, -1
  br i1 %1896, label %1897, label %1921

1897:                                             ; preds = %1892
  %1898 = tail call ptr @__errno_location() #12
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1901 = call i32 @s2n_print_stacktrace(ptr noundef %1900) #11
  %1902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1903 = trunc nuw i8 %1902 to i1
  br i1 %1903, label %1904, label %1908

1904:                                             ; preds = %1897
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = call i32 @fileno(ptr noundef %1905) #11
  %1907 = call i32 @isatty(i32 noundef %1906) #11
  %.not916 = icmp eq i32 %1907, 0
  br i1 %.not916, label %1908, label %1909

1908:                                             ; preds = %1904, %1897
  br label %1909

1909:                                             ; preds = %1904, %1908
  %.str.5.sink1674 = phi ptr [ @.str.5, %1908 ], [ @.str.2, %1904 ]
  store i32 %1899, ptr %1898, align 4, !tbaa !5
  %1910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1911 = load i32, ptr @test_count, align 4, !tbaa !5
  %1912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = call ptr @s2n_strerror(i32 noundef %1913, ptr noundef nonnull @.str.4) #11
  %1915 = load i32, ptr %1912, align 4, !tbaa !5
  %1916 = call ptr @s2n_strerror_debug(i32 noundef %1915, ptr noundef nonnull @.str.4) #11
  %1917 = load i32, ptr %1898, align 4, !tbaa !5
  %1918 = call ptr @strerror(i32 noundef %1917) #11
  %1919 = load i32, ptr %1898, align 4, !tbaa !5
  %1920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1910, ptr noundef nonnull %.str.5.sink1674, i32 noundef %1911, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1914, ptr noundef %1916, ptr noundef %1918, i32 noundef %1919) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1921:                                             ; preds = %1892
  %1922 = load i32, ptr @test_count, align 4, !tbaa !5
  %1923 = add nsw i32 %1922, 1
  store i32 %1923, ptr @test_count, align 4, !tbaa !5
  %1924 = call i32 @s2n_set_early_data_app_protocol(ptr noundef nonnull %1778, ptr noundef nonnull %6)
  %1925 = call zeroext i1 @s2n_result_is_ok(i32 %1924)
  br i1 %1925, label %1950, label %1926

1926:                                             ; preds = %1921
  %1927 = tail call ptr @__errno_location() #12
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = call i32 @s2n_print_stacktrace(ptr noundef %1929) #11
  %1931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1932 = trunc nuw i8 %1931 to i1
  br i1 %1932, label %1933, label %1937

1933:                                             ; preds = %1926
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = call i32 @fileno(ptr noundef %1934) #11
  %1936 = call i32 @isatty(i32 noundef %1935) #11
  %.not763 = icmp eq i32 %1936, 0
  br i1 %.not763, label %1937, label %1938

1937:                                             ; preds = %1933, %1926
  br label %1938

1938:                                             ; preds = %1933, %1937
  %.str.5.sink1685 = phi ptr [ @.str.5, %1937 ], [ @.str.2, %1933 ]
  store i32 %1928, ptr %1927, align 4, !tbaa !5
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = load i32, ptr @test_count, align 4, !tbaa !5
  %1941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1942 = load i32, ptr %1941, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror(i32 noundef %1942, ptr noundef nonnull @.str.4) #11
  %1944 = load i32, ptr %1941, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror_debug(i32 noundef %1944, ptr noundef nonnull @.str.4) #11
  %1946 = load i32, ptr %1927, align 4, !tbaa !5
  %1947 = call ptr @strerror(i32 noundef %1946) #11
  %1948 = load i32, ptr %1927, align 4, !tbaa !5
  %1949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1939, ptr noundef nonnull %.str.5.sink1685, i32 noundef %1940, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1943, ptr noundef %1945, ptr noundef %1947, i32 noundef %1948) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1950:                                             ; preds = %1921
  %1951 = load i32, ptr @test_count, align 4, !tbaa !5
  %1952 = add nsw i32 %1951, 1
  store i32 %1952, ptr @test_count, align 4, !tbaa !5
  %1953 = call zeroext i1 %173(ptr noundef nonnull %1778) #11
  br i1 %1953, label %1978, label %1954

1954:                                             ; preds = %1950
  %1955 = tail call ptr @__errno_location() #12
  %1956 = load i32, ptr %1955, align 4, !tbaa !5
  %1957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1958 = call i32 @s2n_print_stacktrace(ptr noundef %1957) #11
  %1959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1960 = trunc nuw i8 %1959 to i1
  br i1 %1960, label %1961, label %1965

1961:                                             ; preds = %1954
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = call i32 @fileno(ptr noundef %1962) #11
  %1964 = call i32 @isatty(i32 noundef %1963) #11
  %.not764 = icmp eq i32 %1964, 0
  br i1 %.not764, label %1965, label %1966

1965:                                             ; preds = %1961, %1954
  br label %1966

1966:                                             ; preds = %1961, %1965
  %.str.5.sink1696 = phi ptr [ @.str.5, %1965 ], [ @.str.2, %1961 ]
  store i32 %1956, ptr %1955, align 4, !tbaa !5
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = load i32, ptr @test_count, align 4, !tbaa !5
  %1969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1970 = load i32, ptr %1969, align 4, !tbaa !5
  %1971 = call ptr @s2n_strerror(i32 noundef %1970, ptr noundef nonnull @.str.4) #11
  %1972 = load i32, ptr %1969, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror_debug(i32 noundef %1972, ptr noundef nonnull @.str.4) #11
  %1974 = load i32, ptr %1955, align 4, !tbaa !5
  %1975 = call ptr @strerror(i32 noundef %1974) #11
  %1976 = load i32, ptr %1955, align 4, !tbaa !5
  %1977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1967, ptr noundef nonnull %.str.5.sink1696, i32 noundef %1968, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1971, ptr noundef %1973, ptr noundef %1975, i32 noundef %1976) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1978:                                             ; preds = %1950
  %1979 = load i32, ptr @test_count, align 4, !tbaa !5
  %1980 = add nsw i32 %1979, 1
  store i32 %1980, ptr @test_count, align 4, !tbaa !5
  %1981 = call i32 @s2n_set_early_data_app_protocol(ptr noundef nonnull %1778, ptr noundef nonnull %5)
  %1982 = call zeroext i1 @s2n_result_is_ok(i32 %1981)
  br i1 %1982, label %2007, label %1983

1983:                                             ; preds = %1978
  %1984 = tail call ptr @__errno_location() #12
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = call i32 @s2n_print_stacktrace(ptr noundef %1986) #11
  %1988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1989 = trunc nuw i8 %1988 to i1
  br i1 %1989, label %1990, label %1994

1990:                                             ; preds = %1983
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = call i32 @fileno(ptr noundef %1991) #11
  %1993 = call i32 @isatty(i32 noundef %1992) #11
  %.not765 = icmp eq i32 %1993, 0
  br i1 %.not765, label %1994, label %1995

1994:                                             ; preds = %1990, %1983
  br label %1995

1995:                                             ; preds = %1990, %1994
  %.str.5.sink1707 = phi ptr [ @.str.5, %1994 ], [ @.str.2, %1990 ]
  store i32 %1985, ptr %1984, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1999, ptr noundef nonnull @.str.4) #11
  %2001 = load i32, ptr %1998, align 4, !tbaa !5
  %2002 = call ptr @s2n_strerror_debug(i32 noundef %2001, ptr noundef nonnull @.str.4) #11
  %2003 = load i32, ptr %1984, align 4, !tbaa !5
  %2004 = call ptr @strerror(i32 noundef %2003) #11
  %2005 = load i32, ptr %1984, align 4, !tbaa !5
  %2006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1996, ptr noundef nonnull %.str.5.sink1707, i32 noundef %1997, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %2000, ptr noundef %2002, ptr noundef %2004, i32 noundef %2005) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2007:                                             ; preds = %1978
  %2008 = load i32, ptr @test_count, align 4, !tbaa !5
  %2009 = add nsw i32 %2008, 1
  store i32 %2009, ptr @test_count, align 4, !tbaa !5
  %2010 = call zeroext i1 %173(ptr noundef nonnull %1778) #11
  br i1 %2010, label %2011, label %2035

2011:                                             ; preds = %2007
  %2012 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %2021 = call i32 @isatty(i32 noundef %2020) #11
  %.not915 = icmp eq i32 %2021, 0
  br i1 %.not915, label %2022, label %2023

2022:                                             ; preds = %2018, %2011
  br label %2023

2023:                                             ; preds = %2018, %2022
  %.str.5.sink1718 = 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) #11
  %2029 = load i32, ptr %2026, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror_debug(i32 noundef %2029, ptr noundef nonnull @.str.4) #11
  %2031 = load i32, ptr %2012, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #11
  %2033 = load i32, ptr %2012, align 4, !tbaa !5
  %2034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2024, ptr noundef nonnull %.str.5.sink1718, i32 noundef %2025, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %2028, ptr noundef %2030, ptr noundef %2032, i32 noundef %2033) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2035:                                             ; preds = %2007
  %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_connection_append_protocol_preference(ptr noundef nonnull %1778, ptr noundef nonnull %4, i8 noundef zeroext 19) #11
  %2039 = icmp eq i32 %2038, -1
  br i1 %2039, label %2040, label %2064

2040:                                             ; preds = %2035
  %2041 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %2050 = call i32 @isatty(i32 noundef %2049) #11
  %.not914 = icmp eq i32 %2050, 0
  br i1 %.not914, label %2051, label %2052

2051:                                             ; preds = %2047, %2040
  br label %2052

2052:                                             ; preds = %2047, %2051
  %.str.5.sink1729 = 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) #11
  %2058 = load i32, ptr %2055, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef nonnull @.str.4) #11
  %2060 = load i32, ptr %2041, align 4, !tbaa !5
  %2061 = call ptr @strerror(i32 noundef %2060) #11
  %2062 = load i32, ptr %2041, align 4, !tbaa !5
  %2063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2053, ptr noundef nonnull %.str.5.sink1729, i32 noundef %2054, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %2057, ptr noundef %2059, ptr noundef %2061, i32 noundef %2062) #13
  call void @exit(i32 noundef 1) #14
  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_connection_append_protocol_preference(ptr noundef nonnull %1778, ptr noundef nonnull %4, i8 noundef zeroext 19) #11
  %2068 = icmp eq i32 %2067, -1
  br i1 %2068, label %2069, label %2093

2069:                                             ; preds = %2064
  %2070 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %2079 = call i32 @isatty(i32 noundef %2078) #11
  %.not913 = icmp eq i32 %2079, 0
  br i1 %.not913, label %2080, label %2081

2080:                                             ; preds = %2076, %2069
  br label %2081

2081:                                             ; preds = %2076, %2080
  %.str.5.sink1740 = 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) #11
  %2087 = load i32, ptr %2084, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror_debug(i32 noundef %2087, ptr noundef nonnull @.str.4) #11
  %2089 = load i32, ptr %2070, align 4, !tbaa !5
  %2090 = call ptr @strerror(i32 noundef %2089) #11
  %2091 = load i32, ptr %2070, align 4, !tbaa !5
  %2092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2082, ptr noundef nonnull %.str.5.sink1740, i32 noundef %2083, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %2086, ptr noundef %2088, ptr noundef %2090, i32 noundef %2091) #13
  call void @exit(i32 noundef 1) #14
  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_set_early_data_app_protocol(ptr noundef nonnull %1778, ptr noundef nonnull %6)
  %2097 = call zeroext i1 @s2n_result_is_ok(i32 %2096)
  br i1 %2097, label %2122, label %2098

2098:                                             ; preds = %2093
  %2099 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %2108 = call i32 @isatty(i32 noundef %2107) #11
  %.not766 = icmp eq i32 %2108, 0
  br i1 %.not766, label %2109, label %2110

2109:                                             ; preds = %2105, %2098
  br label %2110

2110:                                             ; preds = %2105, %2109
  %.str.5.sink1751 = 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) #11
  %2116 = load i32, ptr %2113, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror_debug(i32 noundef %2116, ptr noundef nonnull @.str.4) #11
  %2118 = load i32, ptr %2099, align 4, !tbaa !5
  %2119 = call ptr @strerror(i32 noundef %2118) #11
  %2120 = load i32, ptr %2099, align 4, !tbaa !5
  %2121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2111, ptr noundef nonnull %.str.5.sink1751, i32 noundef %2112, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2115, ptr noundef %2117, ptr noundef %2119, i32 noundef %2120) #13
  call void @exit(i32 noundef 1) #14
  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 zeroext i1 %173(ptr noundef nonnull %1778) #11
  br i1 %2125, label %2150, label %2126

2126:                                             ; preds = %2122
  %2127 = tail call ptr @__errno_location() #12
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2130 = call i32 @s2n_print_stacktrace(ptr noundef %2129) #11
  %2131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2132 = trunc nuw i8 %2131 to i1
  br i1 %2132, label %2133, label %2137

2133:                                             ; preds = %2126
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = call i32 @fileno(ptr noundef %2134) #11
  %2136 = call i32 @isatty(i32 noundef %2135) #11
  %.not767 = icmp eq i32 %2136, 0
  br i1 %.not767, label %2137, label %2138

2137:                                             ; preds = %2133, %2126
  br label %2138

2138:                                             ; preds = %2133, %2137
  %.str.5.sink1762 = phi ptr [ @.str.5, %2137 ], [ @.str.2, %2133 ]
  store i32 %2128, ptr %2127, align 4, !tbaa !5
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = load i32, ptr @test_count, align 4, !tbaa !5
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror(i32 noundef %2142, ptr noundef nonnull @.str.4) #11
  %2144 = load i32, ptr %2141, align 4, !tbaa !5
  %2145 = call ptr @s2n_strerror_debug(i32 noundef %2144, ptr noundef nonnull @.str.4) #11
  %2146 = load i32, ptr %2127, align 4, !tbaa !5
  %2147 = call ptr @strerror(i32 noundef %2146) #11
  %2148 = load i32, ptr %2127, align 4, !tbaa !5
  %2149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2139, ptr noundef nonnull %.str.5.sink1762, i32 noundef %2140, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %2143, ptr noundef %2145, ptr noundef %2147, i32 noundef %2148) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2150:                                             ; preds = %2122
  %2151 = load i32, ptr @test_count, align 4, !tbaa !5
  %2152 = add nsw i32 %2151, 1
  store i32 %2152, ptr @test_count, align 4, !tbaa !5
  %2153 = call i32 @s2n_set_early_data_app_protocol(ptr noundef nonnull %1778, ptr noundef nonnull %5)
  %2154 = call zeroext i1 @s2n_result_is_ok(i32 %2153)
  br i1 %2154, label %2179, label %2155

2155:                                             ; preds = %2150
  %2156 = tail call ptr @__errno_location() #12
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = call i32 @s2n_print_stacktrace(ptr noundef %2158) #11
  %2160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2161 = trunc nuw i8 %2160 to i1
  br i1 %2161, label %2162, label %2166

2162:                                             ; preds = %2155
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = call i32 @fileno(ptr noundef %2163) #11
  %2165 = call i32 @isatty(i32 noundef %2164) #11
  %.not768 = icmp eq i32 %2165, 0
  br i1 %.not768, label %2166, label %2167

2166:                                             ; preds = %2162, %2155
  br label %2167

2167:                                             ; preds = %2162, %2166
  %.str.5.sink1773 = phi ptr [ @.str.5, %2166 ], [ @.str.2, %2162 ]
  store i32 %2157, ptr %2156, align 4, !tbaa !5
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = load i32, ptr @test_count, align 4, !tbaa !5
  %2170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror(i32 noundef %2171, ptr noundef nonnull @.str.4) #11
  %2173 = load i32, ptr %2170, align 4, !tbaa !5
  %2174 = call ptr @s2n_strerror_debug(i32 noundef %2173, ptr noundef nonnull @.str.4) #11
  %2175 = load i32, ptr %2156, align 4, !tbaa !5
  %2176 = call ptr @strerror(i32 noundef %2175) #11
  %2177 = load i32, ptr %2156, align 4, !tbaa !5
  %2178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2168, ptr noundef nonnull %.str.5.sink1773, i32 noundef %2169, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %2172, ptr noundef %2174, ptr noundef %2176, i32 noundef %2177) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2179:                                             ; preds = %2150
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = add nsw i32 %2180, 1
  store i32 %2181, ptr @test_count, align 4, !tbaa !5
  %2182 = call zeroext i1 %173(ptr noundef nonnull %1778) #11
  br i1 %2182, label %2183, label %2207

2183:                                             ; preds = %2179
  %2184 = tail call ptr @__errno_location() #12
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @s2n_print_stacktrace(ptr noundef %2186) #11
  %2188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2189 = trunc nuw i8 %2188 to i1
  br i1 %2189, label %2190, label %2194

2190:                                             ; preds = %2183
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = call i32 @fileno(ptr noundef %2191) #11
  %2193 = call i32 @isatty(i32 noundef %2192) #11
  %.not912 = icmp eq i32 %2193, 0
  br i1 %.not912, label %2194, label %2195

2194:                                             ; preds = %2190, %2183
  br label %2195

2195:                                             ; preds = %2190, %2194
  %.str.5.sink1784 = phi ptr [ @.str.5, %2194 ], [ @.str.2, %2190 ]
  store i32 %2185, ptr %2184, align 4, !tbaa !5
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror(i32 noundef %2199, ptr noundef nonnull @.str.4) #11
  %2201 = load i32, ptr %2198, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror_debug(i32 noundef %2201, ptr noundef nonnull @.str.4) #11
  %2203 = load i32, ptr %2184, align 4, !tbaa !5
  %2204 = call ptr @strerror(i32 noundef %2203) #11
  %2205 = load i32, ptr %2184, align 4, !tbaa !5
  %2206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2196, ptr noundef nonnull %.str.5.sink1784, i32 noundef %2197, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %2200, ptr noundef %2202, ptr noundef %2204, i32 noundef %2205) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2207:                                             ; preds = %2179
  %2208 = load i32, ptr @test_count, align 4, !tbaa !5
  %2209 = add nsw i32 %2208, 1
  store i32 %2209, ptr @test_count, align 4, !tbaa !5
  %2210 = load ptr, ptr %5, align 8, !tbaa !44
  %2211 = getelementptr inbounds i8, ptr %5, i64 8
  %2212 = load i32, ptr %2211, align 8, !tbaa !45
  %2213 = trunc i32 %2212 to i8
  %2214 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %1778, ptr noundef %2210, i8 noundef zeroext %2213) #11
  %2215 = icmp eq i32 %2214, -1
  br i1 %2215, label %2216, label %2240

2216:                                             ; preds = %2207
  %2217 = tail call ptr @__errno_location() #12
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = call i32 @s2n_print_stacktrace(ptr noundef %2219) #11
  %2221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2222 = trunc nuw i8 %2221 to i1
  br i1 %2222, label %2223, label %2227

2223:                                             ; preds = %2216
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = call i32 @fileno(ptr noundef %2224) #11
  %2226 = call i32 @isatty(i32 noundef %2225) #11
  %.not911 = icmp eq i32 %2226, 0
  br i1 %.not911, label %2227, label %2228

2227:                                             ; preds = %2223, %2216
  br label %2228

2228:                                             ; preds = %2223, %2227
  %.str.5.sink1795 = phi ptr [ @.str.5, %2227 ], [ @.str.2, %2223 ]
  store i32 %2218, ptr %2217, align 4, !tbaa !5
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = load i32, ptr @test_count, align 4, !tbaa !5
  %2231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror(i32 noundef %2232, ptr noundef nonnull @.str.4) #11
  %2234 = load i32, ptr %2231, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror_debug(i32 noundef %2234, ptr noundef nonnull @.str.4) #11
  %2236 = load i32, ptr %2217, align 4, !tbaa !5
  %2237 = call ptr @strerror(i32 noundef %2236) #11
  %2238 = load i32, ptr %2217, align 4, !tbaa !5
  %2239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2229, ptr noundef nonnull %.str.5.sink1795, i32 noundef %2230, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %2233, ptr noundef %2235, ptr noundef %2237, i32 noundef %2238) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2240:                                             ; preds = %2207
  %2241 = load i32, ptr @test_count, align 4, !tbaa !5
  %2242 = add nsw i32 %2241, 1
  store i32 %2242, ptr @test_count, align 4, !tbaa !5
  %2243 = call i32 @s2n_set_early_data_app_protocol(ptr noundef nonnull %1778, ptr noundef nonnull %5)
  %2244 = call zeroext i1 @s2n_result_is_ok(i32 %2243)
  br i1 %2244, label %2269, label %2245

2245:                                             ; preds = %2240
  %2246 = tail call ptr @__errno_location() #12
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = call i32 @s2n_print_stacktrace(ptr noundef %2248) #11
  %2250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2251 = trunc nuw i8 %2250 to i1
  br i1 %2251, label %2252, label %2256

2252:                                             ; preds = %2245
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @fileno(ptr noundef %2253) #11
  %2255 = call i32 @isatty(i32 noundef %2254) #11
  %.not769 = icmp eq i32 %2255, 0
  br i1 %.not769, label %2256, label %2257

2256:                                             ; preds = %2252, %2245
  br label %2257

2257:                                             ; preds = %2252, %2256
  %.str.5.sink1806 = phi ptr [ @.str.5, %2256 ], [ @.str.2, %2252 ]
  store i32 %2247, ptr %2246, align 4, !tbaa !5
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = load i32, ptr @test_count, align 4, !tbaa !5
  %2260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror(i32 noundef %2261, ptr noundef nonnull @.str.4) #11
  %2263 = load i32, ptr %2260, align 4, !tbaa !5
  %2264 = call ptr @s2n_strerror_debug(i32 noundef %2263, ptr noundef nonnull @.str.4) #11
  %2265 = load i32, ptr %2246, align 4, !tbaa !5
  %2266 = call ptr @strerror(i32 noundef %2265) #11
  %2267 = load i32, ptr %2246, align 4, !tbaa !5
  %2268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2258, ptr noundef nonnull %.str.5.sink1806, i32 noundef %2259, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2262, ptr noundef %2264, ptr noundef %2266, i32 noundef %2267) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2269:                                             ; preds = %2240
  %2270 = load i32, ptr @test_count, align 4, !tbaa !5
  %2271 = add nsw i32 %2270, 1
  store i32 %2271, ptr @test_count, align 4, !tbaa !5
  %2272 = call zeroext i1 %173(ptr noundef nonnull %1778) #11
  br i1 %2272, label %2297, label %2273

2273:                                             ; preds = %2269
  %2274 = tail call ptr @__errno_location() #12
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @s2n_print_stacktrace(ptr noundef %2276) #11
  %2278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2279 = trunc nuw i8 %2278 to i1
  br i1 %2279, label %2280, label %2284

2280:                                             ; preds = %2273
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = call i32 @fileno(ptr noundef %2281) #11
  %2283 = call i32 @isatty(i32 noundef %2282) #11
  %.not770 = icmp eq i32 %2283, 0
  br i1 %.not770, label %2284, label %2285

2284:                                             ; preds = %2280, %2273
  br label %2285

2285:                                             ; preds = %2280, %2284
  %.str.5.sink1817 = phi ptr [ @.str.5, %2284 ], [ @.str.2, %2280 ]
  store i32 %2275, ptr %2274, align 4, !tbaa !5
  %2286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2287 = load i32, ptr @test_count, align 4, !tbaa !5
  %2288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror(i32 noundef %2289, ptr noundef nonnull @.str.4) #11
  %2291 = load i32, ptr %2288, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror_debug(i32 noundef %2291, ptr noundef nonnull @.str.4) #11
  %2293 = load i32, ptr %2274, align 4, !tbaa !5
  %2294 = call ptr @strerror(i32 noundef %2293) #11
  %2295 = load i32, ptr %2274, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2286, ptr noundef nonnull %.str.5.sink1817, i32 noundef %2287, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %2290, ptr noundef %2292, ptr noundef %2294, i32 noundef %2295) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2297:                                             ; preds = %2269
  %2298 = load i32, ptr @test_count, align 4, !tbaa !5
  %2299 = add nsw i32 %2298, 1
  store i32 %2299, ptr @test_count, align 4, !tbaa !5
  %2300 = call i32 @s2n_connection_free(ptr noundef nonnull %1778) #11
  %2301 = icmp eq i32 %2300, -1
  br i1 %2301, label %2302, label %2326

2302:                                             ; preds = %2297
  %2303 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %2312 = call i32 @isatty(i32 noundef %2311) #11
  %.not910 = icmp eq i32 %2312, 0
  br i1 %.not910, label %2313, label %2314

2313:                                             ; preds = %2309, %2302
  br label %2314

2314:                                             ; preds = %2309, %2313
  %.str.5.sink1828 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2318 = load i32, ptr %2317, align 4, !tbaa !5
  %2319 = call ptr @s2n_strerror(i32 noundef %2318, ptr noundef nonnull @.str.4) #11
  %2320 = load i32, ptr %2317, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror_debug(i32 noundef %2320, ptr noundef nonnull @.str.4) #11
  %2322 = load i32, ptr %2303, align 4, !tbaa !5
  %2323 = call ptr @strerror(i32 noundef %2322) #11
  %2324 = load i32, ptr %2303, align 4, !tbaa !5
  %2325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2315, ptr noundef nonnull %.str.5.sink1828, i32 noundef %2316, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %2319, ptr noundef %2321, ptr noundef %2323, i32 noundef %2324) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2326:                                             ; preds = %2297
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 19, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %3) #11
  %2327 = call ptr @s2n_config_new() #11
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = add nsw i32 %2328, 1
  store i32 %2329, ptr @test_count, align 4, !tbaa !5
  %2330 = icmp eq ptr %2327, null
  br i1 %2330, label %2331, label %2355

2331:                                             ; preds = %2326
  %2332 = tail call ptr @__errno_location() #12
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = call i32 @s2n_print_stacktrace(ptr noundef %2334) #11
  %2336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2337 = trunc nuw i8 %2336 to i1
  br i1 %2337, label %2338, label %2342

2338:                                             ; preds = %2331
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @fileno(ptr noundef %2339) #11
  %2341 = call i32 @isatty(i32 noundef %2340) #11
  %.not909 = icmp eq i32 %2341, 0
  br i1 %.not909, label %2342, label %2343

2342:                                             ; preds = %2338, %2331
  br label %2343

2343:                                             ; preds = %2338, %2342
  %.str.5.sink1839 = phi ptr [ @.str.5, %2342 ], [ @.str.2, %2338 ]
  store i32 %2333, ptr %2332, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror(i32 noundef %2347, ptr noundef nonnull @.str.4) #11
  %2349 = load i32, ptr %2346, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror_debug(i32 noundef %2349, ptr noundef nonnull @.str.4) #11
  %2351 = load i32, ptr %2332, align 4, !tbaa !5
  %2352 = call ptr @strerror(i32 noundef %2351) #11
  %2353 = load i32, ptr %2332, align 4, !tbaa !5
  %2354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef nonnull %.str.5.sink1839, i32 noundef %2345, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 231, ptr noundef %2348, ptr noundef %2350, ptr noundef %2352, i32 noundef %2353) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2355:                                             ; preds = %2326
  %2356 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = add nsw i32 %2357, 1
  store i32 %2358, ptr @test_count, align 4, !tbaa !5
  %2359 = icmp eq ptr %2356, null
  br i1 %2359, label %2360, label %2384

2360:                                             ; preds = %2355
  %2361 = tail call ptr @__errno_location() #12
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = call i32 @s2n_print_stacktrace(ptr noundef %2363) #11
  %2365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2366 = trunc nuw i8 %2365 to i1
  br i1 %2366, label %2367, label %2371

2367:                                             ; preds = %2360
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = call i32 @fileno(ptr noundef %2368) #11
  %2370 = call i32 @isatty(i32 noundef %2369) #11
  %.not908 = icmp eq i32 %2370, 0
  br i1 %.not908, label %2371, label %2372

2371:                                             ; preds = %2367, %2360
  br label %2372

2372:                                             ; preds = %2367, %2371
  %.str.5.sink1850 = phi ptr [ @.str.5, %2371 ], [ @.str.2, %2367 ]
  store i32 %2362, ptr %2361, align 4, !tbaa !5
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = load i32, ptr @test_count, align 4, !tbaa !5
  %2375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @s2n_strerror(i32 noundef %2376, ptr noundef nonnull @.str.4) #11
  %2378 = load i32, ptr %2375, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror_debug(i32 noundef %2378, ptr noundef nonnull @.str.4) #11
  %2380 = load i32, ptr %2361, align 4, !tbaa !5
  %2381 = call ptr @strerror(i32 noundef %2380) #11
  %2382 = load i32, ptr %2361, align 4, !tbaa !5
  %2383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2373, ptr noundef nonnull %.str.5.sink1850, i32 noundef %2374, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %2377, ptr noundef %2379, ptr noundef %2381, i32 noundef %2382) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2384:                                             ; preds = %2355
  %2385 = add nsw i32 %2357, 2
  store i32 %2385, ptr @test_count, align 4, !tbaa !5
  %2386 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2356, ptr noundef nonnull %2327) #11
  %2387 = icmp eq i32 %2386, -1
  br i1 %2387, label %2388, label %2412

2388:                                             ; preds = %2384
  %2389 = tail call ptr @__errno_location() #12
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = call i32 @s2n_print_stacktrace(ptr noundef %2391) #11
  %2393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2394 = trunc nuw i8 %2393 to i1
  br i1 %2394, label %2395, label %2399

2395:                                             ; preds = %2388
  %2396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2397 = call i32 @fileno(ptr noundef %2396) #11
  %2398 = call i32 @isatty(i32 noundef %2397) #11
  %.not907 = icmp eq i32 %2398, 0
  br i1 %.not907, label %2399, label %2400

2399:                                             ; preds = %2395, %2388
  br label %2400

2400:                                             ; preds = %2395, %2399
  %.str.5.sink1861 = phi ptr [ @.str.5, %2399 ], [ @.str.2, %2395 ]
  store i32 %2390, ptr %2389, align 4, !tbaa !5
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = load i32, ptr @test_count, align 4, !tbaa !5
  %2403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror(i32 noundef %2404, ptr noundef nonnull @.str.4) #11
  %2406 = load i32, ptr %2403, align 4, !tbaa !5
  %2407 = call ptr @s2n_strerror_debug(i32 noundef %2406, ptr noundef nonnull @.str.4) #11
  %2408 = load i32, ptr %2389, align 4, !tbaa !5
  %2409 = call ptr @strerror(i32 noundef %2408) #11
  %2410 = load i32, ptr %2389, align 4, !tbaa !5
  %2411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2401, ptr noundef nonnull %.str.5.sink1861, i32 noundef %2402, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %2405, ptr noundef %2407, ptr noundef %2409, i32 noundef %2410) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2412:                                             ; preds = %2384
  %2413 = load i32, ptr @test_count, align 4, !tbaa !5
  %2414 = add nsw i32 %2413, 1
  store i32 %2414, ptr @test_count, align 4, !tbaa !5
  %2415 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %2356, i32 noundef 0, ptr noundef nonnull @s2n_tls13_aes_128_gcm_sha256) #11
  %2416 = call zeroext i1 @s2n_result_is_ok(i32 %2415)
  br i1 %2416, label %2441, label %2417

2417:                                             ; preds = %2412
  %2418 = tail call ptr @__errno_location() #12
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = call i32 @s2n_print_stacktrace(ptr noundef %2420) #11
  %2422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2423 = trunc nuw i8 %2422 to i1
  br i1 %2423, label %2424, label %2428

2424:                                             ; preds = %2417
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = call i32 @fileno(ptr noundef %2425) #11
  %2427 = call i32 @isatty(i32 noundef %2426) #11
  %.not771 = icmp eq i32 %2427, 0
  br i1 %.not771, label %2428, label %2429

2428:                                             ; preds = %2424, %2417
  br label %2429

2429:                                             ; preds = %2424, %2428
  %.str.5.sink1872 = phi ptr [ @.str.5, %2428 ], [ @.str.2, %2424 ]
  store i32 %2419, ptr %2418, align 4, !tbaa !5
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = load i32, ptr @test_count, align 4, !tbaa !5
  %2432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror(i32 noundef %2433, ptr noundef nonnull @.str.4) #11
  %2435 = load i32, ptr %2432, align 4, !tbaa !5
  %2436 = call ptr @s2n_strerror_debug(i32 noundef %2435, ptr noundef nonnull @.str.4) #11
  %2437 = load i32, ptr %2418, align 4, !tbaa !5
  %2438 = call ptr @strerror(i32 noundef %2437) #11
  %2439 = load i32, ptr %2418, align 4, !tbaa !5
  %2440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2430, ptr noundef nonnull %.str.5.sink1872, i32 noundef %2431, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %2434, ptr noundef %2436, ptr noundef %2438, i32 noundef %2439) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2441:                                             ; preds = %2412
  %2442 = load i32, ptr @test_count, align 4, !tbaa !5
  %2443 = add nsw i32 %2442, 1
  store i32 %2443, ptr @test_count, align 4, !tbaa !5
  %2444 = getelementptr inbounds i8, ptr %2356, i64 2172
  %2445 = load i32, ptr %2444, align 4, !tbaa !46
  %2446 = icmp eq i32 %2445, 0
  br i1 %2446, label %2471, label %2447

2447:                                             ; preds = %2441
  %2448 = tail call ptr @__errno_location() #12
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = call i32 @s2n_print_stacktrace(ptr noundef %2450) #11
  %2452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2453 = trunc nuw i8 %2452 to i1
  br i1 %2453, label %2454, label %2458

2454:                                             ; preds = %2447
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = call i32 @fileno(ptr noundef %2455) #11
  %2457 = call i32 @isatty(i32 noundef %2456) #11
  %.not772 = icmp eq i32 %2457, 0
  br i1 %.not772, label %2458, label %2459

2458:                                             ; preds = %2454, %2447
  br label %2459

2459:                                             ; preds = %2454, %2458
  %.str.5.sink1883 = phi ptr [ @.str.5, %2458 ], [ @.str.2, %2454 ]
  store i32 %2449, ptr %2448, align 4, !tbaa !5
  %2460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2461 = load i32, ptr @test_count, align 4, !tbaa !5
  %2462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @s2n_strerror(i32 noundef %2463, ptr noundef nonnull @.str.4) #11
  %2465 = load i32, ptr %2462, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror_debug(i32 noundef %2465, ptr noundef nonnull @.str.4) #11
  %2467 = load i32, ptr %2448, align 4, !tbaa !5
  %2468 = call ptr @strerror(i32 noundef %2467) #11
  %2469 = load i32, ptr %2448, align 4, !tbaa !5
  %2470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2460, ptr noundef nonnull %.str.5.sink1883, i32 noundef %2461, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 238, ptr noundef %2464, ptr noundef %2466, ptr noundef %2468, i32 noundef %2469) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2471:                                             ; preds = %2441
  %2472 = getelementptr inbounds i8, ptr %2356, i64 220
  store i8 33, ptr %2472, align 4, !tbaa !18
  %2473 = load i32, ptr %2327, align 8
  %2474 = and i32 %2473, -3
  store i32 %2474, ptr %2327, align 8
  %2475 = load i32, ptr @test_count, align 4, !tbaa !5
  %2476 = add nsw i32 %2475, 1
  store i32 %2476, ptr @test_count, align 4, !tbaa !5
  %2477 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_early_data_indication_extension, i64 8), align 8, !tbaa !47
  %2478 = call i32 %2477(ptr noundef nonnull %2356, ptr noundef null) #11
  %2479 = icmp eq i32 %2478, -1
  br i1 %2479, label %2480, label %2504

2480:                                             ; preds = %2471
  %2481 = tail call ptr @__errno_location() #12
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2484 = call i32 @s2n_print_stacktrace(ptr noundef %2483) #11
  %2485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2486 = trunc nuw i8 %2485 to i1
  br i1 %2486, label %2487, label %2491

2487:                                             ; preds = %2480
  %2488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2489 = call i32 @fileno(ptr noundef %2488) #11
  %2490 = call i32 @isatty(i32 noundef %2489) #11
  %.not906 = icmp eq i32 %2490, 0
  br i1 %.not906, label %2491, label %2492

2491:                                             ; preds = %2487, %2480
  br label %2492

2492:                                             ; preds = %2487, %2491
  %.str.5.sink1894 = phi ptr [ @.str.5, %2491 ], [ @.str.2, %2487 ]
  store i32 %2482, ptr %2481, align 4, !tbaa !5
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = load i32, ptr @test_count, align 4, !tbaa !5
  %2495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror(i32 noundef %2496, ptr noundef nonnull @.str.4) #11
  %2498 = load i32, ptr %2495, align 4, !tbaa !5
  %2499 = call ptr @s2n_strerror_debug(i32 noundef %2498, ptr noundef nonnull @.str.4) #11
  %2500 = load i32, ptr %2481, align 4, !tbaa !5
  %2501 = call ptr @strerror(i32 noundef %2500) #11
  %2502 = load i32, ptr %2481, align 4, !tbaa !5
  %2503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2493, ptr noundef nonnull %.str.5.sink1894, i32 noundef %2494, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %2497, ptr noundef %2499, ptr noundef %2501, i32 noundef %2502) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2504:                                             ; preds = %2471
  %2505 = load i32, ptr @test_count, align 4, !tbaa !5
  %2506 = add nsw i32 %2505, 1
  store i32 %2506, ptr @test_count, align 4, !tbaa !5
  %2507 = load i32, ptr %2444, align 4, !tbaa !46
  %2508 = icmp eq i32 %2507, 0
  br i1 %2508, label %2533, label %2509

2509:                                             ; preds = %2504
  %2510 = tail call ptr @__errno_location() #12
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @s2n_print_stacktrace(ptr noundef %2512) #11
  %2514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2515 = trunc nuw i8 %2514 to i1
  br i1 %2515, label %2516, label %2520

2516:                                             ; preds = %2509
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = call i32 @fileno(ptr noundef %2517) #11
  %2519 = call i32 @isatty(i32 noundef %2518) #11
  %.not773 = icmp eq i32 %2519, 0
  br i1 %.not773, label %2520, label %2521

2520:                                             ; preds = %2516, %2509
  br label %2521

2521:                                             ; preds = %2516, %2520
  %.str.5.sink1905 = phi ptr [ @.str.5, %2520 ], [ @.str.2, %2516 ]
  store i32 %2511, ptr %2510, align 4, !tbaa !5
  %2522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2523 = load i32, ptr @test_count, align 4, !tbaa !5
  %2524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror(i32 noundef %2525, ptr noundef nonnull @.str.4) #11
  %2527 = load i32, ptr %2524, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror_debug(i32 noundef %2527, ptr noundef nonnull @.str.4) #11
  %2529 = load i32, ptr %2510, align 4, !tbaa !5
  %2530 = call ptr @strerror(i32 noundef %2529) #11
  %2531 = load i32, ptr %2510, align 4, !tbaa !5
  %2532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2522, ptr noundef nonnull %.str.5.sink1905, i32 noundef %2523, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2526, ptr noundef %2528, ptr noundef %2530, i32 noundef %2531) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2533:                                             ; preds = %2504
  store i8 34, ptr %2472, align 4, !tbaa !18
  %2534 = load i32, ptr %2327, align 8
  %2535 = or i32 %2534, 2
  store i32 %2535, ptr %2327, align 8
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = add nsw i32 %2536, 1
  store i32 %2537, ptr @test_count, align 4, !tbaa !5
  %2538 = call i32 %2477(ptr noundef nonnull %2356, ptr noundef null) #11
  %2539 = icmp eq i32 %2538, -1
  br i1 %2539, label %2540, label %2564

2540:                                             ; preds = %2533
  %2541 = tail call ptr @__errno_location() #12
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = call i32 @s2n_print_stacktrace(ptr noundef %2543) #11
  %2545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2546 = trunc nuw i8 %2545 to i1
  br i1 %2546, label %2547, label %2551

2547:                                             ; preds = %2540
  %2548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2549 = call i32 @fileno(ptr noundef %2548) #11
  %2550 = call i32 @isatty(i32 noundef %2549) #11
  %.not905 = icmp eq i32 %2550, 0
  br i1 %.not905, label %2551, label %2552

2551:                                             ; preds = %2547, %2540
  br label %2552

2552:                                             ; preds = %2547, %2551
  %.str.5.sink1916 = phi ptr [ @.str.5, %2551 ], [ @.str.2, %2547 ]
  store i32 %2542, ptr %2541, align 4, !tbaa !5
  %2553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2554 = load i32, ptr @test_count, align 4, !tbaa !5
  %2555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror(i32 noundef %2556, ptr noundef nonnull @.str.4) #11
  %2558 = load i32, ptr %2555, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror_debug(i32 noundef %2558, ptr noundef nonnull @.str.4) #11
  %2560 = load i32, ptr %2541, align 4, !tbaa !5
  %2561 = call ptr @strerror(i32 noundef %2560) #11
  %2562 = load i32, ptr %2541, align 4, !tbaa !5
  %2563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2553, ptr noundef nonnull %.str.5.sink1916, i32 noundef %2554, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %2557, ptr noundef %2559, ptr noundef %2561, i32 noundef %2562) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2564:                                             ; preds = %2533
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = add nsw i32 %2565, 1
  store i32 %2566, ptr @test_count, align 4, !tbaa !5
  %2567 = load i32, ptr %2444, align 4, !tbaa !46
  %2568 = icmp eq i32 %2567, 0
  br i1 %2568, label %2593, label %2569

2569:                                             ; preds = %2564
  %2570 = tail call ptr @__errno_location() #12
  %2571 = load i32, ptr %2570, align 4, !tbaa !5
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = call i32 @s2n_print_stacktrace(ptr noundef %2572) #11
  %2574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2575 = trunc nuw i8 %2574 to i1
  br i1 %2575, label %2576, label %2580

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

2580:                                             ; preds = %2576, %2569
  br label %2581

2581:                                             ; preds = %2576, %2580
  %.str.5.sink1927 = phi ptr [ @.str.5, %2580 ], [ @.str.2, %2576 ]
  store i32 %2571, ptr %2570, align 4, !tbaa !5
  %2582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2583 = load i32, ptr @test_count, align 4, !tbaa !5
  %2584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @s2n_strerror(i32 noundef %2585, ptr noundef nonnull @.str.4) #11
  %2587 = load i32, ptr %2584, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror_debug(i32 noundef %2587, ptr noundef nonnull @.str.4) #11
  %2589 = load i32, ptr %2570, align 4, !tbaa !5
  %2590 = call ptr @strerror(i32 noundef %2589) #11
  %2591 = load i32, ptr %2570, align 4, !tbaa !5
  %2592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2582, ptr noundef nonnull %.str.5.sink1927, i32 noundef %2583, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %2586, ptr noundef %2588, ptr noundef %2590, i32 noundef %2591) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2593:                                             ; preds = %2564
  store i8 34, ptr %2472, align 4, !tbaa !18
  %2594 = load i32, ptr %2327, align 8
  %2595 = and i32 %2594, -3
  store i32 %2595, ptr %2327, align 8
  %2596 = load i32, ptr @test_count, align 4, !tbaa !5
  %2597 = add nsw i32 %2596, 1
  store i32 %2597, ptr @test_count, align 4, !tbaa !5
  %2598 = call i32 %2477(ptr noundef nonnull %2356, ptr noundef null) #11
  %2599 = icmp eq i32 %2598, -1
  br i1 %2599, label %2600, label %2624

2600:                                             ; preds = %2593
  %2601 = tail call ptr @__errno_location() #12
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603) #11
  %2605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2606 = trunc nuw i8 %2605 to i1
  br i1 %2606, label %2607, label %2611

2607:                                             ; preds = %2600
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #11
  %2610 = call i32 @isatty(i32 noundef %2609) #11
  %.not904 = icmp eq i32 %2610, 0
  br i1 %.not904, label %2611, label %2612

2611:                                             ; preds = %2607, %2600
  br label %2612

2612:                                             ; preds = %2607, %2611
  %.str.5.sink1938 = phi ptr [ @.str.5, %2611 ], [ @.str.2, %2607 ]
  store i32 %2602, ptr %2601, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror(i32 noundef %2616, ptr noundef nonnull @.str.4) #11
  %2618 = load i32, ptr %2615, align 4, !tbaa !5
  %2619 = call ptr @s2n_strerror_debug(i32 noundef %2618, ptr noundef nonnull @.str.4) #11
  %2620 = load i32, ptr %2601, align 4, !tbaa !5
  %2621 = call ptr @strerror(i32 noundef %2620) #11
  %2622 = load i32, ptr %2601, align 4, !tbaa !5
  %2623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef nonnull %.str.5.sink1938, i32 noundef %2614, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %2617, ptr noundef %2619, ptr noundef %2621, i32 noundef %2622) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2624:                                             ; preds = %2593
  %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 = load i32, ptr %2444, align 4, !tbaa !46
  %2628 = icmp eq i32 %2627, 160
  br i1 %2628, label %2653, label %2629

2629:                                             ; preds = %2624
  %2630 = tail call ptr @__errno_location() #12
  %2631 = load i32, ptr %2630, align 4, !tbaa !5
  %2632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2633 = call i32 @s2n_print_stacktrace(ptr noundef %2632) #11
  %2634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2635 = trunc nuw i8 %2634 to i1
  br i1 %2635, label %2636, label %2640

2636:                                             ; preds = %2629
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = call i32 @fileno(ptr noundef %2637) #11
  %2639 = call i32 @isatty(i32 noundef %2638) #11
  %.not775 = icmp eq i32 %2639, 0
  br i1 %.not775, label %2640, label %2641

2640:                                             ; preds = %2636, %2629
  br label %2641

2641:                                             ; preds = %2636, %2640
  %.str.5.sink1949 = phi ptr [ @.str.5, %2640 ], [ @.str.2, %2636 ]
  store i32 %2631, ptr %2630, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = load i32, ptr @test_count, align 4, !tbaa !5
  %2644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror(i32 noundef %2645, ptr noundef nonnull @.str.4) #11
  %2647 = load i32, ptr %2644, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror_debug(i32 noundef %2647, ptr noundef nonnull @.str.4) #11
  %2649 = load i32, ptr %2630, align 4, !tbaa !5
  %2650 = call ptr @strerror(i32 noundef %2649) #11
  %2651 = load i32, ptr %2630, align 4, !tbaa !5
  %2652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2642, ptr noundef nonnull %.str.5.sink1949, i32 noundef %2643, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %2646, ptr noundef %2648, ptr noundef %2650, i32 noundef %2651) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2653:                                             ; preds = %2624
  %2654 = add nsw i32 %2625, 2
  store i32 %2654, ptr @test_count, align 4, !tbaa !5
  %2655 = call i32 @s2n_config_free(ptr noundef nonnull %2327) #11
  %2656 = icmp eq i32 %2655, -1
  br i1 %2656, label %2657, label %2681

2657:                                             ; preds = %2653
  %2658 = tail call ptr @__errno_location() #12
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = call i32 @s2n_print_stacktrace(ptr noundef %2660) #11
  %2662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2663 = trunc nuw i8 %2662 to i1
  br i1 %2663, label %2664, label %2668

2664:                                             ; preds = %2657
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = call i32 @fileno(ptr noundef %2665) #11
  %2667 = call i32 @isatty(i32 noundef %2666) #11
  %.not903 = icmp eq i32 %2667, 0
  br i1 %.not903, label %2668, label %2669

2668:                                             ; preds = %2664, %2657
  br label %2669

2669:                                             ; preds = %2664, %2668
  %.str.5.sink1960 = phi ptr [ @.str.5, %2668 ], [ @.str.2, %2664 ]
  store i32 %2659, ptr %2658, align 4, !tbaa !5
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = load i32, ptr @test_count, align 4, !tbaa !5
  %2672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @s2n_strerror(i32 noundef %2673, ptr noundef nonnull @.str.4) #11
  %2675 = load i32, ptr %2672, align 4, !tbaa !5
  %2676 = call ptr @s2n_strerror_debug(i32 noundef %2675, ptr noundef nonnull @.str.4) #11
  %2677 = load i32, ptr %2658, align 4, !tbaa !5
  %2678 = call ptr @strerror(i32 noundef %2677) #11
  %2679 = load i32, ptr %2658, align 4, !tbaa !5
  %2680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2670, ptr noundef nonnull %.str.5.sink1960, i32 noundef %2671, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %2674, ptr noundef %2676, ptr noundef %2678, i32 noundef %2679) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2681:                                             ; preds = %2653
  %2682 = load i32, ptr @test_count, align 4, !tbaa !5
  %2683 = add nsw i32 %2682, 1
  store i32 %2683, ptr @test_count, align 4, !tbaa !5
  %2684 = call i32 @s2n_connection_free(ptr noundef nonnull %2356) #11
  %2685 = icmp eq i32 %2684, -1
  br i1 %2685, label %2686, label %2710

2686:                                             ; preds = %2681
  %2687 = tail call ptr @__errno_location() #12
  %2688 = load i32, ptr %2687, align 4, !tbaa !5
  %2689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2690 = call i32 @s2n_print_stacktrace(ptr noundef %2689) #11
  %2691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2692 = trunc nuw i8 %2691 to i1
  br i1 %2692, label %2693, label %2697

2693:                                             ; preds = %2686
  %2694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2695 = call i32 @fileno(ptr noundef %2694) #11
  %2696 = call i32 @isatty(i32 noundef %2695) #11
  %.not902 = icmp eq i32 %2696, 0
  br i1 %.not902, label %2697, label %2698

2697:                                             ; preds = %2693, %2686
  br label %2698

2698:                                             ; preds = %2693, %2697
  %.str.5.sink1971 = phi ptr [ @.str.5, %2697 ], [ @.str.2, %2693 ]
  store i32 %2688, ptr %2687, align 4, !tbaa !5
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = load i32, ptr @test_count, align 4, !tbaa !5
  %2701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2702 = load i32, ptr %2701, align 4, !tbaa !5
  %2703 = call ptr @s2n_strerror(i32 noundef %2702, ptr noundef nonnull @.str.4) #11
  %2704 = load i32, ptr %2701, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef nonnull @.str.4) #11
  %2706 = load i32, ptr %2687, align 4, !tbaa !5
  %2707 = call ptr @strerror(i32 noundef %2706) #11
  %2708 = load i32, ptr %2687, align 4, !tbaa !5
  %2709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2699, ptr noundef nonnull %.str.5.sink1971, i32 noundef %2700, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %2703, ptr noundef %2705, ptr noundef %2707, i32 noundef %2708) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2710:                                             ; preds = %2681
  %2711 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %2712 = load i32, ptr @test_count, align 4, !tbaa !5
  %2713 = add nsw i32 %2712, 1
  store i32 %2713, ptr @test_count, align 4, !tbaa !5
  %2714 = icmp eq ptr %2711, null
  br i1 %2714, label %2715, label %2739

2715:                                             ; preds = %2710
  %2716 = tail call ptr @__errno_location() #12
  %2717 = load i32, ptr %2716, align 4, !tbaa !5
  %2718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2719 = call i32 @s2n_print_stacktrace(ptr noundef %2718) #11
  %2720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2721 = trunc nuw i8 %2720 to i1
  br i1 %2721, label %2722, label %2726

2722:                                             ; preds = %2715
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = call i32 @fileno(ptr noundef %2723) #11
  %2725 = call i32 @isatty(i32 noundef %2724) #11
  %.not901 = icmp eq i32 %2725, 0
  br i1 %.not901, label %2726, label %2727

2726:                                             ; preds = %2722, %2715
  br label %2727

2727:                                             ; preds = %2722, %2726
  %.str.5.sink1982 = phi ptr [ @.str.5, %2726 ], [ @.str.2, %2722 ]
  store i32 %2717, ptr %2716, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror(i32 noundef %2731, ptr noundef nonnull @.str.4) #11
  %2733 = load i32, ptr %2730, align 4, !tbaa !5
  %2734 = call ptr @s2n_strerror_debug(i32 noundef %2733, ptr noundef nonnull @.str.4) #11
  %2735 = load i32, ptr %2716, align 4, !tbaa !5
  %2736 = call ptr @strerror(i32 noundef %2735) #11
  %2737 = load i32, ptr %2716, align 4, !tbaa !5
  %2738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2728, ptr noundef nonnull %.str.5.sink1982, i32 noundef %2729, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %2732, ptr noundef %2734, ptr noundef %2736, i32 noundef %2737) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2739:                                             ; preds = %2710
  %2740 = getelementptr inbounds i8, ptr %2711, i64 220
  store i8 34, ptr %2740, align 4, !tbaa !18
  %2741 = getelementptr inbounds i8, ptr %2711, i64 4088
  store i32 0, ptr %2741, align 8, !tbaa !48
  %2742 = getelementptr inbounds i8, ptr %2711, i64 2176
  store i32 0, ptr %2742, align 8, !tbaa !49
  %2743 = add nsw i32 %2712, 2
  store i32 %2743, ptr @test_count, align 4, !tbaa !5
  %2744 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_early_data_indication_extension, i64 16), align 8, !tbaa !50
  %2745 = call i32 %2744(ptr noundef nonnull %2711, ptr noundef null) #11
  %2746 = icmp eq i32 %2745, -1
  br i1 %2746, label %2747, label %2771

2747:                                             ; preds = %2739
  %2748 = tail call ptr @__errno_location() #12
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = call i32 @s2n_print_stacktrace(ptr noundef %2750) #11
  %2752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2753 = trunc nuw i8 %2752 to i1
  br i1 %2753, label %2754, label %2758

2754:                                             ; preds = %2747
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = call i32 @fileno(ptr noundef %2755) #11
  %2757 = call i32 @isatty(i32 noundef %2756) #11
  %.not900 = icmp eq i32 %2757, 0
  br i1 %.not900, label %2758, label %2759

2758:                                             ; preds = %2754, %2747
  br label %2759

2759:                                             ; preds = %2754, %2758
  %.str.5.sink1993 = phi ptr [ @.str.5, %2758 ], [ @.str.2, %2754 ]
  store i32 %2749, ptr %2748, 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 nonnull @.str.4) #11
  %2765 = load i32, ptr %2762, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror_debug(i32 noundef %2765, ptr noundef nonnull @.str.4) #11
  %2767 = load i32, ptr %2748, align 4, !tbaa !5
  %2768 = call ptr @strerror(i32 noundef %2767) #11
  %2769 = load i32, ptr %2748, align 4, !tbaa !5
  %2770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2760, ptr noundef nonnull %.str.5.sink1993, i32 noundef %2761, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2764, ptr noundef %2766, ptr noundef %2768, i32 noundef %2769) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2771:                                             ; preds = %2739
  %2772 = load i32, ptr @test_count, align 4, !tbaa !5
  %2773 = add nsw i32 %2772, 1
  store i32 %2773, ptr @test_count, align 4, !tbaa !5
  %2774 = load i32, ptr %2741, align 8, !tbaa !48
  %2775 = icmp eq i32 %2774, 1
  br i1 %2775, label %2800, label %2776

2776:                                             ; preds = %2771
  %2777 = tail call ptr @__errno_location() #12
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2780 = call i32 @s2n_print_stacktrace(ptr noundef %2779) #11
  %2781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2782 = trunc nuw i8 %2781 to i1
  br i1 %2782, label %2783, label %2787

2783:                                             ; preds = %2776
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = call i32 @fileno(ptr noundef %2784) #11
  %2786 = call i32 @isatty(i32 noundef %2785) #11
  %.not776 = icmp eq i32 %2786, 0
  br i1 %.not776, label %2787, label %2788

2787:                                             ; preds = %2783, %2776
  br label %2788

2788:                                             ; preds = %2783, %2787
  %.str.5.sink2004 = phi ptr [ @.str.5, %2787 ], [ @.str.2, %2783 ]
  store i32 %2778, ptr %2777, align 4, !tbaa !5
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = load i32, ptr @test_count, align 4, !tbaa !5
  %2791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @s2n_strerror(i32 noundef %2792, ptr noundef nonnull @.str.4) #11
  %2794 = load i32, ptr %2791, align 4, !tbaa !5
  %2795 = call ptr @s2n_strerror_debug(i32 noundef %2794, ptr noundef nonnull @.str.4) #11
  %2796 = load i32, ptr %2777, align 4, !tbaa !5
  %2797 = call ptr @strerror(i32 noundef %2796) #11
  %2798 = load i32, ptr %2777, align 4, !tbaa !5
  %2799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2789, ptr noundef nonnull %.str.5.sink2004, i32 noundef %2790, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2793, ptr noundef %2795, ptr noundef %2797, i32 noundef %2798) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2800:                                             ; preds = %2771
  store i32 0, ptr %2741, align 8, !tbaa !48
  store i32 1, ptr %2742, align 8, !tbaa !49
  %2801 = add nsw i32 %2772, 2
  store i32 %2801, ptr @test_count, align 4, !tbaa !5
  %2802 = call i32 %2744(ptr noundef nonnull %2711, ptr noundef null) #11
  %2803 = icmp eq i32 %2802, -1
  br i1 %2803, label %2828, label %2804

2804:                                             ; preds = %2800
  %2805 = tail call ptr @__errno_location() #12
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = call i32 @s2n_print_stacktrace(ptr noundef %2807) #11
  %2809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2810 = trunc nuw i8 %2809 to i1
  br i1 %2810, label %2811, label %2815

2811:                                             ; preds = %2804
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = call i32 @fileno(ptr noundef %2812) #11
  %2814 = call i32 @isatty(i32 noundef %2813) #11
  %.not777 = icmp eq i32 %2814, 0
  br i1 %.not777, label %2815, label %2816

2815:                                             ; preds = %2811, %2804
  br label %2816

2816:                                             ; preds = %2811, %2815
  %.str.5.sink2015 = phi ptr [ @.str.5, %2815 ], [ @.str.2, %2811 ]
  store i32 %2806, ptr %2805, align 4, !tbaa !5
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = load i32, ptr @test_count, align 4, !tbaa !5
  %2819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2820 = load i32, ptr %2819, align 4, !tbaa !5
  %2821 = call ptr @s2n_strerror(i32 noundef %2820, ptr noundef nonnull @.str.4) #11
  %2822 = load i32, ptr %2819, align 4, !tbaa !5
  %2823 = call ptr @s2n_strerror_debug(i32 noundef %2822, ptr noundef nonnull @.str.4) #11
  %2824 = load i32, ptr %2805, align 4, !tbaa !5
  %2825 = call ptr @strerror(i32 noundef %2824) #11
  %2826 = load i32, ptr %2805, align 4, !tbaa !5
  %2827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2817, ptr noundef nonnull %.str.5.sink2015, i32 noundef %2818, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2821, ptr noundef %2823, ptr noundef %2825, i32 noundef %2826) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2828:                                             ; preds = %2800
  %2829 = load i32, ptr @test_count, align 4, !tbaa !5
  %2830 = add nsw i32 %2829, 1
  store i32 %2830, ptr @test_count, align 4, !tbaa !5
  %2831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = icmp eq i32 %2832, 335544394
  br i1 %2833, label %2857, label %2834

2834:                                             ; preds = %2828
  %2835 = tail call ptr @__errno_location() #12
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = call i32 @s2n_print_stacktrace(ptr noundef %2837) #11
  %2839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2840 = trunc nuw i8 %2839 to i1
  br i1 %2840, label %2841, label %2845

2841:                                             ; preds = %2834
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = call i32 @fileno(ptr noundef %2842) #11
  %2844 = call i32 @isatty(i32 noundef %2843) #11
  %.not778 = icmp eq i32 %2844, 0
  br i1 %.not778, label %2845, label %2846

2845:                                             ; preds = %2841, %2834
  br label %2846

2846:                                             ; preds = %2841, %2845
  %.str.5.sink2026 = phi ptr [ @.str.5, %2845 ], [ @.str.2, %2841 ]
  store i32 %2836, ptr %2835, align 4, !tbaa !5
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = load i32, ptr @test_count, align 4, !tbaa !5
  %2849 = load i32, ptr %2831, align 4, !tbaa !5
  %2850 = call ptr @s2n_strerror(i32 noundef %2849, ptr noundef nonnull @.str.4) #11
  %2851 = load i32, ptr %2831, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror_debug(i32 noundef %2851, ptr noundef nonnull @.str.4) #11
  %2853 = load i32, ptr %2835, align 4, !tbaa !5
  %2854 = call ptr @strerror(i32 noundef %2853) #11
  %2855 = load i32, ptr %2835, align 4, !tbaa !5
  %2856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2847, ptr noundef nonnull %.str.5.sink2026, i32 noundef %2848, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2850, ptr noundef %2852, ptr noundef %2854, i32 noundef %2855) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2857:                                             ; preds = %2828
  %2858 = add nsw i32 %2829, 2
  store i32 %2858, ptr @test_count, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror_debug(i32 noundef 335544394, ptr noundef nonnull @.str.4) #11
  %2860 = icmp eq ptr %2859, null
  br i1 %2860, label %2861, label %2884

2861:                                             ; preds = %2857
  %2862 = tail call ptr @__errno_location() #12
  %2863 = load i32, ptr %2862, align 4, !tbaa !5
  %2864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2865 = call i32 @s2n_print_stacktrace(ptr noundef %2864) #11
  %2866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2867 = trunc nuw i8 %2866 to i1
  br i1 %2867, label %2868, label %2872

2868:                                             ; preds = %2861
  %2869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2870 = call i32 @fileno(ptr noundef %2869) #11
  %2871 = call i32 @isatty(i32 noundef %2870) #11
  %.not899 = icmp eq i32 %2871, 0
  br i1 %.not899, label %2872, label %2873

2872:                                             ; preds = %2868, %2861
  br label %2873

2873:                                             ; preds = %2868, %2872
  %.str.5.sink2035 = phi ptr [ @.str.5, %2872 ], [ @.str.2, %2868 ]
  store i32 %2863, ptr %2862, align 4, !tbaa !5
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = load i32, ptr %2831, align 4, !tbaa !5
  %2877 = call ptr @s2n_strerror(i32 noundef %2876, ptr noundef nonnull @.str.4) #11
  %2878 = load i32, ptr %2831, align 4, !tbaa !5
  %2879 = call ptr @s2n_strerror_debug(i32 noundef %2878, ptr noundef nonnull @.str.4) #11
  %2880 = load i32, ptr %2862, align 4, !tbaa !5
  %2881 = call ptr @strerror(i32 noundef %2880) #11
  %2882 = load i32, ptr %2862, align 4, !tbaa !5
  %2883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2874, ptr noundef nonnull %.str.5.sink2035, i32 noundef %2875, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2877, ptr noundef %2879, ptr noundef %2881, i32 noundef %2882) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2884:                                             ; preds = %2857
  store i32 0, ptr %2831, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %2885 = tail call ptr @__errno_location() #12
  store i32 0, ptr %2885, align 4, !tbaa !5
  %2886 = load i32, ptr @test_count, align 4, !tbaa !5
  %2887 = add nsw i32 %2886, 1
  store i32 %2887, ptr @test_count, align 4, !tbaa !5
  %2888 = call i32 @s2n_connection_free(ptr noundef nonnull %2711) #11
  %2889 = icmp eq i32 %2888, -1
  br i1 %2889, label %2890, label %2912

2890:                                             ; preds = %2884
  %2891 = load i32, ptr %2885, align 4, !tbaa !5
  %2892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2893 = call i32 @s2n_print_stacktrace(ptr noundef %2892) #11
  %2894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2895 = trunc nuw i8 %2894 to i1
  br i1 %2895, label %2896, label %2900

2896:                                             ; preds = %2890
  %2897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2898 = call i32 @fileno(ptr noundef %2897) #11
  %2899 = call i32 @isatty(i32 noundef %2898) #11
  %.not898 = icmp eq i32 %2899, 0
  br i1 %.not898, label %2900, label %2901

2900:                                             ; preds = %2896, %2890
  br label %2901

2901:                                             ; preds = %2896, %2900
  %.str.5.sink2044 = phi ptr [ @.str.5, %2900 ], [ @.str.2, %2896 ]
  store i32 %2891, ptr %2885, align 4, !tbaa !5
  %2902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2903 = load i32, ptr @test_count, align 4, !tbaa !5
  %2904 = load i32, ptr %2831, align 4, !tbaa !5
  %2905 = call ptr @s2n_strerror(i32 noundef %2904, ptr noundef nonnull @.str.4) #11
  %2906 = load i32, ptr %2831, align 4, !tbaa !5
  %2907 = call ptr @s2n_strerror_debug(i32 noundef %2906, ptr noundef nonnull @.str.4) #11
  %2908 = load i32, ptr %2885, align 4, !tbaa !5
  %2909 = call ptr @strerror(i32 noundef %2908) #11
  %2910 = load i32, ptr %2885, align 4, !tbaa !5
  %2911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2902, ptr noundef nonnull %.str.5.sink2044, i32 noundef %2903, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2905, ptr noundef %2907, ptr noundef %2909, i32 noundef %2910) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2912:                                             ; preds = %2884
  %2913 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %2914 = load i32, ptr @test_count, align 4, !tbaa !5
  %2915 = add nsw i32 %2914, 1
  store i32 %2915, ptr @test_count, align 4, !tbaa !5
  %2916 = icmp eq ptr %2913, null
  br i1 %2916, label %2917, label %2939

2917:                                             ; preds = %2912
  %2918 = load i32, ptr %2885, align 4, !tbaa !5
  %2919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2920 = call i32 @s2n_print_stacktrace(ptr noundef %2919) #11
  %2921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2922 = trunc nuw i8 %2921 to i1
  br i1 %2922, label %2923, label %2927

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

2927:                                             ; preds = %2923, %2917
  br label %2928

2928:                                             ; preds = %2923, %2927
  %.str.5.sink2053 = phi ptr [ @.str.5, %2927 ], [ @.str.2, %2923 ]
  store i32 %2918, ptr %2885, align 4, !tbaa !5
  %2929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2930 = load i32, ptr @test_count, align 4, !tbaa !5
  %2931 = load i32, ptr %2831, align 4, !tbaa !5
  %2932 = call ptr @s2n_strerror(i32 noundef %2931, ptr noundef nonnull @.str.4) #11
  %2933 = load i32, ptr %2831, align 4, !tbaa !5
  %2934 = call ptr @s2n_strerror_debug(i32 noundef %2933, ptr noundef nonnull @.str.4) #11
  %2935 = load i32, ptr %2885, align 4, !tbaa !5
  %2936 = call ptr @strerror(i32 noundef %2935) #11
  %2937 = load i32, ptr %2885, align 4, !tbaa !5
  %2938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2929, ptr noundef nonnull %.str.5.sink2053, i32 noundef %2930, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2932, ptr noundef %2934, ptr noundef %2936, i32 noundef %2937) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2939:                                             ; preds = %2912
  %2940 = add nsw i32 %2914, 2
  store i32 %2940, ptr @test_count, align 4, !tbaa !5
  %2941 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2913, ptr noundef nonnull @.str.16) #11
  %2942 = icmp eq i32 %2941, -1
  br i1 %2942, label %2943, label %2965

2943:                                             ; preds = %2939
  %2944 = load i32, ptr %2885, align 4, !tbaa !5
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = call i32 @s2n_print_stacktrace(ptr noundef %2945) #11
  %2947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2948 = trunc nuw i8 %2947 to i1
  br i1 %2948, label %2949, label %2953

2949:                                             ; preds = %2943
  %2950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2951 = call i32 @fileno(ptr noundef %2950) #11
  %2952 = call i32 @isatty(i32 noundef %2951) #11
  %.not896 = icmp eq i32 %2952, 0
  br i1 %.not896, label %2953, label %2954

2953:                                             ; preds = %2949, %2943
  br label %2954

2954:                                             ; preds = %2949, %2953
  %.str.5.sink2062 = phi ptr [ @.str.5, %2953 ], [ @.str.2, %2949 ]
  store i32 %2944, ptr %2885, align 4, !tbaa !5
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = load i32, ptr @test_count, align 4, !tbaa !5
  %2957 = load i32, ptr %2831, align 4, !tbaa !5
  %2958 = call ptr @s2n_strerror(i32 noundef %2957, ptr noundef nonnull @.str.4) #11
  %2959 = load i32, ptr %2831, align 4, !tbaa !5
  %2960 = call ptr @s2n_strerror_debug(i32 noundef %2959, ptr noundef nonnull @.str.4) #11
  %2961 = load i32, ptr %2885, align 4, !tbaa !5
  %2962 = call ptr @strerror(i32 noundef %2961) #11
  %2963 = load i32, ptr %2885, align 4, !tbaa !5
  %2964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2955, ptr noundef nonnull %.str.5.sink2062, i32 noundef %2956, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %2958, ptr noundef %2960, ptr noundef %2962, i32 noundef %2963) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2965:                                             ; preds = %2939
  %2966 = load i32, ptr @test_count, align 4, !tbaa !5
  %2967 = add nsw i32 %2966, 1
  store i32 %2967, ptr @test_count, align 4, !tbaa !5
  %2968 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %2913, i32 noundef 1, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %2969 = call zeroext i1 @s2n_result_is_ok(i32 %2968)
  br i1 %2969, label %2992, label %2970

2970:                                             ; preds = %2965
  %2971 = load i32, ptr %2885, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = call i32 @s2n_print_stacktrace(ptr noundef %2972) #11
  %2974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2975 = trunc nuw i8 %2974 to i1
  br i1 %2975, label %2976, label %2980

2976:                                             ; preds = %2970
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = call i32 @fileno(ptr noundef %2977) #11
  %2979 = call i32 @isatty(i32 noundef %2978) #11
  %.not779 = icmp eq i32 %2979, 0
  br i1 %.not779, label %2980, label %2981

2980:                                             ; preds = %2976, %2970
  br label %2981

2981:                                             ; preds = %2976, %2980
  %.str.5.sink2071 = phi ptr [ @.str.5, %2980 ], [ @.str.2, %2976 ]
  store i32 %2971, ptr %2885, align 4, !tbaa !5
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = load i32, ptr @test_count, align 4, !tbaa !5
  %2984 = load i32, ptr %2831, align 4, !tbaa !5
  %2985 = call ptr @s2n_strerror(i32 noundef %2984, ptr noundef nonnull @.str.4) #11
  %2986 = load i32, ptr %2831, align 4, !tbaa !5
  %2987 = call ptr @s2n_strerror_debug(i32 noundef %2986, ptr noundef nonnull @.str.4) #11
  %2988 = load i32, ptr %2885, align 4, !tbaa !5
  %2989 = call ptr @strerror(i32 noundef %2988) #11
  %2990 = load i32, ptr %2885, align 4, !tbaa !5
  %2991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2982, ptr noundef nonnull %.str.5.sink2071, i32 noundef %2983, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %2985, ptr noundef %2987, ptr noundef %2989, i32 noundef %2990) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2992:                                             ; preds = %2965
  %2993 = load i32, ptr @test_count, align 4, !tbaa !5
  %2994 = add nsw i32 %2993, 1
  store i32 %2994, ptr @test_count, align 4, !tbaa !5
  %2995 = getelementptr inbounds i8, ptr %2913, i64 4088
  %2996 = load i32, ptr %2995, align 8, !tbaa !48
  %2997 = icmp eq i32 %2996, 0
  br i1 %2997, label %3020, label %2998

2998:                                             ; preds = %2992
  %2999 = load i32, ptr %2885, align 4, !tbaa !5
  %3000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3001 = call i32 @s2n_print_stacktrace(ptr noundef %3000) #11
  %3002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3003 = trunc nuw i8 %3002 to i1
  br i1 %3003, label %3004, label %3008

3004:                                             ; preds = %2998
  %3005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3006 = call i32 @fileno(ptr noundef %3005) #11
  %3007 = call i32 @isatty(i32 noundef %3006) #11
  %.not780 = icmp eq i32 %3007, 0
  br i1 %.not780, label %3008, label %3009

3008:                                             ; preds = %3004, %2998
  br label %3009

3009:                                             ; preds = %3004, %3008
  %.str.5.sink2080 = phi ptr [ @.str.5, %3008 ], [ @.str.2, %3004 ]
  store i32 %2999, ptr %2885, align 4, !tbaa !5
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3011 = load i32, ptr @test_count, align 4, !tbaa !5
  %3012 = load i32, ptr %2831, align 4, !tbaa !5
  %3013 = call ptr @s2n_strerror(i32 noundef %3012, ptr noundef nonnull @.str.4) #11
  %3014 = load i32, ptr %2831, align 4, !tbaa !5
  %3015 = call ptr @s2n_strerror_debug(i32 noundef %3014, ptr noundef nonnull @.str.4) #11
  %3016 = load i32, ptr %2885, align 4, !tbaa !5
  %3017 = call ptr @strerror(i32 noundef %3016) #11
  %3018 = load i32, ptr %2885, align 4, !tbaa !5
  %3019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3010, ptr noundef nonnull %.str.5.sink2080, i32 noundef %3011, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %3013, ptr noundef %3015, ptr noundef %3017, i32 noundef %3018) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3020:                                             ; preds = %2992
  %3021 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %3023 = add nsw i32 %3022, 1
  store i32 %3023, ptr @test_count, align 4, !tbaa !5
  %3024 = icmp eq ptr %3021, null
  br i1 %3024, label %3025, label %3047

3025:                                             ; preds = %3020
  %3026 = load i32, ptr %2885, align 4, !tbaa !5
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = call i32 @s2n_print_stacktrace(ptr noundef %3027) #11
  %3029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3030 = trunc nuw i8 %3029 to i1
  br i1 %3030, label %3031, label %3035

3031:                                             ; preds = %3025
  %3032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3033 = call i32 @fileno(ptr noundef %3032) #11
  %3034 = call i32 @isatty(i32 noundef %3033) #11
  %.not895 = icmp eq i32 %3034, 0
  br i1 %.not895, label %3035, label %3036

3035:                                             ; preds = %3031, %3025
  br label %3036

3036:                                             ; preds = %3031, %3035
  %.str.5.sink2089 = phi ptr [ @.str.5, %3035 ], [ @.str.2, %3031 ]
  store i32 %3026, ptr %2885, align 4, !tbaa !5
  %3037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3038 = load i32, ptr @test_count, align 4, !tbaa !5
  %3039 = load i32, ptr %2831, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror(i32 noundef %3039, ptr noundef nonnull @.str.4) #11
  %3041 = load i32, ptr %2831, align 4, !tbaa !5
  %3042 = call ptr @s2n_strerror_debug(i32 noundef %3041, ptr noundef nonnull @.str.4) #11
  %3043 = load i32, ptr %2885, align 4, !tbaa !5
  %3044 = call ptr @strerror(i32 noundef %3043) #11
  %3045 = load i32, ptr %2885, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3037, ptr noundef nonnull %.str.5.sink2089, i32 noundef %3038, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %3040, ptr noundef %3042, ptr noundef %3044, i32 noundef %3045) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3047:                                             ; preds = %3020
  %3048 = add nsw i32 %3022, 2
  store i32 %3048, ptr @test_count, align 4, !tbaa !5
  %3049 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3021, ptr noundef nonnull @.str.16) #11
  %3050 = icmp eq i32 %3049, -1
  br i1 %3050, label %3051, label %3073

3051:                                             ; preds = %3047
  %3052 = load i32, ptr %2885, align 4, !tbaa !5
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = call i32 @s2n_print_stacktrace(ptr noundef %3053) #11
  %3055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3056 = trunc nuw i8 %3055 to i1
  br i1 %3056, label %3057, label %3061

3057:                                             ; preds = %3051
  %3058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3059 = call i32 @fileno(ptr noundef %3058) #11
  %3060 = call i32 @isatty(i32 noundef %3059) #11
  %.not894 = icmp eq i32 %3060, 0
  br i1 %.not894, label %3061, label %3062

3061:                                             ; preds = %3057, %3051
  br label %3062

3062:                                             ; preds = %3057, %3061
  %.str.5.sink2098 = phi ptr [ @.str.5, %3061 ], [ @.str.2, %3057 ]
  store i32 %3052, ptr %2885, align 4, !tbaa !5
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = load i32, ptr @test_count, align 4, !tbaa !5
  %3065 = load i32, ptr %2831, align 4, !tbaa !5
  %3066 = call ptr @s2n_strerror(i32 noundef %3065, ptr noundef nonnull @.str.4) #11
  %3067 = load i32, ptr %2831, align 4, !tbaa !5
  %3068 = call ptr @s2n_strerror_debug(i32 noundef %3067, ptr noundef nonnull @.str.4) #11
  %3069 = load i32, ptr %2885, align 4, !tbaa !5
  %3070 = call ptr @strerror(i32 noundef %3069) #11
  %3071 = load i32, ptr %2885, align 4, !tbaa !5
  %3072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3063, ptr noundef nonnull %.str.5.sink2098, i32 noundef %3064, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %3066, ptr noundef %3068, ptr noundef %3070, i32 noundef %3071) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3073:                                             ; preds = %3047
  %3074 = load i32, ptr @test_count, align 4, !tbaa !5
  %3075 = add nsw i32 %3074, 1
  store i32 %3075, ptr @test_count, align 4, !tbaa !5
  %3076 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %3021, i32 noundef 1, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %3077 = call zeroext i1 @s2n_result_is_ok(i32 %3076)
  br i1 %3077, label %3100, label %3078

3078:                                             ; preds = %3073
  %3079 = load i32, ptr %2885, align 4, !tbaa !5
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = call i32 @s2n_print_stacktrace(ptr noundef %3080) #11
  %3082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3083 = trunc nuw i8 %3082 to i1
  br i1 %3083, label %3084, label %3088

3084:                                             ; preds = %3078
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = call i32 @fileno(ptr noundef %3085) #11
  %3087 = call i32 @isatty(i32 noundef %3086) #11
  %.not781 = icmp eq i32 %3087, 0
  br i1 %.not781, label %3088, label %3089

3088:                                             ; preds = %3084, %3078
  br label %3089

3089:                                             ; preds = %3084, %3088
  %.str.5.sink2107 = phi ptr [ @.str.5, %3088 ], [ @.str.2, %3084 ]
  store i32 %3079, ptr %2885, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %3092 = load i32, ptr %2831, align 4, !tbaa !5
  %3093 = call ptr @s2n_strerror(i32 noundef %3092, ptr noundef nonnull @.str.4) #11
  %3094 = load i32, ptr %2831, align 4, !tbaa !5
  %3095 = call ptr @s2n_strerror_debug(i32 noundef %3094, ptr noundef nonnull @.str.4) #11
  %3096 = load i32, ptr %2885, align 4, !tbaa !5
  %3097 = call ptr @strerror(i32 noundef %3096) #11
  %3098 = load i32, ptr %2885, align 4, !tbaa !5
  %3099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3090, ptr noundef nonnull %.str.5.sink2107, i32 noundef %3091, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %3093, ptr noundef %3095, ptr noundef %3097, i32 noundef %3098) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3100:                                             ; preds = %3073
  %3101 = load i32, ptr @test_count, align 4, !tbaa !5
  %3102 = add nsw i32 %3101, 1
  store i32 %3102, ptr @test_count, align 4, !tbaa !5
  %3103 = getelementptr inbounds i8, ptr %3021, i64 4088
  %3104 = load i32, ptr %3103, align 8, !tbaa !48
  %3105 = icmp eq i32 %3104, 0
  br i1 %3105, label %3128, label %3106

3106:                                             ; preds = %3100
  %3107 = load i32, ptr %2885, align 4, !tbaa !5
  %3108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3109 = call i32 @s2n_print_stacktrace(ptr noundef %3108) #11
  %3110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3111 = trunc nuw i8 %3110 to i1
  br i1 %3111, label %3112, label %3116

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

3116:                                             ; preds = %3112, %3106
  br label %3117

3117:                                             ; preds = %3112, %3116
  %.str.5.sink2116 = phi ptr [ @.str.5, %3116 ], [ @.str.2, %3112 ]
  store i32 %3107, ptr %2885, align 4, !tbaa !5
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = load i32, ptr @test_count, align 4, !tbaa !5
  %3120 = load i32, ptr %2831, align 4, !tbaa !5
  %3121 = call ptr @s2n_strerror(i32 noundef %3120, ptr noundef nonnull @.str.4) #11
  %3122 = load i32, ptr %2831, align 4, !tbaa !5
  %3123 = call ptr @s2n_strerror_debug(i32 noundef %3122, ptr noundef nonnull @.str.4) #11
  %3124 = load i32, ptr %2885, align 4, !tbaa !5
  %3125 = call ptr @strerror(i32 noundef %3124) #11
  %3126 = load i32, ptr %2885, align 4, !tbaa !5
  %3127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3118, ptr noundef nonnull %.str.5.sink2116, i32 noundef %3119, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %3121, ptr noundef %3123, ptr noundef %3125, i32 noundef %3126) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3128:                                             ; preds = %3100
  %3129 = add nsw i32 %3101, 2
  store i32 %3129, ptr @test_count, align 4, !tbaa !5
  %3130 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %3021) #11
  %3131 = icmp eq i32 %3130, -1
  br i1 %3131, label %3132, label %3154

3132:                                             ; preds = %3128
  %3133 = load i32, ptr %2885, align 4, !tbaa !5
  %3134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3135 = call i32 @s2n_print_stacktrace(ptr noundef %3134) #11
  %3136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3137 = trunc nuw i8 %3136 to i1
  br i1 %3137, label %3138, label %3142

3138:                                             ; preds = %3132
  %3139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3140 = call i32 @fileno(ptr noundef %3139) #11
  %3141 = call i32 @isatty(i32 noundef %3140) #11
  %.not893 = icmp eq i32 %3141, 0
  br i1 %.not893, label %3142, label %3143

3142:                                             ; preds = %3138, %3132
  br label %3143

3143:                                             ; preds = %3138, %3142
  %.str.5.sink2125 = phi ptr [ @.str.5, %3142 ], [ @.str.2, %3138 ]
  store i32 %3133, ptr %2885, align 4, !tbaa !5
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = load i32, ptr @test_count, align 4, !tbaa !5
  %3146 = load i32, ptr %2831, align 4, !tbaa !5
  %3147 = call ptr @s2n_strerror(i32 noundef %3146, ptr noundef nonnull @.str.4) #11
  %3148 = load i32, ptr %2831, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror_debug(i32 noundef %3148, ptr noundef nonnull @.str.4) #11
  %3150 = load i32, ptr %2885, align 4, !tbaa !5
  %3151 = call ptr @strerror(i32 noundef %3150) #11
  %3152 = load i32, ptr %2885, align 4, !tbaa !5
  %3153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3144, ptr noundef nonnull %.str.5.sink2125, i32 noundef %3145, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %3147, ptr noundef %3149, ptr noundef %3151, i32 noundef %3152) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3154:                                             ; preds = %3128
  %3155 = load i32, ptr @test_count, align 4, !tbaa !5
  %3156 = add nsw i32 %3155, 1
  store i32 %3156, ptr @test_count, align 4, !tbaa !5
  %3157 = call i32 @s2n_client_hello_send(ptr noundef nonnull %2913) #11
  %3158 = icmp eq i32 %3157, -1
  br i1 %3158, label %3159, label %3181

3159:                                             ; preds = %3154
  %3160 = load i32, ptr %2885, align 4, !tbaa !5
  %3161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3162 = call i32 @s2n_print_stacktrace(ptr noundef %3161) #11
  %3163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3164 = trunc nuw i8 %3163 to i1
  br i1 %3164, label %3165, label %3169

3165:                                             ; preds = %3159
  %3166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3167 = call i32 @fileno(ptr noundef %3166) #11
  %3168 = call i32 @isatty(i32 noundef %3167) #11
  %.not892 = icmp eq i32 %3168, 0
  br i1 %.not892, label %3169, label %3170

3169:                                             ; preds = %3165, %3159
  br label %3170

3170:                                             ; preds = %3165, %3169
  %.str.5.sink2134 = phi ptr [ @.str.5, %3169 ], [ @.str.2, %3165 ]
  store i32 %3160, ptr %2885, align 4, !tbaa !5
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = load i32, ptr @test_count, align 4, !tbaa !5
  %3173 = load i32, ptr %2831, align 4, !tbaa !5
  %3174 = call ptr @s2n_strerror(i32 noundef %3173, ptr noundef nonnull @.str.4) #11
  %3175 = load i32, ptr %2831, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror_debug(i32 noundef %3175, ptr noundef nonnull @.str.4) #11
  %3177 = load i32, ptr %2885, align 4, !tbaa !5
  %3178 = call ptr @strerror(i32 noundef %3177) #11
  %3179 = load i32, ptr %2885, align 4, !tbaa !5
  %3180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3171, ptr noundef nonnull %.str.5.sink2134, i32 noundef %3172, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %3174, ptr noundef %3176, ptr noundef %3178, i32 noundef %3179) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3181:                                             ; preds = %3154
  %3182 = load i32, ptr @test_count, align 4, !tbaa !5
  %3183 = add nsw i32 %3182, 1
  store i32 %3183, ptr @test_count, align 4, !tbaa !5
  %3184 = getelementptr inbounds i8, ptr %2913, i64 2016
  %3185 = getelementptr inbounds i8, ptr %3021, i64 2016
  %3186 = getelementptr inbounds i8, ptr %2913, i64 2044
  %3187 = load i32, ptr %3186, align 4, !tbaa !51
  %3188 = getelementptr inbounds i8, ptr %2913, i64 2040
  %3189 = load i32, ptr %3188, align 8, !tbaa !52
  %3190 = sub i32 %3187, %3189
  %3191 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3184, ptr noundef nonnull %3185, i32 noundef %3190) #11
  %3192 = icmp eq i32 %3191, -1
  br i1 %3192, label %3193, label %3215

3193:                                             ; preds = %3181
  %3194 = load i32, ptr %2885, align 4, !tbaa !5
  %3195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3196 = call i32 @s2n_print_stacktrace(ptr noundef %3195) #11
  %3197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3198 = trunc nuw i8 %3197 to i1
  br i1 %3198, label %3199, label %3203

3199:                                             ; preds = %3193
  %3200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3201 = call i32 @fileno(ptr noundef %3200) #11
  %3202 = call i32 @isatty(i32 noundef %3201) #11
  %.not891 = icmp eq i32 %3202, 0
  br i1 %.not891, label %3203, label %3204

3203:                                             ; preds = %3199, %3193
  br label %3204

3204:                                             ; preds = %3199, %3203
  %.str.5.sink2143 = phi ptr [ @.str.5, %3203 ], [ @.str.2, %3199 ]
  store i32 %3194, ptr %2885, align 4, !tbaa !5
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = load i32, ptr @test_count, align 4, !tbaa !5
  %3207 = load i32, ptr %2831, align 4, !tbaa !5
  %3208 = call ptr @s2n_strerror(i32 noundef %3207, ptr noundef nonnull @.str.4) #11
  %3209 = load i32, ptr %2831, align 4, !tbaa !5
  %3210 = call ptr @s2n_strerror_debug(i32 noundef %3209, ptr noundef nonnull @.str.4) #11
  %3211 = load i32, ptr %2885, align 4, !tbaa !5
  %3212 = call ptr @strerror(i32 noundef %3211) #11
  %3213 = load i32, ptr %2885, align 4, !tbaa !5
  %3214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3205, ptr noundef nonnull %.str.5.sink2143, i32 noundef %3206, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %3208, ptr noundef %3210, ptr noundef %3212, i32 noundef %3213) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3215:                                             ; preds = %3181
  %3216 = load i32, ptr @test_count, align 4, !tbaa !5
  %3217 = add nsw i32 %3216, 1
  store i32 %3217, ptr @test_count, align 4, !tbaa !5
  %3218 = call i32 @s2n_establish_session(ptr noundef nonnull %3021) #11
  %3219 = icmp eq i32 %3218, -1
  br i1 %3219, label %3220, label %3242

3220:                                             ; preds = %3215
  %3221 = load i32, ptr %2885, align 4, !tbaa !5
  %3222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3223 = call i32 @s2n_print_stacktrace(ptr noundef %3222) #11
  %3224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3225 = trunc nuw i8 %3224 to i1
  br i1 %3225, label %3226, label %3230

3226:                                             ; preds = %3220
  %3227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3228 = call i32 @fileno(ptr noundef %3227) #11
  %3229 = call i32 @isatty(i32 noundef %3228) #11
  %.not890 = icmp eq i32 %3229, 0
  br i1 %.not890, label %3230, label %3231

3230:                                             ; preds = %3226, %3220
  br label %3231

3231:                                             ; preds = %3226, %3230
  %.str.5.sink2152 = phi ptr [ @.str.5, %3230 ], [ @.str.2, %3226 ]
  store i32 %3221, ptr %2885, align 4, !tbaa !5
  %3232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3233 = load i32, ptr @test_count, align 4, !tbaa !5
  %3234 = load i32, ptr %2831, align 4, !tbaa !5
  %3235 = call ptr @s2n_strerror(i32 noundef %3234, ptr noundef nonnull @.str.4) #11
  %3236 = load i32, ptr %2831, align 4, !tbaa !5
  %3237 = call ptr @s2n_strerror_debug(i32 noundef %3236, ptr noundef nonnull @.str.4) #11
  %3238 = load i32, ptr %2885, align 4, !tbaa !5
  %3239 = call ptr @strerror(i32 noundef %3238) #11
  %3240 = load i32, ptr %2885, align 4, !tbaa !5
  %3241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3232, ptr noundef nonnull %.str.5.sink2152, i32 noundef %3233, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 309, ptr noundef %3235, ptr noundef %3237, ptr noundef %3239, i32 noundef %3240) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3242:                                             ; preds = %3215
  %3243 = load i32, ptr @test_count, align 4, !tbaa !5
  %3244 = add nsw i32 %3243, 1
  store i32 %3244, ptr @test_count, align 4, !tbaa !5
  %3245 = load i32, ptr %2995, align 8, !tbaa !48
  %3246 = icmp eq i32 %3245, 2
  br i1 %3246, label %3269, label %3247

3247:                                             ; preds = %3242
  %3248 = load i32, ptr %2885, align 4, !tbaa !5
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = call i32 @s2n_print_stacktrace(ptr noundef %3249) #11
  %3251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3252 = trunc nuw i8 %3251 to i1
  br i1 %3252, label %3253, label %3257

3253:                                             ; preds = %3247
  %3254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3255 = call i32 @fileno(ptr noundef %3254) #11
  %3256 = call i32 @isatty(i32 noundef %3255) #11
  %.not783 = icmp eq i32 %3256, 0
  br i1 %.not783, label %3257, label %3258

3257:                                             ; preds = %3253, %3247
  br label %3258

3258:                                             ; preds = %3253, %3257
  %.str.5.sink2161 = phi ptr [ @.str.5, %3257 ], [ @.str.2, %3253 ]
  store i32 %3248, ptr %2885, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3260 = load i32, ptr @test_count, align 4, !tbaa !5
  %3261 = load i32, ptr %2831, align 4, !tbaa !5
  %3262 = call ptr @s2n_strerror(i32 noundef %3261, ptr noundef nonnull @.str.4) #11
  %3263 = load i32, ptr %2831, align 4, !tbaa !5
  %3264 = call ptr @s2n_strerror_debug(i32 noundef %3263, ptr noundef nonnull @.str.4) #11
  %3265 = load i32, ptr %2885, align 4, !tbaa !5
  %3266 = call ptr @strerror(i32 noundef %3265) #11
  %3267 = load i32, ptr %2885, align 4, !tbaa !5
  %3268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3259, ptr noundef nonnull %.str.5.sink2161, i32 noundef %3260, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %3262, ptr noundef %3264, ptr noundef %3266, i32 noundef %3267) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3269:                                             ; preds = %3242
  %3270 = add nsw i32 %3243, 2
  store i32 %3270, ptr @test_count, align 4, !tbaa !5
  %3271 = load i32, ptr %3103, align 8, !tbaa !48
  %3272 = icmp eq i32 %3271, 2
  br i1 %3272, label %3295, label %3273

3273:                                             ; preds = %3269
  %3274 = load i32, ptr %2885, align 4, !tbaa !5
  %3275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3276 = call i32 @s2n_print_stacktrace(ptr noundef %3275) #11
  %3277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3278 = trunc nuw i8 %3277 to i1
  br i1 %3278, label %3279, label %3283

3279:                                             ; preds = %3273
  %3280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3281 = call i32 @fileno(ptr noundef %3280) #11
  %3282 = call i32 @isatty(i32 noundef %3281) #11
  %.not784 = icmp eq i32 %3282, 0
  br i1 %.not784, label %3283, label %3284

3283:                                             ; preds = %3279, %3273
  br label %3284

3284:                                             ; preds = %3279, %3283
  %.str.5.sink2170 = phi ptr [ @.str.5, %3283 ], [ @.str.2, %3279 ]
  store i32 %3274, ptr %2885, align 4, !tbaa !5
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = load i32, ptr @test_count, align 4, !tbaa !5
  %3287 = load i32, ptr %2831, align 4, !tbaa !5
  %3288 = call ptr @s2n_strerror(i32 noundef %3287, ptr noundef nonnull @.str.4) #11
  %3289 = load i32, ptr %2831, align 4, !tbaa !5
  %3290 = call ptr @s2n_strerror_debug(i32 noundef %3289, ptr noundef nonnull @.str.4) #11
  %3291 = load i32, ptr %2885, align 4, !tbaa !5
  %3292 = call ptr @strerror(i32 noundef %3291) #11
  %3293 = load i32, ptr %2885, align 4, !tbaa !5
  %3294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3285, ptr noundef nonnull %.str.5.sink2170, i32 noundef %3286, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %3288, ptr noundef %3290, ptr noundef %3292, i32 noundef %3293) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3295:                                             ; preds = %3269
  %3296 = add nsw i32 %3243, 3
  store i32 %3296, ptr @test_count, align 4, !tbaa !5
  %3297 = call i32 @s2n_connection_free(ptr noundef nonnull %2913) #11
  %3298 = icmp eq i32 %3297, -1
  br i1 %3298, label %3299, label %3321

3299:                                             ; preds = %3295
  %3300 = load i32, ptr %2885, align 4, !tbaa !5
  %3301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3302 = call i32 @s2n_print_stacktrace(ptr noundef %3301) #11
  %3303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3304 = trunc nuw i8 %3303 to i1
  br i1 %3304, label %3305, label %3309

3305:                                             ; preds = %3299
  %3306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3307 = call i32 @fileno(ptr noundef %3306) #11
  %3308 = call i32 @isatty(i32 noundef %3307) #11
  %.not889 = icmp eq i32 %3308, 0
  br i1 %.not889, label %3309, label %3310

3309:                                             ; preds = %3305, %3299
  br label %3310

3310:                                             ; preds = %3305, %3309
  %.str.5.sink2179 = phi ptr [ @.str.5, %3309 ], [ @.str.2, %3305 ]
  store i32 %3300, ptr %2885, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = load i32, ptr @test_count, align 4, !tbaa !5
  %3313 = load i32, ptr %2831, align 4, !tbaa !5
  %3314 = call ptr @s2n_strerror(i32 noundef %3313, ptr noundef nonnull @.str.4) #11
  %3315 = load i32, ptr %2831, align 4, !tbaa !5
  %3316 = call ptr @s2n_strerror_debug(i32 noundef %3315, ptr noundef nonnull @.str.4) #11
  %3317 = load i32, ptr %2885, align 4, !tbaa !5
  %3318 = call ptr @strerror(i32 noundef %3317) #11
  %3319 = load i32, ptr %2885, align 4, !tbaa !5
  %3320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3311, ptr noundef nonnull %.str.5.sink2179, i32 noundef %3312, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %3314, ptr noundef %3316, ptr noundef %3318, i32 noundef %3319) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3321:                                             ; preds = %3295
  %3322 = load i32, ptr @test_count, align 4, !tbaa !5
  %3323 = add nsw i32 %3322, 1
  store i32 %3323, ptr @test_count, align 4, !tbaa !5
  %3324 = call i32 @s2n_connection_free(ptr noundef nonnull %3021) #11
  %3325 = icmp eq i32 %3324, -1
  br i1 %3325, label %3326, label %3348

3326:                                             ; preds = %3321
  %3327 = load i32, ptr %2885, align 4, !tbaa !5
  %3328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3329 = call i32 @s2n_print_stacktrace(ptr noundef %3328) #11
  %3330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3331 = trunc nuw i8 %3330 to i1
  br i1 %3331, label %3332, label %3336

3332:                                             ; preds = %3326
  %3333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3334 = call i32 @fileno(ptr noundef %3333) #11
  %3335 = call i32 @isatty(i32 noundef %3334) #11
  %.not888 = icmp eq i32 %3335, 0
  br i1 %.not888, label %3336, label %3337

3336:                                             ; preds = %3332, %3326
  br label %3337

3337:                                             ; preds = %3332, %3336
  %.str.5.sink2188 = phi ptr [ @.str.5, %3336 ], [ @.str.2, %3332 ]
  store i32 %3327, ptr %2885, align 4, !tbaa !5
  %3338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3339 = load i32, ptr @test_count, align 4, !tbaa !5
  %3340 = load i32, ptr %2831, align 4, !tbaa !5
  %3341 = call ptr @s2n_strerror(i32 noundef %3340, ptr noundef nonnull @.str.4) #11
  %3342 = load i32, ptr %2831, align 4, !tbaa !5
  %3343 = call ptr @s2n_strerror_debug(i32 noundef %3342, ptr noundef nonnull @.str.4) #11
  %3344 = load i32, ptr %2885, align 4, !tbaa !5
  %3345 = call ptr @strerror(i32 noundef %3344) #11
  %3346 = load i32, ptr %2885, align 4, !tbaa !5
  %3347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3338, ptr noundef nonnull %.str.5.sink2188, i32 noundef %3339, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %3341, ptr noundef %3343, ptr noundef %3345, i32 noundef %3346) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3348:                                             ; preds = %3321
  %3349 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %3350 = load i32, ptr @test_count, align 4, !tbaa !5
  %3351 = add nsw i32 %3350, 1
  store i32 %3351, ptr @test_count, align 4, !tbaa !5
  %3352 = icmp eq ptr %3349, null
  br i1 %3352, label %3353, label %3375

3353:                                             ; preds = %3348
  %3354 = load i32, ptr %2885, align 4, !tbaa !5
  %3355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3356 = call i32 @s2n_print_stacktrace(ptr noundef %3355) #11
  %3357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3358 = trunc nuw i8 %3357 to i1
  br i1 %3358, label %3359, label %3363

3359:                                             ; preds = %3353
  %3360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3361 = call i32 @fileno(ptr noundef %3360) #11
  %3362 = call i32 @isatty(i32 noundef %3361) #11
  %.not887 = icmp eq i32 %3362, 0
  br i1 %.not887, label %3363, label %3364

3363:                                             ; preds = %3359, %3353
  br label %3364

3364:                                             ; preds = %3359, %3363
  %.str.5.sink2197 = phi ptr [ @.str.5, %3363 ], [ @.str.2, %3359 ]
  store i32 %3354, ptr %2885, align 4, !tbaa !5
  %3365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3366 = load i32, ptr @test_count, align 4, !tbaa !5
  %3367 = load i32, ptr %2831, align 4, !tbaa !5
  %3368 = call ptr @s2n_strerror(i32 noundef %3367, ptr noundef nonnull @.str.4) #11
  %3369 = load i32, ptr %2831, align 4, !tbaa !5
  %3370 = call ptr @s2n_strerror_debug(i32 noundef %3369, ptr noundef nonnull @.str.4) #11
  %3371 = load i32, ptr %2885, align 4, !tbaa !5
  %3372 = call ptr @strerror(i32 noundef %3371) #11
  %3373 = load i32, ptr %2885, align 4, !tbaa !5
  %3374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3365, ptr noundef nonnull %.str.5.sink2197, i32 noundef %3366, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %3368, ptr noundef %3370, ptr noundef %3372, i32 noundef %3373) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3375:                                             ; preds = %3348
  %3376 = add nsw i32 %3350, 2
  store i32 %3376, ptr @test_count, align 4, !tbaa !5
  %3377 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3349, ptr noundef nonnull @.str.16) #11
  %3378 = icmp eq i32 %3377, -1
  br i1 %3378, label %3379, label %3401

3379:                                             ; preds = %3375
  %3380 = load i32, ptr %2885, align 4, !tbaa !5
  %3381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3382 = call i32 @s2n_print_stacktrace(ptr noundef %3381) #11
  %3383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3384 = trunc nuw i8 %3383 to i1
  br i1 %3384, label %3385, label %3389

3385:                                             ; preds = %3379
  %3386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3387 = call i32 @fileno(ptr noundef %3386) #11
  %3388 = call i32 @isatty(i32 noundef %3387) #11
  %.not886 = icmp eq i32 %3388, 0
  br i1 %.not886, label %3389, label %3390

3389:                                             ; preds = %3385, %3379
  br label %3390

3390:                                             ; preds = %3385, %3389
  %.str.5.sink2206 = phi ptr [ @.str.5, %3389 ], [ @.str.2, %3385 ]
  store i32 %3380, ptr %2885, align 4, !tbaa !5
  %3391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3392 = load i32, ptr @test_count, align 4, !tbaa !5
  %3393 = load i32, ptr %2831, align 4, !tbaa !5
  %3394 = call ptr @s2n_strerror(i32 noundef %3393, ptr noundef nonnull @.str.4) #11
  %3395 = load i32, ptr %2831, align 4, !tbaa !5
  %3396 = call ptr @s2n_strerror_debug(i32 noundef %3395, ptr noundef nonnull @.str.4) #11
  %3397 = load i32, ptr %2885, align 4, !tbaa !5
  %3398 = call ptr @strerror(i32 noundef %3397) #11
  %3399 = load i32, ptr %2885, align 4, !tbaa !5
  %3400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3391, ptr noundef nonnull %.str.5.sink2206, i32 noundef %3392, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 322, ptr noundef %3394, ptr noundef %3396, ptr noundef %3398, i32 noundef %3399) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3401:                                             ; preds = %3375
  %3402 = load i32, ptr @test_count, align 4, !tbaa !5
  %3403 = add nsw i32 %3402, 1
  store i32 %3403, ptr @test_count, align 4, !tbaa !5
  %3404 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %3349, i32 noundef 1, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %3405 = call zeroext i1 @s2n_result_is_ok(i32 %3404)
  br i1 %3405, label %3428, label %3406

3406:                                             ; preds = %3401
  %3407 = load i32, ptr %2885, align 4, !tbaa !5
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = call i32 @s2n_print_stacktrace(ptr noundef %3408) #11
  %3410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3411 = trunc nuw i8 %3410 to i1
  br i1 %3411, label %3412, label %3416

3412:                                             ; preds = %3406
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = call i32 @fileno(ptr noundef %3413) #11
  %3415 = call i32 @isatty(i32 noundef %3414) #11
  %.not785 = icmp eq i32 %3415, 0
  br i1 %.not785, label %3416, label %3417

3416:                                             ; preds = %3412, %3406
  br label %3417

3417:                                             ; preds = %3412, %3416
  %.str.5.sink2215 = phi ptr [ @.str.5, %3416 ], [ @.str.2, %3412 ]
  store i32 %3407, ptr %2885, align 4, !tbaa !5
  %3418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3419 = load i32, ptr @test_count, align 4, !tbaa !5
  %3420 = load i32, ptr %2831, align 4, !tbaa !5
  %3421 = call ptr @s2n_strerror(i32 noundef %3420, ptr noundef nonnull @.str.4) #11
  %3422 = load i32, ptr %2831, align 4, !tbaa !5
  %3423 = call ptr @s2n_strerror_debug(i32 noundef %3422, ptr noundef nonnull @.str.4) #11
  %3424 = load i32, ptr %2885, align 4, !tbaa !5
  %3425 = call ptr @strerror(i32 noundef %3424) #11
  %3426 = load i32, ptr %2885, align 4, !tbaa !5
  %3427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3418, ptr noundef nonnull %.str.5.sink2215, i32 noundef %3419, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %3421, ptr noundef %3423, ptr noundef %3425, i32 noundef %3426) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3428:                                             ; preds = %3401
  %3429 = load i32, ptr @test_count, align 4, !tbaa !5
  %3430 = add nsw i32 %3429, 1
  store i32 %3430, ptr @test_count, align 4, !tbaa !5
  %3431 = getelementptr inbounds i8, ptr %3349, i64 4088
  %3432 = load i32, ptr %3431, align 8, !tbaa !48
  %3433 = icmp eq i32 %3432, 0
  br i1 %3433, label %3456, label %3434

3434:                                             ; preds = %3428
  %3435 = load i32, ptr %2885, align 4, !tbaa !5
  %3436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3437 = call i32 @s2n_print_stacktrace(ptr noundef %3436) #11
  %3438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3439 = trunc nuw i8 %3438 to i1
  br i1 %3439, label %3440, label %3444

3440:                                             ; preds = %3434
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = call i32 @fileno(ptr noundef %3441) #11
  %3443 = call i32 @isatty(i32 noundef %3442) #11
  %.not786 = icmp eq i32 %3443, 0
  br i1 %.not786, label %3444, label %3445

3444:                                             ; preds = %3440, %3434
  br label %3445

3445:                                             ; preds = %3440, %3444
  %.str.5.sink2224 = phi ptr [ @.str.5, %3444 ], [ @.str.2, %3440 ]
  store i32 %3435, ptr %2885, align 4, !tbaa !5
  %3446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3447 = load i32, ptr @test_count, align 4, !tbaa !5
  %3448 = load i32, ptr %2831, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror(i32 noundef %3448, ptr noundef nonnull @.str.4) #11
  %3450 = load i32, ptr %2831, align 4, !tbaa !5
  %3451 = call ptr @s2n_strerror_debug(i32 noundef %3450, ptr noundef nonnull @.str.4) #11
  %3452 = load i32, ptr %2885, align 4, !tbaa !5
  %3453 = call ptr @strerror(i32 noundef %3452) #11
  %3454 = load i32, ptr %2885, align 4, !tbaa !5
  %3455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3446, ptr noundef nonnull %.str.5.sink2224, i32 noundef %3447, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %3449, ptr noundef %3451, ptr noundef %3453, i32 noundef %3454) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3456:                                             ; preds = %3428
  %3457 = add nsw i32 %3429, 2
  store i32 %3457, ptr @test_count, align 4, !tbaa !5
  %3458 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %3349) #11
  %3459 = icmp eq i32 %3458, -1
  br i1 %3459, label %3460, label %3482

3460:                                             ; preds = %3456
  %3461 = load i32, ptr %2885, align 4, !tbaa !5
  %3462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3463 = call i32 @s2n_print_stacktrace(ptr noundef %3462) #11
  %3464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3465 = trunc nuw i8 %3464 to i1
  br i1 %3465, label %3466, label %3470

3466:                                             ; preds = %3460
  %3467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3468 = call i32 @fileno(ptr noundef %3467) #11
  %3469 = call i32 @isatty(i32 noundef %3468) #11
  %.not885 = icmp eq i32 %3469, 0
  br i1 %.not885, label %3470, label %3471

3470:                                             ; preds = %3466, %3460
  br label %3471

3471:                                             ; preds = %3466, %3470
  %.str.5.sink2233 = phi ptr [ @.str.5, %3470 ], [ @.str.2, %3466 ]
  store i32 %3461, ptr %2885, align 4, !tbaa !5
  %3472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3473 = load i32, ptr @test_count, align 4, !tbaa !5
  %3474 = load i32, ptr %2831, align 4, !tbaa !5
  %3475 = call ptr @s2n_strerror(i32 noundef %3474, ptr noundef nonnull @.str.4) #11
  %3476 = load i32, ptr %2831, align 4, !tbaa !5
  %3477 = call ptr @s2n_strerror_debug(i32 noundef %3476, ptr noundef nonnull @.str.4) #11
  %3478 = load i32, ptr %2885, align 4, !tbaa !5
  %3479 = call ptr @strerror(i32 noundef %3478) #11
  %3480 = load i32, ptr %2885, align 4, !tbaa !5
  %3481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3472, ptr noundef nonnull %.str.5.sink2233, i32 noundef %3473, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %3475, ptr noundef %3477, ptr noundef %3479, i32 noundef %3480) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3482:                                             ; preds = %3456
  %3483 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %3484 = load i32, ptr @test_count, align 4, !tbaa !5
  %3485 = add nsw i32 %3484, 1
  store i32 %3485, ptr @test_count, align 4, !tbaa !5
  %3486 = icmp eq ptr %3483, null
  br i1 %3486, label %3487, label %3509

3487:                                             ; preds = %3482
  %3488 = load i32, ptr %2885, align 4, !tbaa !5
  %3489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3490 = call i32 @s2n_print_stacktrace(ptr noundef %3489) #11
  %3491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3492 = trunc nuw i8 %3491 to i1
  br i1 %3492, label %3493, label %3497

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

3497:                                             ; preds = %3493, %3487
  br label %3498

3498:                                             ; preds = %3493, %3497
  %.str.5.sink2242 = phi ptr [ @.str.5, %3497 ], [ @.str.2, %3493 ]
  store i32 %3488, ptr %2885, align 4, !tbaa !5
  %3499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3500 = load i32, ptr @test_count, align 4, !tbaa !5
  %3501 = load i32, ptr %2831, align 4, !tbaa !5
  %3502 = call ptr @s2n_strerror(i32 noundef %3501, ptr noundef nonnull @.str.4) #11
  %3503 = load i32, ptr %2831, align 4, !tbaa !5
  %3504 = call ptr @s2n_strerror_debug(i32 noundef %3503, ptr noundef nonnull @.str.4) #11
  %3505 = load i32, ptr %2885, align 4, !tbaa !5
  %3506 = call ptr @strerror(i32 noundef %3505) #11
  %3507 = load i32, ptr %2885, align 4, !tbaa !5
  %3508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3499, ptr noundef nonnull %.str.5.sink2242, i32 noundef %3500, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %3502, ptr noundef %3504, ptr noundef %3506, i32 noundef %3507) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3509:                                             ; preds = %3482
  %3510 = add nsw i32 %3484, 2
  store i32 %3510, ptr @test_count, align 4, !tbaa !5
  %3511 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3483, ptr noundef nonnull @.str.16) #11
  %3512 = icmp eq i32 %3511, -1
  br i1 %3512, label %3513, label %3535

3513:                                             ; preds = %3509
  %3514 = load i32, ptr %2885, align 4, !tbaa !5
  %3515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3516 = call i32 @s2n_print_stacktrace(ptr noundef %3515) #11
  %3517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3518 = trunc nuw i8 %3517 to i1
  br i1 %3518, label %3519, label %3523

3519:                                             ; preds = %3513
  %3520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3521 = call i32 @fileno(ptr noundef %3520) #11
  %3522 = call i32 @isatty(i32 noundef %3521) #11
  %.not883 = icmp eq i32 %3522, 0
  br i1 %.not883, label %3523, label %3524

3523:                                             ; preds = %3519, %3513
  br label %3524

3524:                                             ; preds = %3519, %3523
  %.str.5.sink2251 = phi ptr [ @.str.5, %3523 ], [ @.str.2, %3519 ]
  store i32 %3514, ptr %2885, align 4, !tbaa !5
  %3525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3526 = load i32, ptr @test_count, align 4, !tbaa !5
  %3527 = load i32, ptr %2831, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror(i32 noundef %3527, ptr noundef nonnull @.str.4) #11
  %3529 = load i32, ptr %2831, align 4, !tbaa !5
  %3530 = call ptr @s2n_strerror_debug(i32 noundef %3529, ptr noundef nonnull @.str.4) #11
  %3531 = load i32, ptr %2885, align 4, !tbaa !5
  %3532 = call ptr @strerror(i32 noundef %3531) #11
  %3533 = load i32, ptr %2885, align 4, !tbaa !5
  %3534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3525, ptr noundef nonnull %.str.5.sink2251, i32 noundef %3526, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %3528, ptr noundef %3530, ptr noundef %3532, i32 noundef %3533) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3535:                                             ; preds = %3509
  %3536 = load i32, ptr @test_count, align 4, !tbaa !5
  %3537 = add nsw i32 %3536, 1
  store i32 %3537, ptr @test_count, align 4, !tbaa !5
  %3538 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %3483, i32 noundef 1, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %3539 = call zeroext i1 @s2n_result_is_ok(i32 %3538)
  br i1 %3539, label %3562, label %3540

3540:                                             ; preds = %3535
  %3541 = load i32, ptr %2885, align 4, !tbaa !5
  %3542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3543 = call i32 @s2n_print_stacktrace(ptr noundef %3542) #11
  %3544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3545 = trunc nuw i8 %3544 to i1
  br i1 %3545, label %3546, label %3550

3546:                                             ; preds = %3540
  %3547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3548 = call i32 @fileno(ptr noundef %3547) #11
  %3549 = call i32 @isatty(i32 noundef %3548) #11
  %.not787 = icmp eq i32 %3549, 0
  br i1 %.not787, label %3550, label %3551

3550:                                             ; preds = %3546, %3540
  br label %3551

3551:                                             ; preds = %3546, %3550
  %.str.5.sink2260 = phi ptr [ @.str.5, %3550 ], [ @.str.2, %3546 ]
  store i32 %3541, ptr %2885, align 4, !tbaa !5
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = load i32, ptr @test_count, align 4, !tbaa !5
  %3554 = load i32, ptr %2831, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror(i32 noundef %3554, ptr noundef nonnull @.str.4) #11
  %3556 = load i32, ptr %2831, align 4, !tbaa !5
  %3557 = call ptr @s2n_strerror_debug(i32 noundef %3556, ptr noundef nonnull @.str.4) #11
  %3558 = load i32, ptr %2885, align 4, !tbaa !5
  %3559 = call ptr @strerror(i32 noundef %3558) #11
  %3560 = load i32, ptr %2885, align 4, !tbaa !5
  %3561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3552, ptr noundef nonnull %.str.5.sink2260, i32 noundef %3553, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %3555, ptr noundef %3557, ptr noundef %3559, i32 noundef %3560) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3562:                                             ; preds = %3535
  %3563 = load i32, ptr @test_count, align 4, !tbaa !5
  %3564 = add nsw i32 %3563, 1
  store i32 %3564, ptr @test_count, align 4, !tbaa !5
  %3565 = getelementptr inbounds i8, ptr %3483, i64 4088
  %3566 = load i32, ptr %3565, align 8, !tbaa !48
  %3567 = icmp eq i32 %3566, 0
  br i1 %3567, label %3590, label %3568

3568:                                             ; preds = %3562
  %3569 = load i32, ptr %2885, align 4, !tbaa !5
  %3570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3571 = call i32 @s2n_print_stacktrace(ptr noundef %3570) #11
  %3572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3573 = trunc nuw i8 %3572 to i1
  br i1 %3573, label %3574, label %3578

3574:                                             ; preds = %3568
  %3575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3576 = call i32 @fileno(ptr noundef %3575) #11
  %3577 = call i32 @isatty(i32 noundef %3576) #11
  %.not788 = icmp eq i32 %3577, 0
  br i1 %.not788, label %3578, label %3579

3578:                                             ; preds = %3574, %3568
  br label %3579

3579:                                             ; preds = %3574, %3578
  %.str.5.sink2269 = phi ptr [ @.str.5, %3578 ], [ @.str.2, %3574 ]
  store i32 %3569, ptr %2885, align 4, !tbaa !5
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = load i32, ptr @test_count, align 4, !tbaa !5
  %3582 = load i32, ptr %2831, align 4, !tbaa !5
  %3583 = call ptr @s2n_strerror(i32 noundef %3582, ptr noundef nonnull @.str.4) #11
  %3584 = load i32, ptr %2831, align 4, !tbaa !5
  %3585 = call ptr @s2n_strerror_debug(i32 noundef %3584, ptr noundef nonnull @.str.4) #11
  %3586 = load i32, ptr %2885, align 4, !tbaa !5
  %3587 = call ptr @strerror(i32 noundef %3586) #11
  %3588 = load i32, ptr %2885, align 4, !tbaa !5
  %3589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3580, ptr noundef nonnull %.str.5.sink2269, i32 noundef %3581, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %3583, ptr noundef %3585, ptr noundef %3587, i32 noundef %3588) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3590:                                             ; preds = %3562
  %3591 = add nsw i32 %3563, 2
  store i32 %3591, ptr @test_count, align 4, !tbaa !5
  %3592 = call i32 @s2n_client_hello_send(ptr noundef nonnull %3349) #11
  %3593 = icmp eq i32 %3592, -1
  br i1 %3593, label %3594, label %3616

3594:                                             ; preds = %3590
  %3595 = load i32, ptr %2885, align 4, !tbaa !5
  %3596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3597 = call i32 @s2n_print_stacktrace(ptr noundef %3596) #11
  %3598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3599 = trunc nuw i8 %3598 to i1
  br i1 %3599, label %3600, label %3604

3600:                                             ; preds = %3594
  %3601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3602 = call i32 @fileno(ptr noundef %3601) #11
  %3603 = call i32 @isatty(i32 noundef %3602) #11
  %.not882 = icmp eq i32 %3603, 0
  br i1 %.not882, label %3604, label %3605

3604:                                             ; preds = %3600, %3594
  br label %3605

3605:                                             ; preds = %3600, %3604
  %.str.5.sink2278 = phi ptr [ @.str.5, %3604 ], [ @.str.2, %3600 ]
  store i32 %3595, ptr %2885, align 4, !tbaa !5
  %3606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3607 = load i32, ptr @test_count, align 4, !tbaa !5
  %3608 = load i32, ptr %2831, align 4, !tbaa !5
  %3609 = call ptr @s2n_strerror(i32 noundef %3608, ptr noundef nonnull @.str.4) #11
  %3610 = load i32, ptr %2831, align 4, !tbaa !5
  %3611 = call ptr @s2n_strerror_debug(i32 noundef %3610, ptr noundef nonnull @.str.4) #11
  %3612 = load i32, ptr %2885, align 4, !tbaa !5
  %3613 = call ptr @strerror(i32 noundef %3612) #11
  %3614 = load i32, ptr %2885, align 4, !tbaa !5
  %3615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3606, ptr noundef nonnull %.str.5.sink2278, i32 noundef %3607, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %3609, ptr noundef %3611, ptr noundef %3613, i32 noundef %3614) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3616:                                             ; preds = %3590
  %3617 = load i32, ptr @test_count, align 4, !tbaa !5
  %3618 = add nsw i32 %3617, 1
  store i32 %3618, ptr @test_count, align 4, !tbaa !5
  %3619 = getelementptr inbounds i8, ptr %3349, i64 2016
  %3620 = getelementptr inbounds i8, ptr %3483, i64 2016
  %3621 = getelementptr inbounds i8, ptr %3349, i64 2044
  %3622 = load i32, ptr %3621, align 4, !tbaa !51
  %3623 = getelementptr inbounds i8, ptr %3349, i64 2040
  %3624 = load i32, ptr %3623, align 8, !tbaa !52
  %3625 = sub i32 %3622, %3624
  %3626 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3619, ptr noundef nonnull %3620, i32 noundef %3625) #11
  %3627 = icmp eq i32 %3626, -1
  br i1 %3627, label %3628, label %3650

3628:                                             ; preds = %3616
  %3629 = load i32, ptr %2885, align 4, !tbaa !5
  %3630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3631 = call i32 @s2n_print_stacktrace(ptr noundef %3630) #11
  %3632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3633 = trunc nuw i8 %3632 to i1
  br i1 %3633, label %3634, label %3638

3634:                                             ; preds = %3628
  %3635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3636 = call i32 @fileno(ptr noundef %3635) #11
  %3637 = call i32 @isatty(i32 noundef %3636) #11
  %.not881 = icmp eq i32 %3637, 0
  br i1 %.not881, label %3638, label %3639

3638:                                             ; preds = %3634, %3628
  br label %3639

3639:                                             ; preds = %3634, %3638
  %.str.5.sink2287 = phi ptr [ @.str.5, %3638 ], [ @.str.2, %3634 ]
  store i32 %3629, ptr %2885, align 4, !tbaa !5
  %3640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3641 = load i32, ptr @test_count, align 4, !tbaa !5
  %3642 = load i32, ptr %2831, align 4, !tbaa !5
  %3643 = call ptr @s2n_strerror(i32 noundef %3642, ptr noundef nonnull @.str.4) #11
  %3644 = load i32, ptr %2831, align 4, !tbaa !5
  %3645 = call ptr @s2n_strerror_debug(i32 noundef %3644, ptr noundef nonnull @.str.4) #11
  %3646 = load i32, ptr %2885, align 4, !tbaa !5
  %3647 = call ptr @strerror(i32 noundef %3646) #11
  %3648 = load i32, ptr %2885, align 4, !tbaa !5
  %3649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3640, ptr noundef nonnull %.str.5.sink2287, i32 noundef %3641, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %3643, ptr noundef %3645, ptr noundef %3647, i32 noundef %3648) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3650:                                             ; preds = %3616
  %3651 = load i32, ptr @test_count, align 4, !tbaa !5
  %3652 = add nsw i32 %3651, 1
  store i32 %3652, ptr @test_count, align 4, !tbaa !5
  %3653 = call i32 @s2n_establish_session(ptr noundef nonnull %3483) #11
  %3654 = icmp eq i32 %3653, -1
  br i1 %3654, label %3655, label %3677

3655:                                             ; preds = %3650
  %3656 = load i32, ptr %2885, align 4, !tbaa !5
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = call i32 @s2n_print_stacktrace(ptr noundef %3657) #11
  %3659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3660 = trunc nuw i8 %3659 to i1
  br i1 %3660, label %3661, label %3665

3661:                                             ; preds = %3655
  %3662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3663 = call i32 @fileno(ptr noundef %3662) #11
  %3664 = call i32 @isatty(i32 noundef %3663) #11
  %.not880 = icmp eq i32 %3664, 0
  br i1 %.not880, label %3665, label %3666

3665:                                             ; preds = %3661, %3655
  br label %3666

3666:                                             ; preds = %3661, %3665
  %.str.5.sink2296 = phi ptr [ @.str.5, %3665 ], [ @.str.2, %3661 ]
  store i32 %3656, ptr %2885, align 4, !tbaa !5
  %3667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3668 = load i32, ptr @test_count, align 4, !tbaa !5
  %3669 = load i32, ptr %2831, align 4, !tbaa !5
  %3670 = call ptr @s2n_strerror(i32 noundef %3669, ptr noundef nonnull @.str.4) #11
  %3671 = load i32, ptr %2831, align 4, !tbaa !5
  %3672 = call ptr @s2n_strerror_debug(i32 noundef %3671, ptr noundef nonnull @.str.4) #11
  %3673 = load i32, ptr %2885, align 4, !tbaa !5
  %3674 = call ptr @strerror(i32 noundef %3673) #11
  %3675 = load i32, ptr %2885, align 4, !tbaa !5
  %3676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3667, ptr noundef nonnull %.str.5.sink2296, i32 noundef %3668, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %3670, ptr noundef %3672, ptr noundef %3674, i32 noundef %3675) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3677:                                             ; preds = %3650
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = add nsw i32 %3678, 1
  store i32 %3679, ptr @test_count, align 4, !tbaa !5
  %3680 = load i32, ptr %3431, align 8, !tbaa !48
  %3681 = icmp eq i32 %3680, 1
  br i1 %3681, label %3704, label %3682

3682:                                             ; preds = %3677
  %3683 = load i32, ptr %2885, align 4, !tbaa !5
  %3684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3685 = call i32 @s2n_print_stacktrace(ptr noundef %3684) #11
  %3686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3687 = trunc nuw i8 %3686 to i1
  br i1 %3687, label %3688, label %3692

3688:                                             ; preds = %3682
  %3689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3690 = call i32 @fileno(ptr noundef %3689) #11
  %3691 = call i32 @isatty(i32 noundef %3690) #11
  %.not789 = icmp eq i32 %3691, 0
  br i1 %.not789, label %3692, label %3693

3692:                                             ; preds = %3688, %3682
  br label %3693

3693:                                             ; preds = %3688, %3692
  %.str.5.sink2305 = phi ptr [ @.str.5, %3692 ], [ @.str.2, %3688 ]
  store i32 %3683, ptr %2885, align 4, !tbaa !5
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = load i32, ptr @test_count, align 4, !tbaa !5
  %3696 = load i32, ptr %2831, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror(i32 noundef %3696, ptr noundef nonnull @.str.4) #11
  %3698 = load i32, ptr %2831, align 4, !tbaa !5
  %3699 = call ptr @s2n_strerror_debug(i32 noundef %3698, ptr noundef nonnull @.str.4) #11
  %3700 = load i32, ptr %2885, align 4, !tbaa !5
  %3701 = call ptr @strerror(i32 noundef %3700) #11
  %3702 = load i32, ptr %2885, align 4, !tbaa !5
  %3703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3694, ptr noundef nonnull %.str.5.sink2305, i32 noundef %3695, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %3697, ptr noundef %3699, ptr noundef %3701, i32 noundef %3702) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3704:                                             ; preds = %3677
  %3705 = add nsw i32 %3678, 2
  store i32 %3705, ptr @test_count, align 4, !tbaa !5
  %3706 = load i32, ptr %3565, align 8, !tbaa !48
  %3707 = icmp eq i32 %3706, 4
  br i1 %3707, label %3730, label %3708

3708:                                             ; preds = %3704
  %3709 = load i32, ptr %2885, align 4, !tbaa !5
  %3710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3711 = call i32 @s2n_print_stacktrace(ptr noundef %3710) #11
  %3712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3713 = trunc nuw i8 %3712 to i1
  br i1 %3713, label %3714, label %3718

3714:                                             ; preds = %3708
  %3715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3716 = call i32 @fileno(ptr noundef %3715) #11
  %3717 = call i32 @isatty(i32 noundef %3716) #11
  %.not790 = icmp eq i32 %3717, 0
  br i1 %.not790, label %3718, label %3719

3718:                                             ; preds = %3714, %3708
  br label %3719

3719:                                             ; preds = %3714, %3718
  %.str.5.sink2314 = phi ptr [ @.str.5, %3718 ], [ @.str.2, %3714 ]
  store i32 %3709, ptr %2885, align 4, !tbaa !5
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = load i32, ptr @test_count, align 4, !tbaa !5
  %3722 = load i32, ptr %2831, align 4, !tbaa !5
  %3723 = call ptr @s2n_strerror(i32 noundef %3722, ptr noundef nonnull @.str.4) #11
  %3724 = load i32, ptr %2831, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef nonnull @.str.4) #11
  %3726 = load i32, ptr %2885, align 4, !tbaa !5
  %3727 = call ptr @strerror(i32 noundef %3726) #11
  %3728 = load i32, ptr %2885, align 4, !tbaa !5
  %3729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3720, ptr noundef nonnull %.str.5.sink2314, i32 noundef %3721, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %3723, ptr noundef %3725, ptr noundef %3727, i32 noundef %3728) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3730:                                             ; preds = %3704
  %3731 = add nsw i32 %3678, 3
  store i32 %3731, ptr @test_count, align 4, !tbaa !5
  %3732 = call i32 @s2n_connection_free(ptr noundef nonnull %3349) #11
  %3733 = icmp eq i32 %3732, -1
  br i1 %3733, label %3734, label %3756

3734:                                             ; preds = %3730
  %3735 = load i32, ptr %2885, align 4, !tbaa !5
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = call i32 @s2n_print_stacktrace(ptr noundef %3736) #11
  %3738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3739 = trunc nuw i8 %3738 to i1
  br i1 %3739, label %3740, label %3744

3740:                                             ; preds = %3734
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = call i32 @fileno(ptr noundef %3741) #11
  %3743 = call i32 @isatty(i32 noundef %3742) #11
  %.not879 = icmp eq i32 %3743, 0
  br i1 %.not879, label %3744, label %3745

3744:                                             ; preds = %3740, %3734
  br label %3745

3745:                                             ; preds = %3740, %3744
  %.str.5.sink2323 = phi ptr [ @.str.5, %3744 ], [ @.str.2, %3740 ]
  store i32 %3735, ptr %2885, align 4, !tbaa !5
  %3746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3747 = load i32, ptr @test_count, align 4, !tbaa !5
  %3748 = load i32, ptr %2831, align 4, !tbaa !5
  %3749 = call ptr @s2n_strerror(i32 noundef %3748, ptr noundef nonnull @.str.4) #11
  %3750 = load i32, ptr %2831, align 4, !tbaa !5
  %3751 = call ptr @s2n_strerror_debug(i32 noundef %3750, ptr noundef nonnull @.str.4) #11
  %3752 = load i32, ptr %2885, align 4, !tbaa !5
  %3753 = call ptr @strerror(i32 noundef %3752) #11
  %3754 = load i32, ptr %2885, align 4, !tbaa !5
  %3755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3746, ptr noundef nonnull %.str.5.sink2323, i32 noundef %3747, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %3749, ptr noundef %3751, ptr noundef %3753, i32 noundef %3754) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3756:                                             ; preds = %3730
  %3757 = load i32, ptr @test_count, align 4, !tbaa !5
  %3758 = add nsw i32 %3757, 1
  store i32 %3758, ptr @test_count, align 4, !tbaa !5
  %3759 = call i32 @s2n_connection_free(ptr noundef nonnull %3483) #11
  %3760 = icmp eq i32 %3759, -1
  br i1 %3760, label %3761, label %3783

3761:                                             ; preds = %3756
  %3762 = load i32, ptr %2885, align 4, !tbaa !5
  %3763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3764 = call i32 @s2n_print_stacktrace(ptr noundef %3763) #11
  %3765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3766 = trunc nuw i8 %3765 to i1
  br i1 %3766, label %3767, label %3771

3767:                                             ; preds = %3761
  %3768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3769 = call i32 @fileno(ptr noundef %3768) #11
  %3770 = call i32 @isatty(i32 noundef %3769) #11
  %.not878 = icmp eq i32 %3770, 0
  br i1 %.not878, label %3771, label %3772

3771:                                             ; preds = %3767, %3761
  br label %3772

3772:                                             ; preds = %3767, %3771
  %.str.5.sink2332 = phi ptr [ @.str.5, %3771 ], [ @.str.2, %3767 ]
  store i32 %3762, ptr %2885, align 4, !tbaa !5
  %3773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3774 = load i32, ptr @test_count, align 4, !tbaa !5
  %3775 = load i32, ptr %2831, align 4, !tbaa !5
  %3776 = call ptr @s2n_strerror(i32 noundef %3775, ptr noundef nonnull @.str.4) #11
  %3777 = load i32, ptr %2831, align 4, !tbaa !5
  %3778 = call ptr @s2n_strerror_debug(i32 noundef %3777, ptr noundef nonnull @.str.4) #11
  %3779 = load i32, ptr %2885, align 4, !tbaa !5
  %3780 = call ptr @strerror(i32 noundef %3779) #11
  %3781 = load i32, ptr %2885, align 4, !tbaa !5
  %3782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3773, ptr noundef nonnull %.str.5.sink2332, i32 noundef %3774, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3776, ptr noundef %3778, ptr noundef %3780, i32 noundef %3781) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3783:                                             ; preds = %3756
  %3784 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %3785 = load i32, ptr @test_count, align 4, !tbaa !5
  %3786 = add nsw i32 %3785, 1
  store i32 %3786, ptr @test_count, align 4, !tbaa !5
  %3787 = icmp eq ptr %3784, null
  br i1 %3787, label %3788, label %3810

3788:                                             ; preds = %3783
  %3789 = load i32, ptr %2885, align 4, !tbaa !5
  %3790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3791 = call i32 @s2n_print_stacktrace(ptr noundef %3790) #11
  %3792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3793 = trunc nuw i8 %3792 to i1
  br i1 %3793, label %3794, label %3798

3794:                                             ; preds = %3788
  %3795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3796 = call i32 @fileno(ptr noundef %3795) #11
  %3797 = call i32 @isatty(i32 noundef %3796) #11
  %.not877 = icmp eq i32 %3797, 0
  br i1 %.not877, label %3798, label %3799

3798:                                             ; preds = %3794, %3788
  br label %3799

3799:                                             ; preds = %3794, %3798
  %.str.5.sink2341 = phi ptr [ @.str.5, %3798 ], [ @.str.2, %3794 ]
  store i32 %3789, ptr %2885, align 4, !tbaa !5
  %3800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3801 = load i32, ptr @test_count, align 4, !tbaa !5
  %3802 = load i32, ptr %2831, align 4, !tbaa !5
  %3803 = call ptr @s2n_strerror(i32 noundef %3802, ptr noundef nonnull @.str.4) #11
  %3804 = load i32, ptr %2831, align 4, !tbaa !5
  %3805 = call ptr @s2n_strerror_debug(i32 noundef %3804, ptr noundef nonnull @.str.4) #11
  %3806 = load i32, ptr %2885, align 4, !tbaa !5
  %3807 = call ptr @strerror(i32 noundef %3806) #11
  %3808 = load i32, ptr %2885, align 4, !tbaa !5
  %3809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3800, ptr noundef nonnull %.str.5.sink2341, i32 noundef %3801, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 348, ptr noundef %3803, ptr noundef %3805, ptr noundef %3807, i32 noundef %3808) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3810:                                             ; preds = %3783
  %3811 = add nsw i32 %3785, 2
  store i32 %3811, ptr @test_count, align 4, !tbaa !5
  %3812 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3784, ptr noundef nonnull @.str.16) #11
  %3813 = icmp eq i32 %3812, -1
  br i1 %3813, label %3814, label %3836

3814:                                             ; preds = %3810
  %3815 = load i32, ptr %2885, align 4, !tbaa !5
  %3816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3817 = call i32 @s2n_print_stacktrace(ptr noundef %3816) #11
  %3818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3819 = trunc nuw i8 %3818 to i1
  br i1 %3819, label %3820, label %3824

3820:                                             ; preds = %3814
  %3821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3822 = call i32 @fileno(ptr noundef %3821) #11
  %3823 = call i32 @isatty(i32 noundef %3822) #11
  %.not876 = icmp eq i32 %3823, 0
  br i1 %.not876, label %3824, label %3825

3824:                                             ; preds = %3820, %3814
  br label %3825

3825:                                             ; preds = %3820, %3824
  %.str.5.sink2350 = phi ptr [ @.str.5, %3824 ], [ @.str.2, %3820 ]
  store i32 %3815, ptr %2885, align 4, !tbaa !5
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = load i32, ptr @test_count, align 4, !tbaa !5
  %3828 = load i32, ptr %2831, align 4, !tbaa !5
  %3829 = call ptr @s2n_strerror(i32 noundef %3828, ptr noundef nonnull @.str.4) #11
  %3830 = load i32, ptr %2831, align 4, !tbaa !5
  %3831 = call ptr @s2n_strerror_debug(i32 noundef %3830, ptr noundef nonnull @.str.4) #11
  %3832 = load i32, ptr %2885, align 4, !tbaa !5
  %3833 = call ptr @strerror(i32 noundef %3832) #11
  %3834 = load i32, ptr %2885, align 4, !tbaa !5
  %3835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3826, ptr noundef nonnull %.str.5.sink2350, i32 noundef %3827, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %3829, ptr noundef %3831, ptr noundef %3833, i32 noundef %3834) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3836:                                             ; preds = %3810
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = add nsw i32 %3837, 1
  store i32 %3838, ptr @test_count, align 4, !tbaa !5
  %3839 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %3784, i32 noundef 1, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %3840 = call zeroext i1 @s2n_result_is_ok(i32 %3839)
  br i1 %3840, label %3863, label %3841

3841:                                             ; preds = %3836
  %3842 = load i32, ptr %2885, align 4, !tbaa !5
  %3843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3844 = call i32 @s2n_print_stacktrace(ptr noundef %3843) #11
  %3845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3846 = trunc nuw i8 %3845 to i1
  br i1 %3846, label %3847, label %3851

3847:                                             ; preds = %3841
  %3848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3849 = call i32 @fileno(ptr noundef %3848) #11
  %3850 = call i32 @isatty(i32 noundef %3849) #11
  %.not791 = icmp eq i32 %3850, 0
  br i1 %.not791, label %3851, label %3852

3851:                                             ; preds = %3847, %3841
  br label %3852

3852:                                             ; preds = %3847, %3851
  %.str.5.sink2359 = phi ptr [ @.str.5, %3851 ], [ @.str.2, %3847 ]
  store i32 %3842, ptr %2885, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = load i32, ptr @test_count, align 4, !tbaa !5
  %3855 = load i32, ptr %2831, align 4, !tbaa !5
  %3856 = call ptr @s2n_strerror(i32 noundef %3855, ptr noundef nonnull @.str.4) #11
  %3857 = load i32, ptr %2831, align 4, !tbaa !5
  %3858 = call ptr @s2n_strerror_debug(i32 noundef %3857, ptr noundef nonnull @.str.4) #11
  %3859 = load i32, ptr %2885, align 4, !tbaa !5
  %3860 = call ptr @strerror(i32 noundef %3859) #11
  %3861 = load i32, ptr %2885, align 4, !tbaa !5
  %3862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3853, ptr noundef nonnull %.str.5.sink2359, i32 noundef %3854, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 350, ptr noundef %3856, ptr noundef %3858, ptr noundef %3860, i32 noundef %3861) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3863:                                             ; preds = %3836
  %3864 = load i32, ptr @test_count, align 4, !tbaa !5
  %3865 = add nsw i32 %3864, 1
  store i32 %3865, ptr @test_count, align 4, !tbaa !5
  %3866 = getelementptr inbounds i8, ptr %3784, i64 4088
  %3867 = load i32, ptr %3866, align 8, !tbaa !48
  %3868 = icmp eq i32 %3867, 0
  br i1 %3868, label %3891, label %3869

3869:                                             ; preds = %3863
  %3870 = load i32, ptr %2885, align 4, !tbaa !5
  %3871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3872 = call i32 @s2n_print_stacktrace(ptr noundef %3871) #11
  %3873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3874 = trunc nuw i8 %3873 to i1
  br i1 %3874, label %3875, label %3879

3875:                                             ; preds = %3869
  %3876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3877 = call i32 @fileno(ptr noundef %3876) #11
  %3878 = call i32 @isatty(i32 noundef %3877) #11
  %.not792 = icmp eq i32 %3878, 0
  br i1 %.not792, label %3879, label %3880

3879:                                             ; preds = %3875, %3869
  br label %3880

3880:                                             ; preds = %3875, %3879
  %.str.5.sink2368 = phi ptr [ @.str.5, %3879 ], [ @.str.2, %3875 ]
  store i32 %3870, ptr %2885, align 4, !tbaa !5
  %3881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3882 = load i32, ptr @test_count, align 4, !tbaa !5
  %3883 = load i32, ptr %2831, align 4, !tbaa !5
  %3884 = call ptr @s2n_strerror(i32 noundef %3883, ptr noundef nonnull @.str.4) #11
  %3885 = load i32, ptr %2831, align 4, !tbaa !5
  %3886 = call ptr @s2n_strerror_debug(i32 noundef %3885, ptr noundef nonnull @.str.4) #11
  %3887 = load i32, ptr %2885, align 4, !tbaa !5
  %3888 = call ptr @strerror(i32 noundef %3887) #11
  %3889 = load i32, ptr %2885, align 4, !tbaa !5
  %3890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3881, ptr noundef nonnull %.str.5.sink2368, i32 noundef %3882, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %3884, ptr noundef %3886, ptr noundef %3888, i32 noundef %3889) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3891:                                             ; preds = %3863
  %3892 = add nsw i32 %3864, 2
  store i32 %3892, ptr @test_count, align 4, !tbaa !5
  %3893 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %3784) #11
  %3894 = icmp eq i32 %3893, -1
  br i1 %3894, label %3895, label %3917

3895:                                             ; preds = %3891
  %3896 = load i32, ptr %2885, align 4, !tbaa !5
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = call i32 @s2n_print_stacktrace(ptr noundef %3897) #11
  %3899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3900 = trunc nuw i8 %3899 to i1
  br i1 %3900, label %3901, label %3905

3901:                                             ; preds = %3895
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = call i32 @fileno(ptr noundef %3902) #11
  %3904 = call i32 @isatty(i32 noundef %3903) #11
  %.not875 = icmp eq i32 %3904, 0
  br i1 %.not875, label %3905, label %3906

3905:                                             ; preds = %3901, %3895
  br label %3906

3906:                                             ; preds = %3901, %3905
  %.str.5.sink2377 = phi ptr [ @.str.5, %3905 ], [ @.str.2, %3901 ]
  store i32 %3896, ptr %2885, align 4, !tbaa !5
  %3907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3908 = load i32, ptr @test_count, align 4, !tbaa !5
  %3909 = load i32, ptr %2831, align 4, !tbaa !5
  %3910 = call ptr @s2n_strerror(i32 noundef %3909, ptr noundef nonnull @.str.4) #11
  %3911 = load i32, ptr %2831, align 4, !tbaa !5
  %3912 = call ptr @s2n_strerror_debug(i32 noundef %3911, ptr noundef nonnull @.str.4) #11
  %3913 = load i32, ptr %2885, align 4, !tbaa !5
  %3914 = call ptr @strerror(i32 noundef %3913) #11
  %3915 = load i32, ptr %2885, align 4, !tbaa !5
  %3916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3907, ptr noundef nonnull %.str.5.sink2377, i32 noundef %3908, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 352, ptr noundef %3910, ptr noundef %3912, ptr noundef %3914, i32 noundef %3915) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3917:                                             ; preds = %3891
  %3918 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %3919 = load i32, ptr @test_count, align 4, !tbaa !5
  %3920 = add nsw i32 %3919, 1
  store i32 %3920, ptr @test_count, align 4, !tbaa !5
  %3921 = icmp eq ptr %3918, null
  br i1 %3921, label %3922, label %3944

3922:                                             ; preds = %3917
  %3923 = load i32, ptr %2885, align 4, !tbaa !5
  %3924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3925 = call i32 @s2n_print_stacktrace(ptr noundef %3924) #11
  %3926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3927 = trunc nuw i8 %3926 to i1
  br i1 %3927, label %3928, label %3932

3928:                                             ; preds = %3922
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = call i32 @fileno(ptr noundef %3929) #11
  %3931 = call i32 @isatty(i32 noundef %3930) #11
  %.not874 = icmp eq i32 %3931, 0
  br i1 %.not874, label %3932, label %3933

3932:                                             ; preds = %3928, %3922
  br label %3933

3933:                                             ; preds = %3928, %3932
  %.str.5.sink2386 = phi ptr [ @.str.5, %3932 ], [ @.str.2, %3928 ]
  store i32 %3923, ptr %2885, align 4, !tbaa !5
  %3934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3935 = load i32, ptr @test_count, align 4, !tbaa !5
  %3936 = load i32, ptr %2831, align 4, !tbaa !5
  %3937 = call ptr @s2n_strerror(i32 noundef %3936, ptr noundef nonnull @.str.4) #11
  %3938 = load i32, ptr %2831, align 4, !tbaa !5
  %3939 = call ptr @s2n_strerror_debug(i32 noundef %3938, ptr noundef nonnull @.str.4) #11
  %3940 = load i32, ptr %2885, align 4, !tbaa !5
  %3941 = call ptr @strerror(i32 noundef %3940) #11
  %3942 = load i32, ptr %2885, align 4, !tbaa !5
  %3943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3934, ptr noundef nonnull %.str.5.sink2386, i32 noundef %3935, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 355, ptr noundef %3937, ptr noundef %3939, ptr noundef %3941, i32 noundef %3942) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3944:                                             ; preds = %3917
  %3945 = add nsw i32 %3919, 2
  store i32 %3945, ptr @test_count, align 4, !tbaa !5
  %3946 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3918, ptr noundef nonnull @.str.16) #11
  %3947 = icmp eq i32 %3946, -1
  br i1 %3947, label %3948, label %3970

3948:                                             ; preds = %3944
  %3949 = load i32, ptr %2885, align 4, !tbaa !5
  %3950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3951 = call i32 @s2n_print_stacktrace(ptr noundef %3950) #11
  %3952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3953 = trunc nuw i8 %3952 to i1
  br i1 %3953, label %3954, label %3958

3954:                                             ; preds = %3948
  %3955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3956 = call i32 @fileno(ptr noundef %3955) #11
  %3957 = call i32 @isatty(i32 noundef %3956) #11
  %.not873 = icmp eq i32 %3957, 0
  br i1 %.not873, label %3958, label %3959

3958:                                             ; preds = %3954, %3948
  br label %3959

3959:                                             ; preds = %3954, %3958
  %.str.5.sink2395 = phi ptr [ @.str.5, %3958 ], [ @.str.2, %3954 ]
  store i32 %3949, ptr %2885, align 4, !tbaa !5
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = load i32, ptr @test_count, align 4, !tbaa !5
  %3962 = load i32, ptr %2831, align 4, !tbaa !5
  %3963 = call ptr @s2n_strerror(i32 noundef %3962, ptr noundef nonnull @.str.4) #11
  %3964 = load i32, ptr %2831, align 4, !tbaa !5
  %3965 = call ptr @s2n_strerror_debug(i32 noundef %3964, ptr noundef nonnull @.str.4) #11
  %3966 = load i32, ptr %2885, align 4, !tbaa !5
  %3967 = call ptr @strerror(i32 noundef %3966) #11
  %3968 = load i32, ptr %2885, align 4, !tbaa !5
  %3969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3960, ptr noundef nonnull %.str.5.sink2395, i32 noundef %3961, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 356, ptr noundef %3963, ptr noundef %3965, ptr noundef %3967, i32 noundef %3968) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3970:                                             ; preds = %3944
  %3971 = load i32, ptr @test_count, align 4, !tbaa !5
  %3972 = add nsw i32 %3971, 1
  store i32 %3972, ptr @test_count, align 4, !tbaa !5
  %3973 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %3918, i32 noundef 1, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %3974 = call zeroext i1 @s2n_result_is_ok(i32 %3973)
  br i1 %3974, label %3997, label %3975

3975:                                             ; preds = %3970
  %3976 = load i32, ptr %2885, align 4, !tbaa !5
  %3977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3978 = call i32 @s2n_print_stacktrace(ptr noundef %3977) #11
  %3979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3980 = trunc nuw i8 %3979 to i1
  br i1 %3980, label %3981, label %3985

3981:                                             ; preds = %3975
  %3982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3983 = call i32 @fileno(ptr noundef %3982) #11
  %3984 = call i32 @isatty(i32 noundef %3983) #11
  %.not793 = icmp eq i32 %3984, 0
  br i1 %.not793, label %3985, label %3986

3985:                                             ; preds = %3981, %3975
  br label %3986

3986:                                             ; preds = %3981, %3985
  %.str.5.sink2404 = phi ptr [ @.str.5, %3985 ], [ @.str.2, %3981 ]
  store i32 %3976, ptr %2885, align 4, !tbaa !5
  %3987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3988 = load i32, ptr @test_count, align 4, !tbaa !5
  %3989 = load i32, ptr %2831, align 4, !tbaa !5
  %3990 = call ptr @s2n_strerror(i32 noundef %3989, ptr noundef nonnull @.str.4) #11
  %3991 = load i32, ptr %2831, align 4, !tbaa !5
  %3992 = call ptr @s2n_strerror_debug(i32 noundef %3991, ptr noundef nonnull @.str.4) #11
  %3993 = load i32, ptr %2885, align 4, !tbaa !5
  %3994 = call ptr @strerror(i32 noundef %3993) #11
  %3995 = load i32, ptr %2885, align 4, !tbaa !5
  %3996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3987, ptr noundef nonnull %.str.5.sink2404, i32 noundef %3988, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %3990, ptr noundef %3992, ptr noundef %3994, i32 noundef %3995) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3997:                                             ; preds = %3970
  %3998 = load i32, ptr @test_count, align 4, !tbaa !5
  %3999 = add nsw i32 %3998, 1
  store i32 %3999, ptr @test_count, align 4, !tbaa !5
  %4000 = getelementptr inbounds i8, ptr %3918, i64 4088
  %4001 = load i32, ptr %4000, align 8, !tbaa !48
  %4002 = icmp eq i32 %4001, 0
  br i1 %4002, label %4025, label %4003

4003:                                             ; preds = %3997
  %4004 = load i32, ptr %2885, align 4, !tbaa !5
  %4005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4006 = call i32 @s2n_print_stacktrace(ptr noundef %4005) #11
  %4007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4008 = trunc nuw i8 %4007 to i1
  br i1 %4008, label %4009, label %4013

4009:                                             ; preds = %4003
  %4010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4011 = call i32 @fileno(ptr noundef %4010) #11
  %4012 = call i32 @isatty(i32 noundef %4011) #11
  %.not794 = icmp eq i32 %4012, 0
  br i1 %.not794, label %4013, label %4014

4013:                                             ; preds = %4009, %4003
  br label %4014

4014:                                             ; preds = %4009, %4013
  %.str.5.sink2413 = phi ptr [ @.str.5, %4013 ], [ @.str.2, %4009 ]
  store i32 %4004, ptr %2885, align 4, !tbaa !5
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = load i32, ptr @test_count, align 4, !tbaa !5
  %4017 = load i32, ptr %2831, align 4, !tbaa !5
  %4018 = call ptr @s2n_strerror(i32 noundef %4017, ptr noundef nonnull @.str.4) #11
  %4019 = load i32, ptr %2831, align 4, !tbaa !5
  %4020 = call ptr @s2n_strerror_debug(i32 noundef %4019, ptr noundef nonnull @.str.4) #11
  %4021 = load i32, ptr %2885, align 4, !tbaa !5
  %4022 = call ptr @strerror(i32 noundef %4021) #11
  %4023 = load i32, ptr %2885, align 4, !tbaa !5
  %4024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4015, ptr noundef nonnull %.str.5.sink2413, i32 noundef %4016, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %4018, ptr noundef %4020, ptr noundef %4022, i32 noundef %4023) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4025:                                             ; preds = %3997
  %4026 = add nsw i32 %3998, 2
  store i32 %4026, ptr @test_count, align 4, !tbaa !5
  %4027 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %3918) #11
  %4028 = icmp eq i32 %4027, -1
  br i1 %4028, label %4029, label %4051

4029:                                             ; preds = %4025
  %4030 = load i32, ptr %2885, align 4, !tbaa !5
  %4031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4032 = call i32 @s2n_print_stacktrace(ptr noundef %4031) #11
  %4033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4034 = trunc nuw i8 %4033 to i1
  br i1 %4034, label %4035, label %4039

4035:                                             ; preds = %4029
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = call i32 @fileno(ptr noundef %4036) #11
  %4038 = call i32 @isatty(i32 noundef %4037) #11
  %.not872 = icmp eq i32 %4038, 0
  br i1 %.not872, label %4039, label %4040

4039:                                             ; preds = %4035, %4029
  br label %4040

4040:                                             ; preds = %4035, %4039
  %.str.5.sink2422 = phi ptr [ @.str.5, %4039 ], [ @.str.2, %4035 ]
  store i32 %4030, ptr %2885, align 4, !tbaa !5
  %4041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4042 = load i32, ptr @test_count, align 4, !tbaa !5
  %4043 = load i32, ptr %2831, align 4, !tbaa !5
  %4044 = call ptr @s2n_strerror(i32 noundef %4043, ptr noundef nonnull @.str.4) #11
  %4045 = load i32, ptr %2831, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror_debug(i32 noundef %4045, ptr noundef nonnull @.str.4) #11
  %4047 = load i32, ptr %2885, align 4, !tbaa !5
  %4048 = call ptr @strerror(i32 noundef %4047) #11
  %4049 = load i32, ptr %2885, align 4, !tbaa !5
  %4050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4041, ptr noundef nonnull %.str.5.sink2422, i32 noundef %4042, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 359, ptr noundef %4044, ptr noundef %4046, ptr noundef %4048, i32 noundef %4049) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4051:                                             ; preds = %4025
  %4052 = load i32, ptr @test_count, align 4, !tbaa !5
  %4053 = add nsw i32 %4052, 1
  store i32 %4053, ptr @test_count, align 4, !tbaa !5
  %4054 = call i32 @s2n_client_hello_send(ptr noundef nonnull %3784) #11
  %4055 = icmp eq i32 %4054, -1
  br i1 %4055, label %4056, label %4078

4056:                                             ; preds = %4051
  %4057 = load i32, ptr %2885, align 4, !tbaa !5
  %4058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4059 = call i32 @s2n_print_stacktrace(ptr noundef %4058) #11
  %4060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4061 = trunc nuw i8 %4060 to i1
  br i1 %4061, label %4062, label %4066

4062:                                             ; preds = %4056
  %4063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4064 = call i32 @fileno(ptr noundef %4063) #11
  %4065 = call i32 @isatty(i32 noundef %4064) #11
  %.not871 = icmp eq i32 %4065, 0
  br i1 %.not871, label %4066, label %4067

4066:                                             ; preds = %4062, %4056
  br label %4067

4067:                                             ; preds = %4062, %4066
  %.str.5.sink2431 = phi ptr [ @.str.5, %4066 ], [ @.str.2, %4062 ]
  store i32 %4057, ptr %2885, align 4, !tbaa !5
  %4068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4069 = load i32, ptr @test_count, align 4, !tbaa !5
  %4070 = load i32, ptr %2831, align 4, !tbaa !5
  %4071 = call ptr @s2n_strerror(i32 noundef %4070, ptr noundef nonnull @.str.4) #11
  %4072 = load i32, ptr %2831, align 4, !tbaa !5
  %4073 = call ptr @s2n_strerror_debug(i32 noundef %4072, ptr noundef nonnull @.str.4) #11
  %4074 = load i32, ptr %2885, align 4, !tbaa !5
  %4075 = call ptr @strerror(i32 noundef %4074) #11
  %4076 = load i32, ptr %2885, align 4, !tbaa !5
  %4077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4068, ptr noundef nonnull %.str.5.sink2431, i32 noundef %4069, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %4071, ptr noundef %4073, ptr noundef %4075, i32 noundef %4076) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4078:                                             ; preds = %4051
  %4079 = load i32, ptr @test_count, align 4, !tbaa !5
  %4080 = add nsw i32 %4079, 1
  store i32 %4080, ptr @test_count, align 4, !tbaa !5
  %4081 = getelementptr inbounds i8, ptr %3784, i64 2016
  %4082 = getelementptr inbounds i8, ptr %3918, i64 2016
  %4083 = getelementptr inbounds i8, ptr %3784, i64 2044
  %4084 = load i32, ptr %4083, align 4, !tbaa !51
  %4085 = getelementptr inbounds i8, ptr %3784, i64 2040
  %4086 = load i32, ptr %4085, align 8, !tbaa !52
  %4087 = sub i32 %4084, %4086
  %4088 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %4081, ptr noundef nonnull %4082, i32 noundef %4087) #11
  %4089 = icmp eq i32 %4088, -1
  br i1 %4089, label %4090, label %4112

4090:                                             ; preds = %4078
  %4091 = load i32, ptr %2885, align 4, !tbaa !5
  %4092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4093 = call i32 @s2n_print_stacktrace(ptr noundef %4092) #11
  %4094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4095 = trunc nuw i8 %4094 to i1
  br i1 %4095, label %4096, label %4100

4096:                                             ; preds = %4090
  %4097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4098 = call i32 @fileno(ptr noundef %4097) #11
  %4099 = call i32 @isatty(i32 noundef %4098) #11
  %.not870 = icmp eq i32 %4099, 0
  br i1 %.not870, label %4100, label %4101

4100:                                             ; preds = %4096, %4090
  br label %4101

4101:                                             ; preds = %4096, %4100
  %.str.5.sink2440 = phi ptr [ @.str.5, %4100 ], [ @.str.2, %4096 ]
  store i32 %4091, ptr %2885, align 4, !tbaa !5
  %4102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4103 = load i32, ptr @test_count, align 4, !tbaa !5
  %4104 = load i32, ptr %2831, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror(i32 noundef %4104, ptr noundef nonnull @.str.4) #11
  %4106 = load i32, ptr %2831, align 4, !tbaa !5
  %4107 = call ptr @s2n_strerror_debug(i32 noundef %4106, ptr noundef nonnull @.str.4) #11
  %4108 = load i32, ptr %2885, align 4, !tbaa !5
  %4109 = call ptr @strerror(i32 noundef %4108) #11
  %4110 = load i32, ptr %2885, align 4, !tbaa !5
  %4111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4102, ptr noundef nonnull %.str.5.sink2440, i32 noundef %4103, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 363, ptr noundef %4105, ptr noundef %4107, ptr noundef %4109, i32 noundef %4110) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4112:                                             ; preds = %4078
  %4113 = load i32, ptr @test_count, align 4, !tbaa !5
  %4114 = add nsw i32 %4113, 1
  store i32 %4114, ptr @test_count, align 4, !tbaa !5
  %4115 = call i32 @s2n_establish_session(ptr noundef nonnull %3918) #11
  %4116 = icmp eq i32 %4115, -1
  br i1 %4116, label %4117, label %4139

4117:                                             ; preds = %4112
  %4118 = load i32, ptr %2885, align 4, !tbaa !5
  %4119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4120 = call i32 @s2n_print_stacktrace(ptr noundef %4119) #11
  %4121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4122 = trunc nuw i8 %4121 to i1
  br i1 %4122, label %4123, label %4127

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

4127:                                             ; preds = %4123, %4117
  br label %4128

4128:                                             ; preds = %4123, %4127
  %.str.5.sink2449 = phi ptr [ @.str.5, %4127 ], [ @.str.2, %4123 ]
  store i32 %4118, ptr %2885, align 4, !tbaa !5
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = load i32, ptr @test_count, align 4, !tbaa !5
  %4131 = load i32, ptr %2831, align 4, !tbaa !5
  %4132 = call ptr @s2n_strerror(i32 noundef %4131, ptr noundef nonnull @.str.4) #11
  %4133 = load i32, ptr %2831, align 4, !tbaa !5
  %4134 = call ptr @s2n_strerror_debug(i32 noundef %4133, ptr noundef nonnull @.str.4) #11
  %4135 = load i32, ptr %2885, align 4, !tbaa !5
  %4136 = call ptr @strerror(i32 noundef %4135) #11
  %4137 = load i32, ptr %2885, align 4, !tbaa !5
  %4138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4129, ptr noundef nonnull %.str.5.sink2449, i32 noundef %4130, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 364, ptr noundef %4132, ptr noundef %4134, ptr noundef %4136, i32 noundef %4137) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4139:                                             ; preds = %4112
  %4140 = load i32, ptr @test_count, align 4, !tbaa !5
  %4141 = add nsw i32 %4140, 1
  store i32 %4141, ptr @test_count, align 4, !tbaa !5
  %4142 = load i32, ptr %3866, align 8, !tbaa !48
  %4143 = icmp eq i32 %4142, 1
  br i1 %4143, label %4166, label %4144

4144:                                             ; preds = %4139
  %4145 = load i32, ptr %2885, align 4, !tbaa !5
  %4146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4147 = call i32 @s2n_print_stacktrace(ptr noundef %4146) #11
  %4148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4149 = trunc nuw i8 %4148 to i1
  br i1 %4149, label %4150, label %4154

4150:                                             ; preds = %4144
  %4151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4152 = call i32 @fileno(ptr noundef %4151) #11
  %4153 = call i32 @isatty(i32 noundef %4152) #11
  %.not795 = icmp eq i32 %4153, 0
  br i1 %.not795, label %4154, label %4155

4154:                                             ; preds = %4150, %4144
  br label %4155

4155:                                             ; preds = %4150, %4154
  %.str.5.sink2458 = phi ptr [ @.str.5, %4154 ], [ @.str.2, %4150 ]
  store i32 %4145, ptr %2885, align 4, !tbaa !5
  %4156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4157 = load i32, ptr @test_count, align 4, !tbaa !5
  %4158 = load i32, ptr %2831, align 4, !tbaa !5
  %4159 = call ptr @s2n_strerror(i32 noundef %4158, ptr noundef nonnull @.str.4) #11
  %4160 = load i32, ptr %2831, align 4, !tbaa !5
  %4161 = call ptr @s2n_strerror_debug(i32 noundef %4160, ptr noundef nonnull @.str.4) #11
  %4162 = load i32, ptr %2885, align 4, !tbaa !5
  %4163 = call ptr @strerror(i32 noundef %4162) #11
  %4164 = load i32, ptr %2885, align 4, !tbaa !5
  %4165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4156, ptr noundef nonnull %.str.5.sink2458, i32 noundef %4157, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %4159, ptr noundef %4161, ptr noundef %4163, i32 noundef %4164) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4166:                                             ; preds = %4139
  %4167 = add nsw i32 %4140, 2
  store i32 %4167, ptr @test_count, align 4, !tbaa !5
  %4168 = load i32, ptr %4000, align 8, !tbaa !48
  %4169 = icmp eq i32 %4168, 3
  br i1 %4169, label %4192, label %4170

4170:                                             ; preds = %4166
  %4171 = load i32, ptr %2885, align 4, !tbaa !5
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = call i32 @s2n_print_stacktrace(ptr noundef %4172) #11
  %4174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4175 = trunc nuw i8 %4174 to i1
  br i1 %4175, label %4176, label %4180

4176:                                             ; preds = %4170
  %4177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4178 = call i32 @fileno(ptr noundef %4177) #11
  %4179 = call i32 @isatty(i32 noundef %4178) #11
  %.not796 = icmp eq i32 %4179, 0
  br i1 %.not796, label %4180, label %4181

4180:                                             ; preds = %4176, %4170
  br label %4181

4181:                                             ; preds = %4176, %4180
  %.str.5.sink2467 = phi ptr [ @.str.5, %4180 ], [ @.str.2, %4176 ]
  store i32 %4171, ptr %2885, align 4, !tbaa !5
  %4182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4183 = load i32, ptr @test_count, align 4, !tbaa !5
  %4184 = load i32, ptr %2831, align 4, !tbaa !5
  %4185 = call ptr @s2n_strerror(i32 noundef %4184, ptr noundef nonnull @.str.4) #11
  %4186 = load i32, ptr %2831, align 4, !tbaa !5
  %4187 = call ptr @s2n_strerror_debug(i32 noundef %4186, ptr noundef nonnull @.str.4) #11
  %4188 = load i32, ptr %2885, align 4, !tbaa !5
  %4189 = call ptr @strerror(i32 noundef %4188) #11
  %4190 = load i32, ptr %2885, align 4, !tbaa !5
  %4191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4182, ptr noundef nonnull %.str.5.sink2467, i32 noundef %4183, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %4185, ptr noundef %4187, ptr noundef %4189, i32 noundef %4190) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4192:                                             ; preds = %4166
  %4193 = add nsw i32 %4140, 3
  store i32 %4193, ptr @test_count, align 4, !tbaa !5
  %4194 = call i32 @s2n_connection_free(ptr noundef nonnull %3784) #11
  %4195 = icmp eq i32 %4194, -1
  br i1 %4195, label %4196, label %4218

4196:                                             ; preds = %4192
  %4197 = load i32, ptr %2885, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = call i32 @s2n_print_stacktrace(ptr noundef %4198) #11
  %4200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4201 = trunc nuw i8 %4200 to i1
  br i1 %4201, label %4202, label %4206

4202:                                             ; preds = %4196
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = call i32 @fileno(ptr noundef %4203) #11
  %4205 = call i32 @isatty(i32 noundef %4204) #11
  %.not868 = icmp eq i32 %4205, 0
  br i1 %.not868, label %4206, label %4207

4206:                                             ; preds = %4202, %4196
  br label %4207

4207:                                             ; preds = %4202, %4206
  %.str.5.sink2476 = phi ptr [ @.str.5, %4206 ], [ @.str.2, %4202 ]
  store i32 %4197, ptr %2885, align 4, !tbaa !5
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = load i32, ptr @test_count, align 4, !tbaa !5
  %4210 = load i32, ptr %2831, align 4, !tbaa !5
  %4211 = call ptr @s2n_strerror(i32 noundef %4210, ptr noundef nonnull @.str.4) #11
  %4212 = load i32, ptr %2831, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror_debug(i32 noundef %4212, ptr noundef nonnull @.str.4) #11
  %4214 = load i32, ptr %2885, align 4, !tbaa !5
  %4215 = call ptr @strerror(i32 noundef %4214) #11
  %4216 = load i32, ptr %2885, align 4, !tbaa !5
  %4217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4208, ptr noundef nonnull %.str.5.sink2476, i32 noundef %4209, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %4211, ptr noundef %4213, ptr noundef %4215, i32 noundef %4216) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4218:                                             ; preds = %4192
  %4219 = load i32, ptr @test_count, align 4, !tbaa !5
  %4220 = add nsw i32 %4219, 1
  store i32 %4220, ptr @test_count, align 4, !tbaa !5
  %4221 = call i32 @s2n_connection_free(ptr noundef nonnull %3918) #11
  %4222 = icmp eq i32 %4221, -1
  br i1 %4222, label %4223, label %4245

4223:                                             ; preds = %4218
  %4224 = load i32, ptr %2885, align 4, !tbaa !5
  %4225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4226 = call i32 @s2n_print_stacktrace(ptr noundef %4225) #11
  %4227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4228 = trunc nuw i8 %4227 to i1
  br i1 %4228, label %4229, label %4233

4229:                                             ; preds = %4223
  %4230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4231 = call i32 @fileno(ptr noundef %4230) #11
  %4232 = call i32 @isatty(i32 noundef %4231) #11
  %.not867 = icmp eq i32 %4232, 0
  br i1 %.not867, label %4233, label %4234

4233:                                             ; preds = %4229, %4223
  br label %4234

4234:                                             ; preds = %4229, %4233
  %.str.5.sink2485 = phi ptr [ @.str.5, %4233 ], [ @.str.2, %4229 ]
  store i32 %4224, ptr %2885, align 4, !tbaa !5
  %4235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4236 = load i32, ptr @test_count, align 4, !tbaa !5
  %4237 = load i32, ptr %2831, align 4, !tbaa !5
  %4238 = call ptr @s2n_strerror(i32 noundef %4237, ptr noundef nonnull @.str.4) #11
  %4239 = load i32, ptr %2831, align 4, !tbaa !5
  %4240 = call ptr @s2n_strerror_debug(i32 noundef %4239, ptr noundef nonnull @.str.4) #11
  %4241 = load i32, ptr %2885, align 4, !tbaa !5
  %4242 = call ptr @strerror(i32 noundef %4241) #11
  %4243 = load i32, ptr %2885, align 4, !tbaa !5
  %4244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4235, ptr noundef nonnull %.str.5.sink2485, i32 noundef %4236, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %4238, ptr noundef %4240, ptr noundef %4242, i32 noundef %4243) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4245:                                             ; preds = %4218
  %4246 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %4247 = load i32, ptr @test_count, align 4, !tbaa !5
  %4248 = add nsw i32 %4247, 1
  store i32 %4248, ptr @test_count, align 4, !tbaa !5
  %4249 = icmp eq ptr %4246, null
  br i1 %4249, label %4250, label %4272

4250:                                             ; preds = %4245
  %4251 = load i32, ptr %2885, align 4, !tbaa !5
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4253 = call i32 @s2n_print_stacktrace(ptr noundef %4252) #11
  %4254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4255 = trunc nuw i8 %4254 to i1
  br i1 %4255, label %4256, label %4260

4256:                                             ; preds = %4250
  %4257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4258 = call i32 @fileno(ptr noundef %4257) #11
  %4259 = call i32 @isatty(i32 noundef %4258) #11
  %.not866 = icmp eq i32 %4259, 0
  br i1 %.not866, label %4260, label %4261

4260:                                             ; preds = %4256, %4250
  br label %4261

4261:                                             ; preds = %4256, %4260
  %.str.5.sink2494 = phi ptr [ @.str.5, %4260 ], [ @.str.2, %4256 ]
  store i32 %4251, ptr %2885, align 4, !tbaa !5
  %4262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4263 = load i32, ptr @test_count, align 4, !tbaa !5
  %4264 = load i32, ptr %2831, align 4, !tbaa !5
  %4265 = call ptr @s2n_strerror(i32 noundef %4264, ptr noundef nonnull @.str.4) #11
  %4266 = load i32, ptr %2831, align 4, !tbaa !5
  %4267 = call ptr @s2n_strerror_debug(i32 noundef %4266, ptr noundef nonnull @.str.4) #11
  %4268 = load i32, ptr %2885, align 4, !tbaa !5
  %4269 = call ptr @strerror(i32 noundef %4268) #11
  %4270 = load i32, ptr %2885, align 4, !tbaa !5
  %4271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4262, ptr noundef nonnull %.str.5.sink2494, i32 noundef %4263, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %4265, ptr noundef %4267, ptr noundef %4269, i32 noundef %4270) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4272:                                             ; preds = %4245
  %4273 = add nsw i32 %4247, 2
  store i32 %4273, ptr @test_count, align 4, !tbaa !5
  %4274 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4246, ptr noundef nonnull @.str.16) #11
  %4275 = icmp eq i32 %4274, -1
  br i1 %4275, label %4276, label %4298

4276:                                             ; preds = %4272
  %4277 = load i32, ptr %2885, align 4, !tbaa !5
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = call i32 @s2n_print_stacktrace(ptr noundef %4278) #11
  %4280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4281 = trunc nuw i8 %4280 to i1
  br i1 %4281, label %4282, label %4286

4282:                                             ; preds = %4276
  %4283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4284 = call i32 @fileno(ptr noundef %4283) #11
  %4285 = call i32 @isatty(i32 noundef %4284) #11
  %.not865 = icmp eq i32 %4285, 0
  br i1 %.not865, label %4286, label %4287

4286:                                             ; preds = %4282, %4276
  br label %4287

4287:                                             ; preds = %4282, %4286
  %.str.5.sink2503 = phi ptr [ @.str.5, %4286 ], [ @.str.2, %4282 ]
  store i32 %4277, ptr %2885, align 4, !tbaa !5
  %4288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4289 = load i32, ptr @test_count, align 4, !tbaa !5
  %4290 = load i32, ptr %2831, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror(i32 noundef %4290, ptr noundef nonnull @.str.4) #11
  %4292 = load i32, ptr %2831, align 4, !tbaa !5
  %4293 = call ptr @s2n_strerror_debug(i32 noundef %4292, ptr noundef nonnull @.str.4) #11
  %4294 = load i32, ptr %2885, align 4, !tbaa !5
  %4295 = call ptr @strerror(i32 noundef %4294) #11
  %4296 = load i32, ptr %2885, align 4, !tbaa !5
  %4297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4288, ptr noundef nonnull %.str.5.sink2503, i32 noundef %4289, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %4291, ptr noundef %4293, ptr noundef %4295, i32 noundef %4296) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4298:                                             ; preds = %4272
  %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 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %4246, i32 noundef 0, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %4302 = call zeroext i1 @s2n_result_is_ok(i32 %4301)
  br i1 %4302, label %4325, label %4303

4303:                                             ; preds = %4298
  %4304 = load i32, ptr %2885, align 4, !tbaa !5
  %4305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4306 = call i32 @s2n_print_stacktrace(ptr noundef %4305) #11
  %4307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4308 = trunc nuw i8 %4307 to i1
  br i1 %4308, label %4309, label %4313

4309:                                             ; preds = %4303
  %4310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4311 = call i32 @fileno(ptr noundef %4310) #11
  %4312 = call i32 @isatty(i32 noundef %4311) #11
  %.not797 = icmp eq i32 %4312, 0
  br i1 %.not797, label %4313, label %4314

4313:                                             ; preds = %4309, %4303
  br label %4314

4314:                                             ; preds = %4309, %4313
  %.str.5.sink2512 = phi ptr [ @.str.5, %4313 ], [ @.str.2, %4309 ]
  store i32 %4304, ptr %2885, align 4, !tbaa !5
  %4315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4316 = load i32, ptr @test_count, align 4, !tbaa !5
  %4317 = load i32, ptr %2831, align 4, !tbaa !5
  %4318 = call ptr @s2n_strerror(i32 noundef %4317, ptr noundef nonnull @.str.4) #11
  %4319 = load i32, ptr %2831, align 4, !tbaa !5
  %4320 = call ptr @s2n_strerror_debug(i32 noundef %4319, ptr noundef nonnull @.str.4) #11
  %4321 = load i32, ptr %2885, align 4, !tbaa !5
  %4322 = call ptr @strerror(i32 noundef %4321) #11
  %4323 = load i32, ptr %2885, align 4, !tbaa !5
  %4324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4315, ptr noundef nonnull %.str.5.sink2512, i32 noundef %4316, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %4318, ptr noundef %4320, ptr noundef %4322, i32 noundef %4323) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4325:                                             ; preds = %4298
  %4326 = load i32, ptr @test_count, align 4, !tbaa !5
  %4327 = add nsw i32 %4326, 1
  store i32 %4327, ptr @test_count, align 4, !tbaa !5
  %4328 = getelementptr inbounds i8, ptr %4246, i64 4088
  %4329 = load i32, ptr %4328, align 8, !tbaa !48
  %4330 = icmp eq i32 %4329, 0
  br i1 %4330, label %4353, label %4331

4331:                                             ; preds = %4325
  %4332 = load i32, ptr %2885, align 4, !tbaa !5
  %4333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4334 = call i32 @s2n_print_stacktrace(ptr noundef %4333) #11
  %4335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4336 = trunc nuw i8 %4335 to i1
  br i1 %4336, label %4337, label %4341

4337:                                             ; preds = %4331
  %4338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4339 = call i32 @fileno(ptr noundef %4338) #11
  %4340 = call i32 @isatty(i32 noundef %4339) #11
  %.not798 = icmp eq i32 %4340, 0
  br i1 %.not798, label %4341, label %4342

4341:                                             ; preds = %4337, %4331
  br label %4342

4342:                                             ; preds = %4337, %4341
  %.str.5.sink2521 = phi ptr [ @.str.5, %4341 ], [ @.str.2, %4337 ]
  store i32 %4332, ptr %2885, align 4, !tbaa !5
  %4343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4344 = load i32, ptr @test_count, align 4, !tbaa !5
  %4345 = load i32, ptr %2831, align 4, !tbaa !5
  %4346 = call ptr @s2n_strerror(i32 noundef %4345, ptr noundef nonnull @.str.4) #11
  %4347 = load i32, ptr %2831, align 4, !tbaa !5
  %4348 = call ptr @s2n_strerror_debug(i32 noundef %4347, ptr noundef nonnull @.str.4) #11
  %4349 = load i32, ptr %2885, align 4, !tbaa !5
  %4350 = call ptr @strerror(i32 noundef %4349) #11
  %4351 = load i32, ptr %2885, align 4, !tbaa !5
  %4352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4343, ptr noundef nonnull %.str.5.sink2521, i32 noundef %4344, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 379, ptr noundef %4346, ptr noundef %4348, ptr noundef %4350, i32 noundef %4351) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4353:                                             ; preds = %4325
  %4354 = add nsw i32 %4326, 2
  store i32 %4354, ptr @test_count, align 4, !tbaa !5
  %4355 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %4246) #11
  %4356 = icmp eq i32 %4355, -1
  br i1 %4356, label %4357, label %4379

4357:                                             ; preds = %4353
  %4358 = load i32, ptr %2885, align 4, !tbaa !5
  %4359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4360 = call i32 @s2n_print_stacktrace(ptr noundef %4359) #11
  %4361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4362 = trunc nuw i8 %4361 to i1
  br i1 %4362, label %4363, label %4367

4363:                                             ; preds = %4357
  %4364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4365 = call i32 @fileno(ptr noundef %4364) #11
  %4366 = call i32 @isatty(i32 noundef %4365) #11
  %.not864 = icmp eq i32 %4366, 0
  br i1 %.not864, label %4367, label %4368

4367:                                             ; preds = %4363, %4357
  br label %4368

4368:                                             ; preds = %4363, %4367
  %.str.5.sink2530 = phi ptr [ @.str.5, %4367 ], [ @.str.2, %4363 ]
  store i32 %4358, ptr %2885, align 4, !tbaa !5
  %4369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4370 = load i32, ptr @test_count, align 4, !tbaa !5
  %4371 = load i32, ptr %2831, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror(i32 noundef %4371, ptr noundef nonnull @.str.4) #11
  %4373 = load i32, ptr %2831, align 4, !tbaa !5
  %4374 = call ptr @s2n_strerror_debug(i32 noundef %4373, ptr noundef nonnull @.str.4) #11
  %4375 = load i32, ptr %2885, align 4, !tbaa !5
  %4376 = call ptr @strerror(i32 noundef %4375) #11
  %4377 = load i32, ptr %2885, align 4, !tbaa !5
  %4378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4369, ptr noundef nonnull %.str.5.sink2530, i32 noundef %4370, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 380, ptr noundef %4372, ptr noundef %4374, ptr noundef %4376, i32 noundef %4377) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4379:                                             ; preds = %4353
  %4380 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %4381 = load i32, ptr @test_count, align 4, !tbaa !5
  %4382 = add nsw i32 %4381, 1
  store i32 %4382, ptr @test_count, align 4, !tbaa !5
  %4383 = icmp eq ptr %4380, null
  br i1 %4383, label %4384, label %4406

4384:                                             ; preds = %4379
  %4385 = load i32, ptr %2885, align 4, !tbaa !5
  %4386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4387 = call i32 @s2n_print_stacktrace(ptr noundef %4386) #11
  %4388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4389 = trunc nuw i8 %4388 to i1
  br i1 %4389, label %4390, label %4394

4390:                                             ; preds = %4384
  %4391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4392 = call i32 @fileno(ptr noundef %4391) #11
  %4393 = call i32 @isatty(i32 noundef %4392) #11
  %.not863 = icmp eq i32 %4393, 0
  br i1 %.not863, label %4394, label %4395

4394:                                             ; preds = %4390, %4384
  br label %4395

4395:                                             ; preds = %4390, %4394
  %.str.5.sink2539 = phi ptr [ @.str.5, %4394 ], [ @.str.2, %4390 ]
  store i32 %4385, ptr %2885, align 4, !tbaa !5
  %4396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4397 = load i32, ptr @test_count, align 4, !tbaa !5
  %4398 = load i32, ptr %2831, align 4, !tbaa !5
  %4399 = call ptr @s2n_strerror(i32 noundef %4398, ptr noundef nonnull @.str.4) #11
  %4400 = load i32, ptr %2831, align 4, !tbaa !5
  %4401 = call ptr @s2n_strerror_debug(i32 noundef %4400, ptr noundef nonnull @.str.4) #11
  %4402 = load i32, ptr %2885, align 4, !tbaa !5
  %4403 = call ptr @strerror(i32 noundef %4402) #11
  %4404 = load i32, ptr %2885, align 4, !tbaa !5
  %4405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4396, ptr noundef nonnull %.str.5.sink2539, i32 noundef %4397, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef %4399, ptr noundef %4401, ptr noundef %4403, i32 noundef %4404) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4406:                                             ; preds = %4379
  %4407 = add nsw i32 %4381, 2
  store i32 %4407, ptr @test_count, align 4, !tbaa !5
  %4408 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4380, ptr noundef nonnull @.str.16) #11
  %4409 = icmp eq i32 %4408, -1
  br i1 %4409, label %4410, label %4432

4410:                                             ; preds = %4406
  %4411 = load i32, ptr %2885, align 4, !tbaa !5
  %4412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4413 = call i32 @s2n_print_stacktrace(ptr noundef %4412) #11
  %4414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4415 = trunc nuw i8 %4414 to i1
  br i1 %4415, label %4416, label %4420

4416:                                             ; preds = %4410
  %4417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4418 = call i32 @fileno(ptr noundef %4417) #11
  %4419 = call i32 @isatty(i32 noundef %4418) #11
  %.not862 = icmp eq i32 %4419, 0
  br i1 %.not862, label %4420, label %4421

4420:                                             ; preds = %4416, %4410
  br label %4421

4421:                                             ; preds = %4416, %4420
  %.str.5.sink2548 = phi ptr [ @.str.5, %4420 ], [ @.str.2, %4416 ]
  store i32 %4411, ptr %2885, align 4, !tbaa !5
  %4422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4423 = load i32, ptr @test_count, align 4, !tbaa !5
  %4424 = load i32, ptr %2831, align 4, !tbaa !5
  %4425 = call ptr @s2n_strerror(i32 noundef %4424, ptr noundef nonnull @.str.4) #11
  %4426 = load i32, ptr %2831, align 4, !tbaa !5
  %4427 = call ptr @s2n_strerror_debug(i32 noundef %4426, ptr noundef nonnull @.str.4) #11
  %4428 = load i32, ptr %2885, align 4, !tbaa !5
  %4429 = call ptr @strerror(i32 noundef %4428) #11
  %4430 = load i32, ptr %2885, align 4, !tbaa !5
  %4431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4422, ptr noundef nonnull %.str.5.sink2548, i32 noundef %4423, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %4425, ptr noundef %4427, ptr noundef %4429, i32 noundef %4430) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4432:                                             ; preds = %4406
  %4433 = load i32, ptr @test_count, align 4, !tbaa !5
  %4434 = add nsw i32 %4433, 1
  store i32 %4434, ptr @test_count, align 4, !tbaa !5
  %4435 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %4380, i32 noundef 0, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %4436 = call zeroext i1 @s2n_result_is_ok(i32 %4435)
  br i1 %4436, label %4459, label %4437

4437:                                             ; preds = %4432
  %4438 = load i32, ptr %2885, align 4, !tbaa !5
  %4439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4440 = call i32 @s2n_print_stacktrace(ptr noundef %4439) #11
  %4441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4442 = trunc nuw i8 %4441 to i1
  br i1 %4442, label %4443, label %4447

4443:                                             ; preds = %4437
  %4444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4445 = call i32 @fileno(ptr noundef %4444) #11
  %4446 = call i32 @isatty(i32 noundef %4445) #11
  %.not799 = icmp eq i32 %4446, 0
  br i1 %.not799, label %4447, label %4448

4447:                                             ; preds = %4443, %4437
  br label %4448

4448:                                             ; preds = %4443, %4447
  %.str.5.sink2557 = phi ptr [ @.str.5, %4447 ], [ @.str.2, %4443 ]
  store i32 %4438, ptr %2885, align 4, !tbaa !5
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = load i32, ptr @test_count, align 4, !tbaa !5
  %4451 = load i32, ptr %2831, align 4, !tbaa !5
  %4452 = call ptr @s2n_strerror(i32 noundef %4451, ptr noundef nonnull @.str.4) #11
  %4453 = load i32, ptr %2831, align 4, !tbaa !5
  %4454 = call ptr @s2n_strerror_debug(i32 noundef %4453, ptr noundef nonnull @.str.4) #11
  %4455 = load i32, ptr %2885, align 4, !tbaa !5
  %4456 = call ptr @strerror(i32 noundef %4455) #11
  %4457 = load i32, ptr %2885, align 4, !tbaa !5
  %4458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4449, ptr noundef nonnull %.str.5.sink2557, i32 noundef %4450, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %4452, ptr noundef %4454, ptr noundef %4456, i32 noundef %4457) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4459:                                             ; preds = %4432
  %4460 = load i32, ptr @test_count, align 4, !tbaa !5
  %4461 = add nsw i32 %4460, 1
  store i32 %4461, ptr @test_count, align 4, !tbaa !5
  %4462 = getelementptr inbounds i8, ptr %4380, i64 4088
  %4463 = load i32, ptr %4462, align 8, !tbaa !48
  %4464 = icmp eq i32 %4463, 0
  br i1 %4464, label %4487, label %4465

4465:                                             ; preds = %4459
  %4466 = load i32, ptr %2885, align 4, !tbaa !5
  %4467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4468 = call i32 @s2n_print_stacktrace(ptr noundef %4467) #11
  %4469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4470 = trunc nuw i8 %4469 to i1
  br i1 %4470, label %4471, label %4475

4471:                                             ; preds = %4465
  %4472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4473 = call i32 @fileno(ptr noundef %4472) #11
  %4474 = call i32 @isatty(i32 noundef %4473) #11
  %.not800 = icmp eq i32 %4474, 0
  br i1 %.not800, label %4475, label %4476

4475:                                             ; preds = %4471, %4465
  br label %4476

4476:                                             ; preds = %4471, %4475
  %.str.5.sink2566 = phi ptr [ @.str.5, %4475 ], [ @.str.2, %4471 ]
  store i32 %4466, ptr %2885, align 4, !tbaa !5
  %4477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4478 = load i32, ptr @test_count, align 4, !tbaa !5
  %4479 = load i32, ptr %2831, align 4, !tbaa !5
  %4480 = call ptr @s2n_strerror(i32 noundef %4479, ptr noundef nonnull @.str.4) #11
  %4481 = load i32, ptr %2831, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror_debug(i32 noundef %4481, ptr noundef nonnull @.str.4) #11
  %4483 = load i32, ptr %2885, align 4, !tbaa !5
  %4484 = call ptr @strerror(i32 noundef %4483) #11
  %4485 = load i32, ptr %2885, align 4, !tbaa !5
  %4486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4477, ptr noundef nonnull %.str.5.sink2566, i32 noundef %4478, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %4480, ptr noundef %4482, ptr noundef %4484, i32 noundef %4485) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4487:                                             ; preds = %4459
  %4488 = add nsw i32 %4460, 2
  store i32 %4488, ptr @test_count, align 4, !tbaa !5
  %4489 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %4380) #11
  %4490 = icmp eq i32 %4489, -1
  br i1 %4490, label %4491, label %4513

4491:                                             ; preds = %4487
  %4492 = load i32, ptr %2885, align 4, !tbaa !5
  %4493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4494 = call i32 @s2n_print_stacktrace(ptr noundef %4493) #11
  %4495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4496 = trunc nuw i8 %4495 to i1
  br i1 %4496, label %4497, label %4501

4497:                                             ; preds = %4491
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = call i32 @fileno(ptr noundef %4498) #11
  %4500 = call i32 @isatty(i32 noundef %4499) #11
  %.not861 = icmp eq i32 %4500, 0
  br i1 %.not861, label %4501, label %4502

4501:                                             ; preds = %4497, %4491
  br label %4502

4502:                                             ; preds = %4497, %4501
  %.str.5.sink2575 = phi ptr [ @.str.5, %4501 ], [ @.str.2, %4497 ]
  store i32 %4492, ptr %2885, align 4, !tbaa !5
  %4503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4504 = load i32, ptr @test_count, align 4, !tbaa !5
  %4505 = load i32, ptr %2831, align 4, !tbaa !5
  %4506 = call ptr @s2n_strerror(i32 noundef %4505, ptr noundef nonnull @.str.4) #11
  %4507 = load i32, ptr %2831, align 4, !tbaa !5
  %4508 = call ptr @s2n_strerror_debug(i32 noundef %4507, ptr noundef nonnull @.str.4) #11
  %4509 = load i32, ptr %2885, align 4, !tbaa !5
  %4510 = call ptr @strerror(i32 noundef %4509) #11
  %4511 = load i32, ptr %2885, align 4, !tbaa !5
  %4512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4503, ptr noundef nonnull %.str.5.sink2575, i32 noundef %4504, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %4506, ptr noundef %4508, ptr noundef %4510, i32 noundef %4511) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4513:                                             ; preds = %4487
  %4514 = load i32, ptr @test_count, align 4, !tbaa !5
  %4515 = add nsw i32 %4514, 1
  store i32 %4515, ptr @test_count, align 4, !tbaa !5
  %4516 = call i32 @s2n_client_hello_send(ptr noundef nonnull %4246) #11
  %4517 = icmp eq i32 %4516, -1
  br i1 %4517, label %4518, label %4540

4518:                                             ; preds = %4513
  %4519 = load i32, ptr %2885, align 4, !tbaa !5
  %4520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4521 = call i32 @s2n_print_stacktrace(ptr noundef %4520) #11
  %4522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4523 = trunc nuw i8 %4522 to i1
  br i1 %4523, label %4524, label %4528

4524:                                             ; preds = %4518
  %4525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4526 = call i32 @fileno(ptr noundef %4525) #11
  %4527 = call i32 @isatty(i32 noundef %4526) #11
  %.not860 = icmp eq i32 %4527, 0
  br i1 %.not860, label %4528, label %4529

4528:                                             ; preds = %4524, %4518
  br label %4529

4529:                                             ; preds = %4524, %4528
  %.str.5.sink2584 = phi ptr [ @.str.5, %4528 ], [ @.str.2, %4524 ]
  store i32 %4519, ptr %2885, align 4, !tbaa !5
  %4530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4531 = load i32, ptr @test_count, align 4, !tbaa !5
  %4532 = load i32, ptr %2831, align 4, !tbaa !5
  %4533 = call ptr @s2n_strerror(i32 noundef %4532, ptr noundef nonnull @.str.4) #11
  %4534 = load i32, ptr %2831, align 4, !tbaa !5
  %4535 = call ptr @s2n_strerror_debug(i32 noundef %4534, ptr noundef nonnull @.str.4) #11
  %4536 = load i32, ptr %2885, align 4, !tbaa !5
  %4537 = call ptr @strerror(i32 noundef %4536) #11
  %4538 = load i32, ptr %2885, align 4, !tbaa !5
  %4539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4530, ptr noundef nonnull %.str.5.sink2584, i32 noundef %4531, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %4533, ptr noundef %4535, ptr noundef %4537, i32 noundef %4538) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4540:                                             ; preds = %4513
  %4541 = load i32, ptr @test_count, align 4, !tbaa !5
  %4542 = add nsw i32 %4541, 1
  store i32 %4542, ptr @test_count, align 4, !tbaa !5
  %4543 = getelementptr inbounds i8, ptr %4246, i64 2016
  %4544 = getelementptr inbounds i8, ptr %4380, i64 2016
  %4545 = getelementptr inbounds i8, ptr %4246, i64 2044
  %4546 = load i32, ptr %4545, align 4, !tbaa !51
  %4547 = getelementptr inbounds i8, ptr %4246, i64 2040
  %4548 = load i32, ptr %4547, align 8, !tbaa !52
  %4549 = sub i32 %4546, %4548
  %4550 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %4543, ptr noundef nonnull %4544, i32 noundef %4549) #11
  %4551 = icmp eq i32 %4550, -1
  br i1 %4551, label %4552, label %4574

4552:                                             ; preds = %4540
  %4553 = load i32, ptr %2885, align 4, !tbaa !5
  %4554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4555 = call i32 @s2n_print_stacktrace(ptr noundef %4554) #11
  %4556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4557 = trunc nuw i8 %4556 to i1
  br i1 %4557, label %4558, label %4562

4558:                                             ; preds = %4552
  %4559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4560 = call i32 @fileno(ptr noundef %4559) #11
  %4561 = call i32 @isatty(i32 noundef %4560) #11
  %.not859 = icmp eq i32 %4561, 0
  br i1 %.not859, label %4562, label %4563

4562:                                             ; preds = %4558, %4552
  br label %4563

4563:                                             ; preds = %4558, %4562
  %.str.5.sink2593 = phi ptr [ @.str.5, %4562 ], [ @.str.2, %4558 ]
  store i32 %4553, ptr %2885, align 4, !tbaa !5
  %4564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4565 = load i32, ptr @test_count, align 4, !tbaa !5
  %4566 = load i32, ptr %2831, align 4, !tbaa !5
  %4567 = call ptr @s2n_strerror(i32 noundef %4566, ptr noundef nonnull @.str.4) #11
  %4568 = load i32, ptr %2831, align 4, !tbaa !5
  %4569 = call ptr @s2n_strerror_debug(i32 noundef %4568, ptr noundef nonnull @.str.4) #11
  %4570 = load i32, ptr %2885, align 4, !tbaa !5
  %4571 = call ptr @strerror(i32 noundef %4570) #11
  %4572 = load i32, ptr %2885, align 4, !tbaa !5
  %4573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4564, ptr noundef nonnull %.str.5.sink2593, i32 noundef %4565, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %4567, ptr noundef %4569, ptr noundef %4571, i32 noundef %4572) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4574:                                             ; preds = %4540
  %4575 = load i32, ptr @test_count, align 4, !tbaa !5
  %4576 = add nsw i32 %4575, 1
  store i32 %4576, ptr @test_count, align 4, !tbaa !5
  %4577 = call i32 @s2n_establish_session(ptr noundef nonnull %4380) #11
  %4578 = icmp eq i32 %4577, -1
  br i1 %4578, label %4579, label %4601

4579:                                             ; preds = %4574
  %4580 = load i32, ptr %2885, align 4, !tbaa !5
  %4581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4582 = call i32 @s2n_print_stacktrace(ptr noundef %4581) #11
  %4583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4584 = trunc nuw i8 %4583 to i1
  br i1 %4584, label %4585, label %4589

4585:                                             ; preds = %4579
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = call i32 @fileno(ptr noundef %4586) #11
  %4588 = call i32 @isatty(i32 noundef %4587) #11
  %.not858 = icmp eq i32 %4588, 0
  br i1 %.not858, label %4589, label %4590

4589:                                             ; preds = %4585, %4579
  br label %4590

4590:                                             ; preds = %4585, %4589
  %.str.5.sink2602 = phi ptr [ @.str.5, %4589 ], [ @.str.2, %4585 ]
  store i32 %4580, ptr %2885, align 4, !tbaa !5
  %4591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4592 = load i32, ptr @test_count, align 4, !tbaa !5
  %4593 = load i32, ptr %2831, align 4, !tbaa !5
  %4594 = call ptr @s2n_strerror(i32 noundef %4593, ptr noundef nonnull @.str.4) #11
  %4595 = load i32, ptr %2831, align 4, !tbaa !5
  %4596 = call ptr @s2n_strerror_debug(i32 noundef %4595, ptr noundef nonnull @.str.4) #11
  %4597 = load i32, ptr %2885, align 4, !tbaa !5
  %4598 = call ptr @strerror(i32 noundef %4597) #11
  %4599 = load i32, ptr %2885, align 4, !tbaa !5
  %4600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4591, ptr noundef nonnull %.str.5.sink2602, i32 noundef %4592, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %4594, ptr noundef %4596, ptr noundef %4598, i32 noundef %4599) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4601:                                             ; preds = %4574
  %4602 = load i32, ptr @test_count, align 4, !tbaa !5
  %4603 = add nsw i32 %4602, 1
  store i32 %4603, ptr @test_count, align 4, !tbaa !5
  %4604 = load i32, ptr %4328, align 8, !tbaa !48
  %4605 = icmp eq i32 %4604, 2
  br i1 %4605, label %4628, label %4606

4606:                                             ; preds = %4601
  %4607 = load i32, ptr %2885, align 4, !tbaa !5
  %4608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4609 = call i32 @s2n_print_stacktrace(ptr noundef %4608) #11
  %4610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4611 = trunc nuw i8 %4610 to i1
  br i1 %4611, label %4612, label %4616

4612:                                             ; preds = %4606
  %4613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4614 = call i32 @fileno(ptr noundef %4613) #11
  %4615 = call i32 @isatty(i32 noundef %4614) #11
  %.not801 = icmp eq i32 %4615, 0
  br i1 %.not801, label %4616, label %4617

4616:                                             ; preds = %4612, %4606
  br label %4617

4617:                                             ; preds = %4612, %4616
  %.str.5.sink2611 = phi ptr [ @.str.5, %4616 ], [ @.str.2, %4612 ]
  store i32 %4607, ptr %2885, align 4, !tbaa !5
  %4618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4619 = load i32, ptr @test_count, align 4, !tbaa !5
  %4620 = load i32, ptr %2831, align 4, !tbaa !5
  %4621 = call ptr @s2n_strerror(i32 noundef %4620, ptr noundef nonnull @.str.4) #11
  %4622 = load i32, ptr %2831, align 4, !tbaa !5
  %4623 = call ptr @s2n_strerror_debug(i32 noundef %4622, ptr noundef nonnull @.str.4) #11
  %4624 = load i32, ptr %2885, align 4, !tbaa !5
  %4625 = call ptr @strerror(i32 noundef %4624) #11
  %4626 = load i32, ptr %2885, align 4, !tbaa !5
  %4627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4618, ptr noundef nonnull %.str.5.sink2611, i32 noundef %4619, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 394, ptr noundef %4621, ptr noundef %4623, ptr noundef %4625, i32 noundef %4626) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4628:                                             ; preds = %4601
  %4629 = add nsw i32 %4602, 2
  store i32 %4629, ptr @test_count, align 4, !tbaa !5
  %4630 = load i32, ptr %4462, align 8, !tbaa !48
  %4631 = icmp eq i32 %4630, 2
  br i1 %4631, label %4654, label %4632

4632:                                             ; preds = %4628
  %4633 = load i32, ptr %2885, align 4, !tbaa !5
  %4634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4635 = call i32 @s2n_print_stacktrace(ptr noundef %4634) #11
  %4636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4637 = trunc nuw i8 %4636 to i1
  br i1 %4637, label %4638, label %4642

4638:                                             ; preds = %4632
  %4639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4640 = call i32 @fileno(ptr noundef %4639) #11
  %4641 = call i32 @isatty(i32 noundef %4640) #11
  %.not802 = icmp eq i32 %4641, 0
  br i1 %.not802, label %4642, label %4643

4642:                                             ; preds = %4638, %4632
  br label %4643

4643:                                             ; preds = %4638, %4642
  %.str.5.sink2620 = phi ptr [ @.str.5, %4642 ], [ @.str.2, %4638 ]
  store i32 %4633, ptr %2885, align 4, !tbaa !5
  %4644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4645 = load i32, ptr @test_count, align 4, !tbaa !5
  %4646 = load i32, ptr %2831, align 4, !tbaa !5
  %4647 = call ptr @s2n_strerror(i32 noundef %4646, ptr noundef nonnull @.str.4) #11
  %4648 = load i32, ptr %2831, align 4, !tbaa !5
  %4649 = call ptr @s2n_strerror_debug(i32 noundef %4648, ptr noundef nonnull @.str.4) #11
  %4650 = load i32, ptr %2885, align 4, !tbaa !5
  %4651 = call ptr @strerror(i32 noundef %4650) #11
  %4652 = load i32, ptr %2885, align 4, !tbaa !5
  %4653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4644, ptr noundef nonnull %.str.5.sink2620, i32 noundef %4645, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 395, ptr noundef %4647, ptr noundef %4649, ptr noundef %4651, i32 noundef %4652) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4654:                                             ; preds = %4628
  %4655 = add nsw i32 %4602, 3
  store i32 %4655, ptr @test_count, align 4, !tbaa !5
  %4656 = call i32 @s2n_connection_free(ptr noundef nonnull %4246) #11
  %4657 = icmp eq i32 %4656, -1
  br i1 %4657, label %4658, label %4680

4658:                                             ; preds = %4654
  %4659 = load i32, ptr %2885, align 4, !tbaa !5
  %4660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4661 = call i32 @s2n_print_stacktrace(ptr noundef %4660) #11
  %4662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4663 = trunc nuw i8 %4662 to i1
  br i1 %4663, label %4664, label %4668

4664:                                             ; preds = %4658
  %4665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4666 = call i32 @fileno(ptr noundef %4665) #11
  %4667 = call i32 @isatty(i32 noundef %4666) #11
  %.not857 = icmp eq i32 %4667, 0
  br i1 %.not857, label %4668, label %4669

4668:                                             ; preds = %4664, %4658
  br label %4669

4669:                                             ; preds = %4664, %4668
  %.str.5.sink2629 = phi ptr [ @.str.5, %4668 ], [ @.str.2, %4664 ]
  store i32 %4659, ptr %2885, align 4, !tbaa !5
  %4670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4671 = load i32, ptr @test_count, align 4, !tbaa !5
  %4672 = load i32, ptr %2831, align 4, !tbaa !5
  %4673 = call ptr @s2n_strerror(i32 noundef %4672, ptr noundef nonnull @.str.4) #11
  %4674 = load i32, ptr %2831, align 4, !tbaa !5
  %4675 = call ptr @s2n_strerror_debug(i32 noundef %4674, ptr noundef nonnull @.str.4) #11
  %4676 = load i32, ptr %2885, align 4, !tbaa !5
  %4677 = call ptr @strerror(i32 noundef %4676) #11
  %4678 = load i32, ptr %2885, align 4, !tbaa !5
  %4679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4670, ptr noundef nonnull %.str.5.sink2629, i32 noundef %4671, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %4673, ptr noundef %4675, ptr noundef %4677, i32 noundef %4678) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4680:                                             ; preds = %4654
  %4681 = load i32, ptr @test_count, align 4, !tbaa !5
  %4682 = add nsw i32 %4681, 1
  store i32 %4682, ptr @test_count, align 4, !tbaa !5
  %4683 = call i32 @s2n_connection_free(ptr noundef nonnull %4380) #11
  %4684 = icmp eq i32 %4683, -1
  br i1 %4684, label %4685, label %4707

4685:                                             ; preds = %4680
  %4686 = load i32, ptr %2885, align 4, !tbaa !5
  %4687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4688 = call i32 @s2n_print_stacktrace(ptr noundef %4687) #11
  %4689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4690 = trunc nuw i8 %4689 to i1
  br i1 %4690, label %4691, label %4695

4691:                                             ; preds = %4685
  %4692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4693 = call i32 @fileno(ptr noundef %4692) #11
  %4694 = call i32 @isatty(i32 noundef %4693) #11
  %.not856 = icmp eq i32 %4694, 0
  br i1 %.not856, label %4695, label %4696

4695:                                             ; preds = %4691, %4685
  br label %4696

4696:                                             ; preds = %4691, %4695
  %.str.5.sink2638 = phi ptr [ @.str.5, %4695 ], [ @.str.2, %4691 ]
  store i32 %4686, ptr %2885, align 4, !tbaa !5
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = load i32, ptr @test_count, align 4, !tbaa !5
  %4699 = load i32, ptr %2831, align 4, !tbaa !5
  %4700 = call ptr @s2n_strerror(i32 noundef %4699, ptr noundef nonnull @.str.4) #11
  %4701 = load i32, ptr %2831, align 4, !tbaa !5
  %4702 = call ptr @s2n_strerror_debug(i32 noundef %4701, ptr noundef nonnull @.str.4) #11
  %4703 = load i32, ptr %2885, align 4, !tbaa !5
  %4704 = call ptr @strerror(i32 noundef %4703) #11
  %4705 = load i32, ptr %2885, align 4, !tbaa !5
  %4706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4697, ptr noundef nonnull %.str.5.sink2638, i32 noundef %4698, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %4700, ptr noundef %4702, ptr noundef %4704, i32 noundef %4705) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4707:                                             ; preds = %4680
  %4708 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %4709 = load i32, ptr @test_count, align 4, !tbaa !5
  %4710 = add nsw i32 %4709, 1
  store i32 %4710, ptr @test_count, align 4, !tbaa !5
  %4711 = icmp eq ptr %4708, null
  br i1 %4711, label %4712, label %4734

4712:                                             ; preds = %4707
  %4713 = load i32, ptr %2885, align 4, !tbaa !5
  %4714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4715 = call i32 @s2n_print_stacktrace(ptr noundef %4714) #11
  %4716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4717 = trunc nuw i8 %4716 to i1
  br i1 %4717, label %4718, label %4722

4718:                                             ; preds = %4712
  %4719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4720 = call i32 @fileno(ptr noundef %4719) #11
  %4721 = call i32 @isatty(i32 noundef %4720) #11
  %.not855 = icmp eq i32 %4721, 0
  br i1 %.not855, label %4722, label %4723

4722:                                             ; preds = %4718, %4712
  br label %4723

4723:                                             ; preds = %4718, %4722
  %.str.5.sink2647 = phi ptr [ @.str.5, %4722 ], [ @.str.2, %4718 ]
  store i32 %4713, ptr %2885, align 4, !tbaa !5
  %4724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4725 = load i32, ptr @test_count, align 4, !tbaa !5
  %4726 = load i32, ptr %2831, align 4, !tbaa !5
  %4727 = call ptr @s2n_strerror(i32 noundef %4726, ptr noundef nonnull @.str.4) #11
  %4728 = load i32, ptr %2831, align 4, !tbaa !5
  %4729 = call ptr @s2n_strerror_debug(i32 noundef %4728, ptr noundef nonnull @.str.4) #11
  %4730 = load i32, ptr %2885, align 4, !tbaa !5
  %4731 = call ptr @strerror(i32 noundef %4730) #11
  %4732 = load i32, ptr %2885, align 4, !tbaa !5
  %4733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4724, ptr noundef nonnull %.str.5.sink2647, i32 noundef %4725, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %4727, ptr noundef %4729, ptr noundef %4731, i32 noundef %4732) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4734:                                             ; preds = %4707
  %4735 = add nsw i32 %4709, 2
  store i32 %4735, ptr @test_count, align 4, !tbaa !5
  %4736 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4708, ptr noundef nonnull @.str.16) #11
  %4737 = icmp eq i32 %4736, -1
  br i1 %4737, label %4738, label %4760

4738:                                             ; preds = %4734
  %4739 = load i32, ptr %2885, align 4, !tbaa !5
  %4740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4741 = call i32 @s2n_print_stacktrace(ptr noundef %4740) #11
  %4742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4743 = trunc nuw i8 %4742 to i1
  br i1 %4743, label %4744, label %4748

4744:                                             ; preds = %4738
  %4745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4746 = call i32 @fileno(ptr noundef %4745) #11
  %4747 = call i32 @isatty(i32 noundef %4746) #11
  %.not854 = icmp eq i32 %4747, 0
  br i1 %.not854, label %4748, label %4749

4748:                                             ; preds = %4744, %4738
  br label %4749

4749:                                             ; preds = %4744, %4748
  %.str.5.sink2656 = phi ptr [ @.str.5, %4748 ], [ @.str.2, %4744 ]
  store i32 %4739, ptr %2885, align 4, !tbaa !5
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = load i32, ptr @test_count, align 4, !tbaa !5
  %4752 = load i32, ptr %2831, align 4, !tbaa !5
  %4753 = call ptr @s2n_strerror(i32 noundef %4752, ptr noundef nonnull @.str.4) #11
  %4754 = load i32, ptr %2831, align 4, !tbaa !5
  %4755 = call ptr @s2n_strerror_debug(i32 noundef %4754, ptr noundef nonnull @.str.4) #11
  %4756 = load i32, ptr %2885, align 4, !tbaa !5
  %4757 = call ptr @strerror(i32 noundef %4756) #11
  %4758 = load i32, ptr %2885, align 4, !tbaa !5
  %4759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4750, ptr noundef nonnull %.str.5.sink2656, i32 noundef %4751, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 423, ptr noundef %4753, ptr noundef %4755, ptr noundef %4757, i32 noundef %4758) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4760:                                             ; preds = %4734
  %4761 = load i32, ptr @test_count, align 4, !tbaa !5
  %4762 = add nsw i32 %4761, 1
  store i32 %4762, ptr @test_count, align 4, !tbaa !5
  %4763 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %4708, i32 noundef 1, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %4764 = call zeroext i1 @s2n_result_is_ok(i32 %4763)
  br i1 %4764, label %4787, label %4765

4765:                                             ; preds = %4760
  %4766 = load i32, ptr %2885, align 4, !tbaa !5
  %4767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4768 = call i32 @s2n_print_stacktrace(ptr noundef %4767) #11
  %4769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4770 = trunc nuw i8 %4769 to i1
  br i1 %4770, label %4771, label %4775

4771:                                             ; preds = %4765
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = call i32 @fileno(ptr noundef %4772) #11
  %4774 = call i32 @isatty(i32 noundef %4773) #11
  %.not803 = icmp eq i32 %4774, 0
  br i1 %.not803, label %4775, label %4776

4775:                                             ; preds = %4771, %4765
  br label %4776

4776:                                             ; preds = %4771, %4775
  %.str.5.sink2665 = phi ptr [ @.str.5, %4775 ], [ @.str.2, %4771 ]
  store i32 %4766, ptr %2885, align 4, !tbaa !5
  %4777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4778 = load i32, ptr @test_count, align 4, !tbaa !5
  %4779 = load i32, ptr %2831, align 4, !tbaa !5
  %4780 = call ptr @s2n_strerror(i32 noundef %4779, ptr noundef nonnull @.str.4) #11
  %4781 = load i32, ptr %2831, align 4, !tbaa !5
  %4782 = call ptr @s2n_strerror_debug(i32 noundef %4781, ptr noundef nonnull @.str.4) #11
  %4783 = load i32, ptr %2885, align 4, !tbaa !5
  %4784 = call ptr @strerror(i32 noundef %4783) #11
  %4785 = load i32, ptr %2885, align 4, !tbaa !5
  %4786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4777, ptr noundef nonnull %.str.5.sink2665, i32 noundef %4778, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 424, ptr noundef %4780, ptr noundef %4782, ptr noundef %4784, i32 noundef %4785) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4787:                                             ; preds = %4760
  %4788 = load i32, ptr @test_count, align 4, !tbaa !5
  %4789 = add nsw i32 %4788, 1
  store i32 %4789, ptr @test_count, align 4, !tbaa !5
  %4790 = getelementptr inbounds i8, ptr %4708, i64 4088
  %4791 = load i32, ptr %4790, align 8, !tbaa !48
  %4792 = icmp eq i32 %4791, 0
  br i1 %4792, label %4815, label %4793

4793:                                             ; preds = %4787
  %4794 = load i32, ptr %2885, align 4, !tbaa !5
  %4795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4796 = call i32 @s2n_print_stacktrace(ptr noundef %4795) #11
  %4797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4798 = trunc nuw i8 %4797 to i1
  br i1 %4798, label %4799, label %4803

4799:                                             ; preds = %4793
  %4800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4801 = call i32 @fileno(ptr noundef %4800) #11
  %4802 = call i32 @isatty(i32 noundef %4801) #11
  %.not804 = icmp eq i32 %4802, 0
  br i1 %.not804, label %4803, label %4804

4803:                                             ; preds = %4799, %4793
  br label %4804

4804:                                             ; preds = %4799, %4803
  %.str.5.sink2674 = phi ptr [ @.str.5, %4803 ], [ @.str.2, %4799 ]
  store i32 %4794, ptr %2885, align 4, !tbaa !5
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = load i32, ptr @test_count, align 4, !tbaa !5
  %4807 = load i32, ptr %2831, align 4, !tbaa !5
  %4808 = call ptr @s2n_strerror(i32 noundef %4807, ptr noundef nonnull @.str.4) #11
  %4809 = load i32, ptr %2831, align 4, !tbaa !5
  %4810 = call ptr @s2n_strerror_debug(i32 noundef %4809, ptr noundef nonnull @.str.4) #11
  %4811 = load i32, ptr %2885, align 4, !tbaa !5
  %4812 = call ptr @strerror(i32 noundef %4811) #11
  %4813 = load i32, ptr %2885, align 4, !tbaa !5
  %4814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4805, ptr noundef nonnull %.str.5.sink2674, i32 noundef %4806, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %4808, ptr noundef %4810, ptr noundef %4812, i32 noundef %4813) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4815:                                             ; preds = %4787
  %4816 = add nsw i32 %4788, 2
  store i32 %4816, ptr @test_count, align 4, !tbaa !5
  %4817 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %4708) #11
  %4818 = icmp eq i32 %4817, -1
  br i1 %4818, label %4819, label %4841

4819:                                             ; preds = %4815
  %4820 = load i32, ptr %2885, align 4, !tbaa !5
  %4821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4822 = call i32 @s2n_print_stacktrace(ptr noundef %4821) #11
  %4823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4824 = trunc nuw i8 %4823 to i1
  br i1 %4824, label %4825, label %4829

4825:                                             ; preds = %4819
  %4826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4827 = call i32 @fileno(ptr noundef %4826) #11
  %4828 = call i32 @isatty(i32 noundef %4827) #11
  %.not853 = icmp eq i32 %4828, 0
  br i1 %.not853, label %4829, label %4830

4829:                                             ; preds = %4825, %4819
  br label %4830

4830:                                             ; preds = %4825, %4829
  %.str.5.sink2683 = phi ptr [ @.str.5, %4829 ], [ @.str.2, %4825 ]
  store i32 %4820, ptr %2885, align 4, !tbaa !5
  %4831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4832 = load i32, ptr @test_count, align 4, !tbaa !5
  %4833 = load i32, ptr %2831, align 4, !tbaa !5
  %4834 = call ptr @s2n_strerror(i32 noundef %4833, ptr noundef nonnull @.str.4) #11
  %4835 = load i32, ptr %2831, align 4, !tbaa !5
  %4836 = call ptr @s2n_strerror_debug(i32 noundef %4835, ptr noundef nonnull @.str.4) #11
  %4837 = load i32, ptr %2885, align 4, !tbaa !5
  %4838 = call ptr @strerror(i32 noundef %4837) #11
  %4839 = load i32, ptr %2885, align 4, !tbaa !5
  %4840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4831, ptr noundef nonnull %.str.5.sink2683, i32 noundef %4832, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 426, ptr noundef %4834, ptr noundef %4836, ptr noundef %4838, i32 noundef %4839) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4841:                                             ; preds = %4815
  %4842 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %4843 = load i32, ptr @test_count, align 4, !tbaa !5
  %4844 = add nsw i32 %4843, 1
  store i32 %4844, ptr @test_count, align 4, !tbaa !5
  %4845 = icmp eq ptr %4842, null
  br i1 %4845, label %4846, label %4868

4846:                                             ; preds = %4841
  %4847 = load i32, ptr %2885, align 4, !tbaa !5
  %4848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4849 = call i32 @s2n_print_stacktrace(ptr noundef %4848) #11
  %4850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4851 = trunc nuw i8 %4850 to i1
  br i1 %4851, label %4852, label %4856

4852:                                             ; preds = %4846
  %4853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4854 = call i32 @fileno(ptr noundef %4853) #11
  %4855 = call i32 @isatty(i32 noundef %4854) #11
  %.not852 = icmp eq i32 %4855, 0
  br i1 %.not852, label %4856, label %4857

4856:                                             ; preds = %4852, %4846
  br label %4857

4857:                                             ; preds = %4852, %4856
  %.str.5.sink2692 = phi ptr [ @.str.5, %4856 ], [ @.str.2, %4852 ]
  store i32 %4847, ptr %2885, align 4, !tbaa !5
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = load i32, ptr @test_count, align 4, !tbaa !5
  %4860 = load i32, ptr %2831, align 4, !tbaa !5
  %4861 = call ptr @s2n_strerror(i32 noundef %4860, ptr noundef nonnull @.str.4) #11
  %4862 = load i32, ptr %2831, align 4, !tbaa !5
  %4863 = call ptr @s2n_strerror_debug(i32 noundef %4862, ptr noundef nonnull @.str.4) #11
  %4864 = load i32, ptr %2885, align 4, !tbaa !5
  %4865 = call ptr @strerror(i32 noundef %4864) #11
  %4866 = load i32, ptr %2885, align 4, !tbaa !5
  %4867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4858, ptr noundef nonnull %.str.5.sink2692, i32 noundef %4859, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %4861, ptr noundef %4863, ptr noundef %4865, i32 noundef %4866) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4868:                                             ; preds = %4841
  %4869 = add nsw i32 %4843, 2
  store i32 %4869, ptr @test_count, align 4, !tbaa !5
  %4870 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4842, ptr noundef nonnull @.str.16) #11
  %4871 = icmp eq i32 %4870, -1
  br i1 %4871, label %4872, label %4894

4872:                                             ; preds = %4868
  %4873 = load i32, ptr %2885, align 4, !tbaa !5
  %4874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4875 = call i32 @s2n_print_stacktrace(ptr noundef %4874) #11
  %4876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4877 = trunc nuw i8 %4876 to i1
  br i1 %4877, label %4878, label %4882

4878:                                             ; preds = %4872
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = call i32 @fileno(ptr noundef %4879) #11
  %4881 = call i32 @isatty(i32 noundef %4880) #11
  %.not851 = icmp eq i32 %4881, 0
  br i1 %.not851, label %4882, label %4883

4882:                                             ; preds = %4878, %4872
  br label %4883

4883:                                             ; preds = %4878, %4882
  %.str.5.sink2701 = phi ptr [ @.str.5, %4882 ], [ @.str.2, %4878 ]
  store i32 %4873, ptr %2885, align 4, !tbaa !5
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = load i32, ptr @test_count, align 4, !tbaa !5
  %4886 = load i32, ptr %2831, align 4, !tbaa !5
  %4887 = call ptr @s2n_strerror(i32 noundef %4886, ptr noundef nonnull @.str.4) #11
  %4888 = load i32, ptr %2831, align 4, !tbaa !5
  %4889 = call ptr @s2n_strerror_debug(i32 noundef %4888, ptr noundef nonnull @.str.4) #11
  %4890 = load i32, ptr %2885, align 4, !tbaa !5
  %4891 = call ptr @strerror(i32 noundef %4890) #11
  %4892 = load i32, ptr %2885, align 4, !tbaa !5
  %4893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4884, ptr noundef nonnull %.str.5.sink2701, i32 noundef %4885, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 430, ptr noundef %4887, ptr noundef %4889, ptr noundef %4891, i32 noundef %4892) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4894:                                             ; preds = %4868
  %4895 = load i32, ptr @test_count, align 4, !tbaa !5
  %4896 = add nsw i32 %4895, 1
  store i32 %4896, ptr @test_count, align 4, !tbaa !5
  %4897 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %4842, i32 noundef 0, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %4898 = call zeroext i1 @s2n_result_is_ok(i32 %4897)
  br i1 %4898, label %4921, label %4899

4899:                                             ; preds = %4894
  %4900 = load i32, ptr %2885, align 4, !tbaa !5
  %4901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4902 = call i32 @s2n_print_stacktrace(ptr noundef %4901) #11
  %4903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4904 = trunc nuw i8 %4903 to i1
  br i1 %4904, label %4905, label %4909

4905:                                             ; preds = %4899
  %4906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4907 = call i32 @fileno(ptr noundef %4906) #11
  %4908 = call i32 @isatty(i32 noundef %4907) #11
  %.not805 = icmp eq i32 %4908, 0
  br i1 %.not805, label %4909, label %4910

4909:                                             ; preds = %4905, %4899
  br label %4910

4910:                                             ; preds = %4905, %4909
  %.str.5.sink2710 = phi ptr [ @.str.5, %4909 ], [ @.str.2, %4905 ]
  store i32 %4900, ptr %2885, align 4, !tbaa !5
  %4911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4912 = load i32, ptr @test_count, align 4, !tbaa !5
  %4913 = load i32, ptr %2831, align 4, !tbaa !5
  %4914 = call ptr @s2n_strerror(i32 noundef %4913, ptr noundef nonnull @.str.4) #11
  %4915 = load i32, ptr %2831, align 4, !tbaa !5
  %4916 = call ptr @s2n_strerror_debug(i32 noundef %4915, ptr noundef nonnull @.str.4) #11
  %4917 = load i32, ptr %2885, align 4, !tbaa !5
  %4918 = call ptr @strerror(i32 noundef %4917) #11
  %4919 = load i32, ptr %2885, align 4, !tbaa !5
  %4920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4911, ptr noundef nonnull %.str.5.sink2710, i32 noundef %4912, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 431, ptr noundef %4914, ptr noundef %4916, ptr noundef %4918, i32 noundef %4919) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4921:                                             ; preds = %4894
  %4922 = load i32, ptr @test_count, align 4, !tbaa !5
  %4923 = add nsw i32 %4922, 1
  store i32 %4923, ptr @test_count, align 4, !tbaa !5
  %4924 = getelementptr inbounds i8, ptr %4842, i64 4088
  %4925 = load i32, ptr %4924, align 8, !tbaa !48
  %4926 = icmp eq i32 %4925, 0
  br i1 %4926, label %4949, label %4927

4927:                                             ; preds = %4921
  %4928 = load i32, ptr %2885, align 4, !tbaa !5
  %4929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4930 = call i32 @s2n_print_stacktrace(ptr noundef %4929) #11
  %4931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4932 = trunc nuw i8 %4931 to i1
  br i1 %4932, label %4933, label %4937

4933:                                             ; preds = %4927
  %4934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4935 = call i32 @fileno(ptr noundef %4934) #11
  %4936 = call i32 @isatty(i32 noundef %4935) #11
  %.not806 = icmp eq i32 %4936, 0
  br i1 %.not806, label %4937, label %4938

4937:                                             ; preds = %4933, %4927
  br label %4938

4938:                                             ; preds = %4933, %4937
  %.str.5.sink2719 = phi ptr [ @.str.5, %4937 ], [ @.str.2, %4933 ]
  store i32 %4928, ptr %2885, align 4, !tbaa !5
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = load i32, ptr @test_count, align 4, !tbaa !5
  %4941 = load i32, ptr %2831, align 4, !tbaa !5
  %4942 = call ptr @s2n_strerror(i32 noundef %4941, ptr noundef nonnull @.str.4) #11
  %4943 = load i32, ptr %2831, align 4, !tbaa !5
  %4944 = call ptr @s2n_strerror_debug(i32 noundef %4943, ptr noundef nonnull @.str.4) #11
  %4945 = load i32, ptr %2885, align 4, !tbaa !5
  %4946 = call ptr @strerror(i32 noundef %4945) #11
  %4947 = load i32, ptr %2885, align 4, !tbaa !5
  %4948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4939, ptr noundef nonnull %.str.5.sink2719, i32 noundef %4940, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 432, ptr noundef %4942, ptr noundef %4944, ptr noundef %4946, i32 noundef %4947) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4949:                                             ; preds = %4921
  %4950 = add nsw i32 %4922, 2
  store i32 %4950, ptr @test_count, align 4, !tbaa !5
  %4951 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %4842) #11
  %4952 = icmp eq i32 %4951, -1
  br i1 %4952, label %4953, label %4975

4953:                                             ; preds = %4949
  %4954 = load i32, ptr %2885, align 4, !tbaa !5
  %4955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4956 = call i32 @s2n_print_stacktrace(ptr noundef %4955) #11
  %4957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4958 = trunc nuw i8 %4957 to i1
  br i1 %4958, label %4959, label %4963

4959:                                             ; preds = %4953
  %4960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4961 = call i32 @fileno(ptr noundef %4960) #11
  %4962 = call i32 @isatty(i32 noundef %4961) #11
  %.not850 = icmp eq i32 %4962, 0
  br i1 %.not850, label %4963, label %4964

4963:                                             ; preds = %4959, %4953
  br label %4964

4964:                                             ; preds = %4959, %4963
  %.str.5.sink2728 = phi ptr [ @.str.5, %4963 ], [ @.str.2, %4959 ]
  store i32 %4954, ptr %2885, align 4, !tbaa !5
  %4965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4966 = load i32, ptr @test_count, align 4, !tbaa !5
  %4967 = load i32, ptr %2831, align 4, !tbaa !5
  %4968 = call ptr @s2n_strerror(i32 noundef %4967, ptr noundef nonnull @.str.4) #11
  %4969 = load i32, ptr %2831, align 4, !tbaa !5
  %4970 = call ptr @s2n_strerror_debug(i32 noundef %4969, ptr noundef nonnull @.str.4) #11
  %4971 = load i32, ptr %2885, align 4, !tbaa !5
  %4972 = call ptr @strerror(i32 noundef %4971) #11
  %4973 = load i32, ptr %2885, align 4, !tbaa !5
  %4974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4965, ptr noundef nonnull %.str.5.sink2728, i32 noundef %4966, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 433, ptr noundef %4968, ptr noundef %4970, ptr noundef %4972, i32 noundef %4973) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4975:                                             ; preds = %4949
  %4976 = load i32, ptr @test_count, align 4, !tbaa !5
  %4977 = add nsw i32 %4976, 1
  store i32 %4977, ptr @test_count, align 4, !tbaa !5
  %4978 = call i32 @s2n_client_hello_send(ptr noundef nonnull %4708) #11
  %4979 = icmp eq i32 %4978, -1
  br i1 %4979, label %4980, label %5002

4980:                                             ; preds = %4975
  %4981 = load i32, ptr %2885, align 4, !tbaa !5
  %4982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4983 = call i32 @s2n_print_stacktrace(ptr noundef %4982) #11
  %4984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4985 = trunc nuw i8 %4984 to i1
  br i1 %4985, label %4986, label %4990

4986:                                             ; preds = %4980
  %4987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4988 = call i32 @fileno(ptr noundef %4987) #11
  %4989 = call i32 @isatty(i32 noundef %4988) #11
  %.not849 = icmp eq i32 %4989, 0
  br i1 %.not849, label %4990, label %4991

4990:                                             ; preds = %4986, %4980
  br label %4991

4991:                                             ; preds = %4986, %4990
  %.str.5.sink2737 = phi ptr [ @.str.5, %4990 ], [ @.str.2, %4986 ]
  store i32 %4981, ptr %2885, align 4, !tbaa !5
  %4992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4993 = load i32, ptr @test_count, align 4, !tbaa !5
  %4994 = load i32, ptr %2831, align 4, !tbaa !5
  %4995 = call ptr @s2n_strerror(i32 noundef %4994, ptr noundef nonnull @.str.4) #11
  %4996 = load i32, ptr %2831, align 4, !tbaa !5
  %4997 = call ptr @s2n_strerror_debug(i32 noundef %4996, ptr noundef nonnull @.str.4) #11
  %4998 = load i32, ptr %2885, align 4, !tbaa !5
  %4999 = call ptr @strerror(i32 noundef %4998) #11
  %5000 = load i32, ptr %2885, align 4, !tbaa !5
  %5001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4992, ptr noundef nonnull %.str.5.sink2737, i32 noundef %4993, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %4995, ptr noundef %4997, ptr noundef %4999, i32 noundef %5000) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5002:                                             ; preds = %4975
  %5003 = load i32, ptr @test_count, align 4, !tbaa !5
  %5004 = add nsw i32 %5003, 1
  store i32 %5004, ptr @test_count, align 4, !tbaa !5
  %5005 = getelementptr inbounds i8, ptr %4708, i64 2016
  %5006 = getelementptr inbounds i8, ptr %4842, i64 2016
  %5007 = getelementptr inbounds i8, ptr %4708, i64 2044
  %5008 = load i32, ptr %5007, align 4, !tbaa !51
  %5009 = getelementptr inbounds i8, ptr %4708, i64 2040
  %5010 = load i32, ptr %5009, align 8, !tbaa !52
  %5011 = sub i32 %5008, %5010
  %5012 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %5005, ptr noundef nonnull %5006, i32 noundef %5011) #11
  %5013 = icmp eq i32 %5012, -1
  br i1 %5013, label %5014, label %5036

5014:                                             ; preds = %5002
  %5015 = load i32, ptr %2885, align 4, !tbaa !5
  %5016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5017 = call i32 @s2n_print_stacktrace(ptr noundef %5016) #11
  %5018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5019 = trunc nuw i8 %5018 to i1
  br i1 %5019, label %5020, label %5024

5020:                                             ; preds = %5014
  %5021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5022 = call i32 @fileno(ptr noundef %5021) #11
  %5023 = call i32 @isatty(i32 noundef %5022) #11
  %.not848 = icmp eq i32 %5023, 0
  br i1 %.not848, label %5024, label %5025

5024:                                             ; preds = %5020, %5014
  br label %5025

5025:                                             ; preds = %5020, %5024
  %.str.5.sink2746 = phi ptr [ @.str.5, %5024 ], [ @.str.2, %5020 ]
  store i32 %5015, ptr %2885, align 4, !tbaa !5
  %5026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5027 = load i32, ptr @test_count, align 4, !tbaa !5
  %5028 = load i32, ptr %2831, align 4, !tbaa !5
  %5029 = call ptr @s2n_strerror(i32 noundef %5028, ptr noundef nonnull @.str.4) #11
  %5030 = load i32, ptr %2831, align 4, !tbaa !5
  %5031 = call ptr @s2n_strerror_debug(i32 noundef %5030, ptr noundef nonnull @.str.4) #11
  %5032 = load i32, ptr %2885, align 4, !tbaa !5
  %5033 = call ptr @strerror(i32 noundef %5032) #11
  %5034 = load i32, ptr %2885, align 4, !tbaa !5
  %5035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5026, ptr noundef nonnull %.str.5.sink2746, i32 noundef %5027, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 437, ptr noundef %5029, ptr noundef %5031, ptr noundef %5033, i32 noundef %5034) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5036:                                             ; preds = %5002
  %5037 = load i32, ptr @test_count, align 4, !tbaa !5
  %5038 = add nsw i32 %5037, 1
  store i32 %5038, ptr @test_count, align 4, !tbaa !5
  %5039 = call i32 @s2n_establish_session(ptr noundef nonnull %4842) #11
  %5040 = icmp eq i32 %5039, -1
  br i1 %5040, label %5041, label %5063

5041:                                             ; preds = %5036
  %5042 = load i32, ptr %2885, align 4, !tbaa !5
  %5043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5044 = call i32 @s2n_print_stacktrace(ptr noundef %5043) #11
  %5045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5046 = trunc nuw i8 %5045 to i1
  br i1 %5046, label %5047, label %5051

5047:                                             ; preds = %5041
  %5048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5049 = call i32 @fileno(ptr noundef %5048) #11
  %5050 = call i32 @isatty(i32 noundef %5049) #11
  %.not847 = icmp eq i32 %5050, 0
  br i1 %.not847, label %5051, label %5052

5051:                                             ; preds = %5047, %5041
  br label %5052

5052:                                             ; preds = %5047, %5051
  %.str.5.sink2755 = phi ptr [ @.str.5, %5051 ], [ @.str.2, %5047 ]
  store i32 %5042, ptr %2885, align 4, !tbaa !5
  %5053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5054 = load i32, ptr @test_count, align 4, !tbaa !5
  %5055 = load i32, ptr %2831, align 4, !tbaa !5
  %5056 = call ptr @s2n_strerror(i32 noundef %5055, ptr noundef nonnull @.str.4) #11
  %5057 = load i32, ptr %2831, align 4, !tbaa !5
  %5058 = call ptr @s2n_strerror_debug(i32 noundef %5057, ptr noundef nonnull @.str.4) #11
  %5059 = load i32, ptr %2885, align 4, !tbaa !5
  %5060 = call ptr @strerror(i32 noundef %5059) #11
  %5061 = load i32, ptr %2885, align 4, !tbaa !5
  %5062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5053, ptr noundef nonnull %.str.5.sink2755, i32 noundef %5054, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 438, ptr noundef %5056, ptr noundef %5058, ptr noundef %5060, i32 noundef %5061) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5063:                                             ; preds = %5036
  %5064 = load i32, ptr @test_count, align 4, !tbaa !5
  %5065 = add nsw i32 %5064, 1
  store i32 %5065, ptr @test_count, align 4, !tbaa !5
  %5066 = load i32, ptr %4790, align 8, !tbaa !48
  %5067 = icmp eq i32 %5066, 1
  br i1 %5067, label %5090, label %5068

5068:                                             ; preds = %5063
  %5069 = load i32, ptr %2885, align 4, !tbaa !5
  %5070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5071 = call i32 @s2n_print_stacktrace(ptr noundef %5070) #11
  %5072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5073 = trunc nuw i8 %5072 to i1
  br i1 %5073, label %5074, label %5078

5074:                                             ; preds = %5068
  %5075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5076 = call i32 @fileno(ptr noundef %5075) #11
  %5077 = call i32 @isatty(i32 noundef %5076) #11
  %.not807 = icmp eq i32 %5077, 0
  br i1 %.not807, label %5078, label %5079

5078:                                             ; preds = %5074, %5068
  br label %5079

5079:                                             ; preds = %5074, %5078
  %.str.5.sink2764 = phi ptr [ @.str.5, %5078 ], [ @.str.2, %5074 ]
  store i32 %5069, ptr %2885, align 4, !tbaa !5
  %5080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5081 = load i32, ptr @test_count, align 4, !tbaa !5
  %5082 = load i32, ptr %2831, align 4, !tbaa !5
  %5083 = call ptr @s2n_strerror(i32 noundef %5082, ptr noundef nonnull @.str.4) #11
  %5084 = load i32, ptr %2831, align 4, !tbaa !5
  %5085 = call ptr @s2n_strerror_debug(i32 noundef %5084, ptr noundef nonnull @.str.4) #11
  %5086 = load i32, ptr %2885, align 4, !tbaa !5
  %5087 = call ptr @strerror(i32 noundef %5086) #11
  %5088 = load i32, ptr %2885, align 4, !tbaa !5
  %5089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5080, ptr noundef nonnull %.str.5.sink2764, i32 noundef %5081, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %5083, ptr noundef %5085, ptr noundef %5087, i32 noundef %5088) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5090:                                             ; preds = %5063
  %5091 = add nsw i32 %5064, 2
  store i32 %5091, ptr @test_count, align 4, !tbaa !5
  %5092 = call i32 @s2n_set_hello_retry_required(ptr noundef nonnull %4842) #11
  %5093 = icmp eq i32 %5092, -1
  br i1 %5093, label %5094, label %5116

5094:                                             ; preds = %5090
  %5095 = load i32, ptr %2885, align 4, !tbaa !5
  %5096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5097 = call i32 @s2n_print_stacktrace(ptr noundef %5096) #11
  %5098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5099 = trunc nuw i8 %5098 to i1
  br i1 %5099, label %5100, label %5104

5100:                                             ; preds = %5094
  %5101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5102 = call i32 @fileno(ptr noundef %5101) #11
  %5103 = call i32 @isatty(i32 noundef %5102) #11
  %.not846 = icmp eq i32 %5103, 0
  br i1 %.not846, label %5104, label %5105

5104:                                             ; preds = %5100, %5094
  br label %5105

5105:                                             ; preds = %5100, %5104
  %.str.5.sink2773 = phi ptr [ @.str.5, %5104 ], [ @.str.2, %5100 ]
  store i32 %5095, ptr %2885, align 4, !tbaa !5
  %5106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5107 = load i32, ptr @test_count, align 4, !tbaa !5
  %5108 = load i32, ptr %2831, align 4, !tbaa !5
  %5109 = call ptr @s2n_strerror(i32 noundef %5108, ptr noundef nonnull @.str.4) #11
  %5110 = load i32, ptr %2831, align 4, !tbaa !5
  %5111 = call ptr @s2n_strerror_debug(i32 noundef %5110, ptr noundef nonnull @.str.4) #11
  %5112 = load i32, ptr %2885, align 4, !tbaa !5
  %5113 = call ptr @strerror(i32 noundef %5112) #11
  %5114 = load i32, ptr %2885, align 4, !tbaa !5
  %5115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5106, ptr noundef nonnull %.str.5.sink2773, i32 noundef %5107, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %5109, ptr noundef %5111, ptr noundef %5113, i32 noundef %5114) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5116:                                             ; preds = %5090
  %5117 = getelementptr inbounds i8, ptr %4842, i64 2176
  store i32 2, ptr %5117, align 8, !tbaa !49
  %5118 = getelementptr inbounds i8, ptr %4708, i64 2176
  store i32 2, ptr %5118, align 8, !tbaa !49
  %5119 = getelementptr inbounds i8, ptr %4708, i64 704
  store ptr @s2n_ecc_curve_secp521r1, ptr %5119, align 8, !tbaa !53
  %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 i32 @s2n_server_hello_retry_send(ptr noundef nonnull %4842) #11
  %5123 = icmp eq i32 %5122, -1
  br i1 %5123, label %5124, label %5146

5124:                                             ; preds = %5116
  %5125 = load i32, ptr %2885, align 4, !tbaa !5
  %5126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5127 = call i32 @s2n_print_stacktrace(ptr noundef %5126) #11
  %5128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5129 = trunc nuw i8 %5128 to i1
  br i1 %5129, label %5130, label %5134

5130:                                             ; preds = %5124
  %5131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5132 = call i32 @fileno(ptr noundef %5131) #11
  %5133 = call i32 @isatty(i32 noundef %5132) #11
  %.not845 = icmp eq i32 %5133, 0
  br i1 %.not845, label %5134, label %5135

5134:                                             ; preds = %5130, %5124
  br label %5135

5135:                                             ; preds = %5130, %5134
  %.str.5.sink2782 = phi ptr [ @.str.5, %5134 ], [ @.str.2, %5130 ]
  store i32 %5125, ptr %2885, align 4, !tbaa !5
  %5136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5137 = load i32, ptr @test_count, align 4, !tbaa !5
  %5138 = load i32, ptr %2831, align 4, !tbaa !5
  %5139 = call ptr @s2n_strerror(i32 noundef %5138, ptr noundef nonnull @.str.4) #11
  %5140 = load i32, ptr %2831, align 4, !tbaa !5
  %5141 = call ptr @s2n_strerror_debug(i32 noundef %5140, ptr noundef nonnull @.str.4) #11
  %5142 = load i32, ptr %2885, align 4, !tbaa !5
  %5143 = call ptr @strerror(i32 noundef %5142) #11
  %5144 = load i32, ptr %2885, align 4, !tbaa !5
  %5145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5136, ptr noundef nonnull %.str.5.sink2782, i32 noundef %5137, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %5139, ptr noundef %5141, ptr noundef %5143, i32 noundef %5144) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5146:                                             ; preds = %5116
  %5147 = load i32, ptr @test_count, align 4, !tbaa !5
  %5148 = add nsw i32 %5147, 1
  store i32 %5148, ptr @test_count, align 4, !tbaa !5
  %5149 = getelementptr inbounds i8, ptr %4842, i64 2044
  %5150 = load i32, ptr %5149, align 4, !tbaa !51
  %5151 = getelementptr inbounds i8, ptr %4842, i64 2040
  %5152 = load i32, ptr %5151, align 8, !tbaa !52
  %5153 = sub i32 %5150, %5152
  %5154 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %5006, ptr noundef nonnull %5005, i32 noundef %5153) #11
  %5155 = icmp eq i32 %5154, -1
  br i1 %5155, label %5156, label %5178

5156:                                             ; preds = %5146
  %5157 = load i32, ptr %2885, align 4, !tbaa !5
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = call i32 @s2n_print_stacktrace(ptr noundef %5158) #11
  %5160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5161 = trunc nuw i8 %5160 to i1
  br i1 %5161, label %5162, label %5166

5162:                                             ; preds = %5156
  %5163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5164 = call i32 @fileno(ptr noundef %5163) #11
  %5165 = call i32 @isatty(i32 noundef %5164) #11
  %.not844 = icmp eq i32 %5165, 0
  br i1 %.not844, label %5166, label %5167

5166:                                             ; preds = %5162, %5156
  br label %5167

5167:                                             ; preds = %5162, %5166
  %.str.5.sink2791 = phi ptr [ @.str.5, %5166 ], [ @.str.2, %5162 ]
  store i32 %5157, ptr %2885, align 4, !tbaa !5
  %5168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5169 = load i32, ptr @test_count, align 4, !tbaa !5
  %5170 = load i32, ptr %2831, align 4, !tbaa !5
  %5171 = call ptr @s2n_strerror(i32 noundef %5170, ptr noundef nonnull @.str.4) #11
  %5172 = load i32, ptr %2831, align 4, !tbaa !5
  %5173 = call ptr @s2n_strerror_debug(i32 noundef %5172, ptr noundef nonnull @.str.4) #11
  %5174 = load i32, ptr %2885, align 4, !tbaa !5
  %5175 = call ptr @strerror(i32 noundef %5174) #11
  %5176 = load i32, ptr %2885, align 4, !tbaa !5
  %5177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5168, ptr noundef nonnull %.str.5.sink2791, i32 noundef %5169, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 453, ptr noundef %5171, ptr noundef %5173, ptr noundef %5175, i32 noundef %5176) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5178:                                             ; preds = %5146
  %5179 = load i32, ptr @test_count, align 4, !tbaa !5
  %5180 = add nsw i32 %5179, 1
  store i32 %5180, ptr @test_count, align 4, !tbaa !5
  %5181 = call i32 @s2n_server_hello_recv(ptr noundef nonnull %4708) #11
  %5182 = icmp eq i32 %5181, -1
  br i1 %5182, label %5183, label %5205

5183:                                             ; preds = %5178
  %5184 = load i32, ptr %2885, align 4, !tbaa !5
  %5185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5186 = call i32 @s2n_print_stacktrace(ptr noundef %5185) #11
  %5187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5188 = trunc nuw i8 %5187 to i1
  br i1 %5188, label %5189, label %5193

5189:                                             ; preds = %5183
  %5190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5191 = call i32 @fileno(ptr noundef %5190) #11
  %5192 = call i32 @isatty(i32 noundef %5191) #11
  %.not843 = icmp eq i32 %5192, 0
  br i1 %.not843, label %5193, label %5194

5193:                                             ; preds = %5189, %5183
  br label %5194

5194:                                             ; preds = %5189, %5193
  %.str.5.sink2800 = phi ptr [ @.str.5, %5193 ], [ @.str.2, %5189 ]
  store i32 %5184, ptr %2885, align 4, !tbaa !5
  %5195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5196 = load i32, ptr @test_count, align 4, !tbaa !5
  %5197 = load i32, ptr %2831, align 4, !tbaa !5
  %5198 = call ptr @s2n_strerror(i32 noundef %5197, ptr noundef nonnull @.str.4) #11
  %5199 = load i32, ptr %2831, align 4, !tbaa !5
  %5200 = call ptr @s2n_strerror_debug(i32 noundef %5199, ptr noundef nonnull @.str.4) #11
  %5201 = load i32, ptr %2885, align 4, !tbaa !5
  %5202 = call ptr @strerror(i32 noundef %5201) #11
  %5203 = load i32, ptr %2885, align 4, !tbaa !5
  %5204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5195, ptr noundef nonnull %.str.5.sink2800, i32 noundef %5196, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %5198, ptr noundef %5200, ptr noundef %5202, i32 noundef %5203) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5205:                                             ; preds = %5178
  %5206 = load i32, ptr @test_count, align 4, !tbaa !5
  %5207 = add nsw i32 %5206, 1
  store i32 %5207, ptr @test_count, align 4, !tbaa !5
  %5208 = load i32, ptr %4790, align 8, !tbaa !48
  %5209 = icmp eq i32 %5208, 4
  br i1 %5209, label %5232, label %5210

5210:                                             ; preds = %5205
  %5211 = load i32, ptr %2885, align 4, !tbaa !5
  %5212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5213 = call i32 @s2n_print_stacktrace(ptr noundef %5212) #11
  %5214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5215 = trunc nuw i8 %5214 to i1
  br i1 %5215, label %5216, label %5220

5216:                                             ; preds = %5210
  %5217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5218 = call i32 @fileno(ptr noundef %5217) #11
  %5219 = call i32 @isatty(i32 noundef %5218) #11
  %.not808 = icmp eq i32 %5219, 0
  br i1 %.not808, label %5220, label %5221

5220:                                             ; preds = %5216, %5210
  br label %5221

5221:                                             ; preds = %5216, %5220
  %.str.5.sink2809 = phi ptr [ @.str.5, %5220 ], [ @.str.2, %5216 ]
  store i32 %5211, ptr %2885, align 4, !tbaa !5
  %5222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5223 = load i32, ptr @test_count, align 4, !tbaa !5
  %5224 = load i32, ptr %2831, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror(i32 noundef %5224, ptr noundef nonnull @.str.4) #11
  %5226 = load i32, ptr %2831, align 4, !tbaa !5
  %5227 = call ptr @s2n_strerror_debug(i32 noundef %5226, ptr noundef nonnull @.str.4) #11
  %5228 = load i32, ptr %2885, align 4, !tbaa !5
  %5229 = call ptr @strerror(i32 noundef %5228) #11
  %5230 = load i32, ptr %2885, align 4, !tbaa !5
  %5231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5222, ptr noundef nonnull %.str.5.sink2809, i32 noundef %5223, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %5225, ptr noundef %5227, ptr noundef %5229, i32 noundef %5230) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5232:                                             ; preds = %5205
  %5233 = add nsw i32 %5206, 2
  store i32 %5233, ptr @test_count, align 4, !tbaa !5
  %5234 = call i32 @s2n_client_hello_send(ptr noundef nonnull %4708) #11
  %5235 = icmp eq i32 %5234, -1
  br i1 %5235, label %5236, label %5258

5236:                                             ; preds = %5232
  %5237 = load i32, ptr %2885, align 4, !tbaa !5
  %5238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5239 = call i32 @s2n_print_stacktrace(ptr noundef %5238) #11
  %5240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5241 = trunc nuw i8 %5240 to i1
  br i1 %5241, label %5242, label %5246

5242:                                             ; preds = %5236
  %5243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5244 = call i32 @fileno(ptr noundef %5243) #11
  %5245 = call i32 @isatty(i32 noundef %5244) #11
  %.not842 = icmp eq i32 %5245, 0
  br i1 %.not842, label %5246, label %5247

5246:                                             ; preds = %5242, %5236
  br label %5247

5247:                                             ; preds = %5242, %5246
  %.str.5.sink2818 = phi ptr [ @.str.5, %5246 ], [ @.str.2, %5242 ]
  store i32 %5237, ptr %2885, align 4, !tbaa !5
  %5248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5249 = load i32, ptr @test_count, align 4, !tbaa !5
  %5250 = load i32, ptr %2831, align 4, !tbaa !5
  %5251 = call ptr @s2n_strerror(i32 noundef %5250, ptr noundef nonnull @.str.4) #11
  %5252 = load i32, ptr %2831, align 4, !tbaa !5
  %5253 = call ptr @s2n_strerror_debug(i32 noundef %5252, ptr noundef nonnull @.str.4) #11
  %5254 = load i32, ptr %2885, align 4, !tbaa !5
  %5255 = call ptr @strerror(i32 noundef %5254) #11
  %5256 = load i32, ptr %2885, align 4, !tbaa !5
  %5257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5248, ptr noundef nonnull %.str.5.sink2818, i32 noundef %5249, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %5251, ptr noundef %5253, ptr noundef %5255, i32 noundef %5256) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5258:                                             ; preds = %5232
  %5259 = load i32, ptr @test_count, align 4, !tbaa !5
  %5260 = add nsw i32 %5259, 1
  store i32 %5260, ptr @test_count, align 4, !tbaa !5
  %5261 = load i32, ptr %4790, align 8, !tbaa !48
  %5262 = icmp eq i32 %5261, 4
  br i1 %5262, label %5285, label %5263

5263:                                             ; preds = %5258
  %5264 = load i32, ptr %2885, align 4, !tbaa !5
  %5265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5266 = call i32 @s2n_print_stacktrace(ptr noundef %5265) #11
  %5267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5268 = trunc nuw i8 %5267 to i1
  br i1 %5268, label %5269, label %5273

5269:                                             ; preds = %5263
  %5270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5271 = call i32 @fileno(ptr noundef %5270) #11
  %5272 = call i32 @isatty(i32 noundef %5271) #11
  %.not809 = icmp eq i32 %5272, 0
  br i1 %.not809, label %5273, label %5274

5273:                                             ; preds = %5269, %5263
  br label %5274

5274:                                             ; preds = %5269, %5273
  %.str.5.sink2827 = phi ptr [ @.str.5, %5273 ], [ @.str.2, %5269 ]
  store i32 %5264, ptr %2885, align 4, !tbaa !5
  %5275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5276 = load i32, ptr @test_count, align 4, !tbaa !5
  %5277 = load i32, ptr %2831, align 4, !tbaa !5
  %5278 = call ptr @s2n_strerror(i32 noundef %5277, ptr noundef nonnull @.str.4) #11
  %5279 = load i32, ptr %2831, align 4, !tbaa !5
  %5280 = call ptr @s2n_strerror_debug(i32 noundef %5279, ptr noundef nonnull @.str.4) #11
  %5281 = load i32, ptr %2885, align 4, !tbaa !5
  %5282 = call ptr @strerror(i32 noundef %5281) #11
  %5283 = load i32, ptr %2885, align 4, !tbaa !5
  %5284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5275, ptr noundef nonnull %.str.5.sink2827, i32 noundef %5276, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 458, ptr noundef %5278, ptr noundef %5280, ptr noundef %5282, i32 noundef %5283) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5285:                                             ; preds = %5258
  %5286 = add nsw i32 %5259, 2
  store i32 %5286, ptr @test_count, align 4, !tbaa !5
  %5287 = call i32 @s2n_connection_free(ptr noundef nonnull %4708) #11
  %5288 = icmp eq i32 %5287, -1
  br i1 %5288, label %5289, label %5311

5289:                                             ; preds = %5285
  %5290 = load i32, ptr %2885, align 4, !tbaa !5
  %5291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5292 = call i32 @s2n_print_stacktrace(ptr noundef %5291) #11
  %5293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5294 = trunc nuw i8 %5293 to i1
  br i1 %5294, label %5295, label %5299

5295:                                             ; preds = %5289
  %5296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5297 = call i32 @fileno(ptr noundef %5296) #11
  %5298 = call i32 @isatty(i32 noundef %5297) #11
  %.not841 = icmp eq i32 %5298, 0
  br i1 %.not841, label %5299, label %5300

5299:                                             ; preds = %5295, %5289
  br label %5300

5300:                                             ; preds = %5295, %5299
  %.str.5.sink2836 = phi ptr [ @.str.5, %5299 ], [ @.str.2, %5295 ]
  store i32 %5290, ptr %2885, align 4, !tbaa !5
  %5301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5302 = load i32, ptr @test_count, align 4, !tbaa !5
  %5303 = load i32, ptr %2831, align 4, !tbaa !5
  %5304 = call ptr @s2n_strerror(i32 noundef %5303, ptr noundef nonnull @.str.4) #11
  %5305 = load i32, ptr %2831, align 4, !tbaa !5
  %5306 = call ptr @s2n_strerror_debug(i32 noundef %5305, ptr noundef nonnull @.str.4) #11
  %5307 = load i32, ptr %2885, align 4, !tbaa !5
  %5308 = call ptr @strerror(i32 noundef %5307) #11
  %5309 = load i32, ptr %2885, align 4, !tbaa !5
  %5310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5301, ptr noundef nonnull %.str.5.sink2836, i32 noundef %5302, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %5304, ptr noundef %5306, ptr noundef %5308, i32 noundef %5309) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5311:                                             ; preds = %5285
  %5312 = load i32, ptr @test_count, align 4, !tbaa !5
  %5313 = add nsw i32 %5312, 1
  store i32 %5313, ptr @test_count, align 4, !tbaa !5
  %5314 = call i32 @s2n_connection_free(ptr noundef nonnull %4842) #11
  %5315 = icmp eq i32 %5314, -1
  br i1 %5315, label %5316, label %5338

5316:                                             ; preds = %5311
  %5317 = load i32, ptr %2885, align 4, !tbaa !5
  %5318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5319 = call i32 @s2n_print_stacktrace(ptr noundef %5318) #11
  %5320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5321 = trunc nuw i8 %5320 to i1
  br i1 %5321, label %5322, label %5326

5322:                                             ; preds = %5316
  %5323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5324 = call i32 @fileno(ptr noundef %5323) #11
  %5325 = call i32 @isatty(i32 noundef %5324) #11
  %.not840 = icmp eq i32 %5325, 0
  br i1 %.not840, label %5326, label %5327

5326:                                             ; preds = %5322, %5316
  br label %5327

5327:                                             ; preds = %5322, %5326
  %.str.5.sink2845 = phi ptr [ @.str.5, %5326 ], [ @.str.2, %5322 ]
  store i32 %5317, ptr %2885, align 4, !tbaa !5
  %5328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5329 = load i32, ptr @test_count, align 4, !tbaa !5
  %5330 = load i32, ptr %2831, align 4, !tbaa !5
  %5331 = call ptr @s2n_strerror(i32 noundef %5330, ptr noundef nonnull @.str.4) #11
  %5332 = load i32, ptr %2831, align 4, !tbaa !5
  %5333 = call ptr @s2n_strerror_debug(i32 noundef %5332, ptr noundef nonnull @.str.4) #11
  %5334 = load i32, ptr %2885, align 4, !tbaa !5
  %5335 = call ptr @strerror(i32 noundef %5334) #11
  %5336 = load i32, ptr %2885, align 4, !tbaa !5
  %5337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5328, ptr noundef nonnull %.str.5.sink2845, i32 noundef %5329, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 461, ptr noundef %5331, ptr noundef %5333, ptr noundef %5335, i32 noundef %5336) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5338:                                             ; preds = %5311
  %5339 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %5340 = load i32, ptr @test_count, align 4, !tbaa !5
  %5341 = add nsw i32 %5340, 1
  store i32 %5341, ptr @test_count, align 4, !tbaa !5
  %5342 = icmp eq ptr %5339, null
  br i1 %5342, label %5343, label %5365

5343:                                             ; preds = %5338
  %5344 = load i32, ptr %2885, align 4, !tbaa !5
  %5345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5346 = call i32 @s2n_print_stacktrace(ptr noundef %5345) #11
  %5347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5348 = trunc nuw i8 %5347 to i1
  br i1 %5348, label %5349, label %5353

5349:                                             ; preds = %5343
  %5350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5351 = call i32 @fileno(ptr noundef %5350) #11
  %5352 = call i32 @isatty(i32 noundef %5351) #11
  %.not839 = icmp eq i32 %5352, 0
  br i1 %.not839, label %5353, label %5354

5353:                                             ; preds = %5349, %5343
  br label %5354

5354:                                             ; preds = %5349, %5353
  %.str.5.sink2854 = phi ptr [ @.str.5, %5353 ], [ @.str.2, %5349 ]
  store i32 %5344, ptr %2885, align 4, !tbaa !5
  %5355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5356 = load i32, ptr @test_count, align 4, !tbaa !5
  %5357 = load i32, ptr %2831, align 4, !tbaa !5
  %5358 = call ptr @s2n_strerror(i32 noundef %5357, ptr noundef nonnull @.str.4) #11
  %5359 = load i32, ptr %2831, align 4, !tbaa !5
  %5360 = call ptr @s2n_strerror_debug(i32 noundef %5359, ptr noundef nonnull @.str.4) #11
  %5361 = load i32, ptr %2885, align 4, !tbaa !5
  %5362 = call ptr @strerror(i32 noundef %5361) #11
  %5363 = load i32, ptr %2885, align 4, !tbaa !5
  %5364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5355, ptr noundef nonnull %.str.5.sink2854, i32 noundef %5356, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 467, ptr noundef %5358, ptr noundef %5360, ptr noundef %5362, i32 noundef %5363) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5365:                                             ; preds = %5338
  %5366 = getelementptr inbounds i8, ptr %5339, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %5366, align 8, !tbaa !54
  %5367 = add nsw i32 %5340, 2
  store i32 %5367, ptr @test_count, align 4, !tbaa !5
  %5368 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %5339, i32 noundef 1, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %5369 = call zeroext i1 @s2n_result_is_ok(i32 %5368)
  br i1 %5369, label %5392, label %5370

5370:                                             ; preds = %5365
  %5371 = load i32, ptr %2885, align 4, !tbaa !5
  %5372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5373 = call i32 @s2n_print_stacktrace(ptr noundef %5372) #11
  %5374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5375 = trunc nuw i8 %5374 to i1
  br i1 %5375, label %5376, label %5380

5376:                                             ; preds = %5370
  %5377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5378 = call i32 @fileno(ptr noundef %5377) #11
  %5379 = call i32 @isatty(i32 noundef %5378) #11
  %.not810 = icmp eq i32 %5379, 0
  br i1 %.not810, label %5380, label %5381

5380:                                             ; preds = %5376, %5370
  br label %5381

5381:                                             ; preds = %5376, %5380
  %.str.5.sink2863 = phi ptr [ @.str.5, %5380 ], [ @.str.2, %5376 ]
  store i32 %5371, ptr %2885, align 4, !tbaa !5
  %5382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5383 = load i32, ptr @test_count, align 4, !tbaa !5
  %5384 = load i32, ptr %2831, align 4, !tbaa !5
  %5385 = call ptr @s2n_strerror(i32 noundef %5384, ptr noundef nonnull @.str.4) #11
  %5386 = load i32, ptr %2831, align 4, !tbaa !5
  %5387 = call ptr @s2n_strerror_debug(i32 noundef %5386, ptr noundef nonnull @.str.4) #11
  %5388 = load i32, ptr %2885, align 4, !tbaa !5
  %5389 = call ptr @strerror(i32 noundef %5388) #11
  %5390 = load i32, ptr %2885, align 4, !tbaa !5
  %5391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5382, ptr noundef nonnull %.str.5.sink2863, i32 noundef %5383, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %5385, ptr noundef %5387, ptr noundef %5389, i32 noundef %5390) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5392:                                             ; preds = %5365
  %5393 = load i32, ptr @test_count, align 4, !tbaa !5
  %5394 = add nsw i32 %5393, 1
  store i32 %5394, ptr @test_count, align 4, !tbaa !5
  %5395 = getelementptr inbounds i8, ptr %5339, i64 4088
  %5396 = load i32, ptr %5395, align 8, !tbaa !48
  %5397 = icmp eq i32 %5396, 0
  br i1 %5397, label %5420, label %5398

5398:                                             ; preds = %5392
  %5399 = load i32, ptr %2885, align 4, !tbaa !5
  %5400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5401 = call i32 @s2n_print_stacktrace(ptr noundef %5400) #11
  %5402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5403 = trunc nuw i8 %5402 to i1
  br i1 %5403, label %5404, label %5408

5404:                                             ; preds = %5398
  %5405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5406 = call i32 @fileno(ptr noundef %5405) #11
  %5407 = call i32 @isatty(i32 noundef %5406) #11
  %.not811 = icmp eq i32 %5407, 0
  br i1 %.not811, label %5408, label %5409

5408:                                             ; preds = %5404, %5398
  br label %5409

5409:                                             ; preds = %5404, %5408
  %.str.5.sink2872 = phi ptr [ @.str.5, %5408 ], [ @.str.2, %5404 ]
  store i32 %5399, ptr %2885, align 4, !tbaa !5
  %5410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5411 = load i32, ptr @test_count, align 4, !tbaa !5
  %5412 = load i32, ptr %2831, align 4, !tbaa !5
  %5413 = call ptr @s2n_strerror(i32 noundef %5412, ptr noundef nonnull @.str.4) #11
  %5414 = load i32, ptr %2831, align 4, !tbaa !5
  %5415 = call ptr @s2n_strerror_debug(i32 noundef %5414, ptr noundef nonnull @.str.4) #11
  %5416 = load i32, ptr %2885, align 4, !tbaa !5
  %5417 = call ptr @strerror(i32 noundef %5416) #11
  %5418 = load i32, ptr %2885, align 4, !tbaa !5
  %5419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5410, ptr noundef nonnull %.str.5.sink2872, i32 noundef %5411, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 470, ptr noundef %5413, ptr noundef %5415, ptr noundef %5417, i32 noundef %5418) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5420:                                             ; preds = %5392
  %5421 = add nsw i32 %5393, 2
  store i32 %5421, ptr @test_count, align 4, !tbaa !5
  %5422 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %5339) #11
  %5423 = icmp eq i32 %5422, -1
  br i1 %5423, label %5424, label %5446

5424:                                             ; preds = %5420
  %5425 = load i32, ptr %2885, align 4, !tbaa !5
  %5426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5427 = call i32 @s2n_print_stacktrace(ptr noundef %5426) #11
  %5428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5429 = trunc nuw i8 %5428 to i1
  br i1 %5429, label %5430, label %5434

5430:                                             ; preds = %5424
  %5431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5432 = call i32 @fileno(ptr noundef %5431) #11
  %5433 = call i32 @isatty(i32 noundef %5432) #11
  %.not838 = icmp eq i32 %5433, 0
  br i1 %.not838, label %5434, label %5435

5434:                                             ; preds = %5430, %5424
  br label %5435

5435:                                             ; preds = %5430, %5434
  %.str.5.sink2881 = phi ptr [ @.str.5, %5434 ], [ @.str.2, %5430 ]
  store i32 %5425, ptr %2885, align 4, !tbaa !5
  %5436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5437 = load i32, ptr @test_count, align 4, !tbaa !5
  %5438 = load i32, ptr %2831, align 4, !tbaa !5
  %5439 = call ptr @s2n_strerror(i32 noundef %5438, ptr noundef nonnull @.str.4) #11
  %5440 = load i32, ptr %2831, align 4, !tbaa !5
  %5441 = call ptr @s2n_strerror_debug(i32 noundef %5440, ptr noundef nonnull @.str.4) #11
  %5442 = load i32, ptr %2885, align 4, !tbaa !5
  %5443 = call ptr @strerror(i32 noundef %5442) #11
  %5444 = load i32, ptr %2885, align 4, !tbaa !5
  %5445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5436, ptr noundef nonnull %.str.5.sink2881, i32 noundef %5437, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 471, ptr noundef %5439, ptr noundef %5441, ptr noundef %5443, i32 noundef %5444) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5446:                                             ; preds = %5420
  %5447 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %5448 = load i32, ptr @test_count, align 4, !tbaa !5
  %5449 = add nsw i32 %5448, 1
  store i32 %5449, ptr @test_count, align 4, !tbaa !5
  %5450 = icmp eq ptr %5447, null
  br i1 %5450, label %5451, label %5473

5451:                                             ; preds = %5446
  %5452 = load i32, ptr %2885, align 4, !tbaa !5
  %5453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5454 = call i32 @s2n_print_stacktrace(ptr noundef %5453) #11
  %5455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5456 = trunc nuw i8 %5455 to i1
  br i1 %5456, label %5457, label %5461

5457:                                             ; preds = %5451
  %5458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5459 = call i32 @fileno(ptr noundef %5458) #11
  %5460 = call i32 @isatty(i32 noundef %5459) #11
  %.not837 = icmp eq i32 %5460, 0
  br i1 %.not837, label %5461, label %5462

5461:                                             ; preds = %5457, %5451
  br label %5462

5462:                                             ; preds = %5457, %5461
  %.str.5.sink2890 = phi ptr [ @.str.5, %5461 ], [ @.str.2, %5457 ]
  store i32 %5452, ptr %2885, align 4, !tbaa !5
  %5463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5464 = load i32, ptr @test_count, align 4, !tbaa !5
  %5465 = load i32, ptr %2831, align 4, !tbaa !5
  %5466 = call ptr @s2n_strerror(i32 noundef %5465, ptr noundef nonnull @.str.4) #11
  %5467 = load i32, ptr %2831, align 4, !tbaa !5
  %5468 = call ptr @s2n_strerror_debug(i32 noundef %5467, ptr noundef nonnull @.str.4) #11
  %5469 = load i32, ptr %2885, align 4, !tbaa !5
  %5470 = call ptr @strerror(i32 noundef %5469) #11
  %5471 = load i32, ptr %2885, align 4, !tbaa !5
  %5472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5463, ptr noundef nonnull %.str.5.sink2890, i32 noundef %5464, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %5466, ptr noundef %5468, ptr noundef %5470, i32 noundef %5471) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5473:                                             ; preds = %5446
  %5474 = getelementptr inbounds i8, ptr %5447, i64 16
  store ptr @security_policy_test_all_tls13, ptr %5474, align 8, !tbaa !54
  %5475 = add nsw i32 %5448, 2
  store i32 %5475, ptr @test_count, align 4, !tbaa !5
  %5476 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef nonnull %5447, i32 noundef 1, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #11
  %5477 = call zeroext i1 @s2n_result_is_ok(i32 %5476)
  br i1 %5477, label %5500, label %5478

5478:                                             ; preds = %5473
  %5479 = load i32, ptr %2885, align 4, !tbaa !5
  %5480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5481 = call i32 @s2n_print_stacktrace(ptr noundef %5480) #11
  %5482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5483 = trunc nuw i8 %5482 to i1
  br i1 %5483, label %5484, label %5488

5484:                                             ; preds = %5478
  %5485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5486 = call i32 @fileno(ptr noundef %5485) #11
  %5487 = call i32 @isatty(i32 noundef %5486) #11
  %.not812 = icmp eq i32 %5487, 0
  br i1 %.not812, label %5488, label %5489

5488:                                             ; preds = %5484, %5478
  br label %5489

5489:                                             ; preds = %5484, %5488
  %.str.5.sink2899 = phi ptr [ @.str.5, %5488 ], [ @.str.2, %5484 ]
  store i32 %5479, ptr %2885, align 4, !tbaa !5
  %5490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5491 = load i32, ptr @test_count, align 4, !tbaa !5
  %5492 = load i32, ptr %2831, align 4, !tbaa !5
  %5493 = call ptr @s2n_strerror(i32 noundef %5492, ptr noundef nonnull @.str.4) #11
  %5494 = load i32, ptr %2831, align 4, !tbaa !5
  %5495 = call ptr @s2n_strerror_debug(i32 noundef %5494, ptr noundef nonnull @.str.4) #11
  %5496 = load i32, ptr %2885, align 4, !tbaa !5
  %5497 = call ptr @strerror(i32 noundef %5496) #11
  %5498 = load i32, ptr %2885, align 4, !tbaa !5
  %5499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5490, ptr noundef nonnull %.str.5.sink2899, i32 noundef %5491, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %5493, ptr noundef %5495, ptr noundef %5497, i32 noundef %5498) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5500:                                             ; preds = %5473
  %5501 = load i32, ptr @test_count, align 4, !tbaa !5
  %5502 = add nsw i32 %5501, 1
  store i32 %5502, ptr @test_count, align 4, !tbaa !5
  %5503 = getelementptr inbounds i8, ptr %5447, i64 4088
  %5504 = load i32, ptr %5503, align 8, !tbaa !48
  %5505 = icmp eq i32 %5504, 0
  br i1 %5505, label %5528, label %5506

5506:                                             ; preds = %5500
  %5507 = load i32, ptr %2885, align 4, !tbaa !5
  %5508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5509 = call i32 @s2n_print_stacktrace(ptr noundef %5508) #11
  %5510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5511 = trunc nuw i8 %5510 to i1
  br i1 %5511, label %5512, label %5516

5512:                                             ; preds = %5506
  %5513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5514 = call i32 @fileno(ptr noundef %5513) #11
  %5515 = call i32 @isatty(i32 noundef %5514) #11
  %.not813 = icmp eq i32 %5515, 0
  br i1 %.not813, label %5516, label %5517

5516:                                             ; preds = %5512, %5506
  br label %5517

5517:                                             ; preds = %5512, %5516
  %.str.5.sink2908 = phi ptr [ @.str.5, %5516 ], [ @.str.2, %5512 ]
  store i32 %5507, ptr %2885, align 4, !tbaa !5
  %5518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5519 = load i32, ptr @test_count, align 4, !tbaa !5
  %5520 = load i32, ptr %2831, align 4, !tbaa !5
  %5521 = call ptr @s2n_strerror(i32 noundef %5520, ptr noundef nonnull @.str.4) #11
  %5522 = load i32, ptr %2831, align 4, !tbaa !5
  %5523 = call ptr @s2n_strerror_debug(i32 noundef %5522, ptr noundef nonnull @.str.4) #11
  %5524 = load i32, ptr %2885, align 4, !tbaa !5
  %5525 = call ptr @strerror(i32 noundef %5524) #11
  %5526 = load i32, ptr %2885, align 4, !tbaa !5
  %5527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5518, ptr noundef nonnull %.str.5.sink2908, i32 noundef %5519, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %5521, ptr noundef %5523, ptr noundef %5525, i32 noundef %5526) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5528:                                             ; preds = %5500
  %5529 = add nsw i32 %5501, 2
  store i32 %5529, ptr @test_count, align 4, !tbaa !5
  %5530 = call i32 @s2n_connection_set_early_data_expected(ptr noundef nonnull %5447) #11
  %5531 = icmp eq i32 %5530, -1
  br i1 %5531, label %5532, label %5554

5532:                                             ; preds = %5528
  %5533 = load i32, ptr %2885, align 4, !tbaa !5
  %5534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5535 = call i32 @s2n_print_stacktrace(ptr noundef %5534) #11
  %5536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5537 = trunc nuw i8 %5536 to i1
  br i1 %5537, label %5538, label %5542

5538:                                             ; preds = %5532
  %5539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5540 = call i32 @fileno(ptr noundef %5539) #11
  %5541 = call i32 @isatty(i32 noundef %5540) #11
  %.not836 = icmp eq i32 %5541, 0
  br i1 %.not836, label %5542, label %5543

5542:                                             ; preds = %5538, %5532
  br label %5543

5543:                                             ; preds = %5538, %5542
  %.str.5.sink2917 = phi ptr [ @.str.5, %5542 ], [ @.str.2, %5538 ]
  store i32 %5533, ptr %2885, align 4, !tbaa !5
  %5544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5545 = load i32, ptr @test_count, align 4, !tbaa !5
  %5546 = load i32, ptr %2831, align 4, !tbaa !5
  %5547 = call ptr @s2n_strerror(i32 noundef %5546, ptr noundef nonnull @.str.4) #11
  %5548 = load i32, ptr %2831, align 4, !tbaa !5
  %5549 = call ptr @s2n_strerror_debug(i32 noundef %5548, ptr noundef nonnull @.str.4) #11
  %5550 = load i32, ptr %2885, align 4, !tbaa !5
  %5551 = call ptr @strerror(i32 noundef %5550) #11
  %5552 = load i32, ptr %2885, align 4, !tbaa !5
  %5553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5544, ptr noundef nonnull %.str.5.sink2917, i32 noundef %5545, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 478, ptr noundef %5547, ptr noundef %5549, ptr noundef %5551, i32 noundef %5552) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5554:                                             ; preds = %5528
  %5555 = load i32, ptr @test_count, align 4, !tbaa !5
  %5556 = add nsw i32 %5555, 1
  store i32 %5556, ptr @test_count, align 4, !tbaa !5
  %5557 = call i32 @s2n_client_hello_send(ptr noundef nonnull %5339) #11
  %5558 = icmp eq i32 %5557, -1
  br i1 %5558, label %5559, label %5581

5559:                                             ; preds = %5554
  %5560 = load i32, ptr %2885, align 4, !tbaa !5
  %5561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5562 = call i32 @s2n_print_stacktrace(ptr noundef %5561) #11
  %5563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5564 = trunc nuw i8 %5563 to i1
  br i1 %5564, label %5565, label %5569

5565:                                             ; preds = %5559
  %5566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5567 = call i32 @fileno(ptr noundef %5566) #11
  %5568 = call i32 @isatty(i32 noundef %5567) #11
  %.not835 = icmp eq i32 %5568, 0
  br i1 %.not835, label %5569, label %5570

5569:                                             ; preds = %5565, %5559
  br label %5570

5570:                                             ; preds = %5565, %5569
  %.str.5.sink2926 = phi ptr [ @.str.5, %5569 ], [ @.str.2, %5565 ]
  store i32 %5560, ptr %2885, align 4, !tbaa !5
  %5571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5572 = load i32, ptr @test_count, align 4, !tbaa !5
  %5573 = load i32, ptr %2831, align 4, !tbaa !5
  %5574 = call ptr @s2n_strerror(i32 noundef %5573, ptr noundef nonnull @.str.4) #11
  %5575 = load i32, ptr %2831, align 4, !tbaa !5
  %5576 = call ptr @s2n_strerror_debug(i32 noundef %5575, ptr noundef nonnull @.str.4) #11
  %5577 = load i32, ptr %2885, align 4, !tbaa !5
  %5578 = call ptr @strerror(i32 noundef %5577) #11
  %5579 = load i32, ptr %2885, align 4, !tbaa !5
  %5580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5571, ptr noundef nonnull %.str.5.sink2926, i32 noundef %5572, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %5574, ptr noundef %5576, ptr noundef %5578, i32 noundef %5579) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5581:                                             ; preds = %5554
  %5582 = load i32, ptr @test_count, align 4, !tbaa !5
  %5583 = add nsw i32 %5582, 1
  store i32 %5583, ptr @test_count, align 4, !tbaa !5
  %5584 = getelementptr inbounds i8, ptr %5339, i64 2016
  %5585 = getelementptr inbounds i8, ptr %5447, i64 2016
  %5586 = getelementptr inbounds i8, ptr %5339, i64 2044
  %5587 = load i32, ptr %5586, align 4, !tbaa !51
  %5588 = getelementptr inbounds i8, ptr %5339, i64 2040
  %5589 = load i32, ptr %5588, align 8, !tbaa !52
  %5590 = sub i32 %5587, %5589
  %5591 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %5584, ptr noundef nonnull %5585, i32 noundef %5590) #11
  %5592 = icmp eq i32 %5591, -1
  br i1 %5592, label %5593, label %5615

5593:                                             ; preds = %5581
  %5594 = load i32, ptr %2885, align 4, !tbaa !5
  %5595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5596 = call i32 @s2n_print_stacktrace(ptr noundef %5595) #11
  %5597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5598 = trunc nuw i8 %5597 to i1
  br i1 %5598, label %5599, label %5603

5599:                                             ; preds = %5593
  %5600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5601 = call i32 @fileno(ptr noundef %5600) #11
  %5602 = call i32 @isatty(i32 noundef %5601) #11
  %.not834 = icmp eq i32 %5602, 0
  br i1 %.not834, label %5603, label %5604

5603:                                             ; preds = %5599, %5593
  br label %5604

5604:                                             ; preds = %5599, %5603
  %.str.5.sink2935 = phi ptr [ @.str.5, %5603 ], [ @.str.2, %5599 ]
  store i32 %5594, ptr %2885, align 4, !tbaa !5
  %5605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5606 = load i32, ptr @test_count, align 4, !tbaa !5
  %5607 = load i32, ptr %2831, align 4, !tbaa !5
  %5608 = call ptr @s2n_strerror(i32 noundef %5607, ptr noundef nonnull @.str.4) #11
  %5609 = load i32, ptr %2831, align 4, !tbaa !5
  %5610 = call ptr @s2n_strerror_debug(i32 noundef %5609, ptr noundef nonnull @.str.4) #11
  %5611 = load i32, ptr %2885, align 4, !tbaa !5
  %5612 = call ptr @strerror(i32 noundef %5611) #11
  %5613 = load i32, ptr %2885, align 4, !tbaa !5
  %5614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5605, ptr noundef nonnull %.str.5.sink2935, i32 noundef %5606, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 482, ptr noundef %5608, ptr noundef %5610, ptr noundef %5612, i32 noundef %5613) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5615:                                             ; preds = %5581
  %5616 = load i32, ptr @test_count, align 4, !tbaa !5
  %5617 = add nsw i32 %5616, 1
  store i32 %5617, ptr @test_count, align 4, !tbaa !5
  %5618 = call i32 @s2n_establish_session(ptr noundef nonnull %5447) #11
  %5619 = icmp eq i32 %5618, -1
  br i1 %5619, label %5620, label %5642

5620:                                             ; preds = %5615
  %5621 = load i32, ptr %2885, align 4, !tbaa !5
  %5622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5623 = call i32 @s2n_print_stacktrace(ptr noundef %5622) #11
  %5624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5625 = trunc nuw i8 %5624 to i1
  br i1 %5625, label %5626, label %5630

5626:                                             ; preds = %5620
  %5627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5628 = call i32 @fileno(ptr noundef %5627) #11
  %5629 = call i32 @isatty(i32 noundef %5628) #11
  %.not833 = icmp eq i32 %5629, 0
  br i1 %.not833, label %5630, label %5631

5630:                                             ; preds = %5626, %5620
  br label %5631

5631:                                             ; preds = %5626, %5630
  %.str.5.sink2944 = phi ptr [ @.str.5, %5630 ], [ @.str.2, %5626 ]
  store i32 %5621, ptr %2885, align 4, !tbaa !5
  %5632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5633 = load i32, ptr @test_count, align 4, !tbaa !5
  %5634 = load i32, ptr %2831, align 4, !tbaa !5
  %5635 = call ptr @s2n_strerror(i32 noundef %5634, ptr noundef nonnull @.str.4) #11
  %5636 = load i32, ptr %2831, align 4, !tbaa !5
  %5637 = call ptr @s2n_strerror_debug(i32 noundef %5636, ptr noundef nonnull @.str.4) #11
  %5638 = load i32, ptr %2885, align 4, !tbaa !5
  %5639 = call ptr @strerror(i32 noundef %5638) #11
  %5640 = load i32, ptr %2885, align 4, !tbaa !5
  %5641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5632, ptr noundef nonnull %.str.5.sink2944, i32 noundef %5633, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %5635, ptr noundef %5637, ptr noundef %5639, i32 noundef %5640) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5642:                                             ; preds = %5615
  %5643 = load i32, ptr @test_count, align 4, !tbaa !5
  %5644 = add nsw i32 %5643, 1
  store i32 %5644, ptr @test_count, align 4, !tbaa !5
  %5645 = load i32, ptr %5395, align 8, !tbaa !48
  %5646 = icmp eq i32 %5645, 1
  br i1 %5646, label %5669, label %5647

5647:                                             ; preds = %5642
  %5648 = load i32, ptr %2885, align 4, !tbaa !5
  %5649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5650 = call i32 @s2n_print_stacktrace(ptr noundef %5649) #11
  %5651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5652 = trunc nuw i8 %5651 to i1
  br i1 %5652, label %5653, label %5657

5653:                                             ; preds = %5647
  %5654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5655 = call i32 @fileno(ptr noundef %5654) #11
  %5656 = call i32 @isatty(i32 noundef %5655) #11
  %.not814 = icmp eq i32 %5656, 0
  br i1 %.not814, label %5657, label %5658

5657:                                             ; preds = %5653, %5647
  br label %5658

5658:                                             ; preds = %5653, %5657
  %.str.5.sink2953 = phi ptr [ @.str.5, %5657 ], [ @.str.2, %5653 ]
  store i32 %5648, ptr %2885, align 4, !tbaa !5
  %5659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5660 = load i32, ptr @test_count, align 4, !tbaa !5
  %5661 = load i32, ptr %2831, align 4, !tbaa !5
  %5662 = call ptr @s2n_strerror(i32 noundef %5661, ptr noundef nonnull @.str.4) #11
  %5663 = load i32, ptr %2831, align 4, !tbaa !5
  %5664 = call ptr @s2n_strerror_debug(i32 noundef %5663, ptr noundef nonnull @.str.4) #11
  %5665 = load i32, ptr %2885, align 4, !tbaa !5
  %5666 = call ptr @strerror(i32 noundef %5665) #11
  %5667 = load i32, ptr %2885, align 4, !tbaa !5
  %5668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5659, ptr noundef nonnull %.str.5.sink2953, i32 noundef %5660, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 484, ptr noundef %5662, ptr noundef %5664, ptr noundef %5666, i32 noundef %5667) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5669:                                             ; preds = %5642
  %5670 = add nsw i32 %5643, 2
  store i32 %5670, ptr @test_count, align 4, !tbaa !5
  %5671 = load i32, ptr %5503, align 8, !tbaa !48
  %5672 = icmp eq i32 %5671, 4
  br i1 %5672, label %5695, label %5673

5673:                                             ; preds = %5669
  %5674 = load i32, ptr %2885, align 4, !tbaa !5
  %5675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5676 = call i32 @s2n_print_stacktrace(ptr noundef %5675) #11
  %5677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5678 = trunc nuw i8 %5677 to i1
  br i1 %5678, label %5679, label %5683

5679:                                             ; preds = %5673
  %5680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5681 = call i32 @fileno(ptr noundef %5680) #11
  %5682 = call i32 @isatty(i32 noundef %5681) #11
  %.not815 = icmp eq i32 %5682, 0
  br i1 %.not815, label %5683, label %5684

5683:                                             ; preds = %5679, %5673
  br label %5684

5684:                                             ; preds = %5679, %5683
  %.str.5.sink2962 = phi ptr [ @.str.5, %5683 ], [ @.str.2, %5679 ]
  store i32 %5674, ptr %2885, align 4, !tbaa !5
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = load i32, ptr @test_count, align 4, !tbaa !5
  %5687 = load i32, ptr %2831, align 4, !tbaa !5
  %5688 = call ptr @s2n_strerror(i32 noundef %5687, ptr noundef nonnull @.str.4) #11
  %5689 = load i32, ptr %2831, align 4, !tbaa !5
  %5690 = call ptr @s2n_strerror_debug(i32 noundef %5689, ptr noundef nonnull @.str.4) #11
  %5691 = load i32, ptr %2885, align 4, !tbaa !5
  %5692 = call ptr @strerror(i32 noundef %5691) #11
  %5693 = load i32, ptr %2885, align 4, !tbaa !5
  %5694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5685, ptr noundef nonnull %.str.5.sink2962, i32 noundef %5686, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 485, ptr noundef %5688, ptr noundef %5690, ptr noundef %5692, i32 noundef %5693) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5695:                                             ; preds = %5669
  %5696 = add nsw i32 %5643, 3
  store i32 %5696, ptr @test_count, align 4, !tbaa !5
  %5697 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef nonnull %5447) #11
  br i1 %5697, label %5720, label %5698

5698:                                             ; preds = %5695
  %5699 = load i32, ptr %2885, align 4, !tbaa !5
  %5700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5701 = call i32 @s2n_print_stacktrace(ptr noundef %5700) #11
  %5702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5703 = trunc nuw i8 %5702 to i1
  br i1 %5703, label %5704, label %5708

5704:                                             ; preds = %5698
  %5705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5706 = call i32 @fileno(ptr noundef %5705) #11
  %5707 = call i32 @isatty(i32 noundef %5706) #11
  %.not816 = icmp eq i32 %5707, 0
  br i1 %.not816, label %5708, label %5709

5708:                                             ; preds = %5704, %5698
  br label %5709

5709:                                             ; preds = %5704, %5708
  %.str.5.sink2971 = phi ptr [ @.str.5, %5708 ], [ @.str.2, %5704 ]
  store i32 %5699, ptr %2885, align 4, !tbaa !5
  %5710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5711 = load i32, ptr @test_count, align 4, !tbaa !5
  %5712 = load i32, ptr %2831, align 4, !tbaa !5
  %5713 = call ptr @s2n_strerror(i32 noundef %5712, ptr noundef nonnull @.str.4) #11
  %5714 = load i32, ptr %2831, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror_debug(i32 noundef %5714, ptr noundef nonnull @.str.4) #11
  %5716 = load i32, ptr %2885, align 4, !tbaa !5
  %5717 = call ptr @strerror(i32 noundef %5716) #11
  %5718 = load i32, ptr %2885, align 4, !tbaa !5
  %5719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5710, ptr noundef nonnull %.str.5.sink2971, i32 noundef %5711, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %5713, ptr noundef %5715, ptr noundef %5717, i32 noundef %5718) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5720:                                             ; preds = %5695
  %5721 = getelementptr inbounds i8, ptr %5447, i64 2176
  store i32 2, ptr %5721, align 8, !tbaa !49
  %5722 = getelementptr inbounds i8, ptr %5339, i64 2176
  store i32 2, ptr %5722, align 8, !tbaa !49
  %5723 = load i32, ptr @test_count, align 4, !tbaa !5
  %5724 = add nsw i32 %5723, 1
  store i32 %5724, ptr @test_count, align 4, !tbaa !5
  %5725 = call i32 @s2n_server_hello_retry_send(ptr noundef nonnull %5447) #11
  %5726 = icmp eq i32 %5725, -1
  br i1 %5726, label %5727, label %5749

5727:                                             ; preds = %5720
  %5728 = load i32, ptr %2885, align 4, !tbaa !5
  %5729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5730 = call i32 @s2n_print_stacktrace(ptr noundef %5729) #11
  %5731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5732 = trunc nuw i8 %5731 to i1
  br i1 %5732, label %5733, label %5737

5733:                                             ; preds = %5727
  %5734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5735 = call i32 @fileno(ptr noundef %5734) #11
  %5736 = call i32 @isatty(i32 noundef %5735) #11
  %.not832 = icmp eq i32 %5736, 0
  br i1 %.not832, label %5737, label %5738

5737:                                             ; preds = %5733, %5727
  br label %5738

5738:                                             ; preds = %5733, %5737
  %.str.5.sink2980 = phi ptr [ @.str.5, %5737 ], [ @.str.2, %5733 ]
  store i32 %5728, ptr %2885, align 4, !tbaa !5
  %5739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5740 = load i32, ptr @test_count, align 4, !tbaa !5
  %5741 = load i32, ptr %2831, align 4, !tbaa !5
  %5742 = call ptr @s2n_strerror(i32 noundef %5741, ptr noundef nonnull @.str.4) #11
  %5743 = load i32, ptr %2831, align 4, !tbaa !5
  %5744 = call ptr @s2n_strerror_debug(i32 noundef %5743, ptr noundef nonnull @.str.4) #11
  %5745 = load i32, ptr %2885, align 4, !tbaa !5
  %5746 = call ptr @strerror(i32 noundef %5745) #11
  %5747 = load i32, ptr %2885, align 4, !tbaa !5
  %5748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5739, ptr noundef nonnull %.str.5.sink2980, i32 noundef %5740, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 493, ptr noundef %5742, ptr noundef %5744, ptr noundef %5746, i32 noundef %5747) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5749:                                             ; preds = %5720
  %5750 = load i32, ptr @test_count, align 4, !tbaa !5
  %5751 = add nsw i32 %5750, 1
  store i32 %5751, ptr @test_count, align 4, !tbaa !5
  %5752 = getelementptr inbounds i8, ptr %5447, i64 2044
  %5753 = load i32, ptr %5752, align 4, !tbaa !51
  %5754 = getelementptr inbounds i8, ptr %5447, i64 2040
  %5755 = load i32, ptr %5754, align 8, !tbaa !52
  %5756 = sub i32 %5753, %5755
  %5757 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %5585, ptr noundef nonnull %5584, i32 noundef %5756) #11
  %5758 = icmp eq i32 %5757, -1
  br i1 %5758, label %5759, label %5781

5759:                                             ; preds = %5749
  %5760 = load i32, ptr %2885, align 4, !tbaa !5
  %5761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5762 = call i32 @s2n_print_stacktrace(ptr noundef %5761) #11
  %5763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5764 = trunc nuw i8 %5763 to i1
  br i1 %5764, label %5765, label %5769

5765:                                             ; preds = %5759
  %5766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5767 = call i32 @fileno(ptr noundef %5766) #11
  %5768 = call i32 @isatty(i32 noundef %5767) #11
  %.not831 = icmp eq i32 %5768, 0
  br i1 %.not831, label %5769, label %5770

5769:                                             ; preds = %5765, %5759
  br label %5770

5770:                                             ; preds = %5765, %5769
  %.str.5.sink2989 = phi ptr [ @.str.5, %5769 ], [ @.str.2, %5765 ]
  store i32 %5760, ptr %2885, align 4, !tbaa !5
  %5771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5772 = load i32, ptr @test_count, align 4, !tbaa !5
  %5773 = load i32, ptr %2831, align 4, !tbaa !5
  %5774 = call ptr @s2n_strerror(i32 noundef %5773, ptr noundef nonnull @.str.4) #11
  %5775 = load i32, ptr %2831, align 4, !tbaa !5
  %5776 = call ptr @s2n_strerror_debug(i32 noundef %5775, ptr noundef nonnull @.str.4) #11
  %5777 = load i32, ptr %2885, align 4, !tbaa !5
  %5778 = call ptr @strerror(i32 noundef %5777) #11
  %5779 = load i32, ptr %2885, align 4, !tbaa !5
  %5780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5771, ptr noundef nonnull %.str.5.sink2989, i32 noundef %5772, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %5774, ptr noundef %5776, ptr noundef %5778, i32 noundef %5779) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5781:                                             ; preds = %5749
  %5782 = load i32, ptr @test_count, align 4, !tbaa !5
  %5783 = add nsw i32 %5782, 1
  store i32 %5783, ptr @test_count, align 4, !tbaa !5
  %5784 = call i32 @s2n_server_hello_recv(ptr noundef nonnull %5339) #11
  %5785 = icmp eq i32 %5784, -1
  br i1 %5785, label %5786, label %5808

5786:                                             ; preds = %5781
  %5787 = load i32, ptr %2885, align 4, !tbaa !5
  %5788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5789 = call i32 @s2n_print_stacktrace(ptr noundef %5788) #11
  %5790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5791 = trunc nuw i8 %5790 to i1
  br i1 %5791, label %5792, label %5796

5792:                                             ; preds = %5786
  %5793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5794 = call i32 @fileno(ptr noundef %5793) #11
  %5795 = call i32 @isatty(i32 noundef %5794) #11
  %.not830 = icmp eq i32 %5795, 0
  br i1 %.not830, label %5796, label %5797

5796:                                             ; preds = %5792, %5786
  br label %5797

5797:                                             ; preds = %5792, %5796
  %.str.5.sink2998 = phi ptr [ @.str.5, %5796 ], [ @.str.2, %5792 ]
  store i32 %5787, ptr %2885, align 4, !tbaa !5
  %5798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5799 = load i32, ptr @test_count, align 4, !tbaa !5
  %5800 = load i32, ptr %2831, align 4, !tbaa !5
  %5801 = call ptr @s2n_strerror(i32 noundef %5800, ptr noundef nonnull @.str.4) #11
  %5802 = load i32, ptr %2831, align 4, !tbaa !5
  %5803 = call ptr @s2n_strerror_debug(i32 noundef %5802, ptr noundef nonnull @.str.4) #11
  %5804 = load i32, ptr %2885, align 4, !tbaa !5
  %5805 = call ptr @strerror(i32 noundef %5804) #11
  %5806 = load i32, ptr %2885, align 4, !tbaa !5
  %5807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5798, ptr noundef nonnull %.str.5.sink2998, i32 noundef %5799, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %5801, ptr noundef %5803, ptr noundef %5805, i32 noundef %5806) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5808:                                             ; preds = %5781
  %5809 = load i32, ptr @test_count, align 4, !tbaa !5
  %5810 = add nsw i32 %5809, 1
  store i32 %5810, ptr @test_count, align 4, !tbaa !5
  %5811 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef nonnull %5339) #11
  br i1 %5811, label %5834, label %5812

5812:                                             ; preds = %5808
  %5813 = load i32, ptr %2885, align 4, !tbaa !5
  %5814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5815 = call i32 @s2n_print_stacktrace(ptr noundef %5814) #11
  %5816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5817 = trunc nuw i8 %5816 to i1
  br i1 %5817, label %5818, label %5822

5818:                                             ; preds = %5812
  %5819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5820 = call i32 @fileno(ptr noundef %5819) #11
  %5821 = call i32 @isatty(i32 noundef %5820) #11
  %.not817 = icmp eq i32 %5821, 0
  br i1 %.not817, label %5822, label %5823

5822:                                             ; preds = %5818, %5812
  br label %5823

5823:                                             ; preds = %5818, %5822
  %.str.5.sink3007 = phi ptr [ @.str.5, %5822 ], [ @.str.2, %5818 ]
  store i32 %5813, ptr %2885, align 4, !tbaa !5
  %5824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5825 = load i32, ptr @test_count, align 4, !tbaa !5
  %5826 = load i32, ptr %2831, align 4, !tbaa !5
  %5827 = call ptr @s2n_strerror(i32 noundef %5826, ptr noundef nonnull @.str.4) #11
  %5828 = load i32, ptr %2831, align 4, !tbaa !5
  %5829 = call ptr @s2n_strerror_debug(i32 noundef %5828, ptr noundef nonnull @.str.4) #11
  %5830 = load i32, ptr %2885, align 4, !tbaa !5
  %5831 = call ptr @strerror(i32 noundef %5830) #11
  %5832 = load i32, ptr %2885, align 4, !tbaa !5
  %5833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5824, ptr noundef nonnull %.str.5.sink3007, i32 noundef %5825, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 497, ptr noundef %5827, ptr noundef %5829, ptr noundef %5831, i32 noundef %5832) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5834:                                             ; preds = %5808
  %5835 = load i32, ptr @test_count, align 4, !tbaa !5
  %5836 = add nsw i32 %5835, 1
  store i32 %5836, ptr @test_count, align 4, !tbaa !5
  %5837 = load i32, ptr %5395, align 8, !tbaa !48
  %5838 = icmp eq i32 %5837, 4
  br i1 %5838, label %5861, label %5839

5839:                                             ; preds = %5834
  %5840 = load i32, ptr %2885, align 4, !tbaa !5
  %5841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5842 = call i32 @s2n_print_stacktrace(ptr noundef %5841) #11
  %5843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5844 = trunc nuw i8 %5843 to i1
  br i1 %5844, label %5845, label %5849

5845:                                             ; preds = %5839
  %5846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5847 = call i32 @fileno(ptr noundef %5846) #11
  %5848 = call i32 @isatty(i32 noundef %5847) #11
  %.not818 = icmp eq i32 %5848, 0
  br i1 %.not818, label %5849, label %5850

5849:                                             ; preds = %5845, %5839
  br label %5850

5850:                                             ; preds = %5845, %5849
  %.str.5.sink3016 = phi ptr [ @.str.5, %5849 ], [ @.str.2, %5845 ]
  store i32 %5840, ptr %2885, align 4, !tbaa !5
  %5851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5852 = load i32, ptr @test_count, align 4, !tbaa !5
  %5853 = load i32, ptr %2831, align 4, !tbaa !5
  %5854 = call ptr @s2n_strerror(i32 noundef %5853, ptr noundef nonnull @.str.4) #11
  %5855 = load i32, ptr %2831, align 4, !tbaa !5
  %5856 = call ptr @s2n_strerror_debug(i32 noundef %5855, ptr noundef nonnull @.str.4) #11
  %5857 = load i32, ptr %2885, align 4, !tbaa !5
  %5858 = call ptr @strerror(i32 noundef %5857) #11
  %5859 = load i32, ptr %2885, align 4, !tbaa !5
  %5860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5851, ptr noundef nonnull %.str.5.sink3016, i32 noundef %5852, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %5854, ptr noundef %5856, ptr noundef %5858, i32 noundef %5859) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5861:                                             ; preds = %5834
  %5862 = add nsw i32 %5835, 2
  store i32 %5862, ptr @test_count, align 4, !tbaa !5
  %5863 = load i32, ptr %5503, align 8, !tbaa !48
  %5864 = icmp eq i32 %5863, 4
  br i1 %5864, label %5887, label %5865

5865:                                             ; preds = %5861
  %5866 = load i32, ptr %2885, align 4, !tbaa !5
  %5867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5868 = call i32 @s2n_print_stacktrace(ptr noundef %5867) #11
  %5869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5870 = trunc nuw i8 %5869 to i1
  br i1 %5870, label %5871, label %5875

5871:                                             ; preds = %5865
  %5872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5873 = call i32 @fileno(ptr noundef %5872) #11
  %5874 = call i32 @isatty(i32 noundef %5873) #11
  %.not819 = icmp eq i32 %5874, 0
  br i1 %.not819, label %5875, label %5876

5875:                                             ; preds = %5871, %5865
  br label %5876

5876:                                             ; preds = %5871, %5875
  %.str.5.sink3025 = phi ptr [ @.str.5, %5875 ], [ @.str.2, %5871 ]
  store i32 %5866, ptr %2885, align 4, !tbaa !5
  %5877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5878 = load i32, ptr @test_count, align 4, !tbaa !5
  %5879 = load i32, ptr %2831, align 4, !tbaa !5
  %5880 = call ptr @s2n_strerror(i32 noundef %5879, ptr noundef nonnull @.str.4) #11
  %5881 = load i32, ptr %2831, align 4, !tbaa !5
  %5882 = call ptr @s2n_strerror_debug(i32 noundef %5881, ptr noundef nonnull @.str.4) #11
  %5883 = load i32, ptr %2885, align 4, !tbaa !5
  %5884 = call ptr @strerror(i32 noundef %5883) #11
  %5885 = load i32, ptr %2885, align 4, !tbaa !5
  %5886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5877, ptr noundef nonnull %.str.5.sink3025, i32 noundef %5878, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 499, ptr noundef %5880, ptr noundef %5882, ptr noundef %5884, i32 noundef %5885) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5887:                                             ; preds = %5861
  %5888 = add nsw i32 %5835, 3
  store i32 %5888, ptr @test_count, align 4, !tbaa !5
  %5889 = call i32 @s2n_client_hello_send(ptr noundef nonnull %5339) #11
  %5890 = icmp eq i32 %5889, -1
  br i1 %5890, label %5891, label %5913

5891:                                             ; preds = %5887
  %5892 = load i32, ptr %2885, align 4, !tbaa !5
  %5893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5894 = call i32 @s2n_print_stacktrace(ptr noundef %5893) #11
  %5895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5896 = trunc nuw i8 %5895 to i1
  br i1 %5896, label %5897, label %5901

5897:                                             ; preds = %5891
  %5898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5899 = call i32 @fileno(ptr noundef %5898) #11
  %5900 = call i32 @isatty(i32 noundef %5899) #11
  %.not829 = icmp eq i32 %5900, 0
  br i1 %.not829, label %5901, label %5902

5901:                                             ; preds = %5897, %5891
  br label %5902

5902:                                             ; preds = %5897, %5901
  %.str.5.sink3034 = phi ptr [ @.str.5, %5901 ], [ @.str.2, %5897 ]
  store i32 %5892, ptr %2885, align 4, !tbaa !5
  %5903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5904 = load i32, ptr @test_count, align 4, !tbaa !5
  %5905 = load i32, ptr %2831, align 4, !tbaa !5
  %5906 = call ptr @s2n_strerror(i32 noundef %5905, ptr noundef nonnull @.str.4) #11
  %5907 = load i32, ptr %2831, align 4, !tbaa !5
  %5908 = call ptr @s2n_strerror_debug(i32 noundef %5907, ptr noundef nonnull @.str.4) #11
  %5909 = load i32, ptr %2885, align 4, !tbaa !5
  %5910 = call ptr @strerror(i32 noundef %5909) #11
  %5911 = load i32, ptr %2885, align 4, !tbaa !5
  %5912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5903, ptr noundef nonnull %.str.5.sink3034, i32 noundef %5904, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 501, ptr noundef %5906, ptr noundef %5908, ptr noundef %5910, i32 noundef %5911) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5913:                                             ; preds = %5887
  %5914 = load i32, ptr @test_count, align 4, !tbaa !5
  %5915 = add nsw i32 %5914, 1
  store i32 %5915, ptr @test_count, align 4, !tbaa !5
  %5916 = load i32, ptr %5395, align 8, !tbaa !48
  %5917 = icmp eq i32 %5916, 4
  br i1 %5917, label %5940, label %5918

5918:                                             ; preds = %5913
  %5919 = load i32, ptr %2885, align 4, !tbaa !5
  %5920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5921 = call i32 @s2n_print_stacktrace(ptr noundef %5920) #11
  %5922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5923 = trunc nuw i8 %5922 to i1
  br i1 %5923, label %5924, label %5928

5924:                                             ; preds = %5918
  %5925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5926 = call i32 @fileno(ptr noundef %5925) #11
  %5927 = call i32 @isatty(i32 noundef %5926) #11
  %.not820 = icmp eq i32 %5927, 0
  br i1 %.not820, label %5928, label %5929

5928:                                             ; preds = %5924, %5918
  br label %5929

5929:                                             ; preds = %5924, %5928
  %.str.5.sink3043 = phi ptr [ @.str.5, %5928 ], [ @.str.2, %5924 ]
  store i32 %5919, ptr %2885, align 4, !tbaa !5
  %5930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5931 = load i32, ptr @test_count, align 4, !tbaa !5
  %5932 = load i32, ptr %2831, align 4, !tbaa !5
  %5933 = call ptr @s2n_strerror(i32 noundef %5932, ptr noundef nonnull @.str.4) #11
  %5934 = load i32, ptr %2831, align 4, !tbaa !5
  %5935 = call ptr @s2n_strerror_debug(i32 noundef %5934, ptr noundef nonnull @.str.4) #11
  %5936 = load i32, ptr %2885, align 4, !tbaa !5
  %5937 = call ptr @strerror(i32 noundef %5936) #11
  %5938 = load i32, ptr %2885, align 4, !tbaa !5
  %5939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5930, ptr noundef nonnull %.str.5.sink3043, i32 noundef %5931, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %5933, ptr noundef %5935, ptr noundef %5937, i32 noundef %5938) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5940:                                             ; preds = %5913
  %5941 = add nsw i32 %5914, 2
  store i32 %5941, ptr @test_count, align 4, !tbaa !5
  %5942 = load i32, ptr %5503, align 8, !tbaa !48
  %5943 = icmp eq i32 %5942, 4
  br i1 %5943, label %5966, label %5944

5944:                                             ; preds = %5940
  %5945 = load i32, ptr %2885, align 4, !tbaa !5
  %5946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5947 = call i32 @s2n_print_stacktrace(ptr noundef %5946) #11
  %5948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5949 = trunc nuw i8 %5948 to i1
  br i1 %5949, label %5950, label %5954

5950:                                             ; preds = %5944
  %5951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5952 = call i32 @fileno(ptr noundef %5951) #11
  %5953 = call i32 @isatty(i32 noundef %5952) #11
  %.not821 = icmp eq i32 %5953, 0
  br i1 %.not821, label %5954, label %5955

5954:                                             ; preds = %5950, %5944
  br label %5955

5955:                                             ; preds = %5950, %5954
  %.str.5.sink3052 = phi ptr [ @.str.5, %5954 ], [ @.str.2, %5950 ]
  store i32 %5945, ptr %2885, align 4, !tbaa !5
  %5956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5957 = load i32, ptr @test_count, align 4, !tbaa !5
  %5958 = load i32, ptr %2831, align 4, !tbaa !5
  %5959 = call ptr @s2n_strerror(i32 noundef %5958, ptr noundef nonnull @.str.4) #11
  %5960 = load i32, ptr %2831, align 4, !tbaa !5
  %5961 = call ptr @s2n_strerror_debug(i32 noundef %5960, ptr noundef nonnull @.str.4) #11
  %5962 = load i32, ptr %2885, align 4, !tbaa !5
  %5963 = call ptr @strerror(i32 noundef %5962) #11
  %5964 = load i32, ptr %2885, align 4, !tbaa !5
  %5965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5956, ptr noundef nonnull %.str.5.sink3052, i32 noundef %5957, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %5959, ptr noundef %5961, ptr noundef %5963, i32 noundef %5964) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5966:                                             ; preds = %5940
  %5967 = add nsw i32 %5914, 3
  store i32 %5967, ptr @test_count, align 4, !tbaa !5
  %5968 = call i32 @s2n_connection_free(ptr noundef nonnull %5339) #11
  %5969 = icmp eq i32 %5968, -1
  br i1 %5969, label %5970, label %5992

5970:                                             ; preds = %5966
  %5971 = load i32, ptr %2885, align 4, !tbaa !5
  %5972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5973 = call i32 @s2n_print_stacktrace(ptr noundef %5972) #11
  %5974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5975 = trunc nuw i8 %5974 to i1
  br i1 %5975, label %5976, label %5980

5976:                                             ; preds = %5970
  %5977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5978 = call i32 @fileno(ptr noundef %5977) #11
  %5979 = call i32 @isatty(i32 noundef %5978) #11
  %.not828 = icmp eq i32 %5979, 0
  br i1 %.not828, label %5980, label %5981

5980:                                             ; preds = %5976, %5970
  br label %5981

5981:                                             ; preds = %5976, %5980
  %.str.5.sink3061 = phi ptr [ @.str.5, %5980 ], [ @.str.2, %5976 ]
  store i32 %5971, ptr %2885, align 4, !tbaa !5
  %5982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5983 = load i32, ptr @test_count, align 4, !tbaa !5
  %5984 = load i32, ptr %2831, align 4, !tbaa !5
  %5985 = call ptr @s2n_strerror(i32 noundef %5984, ptr noundef nonnull @.str.4) #11
  %5986 = load i32, ptr %2831, align 4, !tbaa !5
  %5987 = call ptr @s2n_strerror_debug(i32 noundef %5986, ptr noundef nonnull @.str.4) #11
  %5988 = load i32, ptr %2885, align 4, !tbaa !5
  %5989 = call ptr @strerror(i32 noundef %5988) #11
  %5990 = load i32, ptr %2885, align 4, !tbaa !5
  %5991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5982, ptr noundef nonnull %.str.5.sink3061, i32 noundef %5983, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %5985, ptr noundef %5987, ptr noundef %5989, i32 noundef %5990) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5992:                                             ; preds = %5966
  %5993 = load i32, ptr @test_count, align 4, !tbaa !5
  %5994 = add nsw i32 %5993, 1
  store i32 %5994, ptr @test_count, align 4, !tbaa !5
  %5995 = call i32 @s2n_connection_free(ptr noundef nonnull %5447) #11
  %5996 = icmp eq i32 %5995, -1
  br i1 %5996, label %5997, label %6019

5997:                                             ; preds = %5992
  %5998 = load i32, ptr %2885, align 4, !tbaa !5
  %5999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6000 = call i32 @s2n_print_stacktrace(ptr noundef %5999) #11
  %6001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6002 = trunc nuw i8 %6001 to i1
  br i1 %6002, label %6003, label %6007

6003:                                             ; preds = %5997
  %6004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6005 = call i32 @fileno(ptr noundef %6004) #11
  %6006 = call i32 @isatty(i32 noundef %6005) #11
  %.not827 = icmp eq i32 %6006, 0
  br i1 %.not827, label %6007, label %6008

6007:                                             ; preds = %6003, %5997
  br label %6008

6008:                                             ; preds = %6003, %6007
  %.str.5.sink3070 = phi ptr [ @.str.5, %6007 ], [ @.str.2, %6003 ]
  store i32 %5998, ptr %2885, align 4, !tbaa !5
  %6009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6010 = load i32, ptr @test_count, align 4, !tbaa !5
  %6011 = load i32, ptr %2831, align 4, !tbaa !5
  %6012 = call ptr @s2n_strerror(i32 noundef %6011, ptr noundef nonnull @.str.4) #11
  %6013 = load i32, ptr %2831, align 4, !tbaa !5
  %6014 = call ptr @s2n_strerror_debug(i32 noundef %6013, ptr noundef nonnull @.str.4) #11
  %6015 = load i32, ptr %2885, align 4, !tbaa !5
  %6016 = call ptr @strerror(i32 noundef %6015) #11
  %6017 = load i32, ptr %2885, align 4, !tbaa !5
  %6018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6009, ptr noundef nonnull %.str.5.sink3070, i32 noundef %6010, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 506, ptr noundef %6012, ptr noundef %6014, ptr noundef %6016, i32 noundef %6017) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6019:                                             ; preds = %5992
  %6020 = call i32 @s2n_cleanup() #11
  %6021 = icmp eq i32 %6020, -1
  br i1 %6021, label %6022, label %6044

6022:                                             ; preds = %6019
  %6023 = load i32, ptr %2885, align 4, !tbaa !5
  %6024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6025 = call i32 @s2n_print_stacktrace(ptr noundef %6024) #11
  %6026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6027 = trunc nuw i8 %6026 to i1
  br i1 %6027, label %6028, label %6032

6028:                                             ; preds = %6022
  %6029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6030 = call i32 @fileno(ptr noundef %6029) #11
  %6031 = call i32 @isatty(i32 noundef %6030) #11
  %.not826 = icmp eq i32 %6031, 0
  br i1 %.not826, label %6032, label %6033

6032:                                             ; preds = %6028, %6022
  br label %6033

6033:                                             ; preds = %6028, %6032
  %.str.5.sink3079 = phi ptr [ @.str.5, %6032 ], [ @.str.2, %6028 ]
  store i32 %6023, ptr %2885, align 4, !tbaa !5
  %6034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6035 = load i32, ptr @test_count, align 4, !tbaa !5
  %6036 = load i32, ptr %2831, align 4, !tbaa !5
  %6037 = call ptr @s2n_strerror(i32 noundef %6036, ptr noundef nonnull @.str.4) #11
  %6038 = load i32, ptr %2831, align 4, !tbaa !5
  %6039 = call ptr @s2n_strerror_debug(i32 noundef %6038, ptr noundef nonnull @.str.4) #11
  %6040 = load i32, ptr %2885, align 4, !tbaa !5
  %6041 = call ptr @strerror(i32 noundef %6040) #11
  %6042 = load i32, ptr %2885, align 4, !tbaa !5
  %6043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6034, ptr noundef nonnull %.str.5.sink3079, i32 noundef %6035, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 510, ptr noundef %6037, ptr noundef %6039, ptr noundef %6041, i32 noundef %6042) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6044:                                             ; preds = %6019
  %6045 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %6046 = icmp eq i32 %6045, -1
  br i1 %6046, label %6047, label %6069

6047:                                             ; preds = %6044
  %6048 = load i32, ptr %2885, align 4, !tbaa !5
  %6049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6050 = call i32 @s2n_print_stacktrace(ptr noundef %6049) #11
  %6051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6052 = trunc nuw i8 %6051 to i1
  br i1 %6052, label %6053, label %6057

6053:                                             ; preds = %6047
  %6054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6055 = call i32 @fileno(ptr noundef %6054) #11
  %6056 = call i32 @isatty(i32 noundef %6055) #11
  %.not825 = icmp eq i32 %6056, 0
  br i1 %.not825, label %6057, label %6058

6057:                                             ; preds = %6053, %6047
  br label %6058

6058:                                             ; preds = %6053, %6057
  %.str.5.sink3088 = phi ptr [ @.str.5, %6057 ], [ @.str.2, %6053 ]
  store i32 %6048, ptr %2885, align 4, !tbaa !5
  %6059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6060 = load i32, ptr @test_count, align 4, !tbaa !5
  %6061 = load i32, ptr %2831, align 4, !tbaa !5
  %6062 = call ptr @s2n_strerror(i32 noundef %6061, ptr noundef nonnull @.str.4) #11
  %6063 = load i32, ptr %2831, align 4, !tbaa !5
  %6064 = call ptr @s2n_strerror_debug(i32 noundef %6063, ptr noundef nonnull @.str.4) #11
  %6065 = load i32, ptr %2885, align 4, !tbaa !5
  %6066 = call ptr @strerror(i32 noundef %6065) #11
  %6067 = load i32, ptr %2885, align 4, !tbaa !5
  %6068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6059, ptr noundef nonnull %.str.5.sink3088, i32 noundef %6060, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 510, ptr noundef %6062, ptr noundef %6064, ptr noundef %6066, i32 noundef %6067) #13
  call void @exit(i32 noundef 1) #14
  unreachable

6069:                                             ; preds = %6044
  %6070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6071 = trunc nuw i8 %6070 to i1
  br i1 %6071, label %6072, label %6083

6072:                                             ; preds = %6069
  %6073 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6074 = call i32 @fileno(ptr noundef %6073) #11
  %6075 = call i32 @isatty(i32 noundef %6074) #11
  %.not822 = icmp eq i32 %6075, 0
  br i1 %.not822, label %6083, label %6076

6076:                                             ; preds = %6072
  %6077 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not824 = icmp eq i32 %6077, 0
  %6078 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not824, label %6081, label %6079

6079:                                             ; preds = %6076
  %6080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6078, ptr noundef nonnull @.str.10, i32 noundef %6077) #11
  br label %6090

6081:                                             ; preds = %6076
  %6082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6078, ptr noundef nonnull @.str.11) #11
  br label %6090

6083:                                             ; preds = %6072, %6069
  %6084 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not823 = icmp eq i32 %6084, 0
  %6085 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not823, label %6088, label %6086

6086:                                             ; preds = %6083
  %6087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6085, ptr noundef nonnull @.str.12, i32 noundef %6084) #11
  br label %6090

6088:                                             ; preds = %6083
  %6089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6085, ptr noundef nonnull @.str.13) #11
  br label %6090

6090:                                             ; preds = %6081, %6079, %6088, %6086, %161, %159, %168, %166
  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 i32 @s2n_connection_set_cipher_preferences(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

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

declare i32 @s2n_connection_set_early_data_expected(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_set_hello_retry_required(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_psk_parameters_wipe(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

declare ptr @s2n_config_new() local_unnamed_addr #2

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

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_establish_session(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_retry_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_server_hello_recv(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_hello_retry_handshake(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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }

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

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


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