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

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

%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_result = type { i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_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 [103 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 [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@security_policy_20190801 = external constant %struct.s2n_security_policy, align 8
@.str.10 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_client_supported_versions_extension = external constant %struct.s2n_extension_type, align 8
@.str.14 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [59 x i8], align 1
@__const.main.invalid_version_list = external hidden unnamed_addr constant [6 x i16], align 2
@.str.46 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [70 x i8], align 1
@__const.main.grease_version_list = external hidden unnamed_addr constant [17 x i16], align 16
@.str.50 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [60 x i8], align 1
@__const.main.invalid_version_list.52 = external hidden unnamed_addr constant [8 x i16], align 16
@__const.main.supported_version_list = external hidden unnamed_addr constant [1 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @write_test_supported_versions_list(ptr noundef, ptr noundef, i8 noundef zeroext) #0

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #1

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

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

; 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 i8, align 1
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca %struct.s2n_stuffer, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i64, align 8
  %22 = alloca i8, align 1
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.s2n_stuffer, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i8, align 1
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i16, align 2
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i16, align 2
  %48 = alloca %struct.s2n_stuffer, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca ptr, align 8
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i8, align 1
  %66 = alloca [4 x i8], align 1
  %67 = alloca i8, align 1
  %68 = alloca %struct.s2n_stuffer, align 8
  %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 i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i8, align 1
  %82 = alloca [4 x i8], align 1
  %83 = alloca i8, align 1
  %84 = alloca %struct.s2n_stuffer, align 8
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca ptr, align 8
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca [6 x i16], align 2
  %98 = alloca i8, align 1
  %99 = alloca %struct.s2n_stuffer, align 8
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i64, align 8
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca ptr, align 8
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca [17 x i16], align 16
  %112 = alloca i8, align 1
  %113 = alloca %struct.s2n_stuffer, align 8
  %114 = alloca i32, align 4
  %115 = alloca i64, align 8
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca ptr, align 8
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca [8 x i16], align 16
  %126 = alloca i8, align 1
  %127 = alloca %struct.s2n_stuffer, align 8
  %128 = alloca i32, align 4
  %129 = alloca i64, align 8
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca ptr, align 8
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca [1 x i8], align 1
  %140 = alloca i8, align 1
  %141 = alloca %struct.s2n_stuffer, align 8
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca ptr, align 8
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca %struct.s2n_stuffer, align 8
  %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 i32, align 4
  %162 = alloca ptr, align 8
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca %struct.s2n_stuffer, align 8
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca ptr, align 8
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca %struct.s2n_stuffer, align 8
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca ptr, align 8
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca %struct.s2n_stuffer, align 8
  %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_stuffer, align 8
  %206 = alloca [2 x i8], align 1
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca ptr, align 8
  %212 = alloca i32, align 4
  %213 = alloca ptr, align 8
  %214 = alloca i32, align 4
  %215 = alloca ptr, align 8
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca ptr, align 8
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca %struct.s2n_test_io_pair, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca ptr, align 8
  %225 = alloca i32, align 4
  %226 = alloca [2 x i8], align 1
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca %struct.s2n_result, align 4
  %235 = alloca %struct.s2n_result, align 4
  %236 = alloca %struct.s2n_result, align 4
  %237 = alloca %struct.s2n_result, align 4
  %238 = alloca i8, align 1
  %239 = alloca i64, align 8
  %240 = alloca ptr, align 8
  %241 = alloca i32, align 4
  %242 = alloca %struct.s2n_result, align 4
  %243 = alloca i32, align 4
  %244 = alloca [1 x i8], align 1
  %245 = alloca i8, align 1
  %246 = alloca %struct.s2n_stuffer, align 8
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca %struct.s2n_result, align 4
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = 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 %260

260:                                              ; preds = %2
  br label %261

261:                                              ; preds = %260
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %262 = load ptr, ptr @stdout, align 8, !tbaa !9
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %262, ptr noundef @.str, ptr noundef @.str.1) #10
  %264 = load ptr, ptr @stdout, align 8, !tbaa !9
  %265 = call i32 @fflush(ptr noundef %264)
  br label %266

266:                                              ; preds = %261
  %267 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %268 = icmp eq i32 %267, -1
  br i1 %268, label %269, label %320

269:                                              ; preds = %266
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %272 = call ptr @__errno_location() #11
  %273 = load i32, ptr %272, align 4, !tbaa !5
  store i32 %273, ptr %6, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = call i32 @s2n_print_stacktrace(ptr noundef %274)
  %276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %277 = trunc i8 %276 to i1
  br i1 %277, label %278, label %300

278:                                              ; preds = %271
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @fileno(ptr noundef %279) #10
  %281 = call i32 @isatty(i32 noundef %280) #10
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %283, label %300

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

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

317:                                              ; preds = %300, %283
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %318

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

319:                                              ; No predecessors!
  br label %320

320:                                              ; preds = %319, %266
  br label %321

321:                                              ; preds = %320
  br label %322

322:                                              ; preds = %321
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr @test_count, align 4, !tbaa !5
  %325 = call i32 @s2n_enable_atexit()
  %326 = icmp eq i32 %325, -1
  br i1 %326, label %327, label %378

327:                                              ; preds = %322
  br label %328

328:                                              ; preds = %327
  br label %329

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %330 = call ptr @__errno_location() #11
  %331 = load i32, ptr %330, align 4, !tbaa !5
  store i32 %331, ptr %7, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = call i32 @s2n_print_stacktrace(ptr noundef %332)
  %334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %335 = trunc i8 %334 to i1
  br i1 %335, label %336, label %358

336:                                              ; preds = %329
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = call i32 @fileno(ptr noundef %337) #10
  %339 = call i32 @isatty(i32 noundef %338) #10
  %340 = icmp ne i32 %339, 0
  br i1 %340, label %341, label %358

341:                                              ; preds = %336
  %342 = load i32, ptr %7, align 4, !tbaa !5
  %343 = call ptr @__errno_location() #11
  store i32 %342, ptr %343, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror(i32 noundef %347, ptr noundef @.str.4)
  %349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = call ptr @s2n_strerror_debug(i32 noundef %350, ptr noundef @.str.4)
  %352 = call ptr @__errno_location() #11
  %353 = load i32, ptr %352, align 4, !tbaa !5
  %354 = call ptr @strerror(i32 noundef %353) #10
  %355 = call ptr @__errno_location() #11
  %356 = load i32, ptr %355, align 4, !tbaa !5
  %357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef @.str.2, i32 noundef %345, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 46, ptr noundef %348, ptr noundef %351, ptr noundef %354, i32 noundef %356) #10
  br label %375

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

375:                                              ; preds = %358, %341
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %376

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

377:                                              ; No predecessors!
  br label %378

378:                                              ; preds = %377, %322
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  br label %381

381:                                              ; preds = %380
  %382 = call i32 @s2n_init()
  %383 = icmp eq i32 %382, -1
  br i1 %383, label %384, label %435

384:                                              ; preds = %381
  br label %385

385:                                              ; preds = %384
  br label %386

386:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %387 = call ptr @__errno_location() #11
  %388 = load i32, ptr %387, align 4, !tbaa !5
  store i32 %388, ptr %8, align 4, !tbaa !5
  %389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %390 = call i32 @s2n_print_stacktrace(ptr noundef %389)
  %391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %392 = trunc i8 %391 to i1
  br i1 %392, label %393, label %415

393:                                              ; preds = %386
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = call i32 @fileno(ptr noundef %394) #10
  %396 = call i32 @isatty(i32 noundef %395) #10
  %397 = icmp ne i32 %396, 0
  br i1 %397, label %398, label %415

398:                                              ; preds = %393
  %399 = load i32, ptr %8, align 4, !tbaa !5
  %400 = call ptr @__errno_location() #11
  store i32 %399, ptr %400, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = load i32, ptr @test_count, align 4, !tbaa !5
  %403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = call ptr @s2n_strerror(i32 noundef %404, ptr noundef @.str.4)
  %406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %407 = load i32, ptr %406, align 4, !tbaa !5
  %408 = call ptr @s2n_strerror_debug(i32 noundef %407, ptr noundef @.str.4)
  %409 = call ptr @__errno_location() #11
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call ptr @strerror(i32 noundef %410) #10
  %412 = call ptr @__errno_location() #11
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %401, ptr noundef @.str.2, i32 noundef %402, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 46, ptr noundef %405, ptr noundef %408, ptr noundef %411, i32 noundef %413) #10
  br label %432

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

432:                                              ; preds = %415, %398
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %433

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

434:                                              ; No predecessors!
  br label %435

435:                                              ; preds = %434, %381
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = call i32 (...) @s2n_enable_tls13_in_test()
  %442 = icmp eq i32 %441, -1
  br i1 %442, label %443, label %494

443:                                              ; preds = %438
  br label %444

444:                                              ; preds = %443
  br label %445

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

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

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

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

491:                                              ; preds = %474, %457
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %492

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

493:                                              ; No predecessors!
  br label %494

494:                                              ; preds = %493, %438
  br label %495

495:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #10
  store i8 34, ptr %10, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %496

496:                                              ; preds = %495
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr @test_count, align 4, !tbaa !5
  %499 = call ptr @s2n_config_new()
  store ptr %499, ptr %11, align 8, !tbaa !9
  %500 = icmp eq ptr %499, null
  br i1 %500, label %501, label %554

501:                                              ; preds = %496
  br label %502

502:                                              ; preds = %501
  br label %503

503:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %504 = call ptr @__errno_location() #11
  %505 = load i32, ptr %504, align 4, !tbaa !5
  store i32 %505, ptr %12, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @s2n_print_stacktrace(ptr noundef %506)
  %508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %509 = trunc i8 %508 to i1
  br i1 %509, label %510, label %532

510:                                              ; preds = %503
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @fileno(ptr noundef %511) #10
  %513 = call i32 @isatty(i32 noundef %512) #10
  %514 = icmp ne i32 %513, 0
  br i1 %514, label %515, label %532

515:                                              ; preds = %510
  %516 = load i32, ptr %12, align 4, !tbaa !5
  %517 = call ptr @__errno_location() #11
  store i32 %516, ptr %517, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror(i32 noundef %521, ptr noundef @.str.4)
  %523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror_debug(i32 noundef %524, ptr noundef @.str.4)
  %526 = call ptr @__errno_location() #11
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call ptr @strerror(i32 noundef %527) #10
  %529 = call ptr @__errno_location() #11
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef @.str.2, i32 noundef %519, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 53, ptr noundef %522, ptr noundef %525, ptr noundef %528, i32 noundef %530) #10
  br label %549

532:                                              ; preds = %510, %503
  %533 = load i32, ptr %12, align 4, !tbaa !5
  %534 = call ptr @__errno_location() #11
  store i32 %533, ptr %534, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = load i32, ptr @test_count, align 4, !tbaa !5
  %537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call ptr @s2n_strerror(i32 noundef %538, ptr noundef @.str.4)
  %540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call ptr @s2n_strerror_debug(i32 noundef %541, ptr noundef @.str.4)
  %543 = call ptr @__errno_location() #11
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = call ptr @strerror(i32 noundef %544) #10
  %546 = call ptr @__errno_location() #11
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %535, ptr noundef @.str.5, i32 noundef %536, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 53, ptr noundef %539, ptr noundef %542, ptr noundef %545, i32 noundef %547) #10
  br label %549

549:                                              ; preds = %532, %515
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %550

550:                                              ; preds = %549
  br label %551

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

552:                                              ; No predecessors!
  br label %553

553:                                              ; preds = %552
  br label %554

554:                                              ; preds = %553, %496
  br label %555

555:                                              ; preds = %554
  br label %556

556:                                              ; preds = %555
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #10
  store ptr @security_policy_20190801, ptr %13, align 8, !tbaa !9
  br label %557

557:                                              ; preds = %556
  %558 = load i32, ptr @test_count, align 4, !tbaa !5
  %559 = add nsw i32 %558, 1
  store i32 %559, ptr @test_count, align 4, !tbaa !5
  %560 = load ptr, ptr %13, align 8, !tbaa !9
  %561 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %560)
  br i1 %561, label %615, label %562

562:                                              ; preds = %557
  br label %563

563:                                              ; preds = %562
  br label %564

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

571:                                              ; preds = %564
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @fileno(ptr noundef %572) #10
  %574 = call i32 @isatty(i32 noundef %573) #10
  %575 = icmp ne i32 %574, 0
  br i1 %575, label %576, label %593

576:                                              ; preds = %571
  %577 = load i32, ptr %14, align 4, !tbaa !5
  %578 = call ptr @__errno_location() #11
  store i32 %577, ptr %578, align 4, !tbaa !5
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror(i32 noundef %582, ptr noundef @.str.4)
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror_debug(i32 noundef %585, ptr noundef @.str.4)
  %587 = call ptr @__errno_location() #11
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #10
  %590 = call ptr @__errno_location() #11
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %579, ptr noundef @.str.2, i32 noundef %580, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 56, ptr noundef %583, ptr noundef %586, ptr noundef %589, i32 noundef %591) #10
  br label %610

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

610:                                              ; preds = %593, %576
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %611

611:                                              ; preds = %610
  br label %612

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

613:                                              ; No predecessors!
  br label %614

614:                                              ; preds = %613
  br label %615

615:                                              ; preds = %614, %557
  br label %616

616:                                              ; preds = %615
  br label %617

617:                                              ; preds = %616
  br label %618

618:                                              ; preds = %617
  %619 = load i32, ptr @test_count, align 4, !tbaa !5
  %620 = add nsw i32 %619, 1
  store i32 %620, ptr @test_count, align 4, !tbaa !5
  %621 = load ptr, ptr %13, align 8, !tbaa !9
  %622 = getelementptr inbounds %struct.s2n_security_policy, ptr %621, i32 0, i32 0
  %623 = load i8, ptr %622, align 8, !tbaa !16
  %624 = zext i8 %623 to i32
  %625 = icmp eq i32 %624, 31
  br i1 %625, label %679, label %626

626:                                              ; preds = %618
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %629 = call ptr @__errno_location() #11
  %630 = load i32, ptr %629, align 4, !tbaa !5
  store i32 %630, ptr %15, align 4, !tbaa !5
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = call i32 @s2n_print_stacktrace(ptr noundef %631)
  %633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %634 = trunc i8 %633 to i1
  br i1 %634, label %635, label %657

635:                                              ; preds = %628
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = call i32 @fileno(ptr noundef %636) #10
  %638 = call i32 @isatty(i32 noundef %637) #10
  %639 = icmp ne i32 %638, 0
  br i1 %639, label %640, label %657

640:                                              ; preds = %635
  %641 = load i32, ptr %15, align 4, !tbaa !5
  %642 = call ptr @__errno_location() #11
  store i32 %641, ptr %642, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = load i32, ptr @test_count, align 4, !tbaa !5
  %645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = call ptr @s2n_strerror(i32 noundef %646, ptr noundef @.str.4)
  %648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror_debug(i32 noundef %649, ptr noundef @.str.4)
  %651 = call ptr @__errno_location() #11
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @strerror(i32 noundef %652) #10
  %654 = call ptr @__errno_location() #11
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %643, ptr noundef @.str.2, i32 noundef %644, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 57, ptr noundef %647, ptr noundef %650, ptr noundef %653, i32 noundef %655) #10
  br label %674

657:                                              ; preds = %635, %628
  %658 = load i32, ptr %15, align 4, !tbaa !5
  %659 = call ptr @__errno_location() #11
  store i32 %658, ptr %659, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror(i32 noundef %663, ptr noundef @.str.4)
  %665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @s2n_strerror_debug(i32 noundef %666, ptr noundef @.str.4)
  %668 = call ptr @__errno_location() #11
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @strerror(i32 noundef %669) #10
  %671 = call ptr @__errno_location() #11
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %660, ptr noundef @.str.5, i32 noundef %661, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 57, ptr noundef %664, ptr noundef %667, ptr noundef %670, i32 noundef %672) #10
  br label %674

674:                                              ; preds = %657, %640
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %675

675:                                              ; preds = %674
  br label %676

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

677:                                              ; No predecessors!
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678, %618
  br label %680

680:                                              ; preds = %679
  br label %681

681:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %682 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %682, ptr %16, align 8, !tbaa !9
  br label %683

683:                                              ; preds = %681
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr @test_count, align 4, !tbaa !5
  %686 = load ptr, ptr %16, align 8, !tbaa !9
  %687 = icmp eq ptr %686, null
  br i1 %687, label %688, label %741

688:                                              ; preds = %683
  br label %689

689:                                              ; preds = %688
  br label %690

690:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %691 = call ptr @__errno_location() #11
  %692 = load i32, ptr %691, align 4, !tbaa !5
  store i32 %692, ptr %17, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = call i32 @s2n_print_stacktrace(ptr noundef %693)
  %695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %696 = trunc i8 %695 to i1
  br i1 %696, label %697, label %719

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

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

719:                                              ; preds = %697, %690
  %720 = load i32, ptr %17, align 4, !tbaa !5
  %721 = call ptr @__errno_location() #11
  store i32 %720, ptr %721, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = load i32, ptr @test_count, align 4, !tbaa !5
  %724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror(i32 noundef %725, ptr noundef @.str.4)
  %727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror_debug(i32 noundef %728, ptr noundef @.str.4)
  %730 = call ptr @__errno_location() #11
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #10
  %733 = call ptr @__errno_location() #11
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %722, ptr noundef @.str.5, i32 noundef %723, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 62, ptr noundef %726, ptr noundef %729, ptr noundef %732, i32 noundef %734) #10
  br label %736

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

737:                                              ; preds = %736
  br label %738

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

739:                                              ; No predecessors!
  br label %740

740:                                              ; preds = %739
  br label %741

741:                                              ; preds = %740, %683
  br label %742

742:                                              ; preds = %741
  br label %743

743:                                              ; preds = %742
  %744 = load ptr, ptr %13, align 8, !tbaa !9
  %745 = load ptr, ptr %16, align 8, !tbaa !9
  %746 = getelementptr inbounds %struct.s2n_connection, ptr %745, i32 0, i32 2
  store ptr %744, ptr %746, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 40, ptr %18) #10
  call void @llvm.memset.p0.i64(ptr align 8 %18, i8 0, i64 40, i1 false)
  br label %747

747:                                              ; preds = %743
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = add nsw i32 %748, 1
  store i32 %749, ptr @test_count, align 4, !tbaa !5
  %750 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %18, i32 noundef 0)
  %751 = icmp eq i32 %750, -1
  br i1 %751, label %752, label %805

752:                                              ; preds = %747
  br label %753

753:                                              ; preds = %752
  br label %754

754:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  %755 = call ptr @__errno_location() #11
  %756 = load i32, ptr %755, align 4, !tbaa !5
  store i32 %756, ptr %19, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = call i32 @s2n_print_stacktrace(ptr noundef %757)
  %759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %760 = trunc i8 %759 to i1
  br i1 %760, label %761, label %783

761:                                              ; preds = %754
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = call i32 @fileno(ptr noundef %762) #10
  %764 = call i32 @isatty(i32 noundef %763) #10
  %765 = icmp ne i32 %764, 0
  br i1 %765, label %766, label %783

766:                                              ; preds = %761
  %767 = load i32, ptr %19, align 4, !tbaa !5
  %768 = call ptr @__errno_location() #11
  store i32 %767, ptr %768, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror(i32 noundef %772, ptr noundef @.str.4)
  %774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror_debug(i32 noundef %775, ptr noundef @.str.4)
  %777 = call ptr @__errno_location() #11
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @strerror(i32 noundef %778) #10
  %780 = call ptr @__errno_location() #11
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef @.str.2, i32 noundef %770, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 66, ptr noundef %773, ptr noundef %776, ptr noundef %779, i32 noundef %781) #10
  br label %800

783:                                              ; preds = %761, %754
  %784 = load i32, ptr %19, align 4, !tbaa !5
  %785 = call ptr @__errno_location() #11
  store i32 %784, ptr %785, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = load i32, ptr @test_count, align 4, !tbaa !5
  %788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror(i32 noundef %789, ptr noundef @.str.4)
  %791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror_debug(i32 noundef %792, ptr noundef @.str.4)
  %794 = call ptr @__errno_location() #11
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #10
  %797 = call ptr @__errno_location() #11
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %786, ptr noundef @.str.5, i32 noundef %787, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 66, ptr noundef %790, ptr noundef %793, ptr noundef %796, i32 noundef %798) #10
  br label %800

800:                                              ; preds = %783, %766
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %801

801:                                              ; preds = %800
  br label %802

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

803:                                              ; No predecessors!
  br label %804

804:                                              ; preds = %803
  br label %805

805:                                              ; preds = %804, %747
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr @test_count, align 4, !tbaa !5
  %811 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 3), align 8, !tbaa !45
  %812 = load ptr, ptr %16, align 8, !tbaa !9
  %813 = call i32 %811(ptr noundef %812, ptr noundef %18)
  %814 = icmp eq i32 %813, -1
  br i1 %814, label %815, label %868

815:                                              ; preds = %808
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %818 = call ptr @__errno_location() #11
  %819 = load i32, ptr %818, align 4, !tbaa !5
  store i32 %819, ptr %20, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @s2n_print_stacktrace(ptr noundef %820)
  %822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %823 = trunc i8 %822 to i1
  br i1 %823, label %824, label %846

824:                                              ; preds = %817
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @fileno(ptr noundef %825) #10
  %827 = call i32 @isatty(i32 noundef %826) #10
  %828 = icmp ne i32 %827, 0
  br i1 %828, label %829, label %846

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

846:                                              ; preds = %824, %817
  %847 = load i32, ptr %20, align 4, !tbaa !5
  %848 = call ptr @__errno_location() #11
  store i32 %847, ptr %848, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror(i32 noundef %852, ptr noundef @.str.4)
  %854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror_debug(i32 noundef %855, ptr noundef @.str.4)
  %857 = call ptr @__errno_location() #11
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call ptr @strerror(i32 noundef %858) #10
  %860 = call ptr @__errno_location() #11
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %849, ptr noundef @.str.5, i32 noundef %850, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 67, ptr noundef %853, ptr noundef %856, ptr noundef %859, i32 noundef %861) #10
  br label %863

863:                                              ; preds = %846, %829
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %864

864:                                              ; preds = %863
  br label %865

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

866:                                              ; No predecessors!
  br label %867

867:                                              ; preds = %866
  br label %868

868:                                              ; preds = %867, %808
  br label %869

869:                                              ; preds = %868
  br label %870

870:                                              ; preds = %869
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %871 = load i8, ptr %10, align 1, !tbaa !15
  %872 = zext i8 %871 to i32
  %873 = sub nsw i32 %872, 31
  %874 = add nsw i32 %873, 1
  %875 = sext i32 %874 to i64
  store i64 %875, ptr %21, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #10
  store i8 0, ptr %22, align 1, !tbaa !15
  br label %876

876:                                              ; preds = %870
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = call i32 @s2n_stuffer_read_uint8(ptr noundef %18, ptr noundef %22)
  %880 = icmp eq i32 %879, -1
  br i1 %880, label %881, label %934

881:                                              ; preds = %876
  br label %882

882:                                              ; preds = %881
  br label %883

883:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %884 = call ptr @__errno_location() #11
  %885 = load i32, ptr %884, align 4, !tbaa !5
  store i32 %885, ptr %23, align 4, !tbaa !5
  %886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %887 = call i32 @s2n_print_stacktrace(ptr noundef %886)
  %888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %889 = trunc i8 %888 to i1
  br i1 %889, label %890, label %912

890:                                              ; preds = %883
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = call i32 @fileno(ptr noundef %891) #10
  %893 = call i32 @isatty(i32 noundef %892) #10
  %894 = icmp ne i32 %893, 0
  br i1 %894, label %895, label %912

895:                                              ; preds = %890
  %896 = load i32, ptr %23, align 4, !tbaa !5
  %897 = call ptr @__errno_location() #11
  store i32 %896, ptr %897, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %901, ptr noundef @.str.4)
  %903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror_debug(i32 noundef %904, ptr noundef @.str.4)
  %906 = call ptr @__errno_location() #11
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = call ptr @strerror(i32 noundef %907) #10
  %909 = call ptr @__errno_location() #11
  %910 = load i32, ptr %909, align 4, !tbaa !5
  %911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %898, ptr noundef @.str.2, i32 noundef %899, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 75, ptr noundef %902, ptr noundef %905, ptr noundef %908, i32 noundef %910) #10
  br label %929

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

929:                                              ; preds = %912, %895
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %930

930:                                              ; preds = %929
  br label %931

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

932:                                              ; No predecessors!
  br label %933

933:                                              ; preds = %932
  br label %934

934:                                              ; preds = %933, %876
  br label %935

935:                                              ; preds = %934
  br label %936

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  %938 = load i32, ptr @test_count, align 4, !tbaa !5
  %939 = add nsw i32 %938, 1
  store i32 %939, ptr @test_count, align 4, !tbaa !5
  %940 = load i8, ptr %22, align 1, !tbaa !15
  %941 = zext i8 %940 to i64
  %942 = load i64, ptr %21, align 8, !tbaa !47
  %943 = mul i64 2, %942
  %944 = icmp eq i64 %941, %943
  br i1 %944, label %998, label %945

945:                                              ; preds = %937
  br label %946

946:                                              ; preds = %945
  br label %947

947:                                              ; preds = %946
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %948 = call ptr @__errno_location() #11
  %949 = load i32, ptr %948, align 4, !tbaa !5
  store i32 %949, ptr %24, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @s2n_print_stacktrace(ptr noundef %950)
  %952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %953 = trunc i8 %952 to i1
  br i1 %953, label %954, label %976

954:                                              ; preds = %947
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = call i32 @fileno(ptr noundef %955) #10
  %957 = call i32 @isatty(i32 noundef %956) #10
  %958 = icmp ne i32 %957, 0
  br i1 %958, label %959, label %976

959:                                              ; preds = %954
  %960 = load i32, ptr %24, align 4, !tbaa !5
  %961 = call ptr @__errno_location() #11
  store i32 %960, ptr %961, align 4, !tbaa !5
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = load i32, ptr @test_count, align 4, !tbaa !5
  %964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %965 = load i32, ptr %964, align 4, !tbaa !5
  %966 = call ptr @s2n_strerror(i32 noundef %965, ptr noundef @.str.4)
  %967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %968 = load i32, ptr %967, align 4, !tbaa !5
  %969 = call ptr @s2n_strerror_debug(i32 noundef %968, ptr noundef @.str.4)
  %970 = call ptr @__errno_location() #11
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @strerror(i32 noundef %971) #10
  %973 = call ptr @__errno_location() #11
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %962, ptr noundef @.str.2, i32 noundef %963, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 76, ptr noundef %966, ptr noundef %969, ptr noundef %972, i32 noundef %974) #10
  br label %993

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

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

994:                                              ; preds = %993
  br label %995

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

996:                                              ; No predecessors!
  br label %997

997:                                              ; preds = %996
  br label %998

998:                                              ; preds = %997, %937
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999
  br label %1001

1001:                                             ; preds = %1000
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr @test_count, align 4, !tbaa !5
  %1004 = load ptr, ptr %16, align 8, !tbaa !9
  %1005 = call i32 @s2n_connection_free(ptr noundef %1004)
  %1006 = icmp eq i32 %1005, -1
  br i1 %1006, label %1007, label %1060

1007:                                             ; preds = %1001
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

1009:                                             ; preds = %1008
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %1010 = call ptr @__errno_location() #11
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  store i32 %1011, ptr %25, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = call i32 @s2n_print_stacktrace(ptr noundef %1012)
  %1014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1015 = trunc i8 %1014 to i1
  br i1 %1015, label %1016, label %1038

1016:                                             ; preds = %1009
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @fileno(ptr noundef %1017) #10
  %1019 = call i32 @isatty(i32 noundef %1018) #10
  %1020 = icmp ne i32 %1019, 0
  br i1 %1020, label %1021, label %1038

1021:                                             ; preds = %1016
  %1022 = load i32, ptr %25, align 4, !tbaa !5
  %1023 = call ptr @__errno_location() #11
  store i32 %1022, ptr %1023, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror(i32 noundef %1027, ptr noundef @.str.4)
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror_debug(i32 noundef %1030, ptr noundef @.str.4)
  %1032 = call ptr @__errno_location() #11
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @strerror(i32 noundef %1033) #10
  %1035 = call ptr @__errno_location() #11
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1024, ptr noundef @.str.2, i32 noundef %1025, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1028, ptr noundef %1031, ptr noundef %1034, i32 noundef %1036) #10
  br label %1055

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

1055:                                             ; preds = %1038, %1021
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %1056

1056:                                             ; preds = %1055
  br label %1057

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

1058:                                             ; No predecessors!
  br label %1059

1059:                                             ; preds = %1058
  br label %1060

1060:                                             ; preds = %1059, %1001
  br label %1061

1061:                                             ; preds = %1060
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

1063:                                             ; preds = %1062
  %1064 = load i32, ptr @test_count, align 4, !tbaa !5
  %1065 = add nsw i32 %1064, 1
  store i32 %1065, ptr @test_count, align 4, !tbaa !5
  %1066 = call i32 @s2n_stuffer_free(ptr noundef %18)
  %1067 = icmp eq i32 %1066, -1
  br i1 %1067, label %1068, label %1121

1068:                                             ; preds = %1063
  br label %1069

1069:                                             ; preds = %1068
  br label %1070

1070:                                             ; preds = %1069
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %1071 = call ptr @__errno_location() #11
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  store i32 %1072, ptr %26, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @s2n_print_stacktrace(ptr noundef %1073)
  %1075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1076 = trunc i8 %1075 to i1
  br i1 %1076, label %1077, label %1099

1077:                                             ; preds = %1070
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = call i32 @fileno(ptr noundef %1078) #10
  %1080 = call i32 @isatty(i32 noundef %1079) #10
  %1081 = icmp ne i32 %1080, 0
  br i1 %1081, label %1082, label %1099

1082:                                             ; preds = %1077
  %1083 = load i32, ptr %26, align 4, !tbaa !5
  %1084 = call ptr @__errno_location() #11
  store i32 %1083, ptr %1084, align 4, !tbaa !5
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = load i32, ptr @test_count, align 4, !tbaa !5
  %1087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror(i32 noundef %1088, ptr noundef @.str.4)
  %1090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call ptr @s2n_strerror_debug(i32 noundef %1091, ptr noundef @.str.4)
  %1093 = call ptr @__errno_location() #11
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call ptr @strerror(i32 noundef %1094) #10
  %1096 = call ptr @__errno_location() #11
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1085, ptr noundef @.str.2, i32 noundef %1086, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1089, ptr noundef %1092, ptr noundef %1095, i32 noundef %1097) #10
  br label %1116

1099:                                             ; preds = %1077, %1070
  %1100 = load i32, ptr %26, align 4, !tbaa !5
  %1101 = call ptr @__errno_location() #11
  store i32 %1100, ptr %1101, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call ptr @s2n_strerror(i32 noundef %1105, ptr noundef @.str.4)
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror_debug(i32 noundef %1108, ptr noundef @.str.4)
  %1110 = call ptr @__errno_location() #11
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #10
  %1113 = call ptr @__errno_location() #11
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef @.str.5, i32 noundef %1103, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1106, ptr noundef %1109, ptr noundef %1112, i32 noundef %1114) #10
  br label %1116

1116:                                             ; preds = %1099, %1082
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1117

1117:                                             ; preds = %1116
  br label %1118

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

1119:                                             ; No predecessors!
  br label %1120

1120:                                             ; preds = %1119
  br label %1121

1121:                                             ; preds = %1120, %1063
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

1123:                                             ; preds = %1122
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  %1124 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %1124, label %1125, label %1808

1125:                                             ; preds = %1123
  br label %1126

1126:                                             ; preds = %1125
  %1127 = load i32, ptr @test_count, align 4, !tbaa !5
  %1128 = add nsw i32 %1127, 1
  store i32 %1128, ptr @test_count, align 4, !tbaa !5
  %1129 = load i8, ptr %10, align 1, !tbaa !15
  %1130 = zext i8 %1129 to i32
  %1131 = icmp eq i32 %1130, 34
  br i1 %1131, label %1185, label %1132

1132:                                             ; preds = %1126
  br label %1133

1133:                                             ; preds = %1132
  br label %1134

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

1141:                                             ; preds = %1134
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = call i32 @fileno(ptr noundef %1142) #10
  %1144 = call i32 @isatty(i32 noundef %1143) #10
  %1145 = icmp ne i32 %1144, 0
  br i1 %1145, label %1146, label %1163

1146:                                             ; preds = %1141
  %1147 = load i32, ptr %27, align 4, !tbaa !5
  %1148 = call ptr @__errno_location() #11
  store i32 %1147, ptr %1148, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror(i32 noundef %1152, ptr noundef @.str.4)
  %1154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef @.str.4)
  %1157 = call ptr @__errno_location() #11
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #10
  %1160 = call ptr @__errno_location() #11
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef @.str.2, i32 noundef %1150, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1153, ptr noundef %1156, ptr noundef %1159, i32 noundef %1161) #10
  br label %1180

1163:                                             ; preds = %1141, %1134
  %1164 = load i32, ptr %27, align 4, !tbaa !5
  %1165 = call ptr @__errno_location() #11
  store i32 %1164, ptr %1165, align 4, !tbaa !5
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %1168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror(i32 noundef %1169, ptr noundef @.str.4)
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror_debug(i32 noundef %1172, ptr noundef @.str.4)
  %1174 = call ptr @__errno_location() #11
  %1175 = load i32, ptr %1174, align 4, !tbaa !5
  %1176 = call ptr @strerror(i32 noundef %1175) #10
  %1177 = call ptr @__errno_location() #11
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1166, ptr noundef @.str.5, i32 noundef %1167, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1170, ptr noundef %1173, ptr noundef %1176, i32 noundef %1178) #10
  br label %1180

1180:                                             ; preds = %1163, %1146
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1181

1181:                                             ; preds = %1180
  br label %1182

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

1183:                                             ; No predecessors!
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

1185:                                             ; preds = %1184, %1126
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

1187:                                             ; preds = %1186
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %1188 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1188, ptr %28, align 8, !tbaa !9
  br label %1189

1189:                                             ; preds = %1187
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = load ptr, ptr %28, align 8, !tbaa !9
  %1193 = icmp eq ptr %1192, null
  br i1 %1193, label %1194, label %1247

1194:                                             ; preds = %1189
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %1197 = call ptr @__errno_location() #11
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  store i32 %1198, ptr %29, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = call i32 @s2n_print_stacktrace(ptr noundef %1199)
  %1201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1202 = trunc i8 %1201 to i1
  br i1 %1202, label %1203, label %1225

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #10
  %1206 = call i32 @isatty(i32 noundef %1205) #10
  %1207 = icmp ne i32 %1206, 0
  br i1 %1207, label %1208, label %1225

1208:                                             ; preds = %1203
  %1209 = load i32, ptr %29, align 4, !tbaa !5
  %1210 = call ptr @__errno_location() #11
  store i32 %1209, ptr %1210, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1214, ptr noundef @.str.4)
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror_debug(i32 noundef %1217, ptr noundef @.str.4)
  %1219 = call ptr @__errno_location() #11
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @strerror(i32 noundef %1220) #10
  %1222 = call ptr @__errno_location() #11
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1211, ptr noundef @.str.2, i32 noundef %1212, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1215, ptr noundef %1218, ptr noundef %1221, i32 noundef %1223) #10
  br label %1242

1225:                                             ; preds = %1203, %1196
  %1226 = load i32, ptr %29, align 4, !tbaa !5
  %1227 = call ptr @__errno_location() #11
  store i32 %1226, ptr %1227, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror(i32 noundef %1231, ptr noundef @.str.4)
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef @.str.4)
  %1236 = call ptr @__errno_location() #11
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @strerror(i32 noundef %1237) #10
  %1239 = call ptr @__errno_location() #11
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef @.str.5, i32 noundef %1229, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1232, ptr noundef %1235, ptr noundef %1238, i32 noundef %1240) #10
  br label %1242

1242:                                             ; preds = %1225, %1208
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

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

1245:                                             ; No predecessors!
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246, %1189
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  br label %1250

1250:                                             ; preds = %1249
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %1252 = add nsw i32 %1251, 1
  store i32 %1252, ptr @test_count, align 4, !tbaa !5
  %1253 = load ptr, ptr %28, align 8, !tbaa !9
  %1254 = call i32 @s2n_connection_enable_quic(ptr noundef %1253)
  %1255 = icmp eq i32 %1254, -1
  br i1 %1255, label %1256, label %1309

1256:                                             ; preds = %1250
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

1258:                                             ; preds = %1257
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  %1259 = call ptr @__errno_location() #11
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  store i32 %1260, ptr %30, align 4, !tbaa !5
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = call i32 @s2n_print_stacktrace(ptr noundef %1261)
  %1263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1264 = trunc i8 %1263 to i1
  br i1 %1264, label %1265, label %1287

1265:                                             ; preds = %1258
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = call i32 @fileno(ptr noundef %1266) #10
  %1268 = call i32 @isatty(i32 noundef %1267) #10
  %1269 = icmp ne i32 %1268, 0
  br i1 %1269, label %1270, label %1287

1270:                                             ; preds = %1265
  %1271 = load i32, ptr %30, align 4, !tbaa !5
  %1272 = call ptr @__errno_location() #11
  store i32 %1271, ptr %1272, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1276, ptr noundef @.str.4)
  %1278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror_debug(i32 noundef %1279, ptr noundef @.str.4)
  %1281 = call ptr @__errno_location() #11
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @strerror(i32 noundef %1282) #10
  %1284 = call ptr @__errno_location() #11
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1273, ptr noundef @.str.2, i32 noundef %1274, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1277, ptr noundef %1280, ptr noundef %1283, i32 noundef %1285) #10
  br label %1304

1287:                                             ; preds = %1265, %1258
  %1288 = load i32, ptr %30, align 4, !tbaa !5
  %1289 = call ptr @__errno_location() #11
  store i32 %1288, ptr %1289, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror(i32 noundef %1293, ptr noundef @.str.4)
  %1295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror_debug(i32 noundef %1296, ptr noundef @.str.4)
  %1298 = call ptr @__errno_location() #11
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #10
  %1301 = call ptr @__errno_location() #11
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef @.str.5, i32 noundef %1291, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1294, ptr noundef %1297, ptr noundef %1300, i32 noundef %1302) #10
  br label %1304

1304:                                             ; preds = %1287, %1270
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

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

1307:                                             ; No predecessors!
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

1309:                                             ; preds = %1308, %1250
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  %1312 = load ptr, ptr %13, align 8, !tbaa !9
  %1313 = load ptr, ptr %28, align 8, !tbaa !9
  %1314 = getelementptr inbounds %struct.s2n_connection, ptr %1313, i32 0, i32 2
  store ptr %1312, ptr %1314, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #10
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 40, i1 false)
  br label %1315

1315:                                             ; preds = %1311
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = add nsw i32 %1316, 1
  store i32 %1317, ptr @test_count, align 4, !tbaa !5
  %1318 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %31, i32 noundef 0)
  %1319 = icmp eq i32 %1318, -1
  br i1 %1319, label %1320, label %1373

1320:                                             ; preds = %1315
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1323 = call ptr @__errno_location() #11
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  store i32 %1324, ptr %32, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = call i32 @s2n_print_stacktrace(ptr noundef %1325)
  %1327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1328 = trunc i8 %1327 to i1
  br i1 %1328, label %1329, label %1351

1329:                                             ; preds = %1322
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @fileno(ptr noundef %1330) #10
  %1332 = call i32 @isatty(i32 noundef %1331) #10
  %1333 = icmp ne i32 %1332, 0
  br i1 %1333, label %1334, label %1351

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

1351:                                             ; preds = %1329, %1322
  %1352 = load i32, ptr %32, align 4, !tbaa !5
  %1353 = call ptr @__errno_location() #11
  store i32 %1352, ptr %1353, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror(i32 noundef %1357, ptr noundef @.str.4)
  %1359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror_debug(i32 noundef %1360, ptr noundef @.str.4)
  %1362 = call ptr @__errno_location() #11
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @strerror(i32 noundef %1363) #10
  %1365 = call ptr @__errno_location() #11
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1354, ptr noundef @.str.5, i32 noundef %1355, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1358, ptr noundef %1361, ptr noundef %1364, i32 noundef %1366) #10
  br label %1368

1368:                                             ; preds = %1351, %1334
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1369

1369:                                             ; preds = %1368
  br label %1370

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

1371:                                             ; No predecessors!
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

1373:                                             ; preds = %1372, %1315
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = add nsw i32 %1377, 1
  store i32 %1378, ptr @test_count, align 4, !tbaa !5
  %1379 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 3), align 8, !tbaa !45
  %1380 = load ptr, ptr %28, align 8, !tbaa !9
  %1381 = call i32 %1379(ptr noundef %1380, ptr noundef %31)
  %1382 = icmp eq i32 %1381, -1
  br i1 %1382, label %1383, label %1436

1383:                                             ; preds = %1376
  br label %1384

1384:                                             ; preds = %1383
  br label %1385

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

1392:                                             ; preds = %1385
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = call i32 @fileno(ptr noundef %1393) #10
  %1395 = call i32 @isatty(i32 noundef %1394) #10
  %1396 = icmp ne i32 %1395, 0
  br i1 %1396, label %1397, label %1414

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

1414:                                             ; preds = %1392, %1385
  %1415 = load i32, ptr %33, align 4, !tbaa !5
  %1416 = call ptr @__errno_location() #11
  store i32 %1415, ptr %1416, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = load i32, ptr @test_count, align 4, !tbaa !5
  %1419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = call ptr @s2n_strerror(i32 noundef %1420, ptr noundef @.str.4)
  %1422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1423 = load i32, ptr %1422, align 4, !tbaa !5
  %1424 = call ptr @s2n_strerror_debug(i32 noundef %1423, ptr noundef @.str.4)
  %1425 = call ptr @__errno_location() #11
  %1426 = load i32, ptr %1425, align 4, !tbaa !5
  %1427 = call ptr @strerror(i32 noundef %1426) #10
  %1428 = call ptr @__errno_location() #11
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1417, ptr noundef @.str.5, i32 noundef %1418, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1421, ptr noundef %1424, ptr noundef %1427, i32 noundef %1429) #10
  br label %1431

1431:                                             ; preds = %1414, %1397
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

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

1434:                                             ; No predecessors!
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

1436:                                             ; preds = %1435, %1376
  br label %1437

1437:                                             ; preds = %1436
  br label %1438

1438:                                             ; preds = %1437
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #10
  store i8 0, ptr %34, align 1, !tbaa !15
  br label %1439

1439:                                             ; preds = %1438
  %1440 = load i32, ptr @test_count, align 4, !tbaa !5
  %1441 = add nsw i32 %1440, 1
  store i32 %1441, ptr @test_count, align 4, !tbaa !5
  %1442 = call i32 @s2n_stuffer_read_uint8(ptr noundef %31, ptr noundef %34)
  %1443 = icmp eq i32 %1442, -1
  br i1 %1443, label %1444, label %1497

1444:                                             ; preds = %1439
  br label %1445

1445:                                             ; preds = %1444
  br label %1446

1446:                                             ; preds = %1445
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1447 = call ptr @__errno_location() #11
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  store i32 %1448, ptr %35, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @s2n_print_stacktrace(ptr noundef %1449)
  %1451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1452 = trunc i8 %1451 to i1
  br i1 %1452, label %1453, label %1475

1453:                                             ; preds = %1446
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = call i32 @fileno(ptr noundef %1454) #10
  %1456 = call i32 @isatty(i32 noundef %1455) #10
  %1457 = icmp ne i32 %1456, 0
  br i1 %1457, label %1458, label %1475

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

1475:                                             ; preds = %1453, %1446
  %1476 = load i32, ptr %35, align 4, !tbaa !5
  %1477 = call ptr @__errno_location() #11
  store i32 %1476, ptr %1477, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = load i32, ptr @test_count, align 4, !tbaa !5
  %1480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1481 = load i32, ptr %1480, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror(i32 noundef %1481, ptr noundef @.str.4)
  %1483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1484 = load i32, ptr %1483, align 4, !tbaa !5
  %1485 = call ptr @s2n_strerror_debug(i32 noundef %1484, ptr noundef @.str.4)
  %1486 = call ptr @__errno_location() #11
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @strerror(i32 noundef %1487) #10
  %1489 = call ptr @__errno_location() #11
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1478, ptr noundef @.str.5, i32 noundef %1479, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1482, ptr noundef %1485, ptr noundef %1488, i32 noundef %1490) #10
  br label %1492

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

1493:                                             ; preds = %1492
  br label %1494

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

1495:                                             ; No predecessors!
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

1497:                                             ; preds = %1496, %1439
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

1499:                                             ; preds = %1498
  br label %1500

1500:                                             ; preds = %1499
  %1501 = load i32, ptr @test_count, align 4, !tbaa !5
  %1502 = add nsw i32 %1501, 1
  store i32 %1502, ptr @test_count, align 4, !tbaa !5
  %1503 = load i8, ptr %34, align 1, !tbaa !15
  %1504 = zext i8 %1503 to i32
  %1505 = icmp eq i32 %1504, 2
  br i1 %1505, label %1559, label %1506

1506:                                             ; preds = %1500
  br label %1507

1507:                                             ; preds = %1506
  br label %1508

1508:                                             ; preds = %1507
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %1509 = call ptr @__errno_location() #11
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  store i32 %1510, ptr %36, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @s2n_print_stacktrace(ptr noundef %1511)
  %1513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1514 = trunc i8 %1513 to i1
  br i1 %1514, label %1515, label %1537

1515:                                             ; preds = %1508
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = call i32 @fileno(ptr noundef %1516) #10
  %1518 = call i32 @isatty(i32 noundef %1517) #10
  %1519 = icmp ne i32 %1518, 0
  br i1 %1519, label %1520, label %1537

1520:                                             ; preds = %1515
  %1521 = load i32, ptr %36, align 4, !tbaa !5
  %1522 = call ptr @__errno_location() #11
  store i32 %1521, ptr %1522, align 4, !tbaa !5
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1526 = load i32, ptr %1525, align 4, !tbaa !5
  %1527 = call ptr @s2n_strerror(i32 noundef %1526, ptr noundef @.str.4)
  %1528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror_debug(i32 noundef %1529, ptr noundef @.str.4)
  %1531 = call ptr @__errno_location() #11
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @strerror(i32 noundef %1532) #10
  %1534 = call ptr @__errno_location() #11
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1523, ptr noundef @.str.2, i32 noundef %1524, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1527, ptr noundef %1530, ptr noundef %1533, i32 noundef %1535) #10
  br label %1554

1537:                                             ; preds = %1515, %1508
  %1538 = load i32, ptr %36, align 4, !tbaa !5
  %1539 = call ptr @__errno_location() #11
  store i32 %1538, ptr %1539, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror(i32 noundef %1543, ptr noundef @.str.4)
  %1545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror_debug(i32 noundef %1546, ptr noundef @.str.4)
  %1548 = call ptr @__errno_location() #11
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call ptr @strerror(i32 noundef %1549) #10
  %1551 = call ptr @__errno_location() #11
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef @.str.5, i32 noundef %1541, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1544, ptr noundef %1547, ptr noundef %1550, i32 noundef %1552) #10
  br label %1554

1554:                                             ; preds = %1537, %1520
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1555

1555:                                             ; preds = %1554
  br label %1556

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

1557:                                             ; No predecessors!
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558, %1500
  br label %1560

1560:                                             ; preds = %1559
  br label %1561

1561:                                             ; preds = %1560
  call void @llvm.lifetime.start.p0(i64 2, ptr %37) #10
  store i16 0, ptr %37, align 2, !tbaa !48
  br label %1562

1562:                                             ; preds = %1561
  %1563 = load i32, ptr @test_count, align 4, !tbaa !5
  %1564 = add nsw i32 %1563, 1
  store i32 %1564, ptr @test_count, align 4, !tbaa !5
  %1565 = call i32 @s2n_stuffer_read_uint16(ptr noundef %31, ptr noundef %37)
  %1566 = icmp eq i32 %1565, -1
  br i1 %1566, label %1567, label %1620

1567:                                             ; preds = %1562
  br label %1568

1568:                                             ; preds = %1567
  br label %1569

1569:                                             ; preds = %1568
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1570 = call ptr @__errno_location() #11
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  store i32 %1571, ptr %38, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @s2n_print_stacktrace(ptr noundef %1572)
  %1574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1575 = trunc i8 %1574 to i1
  br i1 %1575, label %1576, label %1598

1576:                                             ; preds = %1569
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @fileno(ptr noundef %1577) #10
  %1579 = call i32 @isatty(i32 noundef %1578) #10
  %1580 = icmp ne i32 %1579, 0
  br i1 %1580, label %1581, label %1598

1581:                                             ; preds = %1576
  %1582 = load i32, ptr %38, align 4, !tbaa !5
  %1583 = call ptr @__errno_location() #11
  store i32 %1582, ptr %1583, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = load i32, ptr @test_count, align 4, !tbaa !5
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror(i32 noundef %1587, ptr noundef @.str.4)
  %1589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @s2n_strerror_debug(i32 noundef %1590, ptr noundef @.str.4)
  %1592 = call ptr @__errno_location() #11
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #10
  %1595 = call ptr @__errno_location() #11
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1584, ptr noundef @.str.2, i32 noundef %1585, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1588, ptr noundef %1591, ptr noundef %1594, i32 noundef %1596) #10
  br label %1615

1598:                                             ; preds = %1576, %1569
  %1599 = load i32, ptr %38, align 4, !tbaa !5
  %1600 = call ptr @__errno_location() #11
  store i32 %1599, ptr %1600, align 4, !tbaa !5
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = load i32, ptr @test_count, align 4, !tbaa !5
  %1603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror(i32 noundef %1604, ptr noundef @.str.4)
  %1606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror_debug(i32 noundef %1607, ptr noundef @.str.4)
  %1609 = call ptr @__errno_location() #11
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call ptr @strerror(i32 noundef %1610) #10
  %1612 = call ptr @__errno_location() #11
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1601, ptr noundef @.str.5, i32 noundef %1602, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1605, ptr noundef %1608, ptr noundef %1611, i32 noundef %1613) #10
  br label %1615

1615:                                             ; preds = %1598, %1581
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

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

1618:                                             ; No predecessors!
  br label %1619

1619:                                             ; preds = %1618
  br label %1620

1620:                                             ; preds = %1619, %1562
  br label %1621

1621:                                             ; preds = %1620
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

1623:                                             ; preds = %1622
  %1624 = load i32, ptr @test_count, align 4, !tbaa !5
  %1625 = add nsw i32 %1624, 1
  store i32 %1625, ptr @test_count, align 4, !tbaa !5
  %1626 = load i16, ptr %37, align 2, !tbaa !48
  %1627 = zext i16 %1626 to i32
  %1628 = icmp eq i32 %1627, 772
  br i1 %1628, label %1682, label %1629

1629:                                             ; preds = %1623
  br label %1630

1630:                                             ; preds = %1629
  br label %1631

1631:                                             ; preds = %1630
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1632 = call ptr @__errno_location() #11
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  store i32 %1633, ptr %39, align 4, !tbaa !5
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @s2n_print_stacktrace(ptr noundef %1634)
  %1636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1637 = trunc i8 %1636 to i1
  br i1 %1637, label %1638, label %1660

1638:                                             ; preds = %1631
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = call i32 @fileno(ptr noundef %1639) #10
  %1641 = call i32 @isatty(i32 noundef %1640) #10
  %1642 = icmp ne i32 %1641, 0
  br i1 %1642, label %1643, label %1660

1643:                                             ; preds = %1638
  %1644 = load i32, ptr %39, align 4, !tbaa !5
  %1645 = call ptr @__errno_location() #11
  store i32 %1644, ptr %1645, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror(i32 noundef %1649, ptr noundef @.str.4)
  %1651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1652 = load i32, ptr %1651, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror_debug(i32 noundef %1652, ptr noundef @.str.4)
  %1654 = call ptr @__errno_location() #11
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = call ptr @strerror(i32 noundef %1655) #10
  %1657 = call ptr @__errno_location() #11
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1646, ptr noundef @.str.2, i32 noundef %1647, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1650, ptr noundef %1653, ptr noundef %1656, i32 noundef %1658) #10
  br label %1677

1660:                                             ; preds = %1638, %1631
  %1661 = load i32, ptr %39, align 4, !tbaa !5
  %1662 = call ptr @__errno_location() #11
  store i32 %1661, ptr %1662, align 4, !tbaa !5
  %1663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1664 = load i32, ptr @test_count, align 4, !tbaa !5
  %1665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1666 = load i32, ptr %1665, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror(i32 noundef %1666, ptr noundef @.str.4)
  %1668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = call ptr @s2n_strerror_debug(i32 noundef %1669, ptr noundef @.str.4)
  %1671 = call ptr @__errno_location() #11
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = call ptr @strerror(i32 noundef %1672) #10
  %1674 = call ptr @__errno_location() #11
  %1675 = load i32, ptr %1674, align 4, !tbaa !5
  %1676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1663, ptr noundef @.str.5, i32 noundef %1664, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1667, ptr noundef %1670, ptr noundef %1673, i32 noundef %1675) #10
  br label %1677

1677:                                             ; preds = %1660, %1643
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1678

1678:                                             ; preds = %1677
  br label %1679

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

1680:                                             ; No predecessors!
  br label %1681

1681:                                             ; preds = %1680
  br label %1682

1682:                                             ; preds = %1681, %1623
  br label %1683

1683:                                             ; preds = %1682
  br label %1684

1684:                                             ; preds = %1683
  br label %1685

1685:                                             ; preds = %1684
  %1686 = load i32, ptr @test_count, align 4, !tbaa !5
  %1687 = add nsw i32 %1686, 1
  store i32 %1687, ptr @test_count, align 4, !tbaa !5
  %1688 = load ptr, ptr %28, align 8, !tbaa !9
  %1689 = call i32 @s2n_connection_free(ptr noundef %1688)
  %1690 = icmp eq i32 %1689, -1
  br i1 %1690, label %1691, label %1744

1691:                                             ; preds = %1685
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

1693:                                             ; preds = %1692
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  %1694 = call ptr @__errno_location() #11
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  store i32 %1695, ptr %40, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @s2n_print_stacktrace(ptr noundef %1696)
  %1698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1699 = trunc i8 %1698 to i1
  br i1 %1699, label %1700, label %1722

1700:                                             ; preds = %1693
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @fileno(ptr noundef %1701) #10
  %1703 = call i32 @isatty(i32 noundef %1702) #10
  %1704 = icmp ne i32 %1703, 0
  br i1 %1704, label %1705, label %1722

1705:                                             ; preds = %1700
  %1706 = load i32, ptr %40, align 4, !tbaa !5
  %1707 = call ptr @__errno_location() #11
  store i32 %1706, ptr %1707, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = load i32, ptr @test_count, align 4, !tbaa !5
  %1710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror(i32 noundef %1711, ptr noundef @.str.4)
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror_debug(i32 noundef %1714, ptr noundef @.str.4)
  %1716 = call ptr @__errno_location() #11
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call ptr @strerror(i32 noundef %1717) #10
  %1719 = call ptr @__errno_location() #11
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1708, ptr noundef @.str.2, i32 noundef %1709, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 106, ptr noundef %1712, ptr noundef %1715, ptr noundef %1718, i32 noundef %1720) #10
  br label %1739

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

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

1740:                                             ; preds = %1739
  br label %1741

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

1742:                                             ; No predecessors!
  br label %1743

1743:                                             ; preds = %1742
  br label %1744

1744:                                             ; preds = %1743, %1685
  br label %1745

1745:                                             ; preds = %1744
  br label %1746

1746:                                             ; preds = %1745
  br label %1747

1747:                                             ; preds = %1746
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = add nsw i32 %1748, 1
  store i32 %1749, ptr @test_count, align 4, !tbaa !5
  %1750 = call i32 @s2n_stuffer_free(ptr noundef %31)
  %1751 = icmp eq i32 %1750, -1
  br i1 %1751, label %1752, label %1805

1752:                                             ; preds = %1747
  br label %1753

1753:                                             ; preds = %1752
  br label %1754

1754:                                             ; preds = %1753
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %1755 = call ptr @__errno_location() #11
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  store i32 %1756, ptr %41, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = call i32 @s2n_print_stacktrace(ptr noundef %1757)
  %1759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1760 = trunc i8 %1759 to i1
  br i1 %1760, label %1761, label %1783

1761:                                             ; preds = %1754
  %1762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1763 = call i32 @fileno(ptr noundef %1762) #10
  %1764 = call i32 @isatty(i32 noundef %1763) #10
  %1765 = icmp ne i32 %1764, 0
  br i1 %1765, label %1766, label %1783

1766:                                             ; preds = %1761
  %1767 = load i32, ptr %41, align 4, !tbaa !5
  %1768 = call ptr @__errno_location() #11
  store i32 %1767, ptr %1768, align 4, !tbaa !5
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1772, ptr noundef @.str.4)
  %1774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror_debug(i32 noundef %1775, ptr noundef @.str.4)
  %1777 = call ptr @__errno_location() #11
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @strerror(i32 noundef %1778) #10
  %1780 = call ptr @__errno_location() #11
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1769, ptr noundef @.str.2, i32 noundef %1770, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1773, ptr noundef %1776, ptr noundef %1779, i32 noundef %1781) #10
  br label %1800

1783:                                             ; preds = %1761, %1754
  %1784 = load i32, ptr %41, align 4, !tbaa !5
  %1785 = call ptr @__errno_location() #11
  store i32 %1784, ptr %1785, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef @.str.4)
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call ptr @__errno_location() #11
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #10
  %1797 = call ptr @__errno_location() #11
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1786, ptr noundef @.str.5, i32 noundef %1787, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1790, ptr noundef %1793, ptr noundef %1796, i32 noundef %1798) #10
  br label %1800

1800:                                             ; preds = %1783, %1766
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1801

1801:                                             ; preds = %1800
  br label %1802

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

1803:                                             ; No predecessors!
  br label %1804

1804:                                             ; preds = %1803
  br label %1805

1805:                                             ; preds = %1804, %1747
  br label %1806

1806:                                             ; preds = %1805
  br label %1807

1807:                                             ; preds = %1806
  call void @llvm.lifetime.end.p0(i64 2, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  br label %1808

1808:                                             ; preds = %1807, %1123
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  store ptr null, ptr %42, align 8, !tbaa !9
  br label %1809

1809:                                             ; preds = %1808
  %1810 = load i32, ptr @test_count, align 4, !tbaa !5
  %1811 = add nsw i32 %1810, 1
  store i32 %1811, ptr @test_count, align 4, !tbaa !5
  %1812 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1812, ptr %42, align 8, !tbaa !9
  %1813 = icmp eq ptr %1812, null
  br i1 %1813, label %1814, label %1867

1814:                                             ; preds = %1809
  br label %1815

1815:                                             ; preds = %1814
  br label %1816

1816:                                             ; preds = %1815
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1817 = call ptr @__errno_location() #11
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  store i32 %1818, ptr %43, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = call i32 @s2n_print_stacktrace(ptr noundef %1819)
  %1821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1822 = trunc i8 %1821 to i1
  br i1 %1822, label %1823, label %1845

1823:                                             ; preds = %1816
  %1824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1825 = call i32 @fileno(ptr noundef %1824) #10
  %1826 = call i32 @isatty(i32 noundef %1825) #10
  %1827 = icmp ne i32 %1826, 0
  br i1 %1827, label %1828, label %1845

1828:                                             ; preds = %1823
  %1829 = load i32, ptr %43, align 4, !tbaa !5
  %1830 = call ptr @__errno_location() #11
  store i32 %1829, ptr %1830, align 4, !tbaa !5
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1834, ptr noundef @.str.4)
  %1836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef @.str.4)
  %1839 = call ptr @__errno_location() #11
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call ptr @strerror(i32 noundef %1840) #10
  %1842 = call ptr @__errno_location() #11
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1831, ptr noundef @.str.2, i32 noundef %1832, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1835, ptr noundef %1838, ptr noundef %1841, i32 noundef %1843) #10
  br label %1862

1845:                                             ; preds = %1823, %1816
  %1846 = load i32, ptr %43, align 4, !tbaa !5
  %1847 = call ptr @__errno_location() #11
  store i32 %1846, ptr %1847, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = load i32, ptr @test_count, align 4, !tbaa !5
  %1850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1851 = load i32, ptr %1850, align 4, !tbaa !5
  %1852 = call ptr @s2n_strerror(i32 noundef %1851, ptr noundef @.str.4)
  %1853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror_debug(i32 noundef %1854, ptr noundef @.str.4)
  %1856 = call ptr @__errno_location() #11
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @strerror(i32 noundef %1857) #10
  %1859 = call ptr @__errno_location() #11
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1848, ptr noundef @.str.5, i32 noundef %1849, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1852, ptr noundef %1855, ptr noundef %1858, i32 noundef %1860) #10
  br label %1862

1862:                                             ; preds = %1845, %1828
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

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

1865:                                             ; No predecessors!
  br label %1866

1866:                                             ; preds = %1865
  br label %1867

1867:                                             ; preds = %1866, %1809
  br label %1868

1868:                                             ; preds = %1867
  br label %1869

1869:                                             ; preds = %1868
  br label %1870

1870:                                             ; preds = %1869
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = add nsw i32 %1871, 1
  store i32 %1872, ptr @test_count, align 4, !tbaa !5
  %1873 = load ptr, ptr %42, align 8, !tbaa !9
  %1874 = load ptr, ptr %11, align 8, !tbaa !9
  %1875 = call i32 @s2n_connection_set_config(ptr noundef %1873, ptr noundef %1874)
  %1876 = icmp eq i32 %1875, -1
  br i1 %1876, label %1877, label %1930

1877:                                             ; preds = %1870
  br label %1878

1878:                                             ; preds = %1877
  br label %1879

1879:                                             ; preds = %1878
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %1880 = call ptr @__errno_location() #11
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  store i32 %1881, ptr %44, align 4, !tbaa !5
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @s2n_print_stacktrace(ptr noundef %1882)
  %1884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1885 = trunc i8 %1884 to i1
  br i1 %1885, label %1886, label %1908

1886:                                             ; preds = %1879
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = call i32 @fileno(ptr noundef %1887) #10
  %1889 = call i32 @isatty(i32 noundef %1888) #10
  %1890 = icmp ne i32 %1889, 0
  br i1 %1890, label %1891, label %1908

1891:                                             ; preds = %1886
  %1892 = load i32, ptr %44, align 4, !tbaa !5
  %1893 = call ptr @__errno_location() #11
  store i32 %1892, ptr %1893, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = load i32, ptr @test_count, align 4, !tbaa !5
  %1896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror(i32 noundef %1897, ptr noundef @.str.4)
  %1899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror_debug(i32 noundef %1900, ptr noundef @.str.4)
  %1902 = call ptr @__errno_location() #11
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @strerror(i32 noundef %1903) #10
  %1905 = call ptr @__errno_location() #11
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef @.str.2, i32 noundef %1895, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1898, ptr noundef %1901, ptr noundef %1904, i32 noundef %1906) #10
  br label %1925

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

1925:                                             ; preds = %1908, %1891
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

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

1928:                                             ; No predecessors!
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929, %1870
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  %1933 = load ptr, ptr %42, align 8, !tbaa !9
  %1934 = call i32 @s2n_extensions_client_supported_versions_size(ptr noundef %1933)
  store i32 %1934, ptr %45, align 4, !tbaa !5
  br label %1935

1935:                                             ; preds = %1932
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = add nsw i32 %1936, 1
  store i32 %1937, ptr @test_count, align 4, !tbaa !5
  %1938 = load i32, ptr %45, align 4, !tbaa !5
  %1939 = icmp eq i32 %1938, -1
  br i1 %1939, label %1940, label %1993

1940:                                             ; preds = %1935
  br label %1941

1941:                                             ; preds = %1940
  br label %1942

1942:                                             ; preds = %1941
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1943 = call ptr @__errno_location() #11
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  store i32 %1944, ptr %46, align 4, !tbaa !5
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = call i32 @s2n_print_stacktrace(ptr noundef %1945)
  %1947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1948 = trunc i8 %1947 to i1
  br i1 %1948, label %1949, label %1971

1949:                                             ; preds = %1942
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = call i32 @fileno(ptr noundef %1950) #10
  %1952 = call i32 @isatty(i32 noundef %1951) #10
  %1953 = icmp ne i32 %1952, 0
  br i1 %1953, label %1954, label %1971

1954:                                             ; preds = %1949
  %1955 = load i32, ptr %46, align 4, !tbaa !5
  %1956 = call ptr @__errno_location() #11
  store i32 %1955, ptr %1956, align 4, !tbaa !5
  %1957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1958 = load i32, ptr @test_count, align 4, !tbaa !5
  %1959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror(i32 noundef %1960, ptr noundef @.str.4)
  %1962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @s2n_strerror_debug(i32 noundef %1963, ptr noundef @.str.4)
  %1965 = call ptr @__errno_location() #11
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call ptr @strerror(i32 noundef %1966) #10
  %1968 = call ptr @__errno_location() #11
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1957, ptr noundef @.str.2, i32 noundef %1958, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1961, ptr noundef %1964, ptr noundef %1967, i32 noundef %1969) #10
  br label %1988

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

1988:                                             ; preds = %1971, %1954
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

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

1991:                                             ; No predecessors!
  br label %1992

1992:                                             ; preds = %1991
  br label %1993

1993:                                             ; preds = %1992, %1935
  br label %1994

1994:                                             ; preds = %1993
  br label %1995

1995:                                             ; preds = %1994
  call void @llvm.lifetime.start.p0(i64 2, ptr %47) #10
  %1996 = load i32, ptr %45, align 4, !tbaa !5
  %1997 = sub nsw i32 %1996, 2
  %1998 = sub nsw i32 %1997, 2
  %1999 = trunc i32 %1998 to i16
  store i16 %1999, ptr %47, align 2, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 40, ptr %48) #10
  call void @llvm.memset.p0.i64(ptr align 8 %48, i8 0, i64 40, i1 false)
  br label %2000

2000:                                             ; preds = %1995
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = add nsw i32 %2001, 1
  store i32 %2002, ptr @test_count, align 4, !tbaa !5
  %2003 = load i16, ptr %47, align 2, !tbaa !48
  %2004 = zext i16 %2003 to i32
  %2005 = call i32 @s2n_stuffer_alloc(ptr noundef %48, i32 noundef %2004)
  %2006 = icmp eq i32 %2005, -1
  br i1 %2006, label %2007, label %2060

2007:                                             ; preds = %2000
  br label %2008

2008:                                             ; preds = %2007
  br label %2009

2009:                                             ; preds = %2008
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %2010 = call ptr @__errno_location() #11
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  store i32 %2011, ptr %49, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = call i32 @s2n_print_stacktrace(ptr noundef %2012)
  %2014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2015 = trunc i8 %2014 to i1
  br i1 %2015, label %2016, label %2038

2016:                                             ; preds = %2009
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = call i32 @fileno(ptr noundef %2017) #10
  %2019 = call i32 @isatty(i32 noundef %2018) #10
  %2020 = icmp ne i32 %2019, 0
  br i1 %2020, label %2021, label %2038

2021:                                             ; preds = %2016
  %2022 = load i32, ptr %49, align 4, !tbaa !5
  %2023 = call ptr @__errno_location() #11
  store i32 %2022, ptr %2023, 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 @.str.4)
  %2029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror_debug(i32 noundef %2030, ptr noundef @.str.4)
  %2032 = call ptr @__errno_location() #11
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call ptr @strerror(i32 noundef %2033) #10
  %2035 = call ptr @__errno_location() #11
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2024, ptr noundef @.str.2, i32 noundef %2025, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2028, ptr noundef %2031, ptr noundef %2034, i32 noundef %2036) #10
  br label %2055

2038:                                             ; preds = %2016, %2009
  %2039 = load i32, ptr %49, align 4, !tbaa !5
  %2040 = call ptr @__errno_location() #11
  store i32 %2039, ptr %2040, align 4, !tbaa !5
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @s2n_strerror(i32 noundef %2044, ptr noundef @.str.4)
  %2046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef @.str.4)
  %2049 = call ptr @__errno_location() #11
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @strerror(i32 noundef %2050) #10
  %2052 = call ptr @__errno_location() #11
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2041, ptr noundef @.str.5, i32 noundef %2042, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2045, ptr noundef %2048, ptr noundef %2051, i32 noundef %2053) #10
  br label %2055

2055:                                             ; preds = %2038, %2021
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

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

2058:                                             ; No predecessors!
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

2060:                                             ; preds = %2059, %2000
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062
  %2064 = load i32, ptr @test_count, align 4, !tbaa !5
  %2065 = add nsw i32 %2064, 1
  store i32 %2065, ptr @test_count, align 4, !tbaa !5
  %2066 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 3), align 8, !tbaa !45
  %2067 = load ptr, ptr %42, align 8, !tbaa !9
  %2068 = call i32 %2066(ptr noundef %2067, ptr noundef %48)
  %2069 = icmp eq i32 %2068, -1
  br i1 %2069, label %2070, label %2123

2070:                                             ; preds = %2063
  br label %2071

2071:                                             ; preds = %2070
  br label %2072

2072:                                             ; preds = %2071
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %2073 = call ptr @__errno_location() #11
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  store i32 %2074, ptr %50, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = call i32 @s2n_print_stacktrace(ptr noundef %2075)
  %2077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2078 = trunc i8 %2077 to i1
  br i1 %2078, label %2079, label %2101

2079:                                             ; preds = %2072
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = call i32 @fileno(ptr noundef %2080) #10
  %2082 = call i32 @isatty(i32 noundef %2081) #10
  %2083 = icmp ne i32 %2082, 0
  br i1 %2083, label %2084, label %2101

2084:                                             ; preds = %2079
  %2085 = load i32, ptr %50, align 4, !tbaa !5
  %2086 = call ptr @__errno_location() #11
  store i32 %2085, ptr %2086, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror(i32 noundef %2090, ptr noundef @.str.4)
  %2092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror_debug(i32 noundef %2093, ptr noundef @.str.4)
  %2095 = call ptr @__errno_location() #11
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call ptr @strerror(i32 noundef %2096) #10
  %2098 = call ptr @__errno_location() #11
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef @.str.2, i32 noundef %2088, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2091, ptr noundef %2094, ptr noundef %2097, i32 noundef %2099) #10
  br label %2118

2101:                                             ; preds = %2079, %2072
  %2102 = load i32, ptr %50, align 4, !tbaa !5
  %2103 = call ptr @__errno_location() #11
  store i32 %2102, ptr %2103, align 4, !tbaa !5
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = load i32, ptr @test_count, align 4, !tbaa !5
  %2106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call ptr @s2n_strerror(i32 noundef %2107, ptr noundef @.str.4)
  %2109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror_debug(i32 noundef %2110, ptr noundef @.str.4)
  %2112 = call ptr @__errno_location() #11
  %2113 = load i32, ptr %2112, align 4, !tbaa !5
  %2114 = call ptr @strerror(i32 noundef %2113) #10
  %2115 = call ptr @__errno_location() #11
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2104, ptr noundef @.str.5, i32 noundef %2105, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2108, ptr noundef %2111, ptr noundef %2114, i32 noundef %2116) #10
  br label %2118

2118:                                             ; preds = %2101, %2084
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2119

2119:                                             ; preds = %2118
  br label %2120

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

2121:                                             ; No predecessors!
  br label %2122

2122:                                             ; preds = %2121
  br label %2123

2123:                                             ; preds = %2122, %2063
  br label %2124

2124:                                             ; preds = %2123
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

2126:                                             ; preds = %2125
  %2127 = load i32, ptr @test_count, align 4, !tbaa !5
  %2128 = add nsw i32 %2127, 1
  store i32 %2128, ptr @test_count, align 4, !tbaa !5
  %2129 = load i16, ptr %47, align 2, !tbaa !48
  %2130 = zext i16 %2129 to i32
  %2131 = getelementptr inbounds %struct.s2n_stuffer, ptr %48, i32 0, i32 2
  %2132 = load i32, ptr %2131, align 4, !tbaa !49
  %2133 = getelementptr inbounds %struct.s2n_stuffer, ptr %48, i32 0, i32 1
  %2134 = load i32, ptr %2133, align 8, !tbaa !50
  %2135 = sub i32 %2132, %2134
  %2136 = icmp eq i32 %2130, %2135
  br i1 %2136, label %2190, label %2137

2137:                                             ; preds = %2126
  br label %2138

2138:                                             ; preds = %2137
  br label %2139

2139:                                             ; preds = %2138
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2140 = call ptr @__errno_location() #11
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  store i32 %2141, ptr %51, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = call i32 @s2n_print_stacktrace(ptr noundef %2142)
  %2144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2145 = trunc i8 %2144 to i1
  br i1 %2145, label %2146, label %2168

2146:                                             ; preds = %2139
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = call i32 @fileno(ptr noundef %2147) #10
  %2149 = call i32 @isatty(i32 noundef %2148) #10
  %2150 = icmp ne i32 %2149, 0
  br i1 %2150, label %2151, label %2168

2151:                                             ; preds = %2146
  %2152 = load i32, ptr %51, align 4, !tbaa !5
  %2153 = call ptr @__errno_location() #11
  store i32 %2152, ptr %2153, align 4, !tbaa !5
  %2154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2155 = load i32, ptr @test_count, align 4, !tbaa !5
  %2156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror(i32 noundef %2157, ptr noundef @.str.4)
  %2159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror_debug(i32 noundef %2160, ptr noundef @.str.4)
  %2162 = call ptr @__errno_location() #11
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @strerror(i32 noundef %2163) #10
  %2165 = call ptr @__errno_location() #11
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2154, ptr noundef @.str.2, i32 noundef %2155, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2158, ptr noundef %2161, ptr noundef %2164, i32 noundef %2166) #10
  br label %2185

2168:                                             ; preds = %2146, %2139
  %2169 = load i32, ptr %51, align 4, !tbaa !5
  %2170 = call ptr @__errno_location() #11
  store i32 %2169, ptr %2170, align 4, !tbaa !5
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = load i32, ptr @test_count, align 4, !tbaa !5
  %2173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call ptr @s2n_strerror(i32 noundef %2174, ptr noundef @.str.4)
  %2176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2177 = load i32, ptr %2176, align 4, !tbaa !5
  %2178 = call ptr @s2n_strerror_debug(i32 noundef %2177, ptr noundef @.str.4)
  %2179 = call ptr @__errno_location() #11
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  %2181 = call ptr @strerror(i32 noundef %2180) #10
  %2182 = call ptr @__errno_location() #11
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  %2184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2171, ptr noundef @.str.5, i32 noundef %2172, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2175, ptr noundef %2178, ptr noundef %2181, i32 noundef %2183) #10
  br label %2185

2185:                                             ; preds = %2168, %2151
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2186

2186:                                             ; preds = %2185
  br label %2187

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

2188:                                             ; No predecessors!
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

2190:                                             ; preds = %2189, %2126
  br label %2191

2191:                                             ; preds = %2190
  br label %2192

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

2193:                                             ; preds = %2192
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = add nsw i32 %2194, 1
  store i32 %2195, ptr @test_count, align 4, !tbaa !5
  %2196 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2196, ptr %52, align 8, !tbaa !9
  %2197 = icmp eq ptr %2196, null
  br i1 %2197, label %2198, label %2251

2198:                                             ; preds = %2193
  br label %2199

2199:                                             ; preds = %2198
  br label %2200

2200:                                             ; preds = %2199
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  %2201 = call ptr @__errno_location() #11
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  store i32 %2202, ptr %53, align 4, !tbaa !5
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = call i32 @s2n_print_stacktrace(ptr noundef %2203)
  %2205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2206 = trunc i8 %2205 to i1
  br i1 %2206, label %2207, label %2229

2207:                                             ; preds = %2200
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = call i32 @fileno(ptr noundef %2208) #10
  %2210 = call i32 @isatty(i32 noundef %2209) #10
  %2211 = icmp ne i32 %2210, 0
  br i1 %2211, label %2212, label %2229

2212:                                             ; preds = %2207
  %2213 = load i32, ptr %53, align 4, !tbaa !5
  %2214 = call ptr @__errno_location() #11
  store i32 %2213, ptr %2214, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @s2n_strerror(i32 noundef %2218, ptr noundef @.str.4)
  %2220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror_debug(i32 noundef %2221, ptr noundef @.str.4)
  %2223 = call ptr @__errno_location() #11
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @strerror(i32 noundef %2224) #10
  %2226 = call ptr @__errno_location() #11
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2215, ptr noundef @.str.2, i32 noundef %2216, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2219, ptr noundef %2222, ptr noundef %2225, i32 noundef %2227) #10
  br label %2246

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

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

2247:                                             ; preds = %2246
  br label %2248

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

2249:                                             ; No predecessors!
  br label %2250

2250:                                             ; preds = %2249
  br label %2251

2251:                                             ; preds = %2250, %2193
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  br label %2254

2254:                                             ; preds = %2253
  %2255 = load i32, ptr @test_count, align 4, !tbaa !5
  %2256 = add nsw i32 %2255, 1
  store i32 %2256, ptr @test_count, align 4, !tbaa !5
  %2257 = load ptr, ptr %52, align 8, !tbaa !9
  %2258 = load ptr, ptr %11, align 8, !tbaa !9
  %2259 = call i32 @s2n_connection_set_config(ptr noundef %2257, ptr noundef %2258)
  %2260 = icmp eq i32 %2259, -1
  br i1 %2260, label %2261, label %2314

2261:                                             ; preds = %2254
  br label %2262

2262:                                             ; preds = %2261
  br label %2263

2263:                                             ; preds = %2262
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2264 = call ptr @__errno_location() #11
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  store i32 %2265, ptr %54, align 4, !tbaa !5
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = call i32 @s2n_print_stacktrace(ptr noundef %2266)
  %2268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2269 = trunc i8 %2268 to i1
  br i1 %2269, label %2270, label %2292

2270:                                             ; preds = %2263
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @fileno(ptr noundef %2271) #10
  %2273 = call i32 @isatty(i32 noundef %2272) #10
  %2274 = icmp ne i32 %2273, 0
  br i1 %2274, label %2275, label %2292

2275:                                             ; preds = %2270
  %2276 = load i32, ptr %54, align 4, !tbaa !5
  %2277 = call ptr @__errno_location() #11
  store i32 %2276, ptr %2277, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @s2n_strerror(i32 noundef %2281, ptr noundef @.str.4)
  %2283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call ptr @s2n_strerror_debug(i32 noundef %2284, ptr noundef @.str.4)
  %2286 = call ptr @__errno_location() #11
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call ptr @strerror(i32 noundef %2287) #10
  %2289 = call ptr @__errno_location() #11
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2278, ptr noundef @.str.2, i32 noundef %2279, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2282, ptr noundef %2285, ptr noundef %2288, i32 noundef %2290) #10
  br label %2309

2292:                                             ; preds = %2270, %2263
  %2293 = load i32, ptr %54, align 4, !tbaa !5
  %2294 = call ptr @__errno_location() #11
  store i32 %2293, ptr %2294, align 4, !tbaa !5
  %2295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2296 = load i32, ptr @test_count, align 4, !tbaa !5
  %2297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2298 = load i32, ptr %2297, align 4, !tbaa !5
  %2299 = call ptr @s2n_strerror(i32 noundef %2298, ptr noundef @.str.4)
  %2300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2301 = load i32, ptr %2300, align 4, !tbaa !5
  %2302 = call ptr @s2n_strerror_debug(i32 noundef %2301, ptr noundef @.str.4)
  %2303 = call ptr @__errno_location() #11
  %2304 = load i32, ptr %2303, align 4, !tbaa !5
  %2305 = call ptr @strerror(i32 noundef %2304) #10
  %2306 = call ptr @__errno_location() #11
  %2307 = load i32, ptr %2306, align 4, !tbaa !5
  %2308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2295, ptr noundef @.str.5, i32 noundef %2296, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2299, ptr noundef %2302, ptr noundef %2305, i32 noundef %2307) #10
  br label %2309

2309:                                             ; preds = %2292, %2275
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

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

2312:                                             ; No predecessors!
  br label %2313

2313:                                             ; preds = %2312
  br label %2314

2314:                                             ; preds = %2313, %2254
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  br label %2317

2317:                                             ; preds = %2316
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = add nsw i32 %2318, 1
  store i32 %2319, ptr @test_count, align 4, !tbaa !5
  %2320 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %2321 = load ptr, ptr %52, align 8, !tbaa !9
  %2322 = call i32 %2320(ptr noundef %2321, ptr noundef %48)
  %2323 = icmp eq i32 %2322, -1
  br i1 %2323, label %2324, label %2377

2324:                                             ; preds = %2317
  br label %2325

2325:                                             ; preds = %2324
  br label %2326

2326:                                             ; preds = %2325
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %2327 = call ptr @__errno_location() #11
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  store i32 %2328, ptr %55, align 4, !tbaa !5
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = call i32 @s2n_print_stacktrace(ptr noundef %2329)
  %2331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2332 = trunc i8 %2331 to i1
  br i1 %2332, label %2333, label %2355

2333:                                             ; preds = %2326
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = call i32 @fileno(ptr noundef %2334) #10
  %2336 = call i32 @isatty(i32 noundef %2335) #10
  %2337 = icmp ne i32 %2336, 0
  br i1 %2337, label %2338, label %2355

2338:                                             ; preds = %2333
  %2339 = load i32, ptr %55, align 4, !tbaa !5
  %2340 = call ptr @__errno_location() #11
  store i32 %2339, ptr %2340, align 4, !tbaa !5
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = load i32, ptr @test_count, align 4, !tbaa !5
  %2343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  %2345 = call ptr @s2n_strerror(i32 noundef %2344, ptr noundef @.str.4)
  %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_debug(i32 noundef %2347, ptr noundef @.str.4)
  %2349 = call ptr @__errno_location() #11
  %2350 = load i32, ptr %2349, align 4, !tbaa !5
  %2351 = call ptr @strerror(i32 noundef %2350) #10
  %2352 = call ptr @__errno_location() #11
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2341, ptr noundef @.str.2, i32 noundef %2342, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2345, ptr noundef %2348, ptr noundef %2351, i32 noundef %2353) #10
  br label %2372

2355:                                             ; preds = %2333, %2326
  %2356 = load i32, ptr %55, align 4, !tbaa !5
  %2357 = call ptr @__errno_location() #11
  store i32 %2356, ptr %2357, align 4, !tbaa !5
  %2358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2359 = load i32, ptr @test_count, align 4, !tbaa !5
  %2360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  %2362 = call ptr @s2n_strerror(i32 noundef %2361, ptr noundef @.str.4)
  %2363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2364 = load i32, ptr %2363, align 4, !tbaa !5
  %2365 = call ptr @s2n_strerror_debug(i32 noundef %2364, ptr noundef @.str.4)
  %2366 = call ptr @__errno_location() #11
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = call ptr @strerror(i32 noundef %2367) #10
  %2369 = call ptr @__errno_location() #11
  %2370 = load i32, ptr %2369, align 4, !tbaa !5
  %2371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2358, ptr noundef @.str.5, i32 noundef %2359, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2362, ptr noundef %2365, ptr noundef %2368, i32 noundef %2370) #10
  br label %2372

2372:                                             ; preds = %2355, %2338
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2373

2373:                                             ; preds = %2372
  br label %2374

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

2375:                                             ; No predecessors!
  br label %2376

2376:                                             ; preds = %2375
  br label %2377

2377:                                             ; preds = %2376, %2317
  br label %2378

2378:                                             ; preds = %2377
  br label %2379

2379:                                             ; preds = %2378
  br label %2380

2380:                                             ; preds = %2379
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = add nsw i32 %2381, 1
  store i32 %2382, ptr @test_count, align 4, !tbaa !5
  %2383 = load ptr, ptr %52, align 8, !tbaa !9
  %2384 = getelementptr inbounds %struct.s2n_connection, ptr %2383, i32 0, i32 21
  %2385 = load i8, ptr %2384, align 2, !tbaa !52
  %2386 = zext i8 %2385 to i32
  %2387 = load i8, ptr %10, align 1, !tbaa !15
  %2388 = zext i8 %2387 to i32
  %2389 = icmp eq i32 %2386, %2388
  br i1 %2389, label %2443, label %2390

2390:                                             ; preds = %2380
  br label %2391

2391:                                             ; preds = %2390
  br label %2392

2392:                                             ; preds = %2391
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2393 = call ptr @__errno_location() #11
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  store i32 %2394, ptr %56, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = call i32 @s2n_print_stacktrace(ptr noundef %2395)
  %2397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2398 = trunc i8 %2397 to i1
  br i1 %2398, label %2399, label %2421

2399:                                             ; preds = %2392
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = call i32 @fileno(ptr noundef %2400) #10
  %2402 = call i32 @isatty(i32 noundef %2401) #10
  %2403 = icmp ne i32 %2402, 0
  br i1 %2403, label %2404, label %2421

2404:                                             ; preds = %2399
  %2405 = load i32, ptr %56, align 4, !tbaa !5
  %2406 = call ptr @__errno_location() #11
  store i32 %2405, ptr %2406, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror(i32 noundef %2410, ptr noundef @.str.4)
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror_debug(i32 noundef %2413, ptr noundef @.str.4)
  %2415 = call ptr @__errno_location() #11
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @strerror(i32 noundef %2416) #10
  %2418 = call ptr @__errno_location() #11
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2407, ptr noundef @.str.2, i32 noundef %2408, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2411, ptr noundef %2414, ptr noundef %2417, i32 noundef %2419) #10
  br label %2438

2421:                                             ; preds = %2399, %2392
  %2422 = load i32, ptr %56, align 4, !tbaa !5
  %2423 = call ptr @__errno_location() #11
  store i32 %2422, ptr %2423, align 4, !tbaa !5
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef @.str.4)
  %2429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror_debug(i32 noundef %2430, ptr noundef @.str.4)
  %2432 = call ptr @__errno_location() #11
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @strerror(i32 noundef %2433) #10
  %2435 = call ptr @__errno_location() #11
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2424, ptr noundef @.str.5, i32 noundef %2425, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2428, ptr noundef %2431, ptr noundef %2434, i32 noundef %2436) #10
  br label %2438

2438:                                             ; preds = %2421, %2404
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

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

2441:                                             ; No predecessors!
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

2443:                                             ; preds = %2442, %2380
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

2446:                                             ; preds = %2445
  %2447 = load i32, ptr @test_count, align 4, !tbaa !5
  %2448 = add nsw i32 %2447, 1
  store i32 %2448, ptr @test_count, align 4, !tbaa !5
  %2449 = load ptr, ptr %52, align 8, !tbaa !9
  %2450 = getelementptr inbounds %struct.s2n_connection, ptr %2449, i32 0, i32 22
  %2451 = load i8, ptr %2450, align 1, !tbaa !53
  %2452 = zext i8 %2451 to i32
  %2453 = load i8, ptr %10, align 1, !tbaa !15
  %2454 = zext i8 %2453 to i32
  %2455 = icmp eq i32 %2452, %2454
  br i1 %2455, label %2509, label %2456

2456:                                             ; preds = %2446
  br label %2457

2457:                                             ; preds = %2456
  br label %2458

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

2465:                                             ; preds = %2458
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = call i32 @fileno(ptr noundef %2466) #10
  %2468 = call i32 @isatty(i32 noundef %2467) #10
  %2469 = icmp ne i32 %2468, 0
  br i1 %2469, label %2470, label %2487

2470:                                             ; preds = %2465
  %2471 = load i32, ptr %57, align 4, !tbaa !5
  %2472 = call ptr @__errno_location() #11
  store i32 %2471, ptr %2472, align 4, !tbaa !5
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = load i32, ptr @test_count, align 4, !tbaa !5
  %2475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @s2n_strerror(i32 noundef %2476, ptr noundef @.str.4)
  %2478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror_debug(i32 noundef %2479, ptr noundef @.str.4)
  %2481 = call ptr @__errno_location() #11
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call ptr @strerror(i32 noundef %2482) #10
  %2484 = call ptr @__errno_location() #11
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2473, ptr noundef @.str.2, i32 noundef %2474, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2477, ptr noundef %2480, ptr noundef %2483, i32 noundef %2485) #10
  br label %2504

2487:                                             ; preds = %2465, %2458
  %2488 = load i32, ptr %57, align 4, !tbaa !5
  %2489 = call ptr @__errno_location() #11
  store i32 %2488, ptr %2489, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror(i32 noundef %2493, ptr noundef @.str.4)
  %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_debug(i32 noundef %2496, ptr noundef @.str.4)
  %2498 = call ptr @__errno_location() #11
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @strerror(i32 noundef %2499) #10
  %2501 = call ptr @__errno_location() #11
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2490, ptr noundef @.str.5, i32 noundef %2491, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2494, ptr noundef %2497, ptr noundef %2500, i32 noundef %2502) #10
  br label %2504

2504:                                             ; preds = %2487, %2470
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

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

2507:                                             ; No predecessors!
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508, %2446
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511
  %2513 = load i32, ptr @test_count, align 4, !tbaa !5
  %2514 = add nsw i32 %2513, 1
  store i32 %2514, ptr @test_count, align 4, !tbaa !5
  %2515 = load ptr, ptr %52, align 8, !tbaa !9
  %2516 = getelementptr inbounds %struct.s2n_connection, ptr %2515, i32 0, i32 23
  %2517 = load i8, ptr %2516, align 4, !tbaa !54
  %2518 = zext i8 %2517 to i32
  %2519 = load i8, ptr %10, align 1, !tbaa !15
  %2520 = zext i8 %2519 to i32
  %2521 = icmp eq i32 %2518, %2520
  br i1 %2521, label %2575, label %2522

2522:                                             ; preds = %2512
  br label %2523

2523:                                             ; preds = %2522
  br label %2524

2524:                                             ; preds = %2523
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  %2525 = call ptr @__errno_location() #11
  %2526 = load i32, ptr %2525, align 4, !tbaa !5
  store i32 %2526, ptr %58, align 4, !tbaa !5
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = call i32 @s2n_print_stacktrace(ptr noundef %2527)
  %2529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2530 = trunc i8 %2529 to i1
  br i1 %2530, label %2531, label %2553

2531:                                             ; preds = %2524
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = call i32 @fileno(ptr noundef %2532) #10
  %2534 = call i32 @isatty(i32 noundef %2533) #10
  %2535 = icmp ne i32 %2534, 0
  br i1 %2535, label %2536, label %2553

2536:                                             ; preds = %2531
  %2537 = load i32, ptr %58, align 4, !tbaa !5
  %2538 = call ptr @__errno_location() #11
  store i32 %2537, ptr %2538, align 4, !tbaa !5
  %2539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2540 = load i32, ptr @test_count, align 4, !tbaa !5
  %2541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @s2n_strerror(i32 noundef %2542, ptr noundef @.str.4)
  %2544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror_debug(i32 noundef %2545, ptr noundef @.str.4)
  %2547 = call ptr @__errno_location() #11
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @strerror(i32 noundef %2548) #10
  %2550 = call ptr @__errno_location() #11
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  %2552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2539, ptr noundef @.str.2, i32 noundef %2540, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2543, ptr noundef %2546, ptr noundef %2549, i32 noundef %2551) #10
  br label %2570

2553:                                             ; preds = %2531, %2524
  %2554 = load i32, ptr %58, align 4, !tbaa !5
  %2555 = call ptr @__errno_location() #11
  store i32 %2554, ptr %2555, align 4, !tbaa !5
  %2556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2557 = load i32, ptr @test_count, align 4, !tbaa !5
  %2558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror(i32 noundef %2559, ptr noundef @.str.4)
  %2561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror_debug(i32 noundef %2562, ptr noundef @.str.4)
  %2564 = call ptr @__errno_location() #11
  %2565 = load i32, ptr %2564, align 4, !tbaa !5
  %2566 = call ptr @strerror(i32 noundef %2565) #10
  %2567 = call ptr @__errno_location() #11
  %2568 = load i32, ptr %2567, align 4, !tbaa !5
  %2569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2556, ptr noundef @.str.5, i32 noundef %2557, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2560, ptr noundef %2563, ptr noundef %2566, i32 noundef %2568) #10
  br label %2570

2570:                                             ; preds = %2553, %2536
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

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

2573:                                             ; No predecessors!
  br label %2574

2574:                                             ; preds = %2573
  br label %2575

2575:                                             ; preds = %2574, %2512
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576
  br label %2578

2578:                                             ; preds = %2577
  %2579 = load i32, ptr @test_count, align 4, !tbaa !5
  %2580 = add nsw i32 %2579, 1
  store i32 %2580, ptr @test_count, align 4, !tbaa !5
  %2581 = load ptr, ptr %42, align 8, !tbaa !9
  %2582 = call i32 @s2n_connection_free(ptr noundef %2581)
  %2583 = icmp eq i32 %2582, -1
  br i1 %2583, label %2584, label %2637

2584:                                             ; preds = %2578
  br label %2585

2585:                                             ; preds = %2584
  br label %2586

2586:                                             ; preds = %2585
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2587 = call ptr @__errno_location() #11
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  store i32 %2588, ptr %59, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @s2n_print_stacktrace(ptr noundef %2589)
  %2591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2592 = trunc i8 %2591 to i1
  br i1 %2592, label %2593, label %2615

2593:                                             ; preds = %2586
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @fileno(ptr noundef %2594) #10
  %2596 = call i32 @isatty(i32 noundef %2595) #10
  %2597 = icmp ne i32 %2596, 0
  br i1 %2597, label %2598, label %2615

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

2615:                                             ; preds = %2593, %2586
  %2616 = load i32, ptr %59, align 4, !tbaa !5
  %2617 = call ptr @__errno_location() #11
  store i32 %2616, ptr %2617, align 4, !tbaa !5
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = load i32, ptr @test_count, align 4, !tbaa !5
  %2620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror(i32 noundef %2621, ptr noundef @.str.4)
  %2623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call ptr @s2n_strerror_debug(i32 noundef %2624, ptr noundef @.str.4)
  %2626 = call ptr @__errno_location() #11
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  %2628 = call ptr @strerror(i32 noundef %2627) #10
  %2629 = call ptr @__errno_location() #11
  %2630 = load i32, ptr %2629, align 4, !tbaa !5
  %2631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2618, ptr noundef @.str.5, i32 noundef %2619, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2622, ptr noundef %2625, ptr noundef %2628, i32 noundef %2630) #10
  br label %2632

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

2633:                                             ; preds = %2632
  br label %2634

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

2635:                                             ; No predecessors!
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636, %2578
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = add nsw i32 %2641, 1
  store i32 %2642, ptr @test_count, align 4, !tbaa !5
  %2643 = load ptr, ptr %52, align 8, !tbaa !9
  %2644 = call i32 @s2n_connection_free(ptr noundef %2643)
  %2645 = icmp eq i32 %2644, -1
  br i1 %2645, label %2646, label %2699

2646:                                             ; preds = %2640
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

2648:                                             ; preds = %2647
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2649 = call ptr @__errno_location() #11
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  store i32 %2650, ptr %60, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = call i32 @s2n_print_stacktrace(ptr noundef %2651)
  %2653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2654 = trunc i8 %2653 to i1
  br i1 %2654, label %2655, label %2677

2655:                                             ; preds = %2648
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = call i32 @fileno(ptr noundef %2656) #10
  %2658 = call i32 @isatty(i32 noundef %2657) #10
  %2659 = icmp ne i32 %2658, 0
  br i1 %2659, label %2660, label %2677

2660:                                             ; preds = %2655
  %2661 = load i32, ptr %60, align 4, !tbaa !5
  %2662 = call ptr @__errno_location() #11
  store i32 %2661, ptr %2662, align 4, !tbaa !5
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = load i32, ptr @test_count, align 4, !tbaa !5
  %2665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call ptr @s2n_strerror(i32 noundef %2666, ptr noundef @.str.4)
  %2668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call ptr @s2n_strerror_debug(i32 noundef %2669, ptr noundef @.str.4)
  %2671 = call ptr @__errno_location() #11
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  %2673 = call ptr @strerror(i32 noundef %2672) #10
  %2674 = call ptr @__errno_location() #11
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  %2676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2663, ptr noundef @.str.2, i32 noundef %2664, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2667, ptr noundef %2670, ptr noundef %2673, i32 noundef %2675) #10
  br label %2694

2677:                                             ; preds = %2655, %2648
  %2678 = load i32, ptr %60, align 4, !tbaa !5
  %2679 = call ptr @__errno_location() #11
  store i32 %2678, ptr %2679, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror_debug(i32 noundef %2686, ptr noundef @.str.4)
  %2688 = call ptr @__errno_location() #11
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @strerror(i32 noundef %2689) #10
  %2691 = call ptr @__errno_location() #11
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef @.str.5, i32 noundef %2681, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2684, ptr noundef %2687, ptr noundef %2690, i32 noundef %2692) #10
  br label %2694

2694:                                             ; preds = %2677, %2660
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

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

2697:                                             ; No predecessors!
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698, %2640
  br label %2700

2700:                                             ; preds = %2699
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

2702:                                             ; preds = %2701
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = add nsw i32 %2703, 1
  store i32 %2704, ptr @test_count, align 4, !tbaa !5
  %2705 = call i32 @s2n_stuffer_free(ptr noundef %48)
  %2706 = icmp eq i32 %2705, -1
  br i1 %2706, label %2707, label %2760

2707:                                             ; preds = %2702
  br label %2708

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2710 = call ptr @__errno_location() #11
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  store i32 %2711, ptr %61, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = call i32 @s2n_print_stacktrace(ptr noundef %2712)
  %2714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2715 = trunc i8 %2714 to i1
  br i1 %2715, label %2716, label %2738

2716:                                             ; preds = %2709
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @fileno(ptr noundef %2717) #10
  %2719 = call i32 @isatty(i32 noundef %2718) #10
  %2720 = icmp ne i32 %2719, 0
  br i1 %2720, label %2721, label %2738

2721:                                             ; preds = %2716
  %2722 = load i32, ptr %61, align 4, !tbaa !5
  %2723 = call ptr @__errno_location() #11
  store i32 %2722, ptr %2723, align 4, !tbaa !5
  %2724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2725 = load i32, ptr @test_count, align 4, !tbaa !5
  %2726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call ptr @s2n_strerror(i32 noundef %2727, ptr noundef @.str.4)
  %2729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror_debug(i32 noundef %2730, ptr noundef @.str.4)
  %2732 = call ptr @__errno_location() #11
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #10
  %2735 = call ptr @__errno_location() #11
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2724, ptr noundef @.str.2, i32 noundef %2725, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2728, ptr noundef %2731, ptr noundef %2734, i32 noundef %2736) #10
  br label %2755

2738:                                             ; preds = %2716, %2709
  %2739 = load i32, ptr %61, align 4, !tbaa !5
  %2740 = call ptr @__errno_location() #11
  store i32 %2739, ptr %2740, align 4, !tbaa !5
  %2741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2742 = load i32, ptr @test_count, align 4, !tbaa !5
  %2743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @s2n_strerror(i32 noundef %2744, ptr noundef @.str.4)
  %2746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @s2n_strerror_debug(i32 noundef %2747, ptr noundef @.str.4)
  %2749 = call ptr @__errno_location() #11
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call ptr @strerror(i32 noundef %2750) #10
  %2752 = call ptr @__errno_location() #11
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2741, ptr noundef @.str.5, i32 noundef %2742, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2745, ptr noundef %2748, ptr noundef %2751, i32 noundef %2753) #10
  br label %2755

2755:                                             ; preds = %2738, %2721
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2756

2756:                                             ; preds = %2755
  br label %2757

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

2758:                                             ; No predecessors!
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

2760:                                             ; preds = %2759, %2702
  br label %2761

2761:                                             ; preds = %2760
  br label %2762

2762:                                             ; preds = %2761
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  store ptr null, ptr %62, align 8, !tbaa !9
  br label %2763

2763:                                             ; preds = %2762
  %2764 = load i32, ptr @test_count, align 4, !tbaa !5
  %2765 = add nsw i32 %2764, 1
  store i32 %2765, ptr @test_count, align 4, !tbaa !5
  %2766 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2766, ptr %62, align 8, !tbaa !9
  %2767 = icmp eq ptr %2766, null
  br i1 %2767, label %2768, label %2821

2768:                                             ; preds = %2763
  br label %2769

2769:                                             ; preds = %2768
  br label %2770

2770:                                             ; preds = %2769
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2771 = call ptr @__errno_location() #11
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  store i32 %2772, ptr %63, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = call i32 @s2n_print_stacktrace(ptr noundef %2773)
  %2775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2776 = trunc i8 %2775 to i1
  br i1 %2776, label %2777, label %2799

2777:                                             ; preds = %2770
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = call i32 @fileno(ptr noundef %2778) #10
  %2780 = call i32 @isatty(i32 noundef %2779) #10
  %2781 = icmp ne i32 %2780, 0
  br i1 %2781, label %2782, label %2799

2782:                                             ; preds = %2777
  %2783 = load i32, ptr %63, align 4, !tbaa !5
  %2784 = call ptr @__errno_location() #11
  store i32 %2783, ptr %2784, align 4, !tbaa !5
  %2785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2786 = load i32, ptr @test_count, align 4, !tbaa !5
  %2787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror(i32 noundef %2788, ptr noundef @.str.4)
  %2790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2791 = load i32, ptr %2790, align 4, !tbaa !5
  %2792 = call ptr @s2n_strerror_debug(i32 noundef %2791, ptr noundef @.str.4)
  %2793 = call ptr @__errno_location() #11
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  %2795 = call ptr @strerror(i32 noundef %2794) #10
  %2796 = call ptr @__errno_location() #11
  %2797 = load i32, ptr %2796, align 4, !tbaa !5
  %2798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2785, ptr noundef @.str.2, i32 noundef %2786, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2789, ptr noundef %2792, ptr noundef %2795, i32 noundef %2797) #10
  br label %2816

2799:                                             ; preds = %2777, %2770
  %2800 = load i32, ptr %63, align 4, !tbaa !5
  %2801 = call ptr @__errno_location() #11
  store i32 %2800, ptr %2801, align 4, !tbaa !5
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = load i32, ptr @test_count, align 4, !tbaa !5
  %2804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @s2n_strerror(i32 noundef %2805, ptr noundef @.str.4)
  %2807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call ptr @s2n_strerror_debug(i32 noundef %2808, ptr noundef @.str.4)
  %2810 = call ptr @__errno_location() #11
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = call ptr @strerror(i32 noundef %2811) #10
  %2813 = call ptr @__errno_location() #11
  %2814 = load i32, ptr %2813, align 4, !tbaa !5
  %2815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2802, ptr noundef @.str.5, i32 noundef %2803, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2806, ptr noundef %2809, ptr noundef %2812, i32 noundef %2814) #10
  br label %2816

2816:                                             ; preds = %2799, %2782
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2817

2817:                                             ; preds = %2816
  br label %2818

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

2819:                                             ; No predecessors!
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820, %2763
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

2823:                                             ; preds = %2822
  br label %2824

2824:                                             ; preds = %2823
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = add nsw i32 %2825, 1
  store i32 %2826, ptr @test_count, align 4, !tbaa !5
  %2827 = load ptr, ptr %62, align 8, !tbaa !9
  %2828 = load ptr, ptr %11, align 8, !tbaa !9
  %2829 = call i32 @s2n_connection_set_config(ptr noundef %2827, ptr noundef %2828)
  %2830 = icmp eq i32 %2829, -1
  br i1 %2830, label %2831, label %2884

2831:                                             ; preds = %2824
  br label %2832

2832:                                             ; preds = %2831
  br label %2833

2833:                                             ; preds = %2832
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %2834 = call ptr @__errno_location() #11
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  store i32 %2835, ptr %64, align 4, !tbaa !5
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = call i32 @s2n_print_stacktrace(ptr noundef %2836)
  %2838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2839 = trunc i8 %2838 to i1
  br i1 %2839, label %2840, label %2862

2840:                                             ; preds = %2833
  %2841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2842 = call i32 @fileno(ptr noundef %2841) #10
  %2843 = call i32 @isatty(i32 noundef %2842) #10
  %2844 = icmp ne i32 %2843, 0
  br i1 %2844, label %2845, label %2862

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

2862:                                             ; preds = %2840, %2833
  %2863 = load i32, ptr %64, align 4, !tbaa !5
  %2864 = call ptr @__errno_location() #11
  store i32 %2863, ptr %2864, align 4, !tbaa !5
  %2865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2866 = load i32, ptr @test_count, align 4, !tbaa !5
  %2867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call ptr @s2n_strerror(i32 noundef %2868, ptr noundef @.str.4)
  %2870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror_debug(i32 noundef %2871, ptr noundef @.str.4)
  %2873 = call ptr @__errno_location() #11
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = call ptr @strerror(i32 noundef %2874) #10
  %2876 = call ptr @__errno_location() #11
  %2877 = load i32, ptr %2876, align 4, !tbaa !5
  %2878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2865, ptr noundef @.str.5, i32 noundef %2866, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2869, ptr noundef %2872, ptr noundef %2875, i32 noundef %2877) #10
  br label %2879

2879:                                             ; preds = %2862, %2845
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

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

2882:                                             ; No predecessors!
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

2884:                                             ; preds = %2883, %2824
  br label %2885

2885:                                             ; preds = %2884
  br label %2886

2886:                                             ; preds = %2885
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #10
  store i8 -1, ptr %65, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  store i8 32, ptr %66, align 1, !tbaa !15
  %2887 = getelementptr inbounds i8, ptr %66, i64 1
  store i8 33, ptr %2887, align 1, !tbaa !15
  %2888 = getelementptr inbounds i8, ptr %66, i64 2
  store i8 34, ptr %2888, align 1, !tbaa !15
  %2889 = getelementptr inbounds i8, ptr %66, i64 3
  %2890 = load i8, ptr %65, align 1, !tbaa !15
  store i8 %2890, ptr %2889, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #10
  store i8 4, ptr %67, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %68) #10
  call void @llvm.memset.p0.i64(ptr align 8 %68, i8 0, i64 40, i1 false)
  br label %2891

2891:                                             ; preds = %2886
  %2892 = load i32, ptr @test_count, align 4, !tbaa !5
  %2893 = add nsw i32 %2892, 1
  store i32 %2893, ptr @test_count, align 4, !tbaa !5
  %2894 = load i8, ptr %67, align 1, !tbaa !15
  %2895 = zext i8 %2894 to i32
  %2896 = mul nsw i32 %2895, 2
  %2897 = add nsw i32 %2896, 1
  %2898 = call i32 @s2n_stuffer_alloc(ptr noundef %68, i32 noundef %2897)
  %2899 = icmp eq i32 %2898, -1
  br i1 %2899, label %2900, label %2953

2900:                                             ; preds = %2891
  br label %2901

2901:                                             ; preds = %2900
  br label %2902

2902:                                             ; preds = %2901
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %2903 = call ptr @__errno_location() #11
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  store i32 %2904, ptr %69, align 4, !tbaa !5
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = call i32 @s2n_print_stacktrace(ptr noundef %2905)
  %2907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2908 = trunc i8 %2907 to i1
  br i1 %2908, label %2909, label %2931

2909:                                             ; preds = %2902
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = call i32 @fileno(ptr noundef %2910) #10
  %2912 = call i32 @isatty(i32 noundef %2911) #10
  %2913 = icmp ne i32 %2912, 0
  br i1 %2913, label %2914, label %2931

2914:                                             ; preds = %2909
  %2915 = load i32, ptr %69, align 4, !tbaa !5
  %2916 = call ptr @__errno_location() #11
  store i32 %2915, ptr %2916, align 4, !tbaa !5
  %2917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2918 = load i32, ptr @test_count, align 4, !tbaa !5
  %2919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror(i32 noundef %2920, ptr noundef @.str.4)
  %2922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call ptr @s2n_strerror_debug(i32 noundef %2923, ptr noundef @.str.4)
  %2925 = call ptr @__errno_location() #11
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call ptr @strerror(i32 noundef %2926) #10
  %2928 = call ptr @__errno_location() #11
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2917, ptr noundef @.str.2, i32 noundef %2918, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 155, ptr noundef %2921, ptr noundef %2924, ptr noundef %2927, i32 noundef %2929) #10
  br label %2948

2931:                                             ; preds = %2909, %2902
  %2932 = load i32, ptr %69, align 4, !tbaa !5
  %2933 = call ptr @__errno_location() #11
  store i32 %2932, ptr %2933, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = load i32, ptr @test_count, align 4, !tbaa !5
  %2936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call ptr @s2n_strerror(i32 noundef %2937, ptr noundef @.str.4)
  %2939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  %2941 = call ptr @s2n_strerror_debug(i32 noundef %2940, ptr noundef @.str.4)
  %2942 = call ptr @__errno_location() #11
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call ptr @strerror(i32 noundef %2943) #10
  %2945 = call ptr @__errno_location() #11
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2934, ptr noundef @.str.5, i32 noundef %2935, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 155, ptr noundef %2938, ptr noundef %2941, ptr noundef %2944, i32 noundef %2946) #10
  br label %2948

2948:                                             ; preds = %2931, %2914
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %2949

2949:                                             ; preds = %2948
  br label %2950

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

2951:                                             ; No predecessors!
  br label %2952

2952:                                             ; preds = %2951
  br label %2953

2953:                                             ; preds = %2952, %2891
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

2955:                                             ; preds = %2954
  br label %2956

2956:                                             ; preds = %2955
  %2957 = load i32, ptr @test_count, align 4, !tbaa !5
  %2958 = add nsw i32 %2957, 1
  store i32 %2958, ptr @test_count, align 4, !tbaa !5
  %2959 = getelementptr inbounds [4 x i8], ptr %66, i64 0, i64 0
  %2960 = load i8, ptr %67, align 1, !tbaa !15
  %2961 = call i32 @write_test_supported_versions_list(ptr noundef %68, ptr noundef %2959, i8 noundef zeroext %2960)
  %2962 = icmp eq i32 %2961, -1
  br i1 %2962, label %2963, label %3016

2963:                                             ; preds = %2956
  br label %2964

2964:                                             ; preds = %2963
  br label %2965

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

2972:                                             ; preds = %2965
  %2973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2974 = call i32 @fileno(ptr noundef %2973) #10
  %2975 = call i32 @isatty(i32 noundef %2974) #10
  %2976 = icmp ne i32 %2975, 0
  br i1 %2976, label %2977, label %2994

2977:                                             ; preds = %2972
  %2978 = load i32, ptr %70, align 4, !tbaa !5
  %2979 = call ptr @__errno_location() #11
  store i32 %2978, ptr %2979, align 4, !tbaa !5
  %2980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2981 = load i32, ptr @test_count, align 4, !tbaa !5
  %2982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call ptr @s2n_strerror(i32 noundef %2983, ptr noundef @.str.4)
  %2985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call ptr @s2n_strerror_debug(i32 noundef %2986, ptr noundef @.str.4)
  %2988 = call ptr @__errno_location() #11
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  %2990 = call ptr @strerror(i32 noundef %2989) #10
  %2991 = call ptr @__errno_location() #11
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  %2993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2980, ptr noundef @.str.2, i32 noundef %2981, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2984, ptr noundef %2987, ptr noundef %2990, i32 noundef %2992) #10
  br label %3011

2994:                                             ; preds = %2972, %2965
  %2995 = load i32, ptr %70, align 4, !tbaa !5
  %2996 = call ptr @__errno_location() #11
  store i32 %2995, ptr %2996, align 4, !tbaa !5
  %2997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2998 = load i32, ptr @test_count, align 4, !tbaa !5
  %2999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3000 = load i32, ptr %2999, align 4, !tbaa !5
  %3001 = call ptr @s2n_strerror(i32 noundef %3000, ptr noundef @.str.4)
  %3002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3003 = load i32, ptr %3002, align 4, !tbaa !5
  %3004 = call ptr @s2n_strerror_debug(i32 noundef %3003, ptr noundef @.str.4)
  %3005 = call ptr @__errno_location() #11
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  %3007 = call ptr @strerror(i32 noundef %3006) #10
  %3008 = call ptr @__errno_location() #11
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  %3010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2997, ptr noundef @.str.5, i32 noundef %2998, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 158, ptr noundef %3001, ptr noundef %3004, ptr noundef %3007, i32 noundef %3009) #10
  br label %3011

3011:                                             ; preds = %2994, %2977
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %3012

3012:                                             ; preds = %3011
  br label %3013

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

3014:                                             ; No predecessors!
  br label %3015

3015:                                             ; preds = %3014
  br label %3016

3016:                                             ; preds = %3015, %2956
  br label %3017

3017:                                             ; preds = %3016
  br label %3018

3018:                                             ; preds = %3017
  br label %3019

3019:                                             ; preds = %3018
  %3020 = load i32, ptr @test_count, align 4, !tbaa !5
  %3021 = add nsw i32 %3020, 1
  store i32 %3021, ptr @test_count, align 4, !tbaa !5
  %3022 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %3023 = load ptr, ptr %62, align 8, !tbaa !9
  %3024 = call i32 %3022(ptr noundef %3023, ptr noundef %68)
  %3025 = icmp eq i32 %3024, -1
  br i1 %3025, label %3026, label %3079

3026:                                             ; preds = %3019
  br label %3027

3027:                                             ; preds = %3026
  br label %3028

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

3035:                                             ; preds = %3028
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = call i32 @fileno(ptr noundef %3036) #10
  %3038 = call i32 @isatty(i32 noundef %3037) #10
  %3039 = icmp ne i32 %3038, 0
  br i1 %3039, label %3040, label %3057

3040:                                             ; preds = %3035
  %3041 = load i32, ptr %71, align 4, !tbaa !5
  %3042 = call ptr @__errno_location() #11
  store i32 %3041, ptr %3042, align 4, !tbaa !5
  %3043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3044 = load i32, ptr @test_count, align 4, !tbaa !5
  %3045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3046 = load i32, ptr %3045, align 4, !tbaa !5
  %3047 = call ptr @s2n_strerror(i32 noundef %3046, ptr noundef @.str.4)
  %3048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror_debug(i32 noundef %3049, ptr noundef @.str.4)
  %3051 = call ptr @__errno_location() #11
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call ptr @strerror(i32 noundef %3052) #10
  %3054 = call ptr @__errno_location() #11
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3043, ptr noundef @.str.2, i32 noundef %3044, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 160, ptr noundef %3047, ptr noundef %3050, ptr noundef %3053, i32 noundef %3055) #10
  br label %3074

3057:                                             ; preds = %3035, %3028
  %3058 = load i32, ptr %71, align 4, !tbaa !5
  %3059 = call ptr @__errno_location() #11
  store i32 %3058, ptr %3059, align 4, !tbaa !5
  %3060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3061 = load i32, ptr @test_count, align 4, !tbaa !5
  %3062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call ptr @s2n_strerror(i32 noundef %3063, ptr noundef @.str.4)
  %3065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  %3067 = call ptr @s2n_strerror_debug(i32 noundef %3066, ptr noundef @.str.4)
  %3068 = call ptr @__errno_location() #11
  %3069 = load i32, ptr %3068, align 4, !tbaa !5
  %3070 = call ptr @strerror(i32 noundef %3069) #10
  %3071 = call ptr @__errno_location() #11
  %3072 = load i32, ptr %3071, align 4, !tbaa !5
  %3073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3060, ptr noundef @.str.5, i32 noundef %3061, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 160, ptr noundef %3064, ptr noundef %3067, ptr noundef %3070, i32 noundef %3072) #10
  br label %3074

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

3075:                                             ; preds = %3074
  br label %3076

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

3077:                                             ; No predecessors!
  br label %3078

3078:                                             ; preds = %3077
  br label %3079

3079:                                             ; preds = %3078, %3019
  br label %3080

3080:                                             ; preds = %3079
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

3082:                                             ; preds = %3081
  %3083 = load i32, ptr @test_count, align 4, !tbaa !5
  %3084 = add nsw i32 %3083, 1
  store i32 %3084, ptr @test_count, align 4, !tbaa !5
  %3085 = load ptr, ptr %62, align 8, !tbaa !9
  %3086 = getelementptr inbounds %struct.s2n_connection, ptr %3085, i32 0, i32 21
  %3087 = load i8, ptr %3086, align 2, !tbaa !52
  %3088 = zext i8 %3087 to i32
  %3089 = icmp eq i32 %3088, 34
  br i1 %3089, label %3143, label %3090

3090:                                             ; preds = %3082
  br label %3091

3091:                                             ; preds = %3090
  br label %3092

3092:                                             ; preds = %3091
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3093 = call ptr @__errno_location() #11
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  store i32 %3094, ptr %72, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = call i32 @s2n_print_stacktrace(ptr noundef %3095)
  %3097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3098 = trunc i8 %3097 to i1
  br i1 %3098, label %3099, label %3121

3099:                                             ; preds = %3092
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = call i32 @fileno(ptr noundef %3100) #10
  %3102 = call i32 @isatty(i32 noundef %3101) #10
  %3103 = icmp ne i32 %3102, 0
  br i1 %3103, label %3104, label %3121

3104:                                             ; preds = %3099
  %3105 = load i32, ptr %72, align 4, !tbaa !5
  %3106 = call ptr @__errno_location() #11
  store i32 %3105, ptr %3106, align 4, !tbaa !5
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = load i32, ptr @test_count, align 4, !tbaa !5
  %3109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror(i32 noundef %3110, ptr noundef @.str.4)
  %3112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @s2n_strerror_debug(i32 noundef %3113, ptr noundef @.str.4)
  %3115 = call ptr @__errno_location() #11
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @strerror(i32 noundef %3116) #10
  %3118 = call ptr @__errno_location() #11
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3107, ptr noundef @.str.2, i32 noundef %3108, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3111, ptr noundef %3114, ptr noundef %3117, i32 noundef %3119) #10
  br label %3138

3121:                                             ; preds = %3099, %3092
  %3122 = load i32, ptr %72, align 4, !tbaa !5
  %3123 = call ptr @__errno_location() #11
  store i32 %3122, ptr %3123, align 4, !tbaa !5
  %3124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3125 = load i32, ptr @test_count, align 4, !tbaa !5
  %3126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror(i32 noundef %3127, ptr noundef @.str.4)
  %3129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call ptr @s2n_strerror_debug(i32 noundef %3130, ptr noundef @.str.4)
  %3132 = call ptr @__errno_location() #11
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @strerror(i32 noundef %3133) #10
  %3135 = call ptr @__errno_location() #11
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3124, ptr noundef @.str.5, i32 noundef %3125, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3128, ptr noundef %3131, ptr noundef %3134, i32 noundef %3136) #10
  br label %3138

3138:                                             ; preds = %3121, %3104
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3139

3139:                                             ; preds = %3138
  br label %3140

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

3141:                                             ; No predecessors!
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

3143:                                             ; preds = %3142, %3082
  br label %3144

3144:                                             ; preds = %3143
  br label %3145

3145:                                             ; preds = %3144
  br label %3146

3146:                                             ; preds = %3145
  %3147 = load i32, ptr @test_count, align 4, !tbaa !5
  %3148 = add nsw i32 %3147, 1
  store i32 %3148, ptr @test_count, align 4, !tbaa !5
  %3149 = load ptr, ptr %62, align 8, !tbaa !9
  %3150 = getelementptr inbounds %struct.s2n_connection, ptr %3149, i32 0, i32 22
  %3151 = load i8, ptr %3150, align 1, !tbaa !53
  %3152 = zext i8 %3151 to i32
  %3153 = load i8, ptr %10, align 1, !tbaa !15
  %3154 = zext i8 %3153 to i32
  %3155 = icmp eq i32 %3152, %3154
  br i1 %3155, label %3209, label %3156

3156:                                             ; preds = %3146
  br label %3157

3157:                                             ; preds = %3156
  br label %3158

3158:                                             ; preds = %3157
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %3159 = call ptr @__errno_location() #11
  %3160 = load i32, ptr %3159, align 4, !tbaa !5
  store i32 %3160, ptr %73, align 4, !tbaa !5
  %3161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3162 = call i32 @s2n_print_stacktrace(ptr noundef %3161)
  %3163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3164 = trunc i8 %3163 to i1
  br i1 %3164, label %3165, label %3187

3165:                                             ; preds = %3158
  %3166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3167 = call i32 @fileno(ptr noundef %3166) #10
  %3168 = call i32 @isatty(i32 noundef %3167) #10
  %3169 = icmp ne i32 %3168, 0
  br i1 %3169, label %3170, label %3187

3170:                                             ; preds = %3165
  %3171 = load i32, ptr %73, align 4, !tbaa !5
  %3172 = call ptr @__errno_location() #11
  store i32 %3171, ptr %3172, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = load i32, ptr @test_count, align 4, !tbaa !5
  %3175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3176 = load i32, ptr %3175, align 4, !tbaa !5
  %3177 = call ptr @s2n_strerror(i32 noundef %3176, ptr noundef @.str.4)
  %3178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror_debug(i32 noundef %3179, ptr noundef @.str.4)
  %3181 = call ptr @__errno_location() #11
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = call ptr @strerror(i32 noundef %3182) #10
  %3184 = call ptr @__errno_location() #11
  %3185 = load i32, ptr %3184, align 4, !tbaa !5
  %3186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3173, ptr noundef @.str.2, i32 noundef %3174, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3177, ptr noundef %3180, ptr noundef %3183, i32 noundef %3185) #10
  br label %3204

3187:                                             ; preds = %3165, %3158
  %3188 = load i32, ptr %73, align 4, !tbaa !5
  %3189 = call ptr @__errno_location() #11
  store i32 %3188, ptr %3189, align 4, !tbaa !5
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = load i32, ptr @test_count, align 4, !tbaa !5
  %3192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call ptr @s2n_strerror(i32 noundef %3193, ptr noundef @.str.4)
  %3195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror_debug(i32 noundef %3196, ptr noundef @.str.4)
  %3198 = call ptr @__errno_location() #11
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @strerror(i32 noundef %3199) #10
  %3201 = call ptr @__errno_location() #11
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3190, ptr noundef @.str.5, i32 noundef %3191, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3194, ptr noundef %3197, ptr noundef %3200, i32 noundef %3202) #10
  br label %3204

3204:                                             ; preds = %3187, %3170
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

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

3207:                                             ; No predecessors!
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

3209:                                             ; preds = %3208, %3146
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210
  br label %3212

3212:                                             ; preds = %3211
  %3213 = load i32, ptr @test_count, align 4, !tbaa !5
  %3214 = add nsw i32 %3213, 1
  store i32 %3214, ptr @test_count, align 4, !tbaa !5
  %3215 = load ptr, ptr %62, align 8, !tbaa !9
  %3216 = getelementptr inbounds %struct.s2n_connection, ptr %3215, i32 0, i32 23
  %3217 = load i8, ptr %3216, align 4, !tbaa !54
  %3218 = zext i8 %3217 to i32
  %3219 = icmp eq i32 %3218, 34
  br i1 %3219, label %3273, label %3220

3220:                                             ; preds = %3212
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

3222:                                             ; preds = %3221
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  %3223 = call ptr @__errno_location() #11
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  store i32 %3224, ptr %74, align 4, !tbaa !5
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = call i32 @s2n_print_stacktrace(ptr noundef %3225)
  %3227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3228 = trunc i8 %3227 to i1
  br i1 %3228, label %3229, label %3251

3229:                                             ; preds = %3222
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @fileno(ptr noundef %3230) #10
  %3232 = call i32 @isatty(i32 noundef %3231) #10
  %3233 = icmp ne i32 %3232, 0
  br i1 %3233, label %3234, label %3251

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

3251:                                             ; preds = %3229, %3222
  %3252 = load i32, ptr %74, align 4, !tbaa !5
  %3253 = call ptr @__errno_location() #11
  store i32 %3252, ptr %3253, align 4, !tbaa !5
  %3254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3255 = load i32, ptr @test_count, align 4, !tbaa !5
  %3256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3257 = load i32, ptr %3256, align 4, !tbaa !5
  %3258 = call ptr @s2n_strerror(i32 noundef %3257, ptr noundef @.str.4)
  %3259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3260 = load i32, ptr %3259, align 4, !tbaa !5
  %3261 = call ptr @s2n_strerror_debug(i32 noundef %3260, ptr noundef @.str.4)
  %3262 = call ptr @__errno_location() #11
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call ptr @strerror(i32 noundef %3263) #10
  %3265 = call ptr @__errno_location() #11
  %3266 = load i32, ptr %3265, align 4, !tbaa !5
  %3267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3254, ptr noundef @.str.5, i32 noundef %3255, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3258, ptr noundef %3261, ptr noundef %3264, i32 noundef %3266) #10
  br label %3268

3268:                                             ; preds = %3251, %3234
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %3269

3269:                                             ; preds = %3268
  br label %3270

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

3271:                                             ; No predecessors!
  br label %3272

3272:                                             ; preds = %3271
  br label %3273

3273:                                             ; preds = %3272, %3212
  br label %3274

3274:                                             ; preds = %3273
  br label %3275

3275:                                             ; preds = %3274
  br label %3276

3276:                                             ; preds = %3275
  %3277 = load i32, ptr @test_count, align 4, !tbaa !5
  %3278 = add nsw i32 %3277, 1
  store i32 %3278, ptr @test_count, align 4, !tbaa !5
  %3279 = load ptr, ptr %62, align 8, !tbaa !9
  %3280 = call i32 @s2n_connection_free(ptr noundef %3279)
  %3281 = icmp eq i32 %3280, -1
  br i1 %3281, label %3282, label %3335

3282:                                             ; preds = %3276
  br label %3283

3283:                                             ; preds = %3282
  br label %3284

3284:                                             ; preds = %3283
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %3285 = call ptr @__errno_location() #11
  %3286 = load i32, ptr %3285, align 4, !tbaa !5
  store i32 %3286, ptr %75, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = call i32 @s2n_print_stacktrace(ptr noundef %3287)
  %3289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3290 = trunc i8 %3289 to i1
  br i1 %3290, label %3291, label %3313

3291:                                             ; preds = %3284
  %3292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3293 = call i32 @fileno(ptr noundef %3292) #10
  %3294 = call i32 @isatty(i32 noundef %3293) #10
  %3295 = icmp ne i32 %3294, 0
  br i1 %3295, label %3296, label %3313

3296:                                             ; preds = %3291
  %3297 = load i32, ptr %75, align 4, !tbaa !5
  %3298 = call ptr @__errno_location() #11
  store i32 %3297, ptr %3298, align 4, !tbaa !5
  %3299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3300 = load i32, ptr @test_count, align 4, !tbaa !5
  %3301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror(i32 noundef %3302, ptr noundef @.str.4)
  %3304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call ptr @s2n_strerror_debug(i32 noundef %3305, ptr noundef @.str.4)
  %3307 = call ptr @__errno_location() #11
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call ptr @strerror(i32 noundef %3308) #10
  %3310 = call ptr @__errno_location() #11
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3299, ptr noundef @.str.2, i32 noundef %3300, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 165, ptr noundef %3303, ptr noundef %3306, ptr noundef %3309, i32 noundef %3311) #10
  br label %3330

3313:                                             ; preds = %3291, %3284
  %3314 = load i32, ptr %75, align 4, !tbaa !5
  %3315 = call ptr @__errno_location() #11
  store i32 %3314, ptr %3315, align 4, !tbaa !5
  %3316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3317 = load i32, ptr @test_count, align 4, !tbaa !5
  %3318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  %3320 = call ptr @s2n_strerror(i32 noundef %3319, ptr noundef @.str.4)
  %3321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call ptr @s2n_strerror_debug(i32 noundef %3322, ptr noundef @.str.4)
  %3324 = call ptr @__errno_location() #11
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  %3326 = call ptr @strerror(i32 noundef %3325) #10
  %3327 = call ptr @__errno_location() #11
  %3328 = load i32, ptr %3327, align 4, !tbaa !5
  %3329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3316, ptr noundef @.str.5, i32 noundef %3317, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 165, ptr noundef %3320, ptr noundef %3323, ptr noundef %3326, i32 noundef %3328) #10
  br label %3330

3330:                                             ; preds = %3313, %3296
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

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

3333:                                             ; No predecessors!
  br label %3334

3334:                                             ; preds = %3333
  br label %3335

3335:                                             ; preds = %3334, %3276
  br label %3336

3336:                                             ; preds = %3335
  br label %3337

3337:                                             ; preds = %3336
  br label %3338

3338:                                             ; preds = %3337
  %3339 = load i32, ptr @test_count, align 4, !tbaa !5
  %3340 = add nsw i32 %3339, 1
  store i32 %3340, ptr @test_count, align 4, !tbaa !5
  %3341 = call i32 @s2n_stuffer_free(ptr noundef %68)
  %3342 = icmp eq i32 %3341, -1
  br i1 %3342, label %3343, label %3396

3343:                                             ; preds = %3338
  br label %3344

3344:                                             ; preds = %3343
  br label %3345

3345:                                             ; preds = %3344
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %3346 = call ptr @__errno_location() #11
  %3347 = load i32, ptr %3346, align 4, !tbaa !5
  store i32 %3347, ptr %76, align 4, !tbaa !5
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = call i32 @s2n_print_stacktrace(ptr noundef %3348)
  %3350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3351 = trunc i8 %3350 to i1
  br i1 %3351, label %3352, label %3374

3352:                                             ; preds = %3345
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = call i32 @fileno(ptr noundef %3353) #10
  %3355 = call i32 @isatty(i32 noundef %3354) #10
  %3356 = icmp ne i32 %3355, 0
  br i1 %3356, label %3357, label %3374

3357:                                             ; preds = %3352
  %3358 = load i32, ptr %76, align 4, !tbaa !5
  %3359 = call ptr @__errno_location() #11
  store i32 %3358, ptr %3359, align 4, !tbaa !5
  %3360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3361 = load i32, ptr @test_count, align 4, !tbaa !5
  %3362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = call ptr @s2n_strerror(i32 noundef %3363, ptr noundef @.str.4)
  %3365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = call ptr @s2n_strerror_debug(i32 noundef %3366, ptr noundef @.str.4)
  %3368 = call ptr @__errno_location() #11
  %3369 = load i32, ptr %3368, align 4, !tbaa !5
  %3370 = call ptr @strerror(i32 noundef %3369) #10
  %3371 = call ptr @__errno_location() #11
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3360, ptr noundef @.str.2, i32 noundef %3361, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 166, ptr noundef %3364, ptr noundef %3367, ptr noundef %3370, i32 noundef %3372) #10
  br label %3391

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

3391:                                             ; preds = %3374, %3357
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3392

3392:                                             ; preds = %3391
  br label %3393

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

3394:                                             ; No predecessors!
  br label %3395

3395:                                             ; preds = %3394
  br label %3396

3396:                                             ; preds = %3395, %3338
  br label %3397

3397:                                             ; preds = %3396
  br label %3398

3398:                                             ; preds = %3397
  call void @llvm.lifetime.end.p0(i64 40, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  br label %3399

3399:                                             ; preds = %3398
  %3400 = load i32, ptr @test_count, align 4, !tbaa !5
  %3401 = add nsw i32 %3400, 1
  store i32 %3401, ptr @test_count, align 4, !tbaa !5
  %3402 = call i32 (...) @s2n_disable_tls13_in_test()
  %3403 = icmp eq i32 %3402, -1
  br i1 %3403, label %3404, label %3457

3404:                                             ; preds = %3399
  br label %3405

3405:                                             ; preds = %3404
  br label %3406

3406:                                             ; preds = %3405
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3407 = call ptr @__errno_location() #11
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  store i32 %3408, ptr %77, align 4, !tbaa !5
  %3409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3410 = call i32 @s2n_print_stacktrace(ptr noundef %3409)
  %3411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3412 = trunc i8 %3411 to i1
  br i1 %3412, label %3413, label %3435

3413:                                             ; preds = %3406
  %3414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3415 = call i32 @fileno(ptr noundef %3414) #10
  %3416 = call i32 @isatty(i32 noundef %3415) #10
  %3417 = icmp ne i32 %3416, 0
  br i1 %3417, label %3418, label %3435

3418:                                             ; preds = %3413
  %3419 = load i32, ptr %77, align 4, !tbaa !5
  %3420 = call ptr @__errno_location() #11
  store i32 %3419, ptr %3420, align 4, !tbaa !5
  %3421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3422 = load i32, ptr @test_count, align 4, !tbaa !5
  %3423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call ptr @s2n_strerror(i32 noundef %3424, ptr noundef @.str.4)
  %3426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call ptr @s2n_strerror_debug(i32 noundef %3427, ptr noundef @.str.4)
  %3429 = call ptr @__errno_location() #11
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  %3431 = call ptr @strerror(i32 noundef %3430) #10
  %3432 = call ptr @__errno_location() #11
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  %3434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3421, ptr noundef @.str.2, i32 noundef %3422, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3425, ptr noundef %3428, ptr noundef %3431, i32 noundef %3433) #10
  br label %3452

3435:                                             ; preds = %3413, %3406
  %3436 = load i32, ptr %77, align 4, !tbaa !5
  %3437 = call ptr @__errno_location() #11
  store i32 %3436, ptr %3437, align 4, !tbaa !5
  %3438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3439 = load i32, ptr @test_count, align 4, !tbaa !5
  %3440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3441 = load i32, ptr %3440, align 4, !tbaa !5
  %3442 = call ptr @s2n_strerror(i32 noundef %3441, ptr noundef @.str.4)
  %3443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror_debug(i32 noundef %3444, ptr noundef @.str.4)
  %3446 = call ptr @__errno_location() #11
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = call ptr @strerror(i32 noundef %3447) #10
  %3449 = call ptr @__errno_location() #11
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  %3451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3438, ptr noundef @.str.5, i32 noundef %3439, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3442, ptr noundef %3445, ptr noundef %3448, i32 noundef %3450) #10
  br label %3452

3452:                                             ; preds = %3435, %3418
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3453

3453:                                             ; preds = %3452
  br label %3454

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

3455:                                             ; No predecessors!
  br label %3456

3456:                                             ; preds = %3455
  br label %3457

3457:                                             ; preds = %3456, %3399
  br label %3458

3458:                                             ; preds = %3457
  br label %3459

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

3460:                                             ; preds = %3459
  %3461 = load i32, ptr @test_count, align 4, !tbaa !5
  %3462 = add nsw i32 %3461, 1
  store i32 %3462, ptr @test_count, align 4, !tbaa !5
  %3463 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3463, ptr %78, align 8, !tbaa !9
  %3464 = icmp eq ptr %3463, null
  br i1 %3464, label %3465, label %3518

3465:                                             ; preds = %3460
  br label %3466

3466:                                             ; preds = %3465
  br label %3467

3467:                                             ; preds = %3466
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3468 = call ptr @__errno_location() #11
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  store i32 %3469, ptr %79, align 4, !tbaa !5
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = call i32 @s2n_print_stacktrace(ptr noundef %3470)
  %3472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3473 = trunc i8 %3472 to i1
  br i1 %3473, label %3474, label %3496

3474:                                             ; preds = %3467
  %3475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3476 = call i32 @fileno(ptr noundef %3475) #10
  %3477 = call i32 @isatty(i32 noundef %3476) #10
  %3478 = icmp ne i32 %3477, 0
  br i1 %3478, label %3479, label %3496

3479:                                             ; preds = %3474
  %3480 = load i32, ptr %79, align 4, !tbaa !5
  %3481 = call ptr @__errno_location() #11
  store i32 %3480, ptr %3481, align 4, !tbaa !5
  %3482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3483 = load i32, ptr @test_count, align 4, !tbaa !5
  %3484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3485 = load i32, ptr %3484, align 4, !tbaa !5
  %3486 = call ptr @s2n_strerror(i32 noundef %3485, ptr noundef @.str.4)
  %3487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3488 = load i32, ptr %3487, align 4, !tbaa !5
  %3489 = call ptr @s2n_strerror_debug(i32 noundef %3488, ptr noundef @.str.4)
  %3490 = call ptr @__errno_location() #11
  %3491 = load i32, ptr %3490, align 4, !tbaa !5
  %3492 = call ptr @strerror(i32 noundef %3491) #10
  %3493 = call ptr @__errno_location() #11
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  %3495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3482, ptr noundef @.str.2, i32 noundef %3483, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3486, ptr noundef %3489, ptr noundef %3492, i32 noundef %3494) #10
  br label %3513

3496:                                             ; preds = %3474, %3467
  %3497 = load i32, ptr %79, align 4, !tbaa !5
  %3498 = call ptr @__errno_location() #11
  store i32 %3497, ptr %3498, align 4, !tbaa !5
  %3499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3500 = load i32, ptr @test_count, align 4, !tbaa !5
  %3501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3502 = load i32, ptr %3501, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror(i32 noundef %3502, ptr noundef @.str.4)
  %3504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3505 = load i32, ptr %3504, align 4, !tbaa !5
  %3506 = call ptr @s2n_strerror_debug(i32 noundef %3505, ptr noundef @.str.4)
  %3507 = call ptr @__errno_location() #11
  %3508 = load i32, ptr %3507, align 4, !tbaa !5
  %3509 = call ptr @strerror(i32 noundef %3508) #10
  %3510 = call ptr @__errno_location() #11
  %3511 = load i32, ptr %3510, align 4, !tbaa !5
  %3512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3499, ptr noundef @.str.5, i32 noundef %3500, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3503, ptr noundef %3506, ptr noundef %3509, i32 noundef %3511) #10
  br label %3513

3513:                                             ; preds = %3496, %3479
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

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

3516:                                             ; No predecessors!
  br label %3517

3517:                                             ; preds = %3516
  br label %3518

3518:                                             ; preds = %3517, %3460
  br label %3519

3519:                                             ; preds = %3518
  br label %3520

3520:                                             ; preds = %3519
  br label %3521

3521:                                             ; preds = %3520
  %3522 = load i32, ptr @test_count, align 4, !tbaa !5
  %3523 = add nsw i32 %3522, 1
  store i32 %3523, ptr @test_count, align 4, !tbaa !5
  %3524 = load ptr, ptr %78, align 8, !tbaa !9
  %3525 = load ptr, ptr %11, align 8, !tbaa !9
  %3526 = call i32 @s2n_connection_set_config(ptr noundef %3524, ptr noundef %3525)
  %3527 = icmp eq i32 %3526, -1
  br i1 %3527, label %3528, label %3581

3528:                                             ; preds = %3521
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

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

3537:                                             ; preds = %3530
  %3538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3539 = call i32 @fileno(ptr noundef %3538) #10
  %3540 = call i32 @isatty(i32 noundef %3539) #10
  %3541 = icmp ne i32 %3540, 0
  br i1 %3541, label %3542, label %3559

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

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

3576:                                             ; preds = %3559, %3542
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3577

3577:                                             ; preds = %3576
  br label %3578

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

3579:                                             ; No predecessors!
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

3581:                                             ; preds = %3580, %3521
  br label %3582

3582:                                             ; preds = %3581
  br label %3583

3583:                                             ; preds = %3582
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #10
  store i8 -1, ptr %81, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  store i8 32, ptr %82, align 1, !tbaa !15
  %3584 = getelementptr inbounds i8, ptr %82, i64 1
  store i8 33, ptr %3584, align 1, !tbaa !15
  %3585 = getelementptr inbounds i8, ptr %82, i64 2
  store i8 34, ptr %3585, align 1, !tbaa !15
  %3586 = getelementptr inbounds i8, ptr %82, i64 3
  %3587 = load i8, ptr %81, align 1, !tbaa !15
  store i8 %3587, ptr %3586, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #10
  store i8 4, ptr %83, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %84) #10
  call void @llvm.memset.p0.i64(ptr align 8 %84, i8 0, i64 40, i1 false)
  br label %3588

3588:                                             ; preds = %3583
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = add nsw i32 %3589, 1
  store i32 %3590, ptr @test_count, align 4, !tbaa !5
  %3591 = load i8, ptr %83, align 1, !tbaa !15
  %3592 = zext i8 %3591 to i32
  %3593 = mul nsw i32 %3592, 2
  %3594 = add nsw i32 %3593, 1
  %3595 = call i32 @s2n_stuffer_alloc(ptr noundef %84, i32 noundef %3594)
  %3596 = icmp eq i32 %3595, -1
  br i1 %3596, label %3597, label %3650

3597:                                             ; preds = %3588
  br label %3598

3598:                                             ; preds = %3597
  br label %3599

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

3606:                                             ; preds = %3599
  %3607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3608 = call i32 @fileno(ptr noundef %3607) #10
  %3609 = call i32 @isatty(i32 noundef %3608) #10
  %3610 = icmp ne i32 %3609, 0
  br i1 %3610, label %3611, label %3628

3611:                                             ; preds = %3606
  %3612 = load i32, ptr %85, align 4, !tbaa !5
  %3613 = call ptr @__errno_location() #11
  store i32 %3612, ptr %3613, align 4, !tbaa !5
  %3614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3615 = load i32, ptr @test_count, align 4, !tbaa !5
  %3616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call ptr @s2n_strerror(i32 noundef %3617, ptr noundef @.str.4)
  %3619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3620 = load i32, ptr %3619, align 4, !tbaa !5
  %3621 = call ptr @s2n_strerror_debug(i32 noundef %3620, ptr noundef @.str.4)
  %3622 = call ptr @__errno_location() #11
  %3623 = load i32, ptr %3622, align 4, !tbaa !5
  %3624 = call ptr @strerror(i32 noundef %3623) #10
  %3625 = call ptr @__errno_location() #11
  %3626 = load i32, ptr %3625, align 4, !tbaa !5
  %3627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3614, ptr noundef @.str.2, i32 noundef %3615, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3618, ptr noundef %3621, ptr noundef %3624, i32 noundef %3626) #10
  br label %3645

3628:                                             ; preds = %3606, %3599
  %3629 = load i32, ptr %85, align 4, !tbaa !5
  %3630 = call ptr @__errno_location() #11
  store i32 %3629, ptr %3630, align 4, !tbaa !5
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  %3635 = call ptr @s2n_strerror(i32 noundef %3634, ptr noundef @.str.4)
  %3636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3637 = load i32, ptr %3636, align 4, !tbaa !5
  %3638 = call ptr @s2n_strerror_debug(i32 noundef %3637, ptr noundef @.str.4)
  %3639 = call ptr @__errno_location() #11
  %3640 = load i32, ptr %3639, align 4, !tbaa !5
  %3641 = call ptr @strerror(i32 noundef %3640) #10
  %3642 = call ptr @__errno_location() #11
  %3643 = load i32, ptr %3642, align 4, !tbaa !5
  %3644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3631, ptr noundef @.str.5, i32 noundef %3632, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3635, ptr noundef %3638, ptr noundef %3641, i32 noundef %3643) #10
  br label %3645

3645:                                             ; preds = %3628, %3611
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %3646

3646:                                             ; preds = %3645
  br label %3647

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

3648:                                             ; No predecessors!
  br label %3649

3649:                                             ; preds = %3648
  br label %3650

3650:                                             ; preds = %3649, %3588
  br label %3651

3651:                                             ; preds = %3650
  br label %3652

3652:                                             ; preds = %3651
  br label %3653

3653:                                             ; preds = %3652
  %3654 = load i32, ptr @test_count, align 4, !tbaa !5
  %3655 = add nsw i32 %3654, 1
  store i32 %3655, ptr @test_count, align 4, !tbaa !5
  %3656 = getelementptr inbounds [4 x i8], ptr %82, i64 0, i64 0
  %3657 = load i8, ptr %83, align 1, !tbaa !15
  %3658 = call i32 @write_test_supported_versions_list(ptr noundef %84, ptr noundef %3656, i8 noundef zeroext %3657)
  %3659 = icmp eq i32 %3658, -1
  br i1 %3659, label %3660, label %3713

3660:                                             ; preds = %3653
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

3662:                                             ; preds = %3661
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  %3663 = call ptr @__errno_location() #11
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  store i32 %3664, ptr %86, align 4, !tbaa !5
  %3665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3666 = call i32 @s2n_print_stacktrace(ptr noundef %3665)
  %3667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3668 = trunc i8 %3667 to i1
  br i1 %3668, label %3669, label %3691

3669:                                             ; preds = %3662
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = call i32 @fileno(ptr noundef %3670) #10
  %3672 = call i32 @isatty(i32 noundef %3671) #10
  %3673 = icmp ne i32 %3672, 0
  br i1 %3673, label %3674, label %3691

3674:                                             ; preds = %3669
  %3675 = load i32, ptr %86, align 4, !tbaa !5
  %3676 = call ptr @__errno_location() #11
  store i32 %3675, ptr %3676, align 4, !tbaa !5
  %3677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @s2n_strerror(i32 noundef %3680, ptr noundef @.str.4)
  %3682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call ptr @s2n_strerror_debug(i32 noundef %3683, ptr noundef @.str.4)
  %3685 = call ptr @__errno_location() #11
  %3686 = load i32, ptr %3685, align 4, !tbaa !5
  %3687 = call ptr @strerror(i32 noundef %3686) #10
  %3688 = call ptr @__errno_location() #11
  %3689 = load i32, ptr %3688, align 4, !tbaa !5
  %3690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3677, ptr noundef @.str.2, i32 noundef %3678, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3681, ptr noundef %3684, ptr noundef %3687, i32 noundef %3689) #10
  br label %3708

3691:                                             ; preds = %3669, %3662
  %3692 = load i32, ptr %86, align 4, !tbaa !5
  %3693 = call ptr @__errno_location() #11
  store i32 %3692, ptr %3693, align 4, !tbaa !5
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = load i32, ptr @test_count, align 4, !tbaa !5
  %3696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3697 = load i32, ptr %3696, align 4, !tbaa !5
  %3698 = call ptr @s2n_strerror(i32 noundef %3697, ptr noundef @.str.4)
  %3699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3700 = load i32, ptr %3699, align 4, !tbaa !5
  %3701 = call ptr @s2n_strerror_debug(i32 noundef %3700, ptr noundef @.str.4)
  %3702 = call ptr @__errno_location() #11
  %3703 = load i32, ptr %3702, align 4, !tbaa !5
  %3704 = call ptr @strerror(i32 noundef %3703) #10
  %3705 = call ptr @__errno_location() #11
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  %3707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3694, ptr noundef @.str.5, i32 noundef %3695, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3698, ptr noundef %3701, ptr noundef %3704, i32 noundef %3706) #10
  br label %3708

3708:                                             ; preds = %3691, %3674
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %3709

3709:                                             ; preds = %3708
  br label %3710

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

3711:                                             ; No predecessors!
  br label %3712

3712:                                             ; preds = %3711
  br label %3713

3713:                                             ; preds = %3712, %3653
  br label %3714

3714:                                             ; preds = %3713
  br label %3715

3715:                                             ; preds = %3714
  br label %3716

3716:                                             ; preds = %3715
  %3717 = load i32, ptr @test_count, align 4, !tbaa !5
  %3718 = add nsw i32 %3717, 1
  store i32 %3718, ptr @test_count, align 4, !tbaa !5
  %3719 = call i32 (...) @s2n_enable_tls13_in_test()
  %3720 = icmp eq i32 %3719, -1
  br i1 %3720, label %3721, label %3774

3721:                                             ; preds = %3716
  br label %3722

3722:                                             ; preds = %3721
  br label %3723

3723:                                             ; preds = %3722
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  %3724 = call ptr @__errno_location() #11
  %3725 = load i32, ptr %3724, align 4, !tbaa !5
  store i32 %3725, ptr %87, align 4, !tbaa !5
  %3726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3727 = call i32 @s2n_print_stacktrace(ptr noundef %3726)
  %3728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3729 = trunc i8 %3728 to i1
  br i1 %3729, label %3730, label %3752

3730:                                             ; preds = %3723
  %3731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3732 = call i32 @fileno(ptr noundef %3731) #10
  %3733 = call i32 @isatty(i32 noundef %3732) #10
  %3734 = icmp ne i32 %3733, 0
  br i1 %3734, label %3735, label %3752

3735:                                             ; preds = %3730
  %3736 = load i32, ptr %87, align 4, !tbaa !5
  %3737 = call ptr @__errno_location() #11
  store i32 %3736, ptr %3737, align 4, !tbaa !5
  %3738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3739 = load i32, ptr @test_count, align 4, !tbaa !5
  %3740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror(i32 noundef %3741, ptr noundef @.str.4)
  %3743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror_debug(i32 noundef %3744, ptr noundef @.str.4)
  %3746 = call ptr @__errno_location() #11
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @strerror(i32 noundef %3747) #10
  %3749 = call ptr @__errno_location() #11
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3738, ptr noundef @.str.2, i32 noundef %3739, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3742, ptr noundef %3745, ptr noundef %3748, i32 noundef %3750) #10
  br label %3769

3752:                                             ; preds = %3730, %3723
  %3753 = load i32, ptr %87, align 4, !tbaa !5
  %3754 = call ptr @__errno_location() #11
  store i32 %3753, ptr %3754, align 4, !tbaa !5
  %3755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3756 = load i32, ptr @test_count, align 4, !tbaa !5
  %3757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3758 = load i32, ptr %3757, align 4, !tbaa !5
  %3759 = call ptr @s2n_strerror(i32 noundef %3758, ptr noundef @.str.4)
  %3760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  %3762 = call ptr @s2n_strerror_debug(i32 noundef %3761, ptr noundef @.str.4)
  %3763 = call ptr @__errno_location() #11
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call ptr @strerror(i32 noundef %3764) #10
  %3766 = call ptr @__errno_location() #11
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3755, ptr noundef @.str.5, i32 noundef %3756, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3759, ptr noundef %3762, ptr noundef %3765, i32 noundef %3767) #10
  br label %3769

3769:                                             ; preds = %3752, %3735
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %3770

3770:                                             ; preds = %3769
  br label %3771

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

3772:                                             ; No predecessors!
  br label %3773

3773:                                             ; preds = %3772
  br label %3774

3774:                                             ; preds = %3773, %3716
  br label %3775

3775:                                             ; preds = %3774
  br label %3776

3776:                                             ; preds = %3775
  br label %3777

3777:                                             ; preds = %3776
  %3778 = load i32, ptr @test_count, align 4, !tbaa !5
  %3779 = add nsw i32 %3778, 1
  store i32 %3779, ptr @test_count, align 4, !tbaa !5
  %3780 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %3781 = load ptr, ptr %78, align 8, !tbaa !9
  %3782 = call i32 %3780(ptr noundef %3781, ptr noundef %84)
  %3783 = icmp eq i32 %3782, -1
  br i1 %3783, label %3784, label %3837

3784:                                             ; preds = %3777
  br label %3785

3785:                                             ; preds = %3784
  br label %3786

3786:                                             ; preds = %3785
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %3787 = call ptr @__errno_location() #11
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  store i32 %3788, ptr %88, align 4, !tbaa !5
  %3789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3790 = call i32 @s2n_print_stacktrace(ptr noundef %3789)
  %3791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3792 = trunc i8 %3791 to i1
  br i1 %3792, label %3793, label %3815

3793:                                             ; preds = %3786
  %3794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3795 = call i32 @fileno(ptr noundef %3794) #10
  %3796 = call i32 @isatty(i32 noundef %3795) #10
  %3797 = icmp ne i32 %3796, 0
  br i1 %3797, label %3798, label %3815

3798:                                             ; preds = %3793
  %3799 = load i32, ptr %88, align 4, !tbaa !5
  %3800 = call ptr @__errno_location() #11
  store i32 %3799, ptr %3800, align 4, !tbaa !5
  %3801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3802 = load i32, ptr @test_count, align 4, !tbaa !5
  %3803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3804 = load i32, ptr %3803, align 4, !tbaa !5
  %3805 = call ptr @s2n_strerror(i32 noundef %3804, ptr noundef @.str.4)
  %3806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3807 = load i32, ptr %3806, align 4, !tbaa !5
  %3808 = call ptr @s2n_strerror_debug(i32 noundef %3807, ptr noundef @.str.4)
  %3809 = call ptr @__errno_location() #11
  %3810 = load i32, ptr %3809, align 4, !tbaa !5
  %3811 = call ptr @strerror(i32 noundef %3810) #10
  %3812 = call ptr @__errno_location() #11
  %3813 = load i32, ptr %3812, align 4, !tbaa !5
  %3814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3801, ptr noundef @.str.2, i32 noundef %3802, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3805, ptr noundef %3808, ptr noundef %3811, i32 noundef %3813) #10
  br label %3832

3815:                                             ; preds = %3793, %3786
  %3816 = load i32, ptr %88, align 4, !tbaa !5
  %3817 = call ptr @__errno_location() #11
  store i32 %3816, ptr %3817, align 4, !tbaa !5
  %3818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3819 = load i32, ptr @test_count, align 4, !tbaa !5
  %3820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3821 = load i32, ptr %3820, align 4, !tbaa !5
  %3822 = call ptr @s2n_strerror(i32 noundef %3821, ptr noundef @.str.4)
  %3823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3824 = load i32, ptr %3823, align 4, !tbaa !5
  %3825 = call ptr @s2n_strerror_debug(i32 noundef %3824, ptr noundef @.str.4)
  %3826 = call ptr @__errno_location() #11
  %3827 = load i32, ptr %3826, align 4, !tbaa !5
  %3828 = call ptr @strerror(i32 noundef %3827) #10
  %3829 = call ptr @__errno_location() #11
  %3830 = load i32, ptr %3829, align 4, !tbaa !5
  %3831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3818, ptr noundef @.str.5, i32 noundef %3819, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3822, ptr noundef %3825, ptr noundef %3828, i32 noundef %3830) #10
  br label %3832

3832:                                             ; preds = %3815, %3798
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %3833

3833:                                             ; preds = %3832
  br label %3834

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

3835:                                             ; No predecessors!
  br label %3836

3836:                                             ; preds = %3835
  br label %3837

3837:                                             ; preds = %3836, %3777
  br label %3838

3838:                                             ; preds = %3837
  br label %3839

3839:                                             ; preds = %3838
  br label %3840

3840:                                             ; preds = %3839
  %3841 = load i32, ptr @test_count, align 4, !tbaa !5
  %3842 = add nsw i32 %3841, 1
  store i32 %3842, ptr @test_count, align 4, !tbaa !5
  %3843 = load ptr, ptr %78, align 8, !tbaa !9
  %3844 = getelementptr inbounds %struct.s2n_connection, ptr %3843, i32 0, i32 21
  %3845 = load i8, ptr %3844, align 2, !tbaa !52
  %3846 = zext i8 %3845 to i32
  %3847 = icmp eq i32 %3846, 0
  br i1 %3847, label %3901, label %3848

3848:                                             ; preds = %3840
  br label %3849

3849:                                             ; preds = %3848
  br label %3850

3850:                                             ; preds = %3849
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %3851 = call ptr @__errno_location() #11
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  store i32 %3852, ptr %89, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = call i32 @s2n_print_stacktrace(ptr noundef %3853)
  %3855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3856 = trunc i8 %3855 to i1
  br i1 %3856, label %3857, label %3879

3857:                                             ; preds = %3850
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = call i32 @fileno(ptr noundef %3858) #10
  %3860 = call i32 @isatty(i32 noundef %3859) #10
  %3861 = icmp ne i32 %3860, 0
  br i1 %3861, label %3862, label %3879

3862:                                             ; preds = %3857
  %3863 = load i32, ptr %89, align 4, !tbaa !5
  %3864 = call ptr @__errno_location() #11
  store i32 %3863, ptr %3864, align 4, !tbaa !5
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call ptr @s2n_strerror(i32 noundef %3868, ptr noundef @.str.4)
  %3870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call ptr @s2n_strerror_debug(i32 noundef %3871, ptr noundef @.str.4)
  %3873 = call ptr @__errno_location() #11
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call ptr @strerror(i32 noundef %3874) #10
  %3876 = call ptr @__errno_location() #11
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  %3878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3865, ptr noundef @.str.2, i32 noundef %3866, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3869, ptr noundef %3872, ptr noundef %3875, i32 noundef %3877) #10
  br label %3896

3879:                                             ; preds = %3857, %3850
  %3880 = load i32, ptr %89, align 4, !tbaa !5
  %3881 = call ptr @__errno_location() #11
  store i32 %3880, ptr %3881, align 4, !tbaa !5
  %3882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3883 = load i32, ptr @test_count, align 4, !tbaa !5
  %3884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3885 = load i32, ptr %3884, align 4, !tbaa !5
  %3886 = call ptr @s2n_strerror(i32 noundef %3885, ptr noundef @.str.4)
  %3887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3888 = load i32, ptr %3887, align 4, !tbaa !5
  %3889 = call ptr @s2n_strerror_debug(i32 noundef %3888, ptr noundef @.str.4)
  %3890 = call ptr @__errno_location() #11
  %3891 = load i32, ptr %3890, align 4, !tbaa !5
  %3892 = call ptr @strerror(i32 noundef %3891) #10
  %3893 = call ptr @__errno_location() #11
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  %3895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3882, ptr noundef @.str.5, i32 noundef %3883, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3886, ptr noundef %3889, ptr noundef %3892, i32 noundef %3894) #10
  br label %3896

3896:                                             ; preds = %3879, %3862
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %3897

3897:                                             ; preds = %3896
  br label %3898

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

3899:                                             ; No predecessors!
  br label %3900

3900:                                             ; preds = %3899
  br label %3901

3901:                                             ; preds = %3900, %3840
  br label %3902

3902:                                             ; preds = %3901
  br label %3903

3903:                                             ; preds = %3902
  br label %3904

3904:                                             ; preds = %3903
  %3905 = load i32, ptr @test_count, align 4, !tbaa !5
  %3906 = add nsw i32 %3905, 1
  store i32 %3906, ptr @test_count, align 4, !tbaa !5
  %3907 = load ptr, ptr %78, align 8, !tbaa !9
  %3908 = getelementptr inbounds %struct.s2n_connection, ptr %3907, i32 0, i32 22
  %3909 = load i8, ptr %3908, align 1, !tbaa !53
  %3910 = zext i8 %3909 to i32
  %3911 = icmp eq i32 %3910, 33
  br i1 %3911, label %3965, label %3912

3912:                                             ; preds = %3904
  br label %3913

3913:                                             ; preds = %3912
  br label %3914

3914:                                             ; preds = %3913
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %3915 = call ptr @__errno_location() #11
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  store i32 %3916, ptr %90, align 4, !tbaa !5
  %3917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3918 = call i32 @s2n_print_stacktrace(ptr noundef %3917)
  %3919 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3920 = trunc i8 %3919 to i1
  br i1 %3920, label %3921, label %3943

3921:                                             ; preds = %3914
  %3922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3923 = call i32 @fileno(ptr noundef %3922) #10
  %3924 = call i32 @isatty(i32 noundef %3923) #10
  %3925 = icmp ne i32 %3924, 0
  br i1 %3925, label %3926, label %3943

3926:                                             ; preds = %3921
  %3927 = load i32, ptr %90, align 4, !tbaa !5
  %3928 = call ptr @__errno_location() #11
  store i32 %3927, ptr %3928, align 4, !tbaa !5
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call ptr @s2n_strerror(i32 noundef %3932, ptr noundef @.str.4)
  %3934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror_debug(i32 noundef %3935, ptr noundef @.str.4)
  %3937 = call ptr @__errno_location() #11
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call ptr @strerror(i32 noundef %3938) #10
  %3940 = call ptr @__errno_location() #11
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3929, ptr noundef @.str.2, i32 noundef %3930, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 189, ptr noundef %3933, ptr noundef %3936, ptr noundef %3939, i32 noundef %3941) #10
  br label %3960

3943:                                             ; preds = %3921, %3914
  %3944 = load i32, ptr %90, align 4, !tbaa !5
  %3945 = call ptr @__errno_location() #11
  store i32 %3944, ptr %3945, align 4, !tbaa !5
  %3946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3947 = load i32, ptr @test_count, align 4, !tbaa !5
  %3948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3949 = load i32, ptr %3948, align 4, !tbaa !5
  %3950 = call ptr @s2n_strerror(i32 noundef %3949, ptr noundef @.str.4)
  %3951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = call ptr @s2n_strerror_debug(i32 noundef %3952, ptr noundef @.str.4)
  %3954 = call ptr @__errno_location() #11
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @strerror(i32 noundef %3955) #10
  %3957 = call ptr @__errno_location() #11
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3946, ptr noundef @.str.5, i32 noundef %3947, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 189, ptr noundef %3950, ptr noundef %3953, ptr noundef %3956, i32 noundef %3958) #10
  br label %3960

3960:                                             ; preds = %3943, %3926
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %3961

3961:                                             ; preds = %3960
  br label %3962

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

3963:                                             ; No predecessors!
  br label %3964

3964:                                             ; preds = %3963
  br label %3965

3965:                                             ; preds = %3964, %3904
  br label %3966

3966:                                             ; preds = %3965
  br label %3967

3967:                                             ; preds = %3966
  br label %3968

3968:                                             ; preds = %3967
  %3969 = load i32, ptr @test_count, align 4, !tbaa !5
  %3970 = add nsw i32 %3969, 1
  store i32 %3970, ptr @test_count, align 4, !tbaa !5
  %3971 = load ptr, ptr %78, align 8, !tbaa !9
  %3972 = getelementptr inbounds %struct.s2n_connection, ptr %3971, i32 0, i32 23
  %3973 = load i8, ptr %3972, align 4, !tbaa !54
  %3974 = zext i8 %3973 to i32
  %3975 = icmp eq i32 %3974, 0
  br i1 %3975, label %4029, label %3976

3976:                                             ; preds = %3968
  br label %3977

3977:                                             ; preds = %3976
  br label %3978

3978:                                             ; preds = %3977
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %3979 = call ptr @__errno_location() #11
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  store i32 %3980, ptr %91, align 4, !tbaa !5
  %3981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3982 = call i32 @s2n_print_stacktrace(ptr noundef %3981)
  %3983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3984 = trunc i8 %3983 to i1
  br i1 %3984, label %3985, label %4007

3985:                                             ; preds = %3978
  %3986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3987 = call i32 @fileno(ptr noundef %3986) #10
  %3988 = call i32 @isatty(i32 noundef %3987) #10
  %3989 = icmp ne i32 %3988, 0
  br i1 %3989, label %3990, label %4007

3990:                                             ; preds = %3985
  %3991 = load i32, ptr %91, align 4, !tbaa !5
  %3992 = call ptr @__errno_location() #11
  store i32 %3991, ptr %3992, align 4, !tbaa !5
  %3993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3994 = load i32, ptr @test_count, align 4, !tbaa !5
  %3995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3996 = load i32, ptr %3995, align 4, !tbaa !5
  %3997 = call ptr @s2n_strerror(i32 noundef %3996, ptr noundef @.str.4)
  %3998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  %4000 = call ptr @s2n_strerror_debug(i32 noundef %3999, ptr noundef @.str.4)
  %4001 = call ptr @__errno_location() #11
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  %4003 = call ptr @strerror(i32 noundef %4002) #10
  %4004 = call ptr @__errno_location() #11
  %4005 = load i32, ptr %4004, align 4, !tbaa !5
  %4006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3993, ptr noundef @.str.2, i32 noundef %3994, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3997, ptr noundef %4000, ptr noundef %4003, i32 noundef %4005) #10
  br label %4024

4007:                                             ; preds = %3985, %3978
  %4008 = load i32, ptr %91, align 4, !tbaa !5
  %4009 = call ptr @__errno_location() #11
  store i32 %4008, ptr %4009, align 4, !tbaa !5
  %4010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4011 = load i32, ptr @test_count, align 4, !tbaa !5
  %4012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4013 = load i32, ptr %4012, align 4, !tbaa !5
  %4014 = call ptr @s2n_strerror(i32 noundef %4013, ptr noundef @.str.4)
  %4015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4016 = load i32, ptr %4015, align 4, !tbaa !5
  %4017 = call ptr @s2n_strerror_debug(i32 noundef %4016, ptr noundef @.str.4)
  %4018 = call ptr @__errno_location() #11
  %4019 = load i32, ptr %4018, align 4, !tbaa !5
  %4020 = call ptr @strerror(i32 noundef %4019) #10
  %4021 = call ptr @__errno_location() #11
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  %4023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4010, ptr noundef @.str.5, i32 noundef %4011, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 190, ptr noundef %4014, ptr noundef %4017, ptr noundef %4020, i32 noundef %4022) #10
  br label %4024

4024:                                             ; preds = %4007, %3990
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %4025

4025:                                             ; preds = %4024
  br label %4026

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

4027:                                             ; No predecessors!
  br label %4028

4028:                                             ; preds = %4027
  br label %4029

4029:                                             ; preds = %4028, %3968
  br label %4030

4030:                                             ; preds = %4029
  br label %4031

4031:                                             ; preds = %4030
  br label %4032

4032:                                             ; preds = %4031
  %4033 = load i32, ptr @test_count, align 4, !tbaa !5
  %4034 = add nsw i32 %4033, 1
  store i32 %4034, ptr @test_count, align 4, !tbaa !5
  %4035 = load ptr, ptr %78, align 8, !tbaa !9
  %4036 = call i32 @s2n_connection_free(ptr noundef %4035)
  %4037 = icmp eq i32 %4036, -1
  br i1 %4037, label %4038, label %4091

4038:                                             ; preds = %4032
  br label %4039

4039:                                             ; preds = %4038
  br label %4040

4040:                                             ; preds = %4039
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %4041 = call ptr @__errno_location() #11
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  store i32 %4042, ptr %92, align 4, !tbaa !5
  %4043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4044 = call i32 @s2n_print_stacktrace(ptr noundef %4043)
  %4045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4046 = trunc i8 %4045 to i1
  br i1 %4046, label %4047, label %4069

4047:                                             ; preds = %4040
  %4048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4049 = call i32 @fileno(ptr noundef %4048) #10
  %4050 = call i32 @isatty(i32 noundef %4049) #10
  %4051 = icmp ne i32 %4050, 0
  br i1 %4051, label %4052, label %4069

4052:                                             ; preds = %4047
  %4053 = load i32, ptr %92, align 4, !tbaa !5
  %4054 = call ptr @__errno_location() #11
  store i32 %4053, ptr %4054, align 4, !tbaa !5
  %4055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4056 = load i32, ptr @test_count, align 4, !tbaa !5
  %4057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4058 = load i32, ptr %4057, align 4, !tbaa !5
  %4059 = call ptr @s2n_strerror(i32 noundef %4058, ptr noundef @.str.4)
  %4060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4061 = load i32, ptr %4060, align 4, !tbaa !5
  %4062 = call ptr @s2n_strerror_debug(i32 noundef %4061, ptr noundef @.str.4)
  %4063 = call ptr @__errno_location() #11
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call ptr @strerror(i32 noundef %4064) #10
  %4066 = call ptr @__errno_location() #11
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4055, ptr noundef @.str.2, i32 noundef %4056, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 192, ptr noundef %4059, ptr noundef %4062, ptr noundef %4065, i32 noundef %4067) #10
  br label %4086

4069:                                             ; preds = %4047, %4040
  %4070 = load i32, ptr %92, align 4, !tbaa !5
  %4071 = call ptr @__errno_location() #11
  store i32 %4070, ptr %4071, align 4, !tbaa !5
  %4072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4073 = load i32, ptr @test_count, align 4, !tbaa !5
  %4074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4075 = load i32, ptr %4074, align 4, !tbaa !5
  %4076 = call ptr @s2n_strerror(i32 noundef %4075, ptr noundef @.str.4)
  %4077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4078 = load i32, ptr %4077, align 4, !tbaa !5
  %4079 = call ptr @s2n_strerror_debug(i32 noundef %4078, ptr noundef @.str.4)
  %4080 = call ptr @__errno_location() #11
  %4081 = load i32, ptr %4080, align 4, !tbaa !5
  %4082 = call ptr @strerror(i32 noundef %4081) #10
  %4083 = call ptr @__errno_location() #11
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4072, ptr noundef @.str.5, i32 noundef %4073, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 192, ptr noundef %4076, ptr noundef %4079, ptr noundef %4082, i32 noundef %4084) #10
  br label %4086

4086:                                             ; preds = %4069, %4052
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %4087

4087:                                             ; preds = %4086
  br label %4088

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

4089:                                             ; No predecessors!
  br label %4090

4090:                                             ; preds = %4089
  br label %4091

4091:                                             ; preds = %4090, %4032
  br label %4092

4092:                                             ; preds = %4091
  br label %4093

4093:                                             ; preds = %4092
  br label %4094

4094:                                             ; preds = %4093
  %4095 = load i32, ptr @test_count, align 4, !tbaa !5
  %4096 = add nsw i32 %4095, 1
  store i32 %4096, ptr @test_count, align 4, !tbaa !5
  %4097 = call i32 @s2n_stuffer_free(ptr noundef %84)
  %4098 = icmp eq i32 %4097, -1
  br i1 %4098, label %4099, label %4152

4099:                                             ; preds = %4094
  br label %4100

4100:                                             ; preds = %4099
  br label %4101

4101:                                             ; preds = %4100
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  %4102 = call ptr @__errno_location() #11
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  store i32 %4103, ptr %93, align 4, !tbaa !5
  %4104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4105 = call i32 @s2n_print_stacktrace(ptr noundef %4104)
  %4106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4107 = trunc i8 %4106 to i1
  br i1 %4107, label %4108, label %4130

4108:                                             ; preds = %4101
  %4109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4110 = call i32 @fileno(ptr noundef %4109) #10
  %4111 = call i32 @isatty(i32 noundef %4110) #10
  %4112 = icmp ne i32 %4111, 0
  br i1 %4112, label %4113, label %4130

4113:                                             ; preds = %4108
  %4114 = load i32, ptr %93, align 4, !tbaa !5
  %4115 = call ptr @__errno_location() #11
  store i32 %4114, ptr %4115, align 4, !tbaa !5
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = load i32, ptr @test_count, align 4, !tbaa !5
  %4118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4119 = load i32, ptr %4118, align 4, !tbaa !5
  %4120 = call ptr @s2n_strerror(i32 noundef %4119, ptr noundef @.str.4)
  %4121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = call ptr @s2n_strerror_debug(i32 noundef %4122, ptr noundef @.str.4)
  %4124 = call ptr @__errno_location() #11
  %4125 = load i32, ptr %4124, align 4, !tbaa !5
  %4126 = call ptr @strerror(i32 noundef %4125) #10
  %4127 = call ptr @__errno_location() #11
  %4128 = load i32, ptr %4127, align 4, !tbaa !5
  %4129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4116, ptr noundef @.str.2, i32 noundef %4117, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4120, ptr noundef %4123, ptr noundef %4126, i32 noundef %4128) #10
  br label %4147

4130:                                             ; preds = %4108, %4101
  %4131 = load i32, ptr %93, align 4, !tbaa !5
  %4132 = call ptr @__errno_location() #11
  store i32 %4131, ptr %4132, align 4, !tbaa !5
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = load i32, ptr @test_count, align 4, !tbaa !5
  %4135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4136 = load i32, ptr %4135, align 4, !tbaa !5
  %4137 = call ptr @s2n_strerror(i32 noundef %4136, ptr noundef @.str.4)
  %4138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4139 = load i32, ptr %4138, align 4, !tbaa !5
  %4140 = call ptr @s2n_strerror_debug(i32 noundef %4139, ptr noundef @.str.4)
  %4141 = call ptr @__errno_location() #11
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  %4143 = call ptr @strerror(i32 noundef %4142) #10
  %4144 = call ptr @__errno_location() #11
  %4145 = load i32, ptr %4144, align 4, !tbaa !5
  %4146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4133, ptr noundef @.str.5, i32 noundef %4134, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4137, ptr noundef %4140, ptr noundef %4143, i32 noundef %4145) #10
  br label %4147

4147:                                             ; preds = %4130, %4113
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %4148

4148:                                             ; preds = %4147
  br label %4149

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

4150:                                             ; No predecessors!
  br label %4151

4151:                                             ; preds = %4150
  br label %4152

4152:                                             ; preds = %4151, %4094
  br label %4153

4153:                                             ; preds = %4152
  br label %4154

4154:                                             ; preds = %4153
  call void @llvm.lifetime.end.p0(i64 40, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #10
  store ptr null, ptr %94, align 8, !tbaa !9
  br label %4155

4155:                                             ; preds = %4154
  %4156 = load i32, ptr @test_count, align 4, !tbaa !5
  %4157 = add nsw i32 %4156, 1
  store i32 %4157, ptr @test_count, align 4, !tbaa !5
  %4158 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4158, ptr %94, align 8, !tbaa !9
  %4159 = icmp eq ptr %4158, null
  br i1 %4159, label %4160, label %4213

4160:                                             ; preds = %4155
  br label %4161

4161:                                             ; preds = %4160
  br label %4162

4162:                                             ; preds = %4161
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  %4163 = call ptr @__errno_location() #11
  %4164 = load i32, ptr %4163, align 4, !tbaa !5
  store i32 %4164, ptr %95, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = call i32 @s2n_print_stacktrace(ptr noundef %4165)
  %4167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4168 = trunc i8 %4167 to i1
  br i1 %4168, label %4169, label %4191

4169:                                             ; preds = %4162
  %4170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4171 = call i32 @fileno(ptr noundef %4170) #10
  %4172 = call i32 @isatty(i32 noundef %4171) #10
  %4173 = icmp ne i32 %4172, 0
  br i1 %4173, label %4174, label %4191

4174:                                             ; preds = %4169
  %4175 = load i32, ptr %95, align 4, !tbaa !5
  %4176 = call ptr @__errno_location() #11
  store i32 %4175, ptr %4176, align 4, !tbaa !5
  %4177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4178 = load i32, ptr @test_count, align 4, !tbaa !5
  %4179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  %4181 = call ptr @s2n_strerror(i32 noundef %4180, ptr noundef @.str.4)
  %4182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4183 = load i32, ptr %4182, align 4, !tbaa !5
  %4184 = call ptr @s2n_strerror_debug(i32 noundef %4183, ptr noundef @.str.4)
  %4185 = call ptr @__errno_location() #11
  %4186 = load i32, ptr %4185, align 4, !tbaa !5
  %4187 = call ptr @strerror(i32 noundef %4186) #10
  %4188 = call ptr @__errno_location() #11
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  %4190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4177, ptr noundef @.str.2, i32 noundef %4178, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4181, ptr noundef %4184, ptr noundef %4187, i32 noundef %4189) #10
  br label %4208

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

4208:                                             ; preds = %4191, %4174
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %4209

4209:                                             ; preds = %4208
  br label %4210

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

4211:                                             ; No predecessors!
  br label %4212

4212:                                             ; preds = %4211
  br label %4213

4213:                                             ; preds = %4212, %4155
  br label %4214

4214:                                             ; preds = %4213
  br label %4215

4215:                                             ; preds = %4214
  br label %4216

4216:                                             ; preds = %4215
  %4217 = load i32, ptr @test_count, align 4, !tbaa !5
  %4218 = add nsw i32 %4217, 1
  store i32 %4218, ptr @test_count, align 4, !tbaa !5
  %4219 = load ptr, ptr %94, align 8, !tbaa !9
  %4220 = load ptr, ptr %11, align 8, !tbaa !9
  %4221 = call i32 @s2n_connection_set_config(ptr noundef %4219, ptr noundef %4220)
  %4222 = icmp eq i32 %4221, -1
  br i1 %4222, label %4223, label %4276

4223:                                             ; preds = %4216
  br label %4224

4224:                                             ; preds = %4223
  br label %4225

4225:                                             ; preds = %4224
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %4226 = call ptr @__errno_location() #11
  %4227 = load i32, ptr %4226, align 4, !tbaa !5
  store i32 %4227, ptr %96, align 4, !tbaa !5
  %4228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4229 = call i32 @s2n_print_stacktrace(ptr noundef %4228)
  %4230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4231 = trunc i8 %4230 to i1
  br i1 %4231, label %4232, label %4254

4232:                                             ; preds = %4225
  %4233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4234 = call i32 @fileno(ptr noundef %4233) #10
  %4235 = call i32 @isatty(i32 noundef %4234) #10
  %4236 = icmp ne i32 %4235, 0
  br i1 %4236, label %4237, label %4254

4237:                                             ; preds = %4232
  %4238 = load i32, ptr %96, align 4, !tbaa !5
  %4239 = call ptr @__errno_location() #11
  store i32 %4238, ptr %4239, align 4, !tbaa !5
  %4240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4241 = load i32, ptr @test_count, align 4, !tbaa !5
  %4242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4243 = load i32, ptr %4242, align 4, !tbaa !5
  %4244 = call ptr @s2n_strerror(i32 noundef %4243, ptr noundef @.str.4)
  %4245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  %4247 = call ptr @s2n_strerror_debug(i32 noundef %4246, ptr noundef @.str.4)
  %4248 = call ptr @__errno_location() #11
  %4249 = load i32, ptr %4248, align 4, !tbaa !5
  %4250 = call ptr @strerror(i32 noundef %4249) #10
  %4251 = call ptr @__errno_location() #11
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4240, ptr noundef @.str.2, i32 noundef %4241, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4244, ptr noundef %4247, ptr noundef %4250, i32 noundef %4252) #10
  br label %4271

4254:                                             ; preds = %4232, %4225
  %4255 = load i32, ptr %96, align 4, !tbaa !5
  %4256 = call ptr @__errno_location() #11
  store i32 %4255, ptr %4256, align 4, !tbaa !5
  %4257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4258 = load i32, ptr @test_count, align 4, !tbaa !5
  %4259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4260 = load i32, ptr %4259, align 4, !tbaa !5
  %4261 = call ptr @s2n_strerror(i32 noundef %4260, ptr noundef @.str.4)
  %4262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4263 = load i32, ptr %4262, align 4, !tbaa !5
  %4264 = call ptr @s2n_strerror_debug(i32 noundef %4263, ptr noundef @.str.4)
  %4265 = call ptr @__errno_location() #11
  %4266 = load i32, ptr %4265, align 4, !tbaa !5
  %4267 = call ptr @strerror(i32 noundef %4266) #10
  %4268 = call ptr @__errno_location() #11
  %4269 = load i32, ptr %4268, align 4, !tbaa !5
  %4270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4257, ptr noundef @.str.5, i32 noundef %4258, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4261, ptr noundef %4264, ptr noundef %4267, i32 noundef %4269) #10
  br label %4271

4271:                                             ; preds = %4254, %4237
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4272

4272:                                             ; preds = %4271
  br label %4273

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

4274:                                             ; No predecessors!
  br label %4275

4275:                                             ; preds = %4274
  br label %4276

4276:                                             ; preds = %4275, %4216
  br label %4277

4277:                                             ; preds = %4276
  br label %4278

4278:                                             ; preds = %4277
  call void @llvm.lifetime.start.p0(i64 12, ptr %97) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %97, ptr align 2 @__const.main.invalid_version_list, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #10
  store i8 6, ptr %98, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %99) #10
  call void @llvm.memset.p0.i64(ptr align 8 %99, i8 0, i64 40, i1 false)
  br label %4279

4279:                                             ; preds = %4278
  %4280 = load i32, ptr @test_count, align 4, !tbaa !5
  %4281 = add nsw i32 %4280, 1
  store i32 %4281, ptr @test_count, align 4, !tbaa !5
  %4282 = load i8, ptr %98, align 1, !tbaa !15
  %4283 = zext i8 %4282 to i32
  %4284 = mul nsw i32 %4283, 2
  %4285 = add nsw i32 %4284, 1
  %4286 = call i32 @s2n_stuffer_alloc(ptr noundef %99, i32 noundef %4285)
  %4287 = icmp eq i32 %4286, -1
  br i1 %4287, label %4288, label %4341

4288:                                             ; preds = %4279
  br label %4289

4289:                                             ; preds = %4288
  br label %4290

4290:                                             ; preds = %4289
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %4291 = call ptr @__errno_location() #11
  %4292 = load i32, ptr %4291, align 4, !tbaa !5
  store i32 %4292, ptr %100, align 4, !tbaa !5
  %4293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4294 = call i32 @s2n_print_stacktrace(ptr noundef %4293)
  %4295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4296 = trunc i8 %4295 to i1
  br i1 %4296, label %4297, label %4319

4297:                                             ; preds = %4290
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4299 = call i32 @fileno(ptr noundef %4298) #10
  %4300 = call i32 @isatty(i32 noundef %4299) #10
  %4301 = icmp ne i32 %4300, 0
  br i1 %4301, label %4302, label %4319

4302:                                             ; preds = %4297
  %4303 = load i32, ptr %100, align 4, !tbaa !5
  %4304 = call ptr @__errno_location() #11
  store i32 %4303, ptr %4304, align 4, !tbaa !5
  %4305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4306 = load i32, ptr @test_count, align 4, !tbaa !5
  %4307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4308 = load i32, ptr %4307, align 4, !tbaa !5
  %4309 = call ptr @s2n_strerror(i32 noundef %4308, ptr noundef @.str.4)
  %4310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  %4312 = call ptr @s2n_strerror_debug(i32 noundef %4311, ptr noundef @.str.4)
  %4313 = call ptr @__errno_location() #11
  %4314 = load i32, ptr %4313, align 4, !tbaa !5
  %4315 = call ptr @strerror(i32 noundef %4314) #10
  %4316 = call ptr @__errno_location() #11
  %4317 = load i32, ptr %4316, align 4, !tbaa !5
  %4318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4305, ptr noundef @.str.2, i32 noundef %4306, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4309, ptr noundef %4312, ptr noundef %4315, i32 noundef %4317) #10
  br label %4336

4319:                                             ; preds = %4297, %4290
  %4320 = load i32, ptr %100, align 4, !tbaa !5
  %4321 = call ptr @__errno_location() #11
  store i32 %4320, ptr %4321, align 4, !tbaa !5
  %4322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4323 = load i32, ptr @test_count, align 4, !tbaa !5
  %4324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4325 = load i32, ptr %4324, align 4, !tbaa !5
  %4326 = call ptr @s2n_strerror(i32 noundef %4325, ptr noundef @.str.4)
  %4327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4328 = load i32, ptr %4327, align 4, !tbaa !5
  %4329 = call ptr @s2n_strerror_debug(i32 noundef %4328, ptr noundef @.str.4)
  %4330 = call ptr @__errno_location() #11
  %4331 = load i32, ptr %4330, align 4, !tbaa !5
  %4332 = call ptr @strerror(i32 noundef %4331) #10
  %4333 = call ptr @__errno_location() #11
  %4334 = load i32, ptr %4333, align 4, !tbaa !5
  %4335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4322, ptr noundef @.str.5, i32 noundef %4323, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4326, ptr noundef %4329, ptr noundef %4332, i32 noundef %4334) #10
  br label %4336

4336:                                             ; preds = %4319, %4302
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %4337

4337:                                             ; preds = %4336
  br label %4338

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

4339:                                             ; No predecessors!
  br label %4340

4340:                                             ; preds = %4339
  br label %4341

4341:                                             ; preds = %4340, %4279
  br label %4342

4342:                                             ; preds = %4341
  br label %4343

4343:                                             ; preds = %4342
  br label %4344

4344:                                             ; preds = %4343
  %4345 = load i8, ptr %98, align 1, !tbaa !15
  %4346 = zext i8 %4345 to i32
  %4347 = mul nsw i32 %4346, 2
  %4348 = trunc i32 %4347 to i8
  %4349 = call i32 @s2n_stuffer_write_uint8(ptr noundef %99, i8 noundef zeroext %4348)
  %4350 = icmp sgt i32 %4349, -1
  br i1 %4350, label %4352, label %4351

4351:                                             ; preds = %4344
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %101, align 4
  br label %4700

4352:                                             ; preds = %4344
  br label %4353

4353:                                             ; preds = %4352
  br label %4354

4354:                                             ; preds = %4353
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #10
  store i64 0, ptr %102, align 8, !tbaa !47
  br label %4355

4355:                                             ; preds = %4372, %4354
  %4356 = load i64, ptr %102, align 8, !tbaa !47
  %4357 = load i8, ptr %98, align 1, !tbaa !15
  %4358 = zext i8 %4357 to i64
  %4359 = icmp ult i64 %4356, %4358
  br i1 %4359, label %4361, label %4360

4360:                                             ; preds = %4355
  store i32 398, ptr %101, align 4
  br label %4375

4361:                                             ; preds = %4355
  br label %4362

4362:                                             ; preds = %4361
  %4363 = load i64, ptr %102, align 8, !tbaa !47
  %4364 = getelementptr inbounds [6 x i16], ptr %97, i64 0, i64 %4363
  %4365 = load i16, ptr %4364, align 2, !tbaa !48
  %4366 = call i32 @s2n_stuffer_write_uint16(ptr noundef %99, i16 noundef zeroext %4365)
  %4367 = icmp sgt i32 %4366, -1
  br i1 %4367, label %4369, label %4368

4368:                                             ; preds = %4362
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %101, align 4
  br label %4375

4369:                                             ; preds = %4362
  br label %4370

4370:                                             ; preds = %4369
  br label %4371

4371:                                             ; preds = %4370
  br label %4372

4372:                                             ; preds = %4371
  %4373 = load i64, ptr %102, align 8, !tbaa !47
  %4374 = add i64 %4373, 1
  store i64 %4374, ptr %102, align 8, !tbaa !47
  br label %4355, !llvm.loop !55

4375:                                             ; preds = %4368, %4360
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  %4376 = load i32, ptr %101, align 4
  switch i32 %4376, label %4700 [
    i32 398, label %4377
  ]

4377:                                             ; preds = %4375
  br label %4378

4378:                                             ; preds = %4377
  br label %4379

4379:                                             ; preds = %4378
  br label %4380

4380:                                             ; preds = %4379
  %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 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %4384 = load ptr, ptr %94, align 8, !tbaa !9
  %4385 = call i32 %4383(ptr noundef %4384, ptr noundef %99)
  %4386 = icmp eq i32 %4385, -1
  br i1 %4386, label %4440, label %4387

4387:                                             ; preds = %4380
  br label %4388

4388:                                             ; preds = %4387
  br label %4389

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

4396:                                             ; preds = %4389
  %4397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4398 = call i32 @fileno(ptr noundef %4397) #10
  %4399 = call i32 @isatty(i32 noundef %4398) #10
  %4400 = icmp ne i32 %4399, 0
  br i1 %4400, label %4401, label %4418

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

4418:                                             ; preds = %4396, %4389
  %4419 = load i32, ptr %103, align 4, !tbaa !5
  %4420 = call ptr @__errno_location() #11
  store i32 %4419, ptr %4420, align 4, !tbaa !5
  %4421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4422 = load i32, ptr @test_count, align 4, !tbaa !5
  %4423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4424 = load i32, ptr %4423, align 4, !tbaa !5
  %4425 = call ptr @s2n_strerror(i32 noundef %4424, ptr noundef @.str.4)
  %4426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4427 = load i32, ptr %4426, align 4, !tbaa !5
  %4428 = call ptr @s2n_strerror_debug(i32 noundef %4427, ptr noundef @.str.4)
  %4429 = call ptr @__errno_location() #11
  %4430 = load i32, ptr %4429, align 4, !tbaa !5
  %4431 = call ptr @strerror(i32 noundef %4430) #10
  %4432 = call ptr @__errno_location() #11
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4421, ptr noundef @.str.5, i32 noundef %4422, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4425, ptr noundef %4428, ptr noundef %4431, i32 noundef %4433) #10
  br label %4435

4435:                                             ; preds = %4418, %4401
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %4436

4436:                                             ; preds = %4435
  br label %4437

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

4438:                                             ; No predecessors!
  br label %4439

4439:                                             ; preds = %4438
  br label %4440

4440:                                             ; preds = %4439, %4380
  br label %4441

4441:                                             ; preds = %4440
  br label %4442

4442:                                             ; preds = %4441
  br label %4443

4443:                                             ; preds = %4442
  %4444 = load i32, ptr @test_count, align 4, !tbaa !5
  %4445 = add nsw i32 %4444, 1
  store i32 %4445, ptr @test_count, align 4, !tbaa !5
  %4446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4447 = load i32, ptr %4446, align 4, !tbaa !5
  %4448 = icmp eq i32 %4447, 402653239
  br i1 %4448, label %4502, label %4449

4449:                                             ; preds = %4443
  br label %4450

4450:                                             ; preds = %4449
  br label %4451

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

4458:                                             ; preds = %4451
  %4459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4460 = call i32 @fileno(ptr noundef %4459) #10
  %4461 = call i32 @isatty(i32 noundef %4460) #10
  %4462 = icmp ne i32 %4461, 0
  br i1 %4462, label %4463, label %4480

4463:                                             ; preds = %4458
  %4464 = load i32, ptr %104, align 4, !tbaa !5
  %4465 = call ptr @__errno_location() #11
  store i32 %4464, ptr %4465, align 4, !tbaa !5
  %4466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4467 = load i32, ptr @test_count, align 4, !tbaa !5
  %4468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4469 = load i32, ptr %4468, align 4, !tbaa !5
  %4470 = call ptr @s2n_strerror(i32 noundef %4469, ptr noundef @.str.4)
  %4471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4472 = load i32, ptr %4471, align 4, !tbaa !5
  %4473 = call ptr @s2n_strerror_debug(i32 noundef %4472, ptr noundef @.str.4)
  %4474 = call ptr @__errno_location() #11
  %4475 = load i32, ptr %4474, align 4, !tbaa !5
  %4476 = call ptr @strerror(i32 noundef %4475) #10
  %4477 = call ptr @__errno_location() #11
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  %4479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4466, ptr noundef @.str.2, i32 noundef %4467, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4470, ptr noundef %4473, ptr noundef %4476, i32 noundef %4478) #10
  br label %4497

4480:                                             ; preds = %4458, %4451
  %4481 = load i32, ptr %104, align 4, !tbaa !5
  %4482 = call ptr @__errno_location() #11
  store i32 %4481, ptr %4482, align 4, !tbaa !5
  %4483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4484 = load i32, ptr @test_count, align 4, !tbaa !5
  %4485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4486 = load i32, ptr %4485, align 4, !tbaa !5
  %4487 = call ptr @s2n_strerror(i32 noundef %4486, ptr noundef @.str.4)
  %4488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4489 = load i32, ptr %4488, align 4, !tbaa !5
  %4490 = call ptr @s2n_strerror_debug(i32 noundef %4489, ptr noundef @.str.4)
  %4491 = call ptr @__errno_location() #11
  %4492 = load i32, ptr %4491, align 4, !tbaa !5
  %4493 = call ptr @strerror(i32 noundef %4492) #10
  %4494 = call ptr @__errno_location() #11
  %4495 = load i32, ptr %4494, align 4, !tbaa !5
  %4496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4483, ptr noundef @.str.5, i32 noundef %4484, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4487, ptr noundef %4490, ptr noundef %4493, i32 noundef %4495) #10
  br label %4497

4497:                                             ; preds = %4480, %4463
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %4498

4498:                                             ; preds = %4497
  br label %4499

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

4500:                                             ; No predecessors!
  br label %4501

4501:                                             ; preds = %4500
  br label %4502

4502:                                             ; preds = %4501, %4443
  br label %4503

4503:                                             ; preds = %4502
  br label %4504

4504:                                             ; preds = %4503
  br label %4505

4505:                                             ; preds = %4504
  %4506 = load i32, ptr @test_count, align 4, !tbaa !5
  %4507 = add nsw i32 %4506, 1
  store i32 %4507, ptr @test_count, align 4, !tbaa !5
  %4508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4509 = load i32, ptr %4508, align 4, !tbaa !5
  %4510 = call ptr @s2n_strerror_debug(i32 noundef %4509, ptr noundef @.str.4)
  %4511 = icmp eq ptr %4510, null
  br i1 %4511, label %4512, label %4565

4512:                                             ; preds = %4505
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

4514:                                             ; preds = %4513
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %4515 = call ptr @__errno_location() #11
  %4516 = load i32, ptr %4515, align 4, !tbaa !5
  store i32 %4516, ptr %105, align 4, !tbaa !5
  %4517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4518 = call i32 @s2n_print_stacktrace(ptr noundef %4517)
  %4519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4520 = trunc i8 %4519 to i1
  br i1 %4520, label %4521, label %4543

4521:                                             ; preds = %4514
  %4522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4523 = call i32 @fileno(ptr noundef %4522) #10
  %4524 = call i32 @isatty(i32 noundef %4523) #10
  %4525 = icmp ne i32 %4524, 0
  br i1 %4525, label %4526, label %4543

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

4543:                                             ; preds = %4521, %4514
  %4544 = load i32, ptr %105, align 4, !tbaa !5
  %4545 = call ptr @__errno_location() #11
  store i32 %4544, ptr %4545, align 4, !tbaa !5
  %4546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4547 = load i32, ptr @test_count, align 4, !tbaa !5
  %4548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  %4550 = call ptr @s2n_strerror(i32 noundef %4549, ptr noundef @.str.4)
  %4551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4552 = load i32, ptr %4551, align 4, !tbaa !5
  %4553 = call ptr @s2n_strerror_debug(i32 noundef %4552, ptr noundef @.str.4)
  %4554 = call ptr @__errno_location() #11
  %4555 = load i32, ptr %4554, align 4, !tbaa !5
  %4556 = call ptr @strerror(i32 noundef %4555) #10
  %4557 = call ptr @__errno_location() #11
  %4558 = load i32, ptr %4557, align 4, !tbaa !5
  %4559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4546, ptr noundef @.str.5, i32 noundef %4547, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4550, ptr noundef %4553, ptr noundef %4556, i32 noundef %4558) #10
  br label %4560

4560:                                             ; preds = %4543, %4526
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4561

4561:                                             ; preds = %4560
  br label %4562

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

4563:                                             ; No predecessors!
  br label %4564

4564:                                             ; preds = %4563
  br label %4565

4565:                                             ; preds = %4564, %4505
  br label %4566

4566:                                             ; preds = %4565
  br label %4567

4567:                                             ; preds = %4566
  br label %4568

4568:                                             ; preds = %4567
  br label %4569

4569:                                             ; preds = %4568
  br label %4570

4570:                                             ; preds = %4569
  %4571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4571, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4572 = call ptr @__errno_location() #11
  store i32 0, ptr %4572, align 4, !tbaa !5
  br label %4573

4573:                                             ; preds = %4570
  br label %4574

4574:                                             ; preds = %4573
  br label %4575

4575:                                             ; preds = %4574
  br label %4576

4576:                                             ; preds = %4575
  br label %4577

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

4583:                                             ; preds = %4577
  br label %4584

4584:                                             ; preds = %4583
  br label %4585

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

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

4597:                                             ; preds = %4592
  %4598 = load i32, ptr %106, align 4, !tbaa !5
  %4599 = call ptr @__errno_location() #11
  store i32 %4598, ptr %4599, align 4, !tbaa !5
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = load i32, ptr @test_count, align 4, !tbaa !5
  %4602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4603 = load i32, ptr %4602, align 4, !tbaa !5
  %4604 = call ptr @s2n_strerror(i32 noundef %4603, ptr noundef @.str.4)
  %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_debug(i32 noundef %4606, ptr noundef @.str.4)
  %4608 = call ptr @__errno_location() #11
  %4609 = load i32, ptr %4608, align 4, !tbaa !5
  %4610 = call ptr @strerror(i32 noundef %4609) #10
  %4611 = call ptr @__errno_location() #11
  %4612 = load i32, ptr %4611, align 4, !tbaa !5
  %4613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4600, ptr noundef @.str.2, i32 noundef %4601, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4604, ptr noundef %4607, ptr noundef %4610, i32 noundef %4612) #10
  br label %4631

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

4631:                                             ; preds = %4614, %4597
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %4632

4632:                                             ; preds = %4631
  br label %4633

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

4634:                                             ; No predecessors!
  br label %4635

4635:                                             ; preds = %4634
  br label %4636

4636:                                             ; preds = %4635, %4577
  br label %4637

4637:                                             ; preds = %4636
  br label %4638

4638:                                             ; preds = %4637
  br label %4639

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

4644:                                             ; preds = %4639
  br label %4645

4645:                                             ; preds = %4644
  br label %4646

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

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

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

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

4692:                                             ; preds = %4675, %4658
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %4693

4693:                                             ; preds = %4692
  br label %4694

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

4695:                                             ; No predecessors!
  br label %4696

4696:                                             ; preds = %4695
  br label %4697

4697:                                             ; preds = %4696, %4639
  br label %4698

4698:                                             ; preds = %4697
  br label %4699

4699:                                             ; preds = %4698
  store i32 0, ptr %101, align 4
  br label %4700

4700:                                             ; preds = %4699, %4375, %4351
  call void @llvm.lifetime.end.p0(i64 40, ptr %99) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %97) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  %4701 = load i32, ptr %101, align 4
  switch i32 %4701, label %11620 [
    i32 0, label %4702
  ]

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

4703:                                             ; preds = %4702
  %4704 = load i32, ptr @test_count, align 4, !tbaa !5
  %4705 = add nsw i32 %4704, 1
  store i32 %4705, ptr @test_count, align 4, !tbaa !5
  %4706 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4706, ptr %108, align 8, !tbaa !9
  %4707 = icmp eq ptr %4706, null
  br i1 %4707, label %4708, label %4761

4708:                                             ; preds = %4703
  br label %4709

4709:                                             ; preds = %4708
  br label %4710

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

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

4722:                                             ; preds = %4717
  %4723 = load i32, ptr %109, align 4, !tbaa !5
  %4724 = call ptr @__errno_location() #11
  store i32 %4723, ptr %4724, align 4, !tbaa !5
  %4725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4726 = load i32, ptr @test_count, align 4, !tbaa !5
  %4727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4728 = load i32, ptr %4727, align 4, !tbaa !5
  %4729 = call ptr @s2n_strerror(i32 noundef %4728, ptr noundef @.str.4)
  %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_debug(i32 noundef %4731, ptr noundef @.str.4)
  %4733 = call ptr @__errno_location() #11
  %4734 = load i32, ptr %4733, align 4, !tbaa !5
  %4735 = call ptr @strerror(i32 noundef %4734) #10
  %4736 = call ptr @__errno_location() #11
  %4737 = load i32, ptr %4736, align 4, !tbaa !5
  %4738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4725, ptr noundef @.str.2, i32 noundef %4726, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 224, ptr noundef %4729, ptr noundef %4732, ptr noundef %4735, i32 noundef %4737) #10
  br label %4756

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

4756:                                             ; preds = %4739, %4722
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %4757

4757:                                             ; preds = %4756
  br label %4758

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

4759:                                             ; No predecessors!
  br label %4760

4760:                                             ; preds = %4759
  br label %4761

4761:                                             ; preds = %4760, %4703
  br label %4762

4762:                                             ; preds = %4761
  br label %4763

4763:                                             ; preds = %4762
  br label %4764

4764:                                             ; preds = %4763
  %4765 = load i32, ptr @test_count, align 4, !tbaa !5
  %4766 = add nsw i32 %4765, 1
  store i32 %4766, ptr @test_count, align 4, !tbaa !5
  %4767 = load ptr, ptr %108, align 8, !tbaa !9
  %4768 = load ptr, ptr %11, align 8, !tbaa !9
  %4769 = call i32 @s2n_connection_set_config(ptr noundef %4767, ptr noundef %4768)
  %4770 = icmp eq i32 %4769, -1
  br i1 %4770, label %4771, label %4824

4771:                                             ; preds = %4764
  br label %4772

4772:                                             ; preds = %4771
  br label %4773

4773:                                             ; preds = %4772
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #10
  %4774 = call ptr @__errno_location() #11
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  store i32 %4775, ptr %110, align 4, !tbaa !5
  %4776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4777 = call i32 @s2n_print_stacktrace(ptr noundef %4776)
  %4778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4779 = trunc i8 %4778 to i1
  br i1 %4779, label %4780, label %4802

4780:                                             ; preds = %4773
  %4781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4782 = call i32 @fileno(ptr noundef %4781) #10
  %4783 = call i32 @isatty(i32 noundef %4782) #10
  %4784 = icmp ne i32 %4783, 0
  br i1 %4784, label %4785, label %4802

4785:                                             ; preds = %4780
  %4786 = load i32, ptr %110, align 4, !tbaa !5
  %4787 = call ptr @__errno_location() #11
  store i32 %4786, ptr %4787, align 4, !tbaa !5
  %4788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4789 = load i32, ptr @test_count, align 4, !tbaa !5
  %4790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4791 = load i32, ptr %4790, align 4, !tbaa !5
  %4792 = call ptr @s2n_strerror(i32 noundef %4791, ptr noundef @.str.4)
  %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_debug(i32 noundef %4794, ptr noundef @.str.4)
  %4796 = call ptr @__errno_location() #11
  %4797 = load i32, ptr %4796, align 4, !tbaa !5
  %4798 = call ptr @strerror(i32 noundef %4797) #10
  %4799 = call ptr @__errno_location() #11
  %4800 = load i32, ptr %4799, align 4, !tbaa !5
  %4801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4788, ptr noundef @.str.2, i32 noundef %4789, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 225, ptr noundef %4792, ptr noundef %4795, ptr noundef %4798, i32 noundef %4800) #10
  br label %4819

4802:                                             ; preds = %4780, %4773
  %4803 = load i32, ptr %110, align 4, !tbaa !5
  %4804 = call ptr @__errno_location() #11
  store i32 %4803, ptr %4804, align 4, !tbaa !5
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = load i32, ptr @test_count, align 4, !tbaa !5
  %4807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4808 = load i32, ptr %4807, align 4, !tbaa !5
  %4809 = call ptr @s2n_strerror(i32 noundef %4808, ptr noundef @.str.4)
  %4810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4811 = load i32, ptr %4810, align 4, !tbaa !5
  %4812 = call ptr @s2n_strerror_debug(i32 noundef %4811, ptr noundef @.str.4)
  %4813 = call ptr @__errno_location() #11
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  %4815 = call ptr @strerror(i32 noundef %4814) #10
  %4816 = call ptr @__errno_location() #11
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4805, ptr noundef @.str.5, i32 noundef %4806, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 225, ptr noundef %4809, ptr noundef %4812, ptr noundef %4815, i32 noundef %4817) #10
  br label %4819

4819:                                             ; preds = %4802, %4785
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %4820

4820:                                             ; preds = %4819
  br label %4821

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

4822:                                             ; No predecessors!
  br label %4823

4823:                                             ; preds = %4822
  br label %4824

4824:                                             ; preds = %4823, %4764
  br label %4825

4825:                                             ; preds = %4824
  br label %4826

4826:                                             ; preds = %4825
  call void @llvm.lifetime.start.p0(i64 34, ptr %111) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %111, ptr align 16 @__const.main.grease_version_list, i64 34, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #10
  store i8 17, ptr %112, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %113) #10
  call void @llvm.memset.p0.i64(ptr align 8 %113, i8 0, i64 40, i1 false)
  br label %4827

4827:                                             ; preds = %4826
  %4828 = load i32, ptr @test_count, align 4, !tbaa !5
  %4829 = add nsw i32 %4828, 1
  store i32 %4829, ptr @test_count, align 4, !tbaa !5
  %4830 = load i8, ptr %112, align 1, !tbaa !15
  %4831 = zext i8 %4830 to i32
  %4832 = mul nsw i32 %4831, 2
  %4833 = add nsw i32 %4832, 1
  %4834 = call i32 @s2n_stuffer_alloc(ptr noundef %113, i32 noundef %4833)
  %4835 = icmp eq i32 %4834, -1
  br i1 %4835, label %4836, label %4889

4836:                                             ; preds = %4827
  br label %4837

4837:                                             ; preds = %4836
  br label %4838

4838:                                             ; preds = %4837
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #10
  %4839 = call ptr @__errno_location() #11
  %4840 = load i32, ptr %4839, align 4, !tbaa !5
  store i32 %4840, ptr %114, align 4, !tbaa !5
  %4841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4842 = call i32 @s2n_print_stacktrace(ptr noundef %4841)
  %4843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4844 = trunc i8 %4843 to i1
  br i1 %4844, label %4845, label %4867

4845:                                             ; preds = %4838
  %4846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4847 = call i32 @fileno(ptr noundef %4846) #10
  %4848 = call i32 @isatty(i32 noundef %4847) #10
  %4849 = icmp ne i32 %4848, 0
  br i1 %4849, label %4850, label %4867

4850:                                             ; preds = %4845
  %4851 = load i32, ptr %114, align 4, !tbaa !5
  %4852 = call ptr @__errno_location() #11
  store i32 %4851, ptr %4852, align 4, !tbaa !5
  %4853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4854 = load i32, ptr @test_count, align 4, !tbaa !5
  %4855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4856 = load i32, ptr %4855, align 4, !tbaa !5
  %4857 = call ptr @s2n_strerror(i32 noundef %4856, ptr noundef @.str.4)
  %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_debug(i32 noundef %4859, ptr noundef @.str.4)
  %4861 = call ptr @__errno_location() #11
  %4862 = load i32, ptr %4861, align 4, !tbaa !5
  %4863 = call ptr @strerror(i32 noundef %4862) #10
  %4864 = call ptr @__errno_location() #11
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4853, ptr noundef @.str.2, i32 noundef %4854, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 231, ptr noundef %4857, ptr noundef %4860, ptr noundef %4863, i32 noundef %4865) #10
  br label %4884

4867:                                             ; preds = %4845, %4838
  %4868 = load i32, ptr %114, align 4, !tbaa !5
  %4869 = call ptr @__errno_location() #11
  store i32 %4868, ptr %4869, align 4, !tbaa !5
  %4870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4871 = load i32, ptr @test_count, align 4, !tbaa !5
  %4872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4873 = load i32, ptr %4872, align 4, !tbaa !5
  %4874 = call ptr @s2n_strerror(i32 noundef %4873, ptr noundef @.str.4)
  %4875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4876 = load i32, ptr %4875, align 4, !tbaa !5
  %4877 = call ptr @s2n_strerror_debug(i32 noundef %4876, ptr noundef @.str.4)
  %4878 = call ptr @__errno_location() #11
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call ptr @strerror(i32 noundef %4879) #10
  %4881 = call ptr @__errno_location() #11
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4870, ptr noundef @.str.5, i32 noundef %4871, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 231, ptr noundef %4874, ptr noundef %4877, ptr noundef %4880, i32 noundef %4882) #10
  br label %4884

4884:                                             ; preds = %4867, %4850
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %4885

4885:                                             ; preds = %4884
  br label %4886

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

4887:                                             ; No predecessors!
  br label %4888

4888:                                             ; preds = %4887
  br label %4889

4889:                                             ; preds = %4888, %4827
  br label %4890

4890:                                             ; preds = %4889
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

4892:                                             ; preds = %4891
  %4893 = load i8, ptr %112, align 1, !tbaa !15
  %4894 = zext i8 %4893 to i32
  %4895 = mul nsw i32 %4894, 2
  %4896 = trunc i32 %4895 to i8
  %4897 = call i32 @s2n_stuffer_write_uint8(ptr noundef %113, i8 noundef zeroext %4896)
  %4898 = icmp sgt i32 %4897, -1
  br i1 %4898, label %4900, label %4899

4899:                                             ; preds = %4892
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %101, align 4
  br label %5304

4900:                                             ; preds = %4892
  br label %4901

4901:                                             ; preds = %4900
  br label %4902

4902:                                             ; preds = %4901
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  store i64 0, ptr %115, align 8, !tbaa !47
  br label %4903

4903:                                             ; preds = %4920, %4902
  %4904 = load i64, ptr %115, align 8, !tbaa !47
  %4905 = load i8, ptr %112, align 1, !tbaa !15
  %4906 = zext i8 %4905 to i64
  %4907 = icmp ult i64 %4904, %4906
  br i1 %4907, label %4909, label %4908

4908:                                             ; preds = %4903
  store i32 459, ptr %101, align 4
  br label %4923

4909:                                             ; preds = %4903
  br label %4910

4910:                                             ; preds = %4909
  %4911 = load i64, ptr %115, align 8, !tbaa !47
  %4912 = getelementptr inbounds [17 x i16], ptr %111, i64 0, i64 %4911
  %4913 = load i16, ptr %4912, align 2, !tbaa !48
  %4914 = call i32 @s2n_stuffer_write_uint16(ptr noundef %113, i16 noundef zeroext %4913)
  %4915 = icmp sgt i32 %4914, -1
  br i1 %4915, label %4917, label %4916

4916:                                             ; preds = %4910
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %101, align 4
  br label %4923

4917:                                             ; preds = %4910
  br label %4918

4918:                                             ; preds = %4917
  br label %4919

4919:                                             ; preds = %4918
  br label %4920

4920:                                             ; preds = %4919
  %4921 = load i64, ptr %115, align 8, !tbaa !47
  %4922 = add i64 %4921, 1
  store i64 %4922, ptr %115, align 8, !tbaa !47
  br label %4903, !llvm.loop !57

4923:                                             ; preds = %4916, %4908
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  %4924 = load i32, ptr %101, align 4
  switch i32 %4924, label %5304 [
    i32 459, label %4925
  ]

4925:                                             ; preds = %4923
  br label %4926

4926:                                             ; preds = %4925
  %4927 = load i32, ptr @test_count, align 4, !tbaa !5
  %4928 = add nsw i32 %4927, 1
  store i32 %4928, ptr @test_count, align 4, !tbaa !5
  %4929 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %4930 = load ptr, ptr %108, align 8, !tbaa !9
  %4931 = call i32 %4929(ptr noundef %4930, ptr noundef %113)
  %4932 = icmp eq i32 %4931, -1
  br i1 %4932, label %4933, label %4986

4933:                                             ; preds = %4926
  br label %4934

4934:                                             ; preds = %4933
  br label %4935

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

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

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

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

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

4982:                                             ; preds = %4981
  br label %4983

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

4984:                                             ; No predecessors!
  br label %4985

4985:                                             ; preds = %4984
  br label %4986

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

4987:                                             ; preds = %4986
  br label %4988

4988:                                             ; preds = %4987
  br label %4989

4989:                                             ; preds = %4988
  %4990 = load i32, ptr @test_count, align 4, !tbaa !5
  %4991 = add nsw i32 %4990, 1
  store i32 %4991, ptr @test_count, align 4, !tbaa !5
  %4992 = load ptr, ptr %108, align 8, !tbaa !9
  %4993 = getelementptr inbounds %struct.s2n_connection, ptr %4992, i32 0, i32 21
  %4994 = load i8, ptr %4993, align 2, !tbaa !52
  %4995 = zext i8 %4994 to i32
  %4996 = icmp eq i32 %4995, 34
  br i1 %4996, label %5050, label %4997

4997:                                             ; preds = %4989
  br label %4998

4998:                                             ; preds = %4997
  br label %4999

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

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

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

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

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

5046:                                             ; preds = %5045
  br label %5047

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

5048:                                             ; No predecessors!
  br label %5049

5049:                                             ; preds = %5048
  br label %5050

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

5051:                                             ; preds = %5050
  br label %5052

5052:                                             ; preds = %5051
  br label %5053

5053:                                             ; preds = %5052
  %5054 = load i32, ptr @test_count, align 4, !tbaa !5
  %5055 = add nsw i32 %5054, 1
  store i32 %5055, ptr @test_count, align 4, !tbaa !5
  %5056 = load ptr, ptr %108, align 8, !tbaa !9
  %5057 = getelementptr inbounds %struct.s2n_connection, ptr %5056, i32 0, i32 22
  %5058 = load i8, ptr %5057, align 1, !tbaa !53
  %5059 = zext i8 %5058 to i32
  %5060 = icmp eq i32 %5059, 34
  br i1 %5060, label %5114, label %5061

5061:                                             ; preds = %5053
  br label %5062

5062:                                             ; preds = %5061
  br label %5063

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

5070:                                             ; preds = %5063
  %5071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5072 = call i32 @fileno(ptr noundef %5071) #10
  %5073 = call i32 @isatty(i32 noundef %5072) #10
  %5074 = icmp ne i32 %5073, 0
  br i1 %5074, label %5075, label %5092

5075:                                             ; preds = %5070
  %5076 = load i32, ptr %118, align 4, !tbaa !5
  %5077 = call ptr @__errno_location() #11
  store i32 %5076, ptr %5077, align 4, !tbaa !5
  %5078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5079 = load i32, ptr @test_count, align 4, !tbaa !5
  %5080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5081 = load i32, ptr %5080, align 4, !tbaa !5
  %5082 = call ptr @s2n_strerror(i32 noundef %5081, ptr noundef @.str.4)
  %5083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5084 = load i32, ptr %5083, align 4, !tbaa !5
  %5085 = call ptr @s2n_strerror_debug(i32 noundef %5084, ptr noundef @.str.4)
  %5086 = call ptr @__errno_location() #11
  %5087 = load i32, ptr %5086, align 4, !tbaa !5
  %5088 = call ptr @strerror(i32 noundef %5087) #10
  %5089 = call ptr @__errno_location() #11
  %5090 = load i32, ptr %5089, align 4, !tbaa !5
  %5091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5078, ptr noundef @.str.2, i32 noundef %5079, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5082, ptr noundef %5085, ptr noundef %5088, i32 noundef %5090) #10
  br label %5109

5092:                                             ; preds = %5070, %5063
  %5093 = load i32, ptr %118, 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.5, i32 noundef %5096, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5099, ptr noundef %5102, ptr noundef %5105, i32 noundef %5107) #10
  br label %5109

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

5110:                                             ; preds = %5109
  br label %5111

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

5112:                                             ; No predecessors!
  br label %5113

5113:                                             ; preds = %5112
  br label %5114

5114:                                             ; preds = %5113, %5053
  br label %5115

5115:                                             ; preds = %5114
  br label %5116

5116:                                             ; preds = %5115
  br label %5117

5117:                                             ; preds = %5116
  %5118 = load i32, ptr @test_count, align 4, !tbaa !5
  %5119 = add nsw i32 %5118, 1
  store i32 %5119, ptr @test_count, align 4, !tbaa !5
  %5120 = load ptr, ptr %108, align 8, !tbaa !9
  %5121 = getelementptr inbounds %struct.s2n_connection, ptr %5120, i32 0, i32 23
  %5122 = load i8, ptr %5121, align 4, !tbaa !54
  %5123 = zext i8 %5122 to i32
  %5124 = icmp eq i32 %5123, 34
  br i1 %5124, label %5178, label %5125

5125:                                             ; preds = %5117
  br label %5126

5126:                                             ; preds = %5125
  br label %5127

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

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

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

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

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

5174:                                             ; preds = %5173
  br label %5175

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

5176:                                             ; No predecessors!
  br label %5177

5177:                                             ; preds = %5176
  br label %5178

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

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179
  br label %5181

5181:                                             ; preds = %5180
  %5182 = load i32, ptr @test_count, align 4, !tbaa !5
  %5183 = add nsw i32 %5182, 1
  store i32 %5183, ptr @test_count, align 4, !tbaa !5
  %5184 = load ptr, ptr %108, align 8, !tbaa !9
  %5185 = call i32 @s2n_connection_free(ptr noundef %5184)
  %5186 = icmp eq i32 %5185, -1
  br i1 %5186, label %5187, label %5240

5187:                                             ; preds = %5181
  br label %5188

5188:                                             ; preds = %5187
  br label %5189

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

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

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

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

5235:                                             ; preds = %5218, %5201
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

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

5238:                                             ; No predecessors!
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

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

5241:                                             ; preds = %5240
  br label %5242

5242:                                             ; preds = %5241
  br label %5243

5243:                                             ; preds = %5242
  %5244 = load i32, ptr @test_count, align 4, !tbaa !5
  %5245 = add nsw i32 %5244, 1
  store i32 %5245, ptr @test_count, align 4, !tbaa !5
  %5246 = call i32 @s2n_stuffer_free(ptr noundef %113)
  %5247 = icmp eq i32 %5246, -1
  br i1 %5247, label %5248, label %5301

5248:                                             ; preds = %5243
  br label %5249

5249:                                             ; preds = %5248
  br label %5250

5250:                                             ; preds = %5249
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %5251 = call ptr @__errno_location() #11
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  store i32 %5252, ptr %121, align 4, !tbaa !5
  %5253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5254 = call i32 @s2n_print_stacktrace(ptr noundef %5253)
  %5255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5256 = trunc i8 %5255 to i1
  br i1 %5256, label %5257, label %5279

5257:                                             ; preds = %5250
  %5258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5259 = call i32 @fileno(ptr noundef %5258) #10
  %5260 = call i32 @isatty(i32 noundef %5259) #10
  %5261 = icmp ne i32 %5260, 0
  br i1 %5261, label %5262, label %5279

5262:                                             ; preds = %5257
  %5263 = load i32, ptr %121, align 4, !tbaa !5
  %5264 = call ptr @__errno_location() #11
  store i32 %5263, ptr %5264, align 4, !tbaa !5
  %5265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5266 = load i32, ptr @test_count, align 4, !tbaa !5
  %5267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5268 = load i32, ptr %5267, align 4, !tbaa !5
  %5269 = call ptr @s2n_strerror(i32 noundef %5268, ptr noundef @.str.4)
  %5270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  %5272 = call ptr @s2n_strerror_debug(i32 noundef %5271, ptr noundef @.str.4)
  %5273 = call ptr @__errno_location() #11
  %5274 = load i32, ptr %5273, align 4, !tbaa !5
  %5275 = call ptr @strerror(i32 noundef %5274) #10
  %5276 = call ptr @__errno_location() #11
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5265, ptr noundef @.str.2, i32 noundef %5266, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5269, ptr noundef %5272, ptr noundef %5275, i32 noundef %5277) #10
  br label %5296

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

5296:                                             ; preds = %5279, %5262
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

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

5299:                                             ; No predecessors!
  br label %5300

5300:                                             ; preds = %5299
  br label %5301

5301:                                             ; preds = %5300, %5243
  br label %5302

5302:                                             ; preds = %5301
  br label %5303

5303:                                             ; preds = %5302
  store i32 0, ptr %101, align 4
  br label %5304

5304:                                             ; preds = %5303, %4923, %4899
  call void @llvm.lifetime.end.p0(i64 40, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #10
  call void @llvm.lifetime.end.p0(i64 34, ptr %111) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  %5305 = load i32, ptr %101, align 4
  switch i32 %5305, label %11620 [
    i32 0, label %5306
  ]

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

5307:                                             ; preds = %5306
  %5308 = load i32, ptr @test_count, align 4, !tbaa !5
  %5309 = add nsw i32 %5308, 1
  store i32 %5309, ptr @test_count, align 4, !tbaa !5
  %5310 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5310, ptr %122, align 8, !tbaa !9
  %5311 = icmp eq ptr %5310, null
  br i1 %5311, label %5312, label %5365

5312:                                             ; preds = %5307
  br label %5313

5313:                                             ; preds = %5312
  br label %5314

5314:                                             ; preds = %5313
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %5315 = call ptr @__errno_location() #11
  %5316 = load i32, ptr %5315, align 4, !tbaa !5
  store i32 %5316, ptr %123, align 4, !tbaa !5
  %5317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5318 = call i32 @s2n_print_stacktrace(ptr noundef %5317)
  %5319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5320 = trunc i8 %5319 to i1
  br i1 %5320, label %5321, label %5343

5321:                                             ; preds = %5314
  %5322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5323 = call i32 @fileno(ptr noundef %5322) #10
  %5324 = call i32 @isatty(i32 noundef %5323) #10
  %5325 = icmp ne i32 %5324, 0
  br i1 %5325, label %5326, label %5343

5326:                                             ; preds = %5321
  %5327 = load i32, ptr %123, align 4, !tbaa !5
  %5328 = call ptr @__errno_location() #11
  store i32 %5327, ptr %5328, align 4, !tbaa !5
  %5329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5330 = load i32, ptr @test_count, align 4, !tbaa !5
  %5331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5332 = load i32, ptr %5331, align 4, !tbaa !5
  %5333 = call ptr @s2n_strerror(i32 noundef %5332, ptr noundef @.str.4)
  %5334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5335 = load i32, ptr %5334, align 4, !tbaa !5
  %5336 = call ptr @s2n_strerror_debug(i32 noundef %5335, ptr noundef @.str.4)
  %5337 = call ptr @__errno_location() #11
  %5338 = load i32, ptr %5337, align 4, !tbaa !5
  %5339 = call ptr @strerror(i32 noundef %5338) #10
  %5340 = call ptr @__errno_location() #11
  %5341 = load i32, ptr %5340, align 4, !tbaa !5
  %5342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5329, ptr noundef @.str.2, i32 noundef %5330, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 251, ptr noundef %5333, ptr noundef %5336, ptr noundef %5339, i32 noundef %5341) #10
  br label %5360

5343:                                             ; preds = %5321, %5314
  %5344 = load i32, ptr %123, 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.5, i32 noundef %5347, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 251, ptr noundef %5350, ptr noundef %5353, ptr noundef %5356, i32 noundef %5358) #10
  br label %5360

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

5361:                                             ; preds = %5360
  br label %5362

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

5363:                                             ; No predecessors!
  br label %5364

5364:                                             ; preds = %5363
  br label %5365

5365:                                             ; preds = %5364, %5307
  br label %5366

5366:                                             ; preds = %5365
  br label %5367

5367:                                             ; preds = %5366
  br label %5368

5368:                                             ; preds = %5367
  %5369 = load i32, ptr @test_count, align 4, !tbaa !5
  %5370 = add nsw i32 %5369, 1
  store i32 %5370, ptr @test_count, align 4, !tbaa !5
  %5371 = load ptr, ptr %122, align 8, !tbaa !9
  %5372 = load ptr, ptr %11, align 8, !tbaa !9
  %5373 = call i32 @s2n_connection_set_config(ptr noundef %5371, ptr noundef %5372)
  %5374 = icmp eq i32 %5373, -1
  br i1 %5374, label %5375, label %5428

5375:                                             ; preds = %5368
  br label %5376

5376:                                             ; preds = %5375
  br label %5377

5377:                                             ; preds = %5376
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  %5378 = call ptr @__errno_location() #11
  %5379 = load i32, ptr %5378, align 4, !tbaa !5
  store i32 %5379, ptr %124, align 4, !tbaa !5
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = call i32 @s2n_print_stacktrace(ptr noundef %5380)
  %5382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5383 = trunc i8 %5382 to i1
  br i1 %5383, label %5384, label %5406

5384:                                             ; preds = %5377
  %5385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5386 = call i32 @fileno(ptr noundef %5385) #10
  %5387 = call i32 @isatty(i32 noundef %5386) #10
  %5388 = icmp ne i32 %5387, 0
  br i1 %5388, label %5389, label %5406

5389:                                             ; preds = %5384
  %5390 = load i32, ptr %124, align 4, !tbaa !5
  %5391 = call ptr @__errno_location() #11
  store i32 %5390, ptr %5391, align 4, !tbaa !5
  %5392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5393 = load i32, ptr @test_count, align 4, !tbaa !5
  %5394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  %5396 = call ptr @s2n_strerror(i32 noundef %5395, ptr noundef @.str.4)
  %5397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call ptr @s2n_strerror_debug(i32 noundef %5398, ptr noundef @.str.4)
  %5400 = call ptr @__errno_location() #11
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call ptr @strerror(i32 noundef %5401) #10
  %5403 = call ptr @__errno_location() #11
  %5404 = load i32, ptr %5403, align 4, !tbaa !5
  %5405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5392, ptr noundef @.str.2, i32 noundef %5393, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 252, ptr noundef %5396, ptr noundef %5399, ptr noundef %5402, i32 noundef %5404) #10
  br label %5423

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

5423:                                             ; preds = %5406, %5389
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

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

5426:                                             ; No predecessors!
  br label %5427

5427:                                             ; preds = %5426
  br label %5428

5428:                                             ; preds = %5427, %5368
  br label %5429

5429:                                             ; preds = %5428
  br label %5430

5430:                                             ; preds = %5429
  call void @llvm.lifetime.start.p0(i64 16, ptr %125) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %125, ptr align 16 @__const.main.invalid_version_list.52, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %126) #10
  store i8 8, ptr %126, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %127) #10
  call void @llvm.memset.p0.i64(ptr align 8 %127, i8 0, i64 40, i1 false)
  br label %5431

5431:                                             ; preds = %5430
  %5432 = load i32, ptr @test_count, align 4, !tbaa !5
  %5433 = add nsw i32 %5432, 1
  store i32 %5433, ptr @test_count, align 4, !tbaa !5
  %5434 = load i8, ptr %126, align 1, !tbaa !15
  %5435 = zext i8 %5434 to i32
  %5436 = mul nsw i32 %5435, 2
  %5437 = add nsw i32 %5436, 1
  %5438 = call i32 @s2n_stuffer_alloc(ptr noundef %127, i32 noundef %5437)
  %5439 = icmp eq i32 %5438, -1
  br i1 %5439, label %5440, label %5493

5440:                                             ; preds = %5431
  br label %5441

5441:                                             ; preds = %5440
  br label %5442

5442:                                             ; preds = %5441
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  %5443 = call ptr @__errno_location() #11
  %5444 = load i32, ptr %5443, align 4, !tbaa !5
  store i32 %5444, ptr %128, align 4, !tbaa !5
  %5445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5446 = call i32 @s2n_print_stacktrace(ptr noundef %5445)
  %5447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5448 = trunc i8 %5447 to i1
  br i1 %5448, label %5449, label %5471

5449:                                             ; preds = %5442
  %5450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5451 = call i32 @fileno(ptr noundef %5450) #10
  %5452 = call i32 @isatty(i32 noundef %5451) #10
  %5453 = icmp ne i32 %5452, 0
  br i1 %5453, label %5454, label %5471

5454:                                             ; preds = %5449
  %5455 = load i32, ptr %128, align 4, !tbaa !5
  %5456 = call ptr @__errno_location() #11
  store i32 %5455, ptr %5456, align 4, !tbaa !5
  %5457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5458 = load i32, ptr @test_count, align 4, !tbaa !5
  %5459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5460 = load i32, ptr %5459, align 4, !tbaa !5
  %5461 = call ptr @s2n_strerror(i32 noundef %5460, ptr noundef @.str.4)
  %5462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5463 = load i32, ptr %5462, align 4, !tbaa !5
  %5464 = call ptr @s2n_strerror_debug(i32 noundef %5463, ptr noundef @.str.4)
  %5465 = call ptr @__errno_location() #11
  %5466 = load i32, ptr %5465, align 4, !tbaa !5
  %5467 = call ptr @strerror(i32 noundef %5466) #10
  %5468 = call ptr @__errno_location() #11
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  %5470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5457, ptr noundef @.str.2, i32 noundef %5458, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 258, ptr noundef %5461, ptr noundef %5464, ptr noundef %5467, i32 noundef %5469) #10
  br label %5488

5471:                                             ; preds = %5449, %5442
  %5472 = load i32, ptr %128, align 4, !tbaa !5
  %5473 = call ptr @__errno_location() #11
  store i32 %5472, ptr %5473, align 4, !tbaa !5
  %5474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5475 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5477, ptr noundef @.str.4)
  %5479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5480 = load i32, ptr %5479, align 4, !tbaa !5
  %5481 = call ptr @s2n_strerror_debug(i32 noundef %5480, ptr noundef @.str.4)
  %5482 = call ptr @__errno_location() #11
  %5483 = load i32, ptr %5482, align 4, !tbaa !5
  %5484 = call ptr @strerror(i32 noundef %5483) #10
  %5485 = call ptr @__errno_location() #11
  %5486 = load i32, ptr %5485, align 4, !tbaa !5
  %5487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5474, ptr noundef @.str.5, i32 noundef %5475, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 258, ptr noundef %5478, ptr noundef %5481, ptr noundef %5484, i32 noundef %5486) #10
  br label %5488

5488:                                             ; preds = %5471, %5454
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %5489

5489:                                             ; preds = %5488
  br label %5490

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

5491:                                             ; No predecessors!
  br label %5492

5492:                                             ; preds = %5491
  br label %5493

5493:                                             ; preds = %5492, %5431
  br label %5494

5494:                                             ; preds = %5493
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

5496:                                             ; preds = %5495
  %5497 = load i8, ptr %126, align 1, !tbaa !15
  %5498 = zext i8 %5497 to i32
  %5499 = mul nsw i32 %5498, 2
  %5500 = trunc i32 %5499 to i8
  %5501 = call i32 @s2n_stuffer_write_uint8(ptr noundef %127, i8 noundef zeroext %5500)
  %5502 = icmp sgt i32 %5501, -1
  br i1 %5502, label %5504, label %5503

5503:                                             ; preds = %5496
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %101, align 4
  br label %5908

5504:                                             ; preds = %5496
  br label %5505

5505:                                             ; preds = %5504
  br label %5506

5506:                                             ; preds = %5505
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #10
  store i64 0, ptr %129, align 8, !tbaa !47
  br label %5507

5507:                                             ; preds = %5524, %5506
  %5508 = load i64, ptr %129, align 8, !tbaa !47
  %5509 = load i8, ptr %126, align 1, !tbaa !15
  %5510 = zext i8 %5509 to i64
  %5511 = icmp ult i64 %5508, %5510
  br i1 %5511, label %5513, label %5512

5512:                                             ; preds = %5507
  store i32 520, ptr %101, align 4
  br label %5527

5513:                                             ; preds = %5507
  br label %5514

5514:                                             ; preds = %5513
  %5515 = load i64, ptr %129, align 8, !tbaa !47
  %5516 = getelementptr inbounds [8 x i16], ptr %125, i64 0, i64 %5515
  %5517 = load i16, ptr %5516, align 2, !tbaa !48
  %5518 = call i32 @s2n_stuffer_write_uint16(ptr noundef %127, i16 noundef zeroext %5517)
  %5519 = icmp sgt i32 %5518, -1
  br i1 %5519, label %5521, label %5520

5520:                                             ; preds = %5514
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %101, align 4
  br label %5527

5521:                                             ; preds = %5514
  br label %5522

5522:                                             ; preds = %5521
  br label %5523

5523:                                             ; preds = %5522
  br label %5524

5524:                                             ; preds = %5523
  %5525 = load i64, ptr %129, align 8, !tbaa !47
  %5526 = add i64 %5525, 1
  store i64 %5526, ptr %129, align 8, !tbaa !47
  br label %5507, !llvm.loop !58

5527:                                             ; preds = %5520, %5512
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #10
  %5528 = load i32, ptr %101, align 4
  switch i32 %5528, label %5908 [
    i32 520, label %5529
  ]

5529:                                             ; preds = %5527
  br label %5530

5530:                                             ; preds = %5529
  %5531 = load i32, ptr @test_count, align 4, !tbaa !5
  %5532 = add nsw i32 %5531, 1
  store i32 %5532, ptr @test_count, align 4, !tbaa !5
  %5533 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %5534 = load ptr, ptr %122, align 8, !tbaa !9
  %5535 = call i32 %5533(ptr noundef %5534, ptr noundef %127)
  %5536 = icmp eq i32 %5535, -1
  br i1 %5536, label %5537, label %5590

5537:                                             ; preds = %5530
  br label %5538

5538:                                             ; preds = %5537
  br label %5539

5539:                                             ; preds = %5538
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %5540 = call ptr @__errno_location() #11
  %5541 = load i32, ptr %5540, align 4, !tbaa !5
  store i32 %5541, ptr %130, align 4, !tbaa !5
  %5542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5543 = call i32 @s2n_print_stacktrace(ptr noundef %5542)
  %5544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5545 = trunc i8 %5544 to i1
  br i1 %5545, label %5546, label %5568

5546:                                             ; preds = %5539
  %5547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5548 = call i32 @fileno(ptr noundef %5547) #10
  %5549 = call i32 @isatty(i32 noundef %5548) #10
  %5550 = icmp ne i32 %5549, 0
  br i1 %5550, label %5551, label %5568

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

5568:                                             ; preds = %5546, %5539
  %5569 = load i32, ptr %130, align 4, !tbaa !5
  %5570 = call ptr @__errno_location() #11
  store i32 %5569, ptr %5570, align 4, !tbaa !5
  %5571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5572 = load i32, ptr @test_count, align 4, !tbaa !5
  %5573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5574 = load i32, ptr %5573, align 4, !tbaa !5
  %5575 = call ptr @s2n_strerror(i32 noundef %5574, ptr noundef @.str.4)
  %5576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5577 = load i32, ptr %5576, align 4, !tbaa !5
  %5578 = call ptr @s2n_strerror_debug(i32 noundef %5577, ptr noundef @.str.4)
  %5579 = call ptr @__errno_location() #11
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  %5581 = call ptr @strerror(i32 noundef %5580) #10
  %5582 = call ptr @__errno_location() #11
  %5583 = load i32, ptr %5582, align 4, !tbaa !5
  %5584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5571, ptr noundef @.str.5, i32 noundef %5572, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 266, ptr noundef %5575, ptr noundef %5578, ptr noundef %5581, i32 noundef %5583) #10
  br label %5585

5585:                                             ; preds = %5568, %5551
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %5586

5586:                                             ; preds = %5585
  br label %5587

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

5588:                                             ; No predecessors!
  br label %5589

5589:                                             ; preds = %5588
  br label %5590

5590:                                             ; preds = %5589, %5530
  br label %5591

5591:                                             ; preds = %5590
  br label %5592

5592:                                             ; preds = %5591
  br label %5593

5593:                                             ; preds = %5592
  %5594 = load i32, ptr @test_count, align 4, !tbaa !5
  %5595 = add nsw i32 %5594, 1
  store i32 %5595, ptr @test_count, align 4, !tbaa !5
  %5596 = load ptr, ptr %122, align 8, !tbaa !9
  %5597 = getelementptr inbounds %struct.s2n_connection, ptr %5596, i32 0, i32 21
  %5598 = load i8, ptr %5597, align 2, !tbaa !52
  %5599 = zext i8 %5598 to i32
  %5600 = icmp eq i32 %5599, 34
  br i1 %5600, label %5654, label %5601

5601:                                             ; preds = %5593
  br label %5602

5602:                                             ; preds = %5601
  br label %5603

5603:                                             ; preds = %5602
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %5604 = call ptr @__errno_location() #11
  %5605 = load i32, ptr %5604, align 4, !tbaa !5
  store i32 %5605, ptr %131, align 4, !tbaa !5
  %5606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5607 = call i32 @s2n_print_stacktrace(ptr noundef %5606)
  %5608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5609 = trunc i8 %5608 to i1
  br i1 %5609, label %5610, label %5632

5610:                                             ; preds = %5603
  %5611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5612 = call i32 @fileno(ptr noundef %5611) #10
  %5613 = call i32 @isatty(i32 noundef %5612) #10
  %5614 = icmp ne i32 %5613, 0
  br i1 %5614, label %5615, label %5632

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

5632:                                             ; preds = %5610, %5603
  %5633 = load i32, ptr %131, align 4, !tbaa !5
  %5634 = call ptr @__errno_location() #11
  store i32 %5633, ptr %5634, align 4, !tbaa !5
  %5635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5636 = load i32, ptr @test_count, align 4, !tbaa !5
  %5637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5638 = load i32, ptr %5637, align 4, !tbaa !5
  %5639 = call ptr @s2n_strerror(i32 noundef %5638, ptr noundef @.str.4)
  %5640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5641 = load i32, ptr %5640, align 4, !tbaa !5
  %5642 = call ptr @s2n_strerror_debug(i32 noundef %5641, ptr noundef @.str.4)
  %5643 = call ptr @__errno_location() #11
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call ptr @strerror(i32 noundef %5644) #10
  %5646 = call ptr @__errno_location() #11
  %5647 = load i32, ptr %5646, align 4, !tbaa !5
  %5648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5635, ptr noundef @.str.5, i32 noundef %5636, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 267, ptr noundef %5639, ptr noundef %5642, ptr noundef %5645, i32 noundef %5647) #10
  br label %5649

5649:                                             ; preds = %5632, %5615
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %5650

5650:                                             ; preds = %5649
  br label %5651

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

5652:                                             ; No predecessors!
  br label %5653

5653:                                             ; preds = %5652
  br label %5654

5654:                                             ; preds = %5653, %5593
  br label %5655

5655:                                             ; preds = %5654
  br label %5656

5656:                                             ; preds = %5655
  br label %5657

5657:                                             ; preds = %5656
  %5658 = load i32, ptr @test_count, align 4, !tbaa !5
  %5659 = add nsw i32 %5658, 1
  store i32 %5659, ptr @test_count, align 4, !tbaa !5
  %5660 = load ptr, ptr %122, align 8, !tbaa !9
  %5661 = getelementptr inbounds %struct.s2n_connection, ptr %5660, i32 0, i32 22
  %5662 = load i8, ptr %5661, align 1, !tbaa !53
  %5663 = zext i8 %5662 to i32
  %5664 = icmp eq i32 %5663, 34
  br i1 %5664, label %5718, label %5665

5665:                                             ; preds = %5657
  br label %5666

5666:                                             ; preds = %5665
  br label %5667

5667:                                             ; preds = %5666
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %5668 = call ptr @__errno_location() #11
  %5669 = load i32, ptr %5668, align 4, !tbaa !5
  store i32 %5669, ptr %132, align 4, !tbaa !5
  %5670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5671 = call i32 @s2n_print_stacktrace(ptr noundef %5670)
  %5672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5673 = trunc i8 %5672 to i1
  br i1 %5673, label %5674, label %5696

5674:                                             ; preds = %5667
  %5675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5676 = call i32 @fileno(ptr noundef %5675) #10
  %5677 = call i32 @isatty(i32 noundef %5676) #10
  %5678 = icmp ne i32 %5677, 0
  br i1 %5678, label %5679, label %5696

5679:                                             ; preds = %5674
  %5680 = load i32, ptr %132, align 4, !tbaa !5
  %5681 = call ptr @__errno_location() #11
  store i32 %5680, ptr %5681, align 4, !tbaa !5
  %5682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5683 = load i32, ptr @test_count, align 4, !tbaa !5
  %5684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5685 = load i32, ptr %5684, align 4, !tbaa !5
  %5686 = call ptr @s2n_strerror(i32 noundef %5685, ptr noundef @.str.4)
  %5687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5688 = load i32, ptr %5687, align 4, !tbaa !5
  %5689 = call ptr @s2n_strerror_debug(i32 noundef %5688, ptr noundef @.str.4)
  %5690 = call ptr @__errno_location() #11
  %5691 = load i32, ptr %5690, align 4, !tbaa !5
  %5692 = call ptr @strerror(i32 noundef %5691) #10
  %5693 = call ptr @__errno_location() #11
  %5694 = load i32, ptr %5693, align 4, !tbaa !5
  %5695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5682, ptr noundef @.str.2, i32 noundef %5683, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5686, ptr noundef %5689, ptr noundef %5692, i32 noundef %5694) #10
  br label %5713

5696:                                             ; preds = %5674, %5667
  %5697 = load i32, ptr %132, align 4, !tbaa !5
  %5698 = call ptr @__errno_location() #11
  store i32 %5697, ptr %5698, align 4, !tbaa !5
  %5699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5700 = load i32, ptr @test_count, align 4, !tbaa !5
  %5701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5702 = load i32, ptr %5701, align 4, !tbaa !5
  %5703 = call ptr @s2n_strerror(i32 noundef %5702, ptr noundef @.str.4)
  %5704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call ptr @s2n_strerror_debug(i32 noundef %5705, ptr noundef @.str.4)
  %5707 = call ptr @__errno_location() #11
  %5708 = load i32, ptr %5707, align 4, !tbaa !5
  %5709 = call ptr @strerror(i32 noundef %5708) #10
  %5710 = call ptr @__errno_location() #11
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  %5712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5699, ptr noundef @.str.5, i32 noundef %5700, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5703, ptr noundef %5706, ptr noundef %5709, i32 noundef %5711) #10
  br label %5713

5713:                                             ; preds = %5696, %5679
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %5714

5714:                                             ; preds = %5713
  br label %5715

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

5716:                                             ; No predecessors!
  br label %5717

5717:                                             ; preds = %5716
  br label %5718

5718:                                             ; preds = %5717, %5657
  br label %5719

5719:                                             ; preds = %5718
  br label %5720

5720:                                             ; preds = %5719
  br label %5721

5721:                                             ; preds = %5720
  %5722 = load i32, ptr @test_count, align 4, !tbaa !5
  %5723 = add nsw i32 %5722, 1
  store i32 %5723, ptr @test_count, align 4, !tbaa !5
  %5724 = load ptr, ptr %122, align 8, !tbaa !9
  %5725 = getelementptr inbounds %struct.s2n_connection, ptr %5724, i32 0, i32 23
  %5726 = load i8, ptr %5725, align 4, !tbaa !54
  %5727 = zext i8 %5726 to i32
  %5728 = icmp eq i32 %5727, 34
  br i1 %5728, label %5782, label %5729

5729:                                             ; preds = %5721
  br label %5730

5730:                                             ; preds = %5729
  br label %5731

5731:                                             ; preds = %5730
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #10
  %5732 = call ptr @__errno_location() #11
  %5733 = load i32, ptr %5732, align 4, !tbaa !5
  store i32 %5733, ptr %133, align 4, !tbaa !5
  %5734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5735 = call i32 @s2n_print_stacktrace(ptr noundef %5734)
  %5736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5737 = trunc i8 %5736 to i1
  br i1 %5737, label %5738, label %5760

5738:                                             ; preds = %5731
  %5739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5740 = call i32 @fileno(ptr noundef %5739) #10
  %5741 = call i32 @isatty(i32 noundef %5740) #10
  %5742 = icmp ne i32 %5741, 0
  br i1 %5742, label %5743, label %5760

5743:                                             ; preds = %5738
  %5744 = load i32, ptr %133, align 4, !tbaa !5
  %5745 = call ptr @__errno_location() #11
  store i32 %5744, ptr %5745, align 4, !tbaa !5
  %5746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5747 = load i32, ptr @test_count, align 4, !tbaa !5
  %5748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5749 = load i32, ptr %5748, align 4, !tbaa !5
  %5750 = call ptr @s2n_strerror(i32 noundef %5749, ptr noundef @.str.4)
  %5751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5752 = load i32, ptr %5751, align 4, !tbaa !5
  %5753 = call ptr @s2n_strerror_debug(i32 noundef %5752, ptr noundef @.str.4)
  %5754 = call ptr @__errno_location() #11
  %5755 = load i32, ptr %5754, align 4, !tbaa !5
  %5756 = call ptr @strerror(i32 noundef %5755) #10
  %5757 = call ptr @__errno_location() #11
  %5758 = load i32, ptr %5757, align 4, !tbaa !5
  %5759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5746, ptr noundef @.str.2, i32 noundef %5747, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5750, ptr noundef %5753, ptr noundef %5756, i32 noundef %5758) #10
  br label %5777

5760:                                             ; preds = %5738, %5731
  %5761 = load i32, ptr %133, align 4, !tbaa !5
  %5762 = call ptr @__errno_location() #11
  store i32 %5761, ptr %5762, align 4, !tbaa !5
  %5763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5764 = load i32, ptr @test_count, align 4, !tbaa !5
  %5765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5766 = load i32, ptr %5765, align 4, !tbaa !5
  %5767 = call ptr @s2n_strerror(i32 noundef %5766, ptr noundef @.str.4)
  %5768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5769 = load i32, ptr %5768, align 4, !tbaa !5
  %5770 = call ptr @s2n_strerror_debug(i32 noundef %5769, ptr noundef @.str.4)
  %5771 = call ptr @__errno_location() #11
  %5772 = load i32, ptr %5771, align 4, !tbaa !5
  %5773 = call ptr @strerror(i32 noundef %5772) #10
  %5774 = call ptr @__errno_location() #11
  %5775 = load i32, ptr %5774, align 4, !tbaa !5
  %5776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5763, ptr noundef @.str.5, i32 noundef %5764, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5767, ptr noundef %5770, ptr noundef %5773, i32 noundef %5775) #10
  br label %5777

5777:                                             ; preds = %5760, %5743
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #10
  br label %5778

5778:                                             ; preds = %5777
  br label %5779

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

5780:                                             ; No predecessors!
  br label %5781

5781:                                             ; preds = %5780
  br label %5782

5782:                                             ; preds = %5781, %5721
  br label %5783

5783:                                             ; preds = %5782
  br label %5784

5784:                                             ; preds = %5783
  br label %5785

5785:                                             ; preds = %5784
  %5786 = load i32, ptr @test_count, align 4, !tbaa !5
  %5787 = add nsw i32 %5786, 1
  store i32 %5787, ptr @test_count, align 4, !tbaa !5
  %5788 = load ptr, ptr %122, align 8, !tbaa !9
  %5789 = call i32 @s2n_connection_free(ptr noundef %5788)
  %5790 = icmp eq i32 %5789, -1
  br i1 %5790, label %5791, label %5844

5791:                                             ; preds = %5785
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

5793:                                             ; preds = %5792
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #10
  %5794 = call ptr @__errno_location() #11
  %5795 = load i32, ptr %5794, align 4, !tbaa !5
  store i32 %5795, ptr %134, align 4, !tbaa !5
  %5796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5797 = call i32 @s2n_print_stacktrace(ptr noundef %5796)
  %5798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5799 = trunc i8 %5798 to i1
  br i1 %5799, label %5800, label %5822

5800:                                             ; preds = %5793
  %5801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5802 = call i32 @fileno(ptr noundef %5801) #10
  %5803 = call i32 @isatty(i32 noundef %5802) #10
  %5804 = icmp ne i32 %5803, 0
  br i1 %5804, label %5805, label %5822

5805:                                             ; preds = %5800
  %5806 = load i32, ptr %134, align 4, !tbaa !5
  %5807 = call ptr @__errno_location() #11
  store i32 %5806, ptr %5807, align 4, !tbaa !5
  %5808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5809 = load i32, ptr @test_count, align 4, !tbaa !5
  %5810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5811 = load i32, ptr %5810, align 4, !tbaa !5
  %5812 = call ptr @s2n_strerror(i32 noundef %5811, ptr noundef @.str.4)
  %5813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5814 = load i32, ptr %5813, align 4, !tbaa !5
  %5815 = call ptr @s2n_strerror_debug(i32 noundef %5814, ptr noundef @.str.4)
  %5816 = call ptr @__errno_location() #11
  %5817 = load i32, ptr %5816, align 4, !tbaa !5
  %5818 = call ptr @strerror(i32 noundef %5817) #10
  %5819 = call ptr @__errno_location() #11
  %5820 = load i32, ptr %5819, align 4, !tbaa !5
  %5821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5808, ptr noundef @.str.2, i32 noundef %5809, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5812, ptr noundef %5815, ptr noundef %5818, i32 noundef %5820) #10
  br label %5839

5822:                                             ; preds = %5800, %5793
  %5823 = load i32, ptr %134, align 4, !tbaa !5
  %5824 = call ptr @__errno_location() #11
  store i32 %5823, ptr %5824, align 4, !tbaa !5
  %5825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5826 = load i32, ptr @test_count, align 4, !tbaa !5
  %5827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  %5829 = call ptr @s2n_strerror(i32 noundef %5828, ptr noundef @.str.4)
  %5830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  %5832 = call ptr @s2n_strerror_debug(i32 noundef %5831, ptr noundef @.str.4)
  %5833 = call ptr @__errno_location() #11
  %5834 = load i32, ptr %5833, align 4, !tbaa !5
  %5835 = call ptr @strerror(i32 noundef %5834) #10
  %5836 = call ptr @__errno_location() #11
  %5837 = load i32, ptr %5836, align 4, !tbaa !5
  %5838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5825, ptr noundef @.str.5, i32 noundef %5826, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5829, ptr noundef %5832, ptr noundef %5835, i32 noundef %5837) #10
  br label %5839

5839:                                             ; preds = %5822, %5805
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #10
  br label %5840

5840:                                             ; preds = %5839
  br label %5841

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

5842:                                             ; No predecessors!
  br label %5843

5843:                                             ; preds = %5842
  br label %5844

5844:                                             ; preds = %5843, %5785
  br label %5845

5845:                                             ; preds = %5844
  br label %5846

5846:                                             ; preds = %5845
  br label %5847

5847:                                             ; preds = %5846
  %5848 = load i32, ptr @test_count, align 4, !tbaa !5
  %5849 = add nsw i32 %5848, 1
  store i32 %5849, ptr @test_count, align 4, !tbaa !5
  %5850 = call i32 @s2n_stuffer_free(ptr noundef %127)
  %5851 = icmp eq i32 %5850, -1
  br i1 %5851, label %5852, label %5905

5852:                                             ; preds = %5847
  br label %5853

5853:                                             ; preds = %5852
  br label %5854

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

5861:                                             ; preds = %5854
  %5862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5863 = call i32 @fileno(ptr noundef %5862) #10
  %5864 = call i32 @isatty(i32 noundef %5863) #10
  %5865 = icmp ne i32 %5864, 0
  br i1 %5865, label %5866, label %5883

5866:                                             ; preds = %5861
  %5867 = load i32, ptr %135, align 4, !tbaa !5
  %5868 = call ptr @__errno_location() #11
  store i32 %5867, ptr %5868, align 4, !tbaa !5
  %5869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5870 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5872, ptr noundef @.str.4)
  %5874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5875 = load i32, ptr %5874, align 4, !tbaa !5
  %5876 = call ptr @s2n_strerror_debug(i32 noundef %5875, ptr noundef @.str.4)
  %5877 = call ptr @__errno_location() #11
  %5878 = load i32, ptr %5877, align 4, !tbaa !5
  %5879 = call ptr @strerror(i32 noundef %5878) #10
  %5880 = call ptr @__errno_location() #11
  %5881 = load i32, ptr %5880, align 4, !tbaa !5
  %5882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5869, ptr noundef @.str.2, i32 noundef %5870, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5873, ptr noundef %5876, ptr noundef %5879, i32 noundef %5881) #10
  br label %5900

5883:                                             ; preds = %5861, %5854
  %5884 = load i32, ptr %135, align 4, !tbaa !5
  %5885 = call ptr @__errno_location() #11
  store i32 %5884, ptr %5885, align 4, !tbaa !5
  %5886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5887 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5889, ptr noundef @.str.4)
  %5891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5892 = load i32, ptr %5891, align 4, !tbaa !5
  %5893 = call ptr @s2n_strerror_debug(i32 noundef %5892, ptr noundef @.str.4)
  %5894 = call ptr @__errno_location() #11
  %5895 = load i32, ptr %5894, align 4, !tbaa !5
  %5896 = call ptr @strerror(i32 noundef %5895) #10
  %5897 = call ptr @__errno_location() #11
  %5898 = load i32, ptr %5897, align 4, !tbaa !5
  %5899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5886, ptr noundef @.str.5, i32 noundef %5887, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5890, ptr noundef %5893, ptr noundef %5896, i32 noundef %5898) #10
  br label %5900

5900:                                             ; preds = %5883, %5866
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %5901

5901:                                             ; preds = %5900
  br label %5902

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

5903:                                             ; No predecessors!
  br label %5904

5904:                                             ; preds = %5903
  br label %5905

5905:                                             ; preds = %5904, %5847
  br label %5906

5906:                                             ; preds = %5905
  br label %5907

5907:                                             ; preds = %5906
  store i32 0, ptr %101, align 4
  br label %5908

5908:                                             ; preds = %5907, %5527, %5503
  call void @llvm.lifetime.end.p0(i64 40, ptr %127) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %126) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  %5909 = load i32, ptr %101, align 4
  switch i32 %5909, label %11620 [
    i32 0, label %5910
  ]

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

5911:                                             ; preds = %5910
  %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 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5914, ptr %136, align 8, !tbaa !9
  %5915 = icmp eq ptr %5914, null
  br i1 %5915, label %5916, label %5969

5916:                                             ; preds = %5911
  br label %5917

5917:                                             ; preds = %5916
  br label %5918

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

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

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

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

5964:                                             ; preds = %5947, %5930
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

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

5967:                                             ; No predecessors!
  br label %5968

5968:                                             ; preds = %5967
  br label %5969

5969:                                             ; preds = %5968, %5911
  br label %5970

5970:                                             ; preds = %5969
  br label %5971

5971:                                             ; preds = %5970
  br label %5972

5972:                                             ; preds = %5971
  %5973 = load i32, ptr @test_count, align 4, !tbaa !5
  %5974 = add nsw i32 %5973, 1
  store i32 %5974, ptr @test_count, align 4, !tbaa !5
  %5975 = load ptr, ptr %136, align 8, !tbaa !9
  %5976 = load ptr, ptr %11, align 8, !tbaa !9
  %5977 = call i32 @s2n_connection_set_config(ptr noundef %5975, ptr noundef %5976)
  %5978 = icmp eq i32 %5977, -1
  br i1 %5978, label %5979, label %6032

5979:                                             ; preds = %5972
  br label %5980

5980:                                             ; preds = %5979
  br label %5981

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

5988:                                             ; preds = %5981
  %5989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5990 = call i32 @fileno(ptr noundef %5989) #10
  %5991 = call i32 @isatty(i32 noundef %5990) #10
  %5992 = icmp ne i32 %5991, 0
  br i1 %5992, label %5993, label %6010

5993:                                             ; preds = %5988
  %5994 = load i32, ptr %138, align 4, !tbaa !5
  %5995 = call ptr @__errno_location() #11
  store i32 %5994, ptr %5995, align 4, !tbaa !5
  %5996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5997 = load i32, ptr @test_count, align 4, !tbaa !5
  %5998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5999 = load i32, ptr %5998, align 4, !tbaa !5
  %6000 = call ptr @s2n_strerror(i32 noundef %5999, ptr noundef @.str.4)
  %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_debug(i32 noundef %6002, ptr noundef @.str.4)
  %6004 = call ptr @__errno_location() #11
  %6005 = load i32, ptr %6004, align 4, !tbaa !5
  %6006 = call ptr @strerror(i32 noundef %6005) #10
  %6007 = call ptr @__errno_location() #11
  %6008 = load i32, ptr %6007, align 4, !tbaa !5
  %6009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5996, ptr noundef @.str.2, i32 noundef %5997, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 279, ptr noundef %6000, ptr noundef %6003, ptr noundef %6006, i32 noundef %6008) #10
  br label %6027

6010:                                             ; preds = %5988, %5981
  %6011 = load i32, ptr %138, align 4, !tbaa !5
  %6012 = call ptr @__errno_location() #11
  store i32 %6011, ptr %6012, align 4, !tbaa !5
  %6013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6014 = load i32, ptr @test_count, align 4, !tbaa !5
  %6015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6016 = load i32, ptr %6015, align 4, !tbaa !5
  %6017 = call ptr @s2n_strerror(i32 noundef %6016, ptr noundef @.str.4)
  %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_debug(i32 noundef %6019, ptr noundef @.str.4)
  %6021 = call ptr @__errno_location() #11
  %6022 = load i32, ptr %6021, align 4, !tbaa !5
  %6023 = call ptr @strerror(i32 noundef %6022) #10
  %6024 = call ptr @__errno_location() #11
  %6025 = load i32, ptr %6024, align 4, !tbaa !5
  %6026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6013, ptr noundef @.str.5, i32 noundef %6014, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 279, ptr noundef %6017, ptr noundef %6020, ptr noundef %6023, i32 noundef %6025) #10
  br label %6027

6027:                                             ; preds = %6010, %5993
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  br label %6028

6028:                                             ; preds = %6027
  br label %6029

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

6030:                                             ; No predecessors!
  br label %6031

6031:                                             ; preds = %6030
  br label %6032

6032:                                             ; preds = %6031, %5972
  br label %6033

6033:                                             ; preds = %6032
  br label %6034

6034:                                             ; preds = %6033
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %139, ptr align 1 @__const.main.supported_version_list, i64 1, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %140) #10
  store i8 1, ptr %140, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %141) #10
  call void @llvm.memset.p0.i64(ptr align 8 %141, i8 0, i64 40, i1 false)
  br label %6035

6035:                                             ; preds = %6034
  %6036 = load i32, ptr @test_count, align 4, !tbaa !5
  %6037 = add nsw i32 %6036, 1
  store i32 %6037, ptr @test_count, align 4, !tbaa !5
  %6038 = load i8, ptr %140, align 1, !tbaa !15
  %6039 = zext i8 %6038 to i32
  %6040 = mul nsw i32 %6039, 2
  %6041 = add nsw i32 %6040, 1
  %6042 = call i32 @s2n_stuffer_alloc(ptr noundef %141, i32 noundef %6041)
  %6043 = icmp eq i32 %6042, -1
  br i1 %6043, label %6044, label %6097

6044:                                             ; preds = %6035
  br label %6045

6045:                                             ; preds = %6044
  br label %6046

6046:                                             ; preds = %6045
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %6047 = call ptr @__errno_location() #11
  %6048 = load i32, ptr %6047, align 4, !tbaa !5
  store i32 %6048, ptr %142, 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 %142, 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.38, ptr noundef @.str.1, i32 noundef 285, ptr noundef %6065, ptr noundef %6068, ptr noundef %6071, i32 noundef %6073) #10
  br label %6092

6075:                                             ; preds = %6053, %6046
  %6076 = load i32, ptr %142, 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.38, ptr noundef @.str.1, i32 noundef 285, 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 %142) #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, %6035
  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 = getelementptr inbounds [1 x i8], ptr %139, i64 0, i64 0
  %6104 = load i8, ptr %140, align 1, !tbaa !15
  %6105 = call i32 @write_test_supported_versions_list(ptr noundef %141, ptr noundef %6103, i8 noundef zeroext %6104)
  %6106 = icmp eq i32 %6105, -1
  br i1 %6106, label %6107, label %6160

6107:                                             ; preds = %6100
  br label %6108

6108:                                             ; preds = %6107
  br label %6109

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

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

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

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

6155:                                             ; preds = %6138, %6121
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #10
  br label %6156

6156:                                             ; preds = %6155
  br label %6157

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

6158:                                             ; No predecessors!
  br label %6159

6159:                                             ; preds = %6158
  br label %6160

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

6161:                                             ; preds = %6160
  br label %6162

6162:                                             ; preds = %6161
  br label %6163

6163:                                             ; preds = %6162
  br label %6164

6164:                                             ; preds = %6163
  br label %6165

6165:                                             ; preds = %6164
  %6166 = load i32, ptr @test_count, align 4, !tbaa !5
  %6167 = add nsw i32 %6166, 1
  store i32 %6167, ptr @test_count, align 4, !tbaa !5
  %6168 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %6169 = load ptr, ptr %136, align 8, !tbaa !9
  %6170 = call i32 %6168(ptr noundef %6169, ptr noundef %141)
  %6171 = icmp eq i32 %6170, -1
  br i1 %6171, label %6225, label %6172

6172:                                             ; preds = %6165
  br label %6173

6173:                                             ; preds = %6172
  br label %6174

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

6181:                                             ; preds = %6174
  %6182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6183 = call i32 @fileno(ptr noundef %6182) #10
  %6184 = call i32 @isatty(i32 noundef %6183) #10
  %6185 = icmp ne i32 %6184, 0
  br i1 %6185, label %6186, label %6203

6186:                                             ; preds = %6181
  %6187 = load i32, ptr %144, align 4, !tbaa !5
  %6188 = call ptr @__errno_location() #11
  store i32 %6187, ptr %6188, align 4, !tbaa !5
  %6189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6190 = load i32, ptr @test_count, align 4, !tbaa !5
  %6191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6192 = load i32, ptr %6191, align 4, !tbaa !5
  %6193 = call ptr @s2n_strerror(i32 noundef %6192, ptr noundef @.str.4)
  %6194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6195 = load i32, ptr %6194, align 4, !tbaa !5
  %6196 = call ptr @s2n_strerror_debug(i32 noundef %6195, ptr noundef @.str.4)
  %6197 = call ptr @__errno_location() #11
  %6198 = load i32, ptr %6197, align 4, !tbaa !5
  %6199 = call ptr @strerror(i32 noundef %6198) #10
  %6200 = call ptr @__errno_location() #11
  %6201 = load i32, ptr %6200, align 4, !tbaa !5
  %6202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6189, ptr noundef @.str.2, i32 noundef %6190, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6193, ptr noundef %6196, ptr noundef %6199, i32 noundef %6201) #10
  br label %6220

6203:                                             ; preds = %6181, %6174
  %6204 = load i32, ptr %144, align 4, !tbaa !5
  %6205 = call ptr @__errno_location() #11
  store i32 %6204, ptr %6205, align 4, !tbaa !5
  %6206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6207 = load i32, ptr @test_count, align 4, !tbaa !5
  %6208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6209 = load i32, ptr %6208, align 4, !tbaa !5
  %6210 = call ptr @s2n_strerror(i32 noundef %6209, ptr noundef @.str.4)
  %6211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6212 = load i32, ptr %6211, align 4, !tbaa !5
  %6213 = call ptr @s2n_strerror_debug(i32 noundef %6212, ptr noundef @.str.4)
  %6214 = call ptr @__errno_location() #11
  %6215 = load i32, ptr %6214, align 4, !tbaa !5
  %6216 = call ptr @strerror(i32 noundef %6215) #10
  %6217 = call ptr @__errno_location() #11
  %6218 = load i32, ptr %6217, align 4, !tbaa !5
  %6219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6206, ptr noundef @.str.5, i32 noundef %6207, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6210, ptr noundef %6213, ptr noundef %6216, i32 noundef %6218) #10
  br label %6220

6220:                                             ; preds = %6203, %6186
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #10
  br label %6221

6221:                                             ; preds = %6220
  br label %6222

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

6223:                                             ; No predecessors!
  br label %6224

6224:                                             ; preds = %6223
  br label %6225

6225:                                             ; preds = %6224, %6165
  br label %6226

6226:                                             ; preds = %6225
  br label %6227

6227:                                             ; preds = %6226
  br label %6228

6228:                                             ; preds = %6227
  %6229 = load i32, ptr @test_count, align 4, !tbaa !5
  %6230 = add nsw i32 %6229, 1
  store i32 %6230, ptr @test_count, align 4, !tbaa !5
  %6231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6232 = load i32, ptr %6231, align 4, !tbaa !5
  %6233 = icmp eq i32 %6232, 335544384
  br i1 %6233, label %6287, label %6234

6234:                                             ; preds = %6228
  br label %6235

6235:                                             ; preds = %6234
  br label %6236

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

6243:                                             ; preds = %6236
  %6244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6245 = call i32 @fileno(ptr noundef %6244) #10
  %6246 = call i32 @isatty(i32 noundef %6245) #10
  %6247 = icmp ne i32 %6246, 0
  br i1 %6247, label %6248, label %6265

6248:                                             ; preds = %6243
  %6249 = load i32, ptr %145, align 4, !tbaa !5
  %6250 = call ptr @__errno_location() #11
  store i32 %6249, ptr %6250, align 4, !tbaa !5
  %6251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6252 = load i32, ptr @test_count, align 4, !tbaa !5
  %6253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6254 = load i32, ptr %6253, align 4, !tbaa !5
  %6255 = call ptr @s2n_strerror(i32 noundef %6254, ptr noundef @.str.4)
  %6256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6257 = load i32, ptr %6256, align 4, !tbaa !5
  %6258 = call ptr @s2n_strerror_debug(i32 noundef %6257, ptr noundef @.str.4)
  %6259 = call ptr @__errno_location() #11
  %6260 = load i32, ptr %6259, align 4, !tbaa !5
  %6261 = call ptr @strerror(i32 noundef %6260) #10
  %6262 = call ptr @__errno_location() #11
  %6263 = load i32, ptr %6262, align 4, !tbaa !5
  %6264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6251, ptr noundef @.str.2, i32 noundef %6252, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6255, ptr noundef %6258, ptr noundef %6261, i32 noundef %6263) #10
  br label %6282

6265:                                             ; preds = %6243, %6236
  %6266 = load i32, ptr %145, align 4, !tbaa !5
  %6267 = call ptr @__errno_location() #11
  store i32 %6266, ptr %6267, align 4, !tbaa !5
  %6268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6269 = load i32, ptr @test_count, align 4, !tbaa !5
  %6270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6271 = load i32, ptr %6270, align 4, !tbaa !5
  %6272 = call ptr @s2n_strerror(i32 noundef %6271, ptr noundef @.str.4)
  %6273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6274 = load i32, ptr %6273, align 4, !tbaa !5
  %6275 = call ptr @s2n_strerror_debug(i32 noundef %6274, ptr noundef @.str.4)
  %6276 = call ptr @__errno_location() #11
  %6277 = load i32, ptr %6276, align 4, !tbaa !5
  %6278 = call ptr @strerror(i32 noundef %6277) #10
  %6279 = call ptr @__errno_location() #11
  %6280 = load i32, ptr %6279, align 4, !tbaa !5
  %6281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6268, ptr noundef @.str.5, i32 noundef %6269, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6272, ptr noundef %6275, ptr noundef %6278, i32 noundef %6280) #10
  br label %6282

6282:                                             ; preds = %6265, %6248
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %6283

6283:                                             ; preds = %6282
  br label %6284

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

6285:                                             ; No predecessors!
  br label %6286

6286:                                             ; preds = %6285
  br label %6287

6287:                                             ; preds = %6286, %6228
  br label %6288

6288:                                             ; preds = %6287
  br label %6289

6289:                                             ; preds = %6288
  br label %6290

6290:                                             ; preds = %6289
  %6291 = load i32, ptr @test_count, align 4, !tbaa !5
  %6292 = add nsw i32 %6291, 1
  store i32 %6292, ptr @test_count, align 4, !tbaa !5
  %6293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6294 = load i32, ptr %6293, align 4, !tbaa !5
  %6295 = call ptr @s2n_strerror_debug(i32 noundef %6294, ptr noundef @.str.4)
  %6296 = icmp eq ptr %6295, null
  br i1 %6296, label %6297, label %6350

6297:                                             ; preds = %6290
  br label %6298

6298:                                             ; preds = %6297
  br label %6299

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

6306:                                             ; preds = %6299
  %6307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6308 = call i32 @fileno(ptr noundef %6307) #10
  %6309 = call i32 @isatty(i32 noundef %6308) #10
  %6310 = icmp ne i32 %6309, 0
  br i1 %6310, label %6311, label %6328

6311:                                             ; preds = %6306
  %6312 = load i32, ptr %146, align 4, !tbaa !5
  %6313 = call ptr @__errno_location() #11
  store i32 %6312, ptr %6313, align 4, !tbaa !5
  %6314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6315 = load i32, ptr @test_count, align 4, !tbaa !5
  %6316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6317 = load i32, ptr %6316, align 4, !tbaa !5
  %6318 = call ptr @s2n_strerror(i32 noundef %6317, ptr noundef @.str.4)
  %6319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6320 = load i32, ptr %6319, align 4, !tbaa !5
  %6321 = call ptr @s2n_strerror_debug(i32 noundef %6320, ptr noundef @.str.4)
  %6322 = call ptr @__errno_location() #11
  %6323 = load i32, ptr %6322, align 4, !tbaa !5
  %6324 = call ptr @strerror(i32 noundef %6323) #10
  %6325 = call ptr @__errno_location() #11
  %6326 = load i32, ptr %6325, align 4, !tbaa !5
  %6327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6314, ptr noundef @.str.2, i32 noundef %6315, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6318, ptr noundef %6321, ptr noundef %6324, i32 noundef %6326) #10
  br label %6345

6328:                                             ; preds = %6306, %6299
  %6329 = load i32, ptr %146, align 4, !tbaa !5
  %6330 = call ptr @__errno_location() #11
  store i32 %6329, ptr %6330, align 4, !tbaa !5
  %6331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6332 = load i32, ptr @test_count, align 4, !tbaa !5
  %6333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6334 = load i32, ptr %6333, align 4, !tbaa !5
  %6335 = call ptr @s2n_strerror(i32 noundef %6334, ptr noundef @.str.4)
  %6336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6337 = load i32, ptr %6336, align 4, !tbaa !5
  %6338 = call ptr @s2n_strerror_debug(i32 noundef %6337, ptr noundef @.str.4)
  %6339 = call ptr @__errno_location() #11
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  %6341 = call ptr @strerror(i32 noundef %6340) #10
  %6342 = call ptr @__errno_location() #11
  %6343 = load i32, ptr %6342, align 4, !tbaa !5
  %6344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6331, ptr noundef @.str.5, i32 noundef %6332, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 291, ptr noundef %6335, ptr noundef %6338, ptr noundef %6341, i32 noundef %6343) #10
  br label %6345

6345:                                             ; preds = %6328, %6311
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #10
  br label %6346

6346:                                             ; preds = %6345
  br label %6347

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

6348:                                             ; No predecessors!
  br label %6349

6349:                                             ; preds = %6348
  br label %6350

6350:                                             ; preds = %6349, %6290
  br label %6351

6351:                                             ; preds = %6350
  br label %6352

6352:                                             ; preds = %6351
  br label %6353

6353:                                             ; preds = %6352
  br label %6354

6354:                                             ; preds = %6353
  br label %6355

6355:                                             ; preds = %6354
  %6356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6356, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6357 = call ptr @__errno_location() #11
  store i32 0, ptr %6357, align 4, !tbaa !5
  br label %6358

6358:                                             ; preds = %6355
  br label %6359

6359:                                             ; preds = %6358
  br label %6360

6360:                                             ; preds = %6359
  br label %6361

6361:                                             ; preds = %6360
  br label %6362

6362:                                             ; preds = %6361
  %6363 = load i32, ptr @test_count, align 4, !tbaa !5
  %6364 = add nsw i32 %6363, 1
  store i32 %6364, ptr @test_count, align 4, !tbaa !5
  %6365 = load ptr, ptr %136, align 8, !tbaa !9
  %6366 = getelementptr inbounds %struct.s2n_connection, ptr %6365, i32 0, i32 47
  %6367 = load i8, ptr %6366, align 1, !tbaa !59
  %6368 = zext i8 %6367 to i32
  %6369 = icmp eq i32 %6368, 70
  br i1 %6369, label %6423, label %6370

6370:                                             ; preds = %6362
  br label %6371

6371:                                             ; preds = %6370
  br label %6372

6372:                                             ; preds = %6371
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #10
  %6373 = call ptr @__errno_location() #11
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  store i32 %6374, ptr %147, align 4, !tbaa !5
  %6375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6376 = call i32 @s2n_print_stacktrace(ptr noundef %6375)
  %6377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6378 = trunc i8 %6377 to i1
  br i1 %6378, label %6379, label %6401

6379:                                             ; preds = %6372
  %6380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6381 = call i32 @fileno(ptr noundef %6380) #10
  %6382 = call i32 @isatty(i32 noundef %6381) #10
  %6383 = icmp ne i32 %6382, 0
  br i1 %6383, label %6384, label %6401

6384:                                             ; preds = %6379
  %6385 = load i32, ptr %147, align 4, !tbaa !5
  %6386 = call ptr @__errno_location() #11
  store i32 %6385, ptr %6386, align 4, !tbaa !5
  %6387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6388 = load i32, ptr @test_count, align 4, !tbaa !5
  %6389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6390 = load i32, ptr %6389, align 4, !tbaa !5
  %6391 = call ptr @s2n_strerror(i32 noundef %6390, ptr noundef @.str.4)
  %6392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6393 = load i32, ptr %6392, align 4, !tbaa !5
  %6394 = call ptr @s2n_strerror_debug(i32 noundef %6393, ptr noundef @.str.4)
  %6395 = call ptr @__errno_location() #11
  %6396 = load i32, ptr %6395, align 4, !tbaa !5
  %6397 = call ptr @strerror(i32 noundef %6396) #10
  %6398 = call ptr @__errno_location() #11
  %6399 = load i32, ptr %6398, align 4, !tbaa !5
  %6400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6387, ptr noundef @.str.2, i32 noundef %6388, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 292, ptr noundef %6391, ptr noundef %6394, ptr noundef %6397, i32 noundef %6399) #10
  br label %6418

6401:                                             ; preds = %6379, %6372
  %6402 = load i32, ptr %147, align 4, !tbaa !5
  %6403 = call ptr @__errno_location() #11
  store i32 %6402, ptr %6403, align 4, !tbaa !5
  %6404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6405 = load i32, ptr @test_count, align 4, !tbaa !5
  %6406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6407 = load i32, ptr %6406, align 4, !tbaa !5
  %6408 = call ptr @s2n_strerror(i32 noundef %6407, ptr noundef @.str.4)
  %6409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6410 = load i32, ptr %6409, align 4, !tbaa !5
  %6411 = call ptr @s2n_strerror_debug(i32 noundef %6410, ptr noundef @.str.4)
  %6412 = call ptr @__errno_location() #11
  %6413 = load i32, ptr %6412, align 4, !tbaa !5
  %6414 = call ptr @strerror(i32 noundef %6413) #10
  %6415 = call ptr @__errno_location() #11
  %6416 = load i32, ptr %6415, align 4, !tbaa !5
  %6417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6404, ptr noundef @.str.5, i32 noundef %6405, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 292, ptr noundef %6408, ptr noundef %6411, ptr noundef %6414, i32 noundef %6416) #10
  br label %6418

6418:                                             ; preds = %6401, %6384
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %6419

6419:                                             ; preds = %6418
  br label %6420

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

6421:                                             ; No predecessors!
  br label %6422

6422:                                             ; preds = %6421
  br label %6423

6423:                                             ; preds = %6422, %6362
  br label %6424

6424:                                             ; preds = %6423
  br label %6425

6425:                                             ; preds = %6424
  br label %6426

6426:                                             ; preds = %6425
  %6427 = load i32, ptr @test_count, align 4, !tbaa !5
  %6428 = add nsw i32 %6427, 1
  store i32 %6428, ptr @test_count, align 4, !tbaa !5
  %6429 = load ptr, ptr %136, align 8, !tbaa !9
  %6430 = call i32 @s2n_connection_free(ptr noundef %6429)
  %6431 = icmp eq i32 %6430, -1
  br i1 %6431, label %6432, label %6485

6432:                                             ; preds = %6426
  br label %6433

6433:                                             ; preds = %6432
  br label %6434

6434:                                             ; preds = %6433
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #10
  %6435 = call ptr @__errno_location() #11
  %6436 = load i32, ptr %6435, align 4, !tbaa !5
  store i32 %6436, ptr %148, align 4, !tbaa !5
  %6437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6438 = call i32 @s2n_print_stacktrace(ptr noundef %6437)
  %6439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6440 = trunc i8 %6439 to i1
  br i1 %6440, label %6441, label %6463

6441:                                             ; preds = %6434
  %6442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6443 = call i32 @fileno(ptr noundef %6442) #10
  %6444 = call i32 @isatty(i32 noundef %6443) #10
  %6445 = icmp ne i32 %6444, 0
  br i1 %6445, label %6446, label %6463

6446:                                             ; preds = %6441
  %6447 = load i32, ptr %148, align 4, !tbaa !5
  %6448 = call ptr @__errno_location() #11
  store i32 %6447, ptr %6448, align 4, !tbaa !5
  %6449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6450 = load i32, ptr @test_count, align 4, !tbaa !5
  %6451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6452 = load i32, ptr %6451, align 4, !tbaa !5
  %6453 = call ptr @s2n_strerror(i32 noundef %6452, ptr noundef @.str.4)
  %6454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6455 = load i32, ptr %6454, align 4, !tbaa !5
  %6456 = call ptr @s2n_strerror_debug(i32 noundef %6455, ptr noundef @.str.4)
  %6457 = call ptr @__errno_location() #11
  %6458 = load i32, ptr %6457, align 4, !tbaa !5
  %6459 = call ptr @strerror(i32 noundef %6458) #10
  %6460 = call ptr @__errno_location() #11
  %6461 = load i32, ptr %6460, align 4, !tbaa !5
  %6462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6449, ptr noundef @.str.2, i32 noundef %6450, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6453, ptr noundef %6456, ptr noundef %6459, i32 noundef %6461) #10
  br label %6480

6463:                                             ; preds = %6441, %6434
  %6464 = load i32, ptr %148, align 4, !tbaa !5
  %6465 = call ptr @__errno_location() #11
  store i32 %6464, ptr %6465, align 4, !tbaa !5
  %6466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6467 = load i32, ptr @test_count, align 4, !tbaa !5
  %6468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  %6470 = call ptr @s2n_strerror(i32 noundef %6469, ptr noundef @.str.4)
  %6471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6472 = load i32, ptr %6471, align 4, !tbaa !5
  %6473 = call ptr @s2n_strerror_debug(i32 noundef %6472, ptr noundef @.str.4)
  %6474 = call ptr @__errno_location() #11
  %6475 = load i32, ptr %6474, align 4, !tbaa !5
  %6476 = call ptr @strerror(i32 noundef %6475) #10
  %6477 = call ptr @__errno_location() #11
  %6478 = load i32, ptr %6477, align 4, !tbaa !5
  %6479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6466, ptr noundef @.str.5, i32 noundef %6467, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6470, ptr noundef %6473, ptr noundef %6476, i32 noundef %6478) #10
  br label %6480

6480:                                             ; preds = %6463, %6446
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #10
  br label %6481

6481:                                             ; preds = %6480
  br label %6482

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

6483:                                             ; No predecessors!
  br label %6484

6484:                                             ; preds = %6483
  br label %6485

6485:                                             ; preds = %6484, %6426
  br label %6486

6486:                                             ; preds = %6485
  br label %6487

6487:                                             ; preds = %6486
  br label %6488

6488:                                             ; preds = %6487
  %6489 = load i32, ptr @test_count, align 4, !tbaa !5
  %6490 = add nsw i32 %6489, 1
  store i32 %6490, ptr @test_count, align 4, !tbaa !5
  %6491 = call i32 @s2n_stuffer_free(ptr noundef %141)
  %6492 = icmp eq i32 %6491, -1
  br i1 %6492, label %6493, label %6546

6493:                                             ; preds = %6488
  br label %6494

6494:                                             ; preds = %6493
  br label %6495

6495:                                             ; preds = %6494
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %6496 = call ptr @__errno_location() #11
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  store i32 %6497, ptr %149, align 4, !tbaa !5
  %6498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6499 = call i32 @s2n_print_stacktrace(ptr noundef %6498)
  %6500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6501 = trunc i8 %6500 to i1
  br i1 %6501, label %6502, label %6524

6502:                                             ; preds = %6495
  %6503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6504 = call i32 @fileno(ptr noundef %6503) #10
  %6505 = call i32 @isatty(i32 noundef %6504) #10
  %6506 = icmp ne i32 %6505, 0
  br i1 %6506, label %6507, label %6524

6507:                                             ; preds = %6502
  %6508 = load i32, ptr %149, align 4, !tbaa !5
  %6509 = call ptr @__errno_location() #11
  store i32 %6508, ptr %6509, align 4, !tbaa !5
  %6510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6511 = load i32, ptr @test_count, align 4, !tbaa !5
  %6512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror(i32 noundef %6513, ptr noundef @.str.4)
  %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_debug(i32 noundef %6516, ptr noundef @.str.4)
  %6518 = call ptr @__errno_location() #11
  %6519 = load i32, ptr %6518, align 4, !tbaa !5
  %6520 = call ptr @strerror(i32 noundef %6519) #10
  %6521 = call ptr @__errno_location() #11
  %6522 = load i32, ptr %6521, align 4, !tbaa !5
  %6523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6510, ptr noundef @.str.2, i32 noundef %6511, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 295, ptr noundef %6514, ptr noundef %6517, ptr noundef %6520, i32 noundef %6522) #10
  br label %6541

6524:                                             ; preds = %6502, %6495
  %6525 = load i32, ptr %149, align 4, !tbaa !5
  %6526 = call ptr @__errno_location() #11
  store i32 %6525, ptr %6526, align 4, !tbaa !5
  %6527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6528 = load i32, ptr @test_count, align 4, !tbaa !5
  %6529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6530 = load i32, ptr %6529, align 4, !tbaa !5
  %6531 = call ptr @s2n_strerror(i32 noundef %6530, ptr noundef @.str.4)
  %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_debug(i32 noundef %6533, ptr noundef @.str.4)
  %6535 = call ptr @__errno_location() #11
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  %6537 = call ptr @strerror(i32 noundef %6536) #10
  %6538 = call ptr @__errno_location() #11
  %6539 = load i32, ptr %6538, align 4, !tbaa !5
  %6540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6527, ptr noundef @.str.5, i32 noundef %6528, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 295, ptr noundef %6531, ptr noundef %6534, ptr noundef %6537, i32 noundef %6539) #10
  br label %6541

6541:                                             ; preds = %6524, %6507
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %6542

6542:                                             ; preds = %6541
  br label %6543

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

6544:                                             ; No predecessors!
  br label %6545

6545:                                             ; preds = %6544
  br label %6546

6546:                                             ; preds = %6545, %6488
  br label %6547

6547:                                             ; preds = %6546
  br label %6548

6548:                                             ; preds = %6547
  call void @llvm.lifetime.end.p0(i64 40, ptr %141) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #10
  store ptr null, ptr %150, align 8, !tbaa !9
  br label %6549

6549:                                             ; preds = %6548
  %6550 = load i32, ptr @test_count, align 4, !tbaa !5
  %6551 = add nsw i32 %6550, 1
  store i32 %6551, ptr @test_count, align 4, !tbaa !5
  %6552 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6552, ptr %150, align 8, !tbaa !9
  %6553 = icmp eq ptr %6552, null
  br i1 %6553, label %6554, label %6607

6554:                                             ; preds = %6549
  br label %6555

6555:                                             ; preds = %6554
  br label %6556

6556:                                             ; preds = %6555
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %6557 = call ptr @__errno_location() #11
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  store i32 %6558, ptr %151, align 4, !tbaa !5
  %6559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6560 = call i32 @s2n_print_stacktrace(ptr noundef %6559)
  %6561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6562 = trunc i8 %6561 to i1
  br i1 %6562, label %6563, label %6585

6563:                                             ; preds = %6556
  %6564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6565 = call i32 @fileno(ptr noundef %6564) #10
  %6566 = call i32 @isatty(i32 noundef %6565) #10
  %6567 = icmp ne i32 %6566, 0
  br i1 %6567, label %6568, label %6585

6568:                                             ; preds = %6563
  %6569 = load i32, ptr %151, align 4, !tbaa !5
  %6570 = call ptr @__errno_location() #11
  store i32 %6569, ptr %6570, align 4, !tbaa !5
  %6571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6572 = load i32, ptr @test_count, align 4, !tbaa !5
  %6573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6574 = load i32, ptr %6573, align 4, !tbaa !5
  %6575 = call ptr @s2n_strerror(i32 noundef %6574, ptr noundef @.str.4)
  %6576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6577 = load i32, ptr %6576, align 4, !tbaa !5
  %6578 = call ptr @s2n_strerror_debug(i32 noundef %6577, ptr noundef @.str.4)
  %6579 = call ptr @__errno_location() #11
  %6580 = load i32, ptr %6579, align 4, !tbaa !5
  %6581 = call ptr @strerror(i32 noundef %6580) #10
  %6582 = call ptr @__errno_location() #11
  %6583 = load i32, ptr %6582, align 4, !tbaa !5
  %6584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6571, ptr noundef @.str.2, i32 noundef %6572, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6575, ptr noundef %6578, ptr noundef %6581, i32 noundef %6583) #10
  br label %6602

6585:                                             ; preds = %6563, %6556
  %6586 = load i32, ptr %151, align 4, !tbaa !5
  %6587 = call ptr @__errno_location() #11
  store i32 %6586, ptr %6587, align 4, !tbaa !5
  %6588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6589 = load i32, ptr @test_count, align 4, !tbaa !5
  %6590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6591 = load i32, ptr %6590, align 4, !tbaa !5
  %6592 = call ptr @s2n_strerror(i32 noundef %6591, ptr noundef @.str.4)
  %6593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6594 = load i32, ptr %6593, align 4, !tbaa !5
  %6595 = call ptr @s2n_strerror_debug(i32 noundef %6594, ptr noundef @.str.4)
  %6596 = call ptr @__errno_location() #11
  %6597 = load i32, ptr %6596, align 4, !tbaa !5
  %6598 = call ptr @strerror(i32 noundef %6597) #10
  %6599 = call ptr @__errno_location() #11
  %6600 = load i32, ptr %6599, align 4, !tbaa !5
  %6601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6588, ptr noundef @.str.5, i32 noundef %6589, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6592, ptr noundef %6595, ptr noundef %6598, i32 noundef %6600) #10
  br label %6602

6602:                                             ; preds = %6585, %6568
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %6603

6603:                                             ; preds = %6602
  br label %6604

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

6605:                                             ; No predecessors!
  br label %6606

6606:                                             ; preds = %6605
  br label %6607

6607:                                             ; preds = %6606, %6549
  br label %6608

6608:                                             ; preds = %6607
  br label %6609

6609:                                             ; preds = %6608
  br label %6610

6610:                                             ; preds = %6609
  %6611 = load i32, ptr @test_count, align 4, !tbaa !5
  %6612 = add nsw i32 %6611, 1
  store i32 %6612, ptr @test_count, align 4, !tbaa !5
  %6613 = load ptr, ptr %150, align 8, !tbaa !9
  %6614 = load ptr, ptr %11, align 8, !tbaa !9
  %6615 = call i32 @s2n_connection_set_config(ptr noundef %6613, ptr noundef %6614)
  %6616 = icmp eq i32 %6615, -1
  br i1 %6616, label %6617, label %6670

6617:                                             ; preds = %6610
  br label %6618

6618:                                             ; preds = %6617
  br label %6619

6619:                                             ; preds = %6618
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #10
  %6620 = call ptr @__errno_location() #11
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  store i32 %6621, ptr %152, align 4, !tbaa !5
  %6622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6623 = call i32 @s2n_print_stacktrace(ptr noundef %6622)
  %6624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6625 = trunc i8 %6624 to i1
  br i1 %6625, label %6626, label %6648

6626:                                             ; preds = %6619
  %6627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6628 = call i32 @fileno(ptr noundef %6627) #10
  %6629 = call i32 @isatty(i32 noundef %6628) #10
  %6630 = icmp ne i32 %6629, 0
  br i1 %6630, label %6631, label %6648

6631:                                             ; preds = %6626
  %6632 = load i32, ptr %152, align 4, !tbaa !5
  %6633 = call ptr @__errno_location() #11
  store i32 %6632, ptr %6633, align 4, !tbaa !5
  %6634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6635 = load i32, ptr @test_count, align 4, !tbaa !5
  %6636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6637 = load i32, ptr %6636, align 4, !tbaa !5
  %6638 = call ptr @s2n_strerror(i32 noundef %6637, ptr noundef @.str.4)
  %6639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6640 = load i32, ptr %6639, align 4, !tbaa !5
  %6641 = call ptr @s2n_strerror_debug(i32 noundef %6640, ptr noundef @.str.4)
  %6642 = call ptr @__errno_location() #11
  %6643 = load i32, ptr %6642, align 4, !tbaa !5
  %6644 = call ptr @strerror(i32 noundef %6643) #10
  %6645 = call ptr @__errno_location() #11
  %6646 = load i32, ptr %6645, align 4, !tbaa !5
  %6647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6634, ptr noundef @.str.2, i32 noundef %6635, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 302, ptr noundef %6638, ptr noundef %6641, ptr noundef %6644, i32 noundef %6646) #10
  br label %6665

6648:                                             ; preds = %6626, %6619
  %6649 = load i32, ptr %152, align 4, !tbaa !5
  %6650 = call ptr @__errno_location() #11
  store i32 %6649, ptr %6650, align 4, !tbaa !5
  %6651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6652 = load i32, ptr @test_count, align 4, !tbaa !5
  %6653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6654 = load i32, ptr %6653, align 4, !tbaa !5
  %6655 = call ptr @s2n_strerror(i32 noundef %6654, ptr noundef @.str.4)
  %6656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6657 = load i32, ptr %6656, align 4, !tbaa !5
  %6658 = call ptr @s2n_strerror_debug(i32 noundef %6657, ptr noundef @.str.4)
  %6659 = call ptr @__errno_location() #11
  %6660 = load i32, ptr %6659, align 4, !tbaa !5
  %6661 = call ptr @strerror(i32 noundef %6660) #10
  %6662 = call ptr @__errno_location() #11
  %6663 = load i32, ptr %6662, align 4, !tbaa !5
  %6664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6651, ptr noundef @.str.5, i32 noundef %6652, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 302, ptr noundef %6655, ptr noundef %6658, ptr noundef %6661, i32 noundef %6663) #10
  br label %6665

6665:                                             ; preds = %6648, %6631
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #10
  br label %6666

6666:                                             ; preds = %6665
  br label %6667

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

6668:                                             ; No predecessors!
  br label %6669

6669:                                             ; preds = %6668
  br label %6670

6670:                                             ; preds = %6669, %6610
  br label %6671

6671:                                             ; preds = %6670
  br label %6672

6672:                                             ; preds = %6671
  call void @llvm.lifetime.start.p0(i64 40, ptr %153) #10
  call void @llvm.memset.p0.i64(ptr align 8 %153, i8 0, i64 40, i1 false)
  br label %6673

6673:                                             ; preds = %6672
  %6674 = load i32, ptr @test_count, align 4, !tbaa !5
  %6675 = add nsw i32 %6674, 1
  store i32 %6675, ptr @test_count, align 4, !tbaa !5
  %6676 = call i32 @s2n_stuffer_alloc(ptr noundef %153, i32 noundef 1)
  %6677 = icmp eq i32 %6676, -1
  br i1 %6677, label %6678, label %6731

6678:                                             ; preds = %6673
  br label %6679

6679:                                             ; preds = %6678
  br label %6680

6680:                                             ; preds = %6679
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %6681 = call ptr @__errno_location() #11
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  store i32 %6682, ptr %154, align 4, !tbaa !5
  %6683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6684 = call i32 @s2n_print_stacktrace(ptr noundef %6683)
  %6685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6686 = trunc i8 %6685 to i1
  br i1 %6686, label %6687, label %6709

6687:                                             ; preds = %6680
  %6688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6689 = call i32 @fileno(ptr noundef %6688) #10
  %6690 = call i32 @isatty(i32 noundef %6689) #10
  %6691 = icmp ne i32 %6690, 0
  br i1 %6691, label %6692, label %6709

6692:                                             ; preds = %6687
  %6693 = load i32, ptr %154, align 4, !tbaa !5
  %6694 = call ptr @__errno_location() #11
  store i32 %6693, ptr %6694, align 4, !tbaa !5
  %6695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6696 = load i32, ptr @test_count, align 4, !tbaa !5
  %6697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6698 = load i32, ptr %6697, align 4, !tbaa !5
  %6699 = call ptr @s2n_strerror(i32 noundef %6698, ptr noundef @.str.4)
  %6700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6701 = load i32, ptr %6700, align 4, !tbaa !5
  %6702 = call ptr @s2n_strerror_debug(i32 noundef %6701, ptr noundef @.str.4)
  %6703 = call ptr @__errno_location() #11
  %6704 = load i32, ptr %6703, align 4, !tbaa !5
  %6705 = call ptr @strerror(i32 noundef %6704) #10
  %6706 = call ptr @__errno_location() #11
  %6707 = load i32, ptr %6706, align 4, !tbaa !5
  %6708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6695, ptr noundef @.str.2, i32 noundef %6696, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 305, ptr noundef %6699, ptr noundef %6702, ptr noundef %6705, i32 noundef %6707) #10
  br label %6726

6709:                                             ; preds = %6687, %6680
  %6710 = load i32, ptr %154, align 4, !tbaa !5
  %6711 = call ptr @__errno_location() #11
  store i32 %6710, ptr %6711, align 4, !tbaa !5
  %6712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6713 = load i32, ptr @test_count, align 4, !tbaa !5
  %6714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6715 = load i32, ptr %6714, align 4, !tbaa !5
  %6716 = call ptr @s2n_strerror(i32 noundef %6715, ptr noundef @.str.4)
  %6717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6718 = load i32, ptr %6717, align 4, !tbaa !5
  %6719 = call ptr @s2n_strerror_debug(i32 noundef %6718, ptr noundef @.str.4)
  %6720 = call ptr @__errno_location() #11
  %6721 = load i32, ptr %6720, align 4, !tbaa !5
  %6722 = call ptr @strerror(i32 noundef %6721) #10
  %6723 = call ptr @__errno_location() #11
  %6724 = load i32, ptr %6723, align 4, !tbaa !5
  %6725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6712, ptr noundef @.str.5, i32 noundef %6713, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 305, ptr noundef %6716, ptr noundef %6719, ptr noundef %6722, i32 noundef %6724) #10
  br label %6726

6726:                                             ; preds = %6709, %6692
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %6727

6727:                                             ; preds = %6726
  br label %6728

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

6729:                                             ; No predecessors!
  br label %6730

6730:                                             ; preds = %6729
  br label %6731

6731:                                             ; preds = %6730, %6673
  br label %6732

6732:                                             ; preds = %6731
  br label %6733

6733:                                             ; preds = %6732
  br label %6734

6734:                                             ; preds = %6733
  %6735 = load i32, ptr @test_count, align 4, !tbaa !5
  %6736 = add nsw i32 %6735, 1
  store i32 %6736, ptr @test_count, align 4, !tbaa !5
  %6737 = call i32 @s2n_stuffer_write_uint8(ptr noundef %153, i8 noundef zeroext 0)
  %6738 = icmp eq i32 %6737, -1
  br i1 %6738, label %6739, label %6792

6739:                                             ; preds = %6734
  br label %6740

6740:                                             ; preds = %6739
  br label %6741

6741:                                             ; preds = %6740
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #10
  %6742 = call ptr @__errno_location() #11
  %6743 = load i32, ptr %6742, align 4, !tbaa !5
  store i32 %6743, ptr %155, align 4, !tbaa !5
  %6744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6745 = call i32 @s2n_print_stacktrace(ptr noundef %6744)
  %6746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6747 = trunc i8 %6746 to i1
  br i1 %6747, label %6748, label %6770

6748:                                             ; preds = %6741
  %6749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6750 = call i32 @fileno(ptr noundef %6749) #10
  %6751 = call i32 @isatty(i32 noundef %6750) #10
  %6752 = icmp ne i32 %6751, 0
  br i1 %6752, label %6753, label %6770

6753:                                             ; preds = %6748
  %6754 = load i32, ptr %155, align 4, !tbaa !5
  %6755 = call ptr @__errno_location() #11
  store i32 %6754, ptr %6755, align 4, !tbaa !5
  %6756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6757 = load i32, ptr @test_count, align 4, !tbaa !5
  %6758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6759 = load i32, ptr %6758, align 4, !tbaa !5
  %6760 = call ptr @s2n_strerror(i32 noundef %6759, ptr noundef @.str.4)
  %6761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6762 = load i32, ptr %6761, align 4, !tbaa !5
  %6763 = call ptr @s2n_strerror_debug(i32 noundef %6762, ptr noundef @.str.4)
  %6764 = call ptr @__errno_location() #11
  %6765 = load i32, ptr %6764, align 4, !tbaa !5
  %6766 = call ptr @strerror(i32 noundef %6765) #10
  %6767 = call ptr @__errno_location() #11
  %6768 = load i32, ptr %6767, align 4, !tbaa !5
  %6769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6756, ptr noundef @.str.2, i32 noundef %6757, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 307, ptr noundef %6760, ptr noundef %6763, ptr noundef %6766, i32 noundef %6768) #10
  br label %6787

6770:                                             ; preds = %6748, %6741
  %6771 = load i32, ptr %155, 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.5, i32 noundef %6774, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 307, ptr noundef %6777, ptr noundef %6780, ptr noundef %6783, i32 noundef %6785) #10
  br label %6787

6787:                                             ; preds = %6770, %6753
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #10
  br label %6788

6788:                                             ; preds = %6787
  br label %6789

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

6790:                                             ; No predecessors!
  br label %6791

6791:                                             ; preds = %6790
  br label %6792

6792:                                             ; preds = %6791, %6734
  br label %6793

6793:                                             ; preds = %6792
  br label %6794

6794:                                             ; preds = %6793
  br label %6795

6795:                                             ; preds = %6794
  br label %6796

6796:                                             ; preds = %6795
  br label %6797

6797:                                             ; preds = %6796
  %6798 = load i32, ptr @test_count, align 4, !tbaa !5
  %6799 = add nsw i32 %6798, 1
  store i32 %6799, ptr @test_count, align 4, !tbaa !5
  %6800 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %6801 = load ptr, ptr %150, align 8, !tbaa !9
  %6802 = call i32 %6800(ptr noundef %6801, ptr noundef %153)
  %6803 = icmp eq i32 %6802, -1
  br i1 %6803, label %6857, label %6804

6804:                                             ; preds = %6797
  br label %6805

6805:                                             ; preds = %6804
  br label %6806

6806:                                             ; preds = %6805
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %6807 = call ptr @__errno_location() #11
  %6808 = load i32, ptr %6807, align 4, !tbaa !5
  store i32 %6808, ptr %156, align 4, !tbaa !5
  %6809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6810 = call i32 @s2n_print_stacktrace(ptr noundef %6809)
  %6811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6812 = trunc i8 %6811 to i1
  br i1 %6812, label %6813, label %6835

6813:                                             ; preds = %6806
  %6814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6815 = call i32 @fileno(ptr noundef %6814) #10
  %6816 = call i32 @isatty(i32 noundef %6815) #10
  %6817 = icmp ne i32 %6816, 0
  br i1 %6817, label %6818, label %6835

6818:                                             ; preds = %6813
  %6819 = load i32, ptr %156, align 4, !tbaa !5
  %6820 = call ptr @__errno_location() #11
  store i32 %6819, ptr %6820, align 4, !tbaa !5
  %6821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6822 = load i32, ptr @test_count, align 4, !tbaa !5
  %6823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6824 = load i32, ptr %6823, align 4, !tbaa !5
  %6825 = call ptr @s2n_strerror(i32 noundef %6824, ptr noundef @.str.4)
  %6826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6827 = load i32, ptr %6826, align 4, !tbaa !5
  %6828 = call ptr @s2n_strerror_debug(i32 noundef %6827, ptr noundef @.str.4)
  %6829 = call ptr @__errno_location() #11
  %6830 = load i32, ptr %6829, align 4, !tbaa !5
  %6831 = call ptr @strerror(i32 noundef %6830) #10
  %6832 = call ptr @__errno_location() #11
  %6833 = load i32, ptr %6832, align 4, !tbaa !5
  %6834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6821, ptr noundef @.str.2, i32 noundef %6822, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 310, ptr noundef %6825, ptr noundef %6828, ptr noundef %6831, i32 noundef %6833) #10
  br label %6852

6835:                                             ; preds = %6813, %6806
  %6836 = load i32, ptr %156, align 4, !tbaa !5
  %6837 = call ptr @__errno_location() #11
  store i32 %6836, ptr %6837, align 4, !tbaa !5
  %6838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6839 = load i32, ptr @test_count, align 4, !tbaa !5
  %6840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6841 = load i32, ptr %6840, align 4, !tbaa !5
  %6842 = call ptr @s2n_strerror(i32 noundef %6841, ptr noundef @.str.4)
  %6843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6844 = load i32, ptr %6843, align 4, !tbaa !5
  %6845 = call ptr @s2n_strerror_debug(i32 noundef %6844, ptr noundef @.str.4)
  %6846 = call ptr @__errno_location() #11
  %6847 = load i32, ptr %6846, align 4, !tbaa !5
  %6848 = call ptr @strerror(i32 noundef %6847) #10
  %6849 = call ptr @__errno_location() #11
  %6850 = load i32, ptr %6849, align 4, !tbaa !5
  %6851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6838, ptr noundef @.str.5, i32 noundef %6839, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 310, ptr noundef %6842, ptr noundef %6845, ptr noundef %6848, i32 noundef %6850) #10
  br label %6852

6852:                                             ; preds = %6835, %6818
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %6853

6853:                                             ; preds = %6852
  br label %6854

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

6855:                                             ; No predecessors!
  br label %6856

6856:                                             ; preds = %6855
  br label %6857

6857:                                             ; preds = %6856, %6797
  br label %6858

6858:                                             ; preds = %6857
  br label %6859

6859:                                             ; preds = %6858
  br label %6860

6860:                                             ; preds = %6859
  %6861 = load i32, ptr @test_count, align 4, !tbaa !5
  %6862 = add nsw i32 %6861, 1
  store i32 %6862, ptr @test_count, align 4, !tbaa !5
  %6863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6864 = load i32, ptr %6863, align 4, !tbaa !5
  %6865 = icmp eq i32 %6864, 402653239
  br i1 %6865, label %6919, label %6866

6866:                                             ; preds = %6860
  br label %6867

6867:                                             ; preds = %6866
  br label %6868

6868:                                             ; preds = %6867
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %6869 = call ptr @__errno_location() #11
  %6870 = load i32, ptr %6869, align 4, !tbaa !5
  store i32 %6870, ptr %157, align 4, !tbaa !5
  %6871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6872 = call i32 @s2n_print_stacktrace(ptr noundef %6871)
  %6873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6874 = trunc i8 %6873 to i1
  br i1 %6874, label %6875, label %6897

6875:                                             ; preds = %6868
  %6876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6877 = call i32 @fileno(ptr noundef %6876) #10
  %6878 = call i32 @isatty(i32 noundef %6877) #10
  %6879 = icmp ne i32 %6878, 0
  br i1 %6879, label %6880, label %6897

6880:                                             ; preds = %6875
  %6881 = load i32, ptr %157, align 4, !tbaa !5
  %6882 = call ptr @__errno_location() #11
  store i32 %6881, ptr %6882, align 4, !tbaa !5
  %6883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6884 = load i32, ptr @test_count, align 4, !tbaa !5
  %6885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6886 = load i32, ptr %6885, align 4, !tbaa !5
  %6887 = call ptr @s2n_strerror(i32 noundef %6886, ptr noundef @.str.4)
  %6888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6889 = load i32, ptr %6888, align 4, !tbaa !5
  %6890 = call ptr @s2n_strerror_debug(i32 noundef %6889, ptr noundef @.str.4)
  %6891 = call ptr @__errno_location() #11
  %6892 = load i32, ptr %6891, align 4, !tbaa !5
  %6893 = call ptr @strerror(i32 noundef %6892) #10
  %6894 = call ptr @__errno_location() #11
  %6895 = load i32, ptr %6894, align 4, !tbaa !5
  %6896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6883, ptr noundef @.str.2, i32 noundef %6884, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 310, ptr noundef %6887, ptr noundef %6890, ptr noundef %6893, i32 noundef %6895) #10
  br label %6914

6897:                                             ; preds = %6875, %6868
  %6898 = load i32, ptr %157, align 4, !tbaa !5
  %6899 = call ptr @__errno_location() #11
  store i32 %6898, ptr %6899, align 4, !tbaa !5
  %6900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6901 = load i32, ptr @test_count, align 4, !tbaa !5
  %6902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6903 = load i32, ptr %6902, align 4, !tbaa !5
  %6904 = call ptr @s2n_strerror(i32 noundef %6903, ptr noundef @.str.4)
  %6905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6906 = load i32, ptr %6905, align 4, !tbaa !5
  %6907 = call ptr @s2n_strerror_debug(i32 noundef %6906, ptr noundef @.str.4)
  %6908 = call ptr @__errno_location() #11
  %6909 = load i32, ptr %6908, align 4, !tbaa !5
  %6910 = call ptr @strerror(i32 noundef %6909) #10
  %6911 = call ptr @__errno_location() #11
  %6912 = load i32, ptr %6911, align 4, !tbaa !5
  %6913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6900, ptr noundef @.str.5, i32 noundef %6901, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 310, ptr noundef %6904, ptr noundef %6907, ptr noundef %6910, i32 noundef %6912) #10
  br label %6914

6914:                                             ; preds = %6897, %6880
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %6915

6915:                                             ; preds = %6914
  br label %6916

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

6917:                                             ; No predecessors!
  br label %6918

6918:                                             ; preds = %6917
  br label %6919

6919:                                             ; preds = %6918, %6860
  br label %6920

6920:                                             ; preds = %6919
  br label %6921

6921:                                             ; preds = %6920
  br label %6922

6922:                                             ; preds = %6921
  %6923 = load i32, ptr @test_count, align 4, !tbaa !5
  %6924 = add nsw i32 %6923, 1
  store i32 %6924, ptr @test_count, align 4, !tbaa !5
  %6925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6926 = load i32, ptr %6925, align 4, !tbaa !5
  %6927 = call ptr @s2n_strerror_debug(i32 noundef %6926, ptr noundef @.str.4)
  %6928 = icmp eq ptr %6927, null
  br i1 %6928, label %6929, label %6982

6929:                                             ; preds = %6922
  br label %6930

6930:                                             ; preds = %6929
  br label %6931

6931:                                             ; preds = %6930
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #10
  %6932 = call ptr @__errno_location() #11
  %6933 = load i32, ptr %6932, align 4, !tbaa !5
  store i32 %6933, ptr %158, align 4, !tbaa !5
  %6934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6935 = call i32 @s2n_print_stacktrace(ptr noundef %6934)
  %6936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6937 = trunc i8 %6936 to i1
  br i1 %6937, label %6938, label %6960

6938:                                             ; preds = %6931
  %6939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6940 = call i32 @fileno(ptr noundef %6939) #10
  %6941 = call i32 @isatty(i32 noundef %6940) #10
  %6942 = icmp ne i32 %6941, 0
  br i1 %6942, label %6943, label %6960

6943:                                             ; preds = %6938
  %6944 = load i32, ptr %158, align 4, !tbaa !5
  %6945 = call ptr @__errno_location() #11
  store i32 %6944, ptr %6945, align 4, !tbaa !5
  %6946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6947 = load i32, ptr @test_count, align 4, !tbaa !5
  %6948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6949 = load i32, ptr %6948, align 4, !tbaa !5
  %6950 = call ptr @s2n_strerror(i32 noundef %6949, ptr noundef @.str.4)
  %6951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6952 = load i32, ptr %6951, align 4, !tbaa !5
  %6953 = call ptr @s2n_strerror_debug(i32 noundef %6952, ptr noundef @.str.4)
  %6954 = call ptr @__errno_location() #11
  %6955 = load i32, ptr %6954, align 4, !tbaa !5
  %6956 = call ptr @strerror(i32 noundef %6955) #10
  %6957 = call ptr @__errno_location() #11
  %6958 = load i32, ptr %6957, align 4, !tbaa !5
  %6959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6946, ptr noundef @.str.2, i32 noundef %6947, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 310, ptr noundef %6950, ptr noundef %6953, ptr noundef %6956, i32 noundef %6958) #10
  br label %6977

6960:                                             ; preds = %6938, %6931
  %6961 = load i32, ptr %158, align 4, !tbaa !5
  %6962 = call ptr @__errno_location() #11
  store i32 %6961, ptr %6962, align 4, !tbaa !5
  %6963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6964 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6966, ptr noundef @.str.4)
  %6968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6969 = load i32, ptr %6968, align 4, !tbaa !5
  %6970 = call ptr @s2n_strerror_debug(i32 noundef %6969, ptr noundef @.str.4)
  %6971 = call ptr @__errno_location() #11
  %6972 = load i32, ptr %6971, align 4, !tbaa !5
  %6973 = call ptr @strerror(i32 noundef %6972) #10
  %6974 = call ptr @__errno_location() #11
  %6975 = load i32, ptr %6974, align 4, !tbaa !5
  %6976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6963, ptr noundef @.str.5, i32 noundef %6964, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 310, ptr noundef %6967, ptr noundef %6970, ptr noundef %6973, i32 noundef %6975) #10
  br label %6977

6977:                                             ; preds = %6960, %6943
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #10
  br label %6978

6978:                                             ; preds = %6977
  br label %6979

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

6980:                                             ; No predecessors!
  br label %6981

6981:                                             ; preds = %6980
  br label %6982

6982:                                             ; preds = %6981, %6922
  br label %6983

6983:                                             ; preds = %6982
  br label %6984

6984:                                             ; preds = %6983
  br label %6985

6985:                                             ; preds = %6984
  br label %6986

6986:                                             ; preds = %6985
  br label %6987

6987:                                             ; preds = %6986
  %6988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6988, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6989 = call ptr @__errno_location() #11
  store i32 0, ptr %6989, align 4, !tbaa !5
  br label %6990

6990:                                             ; preds = %6987
  br label %6991

6991:                                             ; preds = %6990
  br label %6992

6992:                                             ; preds = %6991
  br label %6993

6993:                                             ; preds = %6992
  br label %6994

6994:                                             ; preds = %6993
  %6995 = load i32, ptr @test_count, align 4, !tbaa !5
  %6996 = add nsw i32 %6995, 1
  store i32 %6996, ptr @test_count, align 4, !tbaa !5
  %6997 = load ptr, ptr %150, align 8, !tbaa !9
  %6998 = getelementptr inbounds %struct.s2n_connection, ptr %6997, i32 0, i32 47
  %6999 = load i8, ptr %6998, align 1, !tbaa !59
  %7000 = zext i8 %6999 to i32
  %7001 = icmp eq i32 %7000, 70
  br i1 %7001, label %7055, label %7002

7002:                                             ; preds = %6994
  br label %7003

7003:                                             ; preds = %7002
  br label %7004

7004:                                             ; preds = %7003
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #10
  %7005 = call ptr @__errno_location() #11
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  store i32 %7006, ptr %159, align 4, !tbaa !5
  %7007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7008 = call i32 @s2n_print_stacktrace(ptr noundef %7007)
  %7009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7010 = trunc i8 %7009 to i1
  br i1 %7010, label %7011, label %7033

7011:                                             ; preds = %7004
  %7012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7013 = call i32 @fileno(ptr noundef %7012) #10
  %7014 = call i32 @isatty(i32 noundef %7013) #10
  %7015 = icmp ne i32 %7014, 0
  br i1 %7015, label %7016, label %7033

7016:                                             ; preds = %7011
  %7017 = load i32, ptr %159, align 4, !tbaa !5
  %7018 = call ptr @__errno_location() #11
  store i32 %7017, ptr %7018, align 4, !tbaa !5
  %7019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7020 = load i32, ptr @test_count, align 4, !tbaa !5
  %7021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7022 = load i32, ptr %7021, align 4, !tbaa !5
  %7023 = call ptr @s2n_strerror(i32 noundef %7022, ptr noundef @.str.4)
  %7024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  %7026 = call ptr @s2n_strerror_debug(i32 noundef %7025, ptr noundef @.str.4)
  %7027 = call ptr @__errno_location() #11
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  %7029 = call ptr @strerror(i32 noundef %7028) #10
  %7030 = call ptr @__errno_location() #11
  %7031 = load i32, ptr %7030, align 4, !tbaa !5
  %7032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7019, ptr noundef @.str.2, i32 noundef %7020, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 311, ptr noundef %7023, ptr noundef %7026, ptr noundef %7029, i32 noundef %7031) #10
  br label %7050

7033:                                             ; preds = %7011, %7004
  %7034 = load i32, ptr %159, align 4, !tbaa !5
  %7035 = call ptr @__errno_location() #11
  store i32 %7034, ptr %7035, align 4, !tbaa !5
  %7036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7037 = load i32, ptr @test_count, align 4, !tbaa !5
  %7038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7039 = load i32, ptr %7038, align 4, !tbaa !5
  %7040 = call ptr @s2n_strerror(i32 noundef %7039, ptr noundef @.str.4)
  %7041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7042 = load i32, ptr %7041, align 4, !tbaa !5
  %7043 = call ptr @s2n_strerror_debug(i32 noundef %7042, ptr noundef @.str.4)
  %7044 = call ptr @__errno_location() #11
  %7045 = load i32, ptr %7044, align 4, !tbaa !5
  %7046 = call ptr @strerror(i32 noundef %7045) #10
  %7047 = call ptr @__errno_location() #11
  %7048 = load i32, ptr %7047, align 4, !tbaa !5
  %7049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7036, ptr noundef @.str.5, i32 noundef %7037, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 311, ptr noundef %7040, ptr noundef %7043, ptr noundef %7046, i32 noundef %7048) #10
  br label %7050

7050:                                             ; preds = %7033, %7016
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #10
  br label %7051

7051:                                             ; preds = %7050
  br label %7052

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

7053:                                             ; No predecessors!
  br label %7054

7054:                                             ; preds = %7053
  br label %7055

7055:                                             ; preds = %7054, %6994
  br label %7056

7056:                                             ; preds = %7055
  br label %7057

7057:                                             ; preds = %7056
  br label %7058

7058:                                             ; preds = %7057
  %7059 = load i32, ptr @test_count, align 4, !tbaa !5
  %7060 = add nsw i32 %7059, 1
  store i32 %7060, ptr @test_count, align 4, !tbaa !5
  %7061 = load ptr, ptr %150, align 8, !tbaa !9
  %7062 = call i32 @s2n_connection_free(ptr noundef %7061)
  %7063 = icmp eq i32 %7062, -1
  br i1 %7063, label %7064, label %7117

7064:                                             ; preds = %7058
  br label %7065

7065:                                             ; preds = %7064
  br label %7066

7066:                                             ; preds = %7065
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #10
  %7067 = call ptr @__errno_location() #11
  %7068 = load i32, ptr %7067, align 4, !tbaa !5
  store i32 %7068, ptr %160, align 4, !tbaa !5
  %7069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7070 = call i32 @s2n_print_stacktrace(ptr noundef %7069)
  %7071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7072 = trunc i8 %7071 to i1
  br i1 %7072, label %7073, label %7095

7073:                                             ; preds = %7066
  %7074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7075 = call i32 @fileno(ptr noundef %7074) #10
  %7076 = call i32 @isatty(i32 noundef %7075) #10
  %7077 = icmp ne i32 %7076, 0
  br i1 %7077, label %7078, label %7095

7078:                                             ; preds = %7073
  %7079 = load i32, ptr %160, align 4, !tbaa !5
  %7080 = call ptr @__errno_location() #11
  store i32 %7079, ptr %7080, align 4, !tbaa !5
  %7081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7082 = load i32, ptr @test_count, align 4, !tbaa !5
  %7083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7084 = load i32, ptr %7083, align 4, !tbaa !5
  %7085 = call ptr @s2n_strerror(i32 noundef %7084, ptr noundef @.str.4)
  %7086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7087 = load i32, ptr %7086, align 4, !tbaa !5
  %7088 = call ptr @s2n_strerror_debug(i32 noundef %7087, ptr noundef @.str.4)
  %7089 = call ptr @__errno_location() #11
  %7090 = load i32, ptr %7089, align 4, !tbaa !5
  %7091 = call ptr @strerror(i32 noundef %7090) #10
  %7092 = call ptr @__errno_location() #11
  %7093 = load i32, ptr %7092, align 4, !tbaa !5
  %7094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7081, ptr noundef @.str.2, i32 noundef %7082, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 313, ptr noundef %7085, ptr noundef %7088, ptr noundef %7091, i32 noundef %7093) #10
  br label %7112

7095:                                             ; preds = %7073, %7066
  %7096 = load i32, ptr %160, align 4, !tbaa !5
  %7097 = call ptr @__errno_location() #11
  store i32 %7096, ptr %7097, align 4, !tbaa !5
  %7098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7099 = load i32, ptr @test_count, align 4, !tbaa !5
  %7100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7101 = load i32, ptr %7100, align 4, !tbaa !5
  %7102 = call ptr @s2n_strerror(i32 noundef %7101, ptr noundef @.str.4)
  %7103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7104 = load i32, ptr %7103, align 4, !tbaa !5
  %7105 = call ptr @s2n_strerror_debug(i32 noundef %7104, ptr noundef @.str.4)
  %7106 = call ptr @__errno_location() #11
  %7107 = load i32, ptr %7106, align 4, !tbaa !5
  %7108 = call ptr @strerror(i32 noundef %7107) #10
  %7109 = call ptr @__errno_location() #11
  %7110 = load i32, ptr %7109, align 4, !tbaa !5
  %7111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7098, ptr noundef @.str.5, i32 noundef %7099, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 313, ptr noundef %7102, ptr noundef %7105, ptr noundef %7108, i32 noundef %7110) #10
  br label %7112

7112:                                             ; preds = %7095, %7078
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #10
  br label %7113

7113:                                             ; preds = %7112
  br label %7114

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

7115:                                             ; No predecessors!
  br label %7116

7116:                                             ; preds = %7115
  br label %7117

7117:                                             ; preds = %7116, %7058
  br label %7118

7118:                                             ; preds = %7117
  br label %7119

7119:                                             ; preds = %7118
  br label %7120

7120:                                             ; preds = %7119
  %7121 = load i32, ptr @test_count, align 4, !tbaa !5
  %7122 = add nsw i32 %7121, 1
  store i32 %7122, ptr @test_count, align 4, !tbaa !5
  %7123 = call i32 @s2n_stuffer_free(ptr noundef %153)
  %7124 = icmp eq i32 %7123, -1
  br i1 %7124, label %7125, label %7178

7125:                                             ; preds = %7120
  br label %7126

7126:                                             ; preds = %7125
  br label %7127

7127:                                             ; preds = %7126
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #10
  %7128 = call ptr @__errno_location() #11
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  store i32 %7129, ptr %161, align 4, !tbaa !5
  %7130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7131 = call i32 @s2n_print_stacktrace(ptr noundef %7130)
  %7132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7133 = trunc i8 %7132 to i1
  br i1 %7133, label %7134, label %7156

7134:                                             ; preds = %7127
  %7135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7136 = call i32 @fileno(ptr noundef %7135) #10
  %7137 = call i32 @isatty(i32 noundef %7136) #10
  %7138 = icmp ne i32 %7137, 0
  br i1 %7138, label %7139, label %7156

7139:                                             ; preds = %7134
  %7140 = load i32, ptr %161, align 4, !tbaa !5
  %7141 = call ptr @__errno_location() #11
  store i32 %7140, ptr %7141, align 4, !tbaa !5
  %7142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7143 = load i32, ptr @test_count, align 4, !tbaa !5
  %7144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7145 = load i32, ptr %7144, align 4, !tbaa !5
  %7146 = call ptr @s2n_strerror(i32 noundef %7145, ptr noundef @.str.4)
  %7147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @s2n_strerror_debug(i32 noundef %7148, ptr noundef @.str.4)
  %7150 = call ptr @__errno_location() #11
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call ptr @strerror(i32 noundef %7151) #10
  %7153 = call ptr @__errno_location() #11
  %7154 = load i32, ptr %7153, align 4, !tbaa !5
  %7155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7142, ptr noundef @.str.2, i32 noundef %7143, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7146, ptr noundef %7149, ptr noundef %7152, i32 noundef %7154) #10
  br label %7173

7156:                                             ; preds = %7134, %7127
  %7157 = load i32, ptr %161, align 4, !tbaa !5
  %7158 = call ptr @__errno_location() #11
  store i32 %7157, ptr %7158, align 4, !tbaa !5
  %7159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7160 = load i32, ptr @test_count, align 4, !tbaa !5
  %7161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7162 = load i32, ptr %7161, align 4, !tbaa !5
  %7163 = call ptr @s2n_strerror(i32 noundef %7162, ptr noundef @.str.4)
  %7164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7165 = load i32, ptr %7164, align 4, !tbaa !5
  %7166 = call ptr @s2n_strerror_debug(i32 noundef %7165, ptr noundef @.str.4)
  %7167 = call ptr @__errno_location() #11
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  %7169 = call ptr @strerror(i32 noundef %7168) #10
  %7170 = call ptr @__errno_location() #11
  %7171 = load i32, ptr %7170, align 4, !tbaa !5
  %7172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7159, ptr noundef @.str.5, i32 noundef %7160, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7163, ptr noundef %7166, ptr noundef %7169, i32 noundef %7171) #10
  br label %7173

7173:                                             ; preds = %7156, %7139
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #10
  br label %7174

7174:                                             ; preds = %7173
  br label %7175

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

7176:                                             ; No predecessors!
  br label %7177

7177:                                             ; preds = %7176
  br label %7178

7178:                                             ; preds = %7177, %7120
  br label %7179

7179:                                             ; preds = %7178
  br label %7180

7180:                                             ; preds = %7179
  call void @llvm.lifetime.end.p0(i64 40, ptr %153) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #10
  store ptr null, ptr %162, align 8, !tbaa !9
  br label %7181

7181:                                             ; preds = %7180
  %7182 = load i32, ptr @test_count, align 4, !tbaa !5
  %7183 = add nsw i32 %7182, 1
  store i32 %7183, ptr @test_count, align 4, !tbaa !5
  %7184 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7184, ptr %162, align 8, !tbaa !9
  %7185 = icmp eq ptr %7184, null
  br i1 %7185, label %7186, label %7239

7186:                                             ; preds = %7181
  br label %7187

7187:                                             ; preds = %7186
  br label %7188

7188:                                             ; preds = %7187
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %7189 = call ptr @__errno_location() #11
  %7190 = load i32, ptr %7189, align 4, !tbaa !5
  store i32 %7190, ptr %163, align 4, !tbaa !5
  %7191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7192 = call i32 @s2n_print_stacktrace(ptr noundef %7191)
  %7193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7194 = trunc i8 %7193 to i1
  br i1 %7194, label %7195, label %7217

7195:                                             ; preds = %7188
  %7196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7197 = call i32 @fileno(ptr noundef %7196) #10
  %7198 = call i32 @isatty(i32 noundef %7197) #10
  %7199 = icmp ne i32 %7198, 0
  br i1 %7199, label %7200, label %7217

7200:                                             ; preds = %7195
  %7201 = load i32, ptr %163, align 4, !tbaa !5
  %7202 = call ptr @__errno_location() #11
  store i32 %7201, ptr %7202, align 4, !tbaa !5
  %7203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7204 = load i32, ptr @test_count, align 4, !tbaa !5
  %7205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7206 = load i32, ptr %7205, align 4, !tbaa !5
  %7207 = call ptr @s2n_strerror(i32 noundef %7206, ptr noundef @.str.4)
  %7208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7209 = load i32, ptr %7208, align 4, !tbaa !5
  %7210 = call ptr @s2n_strerror_debug(i32 noundef %7209, ptr noundef @.str.4)
  %7211 = call ptr @__errno_location() #11
  %7212 = load i32, ptr %7211, align 4, !tbaa !5
  %7213 = call ptr @strerror(i32 noundef %7212) #10
  %7214 = call ptr @__errno_location() #11
  %7215 = load i32, ptr %7214, align 4, !tbaa !5
  %7216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7203, ptr noundef @.str.2, i32 noundef %7204, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 320, ptr noundef %7207, ptr noundef %7210, ptr noundef %7213, i32 noundef %7215) #10
  br label %7234

7217:                                             ; preds = %7195, %7188
  %7218 = load i32, ptr %163, align 4, !tbaa !5
  %7219 = call ptr @__errno_location() #11
  store i32 %7218, ptr %7219, align 4, !tbaa !5
  %7220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7221 = load i32, ptr @test_count, align 4, !tbaa !5
  %7222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7223 = load i32, ptr %7222, align 4, !tbaa !5
  %7224 = call ptr @s2n_strerror(i32 noundef %7223, ptr noundef @.str.4)
  %7225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7226 = load i32, ptr %7225, align 4, !tbaa !5
  %7227 = call ptr @s2n_strerror_debug(i32 noundef %7226, ptr noundef @.str.4)
  %7228 = call ptr @__errno_location() #11
  %7229 = load i32, ptr %7228, align 4, !tbaa !5
  %7230 = call ptr @strerror(i32 noundef %7229) #10
  %7231 = call ptr @__errno_location() #11
  %7232 = load i32, ptr %7231, align 4, !tbaa !5
  %7233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7220, ptr noundef @.str.5, i32 noundef %7221, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 320, ptr noundef %7224, ptr noundef %7227, ptr noundef %7230, i32 noundef %7232) #10
  br label %7234

7234:                                             ; preds = %7217, %7200
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %7235

7235:                                             ; preds = %7234
  br label %7236

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

7237:                                             ; No predecessors!
  br label %7238

7238:                                             ; preds = %7237
  br label %7239

7239:                                             ; preds = %7238, %7181
  br label %7240

7240:                                             ; preds = %7239
  br label %7241

7241:                                             ; preds = %7240
  br label %7242

7242:                                             ; preds = %7241
  %7243 = load i32, ptr @test_count, align 4, !tbaa !5
  %7244 = add nsw i32 %7243, 1
  store i32 %7244, ptr @test_count, align 4, !tbaa !5
  %7245 = load ptr, ptr %162, align 8, !tbaa !9
  %7246 = load ptr, ptr %11, align 8, !tbaa !9
  %7247 = call i32 @s2n_connection_set_config(ptr noundef %7245, ptr noundef %7246)
  %7248 = icmp eq i32 %7247, -1
  br i1 %7248, label %7249, label %7302

7249:                                             ; preds = %7242
  br label %7250

7250:                                             ; preds = %7249
  br label %7251

7251:                                             ; preds = %7250
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #10
  %7252 = call ptr @__errno_location() #11
  %7253 = load i32, ptr %7252, align 4, !tbaa !5
  store i32 %7253, ptr %164, align 4, !tbaa !5
  %7254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7255 = call i32 @s2n_print_stacktrace(ptr noundef %7254)
  %7256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7257 = trunc i8 %7256 to i1
  br i1 %7257, label %7258, label %7280

7258:                                             ; preds = %7251
  %7259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7260 = call i32 @fileno(ptr noundef %7259) #10
  %7261 = call i32 @isatty(i32 noundef %7260) #10
  %7262 = icmp ne i32 %7261, 0
  br i1 %7262, label %7263, label %7280

7263:                                             ; preds = %7258
  %7264 = load i32, ptr %164, align 4, !tbaa !5
  %7265 = call ptr @__errno_location() #11
  store i32 %7264, ptr %7265, align 4, !tbaa !5
  %7266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7267 = load i32, ptr @test_count, align 4, !tbaa !5
  %7268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7269 = load i32, ptr %7268, align 4, !tbaa !5
  %7270 = call ptr @s2n_strerror(i32 noundef %7269, ptr noundef @.str.4)
  %7271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  %7273 = call ptr @s2n_strerror_debug(i32 noundef %7272, ptr noundef @.str.4)
  %7274 = call ptr @__errno_location() #11
  %7275 = load i32, ptr %7274, align 4, !tbaa !5
  %7276 = call ptr @strerror(i32 noundef %7275) #10
  %7277 = call ptr @__errno_location() #11
  %7278 = load i32, ptr %7277, align 4, !tbaa !5
  %7279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7266, ptr noundef @.str.2, i32 noundef %7267, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 321, ptr noundef %7270, ptr noundef %7273, ptr noundef %7276, i32 noundef %7278) #10
  br label %7297

7280:                                             ; preds = %7258, %7251
  %7281 = load i32, ptr %164, align 4, !tbaa !5
  %7282 = call ptr @__errno_location() #11
  store i32 %7281, ptr %7282, align 4, !tbaa !5
  %7283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7284 = load i32, ptr @test_count, align 4, !tbaa !5
  %7285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7286 = load i32, ptr %7285, align 4, !tbaa !5
  %7287 = call ptr @s2n_strerror(i32 noundef %7286, ptr noundef @.str.4)
  %7288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7289 = load i32, ptr %7288, align 4, !tbaa !5
  %7290 = call ptr @s2n_strerror_debug(i32 noundef %7289, ptr noundef @.str.4)
  %7291 = call ptr @__errno_location() #11
  %7292 = load i32, ptr %7291, align 4, !tbaa !5
  %7293 = call ptr @strerror(i32 noundef %7292) #10
  %7294 = call ptr @__errno_location() #11
  %7295 = load i32, ptr %7294, align 4, !tbaa !5
  %7296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7283, ptr noundef @.str.5, i32 noundef %7284, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 321, ptr noundef %7287, ptr noundef %7290, ptr noundef %7293, i32 noundef %7295) #10
  br label %7297

7297:                                             ; preds = %7280, %7263
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #10
  br label %7298

7298:                                             ; preds = %7297
  br label %7299

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

7300:                                             ; No predecessors!
  br label %7301

7301:                                             ; preds = %7300
  br label %7302

7302:                                             ; preds = %7301, %7242
  br label %7303

7303:                                             ; preds = %7302
  br label %7304

7304:                                             ; preds = %7303
  call void @llvm.lifetime.start.p0(i64 40, ptr %165) #10
  call void @llvm.memset.p0.i64(ptr align 8 %165, i8 0, i64 40, i1 false)
  br label %7305

7305:                                             ; preds = %7304
  %7306 = load i32, ptr @test_count, align 4, !tbaa !5
  %7307 = add nsw i32 %7306, 1
  store i32 %7307, ptr @test_count, align 4, !tbaa !5
  %7308 = call i32 @s2n_stuffer_alloc(ptr noundef %165, i32 noundef 1)
  %7309 = icmp eq i32 %7308, -1
  br i1 %7309, label %7310, label %7363

7310:                                             ; preds = %7305
  br label %7311

7311:                                             ; preds = %7310
  br label %7312

7312:                                             ; preds = %7311
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #10
  %7313 = call ptr @__errno_location() #11
  %7314 = load i32, ptr %7313, align 4, !tbaa !5
  store i32 %7314, ptr %166, align 4, !tbaa !5
  %7315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7316 = call i32 @s2n_print_stacktrace(ptr noundef %7315)
  %7317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7318 = trunc i8 %7317 to i1
  br i1 %7318, label %7319, label %7341

7319:                                             ; preds = %7312
  %7320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7321 = call i32 @fileno(ptr noundef %7320) #10
  %7322 = call i32 @isatty(i32 noundef %7321) #10
  %7323 = icmp ne i32 %7322, 0
  br i1 %7323, label %7324, label %7341

7324:                                             ; preds = %7319
  %7325 = load i32, ptr %166, align 4, !tbaa !5
  %7326 = call ptr @__errno_location() #11
  store i32 %7325, ptr %7326, align 4, !tbaa !5
  %7327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7328 = load i32, ptr @test_count, align 4, !tbaa !5
  %7329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @s2n_strerror(i32 noundef %7330, ptr noundef @.str.4)
  %7332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call ptr @s2n_strerror_debug(i32 noundef %7333, ptr noundef @.str.4)
  %7335 = call ptr @__errno_location() #11
  %7336 = load i32, ptr %7335, align 4, !tbaa !5
  %7337 = call ptr @strerror(i32 noundef %7336) #10
  %7338 = call ptr @__errno_location() #11
  %7339 = load i32, ptr %7338, align 4, !tbaa !5
  %7340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7327, ptr noundef @.str.2, i32 noundef %7328, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 324, ptr noundef %7331, ptr noundef %7334, ptr noundef %7337, i32 noundef %7339) #10
  br label %7358

7341:                                             ; preds = %7319, %7312
  %7342 = load i32, ptr %166, align 4, !tbaa !5
  %7343 = call ptr @__errno_location() #11
  store i32 %7342, ptr %7343, align 4, !tbaa !5
  %7344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7345 = load i32, ptr @test_count, align 4, !tbaa !5
  %7346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7347 = load i32, ptr %7346, align 4, !tbaa !5
  %7348 = call ptr @s2n_strerror(i32 noundef %7347, ptr noundef @.str.4)
  %7349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7350 = load i32, ptr %7349, align 4, !tbaa !5
  %7351 = call ptr @s2n_strerror_debug(i32 noundef %7350, ptr noundef @.str.4)
  %7352 = call ptr @__errno_location() #11
  %7353 = load i32, ptr %7352, align 4, !tbaa !5
  %7354 = call ptr @strerror(i32 noundef %7353) #10
  %7355 = call ptr @__errno_location() #11
  %7356 = load i32, ptr %7355, align 4, !tbaa !5
  %7357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7344, ptr noundef @.str.5, i32 noundef %7345, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 324, ptr noundef %7348, ptr noundef %7351, ptr noundef %7354, i32 noundef %7356) #10
  br label %7358

7358:                                             ; preds = %7341, %7324
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #10
  br label %7359

7359:                                             ; preds = %7358
  br label %7360

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

7361:                                             ; No predecessors!
  br label %7362

7362:                                             ; preds = %7361
  br label %7363

7363:                                             ; preds = %7362, %7305
  br label %7364

7364:                                             ; preds = %7363
  br label %7365

7365:                                             ; preds = %7364
  br label %7366

7366:                                             ; preds = %7365
  %7367 = load i32, ptr @test_count, align 4, !tbaa !5
  %7368 = add nsw i32 %7367, 1
  store i32 %7368, ptr @test_count, align 4, !tbaa !5
  %7369 = call i32 @s2n_stuffer_write_uint8(ptr noundef %165, i8 noundef zeroext 13)
  %7370 = icmp eq i32 %7369, -1
  br i1 %7370, label %7371, label %7424

7371:                                             ; preds = %7366
  br label %7372

7372:                                             ; preds = %7371
  br label %7373

7373:                                             ; preds = %7372
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  %7374 = call ptr @__errno_location() #11
  %7375 = load i32, ptr %7374, align 4, !tbaa !5
  store i32 %7375, ptr %167, align 4, !tbaa !5
  %7376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7377 = call i32 @s2n_print_stacktrace(ptr noundef %7376)
  %7378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7379 = trunc i8 %7378 to i1
  br i1 %7379, label %7380, label %7402

7380:                                             ; preds = %7373
  %7381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7382 = call i32 @fileno(ptr noundef %7381) #10
  %7383 = call i32 @isatty(i32 noundef %7382) #10
  %7384 = icmp ne i32 %7383, 0
  br i1 %7384, label %7385, label %7402

7385:                                             ; preds = %7380
  %7386 = load i32, ptr %167, align 4, !tbaa !5
  %7387 = call ptr @__errno_location() #11
  store i32 %7386, ptr %7387, align 4, !tbaa !5
  %7388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7389 = load i32, ptr @test_count, align 4, !tbaa !5
  %7390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7391 = load i32, ptr %7390, align 4, !tbaa !5
  %7392 = call ptr @s2n_strerror(i32 noundef %7391, ptr noundef @.str.4)
  %7393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7394 = load i32, ptr %7393, align 4, !tbaa !5
  %7395 = call ptr @s2n_strerror_debug(i32 noundef %7394, ptr noundef @.str.4)
  %7396 = call ptr @__errno_location() #11
  %7397 = load i32, ptr %7396, align 4, !tbaa !5
  %7398 = call ptr @strerror(i32 noundef %7397) #10
  %7399 = call ptr @__errno_location() #11
  %7400 = load i32, ptr %7399, align 4, !tbaa !5
  %7401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7388, ptr noundef @.str.2, i32 noundef %7389, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 326, ptr noundef %7392, ptr noundef %7395, ptr noundef %7398, i32 noundef %7400) #10
  br label %7419

7402:                                             ; preds = %7380, %7373
  %7403 = load i32, ptr %167, align 4, !tbaa !5
  %7404 = call ptr @__errno_location() #11
  store i32 %7403, ptr %7404, align 4, !tbaa !5
  %7405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7406 = load i32, ptr @test_count, align 4, !tbaa !5
  %7407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7408 = load i32, ptr %7407, align 4, !tbaa !5
  %7409 = call ptr @s2n_strerror(i32 noundef %7408, ptr noundef @.str.4)
  %7410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7411 = load i32, ptr %7410, align 4, !tbaa !5
  %7412 = call ptr @s2n_strerror_debug(i32 noundef %7411, ptr noundef @.str.4)
  %7413 = call ptr @__errno_location() #11
  %7414 = load i32, ptr %7413, align 4, !tbaa !5
  %7415 = call ptr @strerror(i32 noundef %7414) #10
  %7416 = call ptr @__errno_location() #11
  %7417 = load i32, ptr %7416, align 4, !tbaa !5
  %7418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7405, ptr noundef @.str.5, i32 noundef %7406, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 326, ptr noundef %7409, ptr noundef %7412, ptr noundef %7415, i32 noundef %7417) #10
  br label %7419

7419:                                             ; preds = %7402, %7385
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  br label %7420

7420:                                             ; preds = %7419
  br label %7421

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

7422:                                             ; No predecessors!
  br label %7423

7423:                                             ; preds = %7422
  br label %7424

7424:                                             ; preds = %7423, %7366
  br label %7425

7425:                                             ; preds = %7424
  br label %7426

7426:                                             ; preds = %7425
  br label %7427

7427:                                             ; preds = %7426
  br label %7428

7428:                                             ; preds = %7427
  br label %7429

7429:                                             ; preds = %7428
  %7430 = load i32, ptr @test_count, align 4, !tbaa !5
  %7431 = add nsw i32 %7430, 1
  store i32 %7431, ptr @test_count, align 4, !tbaa !5
  %7432 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %7433 = load ptr, ptr %162, align 8, !tbaa !9
  %7434 = call i32 %7432(ptr noundef %7433, ptr noundef %165)
  %7435 = icmp eq i32 %7434, -1
  br i1 %7435, label %7489, label %7436

7436:                                             ; preds = %7429
  br label %7437

7437:                                             ; preds = %7436
  br label %7438

7438:                                             ; preds = %7437
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #10
  %7439 = call ptr @__errno_location() #11
  %7440 = load i32, ptr %7439, align 4, !tbaa !5
  store i32 %7440, ptr %168, align 4, !tbaa !5
  %7441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7442 = call i32 @s2n_print_stacktrace(ptr noundef %7441)
  %7443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7444 = trunc i8 %7443 to i1
  br i1 %7444, label %7445, label %7467

7445:                                             ; preds = %7438
  %7446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7447 = call i32 @fileno(ptr noundef %7446) #10
  %7448 = call i32 @isatty(i32 noundef %7447) #10
  %7449 = icmp ne i32 %7448, 0
  br i1 %7449, label %7450, label %7467

7450:                                             ; preds = %7445
  %7451 = load i32, ptr %168, align 4, !tbaa !5
  %7452 = call ptr @__errno_location() #11
  store i32 %7451, ptr %7452, align 4, !tbaa !5
  %7453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7454 = load i32, ptr @test_count, align 4, !tbaa !5
  %7455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7456 = load i32, ptr %7455, align 4, !tbaa !5
  %7457 = call ptr @s2n_strerror(i32 noundef %7456, ptr noundef @.str.4)
  %7458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7459 = load i32, ptr %7458, align 4, !tbaa !5
  %7460 = call ptr @s2n_strerror_debug(i32 noundef %7459, ptr noundef @.str.4)
  %7461 = call ptr @__errno_location() #11
  %7462 = load i32, ptr %7461, align 4, !tbaa !5
  %7463 = call ptr @strerror(i32 noundef %7462) #10
  %7464 = call ptr @__errno_location() #11
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  %7466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7453, ptr noundef @.str.2, i32 noundef %7454, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7457, ptr noundef %7460, ptr noundef %7463, i32 noundef %7465) #10
  br label %7484

7467:                                             ; preds = %7445, %7438
  %7468 = load i32, ptr %168, align 4, !tbaa !5
  %7469 = call ptr @__errno_location() #11
  store i32 %7468, ptr %7469, align 4, !tbaa !5
  %7470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7471 = load i32, ptr @test_count, align 4, !tbaa !5
  %7472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7473 = load i32, ptr %7472, align 4, !tbaa !5
  %7474 = call ptr @s2n_strerror(i32 noundef %7473, ptr noundef @.str.4)
  %7475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7476 = load i32, ptr %7475, align 4, !tbaa !5
  %7477 = call ptr @s2n_strerror_debug(i32 noundef %7476, ptr noundef @.str.4)
  %7478 = call ptr @__errno_location() #11
  %7479 = load i32, ptr %7478, align 4, !tbaa !5
  %7480 = call ptr @strerror(i32 noundef %7479) #10
  %7481 = call ptr @__errno_location() #11
  %7482 = load i32, ptr %7481, align 4, !tbaa !5
  %7483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7470, ptr noundef @.str.5, i32 noundef %7471, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7474, ptr noundef %7477, ptr noundef %7480, i32 noundef %7482) #10
  br label %7484

7484:                                             ; preds = %7467, %7450
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #10
  br label %7485

7485:                                             ; preds = %7484
  br label %7486

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

7487:                                             ; No predecessors!
  br label %7488

7488:                                             ; preds = %7487
  br label %7489

7489:                                             ; preds = %7488, %7429
  br label %7490

7490:                                             ; preds = %7489
  br label %7491

7491:                                             ; preds = %7490
  br label %7492

7492:                                             ; preds = %7491
  %7493 = load i32, ptr @test_count, align 4, !tbaa !5
  %7494 = add nsw i32 %7493, 1
  store i32 %7494, ptr @test_count, align 4, !tbaa !5
  %7495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7496 = load i32, ptr %7495, align 4, !tbaa !5
  %7497 = icmp eq i32 %7496, 335544322
  br i1 %7497, label %7551, label %7498

7498:                                             ; preds = %7492
  br label %7499

7499:                                             ; preds = %7498
  br label %7500

7500:                                             ; preds = %7499
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %7501 = call ptr @__errno_location() #11
  %7502 = load i32, ptr %7501, align 4, !tbaa !5
  store i32 %7502, ptr %169, align 4, !tbaa !5
  %7503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7504 = call i32 @s2n_print_stacktrace(ptr noundef %7503)
  %7505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7506 = trunc i8 %7505 to i1
  br i1 %7506, label %7507, label %7529

7507:                                             ; preds = %7500
  %7508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7509 = call i32 @fileno(ptr noundef %7508) #10
  %7510 = call i32 @isatty(i32 noundef %7509) #10
  %7511 = icmp ne i32 %7510, 0
  br i1 %7511, label %7512, label %7529

7512:                                             ; preds = %7507
  %7513 = load i32, ptr %169, align 4, !tbaa !5
  %7514 = call ptr @__errno_location() #11
  store i32 %7513, ptr %7514, align 4, !tbaa !5
  %7515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7516 = load i32, ptr @test_count, align 4, !tbaa !5
  %7517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7518 = load i32, ptr %7517, align 4, !tbaa !5
  %7519 = call ptr @s2n_strerror(i32 noundef %7518, ptr noundef @.str.4)
  %7520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call ptr @s2n_strerror_debug(i32 noundef %7521, ptr noundef @.str.4)
  %7523 = call ptr @__errno_location() #11
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call ptr @strerror(i32 noundef %7524) #10
  %7526 = call ptr @__errno_location() #11
  %7527 = load i32, ptr %7526, align 4, !tbaa !5
  %7528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7515, ptr noundef @.str.2, i32 noundef %7516, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7519, ptr noundef %7522, ptr noundef %7525, i32 noundef %7527) #10
  br label %7546

7529:                                             ; preds = %7507, %7500
  %7530 = load i32, ptr %169, align 4, !tbaa !5
  %7531 = call ptr @__errno_location() #11
  store i32 %7530, ptr %7531, align 4, !tbaa !5
  %7532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7533 = load i32, ptr @test_count, align 4, !tbaa !5
  %7534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7535 = load i32, ptr %7534, align 4, !tbaa !5
  %7536 = call ptr @s2n_strerror(i32 noundef %7535, ptr noundef @.str.4)
  %7537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7538 = load i32, ptr %7537, align 4, !tbaa !5
  %7539 = call ptr @s2n_strerror_debug(i32 noundef %7538, ptr noundef @.str.4)
  %7540 = call ptr @__errno_location() #11
  %7541 = load i32, ptr %7540, align 4, !tbaa !5
  %7542 = call ptr @strerror(i32 noundef %7541) #10
  %7543 = call ptr @__errno_location() #11
  %7544 = load i32, ptr %7543, align 4, !tbaa !5
  %7545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7532, ptr noundef @.str.5, i32 noundef %7533, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7536, ptr noundef %7539, ptr noundef %7542, i32 noundef %7544) #10
  br label %7546

7546:                                             ; preds = %7529, %7512
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %7547

7547:                                             ; preds = %7546
  br label %7548

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

7549:                                             ; No predecessors!
  br label %7550

7550:                                             ; preds = %7549
  br label %7551

7551:                                             ; preds = %7550, %7492
  br label %7552

7552:                                             ; preds = %7551
  br label %7553

7553:                                             ; preds = %7552
  br label %7554

7554:                                             ; preds = %7553
  %7555 = load i32, ptr @test_count, align 4, !tbaa !5
  %7556 = add nsw i32 %7555, 1
  store i32 %7556, ptr @test_count, align 4, !tbaa !5
  %7557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7558 = load i32, ptr %7557, align 4, !tbaa !5
  %7559 = call ptr @s2n_strerror_debug(i32 noundef %7558, ptr noundef @.str.4)
  %7560 = icmp eq ptr %7559, null
  br i1 %7560, label %7561, label %7614

7561:                                             ; preds = %7554
  br label %7562

7562:                                             ; preds = %7561
  br label %7563

7563:                                             ; preds = %7562
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #10
  %7564 = call ptr @__errno_location() #11
  %7565 = load i32, ptr %7564, align 4, !tbaa !5
  store i32 %7565, ptr %170, align 4, !tbaa !5
  %7566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7567 = call i32 @s2n_print_stacktrace(ptr noundef %7566)
  %7568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7569 = trunc i8 %7568 to i1
  br i1 %7569, label %7570, label %7592

7570:                                             ; preds = %7563
  %7571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7572 = call i32 @fileno(ptr noundef %7571) #10
  %7573 = call i32 @isatty(i32 noundef %7572) #10
  %7574 = icmp ne i32 %7573, 0
  br i1 %7574, label %7575, label %7592

7575:                                             ; preds = %7570
  %7576 = load i32, ptr %170, align 4, !tbaa !5
  %7577 = call ptr @__errno_location() #11
  store i32 %7576, ptr %7577, align 4, !tbaa !5
  %7578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7579 = load i32, ptr @test_count, align 4, !tbaa !5
  %7580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7581 = load i32, ptr %7580, align 4, !tbaa !5
  %7582 = call ptr @s2n_strerror(i32 noundef %7581, ptr noundef @.str.4)
  %7583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7584 = load i32, ptr %7583, align 4, !tbaa !5
  %7585 = call ptr @s2n_strerror_debug(i32 noundef %7584, ptr noundef @.str.4)
  %7586 = call ptr @__errno_location() #11
  %7587 = load i32, ptr %7586, align 4, !tbaa !5
  %7588 = call ptr @strerror(i32 noundef %7587) #10
  %7589 = call ptr @__errno_location() #11
  %7590 = load i32, ptr %7589, align 4, !tbaa !5
  %7591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7578, ptr noundef @.str.2, i32 noundef %7579, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7582, ptr noundef %7585, ptr noundef %7588, i32 noundef %7590) #10
  br label %7609

7592:                                             ; preds = %7570, %7563
  %7593 = load i32, ptr %170, align 4, !tbaa !5
  %7594 = call ptr @__errno_location() #11
  store i32 %7593, ptr %7594, align 4, !tbaa !5
  %7595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7596 = load i32, ptr @test_count, align 4, !tbaa !5
  %7597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7598 = load i32, ptr %7597, align 4, !tbaa !5
  %7599 = call ptr @s2n_strerror(i32 noundef %7598, ptr noundef @.str.4)
  %7600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7601 = load i32, ptr %7600, align 4, !tbaa !5
  %7602 = call ptr @s2n_strerror_debug(i32 noundef %7601, ptr noundef @.str.4)
  %7603 = call ptr @__errno_location() #11
  %7604 = load i32, ptr %7603, align 4, !tbaa !5
  %7605 = call ptr @strerror(i32 noundef %7604) #10
  %7606 = call ptr @__errno_location() #11
  %7607 = load i32, ptr %7606, align 4, !tbaa !5
  %7608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7595, ptr noundef @.str.5, i32 noundef %7596, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7599, ptr noundef %7602, ptr noundef %7605, i32 noundef %7607) #10
  br label %7609

7609:                                             ; preds = %7592, %7575
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #10
  br label %7610

7610:                                             ; preds = %7609
  br label %7611

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

7612:                                             ; No predecessors!
  br label %7613

7613:                                             ; preds = %7612
  br label %7614

7614:                                             ; preds = %7613, %7554
  br label %7615

7615:                                             ; preds = %7614
  br label %7616

7616:                                             ; preds = %7615
  br label %7617

7617:                                             ; preds = %7616
  br label %7618

7618:                                             ; preds = %7617
  br label %7619

7619:                                             ; preds = %7618
  %7620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7620, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7621 = call ptr @__errno_location() #11
  store i32 0, ptr %7621, align 4, !tbaa !5
  br label %7622

7622:                                             ; preds = %7619
  br label %7623

7623:                                             ; preds = %7622
  br label %7624

7624:                                             ; preds = %7623
  br label %7625

7625:                                             ; preds = %7624
  br label %7626

7626:                                             ; preds = %7625
  %7627 = load i32, ptr @test_count, align 4, !tbaa !5
  %7628 = add nsw i32 %7627, 1
  store i32 %7628, ptr @test_count, align 4, !tbaa !5
  %7629 = load ptr, ptr %162, align 8, !tbaa !9
  %7630 = getelementptr inbounds %struct.s2n_connection, ptr %7629, i32 0, i32 47
  %7631 = load i8, ptr %7630, align 1, !tbaa !59
  %7632 = zext i8 %7631 to i32
  %7633 = icmp eq i32 %7632, 70
  br i1 %7633, label %7687, label %7634

7634:                                             ; preds = %7626
  br label %7635

7635:                                             ; preds = %7634
  br label %7636

7636:                                             ; preds = %7635
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  %7637 = call ptr @__errno_location() #11
  %7638 = load i32, ptr %7637, align 4, !tbaa !5
  store i32 %7638, ptr %171, align 4, !tbaa !5
  %7639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7640 = call i32 @s2n_print_stacktrace(ptr noundef %7639)
  %7641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7642 = trunc i8 %7641 to i1
  br i1 %7642, label %7643, label %7665

7643:                                             ; preds = %7636
  %7644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7645 = call i32 @fileno(ptr noundef %7644) #10
  %7646 = call i32 @isatty(i32 noundef %7645) #10
  %7647 = icmp ne i32 %7646, 0
  br i1 %7647, label %7648, label %7665

7648:                                             ; preds = %7643
  %7649 = load i32, ptr %171, align 4, !tbaa !5
  %7650 = call ptr @__errno_location() #11
  store i32 %7649, ptr %7650, align 4, !tbaa !5
  %7651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7652 = load i32, ptr @test_count, align 4, !tbaa !5
  %7653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7654 = load i32, ptr %7653, align 4, !tbaa !5
  %7655 = call ptr @s2n_strerror(i32 noundef %7654, ptr noundef @.str.4)
  %7656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7657 = load i32, ptr %7656, align 4, !tbaa !5
  %7658 = call ptr @s2n_strerror_debug(i32 noundef %7657, ptr noundef @.str.4)
  %7659 = call ptr @__errno_location() #11
  %7660 = load i32, ptr %7659, align 4, !tbaa !5
  %7661 = call ptr @strerror(i32 noundef %7660) #10
  %7662 = call ptr @__errno_location() #11
  %7663 = load i32, ptr %7662, align 4, !tbaa !5
  %7664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7651, ptr noundef @.str.2, i32 noundef %7652, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 329, ptr noundef %7655, ptr noundef %7658, ptr noundef %7661, i32 noundef %7663) #10
  br label %7682

7665:                                             ; preds = %7643, %7636
  %7666 = load i32, ptr %171, align 4, !tbaa !5
  %7667 = call ptr @__errno_location() #11
  store i32 %7666, ptr %7667, align 4, !tbaa !5
  %7668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7669 = load i32, ptr @test_count, align 4, !tbaa !5
  %7670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7671 = load i32, ptr %7670, align 4, !tbaa !5
  %7672 = call ptr @s2n_strerror(i32 noundef %7671, ptr noundef @.str.4)
  %7673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7674 = load i32, ptr %7673, align 4, !tbaa !5
  %7675 = call ptr @s2n_strerror_debug(i32 noundef %7674, ptr noundef @.str.4)
  %7676 = call ptr @__errno_location() #11
  %7677 = load i32, ptr %7676, align 4, !tbaa !5
  %7678 = call ptr @strerror(i32 noundef %7677) #10
  %7679 = call ptr @__errno_location() #11
  %7680 = load i32, ptr %7679, align 4, !tbaa !5
  %7681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7668, ptr noundef @.str.5, i32 noundef %7669, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 329, ptr noundef %7672, ptr noundef %7675, ptr noundef %7678, i32 noundef %7680) #10
  br label %7682

7682:                                             ; preds = %7665, %7648
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  br label %7683

7683:                                             ; preds = %7682
  br label %7684

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

7685:                                             ; No predecessors!
  br label %7686

7686:                                             ; preds = %7685
  br label %7687

7687:                                             ; preds = %7686, %7626
  br label %7688

7688:                                             ; preds = %7687
  br label %7689

7689:                                             ; preds = %7688
  br label %7690

7690:                                             ; preds = %7689
  %7691 = load i32, ptr @test_count, align 4, !tbaa !5
  %7692 = add nsw i32 %7691, 1
  store i32 %7692, ptr @test_count, align 4, !tbaa !5
  %7693 = load ptr, ptr %162, align 8, !tbaa !9
  %7694 = call i32 @s2n_connection_free(ptr noundef %7693)
  %7695 = icmp eq i32 %7694, -1
  br i1 %7695, label %7696, label %7749

7696:                                             ; preds = %7690
  br label %7697

7697:                                             ; preds = %7696
  br label %7698

7698:                                             ; preds = %7697
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #10
  %7699 = call ptr @__errno_location() #11
  %7700 = load i32, ptr %7699, align 4, !tbaa !5
  store i32 %7700, ptr %172, align 4, !tbaa !5
  %7701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7702 = call i32 @s2n_print_stacktrace(ptr noundef %7701)
  %7703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7704 = trunc i8 %7703 to i1
  br i1 %7704, label %7705, label %7727

7705:                                             ; preds = %7698
  %7706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7707 = call i32 @fileno(ptr noundef %7706) #10
  %7708 = call i32 @isatty(i32 noundef %7707) #10
  %7709 = icmp ne i32 %7708, 0
  br i1 %7709, label %7710, label %7727

7710:                                             ; preds = %7705
  %7711 = load i32, ptr %172, align 4, !tbaa !5
  %7712 = call ptr @__errno_location() #11
  store i32 %7711, ptr %7712, align 4, !tbaa !5
  %7713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7714 = load i32, ptr @test_count, align 4, !tbaa !5
  %7715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7716 = load i32, ptr %7715, align 4, !tbaa !5
  %7717 = call ptr @s2n_strerror(i32 noundef %7716, ptr noundef @.str.4)
  %7718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7719 = load i32, ptr %7718, align 4, !tbaa !5
  %7720 = call ptr @s2n_strerror_debug(i32 noundef %7719, ptr noundef @.str.4)
  %7721 = call ptr @__errno_location() #11
  %7722 = load i32, ptr %7721, align 4, !tbaa !5
  %7723 = call ptr @strerror(i32 noundef %7722) #10
  %7724 = call ptr @__errno_location() #11
  %7725 = load i32, ptr %7724, align 4, !tbaa !5
  %7726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7713, ptr noundef @.str.2, i32 noundef %7714, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 331, ptr noundef %7717, ptr noundef %7720, ptr noundef %7723, i32 noundef %7725) #10
  br label %7744

7727:                                             ; preds = %7705, %7698
  %7728 = load i32, ptr %172, align 4, !tbaa !5
  %7729 = call ptr @__errno_location() #11
  store i32 %7728, ptr %7729, align 4, !tbaa !5
  %7730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7731 = load i32, ptr @test_count, align 4, !tbaa !5
  %7732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7733 = load i32, ptr %7732, align 4, !tbaa !5
  %7734 = call ptr @s2n_strerror(i32 noundef %7733, ptr noundef @.str.4)
  %7735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7736 = load i32, ptr %7735, align 4, !tbaa !5
  %7737 = call ptr @s2n_strerror_debug(i32 noundef %7736, ptr noundef @.str.4)
  %7738 = call ptr @__errno_location() #11
  %7739 = load i32, ptr %7738, align 4, !tbaa !5
  %7740 = call ptr @strerror(i32 noundef %7739) #10
  %7741 = call ptr @__errno_location() #11
  %7742 = load i32, ptr %7741, align 4, !tbaa !5
  %7743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7730, ptr noundef @.str.5, i32 noundef %7731, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 331, ptr noundef %7734, ptr noundef %7737, ptr noundef %7740, i32 noundef %7742) #10
  br label %7744

7744:                                             ; preds = %7727, %7710
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #10
  br label %7745

7745:                                             ; preds = %7744
  br label %7746

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

7747:                                             ; No predecessors!
  br label %7748

7748:                                             ; preds = %7747
  br label %7749

7749:                                             ; preds = %7748, %7690
  br label %7750

7750:                                             ; preds = %7749
  br label %7751

7751:                                             ; preds = %7750
  br label %7752

7752:                                             ; preds = %7751
  %7753 = load i32, ptr @test_count, align 4, !tbaa !5
  %7754 = add nsw i32 %7753, 1
  store i32 %7754, ptr @test_count, align 4, !tbaa !5
  %7755 = call i32 @s2n_stuffer_free(ptr noundef %165)
  %7756 = icmp eq i32 %7755, -1
  br i1 %7756, label %7757, label %7810

7757:                                             ; preds = %7752
  br label %7758

7758:                                             ; preds = %7757
  br label %7759

7759:                                             ; preds = %7758
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #10
  %7760 = call ptr @__errno_location() #11
  %7761 = load i32, ptr %7760, align 4, !tbaa !5
  store i32 %7761, ptr %173, align 4, !tbaa !5
  %7762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7763 = call i32 @s2n_print_stacktrace(ptr noundef %7762)
  %7764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7765 = trunc i8 %7764 to i1
  br i1 %7765, label %7766, label %7788

7766:                                             ; preds = %7759
  %7767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7768 = call i32 @fileno(ptr noundef %7767) #10
  %7769 = call i32 @isatty(i32 noundef %7768) #10
  %7770 = icmp ne i32 %7769, 0
  br i1 %7770, label %7771, label %7788

7771:                                             ; preds = %7766
  %7772 = load i32, ptr %173, align 4, !tbaa !5
  %7773 = call ptr @__errno_location() #11
  store i32 %7772, ptr %7773, align 4, !tbaa !5
  %7774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7775 = load i32, ptr @test_count, align 4, !tbaa !5
  %7776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7777 = load i32, ptr %7776, align 4, !tbaa !5
  %7778 = call ptr @s2n_strerror(i32 noundef %7777, ptr noundef @.str.4)
  %7779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7780 = load i32, ptr %7779, align 4, !tbaa !5
  %7781 = call ptr @s2n_strerror_debug(i32 noundef %7780, ptr noundef @.str.4)
  %7782 = call ptr @__errno_location() #11
  %7783 = load i32, ptr %7782, align 4, !tbaa !5
  %7784 = call ptr @strerror(i32 noundef %7783) #10
  %7785 = call ptr @__errno_location() #11
  %7786 = load i32, ptr %7785, align 4, !tbaa !5
  %7787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7774, ptr noundef @.str.2, i32 noundef %7775, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 332, ptr noundef %7778, ptr noundef %7781, ptr noundef %7784, i32 noundef %7786) #10
  br label %7805

7788:                                             ; preds = %7766, %7759
  %7789 = load i32, ptr %173, 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.5, i32 noundef %7792, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 332, ptr noundef %7795, ptr noundef %7798, ptr noundef %7801, i32 noundef %7803) #10
  br label %7805

7805:                                             ; preds = %7788, %7771
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #10
  br label %7806

7806:                                             ; preds = %7805
  br label %7807

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

7808:                                             ; No predecessors!
  br label %7809

7809:                                             ; preds = %7808
  br label %7810

7810:                                             ; preds = %7809, %7752
  br label %7811

7811:                                             ; preds = %7810
  br label %7812

7812:                                             ; preds = %7811
  call void @llvm.lifetime.end.p0(i64 40, ptr %165) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #10
  store ptr null, ptr %174, align 8, !tbaa !9
  br label %7813

7813:                                             ; preds = %7812
  %7814 = load i32, ptr @test_count, align 4, !tbaa !5
  %7815 = add nsw i32 %7814, 1
  store i32 %7815, ptr @test_count, align 4, !tbaa !5
  %7816 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7816, ptr %174, align 8, !tbaa !9
  %7817 = icmp eq ptr %7816, null
  br i1 %7817, label %7818, label %7871

7818:                                             ; preds = %7813
  br label %7819

7819:                                             ; preds = %7818
  br label %7820

7820:                                             ; preds = %7819
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %7821 = call ptr @__errno_location() #11
  %7822 = load i32, ptr %7821, align 4, !tbaa !5
  store i32 %7822, ptr %175, align 4, !tbaa !5
  %7823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7824 = call i32 @s2n_print_stacktrace(ptr noundef %7823)
  %7825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7826 = trunc i8 %7825 to i1
  br i1 %7826, label %7827, label %7849

7827:                                             ; preds = %7820
  %7828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7829 = call i32 @fileno(ptr noundef %7828) #10
  %7830 = call i32 @isatty(i32 noundef %7829) #10
  %7831 = icmp ne i32 %7830, 0
  br i1 %7831, label %7832, label %7849

7832:                                             ; preds = %7827
  %7833 = load i32, ptr %175, align 4, !tbaa !5
  %7834 = call ptr @__errno_location() #11
  store i32 %7833, ptr %7834, align 4, !tbaa !5
  %7835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7836 = load i32, ptr @test_count, align 4, !tbaa !5
  %7837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7838 = load i32, ptr %7837, align 4, !tbaa !5
  %7839 = call ptr @s2n_strerror(i32 noundef %7838, ptr noundef @.str.4)
  %7840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7841 = load i32, ptr %7840, align 4, !tbaa !5
  %7842 = call ptr @s2n_strerror_debug(i32 noundef %7841, ptr noundef @.str.4)
  %7843 = call ptr @__errno_location() #11
  %7844 = load i32, ptr %7843, align 4, !tbaa !5
  %7845 = call ptr @strerror(i32 noundef %7844) #10
  %7846 = call ptr @__errno_location() #11
  %7847 = load i32, ptr %7846, align 4, !tbaa !5
  %7848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7835, ptr noundef @.str.2, i32 noundef %7836, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 338, ptr noundef %7839, ptr noundef %7842, ptr noundef %7845, i32 noundef %7847) #10
  br label %7866

7849:                                             ; preds = %7827, %7820
  %7850 = load i32, ptr %175, align 4, !tbaa !5
  %7851 = call ptr @__errno_location() #11
  store i32 %7850, ptr %7851, align 4, !tbaa !5
  %7852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7853 = load i32, ptr @test_count, align 4, !tbaa !5
  %7854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7855 = load i32, ptr %7854, align 4, !tbaa !5
  %7856 = call ptr @s2n_strerror(i32 noundef %7855, ptr noundef @.str.4)
  %7857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7858 = load i32, ptr %7857, align 4, !tbaa !5
  %7859 = call ptr @s2n_strerror_debug(i32 noundef %7858, ptr noundef @.str.4)
  %7860 = call ptr @__errno_location() #11
  %7861 = load i32, ptr %7860, align 4, !tbaa !5
  %7862 = call ptr @strerror(i32 noundef %7861) #10
  %7863 = call ptr @__errno_location() #11
  %7864 = load i32, ptr %7863, align 4, !tbaa !5
  %7865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7852, ptr noundef @.str.5, i32 noundef %7853, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 338, ptr noundef %7856, ptr noundef %7859, ptr noundef %7862, i32 noundef %7864) #10
  br label %7866

7866:                                             ; preds = %7849, %7832
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %7867

7867:                                             ; preds = %7866
  br label %7868

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

7869:                                             ; No predecessors!
  br label %7870

7870:                                             ; preds = %7869
  br label %7871

7871:                                             ; preds = %7870, %7813
  br label %7872

7872:                                             ; preds = %7871
  br label %7873

7873:                                             ; preds = %7872
  br label %7874

7874:                                             ; preds = %7873
  %7875 = load i32, ptr @test_count, align 4, !tbaa !5
  %7876 = add nsw i32 %7875, 1
  store i32 %7876, ptr @test_count, align 4, !tbaa !5
  %7877 = load ptr, ptr %174, align 8, !tbaa !9
  %7878 = load ptr, ptr %11, align 8, !tbaa !9
  %7879 = call i32 @s2n_connection_set_config(ptr noundef %7877, ptr noundef %7878)
  %7880 = icmp eq i32 %7879, -1
  br i1 %7880, label %7881, label %7934

7881:                                             ; preds = %7874
  br label %7882

7882:                                             ; preds = %7881
  br label %7883

7883:                                             ; preds = %7882
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #10
  %7884 = call ptr @__errno_location() #11
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  store i32 %7885, ptr %176, align 4, !tbaa !5
  %7886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7887 = call i32 @s2n_print_stacktrace(ptr noundef %7886)
  %7888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7889 = trunc i8 %7888 to i1
  br i1 %7889, label %7890, label %7912

7890:                                             ; preds = %7883
  %7891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7892 = call i32 @fileno(ptr noundef %7891) #10
  %7893 = call i32 @isatty(i32 noundef %7892) #10
  %7894 = icmp ne i32 %7893, 0
  br i1 %7894, label %7895, label %7912

7895:                                             ; preds = %7890
  %7896 = load i32, ptr %176, align 4, !tbaa !5
  %7897 = call ptr @__errno_location() #11
  store i32 %7896, ptr %7897, align 4, !tbaa !5
  %7898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7899 = load i32, ptr @test_count, align 4, !tbaa !5
  %7900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7901 = load i32, ptr %7900, align 4, !tbaa !5
  %7902 = call ptr @s2n_strerror(i32 noundef %7901, ptr noundef @.str.4)
  %7903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7904 = load i32, ptr %7903, align 4, !tbaa !5
  %7905 = call ptr @s2n_strerror_debug(i32 noundef %7904, ptr noundef @.str.4)
  %7906 = call ptr @__errno_location() #11
  %7907 = load i32, ptr %7906, align 4, !tbaa !5
  %7908 = call ptr @strerror(i32 noundef %7907) #10
  %7909 = call ptr @__errno_location() #11
  %7910 = load i32, ptr %7909, align 4, !tbaa !5
  %7911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7898, ptr noundef @.str.2, i32 noundef %7899, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7902, ptr noundef %7905, ptr noundef %7908, i32 noundef %7910) #10
  br label %7929

7912:                                             ; preds = %7890, %7883
  %7913 = load i32, ptr %176, align 4, !tbaa !5
  %7914 = call ptr @__errno_location() #11
  store i32 %7913, ptr %7914, align 4, !tbaa !5
  %7915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7916 = load i32, ptr @test_count, align 4, !tbaa !5
  %7917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7918 = load i32, ptr %7917, align 4, !tbaa !5
  %7919 = call ptr @s2n_strerror(i32 noundef %7918, ptr noundef @.str.4)
  %7920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7921 = load i32, ptr %7920, align 4, !tbaa !5
  %7922 = call ptr @s2n_strerror_debug(i32 noundef %7921, ptr noundef @.str.4)
  %7923 = call ptr @__errno_location() #11
  %7924 = load i32, ptr %7923, align 4, !tbaa !5
  %7925 = call ptr @strerror(i32 noundef %7924) #10
  %7926 = call ptr @__errno_location() #11
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  %7928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7915, ptr noundef @.str.5, i32 noundef %7916, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7919, ptr noundef %7922, ptr noundef %7925, i32 noundef %7927) #10
  br label %7929

7929:                                             ; preds = %7912, %7895
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #10
  br label %7930

7930:                                             ; preds = %7929
  br label %7931

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

7932:                                             ; No predecessors!
  br label %7933

7933:                                             ; preds = %7932
  br label %7934

7934:                                             ; preds = %7933, %7874
  br label %7935

7935:                                             ; preds = %7934
  br label %7936

7936:                                             ; preds = %7935
  call void @llvm.lifetime.start.p0(i64 40, ptr %177) #10
  call void @llvm.memset.p0.i64(ptr align 8 %177, i8 0, i64 40, i1 false)
  br label %7937

7937:                                             ; preds = %7936
  %7938 = load i32, ptr @test_count, align 4, !tbaa !5
  %7939 = add nsw i32 %7938, 1
  store i32 %7939, ptr @test_count, align 4, !tbaa !5
  %7940 = call i32 @s2n_stuffer_alloc(ptr noundef %177, i32 noundef 5)
  %7941 = icmp eq i32 %7940, -1
  br i1 %7941, label %7942, label %7995

7942:                                             ; preds = %7937
  br label %7943

7943:                                             ; preds = %7942
  br label %7944

7944:                                             ; preds = %7943
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %7945 = call ptr @__errno_location() #11
  %7946 = load i32, ptr %7945, align 4, !tbaa !5
  store i32 %7946, ptr %178, align 4, !tbaa !5
  %7947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7948 = call i32 @s2n_print_stacktrace(ptr noundef %7947)
  %7949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7950 = trunc i8 %7949 to i1
  br i1 %7950, label %7951, label %7973

7951:                                             ; preds = %7944
  %7952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7953 = call i32 @fileno(ptr noundef %7952) #10
  %7954 = call i32 @isatty(i32 noundef %7953) #10
  %7955 = icmp ne i32 %7954, 0
  br i1 %7955, label %7956, label %7973

7956:                                             ; preds = %7951
  %7957 = load i32, ptr %178, align 4, !tbaa !5
  %7958 = call ptr @__errno_location() #11
  store i32 %7957, ptr %7958, align 4, !tbaa !5
  %7959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7960 = load i32, ptr @test_count, align 4, !tbaa !5
  %7961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  %7963 = call ptr @s2n_strerror(i32 noundef %7962, ptr noundef @.str.4)
  %7964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  %7966 = call ptr @s2n_strerror_debug(i32 noundef %7965, ptr noundef @.str.4)
  %7967 = call ptr @__errno_location() #11
  %7968 = load i32, ptr %7967, align 4, !tbaa !5
  %7969 = call ptr @strerror(i32 noundef %7968) #10
  %7970 = call ptr @__errno_location() #11
  %7971 = load i32, ptr %7970, align 4, !tbaa !5
  %7972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7959, ptr noundef @.str.2, i32 noundef %7960, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7963, ptr noundef %7966, ptr noundef %7969, i32 noundef %7971) #10
  br label %7990

7973:                                             ; preds = %7951, %7944
  %7974 = load i32, ptr %178, align 4, !tbaa !5
  %7975 = call ptr @__errno_location() #11
  store i32 %7974, ptr %7975, align 4, !tbaa !5
  %7976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7977 = load i32, ptr @test_count, align 4, !tbaa !5
  %7978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7979 = load i32, ptr %7978, align 4, !tbaa !5
  %7980 = call ptr @s2n_strerror(i32 noundef %7979, ptr noundef @.str.4)
  %7981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7982 = load i32, ptr %7981, align 4, !tbaa !5
  %7983 = call ptr @s2n_strerror_debug(i32 noundef %7982, ptr noundef @.str.4)
  %7984 = call ptr @__errno_location() #11
  %7985 = load i32, ptr %7984, align 4, !tbaa !5
  %7986 = call ptr @strerror(i32 noundef %7985) #10
  %7987 = call ptr @__errno_location() #11
  %7988 = load i32, ptr %7987, align 4, !tbaa !5
  %7989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7976, ptr noundef @.str.5, i32 noundef %7977, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7980, ptr noundef %7983, ptr noundef %7986, i32 noundef %7988) #10
  br label %7990

7990:                                             ; preds = %7973, %7956
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %7991

7991:                                             ; preds = %7990
  br label %7992

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

7993:                                             ; No predecessors!
  br label %7994

7994:                                             ; preds = %7993
  br label %7995

7995:                                             ; preds = %7994, %7937
  br label %7996

7996:                                             ; preds = %7995
  br label %7997

7997:                                             ; preds = %7996
  br label %7998

7998:                                             ; preds = %7997
  %7999 = load i32, ptr @test_count, align 4, !tbaa !5
  %8000 = add nsw i32 %7999, 1
  store i32 %8000, ptr @test_count, align 4, !tbaa !5
  %8001 = call i32 @s2n_stuffer_write_uint8(ptr noundef %177, i8 noundef zeroext 2)
  %8002 = icmp eq i32 %8001, -1
  br i1 %8002, label %8003, label %8056

8003:                                             ; preds = %7998
  br label %8004

8004:                                             ; preds = %8003
  br label %8005

8005:                                             ; preds = %8004
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #10
  %8006 = call ptr @__errno_location() #11
  %8007 = load i32, ptr %8006, align 4, !tbaa !5
  store i32 %8007, ptr %179, align 4, !tbaa !5
  %8008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8009 = call i32 @s2n_print_stacktrace(ptr noundef %8008)
  %8010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8011 = trunc i8 %8010 to i1
  br i1 %8011, label %8012, label %8034

8012:                                             ; preds = %8005
  %8013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8014 = call i32 @fileno(ptr noundef %8013) #10
  %8015 = call i32 @isatty(i32 noundef %8014) #10
  %8016 = icmp ne i32 %8015, 0
  br i1 %8016, label %8017, label %8034

8017:                                             ; preds = %8012
  %8018 = load i32, ptr %179, align 4, !tbaa !5
  %8019 = call ptr @__errno_location() #11
  store i32 %8018, ptr %8019, align 4, !tbaa !5
  %8020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8021 = load i32, ptr @test_count, align 4, !tbaa !5
  %8022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8023 = load i32, ptr %8022, align 4, !tbaa !5
  %8024 = call ptr @s2n_strerror(i32 noundef %8023, ptr noundef @.str.4)
  %8025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8026 = load i32, ptr %8025, align 4, !tbaa !5
  %8027 = call ptr @s2n_strerror_debug(i32 noundef %8026, ptr noundef @.str.4)
  %8028 = call ptr @__errno_location() #11
  %8029 = load i32, ptr %8028, align 4, !tbaa !5
  %8030 = call ptr @strerror(i32 noundef %8029) #10
  %8031 = call ptr @__errno_location() #11
  %8032 = load i32, ptr %8031, align 4, !tbaa !5
  %8033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8020, ptr noundef @.str.2, i32 noundef %8021, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 344, ptr noundef %8024, ptr noundef %8027, ptr noundef %8030, i32 noundef %8032) #10
  br label %8051

8034:                                             ; preds = %8012, %8005
  %8035 = load i32, ptr %179, align 4, !tbaa !5
  %8036 = call ptr @__errno_location() #11
  store i32 %8035, ptr %8036, align 4, !tbaa !5
  %8037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8038 = load i32, ptr @test_count, align 4, !tbaa !5
  %8039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8040 = load i32, ptr %8039, align 4, !tbaa !5
  %8041 = call ptr @s2n_strerror(i32 noundef %8040, ptr noundef @.str.4)
  %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_debug(i32 noundef %8043, ptr noundef @.str.4)
  %8045 = call ptr @__errno_location() #11
  %8046 = load i32, ptr %8045, align 4, !tbaa !5
  %8047 = call ptr @strerror(i32 noundef %8046) #10
  %8048 = call ptr @__errno_location() #11
  %8049 = load i32, ptr %8048, align 4, !tbaa !5
  %8050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8037, ptr noundef @.str.5, i32 noundef %8038, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 344, ptr noundef %8041, ptr noundef %8044, ptr noundef %8047, i32 noundef %8049) #10
  br label %8051

8051:                                             ; preds = %8034, %8017
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #10
  br label %8052

8052:                                             ; preds = %8051
  br label %8053

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

8054:                                             ; No predecessors!
  br label %8055

8055:                                             ; preds = %8054
  br label %8056

8056:                                             ; preds = %8055, %7998
  br label %8057

8057:                                             ; preds = %8056
  br label %8058

8058:                                             ; preds = %8057
  br label %8059

8059:                                             ; preds = %8058
  %8060 = load i32, ptr @test_count, align 4, !tbaa !5
  %8061 = add nsw i32 %8060, 1
  store i32 %8061, ptr @test_count, align 4, !tbaa !5
  %8062 = call i32 @s2n_stuffer_write_uint16(ptr noundef %177, i16 noundef zeroext 770)
  %8063 = icmp eq i32 %8062, -1
  br i1 %8063, label %8064, label %8117

8064:                                             ; preds = %8059
  br label %8065

8065:                                             ; preds = %8064
  br label %8066

8066:                                             ; preds = %8065
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #10
  %8067 = call ptr @__errno_location() #11
  %8068 = load i32, ptr %8067, align 4, !tbaa !5
  store i32 %8068, ptr %180, align 4, !tbaa !5
  %8069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8070 = call i32 @s2n_print_stacktrace(ptr noundef %8069)
  %8071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8072 = trunc i8 %8071 to i1
  br i1 %8072, label %8073, label %8095

8073:                                             ; preds = %8066
  %8074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8075 = call i32 @fileno(ptr noundef %8074) #10
  %8076 = call i32 @isatty(i32 noundef %8075) #10
  %8077 = icmp ne i32 %8076, 0
  br i1 %8077, label %8078, label %8095

8078:                                             ; preds = %8073
  %8079 = load i32, ptr %180, align 4, !tbaa !5
  %8080 = call ptr @__errno_location() #11
  store i32 %8079, ptr %8080, align 4, !tbaa !5
  %8081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8082 = load i32, ptr @test_count, align 4, !tbaa !5
  %8083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8084 = load i32, ptr %8083, align 4, !tbaa !5
  %8085 = call ptr @s2n_strerror(i32 noundef %8084, ptr noundef @.str.4)
  %8086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8087 = load i32, ptr %8086, align 4, !tbaa !5
  %8088 = call ptr @s2n_strerror_debug(i32 noundef %8087, ptr noundef @.str.4)
  %8089 = call ptr @__errno_location() #11
  %8090 = load i32, ptr %8089, align 4, !tbaa !5
  %8091 = call ptr @strerror(i32 noundef %8090) #10
  %8092 = call ptr @__errno_location() #11
  %8093 = load i32, ptr %8092, align 4, !tbaa !5
  %8094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8081, ptr noundef @.str.2, i32 noundef %8082, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 345, ptr noundef %8085, ptr noundef %8088, ptr noundef %8091, i32 noundef %8093) #10
  br label %8112

8095:                                             ; preds = %8073, %8066
  %8096 = load i32, ptr %180, align 4, !tbaa !5
  %8097 = call ptr @__errno_location() #11
  store i32 %8096, ptr %8097, align 4, !tbaa !5
  %8098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8099 = load i32, ptr @test_count, align 4, !tbaa !5
  %8100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8101 = load i32, ptr %8100, align 4, !tbaa !5
  %8102 = call ptr @s2n_strerror(i32 noundef %8101, ptr noundef @.str.4)
  %8103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8104 = load i32, ptr %8103, align 4, !tbaa !5
  %8105 = call ptr @s2n_strerror_debug(i32 noundef %8104, ptr noundef @.str.4)
  %8106 = call ptr @__errno_location() #11
  %8107 = load i32, ptr %8106, align 4, !tbaa !5
  %8108 = call ptr @strerror(i32 noundef %8107) #10
  %8109 = call ptr @__errno_location() #11
  %8110 = load i32, ptr %8109, align 4, !tbaa !5
  %8111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8098, ptr noundef @.str.5, i32 noundef %8099, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 345, ptr noundef %8102, ptr noundef %8105, ptr noundef %8108, i32 noundef %8110) #10
  br label %8112

8112:                                             ; preds = %8095, %8078
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #10
  br label %8113

8113:                                             ; preds = %8112
  br label %8114

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

8115:                                             ; No predecessors!
  br label %8116

8116:                                             ; preds = %8115
  br label %8117

8117:                                             ; preds = %8116, %8059
  br label %8118

8118:                                             ; preds = %8117
  br label %8119

8119:                                             ; preds = %8118
  br label %8120

8120:                                             ; preds = %8119
  %8121 = load i32, ptr @test_count, align 4, !tbaa !5
  %8122 = add nsw i32 %8121, 1
  store i32 %8122, ptr @test_count, align 4, !tbaa !5
  %8123 = call i32 @s2n_stuffer_write_uint16(ptr noundef %177, i16 noundef zeroext 771)
  %8124 = icmp eq i32 %8123, -1
  br i1 %8124, label %8125, label %8178

8125:                                             ; preds = %8120
  br label %8126

8126:                                             ; preds = %8125
  br label %8127

8127:                                             ; preds = %8126
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #10
  %8128 = call ptr @__errno_location() #11
  %8129 = load i32, ptr %8128, align 4, !tbaa !5
  store i32 %8129, ptr %181, align 4, !tbaa !5
  %8130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8131 = call i32 @s2n_print_stacktrace(ptr noundef %8130)
  %8132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8133 = trunc i8 %8132 to i1
  br i1 %8133, label %8134, label %8156

8134:                                             ; preds = %8127
  %8135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8136 = call i32 @fileno(ptr noundef %8135) #10
  %8137 = call i32 @isatty(i32 noundef %8136) #10
  %8138 = icmp ne i32 %8137, 0
  br i1 %8138, label %8139, label %8156

8139:                                             ; preds = %8134
  %8140 = load i32, ptr %181, align 4, !tbaa !5
  %8141 = call ptr @__errno_location() #11
  store i32 %8140, ptr %8141, align 4, !tbaa !5
  %8142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8143 = load i32, ptr @test_count, align 4, !tbaa !5
  %8144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8145 = load i32, ptr %8144, align 4, !tbaa !5
  %8146 = call ptr @s2n_strerror(i32 noundef %8145, ptr noundef @.str.4)
  %8147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8148 = load i32, ptr %8147, align 4, !tbaa !5
  %8149 = call ptr @s2n_strerror_debug(i32 noundef %8148, ptr noundef @.str.4)
  %8150 = call ptr @__errno_location() #11
  %8151 = load i32, ptr %8150, align 4, !tbaa !5
  %8152 = call ptr @strerror(i32 noundef %8151) #10
  %8153 = call ptr @__errno_location() #11
  %8154 = load i32, ptr %8153, align 4, !tbaa !5
  %8155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8142, ptr noundef @.str.2, i32 noundef %8143, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 346, ptr noundef %8146, ptr noundef %8149, ptr noundef %8152, i32 noundef %8154) #10
  br label %8173

8156:                                             ; preds = %8134, %8127
  %8157 = load i32, ptr %181, align 4, !tbaa !5
  %8158 = call ptr @__errno_location() #11
  store i32 %8157, ptr %8158, align 4, !tbaa !5
  %8159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8160 = load i32, ptr @test_count, align 4, !tbaa !5
  %8161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8162 = load i32, ptr %8161, align 4, !tbaa !5
  %8163 = call ptr @s2n_strerror(i32 noundef %8162, ptr noundef @.str.4)
  %8164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8165 = load i32, ptr %8164, align 4, !tbaa !5
  %8166 = call ptr @s2n_strerror_debug(i32 noundef %8165, ptr noundef @.str.4)
  %8167 = call ptr @__errno_location() #11
  %8168 = load i32, ptr %8167, align 4, !tbaa !5
  %8169 = call ptr @strerror(i32 noundef %8168) #10
  %8170 = call ptr @__errno_location() #11
  %8171 = load i32, ptr %8170, align 4, !tbaa !5
  %8172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8159, ptr noundef @.str.5, i32 noundef %8160, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 346, ptr noundef %8163, ptr noundef %8166, ptr noundef %8169, i32 noundef %8171) #10
  br label %8173

8173:                                             ; preds = %8156, %8139
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #10
  br label %8174

8174:                                             ; preds = %8173
  br label %8175

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

8176:                                             ; No predecessors!
  br label %8177

8177:                                             ; preds = %8176
  br label %8178

8178:                                             ; preds = %8177, %8120
  br label %8179

8179:                                             ; preds = %8178
  br label %8180

8180:                                             ; preds = %8179
  br label %8181

8181:                                             ; preds = %8180
  br label %8182

8182:                                             ; preds = %8181
  br label %8183

8183:                                             ; preds = %8182
  %8184 = load i32, ptr @test_count, align 4, !tbaa !5
  %8185 = add nsw i32 %8184, 1
  store i32 %8185, ptr @test_count, align 4, !tbaa !5
  %8186 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %8187 = load ptr, ptr %174, align 8, !tbaa !9
  %8188 = call i32 %8186(ptr noundef %8187, ptr noundef %177)
  %8189 = icmp eq i32 %8188, -1
  br i1 %8189, label %8243, label %8190

8190:                                             ; preds = %8183
  br label %8191

8191:                                             ; preds = %8190
  br label %8192

8192:                                             ; preds = %8191
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #10
  %8193 = call ptr @__errno_location() #11
  %8194 = load i32, ptr %8193, align 4, !tbaa !5
  store i32 %8194, ptr %182, align 4, !tbaa !5
  %8195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8196 = call i32 @s2n_print_stacktrace(ptr noundef %8195)
  %8197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8198 = trunc i8 %8197 to i1
  br i1 %8198, label %8199, label %8221

8199:                                             ; preds = %8192
  %8200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8201 = call i32 @fileno(ptr noundef %8200) #10
  %8202 = call i32 @isatty(i32 noundef %8201) #10
  %8203 = icmp ne i32 %8202, 0
  br i1 %8203, label %8204, label %8221

8204:                                             ; preds = %8199
  %8205 = load i32, ptr %182, align 4, !tbaa !5
  %8206 = call ptr @__errno_location() #11
  store i32 %8205, ptr %8206, align 4, !tbaa !5
  %8207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8208 = load i32, ptr @test_count, align 4, !tbaa !5
  %8209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8210 = load i32, ptr %8209, align 4, !tbaa !5
  %8211 = call ptr @s2n_strerror(i32 noundef %8210, ptr noundef @.str.4)
  %8212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call ptr @s2n_strerror_debug(i32 noundef %8213, ptr noundef @.str.4)
  %8215 = call ptr @__errno_location() #11
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call ptr @strerror(i32 noundef %8216) #10
  %8218 = call ptr @__errno_location() #11
  %8219 = load i32, ptr %8218, align 4, !tbaa !5
  %8220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8207, ptr noundef @.str.2, i32 noundef %8208, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8211, ptr noundef %8214, ptr noundef %8217, i32 noundef %8219) #10
  br label %8238

8221:                                             ; preds = %8199, %8192
  %8222 = load i32, ptr %182, align 4, !tbaa !5
  %8223 = call ptr @__errno_location() #11
  store i32 %8222, ptr %8223, align 4, !tbaa !5
  %8224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8225 = load i32, ptr @test_count, align 4, !tbaa !5
  %8226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8227 = load i32, ptr %8226, align 4, !tbaa !5
  %8228 = call ptr @s2n_strerror(i32 noundef %8227, ptr noundef @.str.4)
  %8229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8230 = load i32, ptr %8229, align 4, !tbaa !5
  %8231 = call ptr @s2n_strerror_debug(i32 noundef %8230, ptr noundef @.str.4)
  %8232 = call ptr @__errno_location() #11
  %8233 = load i32, ptr %8232, align 4, !tbaa !5
  %8234 = call ptr @strerror(i32 noundef %8233) #10
  %8235 = call ptr @__errno_location() #11
  %8236 = load i32, ptr %8235, align 4, !tbaa !5
  %8237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8224, ptr noundef @.str.5, i32 noundef %8225, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8228, ptr noundef %8231, ptr noundef %8234, i32 noundef %8236) #10
  br label %8238

8238:                                             ; preds = %8221, %8204
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #10
  br label %8239

8239:                                             ; preds = %8238
  br label %8240

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

8241:                                             ; No predecessors!
  br label %8242

8242:                                             ; preds = %8241
  br label %8243

8243:                                             ; preds = %8242, %8183
  br label %8244

8244:                                             ; preds = %8243
  br label %8245

8245:                                             ; preds = %8244
  br label %8246

8246:                                             ; preds = %8245
  %8247 = load i32, ptr @test_count, align 4, !tbaa !5
  %8248 = add nsw i32 %8247, 1
  store i32 %8248, 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 = icmp eq i32 %8250, 335544322
  br i1 %8251, label %8305, label %8252

8252:                                             ; preds = %8246
  br label %8253

8253:                                             ; preds = %8252
  br label %8254

8254:                                             ; preds = %8253
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %8255 = call ptr @__errno_location() #11
  %8256 = load i32, ptr %8255, align 4, !tbaa !5
  store i32 %8256, ptr %183, align 4, !tbaa !5
  %8257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8258 = call i32 @s2n_print_stacktrace(ptr noundef %8257)
  %8259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8260 = trunc i8 %8259 to i1
  br i1 %8260, label %8261, label %8283

8261:                                             ; preds = %8254
  %8262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8263 = call i32 @fileno(ptr noundef %8262) #10
  %8264 = call i32 @isatty(i32 noundef %8263) #10
  %8265 = icmp ne i32 %8264, 0
  br i1 %8265, label %8266, label %8283

8266:                                             ; preds = %8261
  %8267 = load i32, ptr %183, align 4, !tbaa !5
  %8268 = call ptr @__errno_location() #11
  store i32 %8267, ptr %8268, align 4, !tbaa !5
  %8269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8270 = load i32, ptr @test_count, align 4, !tbaa !5
  %8271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8272 = load i32, ptr %8271, align 4, !tbaa !5
  %8273 = call ptr @s2n_strerror(i32 noundef %8272, ptr noundef @.str.4)
  %8274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8275 = load i32, ptr %8274, align 4, !tbaa !5
  %8276 = call ptr @s2n_strerror_debug(i32 noundef %8275, ptr noundef @.str.4)
  %8277 = call ptr @__errno_location() #11
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call ptr @strerror(i32 noundef %8278) #10
  %8280 = call ptr @__errno_location() #11
  %8281 = load i32, ptr %8280, align 4, !tbaa !5
  %8282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8269, ptr noundef @.str.2, i32 noundef %8270, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8273, ptr noundef %8276, ptr noundef %8279, i32 noundef %8281) #10
  br label %8300

8283:                                             ; preds = %8261, %8254
  %8284 = load i32, ptr %183, align 4, !tbaa !5
  %8285 = call ptr @__errno_location() #11
  store i32 %8284, ptr %8285, align 4, !tbaa !5
  %8286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8287 = load i32, ptr @test_count, align 4, !tbaa !5
  %8288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8289 = load i32, ptr %8288, align 4, !tbaa !5
  %8290 = call ptr @s2n_strerror(i32 noundef %8289, ptr noundef @.str.4)
  %8291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8292 = load i32, ptr %8291, align 4, !tbaa !5
  %8293 = call ptr @s2n_strerror_debug(i32 noundef %8292, ptr noundef @.str.4)
  %8294 = call ptr @__errno_location() #11
  %8295 = load i32, ptr %8294, align 4, !tbaa !5
  %8296 = call ptr @strerror(i32 noundef %8295) #10
  %8297 = call ptr @__errno_location() #11
  %8298 = load i32, ptr %8297, align 4, !tbaa !5
  %8299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8286, ptr noundef @.str.5, i32 noundef %8287, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8290, ptr noundef %8293, ptr noundef %8296, i32 noundef %8298) #10
  br label %8300

8300:                                             ; preds = %8283, %8266
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %8301

8301:                                             ; preds = %8300
  br label %8302

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

8303:                                             ; No predecessors!
  br label %8304

8304:                                             ; preds = %8303
  br label %8305

8305:                                             ; preds = %8304, %8246
  br label %8306

8306:                                             ; preds = %8305
  br label %8307

8307:                                             ; preds = %8306
  br label %8308

8308:                                             ; preds = %8307
  %8309 = load i32, ptr @test_count, align 4, !tbaa !5
  %8310 = add nsw i32 %8309, 1
  store i32 %8310, ptr @test_count, align 4, !tbaa !5
  %8311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8312 = load i32, ptr %8311, align 4, !tbaa !5
  %8313 = call ptr @s2n_strerror_debug(i32 noundef %8312, ptr noundef @.str.4)
  %8314 = icmp eq ptr %8313, null
  br i1 %8314, label %8315, label %8368

8315:                                             ; preds = %8308
  br label %8316

8316:                                             ; preds = %8315
  br label %8317

8317:                                             ; preds = %8316
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #10
  %8318 = call ptr @__errno_location() #11
  %8319 = load i32, ptr %8318, align 4, !tbaa !5
  store i32 %8319, ptr %184, align 4, !tbaa !5
  %8320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8321 = call i32 @s2n_print_stacktrace(ptr noundef %8320)
  %8322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8323 = trunc i8 %8322 to i1
  br i1 %8323, label %8324, label %8346

8324:                                             ; preds = %8317
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = call i32 @fileno(ptr noundef %8325) #10
  %8327 = call i32 @isatty(i32 noundef %8326) #10
  %8328 = icmp ne i32 %8327, 0
  br i1 %8328, label %8329, label %8346

8329:                                             ; preds = %8324
  %8330 = load i32, ptr %184, align 4, !tbaa !5
  %8331 = call ptr @__errno_location() #11
  store i32 %8330, ptr %8331, align 4, !tbaa !5
  %8332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8333 = load i32, ptr @test_count, align 4, !tbaa !5
  %8334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8335 = load i32, ptr %8334, align 4, !tbaa !5
  %8336 = call ptr @s2n_strerror(i32 noundef %8335, ptr noundef @.str.4)
  %8337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8338 = load i32, ptr %8337, align 4, !tbaa !5
  %8339 = call ptr @s2n_strerror_debug(i32 noundef %8338, ptr noundef @.str.4)
  %8340 = call ptr @__errno_location() #11
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @strerror(i32 noundef %8341) #10
  %8343 = call ptr @__errno_location() #11
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8332, ptr noundef @.str.2, i32 noundef %8333, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8336, ptr noundef %8339, ptr noundef %8342, i32 noundef %8344) #10
  br label %8363

8346:                                             ; preds = %8324, %8317
  %8347 = load i32, ptr %184, align 4, !tbaa !5
  %8348 = call ptr @__errno_location() #11
  store i32 %8347, ptr %8348, align 4, !tbaa !5
  %8349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8350 = load i32, ptr @test_count, align 4, !tbaa !5
  %8351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8352 = load i32, ptr %8351, align 4, !tbaa !5
  %8353 = call ptr @s2n_strerror(i32 noundef %8352, ptr noundef @.str.4)
  %8354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8355 = load i32, ptr %8354, align 4, !tbaa !5
  %8356 = call ptr @s2n_strerror_debug(i32 noundef %8355, ptr noundef @.str.4)
  %8357 = call ptr @__errno_location() #11
  %8358 = load i32, ptr %8357, align 4, !tbaa !5
  %8359 = call ptr @strerror(i32 noundef %8358) #10
  %8360 = call ptr @__errno_location() #11
  %8361 = load i32, ptr %8360, align 4, !tbaa !5
  %8362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8349, ptr noundef @.str.5, i32 noundef %8350, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8353, ptr noundef %8356, ptr noundef %8359, i32 noundef %8361) #10
  br label %8363

8363:                                             ; preds = %8346, %8329
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #10
  br label %8364

8364:                                             ; preds = %8363
  br label %8365

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

8366:                                             ; No predecessors!
  br label %8367

8367:                                             ; preds = %8366
  br label %8368

8368:                                             ; preds = %8367, %8308
  br label %8369

8369:                                             ; preds = %8368
  br label %8370

8370:                                             ; preds = %8369
  br label %8371

8371:                                             ; preds = %8370
  br label %8372

8372:                                             ; preds = %8371
  br label %8373

8373:                                             ; preds = %8372
  %8374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8374, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8375 = call ptr @__errno_location() #11
  store i32 0, ptr %8375, align 4, !tbaa !5
  br label %8376

8376:                                             ; preds = %8373
  br label %8377

8377:                                             ; preds = %8376
  br label %8378

8378:                                             ; preds = %8377
  br label %8379

8379:                                             ; preds = %8378
  br label %8380

8380:                                             ; preds = %8379
  %8381 = load i32, ptr @test_count, align 4, !tbaa !5
  %8382 = add nsw i32 %8381, 1
  store i32 %8382, ptr @test_count, align 4, !tbaa !5
  %8383 = load ptr, ptr %174, align 8, !tbaa !9
  %8384 = getelementptr inbounds %struct.s2n_connection, ptr %8383, i32 0, i32 47
  %8385 = load i8, ptr %8384, align 1, !tbaa !59
  %8386 = zext i8 %8385 to i32
  %8387 = icmp eq i32 %8386, 70
  br i1 %8387, label %8441, label %8388

8388:                                             ; preds = %8380
  br label %8389

8389:                                             ; preds = %8388
  br label %8390

8390:                                             ; preds = %8389
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %8391 = call ptr @__errno_location() #11
  %8392 = load i32, ptr %8391, align 4, !tbaa !5
  store i32 %8392, ptr %185, align 4, !tbaa !5
  %8393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8394 = call i32 @s2n_print_stacktrace(ptr noundef %8393)
  %8395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8396 = trunc i8 %8395 to i1
  br i1 %8396, label %8397, label %8419

8397:                                             ; preds = %8390
  %8398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8399 = call i32 @fileno(ptr noundef %8398) #10
  %8400 = call i32 @isatty(i32 noundef %8399) #10
  %8401 = icmp ne i32 %8400, 0
  br i1 %8401, label %8402, label %8419

8402:                                             ; preds = %8397
  %8403 = load i32, ptr %185, align 4, !tbaa !5
  %8404 = call ptr @__errno_location() #11
  store i32 %8403, ptr %8404, align 4, !tbaa !5
  %8405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8406 = load i32, ptr @test_count, align 4, !tbaa !5
  %8407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call ptr @s2n_strerror(i32 noundef %8408, ptr noundef @.str.4)
  %8410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8411 = load i32, ptr %8410, align 4, !tbaa !5
  %8412 = call ptr @s2n_strerror_debug(i32 noundef %8411, ptr noundef @.str.4)
  %8413 = call ptr @__errno_location() #11
  %8414 = load i32, ptr %8413, align 4, !tbaa !5
  %8415 = call ptr @strerror(i32 noundef %8414) #10
  %8416 = call ptr @__errno_location() #11
  %8417 = load i32, ptr %8416, align 4, !tbaa !5
  %8418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8405, ptr noundef @.str.2, i32 noundef %8406, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 349, ptr noundef %8409, ptr noundef %8412, ptr noundef %8415, i32 noundef %8417) #10
  br label %8436

8419:                                             ; preds = %8397, %8390
  %8420 = load i32, ptr %185, align 4, !tbaa !5
  %8421 = call ptr @__errno_location() #11
  store i32 %8420, ptr %8421, align 4, !tbaa !5
  %8422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8423 = load i32, ptr @test_count, align 4, !tbaa !5
  %8424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  %8426 = call ptr @s2n_strerror(i32 noundef %8425, ptr noundef @.str.4)
  %8427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8428 = load i32, ptr %8427, align 4, !tbaa !5
  %8429 = call ptr @s2n_strerror_debug(i32 noundef %8428, ptr noundef @.str.4)
  %8430 = call ptr @__errno_location() #11
  %8431 = load i32, ptr %8430, align 4, !tbaa !5
  %8432 = call ptr @strerror(i32 noundef %8431) #10
  %8433 = call ptr @__errno_location() #11
  %8434 = load i32, ptr %8433, align 4, !tbaa !5
  %8435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8422, ptr noundef @.str.5, i32 noundef %8423, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 349, ptr noundef %8426, ptr noundef %8429, ptr noundef %8432, i32 noundef %8434) #10
  br label %8436

8436:                                             ; preds = %8419, %8402
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %8437

8437:                                             ; preds = %8436
  br label %8438

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

8439:                                             ; No predecessors!
  br label %8440

8440:                                             ; preds = %8439
  br label %8441

8441:                                             ; preds = %8440, %8380
  br label %8442

8442:                                             ; preds = %8441
  br label %8443

8443:                                             ; preds = %8442
  br label %8444

8444:                                             ; preds = %8443
  %8445 = load i32, ptr @test_count, align 4, !tbaa !5
  %8446 = add nsw i32 %8445, 1
  store i32 %8446, ptr @test_count, align 4, !tbaa !5
  %8447 = load ptr, ptr %174, align 8, !tbaa !9
  %8448 = call i32 @s2n_connection_free(ptr noundef %8447)
  %8449 = icmp eq i32 %8448, -1
  br i1 %8449, label %8450, label %8503

8450:                                             ; preds = %8444
  br label %8451

8451:                                             ; preds = %8450
  br label %8452

8452:                                             ; preds = %8451
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #10
  %8453 = call ptr @__errno_location() #11
  %8454 = load i32, ptr %8453, align 4, !tbaa !5
  store i32 %8454, ptr %186, align 4, !tbaa !5
  %8455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8456 = call i32 @s2n_print_stacktrace(ptr noundef %8455)
  %8457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8458 = trunc i8 %8457 to i1
  br i1 %8458, label %8459, label %8481

8459:                                             ; preds = %8452
  %8460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8461 = call i32 @fileno(ptr noundef %8460) #10
  %8462 = call i32 @isatty(i32 noundef %8461) #10
  %8463 = icmp ne i32 %8462, 0
  br i1 %8463, label %8464, label %8481

8464:                                             ; preds = %8459
  %8465 = load i32, ptr %186, align 4, !tbaa !5
  %8466 = call ptr @__errno_location() #11
  store i32 %8465, ptr %8466, align 4, !tbaa !5
  %8467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8468 = load i32, ptr @test_count, align 4, !tbaa !5
  %8469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8470 = load i32, ptr %8469, align 4, !tbaa !5
  %8471 = call ptr @s2n_strerror(i32 noundef %8470, ptr noundef @.str.4)
  %8472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8473 = load i32, ptr %8472, align 4, !tbaa !5
  %8474 = call ptr @s2n_strerror_debug(i32 noundef %8473, ptr noundef @.str.4)
  %8475 = call ptr @__errno_location() #11
  %8476 = load i32, ptr %8475, align 4, !tbaa !5
  %8477 = call ptr @strerror(i32 noundef %8476) #10
  %8478 = call ptr @__errno_location() #11
  %8479 = load i32, ptr %8478, align 4, !tbaa !5
  %8480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8467, ptr noundef @.str.2, i32 noundef %8468, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 351, ptr noundef %8471, ptr noundef %8474, ptr noundef %8477, i32 noundef %8479) #10
  br label %8498

8481:                                             ; preds = %8459, %8452
  %8482 = load i32, ptr %186, align 4, !tbaa !5
  %8483 = call ptr @__errno_location() #11
  store i32 %8482, ptr %8483, align 4, !tbaa !5
  %8484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8485 = load i32, ptr @test_count, align 4, !tbaa !5
  %8486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8487 = load i32, ptr %8486, align 4, !tbaa !5
  %8488 = call ptr @s2n_strerror(i32 noundef %8487, ptr noundef @.str.4)
  %8489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8490 = load i32, ptr %8489, align 4, !tbaa !5
  %8491 = call ptr @s2n_strerror_debug(i32 noundef %8490, ptr noundef @.str.4)
  %8492 = call ptr @__errno_location() #11
  %8493 = load i32, ptr %8492, align 4, !tbaa !5
  %8494 = call ptr @strerror(i32 noundef %8493) #10
  %8495 = call ptr @__errno_location() #11
  %8496 = load i32, ptr %8495, align 4, !tbaa !5
  %8497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8484, ptr noundef @.str.5, i32 noundef %8485, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 351, ptr noundef %8488, ptr noundef %8491, ptr noundef %8494, i32 noundef %8496) #10
  br label %8498

8498:                                             ; preds = %8481, %8464
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #10
  br label %8499

8499:                                             ; preds = %8498
  br label %8500

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

8501:                                             ; No predecessors!
  br label %8502

8502:                                             ; preds = %8501
  br label %8503

8503:                                             ; preds = %8502, %8444
  br label %8504

8504:                                             ; preds = %8503
  br label %8505

8505:                                             ; preds = %8504
  br label %8506

8506:                                             ; preds = %8505
  %8507 = load i32, ptr @test_count, align 4, !tbaa !5
  %8508 = add nsw i32 %8507, 1
  store i32 %8508, ptr @test_count, align 4, !tbaa !5
  %8509 = call i32 @s2n_stuffer_free(ptr noundef %177)
  %8510 = icmp eq i32 %8509, -1
  br i1 %8510, label %8511, label %8564

8511:                                             ; preds = %8506
  br label %8512

8512:                                             ; preds = %8511
  br label %8513

8513:                                             ; preds = %8512
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %8514 = call ptr @__errno_location() #11
  %8515 = load i32, ptr %8514, align 4, !tbaa !5
  store i32 %8515, ptr %187, align 4, !tbaa !5
  %8516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8517 = call i32 @s2n_print_stacktrace(ptr noundef %8516)
  %8518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8519 = trunc i8 %8518 to i1
  br i1 %8519, label %8520, label %8542

8520:                                             ; preds = %8513
  %8521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8522 = call i32 @fileno(ptr noundef %8521) #10
  %8523 = call i32 @isatty(i32 noundef %8522) #10
  %8524 = icmp ne i32 %8523, 0
  br i1 %8524, label %8525, label %8542

8525:                                             ; preds = %8520
  %8526 = load i32, ptr %187, align 4, !tbaa !5
  %8527 = call ptr @__errno_location() #11
  store i32 %8526, ptr %8527, align 4, !tbaa !5
  %8528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8529 = load i32, ptr @test_count, align 4, !tbaa !5
  %8530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8531 = load i32, ptr %8530, align 4, !tbaa !5
  %8532 = call ptr @s2n_strerror(i32 noundef %8531, ptr noundef @.str.4)
  %8533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8534 = load i32, ptr %8533, align 4, !tbaa !5
  %8535 = call ptr @s2n_strerror_debug(i32 noundef %8534, ptr noundef @.str.4)
  %8536 = call ptr @__errno_location() #11
  %8537 = load i32, ptr %8536, align 4, !tbaa !5
  %8538 = call ptr @strerror(i32 noundef %8537) #10
  %8539 = call ptr @__errno_location() #11
  %8540 = load i32, ptr %8539, align 4, !tbaa !5
  %8541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8528, ptr noundef @.str.2, i32 noundef %8529, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 352, ptr noundef %8532, ptr noundef %8535, ptr noundef %8538, i32 noundef %8540) #10
  br label %8559

8542:                                             ; preds = %8520, %8513
  %8543 = load i32, ptr %187, align 4, !tbaa !5
  %8544 = call ptr @__errno_location() #11
  store i32 %8543, ptr %8544, align 4, !tbaa !5
  %8545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8546 = load i32, ptr @test_count, align 4, !tbaa !5
  %8547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8548 = load i32, ptr %8547, align 4, !tbaa !5
  %8549 = call ptr @s2n_strerror(i32 noundef %8548, ptr noundef @.str.4)
  %8550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8551 = load i32, ptr %8550, align 4, !tbaa !5
  %8552 = call ptr @s2n_strerror_debug(i32 noundef %8551, ptr noundef @.str.4)
  %8553 = call ptr @__errno_location() #11
  %8554 = load i32, ptr %8553, align 4, !tbaa !5
  %8555 = call ptr @strerror(i32 noundef %8554) #10
  %8556 = call ptr @__errno_location() #11
  %8557 = load i32, ptr %8556, align 4, !tbaa !5
  %8558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8545, ptr noundef @.str.5, i32 noundef %8546, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 352, ptr noundef %8549, ptr noundef %8552, ptr noundef %8555, i32 noundef %8557) #10
  br label %8559

8559:                                             ; preds = %8542, %8525
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %8560

8560:                                             ; preds = %8559
  br label %8561

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

8562:                                             ; No predecessors!
  br label %8563

8563:                                             ; preds = %8562
  br label %8564

8564:                                             ; preds = %8563, %8506
  br label %8565

8565:                                             ; preds = %8564
  br label %8566

8566:                                             ; preds = %8565
  call void @llvm.lifetime.end.p0(i64 40, ptr %177) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %188) #10
  store ptr null, ptr %188, align 8, !tbaa !9
  br label %8567

8567:                                             ; preds = %8566
  %8568 = load i32, ptr @test_count, align 4, !tbaa !5
  %8569 = add nsw i32 %8568, 1
  store i32 %8569, ptr @test_count, align 4, !tbaa !5
  %8570 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8570, ptr %188, align 8, !tbaa !9
  %8571 = icmp eq ptr %8570, null
  br i1 %8571, label %8572, label %8625

8572:                                             ; preds = %8567
  br label %8573

8573:                                             ; preds = %8572
  br label %8574

8574:                                             ; preds = %8573
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #10
  %8575 = call ptr @__errno_location() #11
  %8576 = load i32, ptr %8575, align 4, !tbaa !5
  store i32 %8576, ptr %189, align 4, !tbaa !5
  %8577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8578 = call i32 @s2n_print_stacktrace(ptr noundef %8577)
  %8579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8580 = trunc i8 %8579 to i1
  br i1 %8580, label %8581, label %8603

8581:                                             ; preds = %8574
  %8582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8583 = call i32 @fileno(ptr noundef %8582) #10
  %8584 = call i32 @isatty(i32 noundef %8583) #10
  %8585 = icmp ne i32 %8584, 0
  br i1 %8585, label %8586, label %8603

8586:                                             ; preds = %8581
  %8587 = load i32, ptr %189, align 4, !tbaa !5
  %8588 = call ptr @__errno_location() #11
  store i32 %8587, ptr %8588, align 4, !tbaa !5
  %8589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8590 = load i32, ptr @test_count, align 4, !tbaa !5
  %8591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8592 = load i32, ptr %8591, align 4, !tbaa !5
  %8593 = call ptr @s2n_strerror(i32 noundef %8592, ptr noundef @.str.4)
  %8594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8595 = load i32, ptr %8594, align 4, !tbaa !5
  %8596 = call ptr @s2n_strerror_debug(i32 noundef %8595, ptr noundef @.str.4)
  %8597 = call ptr @__errno_location() #11
  %8598 = load i32, ptr %8597, align 4, !tbaa !5
  %8599 = call ptr @strerror(i32 noundef %8598) #10
  %8600 = call ptr @__errno_location() #11
  %8601 = load i32, ptr %8600, align 4, !tbaa !5
  %8602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8589, ptr noundef @.str.2, i32 noundef %8590, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 358, ptr noundef %8593, ptr noundef %8596, ptr noundef %8599, i32 noundef %8601) #10
  br label %8620

8603:                                             ; preds = %8581, %8574
  %8604 = load i32, ptr %189, align 4, !tbaa !5
  %8605 = call ptr @__errno_location() #11
  store i32 %8604, ptr %8605, align 4, !tbaa !5
  %8606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8607 = load i32, ptr @test_count, align 4, !tbaa !5
  %8608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8609 = load i32, ptr %8608, align 4, !tbaa !5
  %8610 = call ptr @s2n_strerror(i32 noundef %8609, ptr noundef @.str.4)
  %8611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8612 = load i32, ptr %8611, align 4, !tbaa !5
  %8613 = call ptr @s2n_strerror_debug(i32 noundef %8612, ptr noundef @.str.4)
  %8614 = call ptr @__errno_location() #11
  %8615 = load i32, ptr %8614, align 4, !tbaa !5
  %8616 = call ptr @strerror(i32 noundef %8615) #10
  %8617 = call ptr @__errno_location() #11
  %8618 = load i32, ptr %8617, align 4, !tbaa !5
  %8619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8606, ptr noundef @.str.5, i32 noundef %8607, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 358, ptr noundef %8610, ptr noundef %8613, ptr noundef %8616, i32 noundef %8618) #10
  br label %8620

8620:                                             ; preds = %8603, %8586
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #10
  br label %8621

8621:                                             ; preds = %8620
  br label %8622

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

8623:                                             ; No predecessors!
  br label %8624

8624:                                             ; preds = %8623
  br label %8625

8625:                                             ; preds = %8624, %8567
  br label %8626

8626:                                             ; preds = %8625
  br label %8627

8627:                                             ; preds = %8626
  br label %8628

8628:                                             ; preds = %8627
  %8629 = load i32, ptr @test_count, align 4, !tbaa !5
  %8630 = add nsw i32 %8629, 1
  store i32 %8630, ptr @test_count, align 4, !tbaa !5
  %8631 = load ptr, ptr %188, align 8, !tbaa !9
  %8632 = load ptr, ptr %11, align 8, !tbaa !9
  %8633 = call i32 @s2n_connection_set_config(ptr noundef %8631, ptr noundef %8632)
  %8634 = icmp eq i32 %8633, -1
  br i1 %8634, label %8635, label %8688

8635:                                             ; preds = %8628
  br label %8636

8636:                                             ; preds = %8635
  br label %8637

8637:                                             ; preds = %8636
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  %8638 = call ptr @__errno_location() #11
  %8639 = load i32, ptr %8638, align 4, !tbaa !5
  store i32 %8639, ptr %190, align 4, !tbaa !5
  %8640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8641 = call i32 @s2n_print_stacktrace(ptr noundef %8640)
  %8642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8643 = trunc i8 %8642 to i1
  br i1 %8643, label %8644, label %8666

8644:                                             ; preds = %8637
  %8645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8646 = call i32 @fileno(ptr noundef %8645) #10
  %8647 = call i32 @isatty(i32 noundef %8646) #10
  %8648 = icmp ne i32 %8647, 0
  br i1 %8648, label %8649, label %8666

8649:                                             ; preds = %8644
  %8650 = load i32, ptr %190, align 4, !tbaa !5
  %8651 = call ptr @__errno_location() #11
  store i32 %8650, ptr %8651, align 4, !tbaa !5
  %8652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8653 = load i32, ptr @test_count, align 4, !tbaa !5
  %8654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8655 = load i32, ptr %8654, align 4, !tbaa !5
  %8656 = call ptr @s2n_strerror(i32 noundef %8655, ptr noundef @.str.4)
  %8657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8658 = load i32, ptr %8657, align 4, !tbaa !5
  %8659 = call ptr @s2n_strerror_debug(i32 noundef %8658, ptr noundef @.str.4)
  %8660 = call ptr @__errno_location() #11
  %8661 = load i32, ptr %8660, align 4, !tbaa !5
  %8662 = call ptr @strerror(i32 noundef %8661) #10
  %8663 = call ptr @__errno_location() #11
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8652, ptr noundef @.str.2, i32 noundef %8653, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 359, ptr noundef %8656, ptr noundef %8659, ptr noundef %8662, i32 noundef %8664) #10
  br label %8683

8666:                                             ; preds = %8644, %8637
  %8667 = load i32, ptr %190, align 4, !tbaa !5
  %8668 = call ptr @__errno_location() #11
  store i32 %8667, ptr %8668, align 4, !tbaa !5
  %8669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8670 = load i32, ptr @test_count, align 4, !tbaa !5
  %8671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call ptr @s2n_strerror(i32 noundef %8672, ptr noundef @.str.4)
  %8674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8675 = load i32, ptr %8674, align 4, !tbaa !5
  %8676 = call ptr @s2n_strerror_debug(i32 noundef %8675, ptr noundef @.str.4)
  %8677 = call ptr @__errno_location() #11
  %8678 = load i32, ptr %8677, align 4, !tbaa !5
  %8679 = call ptr @strerror(i32 noundef %8678) #10
  %8680 = call ptr @__errno_location() #11
  %8681 = load i32, ptr %8680, align 4, !tbaa !5
  %8682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8669, ptr noundef @.str.5, i32 noundef %8670, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 359, ptr noundef %8673, ptr noundef %8676, ptr noundef %8679, i32 noundef %8681) #10
  br label %8683

8683:                                             ; preds = %8666, %8649
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  br label %8684

8684:                                             ; preds = %8683
  br label %8685

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

8686:                                             ; No predecessors!
  br label %8687

8687:                                             ; preds = %8686
  br label %8688

8688:                                             ; preds = %8687, %8628
  br label %8689

8689:                                             ; preds = %8688
  br label %8690

8690:                                             ; preds = %8689
  call void @llvm.lifetime.start.p0(i64 40, ptr %191) #10
  call void @llvm.memset.p0.i64(ptr align 8 %191, i8 0, i64 40, i1 false)
  br label %8691

8691:                                             ; preds = %8690
  %8692 = load i32, ptr @test_count, align 4, !tbaa !5
  %8693 = add nsw i32 %8692, 1
  store i32 %8693, ptr @test_count, align 4, !tbaa !5
  %8694 = call i32 @s2n_stuffer_alloc(ptr noundef %191, i32 noundef 4)
  %8695 = icmp eq i32 %8694, -1
  br i1 %8695, label %8696, label %8749

8696:                                             ; preds = %8691
  br label %8697

8697:                                             ; preds = %8696
  br label %8698

8698:                                             ; preds = %8697
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #10
  %8699 = call ptr @__errno_location() #11
  %8700 = load i32, ptr %8699, align 4, !tbaa !5
  store i32 %8700, ptr %192, align 4, !tbaa !5
  %8701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8702 = call i32 @s2n_print_stacktrace(ptr noundef %8701)
  %8703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8704 = trunc i8 %8703 to i1
  br i1 %8704, label %8705, label %8727

8705:                                             ; preds = %8698
  %8706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8707 = call i32 @fileno(ptr noundef %8706) #10
  %8708 = call i32 @isatty(i32 noundef %8707) #10
  %8709 = icmp ne i32 %8708, 0
  br i1 %8709, label %8710, label %8727

8710:                                             ; preds = %8705
  %8711 = load i32, ptr %192, align 4, !tbaa !5
  %8712 = call ptr @__errno_location() #11
  store i32 %8711, ptr %8712, align 4, !tbaa !5
  %8713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8714 = load i32, ptr @test_count, align 4, !tbaa !5
  %8715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8716 = load i32, ptr %8715, align 4, !tbaa !5
  %8717 = call ptr @s2n_strerror(i32 noundef %8716, ptr noundef @.str.4)
  %8718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8719 = load i32, ptr %8718, align 4, !tbaa !5
  %8720 = call ptr @s2n_strerror_debug(i32 noundef %8719, ptr noundef @.str.4)
  %8721 = call ptr @__errno_location() #11
  %8722 = load i32, ptr %8721, align 4, !tbaa !5
  %8723 = call ptr @strerror(i32 noundef %8722) #10
  %8724 = call ptr @__errno_location() #11
  %8725 = load i32, ptr %8724, align 4, !tbaa !5
  %8726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8713, ptr noundef @.str.2, i32 noundef %8714, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 362, ptr noundef %8717, ptr noundef %8720, ptr noundef %8723, i32 noundef %8725) #10
  br label %8744

8727:                                             ; preds = %8705, %8698
  %8728 = load i32, ptr %192, align 4, !tbaa !5
  %8729 = call ptr @__errno_location() #11
  store i32 %8728, ptr %8729, align 4, !tbaa !5
  %8730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8731 = load i32, ptr @test_count, align 4, !tbaa !5
  %8732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8733 = load i32, ptr %8732, align 4, !tbaa !5
  %8734 = call ptr @s2n_strerror(i32 noundef %8733, ptr noundef @.str.4)
  %8735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8736 = load i32, ptr %8735, align 4, !tbaa !5
  %8737 = call ptr @s2n_strerror_debug(i32 noundef %8736, ptr noundef @.str.4)
  %8738 = call ptr @__errno_location() #11
  %8739 = load i32, ptr %8738, align 4, !tbaa !5
  %8740 = call ptr @strerror(i32 noundef %8739) #10
  %8741 = call ptr @__errno_location() #11
  %8742 = load i32, ptr %8741, align 4, !tbaa !5
  %8743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8730, ptr noundef @.str.5, i32 noundef %8731, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 362, ptr noundef %8734, ptr noundef %8737, ptr noundef %8740, i32 noundef %8742) #10
  br label %8744

8744:                                             ; preds = %8727, %8710
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #10
  br label %8745

8745:                                             ; preds = %8744
  br label %8746

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

8747:                                             ; No predecessors!
  br label %8748

8748:                                             ; preds = %8747
  br label %8749

8749:                                             ; preds = %8748, %8691
  br label %8750

8750:                                             ; preds = %8749
  br label %8751

8751:                                             ; preds = %8750
  br label %8752

8752:                                             ; preds = %8751
  %8753 = load i32, ptr @test_count, align 4, !tbaa !5
  %8754 = add nsw i32 %8753, 1
  store i32 %8754, ptr @test_count, align 4, !tbaa !5
  %8755 = call i32 @s2n_stuffer_write_uint8(ptr noundef %191, i8 noundef zeroext 3)
  %8756 = icmp eq i32 %8755, -1
  br i1 %8756, label %8757, label %8810

8757:                                             ; preds = %8752
  br label %8758

8758:                                             ; preds = %8757
  br label %8759

8759:                                             ; preds = %8758
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #10
  %8760 = call ptr @__errno_location() #11
  %8761 = load i32, ptr %8760, align 4, !tbaa !5
  store i32 %8761, ptr %193, align 4, !tbaa !5
  %8762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8763 = call i32 @s2n_print_stacktrace(ptr noundef %8762)
  %8764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8765 = trunc i8 %8764 to i1
  br i1 %8765, label %8766, label %8788

8766:                                             ; preds = %8759
  %8767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8768 = call i32 @fileno(ptr noundef %8767) #10
  %8769 = call i32 @isatty(i32 noundef %8768) #10
  %8770 = icmp ne i32 %8769, 0
  br i1 %8770, label %8771, label %8788

8771:                                             ; preds = %8766
  %8772 = load i32, ptr %193, align 4, !tbaa !5
  %8773 = call ptr @__errno_location() #11
  store i32 %8772, ptr %8773, align 4, !tbaa !5
  %8774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8775 = load i32, ptr @test_count, align 4, !tbaa !5
  %8776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8777 = load i32, ptr %8776, align 4, !tbaa !5
  %8778 = call ptr @s2n_strerror(i32 noundef %8777, ptr noundef @.str.4)
  %8779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8780 = load i32, ptr %8779, align 4, !tbaa !5
  %8781 = call ptr @s2n_strerror_debug(i32 noundef %8780, ptr noundef @.str.4)
  %8782 = call ptr @__errno_location() #11
  %8783 = load i32, ptr %8782, align 4, !tbaa !5
  %8784 = call ptr @strerror(i32 noundef %8783) #10
  %8785 = call ptr @__errno_location() #11
  %8786 = load i32, ptr %8785, align 4, !tbaa !5
  %8787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8774, ptr noundef @.str.2, i32 noundef %8775, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 364, ptr noundef %8778, ptr noundef %8781, ptr noundef %8784, i32 noundef %8786) #10
  br label %8805

8788:                                             ; preds = %8766, %8759
  %8789 = load i32, ptr %193, align 4, !tbaa !5
  %8790 = call ptr @__errno_location() #11
  store i32 %8789, ptr %8790, align 4, !tbaa !5
  %8791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8792 = load i32, ptr @test_count, align 4, !tbaa !5
  %8793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8794 = load i32, ptr %8793, align 4, !tbaa !5
  %8795 = call ptr @s2n_strerror(i32 noundef %8794, ptr noundef @.str.4)
  %8796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8797 = load i32, ptr %8796, align 4, !tbaa !5
  %8798 = call ptr @s2n_strerror_debug(i32 noundef %8797, ptr noundef @.str.4)
  %8799 = call ptr @__errno_location() #11
  %8800 = load i32, ptr %8799, align 4, !tbaa !5
  %8801 = call ptr @strerror(i32 noundef %8800) #10
  %8802 = call ptr @__errno_location() #11
  %8803 = load i32, ptr %8802, align 4, !tbaa !5
  %8804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8791, ptr noundef @.str.5, i32 noundef %8792, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 364, ptr noundef %8795, ptr noundef %8798, ptr noundef %8801, i32 noundef %8803) #10
  br label %8805

8805:                                             ; preds = %8788, %8771
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #10
  br label %8806

8806:                                             ; preds = %8805
  br label %8807

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

8808:                                             ; No predecessors!
  br label %8809

8809:                                             ; preds = %8808
  br label %8810

8810:                                             ; preds = %8809, %8752
  br label %8811

8811:                                             ; preds = %8810
  br label %8812

8812:                                             ; preds = %8811
  br label %8813

8813:                                             ; preds = %8812
  %8814 = load i32, ptr @test_count, align 4, !tbaa !5
  %8815 = add nsw i32 %8814, 1
  store i32 %8815, ptr @test_count, align 4, !tbaa !5
  %8816 = call i32 @s2n_stuffer_write_uint16(ptr noundef %191, i16 noundef zeroext 770)
  %8817 = icmp eq i32 %8816, -1
  br i1 %8817, label %8818, label %8871

8818:                                             ; preds = %8813
  br label %8819

8819:                                             ; preds = %8818
  br label %8820

8820:                                             ; preds = %8819
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #10
  %8821 = call ptr @__errno_location() #11
  %8822 = load i32, ptr %8821, align 4, !tbaa !5
  store i32 %8822, ptr %194, align 4, !tbaa !5
  %8823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8824 = call i32 @s2n_print_stacktrace(ptr noundef %8823)
  %8825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8826 = trunc i8 %8825 to i1
  br i1 %8826, label %8827, label %8849

8827:                                             ; preds = %8820
  %8828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8829 = call i32 @fileno(ptr noundef %8828) #10
  %8830 = call i32 @isatty(i32 noundef %8829) #10
  %8831 = icmp ne i32 %8830, 0
  br i1 %8831, label %8832, label %8849

8832:                                             ; preds = %8827
  %8833 = load i32, ptr %194, align 4, !tbaa !5
  %8834 = call ptr @__errno_location() #11
  store i32 %8833, ptr %8834, align 4, !tbaa !5
  %8835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8836 = load i32, ptr @test_count, align 4, !tbaa !5
  %8837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8838 = load i32, ptr %8837, align 4, !tbaa !5
  %8839 = call ptr @s2n_strerror(i32 noundef %8838, ptr noundef @.str.4)
  %8840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8841 = load i32, ptr %8840, align 4, !tbaa !5
  %8842 = call ptr @s2n_strerror_debug(i32 noundef %8841, ptr noundef @.str.4)
  %8843 = call ptr @__errno_location() #11
  %8844 = load i32, ptr %8843, align 4, !tbaa !5
  %8845 = call ptr @strerror(i32 noundef %8844) #10
  %8846 = call ptr @__errno_location() #11
  %8847 = load i32, ptr %8846, align 4, !tbaa !5
  %8848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8835, ptr noundef @.str.2, i32 noundef %8836, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 365, ptr noundef %8839, ptr noundef %8842, ptr noundef %8845, i32 noundef %8847) #10
  br label %8866

8849:                                             ; preds = %8827, %8820
  %8850 = load i32, ptr %194, align 4, !tbaa !5
  %8851 = call ptr @__errno_location() #11
  store i32 %8850, ptr %8851, align 4, !tbaa !5
  %8852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8853 = load i32, ptr @test_count, align 4, !tbaa !5
  %8854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8855 = load i32, ptr %8854, align 4, !tbaa !5
  %8856 = call ptr @s2n_strerror(i32 noundef %8855, ptr noundef @.str.4)
  %8857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8858 = load i32, ptr %8857, align 4, !tbaa !5
  %8859 = call ptr @s2n_strerror_debug(i32 noundef %8858, ptr noundef @.str.4)
  %8860 = call ptr @__errno_location() #11
  %8861 = load i32, ptr %8860, align 4, !tbaa !5
  %8862 = call ptr @strerror(i32 noundef %8861) #10
  %8863 = call ptr @__errno_location() #11
  %8864 = load i32, ptr %8863, align 4, !tbaa !5
  %8865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8852, ptr noundef @.str.5, i32 noundef %8853, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 365, ptr noundef %8856, ptr noundef %8859, ptr noundef %8862, i32 noundef %8864) #10
  br label %8866

8866:                                             ; preds = %8849, %8832
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #10
  br label %8867

8867:                                             ; preds = %8866
  br label %8868

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

8869:                                             ; No predecessors!
  br label %8870

8870:                                             ; preds = %8869
  br label %8871

8871:                                             ; preds = %8870, %8813
  br label %8872

8872:                                             ; preds = %8871
  br label %8873

8873:                                             ; preds = %8872
  br label %8874

8874:                                             ; preds = %8873
  %8875 = load i32, ptr @test_count, align 4, !tbaa !5
  %8876 = add nsw i32 %8875, 1
  store i32 %8876, ptr @test_count, align 4, !tbaa !5
  %8877 = call i32 @s2n_stuffer_write_uint8(ptr noundef %191, i8 noundef zeroext 3)
  %8878 = icmp eq i32 %8877, -1
  br i1 %8878, label %8879, label %8932

8879:                                             ; preds = %8874
  br label %8880

8880:                                             ; preds = %8879
  br label %8881

8881:                                             ; preds = %8880
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #10
  %8882 = call ptr @__errno_location() #11
  %8883 = load i32, ptr %8882, align 4, !tbaa !5
  store i32 %8883, ptr %195, align 4, !tbaa !5
  %8884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8885 = call i32 @s2n_print_stacktrace(ptr noundef %8884)
  %8886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8887 = trunc i8 %8886 to i1
  br i1 %8887, label %8888, label %8910

8888:                                             ; preds = %8881
  %8889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8890 = call i32 @fileno(ptr noundef %8889) #10
  %8891 = call i32 @isatty(i32 noundef %8890) #10
  %8892 = icmp ne i32 %8891, 0
  br i1 %8892, label %8893, label %8910

8893:                                             ; preds = %8888
  %8894 = load i32, ptr %195, align 4, !tbaa !5
  %8895 = call ptr @__errno_location() #11
  store i32 %8894, ptr %8895, align 4, !tbaa !5
  %8896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8897 = load i32, ptr @test_count, align 4, !tbaa !5
  %8898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8899 = load i32, ptr %8898, align 4, !tbaa !5
  %8900 = call ptr @s2n_strerror(i32 noundef %8899, ptr noundef @.str.4)
  %8901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8902 = load i32, ptr %8901, align 4, !tbaa !5
  %8903 = call ptr @s2n_strerror_debug(i32 noundef %8902, ptr noundef @.str.4)
  %8904 = call ptr @__errno_location() #11
  %8905 = load i32, ptr %8904, align 4, !tbaa !5
  %8906 = call ptr @strerror(i32 noundef %8905) #10
  %8907 = call ptr @__errno_location() #11
  %8908 = load i32, ptr %8907, align 4, !tbaa !5
  %8909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8896, ptr noundef @.str.2, i32 noundef %8897, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 366, ptr noundef %8900, ptr noundef %8903, ptr noundef %8906, i32 noundef %8908) #10
  br label %8927

8910:                                             ; preds = %8888, %8881
  %8911 = load i32, ptr %195, align 4, !tbaa !5
  %8912 = call ptr @__errno_location() #11
  store i32 %8911, ptr %8912, align 4, !tbaa !5
  %8913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8914 = load i32, ptr @test_count, align 4, !tbaa !5
  %8915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8916 = load i32, ptr %8915, align 4, !tbaa !5
  %8917 = call ptr @s2n_strerror(i32 noundef %8916, ptr noundef @.str.4)
  %8918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8919 = load i32, ptr %8918, align 4, !tbaa !5
  %8920 = call ptr @s2n_strerror_debug(i32 noundef %8919, ptr noundef @.str.4)
  %8921 = call ptr @__errno_location() #11
  %8922 = load i32, ptr %8921, align 4, !tbaa !5
  %8923 = call ptr @strerror(i32 noundef %8922) #10
  %8924 = call ptr @__errno_location() #11
  %8925 = load i32, ptr %8924, align 4, !tbaa !5
  %8926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8913, ptr noundef @.str.5, i32 noundef %8914, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 366, ptr noundef %8917, ptr noundef %8920, ptr noundef %8923, i32 noundef %8925) #10
  br label %8927

8927:                                             ; preds = %8910, %8893
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #10
  br label %8928

8928:                                             ; preds = %8927
  br label %8929

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

8930:                                             ; No predecessors!
  br label %8931

8931:                                             ; preds = %8930
  br label %8932

8932:                                             ; preds = %8931, %8874
  br label %8933

8933:                                             ; preds = %8932
  br label %8934

8934:                                             ; preds = %8933
  br label %8935

8935:                                             ; preds = %8934
  br label %8936

8936:                                             ; preds = %8935
  br label %8937

8937:                                             ; preds = %8936
  %8938 = load i32, ptr @test_count, align 4, !tbaa !5
  %8939 = add nsw i32 %8938, 1
  store i32 %8939, ptr @test_count, align 4, !tbaa !5
  %8940 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %8941 = load ptr, ptr %188, align 8, !tbaa !9
  %8942 = call i32 %8940(ptr noundef %8941, ptr noundef %191)
  %8943 = icmp eq i32 %8942, -1
  br i1 %8943, label %8997, label %8944

8944:                                             ; preds = %8937
  br label %8945

8945:                                             ; preds = %8944
  br label %8946

8946:                                             ; preds = %8945
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #10
  %8947 = call ptr @__errno_location() #11
  %8948 = load i32, ptr %8947, align 4, !tbaa !5
  store i32 %8948, ptr %196, align 4, !tbaa !5
  %8949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8950 = call i32 @s2n_print_stacktrace(ptr noundef %8949)
  %8951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8952 = trunc i8 %8951 to i1
  br i1 %8952, label %8953, label %8975

8953:                                             ; preds = %8946
  %8954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8955 = call i32 @fileno(ptr noundef %8954) #10
  %8956 = call i32 @isatty(i32 noundef %8955) #10
  %8957 = icmp ne i32 %8956, 0
  br i1 %8957, label %8958, label %8975

8958:                                             ; preds = %8953
  %8959 = load i32, ptr %196, align 4, !tbaa !5
  %8960 = call ptr @__errno_location() #11
  store i32 %8959, ptr %8960, align 4, !tbaa !5
  %8961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8962 = load i32, ptr @test_count, align 4, !tbaa !5
  %8963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8964 = load i32, ptr %8963, align 4, !tbaa !5
  %8965 = call ptr @s2n_strerror(i32 noundef %8964, ptr noundef @.str.4)
  %8966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8967 = load i32, ptr %8966, align 4, !tbaa !5
  %8968 = call ptr @s2n_strerror_debug(i32 noundef %8967, ptr noundef @.str.4)
  %8969 = call ptr @__errno_location() #11
  %8970 = load i32, ptr %8969, align 4, !tbaa !5
  %8971 = call ptr @strerror(i32 noundef %8970) #10
  %8972 = call ptr @__errno_location() #11
  %8973 = load i32, ptr %8972, align 4, !tbaa !5
  %8974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8961, ptr noundef @.str.2, i32 noundef %8962, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 368, ptr noundef %8965, ptr noundef %8968, ptr noundef %8971, i32 noundef %8973) #10
  br label %8992

8975:                                             ; preds = %8953, %8946
  %8976 = load i32, ptr %196, align 4, !tbaa !5
  %8977 = call ptr @__errno_location() #11
  store i32 %8976, ptr %8977, align 4, !tbaa !5
  %8978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8979 = load i32, ptr @test_count, align 4, !tbaa !5
  %8980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8981 = load i32, ptr %8980, align 4, !tbaa !5
  %8982 = call ptr @s2n_strerror(i32 noundef %8981, ptr noundef @.str.4)
  %8983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8984 = load i32, ptr %8983, align 4, !tbaa !5
  %8985 = call ptr @s2n_strerror_debug(i32 noundef %8984, ptr noundef @.str.4)
  %8986 = call ptr @__errno_location() #11
  %8987 = load i32, ptr %8986, align 4, !tbaa !5
  %8988 = call ptr @strerror(i32 noundef %8987) #10
  %8989 = call ptr @__errno_location() #11
  %8990 = load i32, ptr %8989, align 4, !tbaa !5
  %8991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8978, ptr noundef @.str.5, i32 noundef %8979, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 368, ptr noundef %8982, ptr noundef %8985, ptr noundef %8988, i32 noundef %8990) #10
  br label %8992

8992:                                             ; preds = %8975, %8958
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #10
  br label %8993

8993:                                             ; preds = %8992
  br label %8994

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

8995:                                             ; No predecessors!
  br label %8996

8996:                                             ; preds = %8995
  br label %8997

8997:                                             ; preds = %8996, %8937
  br label %8998

8998:                                             ; preds = %8997
  br label %8999

8999:                                             ; preds = %8998
  br label %9000

9000:                                             ; preds = %8999
  %9001 = load i32, ptr @test_count, align 4, !tbaa !5
  %9002 = add nsw i32 %9001, 1
  store i32 %9002, ptr @test_count, align 4, !tbaa !5
  %9003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9004 = load i32, ptr %9003, align 4, !tbaa !5
  %9005 = icmp eq i32 %9004, 335544322
  br i1 %9005, label %9059, label %9006

9006:                                             ; preds = %9000
  br label %9007

9007:                                             ; preds = %9006
  br label %9008

9008:                                             ; preds = %9007
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #10
  %9009 = call ptr @__errno_location() #11
  %9010 = load i32, ptr %9009, align 4, !tbaa !5
  store i32 %9010, ptr %197, align 4, !tbaa !5
  %9011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9012 = call i32 @s2n_print_stacktrace(ptr noundef %9011)
  %9013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9014 = trunc i8 %9013 to i1
  br i1 %9014, label %9015, label %9037

9015:                                             ; preds = %9008
  %9016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9017 = call i32 @fileno(ptr noundef %9016) #10
  %9018 = call i32 @isatty(i32 noundef %9017) #10
  %9019 = icmp ne i32 %9018, 0
  br i1 %9019, label %9020, label %9037

9020:                                             ; preds = %9015
  %9021 = load i32, ptr %197, align 4, !tbaa !5
  %9022 = call ptr @__errno_location() #11
  store i32 %9021, ptr %9022, align 4, !tbaa !5
  %9023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9024 = load i32, ptr @test_count, align 4, !tbaa !5
  %9025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9026 = load i32, ptr %9025, align 4, !tbaa !5
  %9027 = call ptr @s2n_strerror(i32 noundef %9026, ptr noundef @.str.4)
  %9028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9029 = load i32, ptr %9028, align 4, !tbaa !5
  %9030 = call ptr @s2n_strerror_debug(i32 noundef %9029, ptr noundef @.str.4)
  %9031 = call ptr @__errno_location() #11
  %9032 = load i32, ptr %9031, align 4, !tbaa !5
  %9033 = call ptr @strerror(i32 noundef %9032) #10
  %9034 = call ptr @__errno_location() #11
  %9035 = load i32, ptr %9034, align 4, !tbaa !5
  %9036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9023, ptr noundef @.str.2, i32 noundef %9024, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 368, ptr noundef %9027, ptr noundef %9030, ptr noundef %9033, i32 noundef %9035) #10
  br label %9054

9037:                                             ; preds = %9015, %9008
  %9038 = load i32, ptr %197, align 4, !tbaa !5
  %9039 = call ptr @__errno_location() #11
  store i32 %9038, ptr %9039, align 4, !tbaa !5
  %9040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9041 = load i32, ptr @test_count, align 4, !tbaa !5
  %9042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9043 = load i32, ptr %9042, align 4, !tbaa !5
  %9044 = call ptr @s2n_strerror(i32 noundef %9043, ptr noundef @.str.4)
  %9045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9046 = load i32, ptr %9045, align 4, !tbaa !5
  %9047 = call ptr @s2n_strerror_debug(i32 noundef %9046, ptr noundef @.str.4)
  %9048 = call ptr @__errno_location() #11
  %9049 = load i32, ptr %9048, align 4, !tbaa !5
  %9050 = call ptr @strerror(i32 noundef %9049) #10
  %9051 = call ptr @__errno_location() #11
  %9052 = load i32, ptr %9051, align 4, !tbaa !5
  %9053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9040, ptr noundef @.str.5, i32 noundef %9041, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 368, ptr noundef %9044, ptr noundef %9047, ptr noundef %9050, i32 noundef %9052) #10
  br label %9054

9054:                                             ; preds = %9037, %9020
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #10
  br label %9055

9055:                                             ; preds = %9054
  br label %9056

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

9057:                                             ; No predecessors!
  br label %9058

9058:                                             ; preds = %9057
  br label %9059

9059:                                             ; preds = %9058, %9000
  br label %9060

9060:                                             ; preds = %9059
  br label %9061

9061:                                             ; preds = %9060
  br label %9062

9062:                                             ; preds = %9061
  %9063 = load i32, ptr @test_count, align 4, !tbaa !5
  %9064 = add nsw i32 %9063, 1
  store i32 %9064, ptr @test_count, align 4, !tbaa !5
  %9065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9066 = load i32, ptr %9065, align 4, !tbaa !5
  %9067 = call ptr @s2n_strerror_debug(i32 noundef %9066, ptr noundef @.str.4)
  %9068 = icmp eq ptr %9067, null
  br i1 %9068, label %9069, label %9122

9069:                                             ; preds = %9062
  br label %9070

9070:                                             ; preds = %9069
  br label %9071

9071:                                             ; preds = %9070
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #10
  %9072 = call ptr @__errno_location() #11
  %9073 = load i32, ptr %9072, align 4, !tbaa !5
  store i32 %9073, ptr %198, align 4, !tbaa !5
  %9074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9075 = call i32 @s2n_print_stacktrace(ptr noundef %9074)
  %9076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9077 = trunc i8 %9076 to i1
  br i1 %9077, label %9078, label %9100

9078:                                             ; preds = %9071
  %9079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9080 = call i32 @fileno(ptr noundef %9079) #10
  %9081 = call i32 @isatty(i32 noundef %9080) #10
  %9082 = icmp ne i32 %9081, 0
  br i1 %9082, label %9083, label %9100

9083:                                             ; preds = %9078
  %9084 = load i32, ptr %198, align 4, !tbaa !5
  %9085 = call ptr @__errno_location() #11
  store i32 %9084, ptr %9085, align 4, !tbaa !5
  %9086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9087 = load i32, ptr @test_count, align 4, !tbaa !5
  %9088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9089 = load i32, ptr %9088, align 4, !tbaa !5
  %9090 = call ptr @s2n_strerror(i32 noundef %9089, ptr noundef @.str.4)
  %9091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9092 = load i32, ptr %9091, align 4, !tbaa !5
  %9093 = call ptr @s2n_strerror_debug(i32 noundef %9092, ptr noundef @.str.4)
  %9094 = call ptr @__errno_location() #11
  %9095 = load i32, ptr %9094, align 4, !tbaa !5
  %9096 = call ptr @strerror(i32 noundef %9095) #10
  %9097 = call ptr @__errno_location() #11
  %9098 = load i32, ptr %9097, align 4, !tbaa !5
  %9099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9086, ptr noundef @.str.2, i32 noundef %9087, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 368, ptr noundef %9090, ptr noundef %9093, ptr noundef %9096, i32 noundef %9098) #10
  br label %9117

9100:                                             ; preds = %9078, %9071
  %9101 = load i32, ptr %198, align 4, !tbaa !5
  %9102 = call ptr @__errno_location() #11
  store i32 %9101, ptr %9102, align 4, !tbaa !5
  %9103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9104 = load i32, ptr @test_count, align 4, !tbaa !5
  %9105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9106 = load i32, ptr %9105, align 4, !tbaa !5
  %9107 = call ptr @s2n_strerror(i32 noundef %9106, ptr noundef @.str.4)
  %9108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9109 = load i32, ptr %9108, align 4, !tbaa !5
  %9110 = call ptr @s2n_strerror_debug(i32 noundef %9109, ptr noundef @.str.4)
  %9111 = call ptr @__errno_location() #11
  %9112 = load i32, ptr %9111, align 4, !tbaa !5
  %9113 = call ptr @strerror(i32 noundef %9112) #10
  %9114 = call ptr @__errno_location() #11
  %9115 = load i32, ptr %9114, align 4, !tbaa !5
  %9116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9103, ptr noundef @.str.5, i32 noundef %9104, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 368, ptr noundef %9107, ptr noundef %9110, ptr noundef %9113, i32 noundef %9115) #10
  br label %9117

9117:                                             ; preds = %9100, %9083
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  br label %9118

9118:                                             ; preds = %9117
  br label %9119

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

9120:                                             ; No predecessors!
  br label %9121

9121:                                             ; preds = %9120
  br label %9122

9122:                                             ; preds = %9121, %9062
  br label %9123

9123:                                             ; preds = %9122
  br label %9124

9124:                                             ; preds = %9123
  br label %9125

9125:                                             ; preds = %9124
  br label %9126

9126:                                             ; preds = %9125
  br label %9127

9127:                                             ; preds = %9126
  %9128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9128, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9129 = call ptr @__errno_location() #11
  store i32 0, ptr %9129, align 4, !tbaa !5
  br label %9130

9130:                                             ; preds = %9127
  br label %9131

9131:                                             ; preds = %9130
  br label %9132

9132:                                             ; preds = %9131
  br label %9133

9133:                                             ; preds = %9132
  br label %9134

9134:                                             ; preds = %9133
  %9135 = load i32, ptr @test_count, align 4, !tbaa !5
  %9136 = add nsw i32 %9135, 1
  store i32 %9136, ptr @test_count, align 4, !tbaa !5
  %9137 = load ptr, ptr %188, align 8, !tbaa !9
  %9138 = getelementptr inbounds %struct.s2n_connection, ptr %9137, i32 0, i32 47
  %9139 = load i8, ptr %9138, align 1, !tbaa !59
  %9140 = zext i8 %9139 to i32
  %9141 = icmp eq i32 %9140, 70
  br i1 %9141, label %9195, label %9142

9142:                                             ; preds = %9134
  br label %9143

9143:                                             ; preds = %9142
  br label %9144

9144:                                             ; preds = %9143
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #10
  %9145 = call ptr @__errno_location() #11
  %9146 = load i32, ptr %9145, align 4, !tbaa !5
  store i32 %9146, ptr %199, align 4, !tbaa !5
  %9147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9148 = call i32 @s2n_print_stacktrace(ptr noundef %9147)
  %9149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9150 = trunc i8 %9149 to i1
  br i1 %9150, label %9151, label %9173

9151:                                             ; preds = %9144
  %9152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9153 = call i32 @fileno(ptr noundef %9152) #10
  %9154 = call i32 @isatty(i32 noundef %9153) #10
  %9155 = icmp ne i32 %9154, 0
  br i1 %9155, label %9156, label %9173

9156:                                             ; preds = %9151
  %9157 = load i32, ptr %199, align 4, !tbaa !5
  %9158 = call ptr @__errno_location() #11
  store i32 %9157, ptr %9158, align 4, !tbaa !5
  %9159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9160 = load i32, ptr @test_count, align 4, !tbaa !5
  %9161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9162 = load i32, ptr %9161, align 4, !tbaa !5
  %9163 = call ptr @s2n_strerror(i32 noundef %9162, ptr noundef @.str.4)
  %9164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9165 = load i32, ptr %9164, align 4, !tbaa !5
  %9166 = call ptr @s2n_strerror_debug(i32 noundef %9165, ptr noundef @.str.4)
  %9167 = call ptr @__errno_location() #11
  %9168 = load i32, ptr %9167, align 4, !tbaa !5
  %9169 = call ptr @strerror(i32 noundef %9168) #10
  %9170 = call ptr @__errno_location() #11
  %9171 = load i32, ptr %9170, align 4, !tbaa !5
  %9172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9159, ptr noundef @.str.2, i32 noundef %9160, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 369, ptr noundef %9163, ptr noundef %9166, ptr noundef %9169, i32 noundef %9171) #10
  br label %9190

9173:                                             ; preds = %9151, %9144
  %9174 = load i32, ptr %199, align 4, !tbaa !5
  %9175 = call ptr @__errno_location() #11
  store i32 %9174, ptr %9175, align 4, !tbaa !5
  %9176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9177 = load i32, ptr @test_count, align 4, !tbaa !5
  %9178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9179 = load i32, ptr %9178, align 4, !tbaa !5
  %9180 = call ptr @s2n_strerror(i32 noundef %9179, ptr noundef @.str.4)
  %9181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9182 = load i32, ptr %9181, align 4, !tbaa !5
  %9183 = call ptr @s2n_strerror_debug(i32 noundef %9182, ptr noundef @.str.4)
  %9184 = call ptr @__errno_location() #11
  %9185 = load i32, ptr %9184, align 4, !tbaa !5
  %9186 = call ptr @strerror(i32 noundef %9185) #10
  %9187 = call ptr @__errno_location() #11
  %9188 = load i32, ptr %9187, align 4, !tbaa !5
  %9189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9176, ptr noundef @.str.5, i32 noundef %9177, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 369, ptr noundef %9180, ptr noundef %9183, ptr noundef %9186, i32 noundef %9188) #10
  br label %9190

9190:                                             ; preds = %9173, %9156
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #10
  br label %9191

9191:                                             ; preds = %9190
  br label %9192

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

9193:                                             ; No predecessors!
  br label %9194

9194:                                             ; preds = %9193
  br label %9195

9195:                                             ; preds = %9194, %9134
  br label %9196

9196:                                             ; preds = %9195
  br label %9197

9197:                                             ; preds = %9196
  br label %9198

9198:                                             ; preds = %9197
  %9199 = load i32, ptr @test_count, align 4, !tbaa !5
  %9200 = add nsw i32 %9199, 1
  store i32 %9200, ptr @test_count, align 4, !tbaa !5
  %9201 = load ptr, ptr %188, align 8, !tbaa !9
  %9202 = call i32 @s2n_connection_free(ptr noundef %9201)
  %9203 = icmp eq i32 %9202, -1
  br i1 %9203, label %9204, label %9257

9204:                                             ; preds = %9198
  br label %9205

9205:                                             ; preds = %9204
  br label %9206

9206:                                             ; preds = %9205
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #10
  %9207 = call ptr @__errno_location() #11
  %9208 = load i32, ptr %9207, align 4, !tbaa !5
  store i32 %9208, ptr %200, align 4, !tbaa !5
  %9209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9210 = call i32 @s2n_print_stacktrace(ptr noundef %9209)
  %9211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9212 = trunc i8 %9211 to i1
  br i1 %9212, label %9213, label %9235

9213:                                             ; preds = %9206
  %9214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9215 = call i32 @fileno(ptr noundef %9214) #10
  %9216 = call i32 @isatty(i32 noundef %9215) #10
  %9217 = icmp ne i32 %9216, 0
  br i1 %9217, label %9218, label %9235

9218:                                             ; preds = %9213
  %9219 = load i32, ptr %200, align 4, !tbaa !5
  %9220 = call ptr @__errno_location() #11
  store i32 %9219, ptr %9220, align 4, !tbaa !5
  %9221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9222 = load i32, ptr @test_count, align 4, !tbaa !5
  %9223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9224 = load i32, ptr %9223, align 4, !tbaa !5
  %9225 = call ptr @s2n_strerror(i32 noundef %9224, ptr noundef @.str.4)
  %9226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9227 = load i32, ptr %9226, align 4, !tbaa !5
  %9228 = call ptr @s2n_strerror_debug(i32 noundef %9227, ptr noundef @.str.4)
  %9229 = call ptr @__errno_location() #11
  %9230 = load i32, ptr %9229, align 4, !tbaa !5
  %9231 = call ptr @strerror(i32 noundef %9230) #10
  %9232 = call ptr @__errno_location() #11
  %9233 = load i32, ptr %9232, align 4, !tbaa !5
  %9234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9221, ptr noundef @.str.2, i32 noundef %9222, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 371, ptr noundef %9225, ptr noundef %9228, ptr noundef %9231, i32 noundef %9233) #10
  br label %9252

9235:                                             ; preds = %9213, %9206
  %9236 = load i32, ptr %200, align 4, !tbaa !5
  %9237 = call ptr @__errno_location() #11
  store i32 %9236, ptr %9237, align 4, !tbaa !5
  %9238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9239 = load i32, ptr @test_count, align 4, !tbaa !5
  %9240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call ptr @s2n_strerror(i32 noundef %9241, ptr noundef @.str.4)
  %9243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call ptr @s2n_strerror_debug(i32 noundef %9244, ptr noundef @.str.4)
  %9246 = call ptr @__errno_location() #11
  %9247 = load i32, ptr %9246, align 4, !tbaa !5
  %9248 = call ptr @strerror(i32 noundef %9247) #10
  %9249 = call ptr @__errno_location() #11
  %9250 = load i32, ptr %9249, align 4, !tbaa !5
  %9251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9238, ptr noundef @.str.5, i32 noundef %9239, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 371, ptr noundef %9242, ptr noundef %9245, ptr noundef %9248, i32 noundef %9250) #10
  br label %9252

9252:                                             ; preds = %9235, %9218
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #10
  br label %9253

9253:                                             ; preds = %9252
  br label %9254

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

9255:                                             ; No predecessors!
  br label %9256

9256:                                             ; preds = %9255
  br label %9257

9257:                                             ; preds = %9256, %9198
  br label %9258

9258:                                             ; preds = %9257
  br label %9259

9259:                                             ; preds = %9258
  br label %9260

9260:                                             ; preds = %9259
  %9261 = load i32, ptr @test_count, align 4, !tbaa !5
  %9262 = add nsw i32 %9261, 1
  store i32 %9262, ptr @test_count, align 4, !tbaa !5
  %9263 = call i32 @s2n_stuffer_free(ptr noundef %191)
  %9264 = icmp eq i32 %9263, -1
  br i1 %9264, label %9265, label %9318

9265:                                             ; preds = %9260
  br label %9266

9266:                                             ; preds = %9265
  br label %9267

9267:                                             ; preds = %9266
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #10
  %9268 = call ptr @__errno_location() #11
  %9269 = load i32, ptr %9268, align 4, !tbaa !5
  store i32 %9269, ptr %201, align 4, !tbaa !5
  %9270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9271 = call i32 @s2n_print_stacktrace(ptr noundef %9270)
  %9272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9273 = trunc i8 %9272 to i1
  br i1 %9273, label %9274, label %9296

9274:                                             ; preds = %9267
  %9275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9276 = call i32 @fileno(ptr noundef %9275) #10
  %9277 = call i32 @isatty(i32 noundef %9276) #10
  %9278 = icmp ne i32 %9277, 0
  br i1 %9278, label %9279, label %9296

9279:                                             ; preds = %9274
  %9280 = load i32, ptr %201, align 4, !tbaa !5
  %9281 = call ptr @__errno_location() #11
  store i32 %9280, ptr %9281, align 4, !tbaa !5
  %9282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9283 = load i32, ptr @test_count, align 4, !tbaa !5
  %9284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9285 = load i32, ptr %9284, align 4, !tbaa !5
  %9286 = call ptr @s2n_strerror(i32 noundef %9285, ptr noundef @.str.4)
  %9287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9288 = load i32, ptr %9287, align 4, !tbaa !5
  %9289 = call ptr @s2n_strerror_debug(i32 noundef %9288, ptr noundef @.str.4)
  %9290 = call ptr @__errno_location() #11
  %9291 = load i32, ptr %9290, align 4, !tbaa !5
  %9292 = call ptr @strerror(i32 noundef %9291) #10
  %9293 = call ptr @__errno_location() #11
  %9294 = load i32, ptr %9293, align 4, !tbaa !5
  %9295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9282, ptr noundef @.str.2, i32 noundef %9283, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 372, ptr noundef %9286, ptr noundef %9289, ptr noundef %9292, i32 noundef %9294) #10
  br label %9313

9296:                                             ; preds = %9274, %9267
  %9297 = load i32, ptr %201, align 4, !tbaa !5
  %9298 = call ptr @__errno_location() #11
  store i32 %9297, ptr %9298, align 4, !tbaa !5
  %9299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9300 = load i32, ptr @test_count, align 4, !tbaa !5
  %9301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9302 = load i32, ptr %9301, align 4, !tbaa !5
  %9303 = call ptr @s2n_strerror(i32 noundef %9302, ptr noundef @.str.4)
  %9304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9305 = load i32, ptr %9304, align 4, !tbaa !5
  %9306 = call ptr @s2n_strerror_debug(i32 noundef %9305, ptr noundef @.str.4)
  %9307 = call ptr @__errno_location() #11
  %9308 = load i32, ptr %9307, align 4, !tbaa !5
  %9309 = call ptr @strerror(i32 noundef %9308) #10
  %9310 = call ptr @__errno_location() #11
  %9311 = load i32, ptr %9310, align 4, !tbaa !5
  %9312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9299, ptr noundef @.str.5, i32 noundef %9300, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 372, ptr noundef %9303, ptr noundef %9306, ptr noundef %9309, i32 noundef %9311) #10
  br label %9313

9313:                                             ; preds = %9296, %9279
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #10
  br label %9314

9314:                                             ; preds = %9313
  br label %9315

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

9316:                                             ; No predecessors!
  br label %9317

9317:                                             ; preds = %9316
  br label %9318

9318:                                             ; preds = %9317, %9260
  br label %9319

9319:                                             ; preds = %9318
  br label %9320

9320:                                             ; preds = %9319
  call void @llvm.lifetime.end.p0(i64 40, ptr %191) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %188) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #10
  store ptr null, ptr %202, align 8, !tbaa !9
  br label %9321

9321:                                             ; preds = %9320
  %9322 = load i32, ptr @test_count, align 4, !tbaa !5
  %9323 = add nsw i32 %9322, 1
  store i32 %9323, ptr @test_count, align 4, !tbaa !5
  %9324 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9324, ptr %202, align 8, !tbaa !9
  %9325 = icmp eq ptr %9324, null
  br i1 %9325, label %9326, label %9379

9326:                                             ; preds = %9321
  br label %9327

9327:                                             ; preds = %9326
  br label %9328

9328:                                             ; preds = %9327
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #10
  %9329 = call ptr @__errno_location() #11
  %9330 = load i32, ptr %9329, align 4, !tbaa !5
  store i32 %9330, ptr %203, align 4, !tbaa !5
  %9331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9332 = call i32 @s2n_print_stacktrace(ptr noundef %9331)
  %9333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9334 = trunc i8 %9333 to i1
  br i1 %9334, label %9335, label %9357

9335:                                             ; preds = %9328
  %9336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9337 = call i32 @fileno(ptr noundef %9336) #10
  %9338 = call i32 @isatty(i32 noundef %9337) #10
  %9339 = icmp ne i32 %9338, 0
  br i1 %9339, label %9340, label %9357

9340:                                             ; preds = %9335
  %9341 = load i32, ptr %203, align 4, !tbaa !5
  %9342 = call ptr @__errno_location() #11
  store i32 %9341, ptr %9342, align 4, !tbaa !5
  %9343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9344 = load i32, ptr @test_count, align 4, !tbaa !5
  %9345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9346 = load i32, ptr %9345, align 4, !tbaa !5
  %9347 = call ptr @s2n_strerror(i32 noundef %9346, ptr noundef @.str.4)
  %9348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9349 = load i32, ptr %9348, align 4, !tbaa !5
  %9350 = call ptr @s2n_strerror_debug(i32 noundef %9349, ptr noundef @.str.4)
  %9351 = call ptr @__errno_location() #11
  %9352 = load i32, ptr %9351, align 4, !tbaa !5
  %9353 = call ptr @strerror(i32 noundef %9352) #10
  %9354 = call ptr @__errno_location() #11
  %9355 = load i32, ptr %9354, align 4, !tbaa !5
  %9356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9343, ptr noundef @.str.2, i32 noundef %9344, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 380, ptr noundef %9347, ptr noundef %9350, ptr noundef %9353, i32 noundef %9355) #10
  br label %9374

9357:                                             ; preds = %9335, %9328
  %9358 = load i32, ptr %203, align 4, !tbaa !5
  %9359 = call ptr @__errno_location() #11
  store i32 %9358, ptr %9359, align 4, !tbaa !5
  %9360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9361 = load i32, ptr @test_count, align 4, !tbaa !5
  %9362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9363 = load i32, ptr %9362, align 4, !tbaa !5
  %9364 = call ptr @s2n_strerror(i32 noundef %9363, ptr noundef @.str.4)
  %9365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9366 = load i32, ptr %9365, align 4, !tbaa !5
  %9367 = call ptr @s2n_strerror_debug(i32 noundef %9366, ptr noundef @.str.4)
  %9368 = call ptr @__errno_location() #11
  %9369 = load i32, ptr %9368, align 4, !tbaa !5
  %9370 = call ptr @strerror(i32 noundef %9369) #10
  %9371 = call ptr @__errno_location() #11
  %9372 = load i32, ptr %9371, align 4, !tbaa !5
  %9373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9360, ptr noundef @.str.5, i32 noundef %9361, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 380, ptr noundef %9364, ptr noundef %9367, ptr noundef %9370, i32 noundef %9372) #10
  br label %9374

9374:                                             ; preds = %9357, %9340
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #10
  br label %9375

9375:                                             ; preds = %9374
  br label %9376

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

9377:                                             ; No predecessors!
  br label %9378

9378:                                             ; preds = %9377
  br label %9379

9379:                                             ; preds = %9378, %9321
  br label %9380

9380:                                             ; preds = %9379
  br label %9381

9381:                                             ; preds = %9380
  br label %9382

9382:                                             ; preds = %9381
  %9383 = load i32, ptr @test_count, align 4, !tbaa !5
  %9384 = add nsw i32 %9383, 1
  store i32 %9384, ptr @test_count, align 4, !tbaa !5
  %9385 = load ptr, ptr %202, align 8, !tbaa !9
  %9386 = call i32 @s2n_client_hello_send(ptr noundef %9385)
  %9387 = icmp eq i32 %9386, -1
  br i1 %9387, label %9388, label %9441

9388:                                             ; preds = %9382
  br label %9389

9389:                                             ; preds = %9388
  br label %9390

9390:                                             ; preds = %9389
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #10
  %9391 = call ptr @__errno_location() #11
  %9392 = load i32, ptr %9391, align 4, !tbaa !5
  store i32 %9392, ptr %204, align 4, !tbaa !5
  %9393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9394 = call i32 @s2n_print_stacktrace(ptr noundef %9393)
  %9395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9396 = trunc i8 %9395 to i1
  br i1 %9396, label %9397, label %9419

9397:                                             ; preds = %9390
  %9398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9399 = call i32 @fileno(ptr noundef %9398) #10
  %9400 = call i32 @isatty(i32 noundef %9399) #10
  %9401 = icmp ne i32 %9400, 0
  br i1 %9401, label %9402, label %9419

9402:                                             ; preds = %9397
  %9403 = load i32, ptr %204, 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.2, i32 noundef %9406, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 381, ptr noundef %9409, ptr noundef %9412, ptr noundef %9415, i32 noundef %9417) #10
  br label %9436

9419:                                             ; preds = %9397, %9390
  %9420 = load i32, ptr %204, align 4, !tbaa !5
  %9421 = call ptr @__errno_location() #11
  store i32 %9420, ptr %9421, align 4, !tbaa !5
  %9422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9423 = load i32, ptr @test_count, align 4, !tbaa !5
  %9424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9425 = load i32, ptr %9424, align 4, !tbaa !5
  %9426 = call ptr @s2n_strerror(i32 noundef %9425, ptr noundef @.str.4)
  %9427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9428 = load i32, ptr %9427, align 4, !tbaa !5
  %9429 = call ptr @s2n_strerror_debug(i32 noundef %9428, ptr noundef @.str.4)
  %9430 = call ptr @__errno_location() #11
  %9431 = load i32, ptr %9430, align 4, !tbaa !5
  %9432 = call ptr @strerror(i32 noundef %9431) #10
  %9433 = call ptr @__errno_location() #11
  %9434 = load i32, ptr %9433, align 4, !tbaa !5
  %9435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9422, ptr noundef @.str.5, i32 noundef %9423, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 381, ptr noundef %9426, ptr noundef %9429, ptr noundef %9432, i32 noundef %9434) #10
  br label %9436

9436:                                             ; preds = %9419, %9402
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #10
  br label %9437

9437:                                             ; preds = %9436
  br label %9438

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

9439:                                             ; No predecessors!
  br label %9440

9440:                                             ; preds = %9439
  br label %9441

9441:                                             ; preds = %9440, %9382
  br label %9442

9442:                                             ; preds = %9441
  br label %9443

9443:                                             ; preds = %9442
  call void @llvm.lifetime.start.p0(i64 40, ptr %205) #10
  %9444 = load ptr, ptr %202, align 8, !tbaa !9
  %9445 = getelementptr inbounds %struct.s2n_connection, ptr %9444, i32 0, i32 52
  %9446 = getelementptr inbounds %struct.s2n_handshake, ptr %9445, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %205, ptr align 8 %9446, i64 40, i1 false), !tbaa.struct !60
  call void @llvm.lifetime.start.p0(i64 2, ptr %206) #10
  br label %9447

9447:                                             ; preds = %9443
  %9448 = load i32, ptr @test_count, align 4, !tbaa !5
  %9449 = add nsw i32 %9448, 1
  store i32 %9449, ptr @test_count, align 4, !tbaa !5
  %9450 = getelementptr inbounds [2 x i8], ptr %206, i64 0, i64 0
  %9451 = call i32 @s2n_stuffer_read_bytes(ptr noundef %205, ptr noundef %9450, i32 noundef 2)
  %9452 = icmp eq i32 %9451, -1
  br i1 %9452, label %9453, label %9506

9453:                                             ; preds = %9447
  br label %9454

9454:                                             ; preds = %9453
  br label %9455

9455:                                             ; preds = %9454
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #10
  %9456 = call ptr @__errno_location() #11
  %9457 = load i32, ptr %9456, align 4, !tbaa !5
  store i32 %9457, ptr %207, align 4, !tbaa !5
  %9458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9459 = call i32 @s2n_print_stacktrace(ptr noundef %9458)
  %9460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9461 = trunc i8 %9460 to i1
  br i1 %9461, label %9462, label %9484

9462:                                             ; preds = %9455
  %9463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9464 = call i32 @fileno(ptr noundef %9463) #10
  %9465 = call i32 @isatty(i32 noundef %9464) #10
  %9466 = icmp ne i32 %9465, 0
  br i1 %9466, label %9467, label %9484

9467:                                             ; preds = %9462
  %9468 = load i32, ptr %207, align 4, !tbaa !5
  %9469 = call ptr @__errno_location() #11
  store i32 %9468, ptr %9469, align 4, !tbaa !5
  %9470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9471 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9473, ptr noundef @.str.4)
  %9475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9476 = load i32, ptr %9475, align 4, !tbaa !5
  %9477 = call ptr @s2n_strerror_debug(i32 noundef %9476, ptr noundef @.str.4)
  %9478 = call ptr @__errno_location() #11
  %9479 = load i32, ptr %9478, align 4, !tbaa !5
  %9480 = call ptr @strerror(i32 noundef %9479) #10
  %9481 = call ptr @__errno_location() #11
  %9482 = load i32, ptr %9481, align 4, !tbaa !5
  %9483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9470, ptr noundef @.str.2, i32 noundef %9471, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 385, ptr noundef %9474, ptr noundef %9477, ptr noundef %9480, i32 noundef %9482) #10
  br label %9501

9484:                                             ; preds = %9462, %9455
  %9485 = load i32, ptr %207, align 4, !tbaa !5
  %9486 = call ptr @__errno_location() #11
  store i32 %9485, ptr %9486, align 4, !tbaa !5
  %9487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9488 = load i32, ptr @test_count, align 4, !tbaa !5
  %9489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9490 = load i32, ptr %9489, align 4, !tbaa !5
  %9491 = call ptr @s2n_strerror(i32 noundef %9490, ptr noundef @.str.4)
  %9492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9493 = load i32, ptr %9492, align 4, !tbaa !5
  %9494 = call ptr @s2n_strerror_debug(i32 noundef %9493, ptr noundef @.str.4)
  %9495 = call ptr @__errno_location() #11
  %9496 = load i32, ptr %9495, align 4, !tbaa !5
  %9497 = call ptr @strerror(i32 noundef %9496) #10
  %9498 = call ptr @__errno_location() #11
  %9499 = load i32, ptr %9498, align 4, !tbaa !5
  %9500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9487, ptr noundef @.str.5, i32 noundef %9488, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 385, ptr noundef %9491, ptr noundef %9494, ptr noundef %9497, i32 noundef %9499) #10
  br label %9501

9501:                                             ; preds = %9484, %9467
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #10
  br label %9502

9502:                                             ; preds = %9501
  br label %9503

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

9504:                                             ; No predecessors!
  br label %9505

9505:                                             ; preds = %9504
  br label %9506

9506:                                             ; preds = %9505, %9447
  br label %9507

9507:                                             ; preds = %9506
  br label %9508

9508:                                             ; preds = %9507
  br label %9509

9509:                                             ; preds = %9508
  %9510 = load i32, ptr @test_count, align 4, !tbaa !5
  %9511 = add nsw i32 %9510, 1
  store i32 %9511, ptr @test_count, align 4, !tbaa !5
  %9512 = getelementptr inbounds [2 x i8], ptr %206, i64 0, i64 0
  %9513 = load i8, ptr %9512, align 1, !tbaa !15
  %9514 = zext i8 %9513 to i32
  %9515 = icmp eq i32 %9514, 3
  br i1 %9515, label %9569, label %9516

9516:                                             ; preds = %9509
  br label %9517

9517:                                             ; preds = %9516
  br label %9518

9518:                                             ; preds = %9517
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #10
  %9519 = call ptr @__errno_location() #11
  %9520 = load i32, ptr %9519, align 4, !tbaa !5
  store i32 %9520, ptr %208, align 4, !tbaa !5
  %9521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9522 = call i32 @s2n_print_stacktrace(ptr noundef %9521)
  %9523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9524 = trunc i8 %9523 to i1
  br i1 %9524, label %9525, label %9547

9525:                                             ; preds = %9518
  %9526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9527 = call i32 @fileno(ptr noundef %9526) #10
  %9528 = call i32 @isatty(i32 noundef %9527) #10
  %9529 = icmp ne i32 %9528, 0
  br i1 %9529, label %9530, label %9547

9530:                                             ; preds = %9525
  %9531 = load i32, ptr %208, align 4, !tbaa !5
  %9532 = call ptr @__errno_location() #11
  store i32 %9531, ptr %9532, align 4, !tbaa !5
  %9533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9534 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9536, ptr noundef @.str.4)
  %9538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9539 = load i32, ptr %9538, align 4, !tbaa !5
  %9540 = call ptr @s2n_strerror_debug(i32 noundef %9539, ptr noundef @.str.4)
  %9541 = call ptr @__errno_location() #11
  %9542 = load i32, ptr %9541, align 4, !tbaa !5
  %9543 = call ptr @strerror(i32 noundef %9542) #10
  %9544 = call ptr @__errno_location() #11
  %9545 = load i32, ptr %9544, align 4, !tbaa !5
  %9546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9533, ptr noundef @.str.2, i32 noundef %9534, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 387, ptr noundef %9537, ptr noundef %9540, ptr noundef %9543, i32 noundef %9545) #10
  br label %9564

9547:                                             ; preds = %9525, %9518
  %9548 = load i32, ptr %208, align 4, !tbaa !5
  %9549 = call ptr @__errno_location() #11
  store i32 %9548, ptr %9549, align 4, !tbaa !5
  %9550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9551 = load i32, ptr @test_count, align 4, !tbaa !5
  %9552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9553 = load i32, ptr %9552, align 4, !tbaa !5
  %9554 = call ptr @s2n_strerror(i32 noundef %9553, ptr noundef @.str.4)
  %9555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9556 = load i32, ptr %9555, align 4, !tbaa !5
  %9557 = call ptr @s2n_strerror_debug(i32 noundef %9556, ptr noundef @.str.4)
  %9558 = call ptr @__errno_location() #11
  %9559 = load i32, ptr %9558, align 4, !tbaa !5
  %9560 = call ptr @strerror(i32 noundef %9559) #10
  %9561 = call ptr @__errno_location() #11
  %9562 = load i32, ptr %9561, align 4, !tbaa !5
  %9563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9550, ptr noundef @.str.5, i32 noundef %9551, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 387, ptr noundef %9554, ptr noundef %9557, ptr noundef %9560, i32 noundef %9562) #10
  br label %9564

9564:                                             ; preds = %9547, %9530
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #10
  br label %9565

9565:                                             ; preds = %9564
  br label %9566

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

9567:                                             ; No predecessors!
  br label %9568

9568:                                             ; preds = %9567
  br label %9569

9569:                                             ; preds = %9568, %9509
  br label %9570

9570:                                             ; preds = %9569
  br label %9571

9571:                                             ; preds = %9570
  br label %9572

9572:                                             ; preds = %9571
  %9573 = load i32, ptr @test_count, align 4, !tbaa !5
  %9574 = add nsw i32 %9573, 1
  store i32 %9574, ptr @test_count, align 4, !tbaa !5
  %9575 = getelementptr inbounds [2 x i8], ptr %206, i64 0, i64 1
  %9576 = load i8, ptr %9575, align 1, !tbaa !15
  %9577 = zext i8 %9576 to i32
  %9578 = icmp eq i32 %9577, 3
  br i1 %9578, label %9632, label %9579

9579:                                             ; preds = %9572
  br label %9580

9580:                                             ; preds = %9579
  br label %9581

9581:                                             ; preds = %9580
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #10
  %9582 = call ptr @__errno_location() #11
  %9583 = load i32, ptr %9582, align 4, !tbaa !5
  store i32 %9583, ptr %209, align 4, !tbaa !5
  %9584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9585 = call i32 @s2n_print_stacktrace(ptr noundef %9584)
  %9586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9587 = trunc i8 %9586 to i1
  br i1 %9587, label %9588, label %9610

9588:                                             ; preds = %9581
  %9589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9590 = call i32 @fileno(ptr noundef %9589) #10
  %9591 = call i32 @isatty(i32 noundef %9590) #10
  %9592 = icmp ne i32 %9591, 0
  br i1 %9592, label %9593, label %9610

9593:                                             ; preds = %9588
  %9594 = load i32, ptr %209, align 4, !tbaa !5
  %9595 = call ptr @__errno_location() #11
  store i32 %9594, ptr %9595, align 4, !tbaa !5
  %9596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9597 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9599, ptr noundef @.str.4)
  %9601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9602 = load i32, ptr %9601, align 4, !tbaa !5
  %9603 = call ptr @s2n_strerror_debug(i32 noundef %9602, ptr noundef @.str.4)
  %9604 = call ptr @__errno_location() #11
  %9605 = load i32, ptr %9604, align 4, !tbaa !5
  %9606 = call ptr @strerror(i32 noundef %9605) #10
  %9607 = call ptr @__errno_location() #11
  %9608 = load i32, ptr %9607, align 4, !tbaa !5
  %9609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9596, ptr noundef @.str.2, i32 noundef %9597, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 388, ptr noundef %9600, ptr noundef %9603, ptr noundef %9606, i32 noundef %9608) #10
  br label %9627

9610:                                             ; preds = %9588, %9581
  %9611 = load i32, ptr %209, align 4, !tbaa !5
  %9612 = call ptr @__errno_location() #11
  store i32 %9611, ptr %9612, align 4, !tbaa !5
  %9613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9614 = load i32, ptr @test_count, align 4, !tbaa !5
  %9615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9616 = load i32, ptr %9615, align 4, !tbaa !5
  %9617 = call ptr @s2n_strerror(i32 noundef %9616, ptr noundef @.str.4)
  %9618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9619 = load i32, ptr %9618, align 4, !tbaa !5
  %9620 = call ptr @s2n_strerror_debug(i32 noundef %9619, ptr noundef @.str.4)
  %9621 = call ptr @__errno_location() #11
  %9622 = load i32, ptr %9621, align 4, !tbaa !5
  %9623 = call ptr @strerror(i32 noundef %9622) #10
  %9624 = call ptr @__errno_location() #11
  %9625 = load i32, ptr %9624, align 4, !tbaa !5
  %9626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9613, ptr noundef @.str.5, i32 noundef %9614, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 388, ptr noundef %9617, ptr noundef %9620, ptr noundef %9623, i32 noundef %9625) #10
  br label %9627

9627:                                             ; preds = %9610, %9593
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #10
  br label %9628

9628:                                             ; preds = %9627
  br label %9629

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

9630:                                             ; No predecessors!
  br label %9631

9631:                                             ; preds = %9630
  br label %9632

9632:                                             ; preds = %9631, %9572
  br label %9633

9633:                                             ; preds = %9632
  br label %9634

9634:                                             ; preds = %9633
  br label %9635

9635:                                             ; preds = %9634
  %9636 = load i32, ptr @test_count, align 4, !tbaa !5
  %9637 = add nsw i32 %9636, 1
  store i32 %9637, ptr @test_count, align 4, !tbaa !5
  %9638 = load ptr, ptr %202, align 8, !tbaa !9
  %9639 = call i32 @s2n_connection_free(ptr noundef %9638)
  %9640 = icmp eq i32 %9639, -1
  br i1 %9640, label %9641, label %9694

9641:                                             ; preds = %9635
  br label %9642

9642:                                             ; preds = %9641
  br label %9643

9643:                                             ; preds = %9642
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #10
  %9644 = call ptr @__errno_location() #11
  %9645 = load i32, ptr %9644, align 4, !tbaa !5
  store i32 %9645, ptr %210, align 4, !tbaa !5
  %9646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9647 = call i32 @s2n_print_stacktrace(ptr noundef %9646)
  %9648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9649 = trunc i8 %9648 to i1
  br i1 %9649, label %9650, label %9672

9650:                                             ; preds = %9643
  %9651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9652 = call i32 @fileno(ptr noundef %9651) #10
  %9653 = call i32 @isatty(i32 noundef %9652) #10
  %9654 = icmp ne i32 %9653, 0
  br i1 %9654, label %9655, label %9672

9655:                                             ; preds = %9650
  %9656 = load i32, ptr %210, align 4, !tbaa !5
  %9657 = call ptr @__errno_location() #11
  store i32 %9656, ptr %9657, align 4, !tbaa !5
  %9658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9659 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9661, ptr noundef @.str.4)
  %9663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9664 = load i32, ptr %9663, align 4, !tbaa !5
  %9665 = call ptr @s2n_strerror_debug(i32 noundef %9664, ptr noundef @.str.4)
  %9666 = call ptr @__errno_location() #11
  %9667 = load i32, ptr %9666, align 4, !tbaa !5
  %9668 = call ptr @strerror(i32 noundef %9667) #10
  %9669 = call ptr @__errno_location() #11
  %9670 = load i32, ptr %9669, align 4, !tbaa !5
  %9671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9658, ptr noundef @.str.2, i32 noundef %9659, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 390, ptr noundef %9662, ptr noundef %9665, ptr noundef %9668, i32 noundef %9670) #10
  br label %9689

9672:                                             ; preds = %9650, %9643
  %9673 = load i32, ptr %210, align 4, !tbaa !5
  %9674 = call ptr @__errno_location() #11
  store i32 %9673, ptr %9674, align 4, !tbaa !5
  %9675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9676 = load i32, ptr @test_count, align 4, !tbaa !5
  %9677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9678 = load i32, ptr %9677, align 4, !tbaa !5
  %9679 = call ptr @s2n_strerror(i32 noundef %9678, ptr noundef @.str.4)
  %9680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9681 = load i32, ptr %9680, align 4, !tbaa !5
  %9682 = call ptr @s2n_strerror_debug(i32 noundef %9681, ptr noundef @.str.4)
  %9683 = call ptr @__errno_location() #11
  %9684 = load i32, ptr %9683, align 4, !tbaa !5
  %9685 = call ptr @strerror(i32 noundef %9684) #10
  %9686 = call ptr @__errno_location() #11
  %9687 = load i32, ptr %9686, align 4, !tbaa !5
  %9688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9675, ptr noundef @.str.5, i32 noundef %9676, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 390, ptr noundef %9679, ptr noundef %9682, ptr noundef %9685, i32 noundef %9687) #10
  br label %9689

9689:                                             ; preds = %9672, %9655
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #10
  br label %9690

9690:                                             ; preds = %9689
  br label %9691

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

9692:                                             ; No predecessors!
  br label %9693

9693:                                             ; preds = %9692
  br label %9694

9694:                                             ; preds = %9693, %9635
  br label %9695

9695:                                             ; preds = %9694
  br label %9696

9696:                                             ; preds = %9695
  call void @llvm.lifetime.end.p0(i64 2, ptr %206) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %205) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #10
  %9697 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %9697, label %9698, label %10719

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

9699:                                             ; preds = %9698
  %9700 = load i32, ptr @test_count, align 4, !tbaa !5
  %9701 = add nsw i32 %9700, 1
  store i32 %9701, ptr @test_count, align 4, !tbaa !5
  %9702 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %211, ptr noundef @.str.71, ptr noundef @.str.72)
  %9703 = icmp eq i32 %9702, -1
  br i1 %9703, label %9704, label %9757

9704:                                             ; preds = %9699
  br label %9705

9705:                                             ; preds = %9704
  br label %9706

9706:                                             ; preds = %9705
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #10
  %9707 = call ptr @__errno_location() #11
  %9708 = load i32, ptr %9707, align 4, !tbaa !5
  store i32 %9708, ptr %212, align 4, !tbaa !5
  %9709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9710 = call i32 @s2n_print_stacktrace(ptr noundef %9709)
  %9711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9712 = trunc i8 %9711 to i1
  br i1 %9712, label %9713, label %9735

9713:                                             ; preds = %9706
  %9714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9715 = call i32 @fileno(ptr noundef %9714) #10
  %9716 = call i32 @isatty(i32 noundef %9715) #10
  %9717 = icmp ne i32 %9716, 0
  br i1 %9717, label %9718, label %9735

9718:                                             ; preds = %9713
  %9719 = load i32, ptr %212, align 4, !tbaa !5
  %9720 = call ptr @__errno_location() #11
  store i32 %9719, ptr %9720, align 4, !tbaa !5
  %9721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9722 = load i32, ptr @test_count, align 4, !tbaa !5
  %9723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9724 = load i32, ptr %9723, align 4, !tbaa !5
  %9725 = call ptr @s2n_strerror(i32 noundef %9724, ptr noundef @.str.4)
  %9726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9727 = load i32, ptr %9726, align 4, !tbaa !5
  %9728 = call ptr @s2n_strerror_debug(i32 noundef %9727, ptr noundef @.str.4)
  %9729 = call ptr @__errno_location() #11
  %9730 = load i32, ptr %9729, align 4, !tbaa !5
  %9731 = call ptr @strerror(i32 noundef %9730) #10
  %9732 = call ptr @__errno_location() #11
  %9733 = load i32, ptr %9732, align 4, !tbaa !5
  %9734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9721, ptr noundef @.str.2, i32 noundef %9722, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 405, ptr noundef %9725, ptr noundef %9728, ptr noundef %9731, i32 noundef %9733) #10
  br label %9752

9735:                                             ; preds = %9713, %9706
  %9736 = load i32, ptr %212, align 4, !tbaa !5
  %9737 = call ptr @__errno_location() #11
  store i32 %9736, ptr %9737, align 4, !tbaa !5
  %9738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9739 = load i32, ptr @test_count, align 4, !tbaa !5
  %9740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9741 = load i32, ptr %9740, align 4, !tbaa !5
  %9742 = call ptr @s2n_strerror(i32 noundef %9741, ptr noundef @.str.4)
  %9743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9744 = load i32, ptr %9743, align 4, !tbaa !5
  %9745 = call ptr @s2n_strerror_debug(i32 noundef %9744, ptr noundef @.str.4)
  %9746 = call ptr @__errno_location() #11
  %9747 = load i32, ptr %9746, align 4, !tbaa !5
  %9748 = call ptr @strerror(i32 noundef %9747) #10
  %9749 = call ptr @__errno_location() #11
  %9750 = load i32, ptr %9749, align 4, !tbaa !5
  %9751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9738, ptr noundef @.str.5, i32 noundef %9739, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 405, ptr noundef %9742, ptr noundef %9745, ptr noundef %9748, i32 noundef %9750) #10
  br label %9752

9752:                                             ; preds = %9735, %9718
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #10
  br label %9753

9753:                                             ; preds = %9752
  br label %9754

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

9755:                                             ; No predecessors!
  br label %9756

9756:                                             ; preds = %9755
  br label %9757

9757:                                             ; preds = %9756, %9699
  br label %9758

9758:                                             ; preds = %9757
  br label %9759

9759:                                             ; preds = %9758
  call void @llvm.lifetime.start.p0(i64 8, ptr %213) #10
  %9760 = call ptr @s2n_config_new()
  store ptr %9760, ptr %213, align 8, !tbaa !9
  br label %9761

9761:                                             ; preds = %9759
  %9762 = load i32, ptr @test_count, align 4, !tbaa !5
  %9763 = add nsw i32 %9762, 1
  store i32 %9763, ptr @test_count, align 4, !tbaa !5
  %9764 = load ptr, ptr %213, align 8, !tbaa !9
  %9765 = load ptr, ptr %211, align 8, !tbaa !9
  %9766 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %9764, ptr noundef %9765)
  %9767 = icmp eq i32 %9766, -1
  br i1 %9767, label %9768, label %9821

9768:                                             ; preds = %9761
  br label %9769

9769:                                             ; preds = %9768
  br label %9770

9770:                                             ; preds = %9769
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #10
  %9771 = call ptr @__errno_location() #11
  %9772 = load i32, ptr %9771, align 4, !tbaa !5
  store i32 %9772, ptr %214, align 4, !tbaa !5
  %9773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9774 = call i32 @s2n_print_stacktrace(ptr noundef %9773)
  %9775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9776 = trunc i8 %9775 to i1
  br i1 %9776, label %9777, label %9799

9777:                                             ; preds = %9770
  %9778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9779 = call i32 @fileno(ptr noundef %9778) #10
  %9780 = call i32 @isatty(i32 noundef %9779) #10
  %9781 = icmp ne i32 %9780, 0
  br i1 %9781, label %9782, label %9799

9782:                                             ; preds = %9777
  %9783 = load i32, ptr %214, align 4, !tbaa !5
  %9784 = call ptr @__errno_location() #11
  store i32 %9783, ptr %9784, align 4, !tbaa !5
  %9785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9786 = load i32, ptr @test_count, align 4, !tbaa !5
  %9787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9788 = load i32, ptr %9787, align 4, !tbaa !5
  %9789 = call ptr @s2n_strerror(i32 noundef %9788, ptr noundef @.str.4)
  %9790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9791 = load i32, ptr %9790, align 4, !tbaa !5
  %9792 = call ptr @s2n_strerror_debug(i32 noundef %9791, ptr noundef @.str.4)
  %9793 = call ptr @__errno_location() #11
  %9794 = load i32, ptr %9793, align 4, !tbaa !5
  %9795 = call ptr @strerror(i32 noundef %9794) #10
  %9796 = call ptr @__errno_location() #11
  %9797 = load i32, ptr %9796, align 4, !tbaa !5
  %9798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9785, ptr noundef @.str.2, i32 noundef %9786, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 409, ptr noundef %9789, ptr noundef %9792, ptr noundef %9795, i32 noundef %9797) #10
  br label %9816

9799:                                             ; preds = %9777, %9770
  %9800 = load i32, ptr %214, align 4, !tbaa !5
  %9801 = call ptr @__errno_location() #11
  store i32 %9800, ptr %9801, align 4, !tbaa !5
  %9802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9803 = load i32, ptr @test_count, align 4, !tbaa !5
  %9804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9805 = load i32, ptr %9804, align 4, !tbaa !5
  %9806 = call ptr @s2n_strerror(i32 noundef %9805, ptr noundef @.str.4)
  %9807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9808 = load i32, ptr %9807, align 4, !tbaa !5
  %9809 = call ptr @s2n_strerror_debug(i32 noundef %9808, ptr noundef @.str.4)
  %9810 = call ptr @__errno_location() #11
  %9811 = load i32, ptr %9810, align 4, !tbaa !5
  %9812 = call ptr @strerror(i32 noundef %9811) #10
  %9813 = call ptr @__errno_location() #11
  %9814 = load i32, ptr %9813, align 4, !tbaa !5
  %9815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9802, ptr noundef @.str.5, i32 noundef %9803, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 409, ptr noundef %9806, ptr noundef %9809, ptr noundef %9812, i32 noundef %9814) #10
  br label %9816

9816:                                             ; preds = %9799, %9782
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #10
  br label %9817

9817:                                             ; preds = %9816
  br label %9818

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

9819:                                             ; No predecessors!
  br label %9820

9820:                                             ; preds = %9819
  br label %9821

9821:                                             ; preds = %9820, %9761
  br label %9822

9822:                                             ; preds = %9821
  br label %9823

9823:                                             ; preds = %9822
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #10
  %9824 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9824, ptr %215, align 8, !tbaa !9
  br label %9825

9825:                                             ; preds = %9823
  %9826 = load i32, ptr @test_count, align 4, !tbaa !5
  %9827 = add nsw i32 %9826, 1
  store i32 %9827, ptr @test_count, align 4, !tbaa !5
  %9828 = load ptr, ptr %215, align 8, !tbaa !9
  %9829 = icmp eq ptr %9828, null
  br i1 %9829, label %9830, label %9883

9830:                                             ; preds = %9825
  br label %9831

9831:                                             ; preds = %9830
  br label %9832

9832:                                             ; preds = %9831
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #10
  %9833 = call ptr @__errno_location() #11
  %9834 = load i32, ptr %9833, align 4, !tbaa !5
  store i32 %9834, ptr %216, align 4, !tbaa !5
  %9835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9836 = call i32 @s2n_print_stacktrace(ptr noundef %9835)
  %9837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9838 = trunc i8 %9837 to i1
  br i1 %9838, label %9839, label %9861

9839:                                             ; preds = %9832
  %9840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9841 = call i32 @fileno(ptr noundef %9840) #10
  %9842 = call i32 @isatty(i32 noundef %9841) #10
  %9843 = icmp ne i32 %9842, 0
  br i1 %9843, label %9844, label %9861

9844:                                             ; preds = %9839
  %9845 = load i32, ptr %216, align 4, !tbaa !5
  %9846 = call ptr @__errno_location() #11
  store i32 %9845, ptr %9846, align 4, !tbaa !5
  %9847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9848 = load i32, ptr @test_count, align 4, !tbaa !5
  %9849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9850 = load i32, ptr %9849, align 4, !tbaa !5
  %9851 = call ptr @s2n_strerror(i32 noundef %9850, ptr noundef @.str.4)
  %9852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9853 = load i32, ptr %9852, align 4, !tbaa !5
  %9854 = call ptr @s2n_strerror_debug(i32 noundef %9853, ptr noundef @.str.4)
  %9855 = call ptr @__errno_location() #11
  %9856 = load i32, ptr %9855, align 4, !tbaa !5
  %9857 = call ptr @strerror(i32 noundef %9856) #10
  %9858 = call ptr @__errno_location() #11
  %9859 = load i32, ptr %9858, align 4, !tbaa !5
  %9860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9847, ptr noundef @.str.2, i32 noundef %9848, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 413, ptr noundef %9851, ptr noundef %9854, ptr noundef %9857, i32 noundef %9859) #10
  br label %9878

9861:                                             ; preds = %9839, %9832
  %9862 = load i32, ptr %216, align 4, !tbaa !5
  %9863 = call ptr @__errno_location() #11
  store i32 %9862, ptr %9863, align 4, !tbaa !5
  %9864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9865 = load i32, ptr @test_count, align 4, !tbaa !5
  %9866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9867 = load i32, ptr %9866, align 4, !tbaa !5
  %9868 = call ptr @s2n_strerror(i32 noundef %9867, ptr noundef @.str.4)
  %9869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9870 = load i32, ptr %9869, align 4, !tbaa !5
  %9871 = call ptr @s2n_strerror_debug(i32 noundef %9870, ptr noundef @.str.4)
  %9872 = call ptr @__errno_location() #11
  %9873 = load i32, ptr %9872, align 4, !tbaa !5
  %9874 = call ptr @strerror(i32 noundef %9873) #10
  %9875 = call ptr @__errno_location() #11
  %9876 = load i32, ptr %9875, align 4, !tbaa !5
  %9877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9864, ptr noundef @.str.5, i32 noundef %9865, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 413, ptr noundef %9868, ptr noundef %9871, ptr noundef %9874, i32 noundef %9876) #10
  br label %9878

9878:                                             ; preds = %9861, %9844
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #10
  br label %9879

9879:                                             ; preds = %9878
  br label %9880

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

9881:                                             ; No predecessors!
  br label %9882

9882:                                             ; preds = %9881
  br label %9883

9883:                                             ; preds = %9882, %9825
  br label %9884

9884:                                             ; preds = %9883
  br label %9885

9885:                                             ; preds = %9884
  br label %9886

9886:                                             ; preds = %9885
  %9887 = load i32, ptr @test_count, align 4, !tbaa !5
  %9888 = add nsw i32 %9887, 1
  store i32 %9888, ptr @test_count, align 4, !tbaa !5
  %9889 = load ptr, ptr %215, align 8, !tbaa !9
  %9890 = load ptr, ptr %213, align 8, !tbaa !9
  %9891 = call i32 @s2n_connection_set_config(ptr noundef %9889, ptr noundef %9890)
  %9892 = icmp eq i32 %9891, -1
  br i1 %9892, label %9893, label %9946

9893:                                             ; preds = %9886
  br label %9894

9894:                                             ; preds = %9893
  br label %9895

9895:                                             ; preds = %9894
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #10
  %9896 = call ptr @__errno_location() #11
  %9897 = load i32, ptr %9896, align 4, !tbaa !5
  store i32 %9897, ptr %217, align 4, !tbaa !5
  %9898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9899 = call i32 @s2n_print_stacktrace(ptr noundef %9898)
  %9900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9901 = trunc i8 %9900 to i1
  br i1 %9901, label %9902, label %9924

9902:                                             ; preds = %9895
  %9903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9904 = call i32 @fileno(ptr noundef %9903) #10
  %9905 = call i32 @isatty(i32 noundef %9904) #10
  %9906 = icmp ne i32 %9905, 0
  br i1 %9906, label %9907, label %9924

9907:                                             ; preds = %9902
  %9908 = load i32, ptr %217, align 4, !tbaa !5
  %9909 = call ptr @__errno_location() #11
  store i32 %9908, ptr %9909, align 4, !tbaa !5
  %9910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9911 = load i32, ptr @test_count, align 4, !tbaa !5
  %9912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9913 = load i32, ptr %9912, align 4, !tbaa !5
  %9914 = call ptr @s2n_strerror(i32 noundef %9913, ptr noundef @.str.4)
  %9915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9916 = load i32, ptr %9915, align 4, !tbaa !5
  %9917 = call ptr @s2n_strerror_debug(i32 noundef %9916, ptr noundef @.str.4)
  %9918 = call ptr @__errno_location() #11
  %9919 = load i32, ptr %9918, align 4, !tbaa !5
  %9920 = call ptr @strerror(i32 noundef %9919) #10
  %9921 = call ptr @__errno_location() #11
  %9922 = load i32, ptr %9921, align 4, !tbaa !5
  %9923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9910, ptr noundef @.str.2, i32 noundef %9911, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 414, ptr noundef %9914, ptr noundef %9917, ptr noundef %9920, i32 noundef %9922) #10
  br label %9941

9924:                                             ; preds = %9902, %9895
  %9925 = load i32, ptr %217, align 4, !tbaa !5
  %9926 = call ptr @__errno_location() #11
  store i32 %9925, ptr %9926, align 4, !tbaa !5
  %9927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9928 = load i32, ptr @test_count, align 4, !tbaa !5
  %9929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9930 = load i32, ptr %9929, align 4, !tbaa !5
  %9931 = call ptr @s2n_strerror(i32 noundef %9930, ptr noundef @.str.4)
  %9932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9933 = load i32, ptr %9932, align 4, !tbaa !5
  %9934 = call ptr @s2n_strerror_debug(i32 noundef %9933, ptr noundef @.str.4)
  %9935 = call ptr @__errno_location() #11
  %9936 = load i32, ptr %9935, align 4, !tbaa !5
  %9937 = call ptr @strerror(i32 noundef %9936) #10
  %9938 = call ptr @__errno_location() #11
  %9939 = load i32, ptr %9938, align 4, !tbaa !5
  %9940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9927, ptr noundef @.str.5, i32 noundef %9928, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 414, ptr noundef %9931, ptr noundef %9934, ptr noundef %9937, i32 noundef %9939) #10
  br label %9941

9941:                                             ; preds = %9924, %9907
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #10
  br label %9942

9942:                                             ; preds = %9941
  br label %9943

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

9944:                                             ; No predecessors!
  br label %9945

9945:                                             ; preds = %9944
  br label %9946

9946:                                             ; preds = %9945, %9886
  br label %9947

9947:                                             ; preds = %9946
  br label %9948

9948:                                             ; preds = %9947
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #10
  %9949 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9949, ptr %218, align 8, !tbaa !9
  br label %9950

9950:                                             ; preds = %9948
  %9951 = load i32, ptr @test_count, align 4, !tbaa !5
  %9952 = add nsw i32 %9951, 1
  store i32 %9952, ptr @test_count, align 4, !tbaa !5
  %9953 = load ptr, ptr %218, align 8, !tbaa !9
  %9954 = icmp eq ptr %9953, null
  br i1 %9954, label %9955, label %10008

9955:                                             ; preds = %9950
  br label %9956

9956:                                             ; preds = %9955
  br label %9957

9957:                                             ; preds = %9956
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #10
  %9958 = call ptr @__errno_location() #11
  %9959 = load i32, ptr %9958, align 4, !tbaa !5
  store i32 %9959, ptr %219, align 4, !tbaa !5
  %9960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9961 = call i32 @s2n_print_stacktrace(ptr noundef %9960)
  %9962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9963 = trunc i8 %9962 to i1
  br i1 %9963, label %9964, label %9986

9964:                                             ; preds = %9957
  %9965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9966 = call i32 @fileno(ptr noundef %9965) #10
  %9967 = call i32 @isatty(i32 noundef %9966) #10
  %9968 = icmp ne i32 %9967, 0
  br i1 %9968, label %9969, label %9986

9969:                                             ; preds = %9964
  %9970 = load i32, ptr %219, align 4, !tbaa !5
  %9971 = call ptr @__errno_location() #11
  store i32 %9970, ptr %9971, align 4, !tbaa !5
  %9972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9973 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9975, ptr noundef @.str.4)
  %9977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9978 = load i32, ptr %9977, align 4, !tbaa !5
  %9979 = call ptr @s2n_strerror_debug(i32 noundef %9978, ptr noundef @.str.4)
  %9980 = call ptr @__errno_location() #11
  %9981 = load i32, ptr %9980, align 4, !tbaa !5
  %9982 = call ptr @strerror(i32 noundef %9981) #10
  %9983 = call ptr @__errno_location() #11
  %9984 = load i32, ptr %9983, align 4, !tbaa !5
  %9985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9972, ptr noundef @.str.2, i32 noundef %9973, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 418, ptr noundef %9976, ptr noundef %9979, ptr noundef %9982, i32 noundef %9984) #10
  br label %10003

9986:                                             ; preds = %9964, %9957
  %9987 = load i32, ptr %219, align 4, !tbaa !5
  %9988 = call ptr @__errno_location() #11
  store i32 %9987, ptr %9988, align 4, !tbaa !5
  %9989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9990 = load i32, ptr @test_count, align 4, !tbaa !5
  %9991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9992 = load i32, ptr %9991, align 4, !tbaa !5
  %9993 = call ptr @s2n_strerror(i32 noundef %9992, ptr noundef @.str.4)
  %9994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9995 = load i32, ptr %9994, align 4, !tbaa !5
  %9996 = call ptr @s2n_strerror_debug(i32 noundef %9995, ptr noundef @.str.4)
  %9997 = call ptr @__errno_location() #11
  %9998 = load i32, ptr %9997, align 4, !tbaa !5
  %9999 = call ptr @strerror(i32 noundef %9998) #10
  %10000 = call ptr @__errno_location() #11
  %10001 = load i32, ptr %10000, align 4, !tbaa !5
  %10002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9989, ptr noundef @.str.5, i32 noundef %9990, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 418, ptr noundef %9993, ptr noundef %9996, ptr noundef %9999, i32 noundef %10001) #10
  br label %10003

10003:                                            ; preds = %9986, %9969
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #10
  br label %10004

10004:                                            ; preds = %10003
  br label %10005

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

10006:                                            ; No predecessors!
  br label %10007

10007:                                            ; preds = %10006
  br label %10008

10008:                                            ; preds = %10007, %9950
  br label %10009

10009:                                            ; preds = %10008
  br label %10010

10010:                                            ; preds = %10009
  br label %10011

10011:                                            ; preds = %10010
  %10012 = load i32, ptr @test_count, align 4, !tbaa !5
  %10013 = add nsw i32 %10012, 1
  store i32 %10013, ptr @test_count, align 4, !tbaa !5
  %10014 = load ptr, ptr %218, align 8, !tbaa !9
  %10015 = load ptr, ptr %213, align 8, !tbaa !9
  %10016 = call i32 @s2n_connection_set_config(ptr noundef %10014, ptr noundef %10015)
  %10017 = icmp eq i32 %10016, -1
  br i1 %10017, label %10018, label %10071

10018:                                            ; preds = %10011
  br label %10019

10019:                                            ; preds = %10018
  br label %10020

10020:                                            ; preds = %10019
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #10
  %10021 = call ptr @__errno_location() #11
  %10022 = load i32, ptr %10021, align 4, !tbaa !5
  store i32 %10022, ptr %220, align 4, !tbaa !5
  %10023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10024 = call i32 @s2n_print_stacktrace(ptr noundef %10023)
  %10025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10026 = trunc i8 %10025 to i1
  br i1 %10026, label %10027, label %10049

10027:                                            ; preds = %10020
  %10028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10029 = call i32 @fileno(ptr noundef %10028) #10
  %10030 = call i32 @isatty(i32 noundef %10029) #10
  %10031 = icmp ne i32 %10030, 0
  br i1 %10031, label %10032, label %10049

10032:                                            ; preds = %10027
  %10033 = load i32, ptr %220, align 4, !tbaa !5
  %10034 = call ptr @__errno_location() #11
  store i32 %10033, ptr %10034, align 4, !tbaa !5
  %10035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10036 = load i32, ptr @test_count, align 4, !tbaa !5
  %10037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10038 = load i32, ptr %10037, align 4, !tbaa !5
  %10039 = call ptr @s2n_strerror(i32 noundef %10038, ptr noundef @.str.4)
  %10040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10041 = load i32, ptr %10040, align 4, !tbaa !5
  %10042 = call ptr @s2n_strerror_debug(i32 noundef %10041, ptr noundef @.str.4)
  %10043 = call ptr @__errno_location() #11
  %10044 = load i32, ptr %10043, align 4, !tbaa !5
  %10045 = call ptr @strerror(i32 noundef %10044) #10
  %10046 = call ptr @__errno_location() #11
  %10047 = load i32, ptr %10046, align 4, !tbaa !5
  %10048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10035, ptr noundef @.str.2, i32 noundef %10036, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 419, ptr noundef %10039, ptr noundef %10042, ptr noundef %10045, i32 noundef %10047) #10
  br label %10066

10049:                                            ; preds = %10027, %10020
  %10050 = load i32, ptr %220, align 4, !tbaa !5
  %10051 = call ptr @__errno_location() #11
  store i32 %10050, ptr %10051, align 4, !tbaa !5
  %10052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10053 = load i32, ptr @test_count, align 4, !tbaa !5
  %10054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10055 = load i32, ptr %10054, align 4, !tbaa !5
  %10056 = call ptr @s2n_strerror(i32 noundef %10055, ptr noundef @.str.4)
  %10057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10058 = load i32, ptr %10057, align 4, !tbaa !5
  %10059 = call ptr @s2n_strerror_debug(i32 noundef %10058, ptr noundef @.str.4)
  %10060 = call ptr @__errno_location() #11
  %10061 = load i32, ptr %10060, align 4, !tbaa !5
  %10062 = call ptr @strerror(i32 noundef %10061) #10
  %10063 = call ptr @__errno_location() #11
  %10064 = load i32, ptr %10063, align 4, !tbaa !5
  %10065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10052, ptr noundef @.str.5, i32 noundef %10053, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 419, ptr noundef %10056, ptr noundef %10059, ptr noundef %10062, i32 noundef %10064) #10
  br label %10066

10066:                                            ; preds = %10049, %10032
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #10
  br label %10067

10067:                                            ; preds = %10066
  br label %10068

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

10069:                                            ; No predecessors!
  br label %10070

10070:                                            ; preds = %10069
  br label %10071

10071:                                            ; preds = %10070, %10011
  br label %10072

10072:                                            ; preds = %10071
  br label %10073

10073:                                            ; preds = %10072
  call void @llvm.lifetime.start.p0(i64 8, ptr %221) #10
  call void @llvm.memset.p0.i64(ptr align 4 %221, i8 0, i64 8, i1 false)
  br label %10074

10074:                                            ; preds = %10073
  %10075 = load i32, ptr @test_count, align 4, !tbaa !5
  %10076 = add nsw i32 %10075, 1
  store i32 %10076, ptr @test_count, align 4, !tbaa !5
  %10077 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %221)
  %10078 = icmp eq i32 %10077, -1
  br i1 %10078, label %10079, label %10132

10079:                                            ; preds = %10074
  br label %10080

10080:                                            ; preds = %10079
  br label %10081

10081:                                            ; preds = %10080
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #10
  %10082 = call ptr @__errno_location() #11
  %10083 = load i32, ptr %10082, align 4, !tbaa !5
  store i32 %10083, ptr %222, align 4, !tbaa !5
  %10084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10085 = call i32 @s2n_print_stacktrace(ptr noundef %10084)
  %10086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10087 = trunc i8 %10086 to i1
  br i1 %10087, label %10088, label %10110

10088:                                            ; preds = %10081
  %10089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10090 = call i32 @fileno(ptr noundef %10089) #10
  %10091 = call i32 @isatty(i32 noundef %10090) #10
  %10092 = icmp ne i32 %10091, 0
  br i1 %10092, label %10093, label %10110

10093:                                            ; preds = %10088
  %10094 = load i32, ptr %222, align 4, !tbaa !5
  %10095 = call ptr @__errno_location() #11
  store i32 %10094, ptr %10095, align 4, !tbaa !5
  %10096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10097 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %10099, ptr noundef @.str.4)
  %10101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10102 = load i32, ptr %10101, align 4, !tbaa !5
  %10103 = call ptr @s2n_strerror_debug(i32 noundef %10102, ptr noundef @.str.4)
  %10104 = call ptr @__errno_location() #11
  %10105 = load i32, ptr %10104, align 4, !tbaa !5
  %10106 = call ptr @strerror(i32 noundef %10105) #10
  %10107 = call ptr @__errno_location() #11
  %10108 = load i32, ptr %10107, align 4, !tbaa !5
  %10109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10096, ptr noundef @.str.2, i32 noundef %10097, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 422, ptr noundef %10100, ptr noundef %10103, ptr noundef %10106, i32 noundef %10108) #10
  br label %10127

10110:                                            ; preds = %10088, %10081
  %10111 = load i32, ptr %222, align 4, !tbaa !5
  %10112 = call ptr @__errno_location() #11
  store i32 %10111, ptr %10112, align 4, !tbaa !5
  %10113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10114 = load i32, ptr @test_count, align 4, !tbaa !5
  %10115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10116 = load i32, ptr %10115, align 4, !tbaa !5
  %10117 = call ptr @s2n_strerror(i32 noundef %10116, ptr noundef @.str.4)
  %10118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10119 = load i32, ptr %10118, align 4, !tbaa !5
  %10120 = call ptr @s2n_strerror_debug(i32 noundef %10119, ptr noundef @.str.4)
  %10121 = call ptr @__errno_location() #11
  %10122 = load i32, ptr %10121, align 4, !tbaa !5
  %10123 = call ptr @strerror(i32 noundef %10122) #10
  %10124 = call ptr @__errno_location() #11
  %10125 = load i32, ptr %10124, align 4, !tbaa !5
  %10126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10113, ptr noundef @.str.5, i32 noundef %10114, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 422, ptr noundef %10117, ptr noundef %10120, ptr noundef %10123, i32 noundef %10125) #10
  br label %10127

10127:                                            ; preds = %10110, %10093
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #10
  br label %10128

10128:                                            ; preds = %10127
  br label %10129

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

10130:                                            ; No predecessors!
  br label %10131

10131:                                            ; preds = %10130
  br label %10132

10132:                                            ; preds = %10131, %10074
  br label %10133

10133:                                            ; preds = %10132
  br label %10134

10134:                                            ; preds = %10133
  br label %10135

10135:                                            ; preds = %10134
  %10136 = load i32, ptr @test_count, align 4, !tbaa !5
  %10137 = add nsw i32 %10136, 1
  store i32 %10137, ptr @test_count, align 4, !tbaa !5
  %10138 = load ptr, ptr %218, align 8, !tbaa !9
  %10139 = load ptr, ptr %215, align 8, !tbaa !9
  %10140 = call i32 @s2n_connections_set_io_pair(ptr noundef %10138, ptr noundef %10139, ptr noundef %221)
  %10141 = icmp eq i32 %10140, -1
  br i1 %10141, label %10142, label %10195

10142:                                            ; preds = %10135
  br label %10143

10143:                                            ; preds = %10142
  br label %10144

10144:                                            ; preds = %10143
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #10
  %10145 = call ptr @__errno_location() #11
  %10146 = load i32, ptr %10145, align 4, !tbaa !5
  store i32 %10146, ptr %223, align 4, !tbaa !5
  %10147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10148 = call i32 @s2n_print_stacktrace(ptr noundef %10147)
  %10149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10150 = trunc i8 %10149 to i1
  br i1 %10150, label %10151, label %10173

10151:                                            ; preds = %10144
  %10152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10153 = call i32 @fileno(ptr noundef %10152) #10
  %10154 = call i32 @isatty(i32 noundef %10153) #10
  %10155 = icmp ne i32 %10154, 0
  br i1 %10155, label %10156, label %10173

10156:                                            ; preds = %10151
  %10157 = load i32, ptr %223, align 4, !tbaa !5
  %10158 = call ptr @__errno_location() #11
  store i32 %10157, ptr %10158, align 4, !tbaa !5
  %10159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10160 = load i32, ptr @test_count, align 4, !tbaa !5
  %10161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10162 = load i32, ptr %10161, align 4, !tbaa !5
  %10163 = call ptr @s2n_strerror(i32 noundef %10162, ptr noundef @.str.4)
  %10164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10165 = load i32, ptr %10164, align 4, !tbaa !5
  %10166 = call ptr @s2n_strerror_debug(i32 noundef %10165, ptr noundef @.str.4)
  %10167 = call ptr @__errno_location() #11
  %10168 = load i32, ptr %10167, align 4, !tbaa !5
  %10169 = call ptr @strerror(i32 noundef %10168) #10
  %10170 = call ptr @__errno_location() #11
  %10171 = load i32, ptr %10170, align 4, !tbaa !5
  %10172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10159, ptr noundef @.str.2, i32 noundef %10160, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 423, ptr noundef %10163, ptr noundef %10166, ptr noundef %10169, i32 noundef %10171) #10
  br label %10190

10173:                                            ; preds = %10151, %10144
  %10174 = load i32, ptr %223, align 4, !tbaa !5
  %10175 = call ptr @__errno_location() #11
  store i32 %10174, ptr %10175, align 4, !tbaa !5
  %10176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10177 = load i32, ptr @test_count, align 4, !tbaa !5
  %10178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10179 = load i32, ptr %10178, align 4, !tbaa !5
  %10180 = call ptr @s2n_strerror(i32 noundef %10179, ptr noundef @.str.4)
  %10181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10182 = load i32, ptr %10181, align 4, !tbaa !5
  %10183 = call ptr @s2n_strerror_debug(i32 noundef %10182, ptr noundef @.str.4)
  %10184 = call ptr @__errno_location() #11
  %10185 = load i32, ptr %10184, align 4, !tbaa !5
  %10186 = call ptr @strerror(i32 noundef %10185) #10
  %10187 = call ptr @__errno_location() #11
  %10188 = load i32, ptr %10187, align 4, !tbaa !5
  %10189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10176, ptr noundef @.str.5, i32 noundef %10177, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 423, ptr noundef %10180, ptr noundef %10183, ptr noundef %10186, i32 noundef %10188) #10
  br label %10190

10190:                                            ; preds = %10173, %10156
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #10
  br label %10191

10191:                                            ; preds = %10190
  br label %10192

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

10193:                                            ; No predecessors!
  br label %10194

10194:                                            ; preds = %10193
  br label %10195

10195:                                            ; preds = %10194, %10135
  br label %10196

10196:                                            ; preds = %10195
  br label %10197

10197:                                            ; preds = %10196
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #10
  store ptr null, ptr %224, align 8, !tbaa !9
  %10198 = load ptr, ptr %218, align 8, !tbaa !9
  %10199 = getelementptr inbounds %struct.s2n_connection, ptr %10198, i32 0, i32 52
  %10200 = getelementptr inbounds %struct.s2n_handshake, ptr %10199, i32 0, i32 0
  store ptr %10200, ptr %224, align 8, !tbaa !9
  br label %10201

10201:                                            ; preds = %10197
  %10202 = load i32, ptr @test_count, align 4, !tbaa !5
  %10203 = add nsw i32 %10202, 1
  store i32 %10203, ptr @test_count, align 4, !tbaa !5
  %10204 = load ptr, ptr %218, align 8, !tbaa !9
  %10205 = call i32 @s2n_client_hello_send(ptr noundef %10204)
  %10206 = icmp eq i32 %10205, -1
  br i1 %10206, label %10207, label %10260

10207:                                            ; preds = %10201
  br label %10208

10208:                                            ; preds = %10207
  br label %10209

10209:                                            ; preds = %10208
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #10
  %10210 = call ptr @__errno_location() #11
  %10211 = load i32, ptr %10210, align 4, !tbaa !5
  store i32 %10211, ptr %225, align 4, !tbaa !5
  %10212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10213 = call i32 @s2n_print_stacktrace(ptr noundef %10212)
  %10214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10215 = trunc i8 %10214 to i1
  br i1 %10215, label %10216, label %10238

10216:                                            ; preds = %10209
  %10217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10218 = call i32 @fileno(ptr noundef %10217) #10
  %10219 = call i32 @isatty(i32 noundef %10218) #10
  %10220 = icmp ne i32 %10219, 0
  br i1 %10220, label %10221, label %10238

10221:                                            ; preds = %10216
  %10222 = load i32, ptr %225, align 4, !tbaa !5
  %10223 = call ptr @__errno_location() #11
  store i32 %10222, ptr %10223, align 4, !tbaa !5
  %10224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10225 = load i32, ptr @test_count, align 4, !tbaa !5
  %10226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10227 = load i32, ptr %10226, align 4, !tbaa !5
  %10228 = call ptr @s2n_strerror(i32 noundef %10227, ptr noundef @.str.4)
  %10229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10230 = load i32, ptr %10229, align 4, !tbaa !5
  %10231 = call ptr @s2n_strerror_debug(i32 noundef %10230, ptr noundef @.str.4)
  %10232 = call ptr @__errno_location() #11
  %10233 = load i32, ptr %10232, align 4, !tbaa !5
  %10234 = call ptr @strerror(i32 noundef %10233) #10
  %10235 = call ptr @__errno_location() #11
  %10236 = load i32, ptr %10235, align 4, !tbaa !5
  %10237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10224, ptr noundef @.str.2, i32 noundef %10225, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 427, ptr noundef %10228, ptr noundef %10231, ptr noundef %10234, i32 noundef %10236) #10
  br label %10255

10238:                                            ; preds = %10216, %10209
  %10239 = load i32, ptr %225, align 4, !tbaa !5
  %10240 = call ptr @__errno_location() #11
  store i32 %10239, ptr %10240, align 4, !tbaa !5
  %10241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10242 = load i32, ptr @test_count, align 4, !tbaa !5
  %10243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10244 = load i32, ptr %10243, align 4, !tbaa !5
  %10245 = call ptr @s2n_strerror(i32 noundef %10244, ptr noundef @.str.4)
  %10246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10247 = load i32, ptr %10246, align 4, !tbaa !5
  %10248 = call ptr @s2n_strerror_debug(i32 noundef %10247, ptr noundef @.str.4)
  %10249 = call ptr @__errno_location() #11
  %10250 = load i32, ptr %10249, align 4, !tbaa !5
  %10251 = call ptr @strerror(i32 noundef %10250) #10
  %10252 = call ptr @__errno_location() #11
  %10253 = load i32, ptr %10252, align 4, !tbaa !5
  %10254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10241, ptr noundef @.str.5, i32 noundef %10242, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 427, ptr noundef %10245, ptr noundef %10248, ptr noundef %10251, i32 noundef %10253) #10
  br label %10255

10255:                                            ; preds = %10238, %10221
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #10
  br label %10256

10256:                                            ; preds = %10255
  br label %10257

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

10258:                                            ; No predecessors!
  br label %10259

10259:                                            ; preds = %10258
  br label %10260

10260:                                            ; preds = %10259, %10201
  br label %10261

10261:                                            ; preds = %10260
  br label %10262

10262:                                            ; preds = %10261
  call void @llvm.lifetime.start.p0(i64 2, ptr %226) #10
  call void @llvm.memset.p0.i64(ptr align 1 %226, i8 0, i64 2, i1 false)
  %10263 = getelementptr inbounds [2 x i8], ptr %226, i64 0, i64 0
  store i8 3, ptr %10263, align 1, !tbaa !15
  %10264 = getelementptr inbounds [2 x i8], ptr %226, i64 0, i64 1
  store i8 1, ptr %10264, align 1, !tbaa !15
  br label %10265

10265:                                            ; preds = %10262
  %10266 = load i32, ptr @test_count, align 4, !tbaa !5
  %10267 = add nsw i32 %10266, 1
  store i32 %10267, ptr @test_count, align 4, !tbaa !5
  %10268 = load ptr, ptr %224, align 8, !tbaa !9
  %10269 = call i32 @s2n_stuffer_rewrite(ptr noundef %10268)
  %10270 = icmp eq i32 %10269, -1
  br i1 %10270, label %10271, label %10324

10271:                                            ; preds = %10265
  br label %10272

10272:                                            ; preds = %10271
  br label %10273

10273:                                            ; preds = %10272
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #10
  %10274 = call ptr @__errno_location() #11
  %10275 = load i32, ptr %10274, align 4, !tbaa !5
  store i32 %10275, ptr %227, align 4, !tbaa !5
  %10276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10277 = call i32 @s2n_print_stacktrace(ptr noundef %10276)
  %10278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10279 = trunc i8 %10278 to i1
  br i1 %10279, label %10280, label %10302

10280:                                            ; preds = %10273
  %10281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10282 = call i32 @fileno(ptr noundef %10281) #10
  %10283 = call i32 @isatty(i32 noundef %10282) #10
  %10284 = icmp ne i32 %10283, 0
  br i1 %10284, label %10285, label %10302

10285:                                            ; preds = %10280
  %10286 = load i32, ptr %227, align 4, !tbaa !5
  %10287 = call ptr @__errno_location() #11
  store i32 %10286, ptr %10287, align 4, !tbaa !5
  %10288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10289 = load i32, ptr @test_count, align 4, !tbaa !5
  %10290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10291 = load i32, ptr %10290, align 4, !tbaa !5
  %10292 = call ptr @s2n_strerror(i32 noundef %10291, ptr noundef @.str.4)
  %10293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10294 = load i32, ptr %10293, align 4, !tbaa !5
  %10295 = call ptr @s2n_strerror_debug(i32 noundef %10294, ptr noundef @.str.4)
  %10296 = call ptr @__errno_location() #11
  %10297 = load i32, ptr %10296, align 4, !tbaa !5
  %10298 = call ptr @strerror(i32 noundef %10297) #10
  %10299 = call ptr @__errno_location() #11
  %10300 = load i32, ptr %10299, align 4, !tbaa !5
  %10301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10288, ptr noundef @.str.2, i32 noundef %10289, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 434, ptr noundef %10292, ptr noundef %10295, ptr noundef %10298, i32 noundef %10300) #10
  br label %10319

10302:                                            ; preds = %10280, %10273
  %10303 = load i32, ptr %227, align 4, !tbaa !5
  %10304 = call ptr @__errno_location() #11
  store i32 %10303, ptr %10304, align 4, !tbaa !5
  %10305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10306 = load i32, ptr @test_count, align 4, !tbaa !5
  %10307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10308 = load i32, ptr %10307, align 4, !tbaa !5
  %10309 = call ptr @s2n_strerror(i32 noundef %10308, ptr noundef @.str.4)
  %10310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10311 = load i32, ptr %10310, align 4, !tbaa !5
  %10312 = call ptr @s2n_strerror_debug(i32 noundef %10311, ptr noundef @.str.4)
  %10313 = call ptr @__errno_location() #11
  %10314 = load i32, ptr %10313, align 4, !tbaa !5
  %10315 = call ptr @strerror(i32 noundef %10314) #10
  %10316 = call ptr @__errno_location() #11
  %10317 = load i32, ptr %10316, align 4, !tbaa !5
  %10318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10305, ptr noundef @.str.5, i32 noundef %10306, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 434, ptr noundef %10309, ptr noundef %10312, ptr noundef %10315, i32 noundef %10317) #10
  br label %10319

10319:                                            ; preds = %10302, %10285
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #10
  br label %10320

10320:                                            ; preds = %10319
  br label %10321

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

10322:                                            ; No predecessors!
  br label %10323

10323:                                            ; preds = %10322
  br label %10324

10324:                                            ; preds = %10323, %10265
  br label %10325

10325:                                            ; preds = %10324
  br label %10326

10326:                                            ; preds = %10325
  br label %10327

10327:                                            ; preds = %10326
  %10328 = load i32, ptr @test_count, align 4, !tbaa !5
  %10329 = add nsw i32 %10328, 1
  store i32 %10329, ptr @test_count, align 4, !tbaa !5
  %10330 = load ptr, ptr %224, align 8, !tbaa !9
  %10331 = getelementptr inbounds [2 x i8], ptr %226, i64 0, i64 0
  %10332 = call i32 @s2n_stuffer_write_bytes(ptr noundef %10330, ptr noundef %10331, i32 noundef 2)
  %10333 = icmp eq i32 %10332, -1
  br i1 %10333, label %10334, label %10387

10334:                                            ; preds = %10327
  br label %10335

10335:                                            ; preds = %10334
  br label %10336

10336:                                            ; preds = %10335
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #10
  %10337 = call ptr @__errno_location() #11
  %10338 = load i32, ptr %10337, align 4, !tbaa !5
  store i32 %10338, ptr %228, align 4, !tbaa !5
  %10339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10340 = call i32 @s2n_print_stacktrace(ptr noundef %10339)
  %10341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10342 = trunc i8 %10341 to i1
  br i1 %10342, label %10343, label %10365

10343:                                            ; preds = %10336
  %10344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10345 = call i32 @fileno(ptr noundef %10344) #10
  %10346 = call i32 @isatty(i32 noundef %10345) #10
  %10347 = icmp ne i32 %10346, 0
  br i1 %10347, label %10348, label %10365

10348:                                            ; preds = %10343
  %10349 = load i32, ptr %228, align 4, !tbaa !5
  %10350 = call ptr @__errno_location() #11
  store i32 %10349, ptr %10350, align 4, !tbaa !5
  %10351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10352 = load i32, ptr @test_count, align 4, !tbaa !5
  %10353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10354 = load i32, ptr %10353, align 4, !tbaa !5
  %10355 = call ptr @s2n_strerror(i32 noundef %10354, ptr noundef @.str.4)
  %10356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10357 = load i32, ptr %10356, align 4, !tbaa !5
  %10358 = call ptr @s2n_strerror_debug(i32 noundef %10357, ptr noundef @.str.4)
  %10359 = call ptr @__errno_location() #11
  %10360 = load i32, ptr %10359, align 4, !tbaa !5
  %10361 = call ptr @strerror(i32 noundef %10360) #10
  %10362 = call ptr @__errno_location() #11
  %10363 = load i32, ptr %10362, align 4, !tbaa !5
  %10364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10351, ptr noundef @.str.2, i32 noundef %10352, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 435, ptr noundef %10355, ptr noundef %10358, ptr noundef %10361, i32 noundef %10363) #10
  br label %10382

10365:                                            ; preds = %10343, %10336
  %10366 = load i32, ptr %228, align 4, !tbaa !5
  %10367 = call ptr @__errno_location() #11
  store i32 %10366, ptr %10367, align 4, !tbaa !5
  %10368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10369 = load i32, ptr @test_count, align 4, !tbaa !5
  %10370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10371 = load i32, ptr %10370, align 4, !tbaa !5
  %10372 = call ptr @s2n_strerror(i32 noundef %10371, ptr noundef @.str.4)
  %10373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10374 = load i32, ptr %10373, align 4, !tbaa !5
  %10375 = call ptr @s2n_strerror_debug(i32 noundef %10374, ptr noundef @.str.4)
  %10376 = call ptr @__errno_location() #11
  %10377 = load i32, ptr %10376, align 4, !tbaa !5
  %10378 = call ptr @strerror(i32 noundef %10377) #10
  %10379 = call ptr @__errno_location() #11
  %10380 = load i32, ptr %10379, align 4, !tbaa !5
  %10381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10368, ptr noundef @.str.5, i32 noundef %10369, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 435, ptr noundef %10372, ptr noundef %10375, ptr noundef %10378, i32 noundef %10380) #10
  br label %10382

10382:                                            ; preds = %10365, %10348
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #10
  br label %10383

10383:                                            ; preds = %10382
  br label %10384

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

10385:                                            ; No predecessors!
  br label %10386

10386:                                            ; preds = %10385
  br label %10387

10387:                                            ; preds = %10386, %10327
  br label %10388

10388:                                            ; preds = %10387
  br label %10389

10389:                                            ; preds = %10388
  br label %10390

10390:                                            ; preds = %10389
  %10391 = load i32, ptr @test_count, align 4, !tbaa !5
  %10392 = add nsw i32 %10391, 1
  store i32 %10392, ptr @test_count, align 4, !tbaa !5
  %10393 = load ptr, ptr %215, align 8, !tbaa !9
  %10394 = getelementptr inbounds %struct.s2n_connection, ptr %10393, i32 0, i32 52
  %10395 = getelementptr inbounds %struct.s2n_handshake, ptr %10394, i32 0, i32 0
  %10396 = load ptr, ptr %224, align 8, !tbaa !9
  %10397 = getelementptr inbounds %struct.s2n_stuffer, ptr %10396, i32 0, i32 0
  %10398 = call i32 @s2n_stuffer_write(ptr noundef %10395, ptr noundef %10397)
  %10399 = icmp eq i32 %10398, -1
  br i1 %10399, label %10400, label %10453

10400:                                            ; preds = %10390
  br label %10401

10401:                                            ; preds = %10400
  br label %10402

10402:                                            ; preds = %10401
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #10
  %10403 = call ptr @__errno_location() #11
  %10404 = load i32, ptr %10403, align 4, !tbaa !5
  store i32 %10404, ptr %229, align 4, !tbaa !5
  %10405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10406 = call i32 @s2n_print_stacktrace(ptr noundef %10405)
  %10407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10408 = trunc i8 %10407 to i1
  br i1 %10408, label %10409, label %10431

10409:                                            ; preds = %10402
  %10410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10411 = call i32 @fileno(ptr noundef %10410) #10
  %10412 = call i32 @isatty(i32 noundef %10411) #10
  %10413 = icmp ne i32 %10412, 0
  br i1 %10413, label %10414, label %10431

10414:                                            ; preds = %10409
  %10415 = load i32, ptr %229, align 4, !tbaa !5
  %10416 = call ptr @__errno_location() #11
  store i32 %10415, ptr %10416, align 4, !tbaa !5
  %10417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10418 = load i32, ptr @test_count, align 4, !tbaa !5
  %10419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10420 = load i32, ptr %10419, align 4, !tbaa !5
  %10421 = call ptr @s2n_strerror(i32 noundef %10420, ptr noundef @.str.4)
  %10422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10423 = load i32, ptr %10422, align 4, !tbaa !5
  %10424 = call ptr @s2n_strerror_debug(i32 noundef %10423, ptr noundef @.str.4)
  %10425 = call ptr @__errno_location() #11
  %10426 = load i32, ptr %10425, align 4, !tbaa !5
  %10427 = call ptr @strerror(i32 noundef %10426) #10
  %10428 = call ptr @__errno_location() #11
  %10429 = load i32, ptr %10428, align 4, !tbaa !5
  %10430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10417, ptr noundef @.str.2, i32 noundef %10418, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 436, ptr noundef %10421, ptr noundef %10424, ptr noundef %10427, i32 noundef %10429) #10
  br label %10448

10431:                                            ; preds = %10409, %10402
  %10432 = load i32, ptr %229, align 4, !tbaa !5
  %10433 = call ptr @__errno_location() #11
  store i32 %10432, ptr %10433, align 4, !tbaa !5
  %10434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10435 = load i32, ptr @test_count, align 4, !tbaa !5
  %10436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10437 = load i32, ptr %10436, align 4, !tbaa !5
  %10438 = call ptr @s2n_strerror(i32 noundef %10437, ptr noundef @.str.4)
  %10439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10440 = load i32, ptr %10439, align 4, !tbaa !5
  %10441 = call ptr @s2n_strerror_debug(i32 noundef %10440, ptr noundef @.str.4)
  %10442 = call ptr @__errno_location() #11
  %10443 = load i32, ptr %10442, align 4, !tbaa !5
  %10444 = call ptr @strerror(i32 noundef %10443) #10
  %10445 = call ptr @__errno_location() #11
  %10446 = load i32, ptr %10445, align 4, !tbaa !5
  %10447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10434, ptr noundef @.str.5, i32 noundef %10435, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 436, ptr noundef %10438, ptr noundef %10441, ptr noundef %10444, i32 noundef %10446) #10
  br label %10448

10448:                                            ; preds = %10431, %10414
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #10
  br label %10449

10449:                                            ; preds = %10448
  br label %10450

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

10451:                                            ; No predecessors!
  br label %10452

10452:                                            ; preds = %10451
  br label %10453

10453:                                            ; preds = %10452, %10390
  br label %10454

10454:                                            ; preds = %10453
  br label %10455

10455:                                            ; preds = %10454
  br label %10456

10456:                                            ; preds = %10455
  %10457 = load i32, ptr @test_count, align 4, !tbaa !5
  %10458 = add nsw i32 %10457, 1
  store i32 %10458, ptr @test_count, align 4, !tbaa !5
  %10459 = load ptr, ptr %215, align 8, !tbaa !9
  %10460 = call i32 @s2n_client_hello_recv(ptr noundef %10459)
  %10461 = icmp eq i32 %10460, -1
  br i1 %10461, label %10462, label %10515

10462:                                            ; preds = %10456
  br label %10463

10463:                                            ; preds = %10462
  br label %10464

10464:                                            ; preds = %10463
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #10
  %10465 = call ptr @__errno_location() #11
  %10466 = load i32, ptr %10465, align 4, !tbaa !5
  store i32 %10466, ptr %230, align 4, !tbaa !5
  %10467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10468 = call i32 @s2n_print_stacktrace(ptr noundef %10467)
  %10469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10470 = trunc i8 %10469 to i1
  br i1 %10470, label %10471, label %10493

10471:                                            ; preds = %10464
  %10472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10473 = call i32 @fileno(ptr noundef %10472) #10
  %10474 = call i32 @isatty(i32 noundef %10473) #10
  %10475 = icmp ne i32 %10474, 0
  br i1 %10475, label %10476, label %10493

10476:                                            ; preds = %10471
  %10477 = load i32, ptr %230, align 4, !tbaa !5
  %10478 = call ptr @__errno_location() #11
  store i32 %10477, ptr %10478, align 4, !tbaa !5
  %10479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10480 = load i32, ptr @test_count, align 4, !tbaa !5
  %10481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10482 = load i32, ptr %10481, align 4, !tbaa !5
  %10483 = call ptr @s2n_strerror(i32 noundef %10482, ptr noundef @.str.4)
  %10484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10485 = load i32, ptr %10484, align 4, !tbaa !5
  %10486 = call ptr @s2n_strerror_debug(i32 noundef %10485, ptr noundef @.str.4)
  %10487 = call ptr @__errno_location() #11
  %10488 = load i32, ptr %10487, align 4, !tbaa !5
  %10489 = call ptr @strerror(i32 noundef %10488) #10
  %10490 = call ptr @__errno_location() #11
  %10491 = load i32, ptr %10490, align 4, !tbaa !5
  %10492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10479, ptr noundef @.str.2, i32 noundef %10480, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 438, ptr noundef %10483, ptr noundef %10486, ptr noundef %10489, i32 noundef %10491) #10
  br label %10510

10493:                                            ; preds = %10471, %10464
  %10494 = load i32, ptr %230, align 4, !tbaa !5
  %10495 = call ptr @__errno_location() #11
  store i32 %10494, ptr %10495, align 4, !tbaa !5
  %10496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10497 = load i32, ptr @test_count, align 4, !tbaa !5
  %10498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10499 = load i32, ptr %10498, align 4, !tbaa !5
  %10500 = call ptr @s2n_strerror(i32 noundef %10499, ptr noundef @.str.4)
  %10501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10502 = load i32, ptr %10501, align 4, !tbaa !5
  %10503 = call ptr @s2n_strerror_debug(i32 noundef %10502, ptr noundef @.str.4)
  %10504 = call ptr @__errno_location() #11
  %10505 = load i32, ptr %10504, align 4, !tbaa !5
  %10506 = call ptr @strerror(i32 noundef %10505) #10
  %10507 = call ptr @__errno_location() #11
  %10508 = load i32, ptr %10507, align 4, !tbaa !5
  %10509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10496, ptr noundef @.str.5, i32 noundef %10497, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 438, ptr noundef %10500, ptr noundef %10503, ptr noundef %10506, i32 noundef %10508) #10
  br label %10510

10510:                                            ; preds = %10493, %10476
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #10
  br label %10511

10511:                                            ; preds = %10510
  br label %10512

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

10513:                                            ; No predecessors!
  br label %10514

10514:                                            ; preds = %10513
  br label %10515

10515:                                            ; preds = %10514, %10456
  br label %10516

10516:                                            ; preds = %10515
  br label %10517

10517:                                            ; preds = %10516
  br label %10518

10518:                                            ; preds = %10517
  %10519 = load i32, ptr @test_count, align 4, !tbaa !5
  %10520 = add nsw i32 %10519, 1
  store i32 %10520, ptr @test_count, align 4, !tbaa !5
  %10521 = load ptr, ptr %215, align 8, !tbaa !9
  %10522 = getelementptr inbounds %struct.s2n_connection, ptr %10521, i32 0, i32 23
  %10523 = load i8, ptr %10522, align 4, !tbaa !54
  %10524 = zext i8 %10523 to i32
  %10525 = icmp eq i32 %10524, 34
  br i1 %10525, label %10579, label %10526

10526:                                            ; preds = %10518
  br label %10527

10527:                                            ; preds = %10526
  br label %10528

10528:                                            ; preds = %10527
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #10
  %10529 = call ptr @__errno_location() #11
  %10530 = load i32, ptr %10529, align 4, !tbaa !5
  store i32 %10530, ptr %231, align 4, !tbaa !5
  %10531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10532 = call i32 @s2n_print_stacktrace(ptr noundef %10531)
  %10533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10534 = trunc i8 %10533 to i1
  br i1 %10534, label %10535, label %10557

10535:                                            ; preds = %10528
  %10536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10537 = call i32 @fileno(ptr noundef %10536) #10
  %10538 = call i32 @isatty(i32 noundef %10537) #10
  %10539 = icmp ne i32 %10538, 0
  br i1 %10539, label %10540, label %10557

10540:                                            ; preds = %10535
  %10541 = load i32, ptr %231, align 4, !tbaa !5
  %10542 = call ptr @__errno_location() #11
  store i32 %10541, ptr %10542, align 4, !tbaa !5
  %10543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10544 = load i32, ptr @test_count, align 4, !tbaa !5
  %10545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10546 = load i32, ptr %10545, align 4, !tbaa !5
  %10547 = call ptr @s2n_strerror(i32 noundef %10546, ptr noundef @.str.4)
  %10548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10549 = load i32, ptr %10548, align 4, !tbaa !5
  %10550 = call ptr @s2n_strerror_debug(i32 noundef %10549, ptr noundef @.str.4)
  %10551 = call ptr @__errno_location() #11
  %10552 = load i32, ptr %10551, align 4, !tbaa !5
  %10553 = call ptr @strerror(i32 noundef %10552) #10
  %10554 = call ptr @__errno_location() #11
  %10555 = load i32, ptr %10554, align 4, !tbaa !5
  %10556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10543, ptr noundef @.str.2, i32 noundef %10544, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 441, ptr noundef %10547, ptr noundef %10550, ptr noundef %10553, i32 noundef %10555) #10
  br label %10574

10557:                                            ; preds = %10535, %10528
  %10558 = load i32, ptr %231, align 4, !tbaa !5
  %10559 = call ptr @__errno_location() #11
  store i32 %10558, ptr %10559, align 4, !tbaa !5
  %10560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10561 = load i32, ptr @test_count, align 4, !tbaa !5
  %10562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10563 = load i32, ptr %10562, align 4, !tbaa !5
  %10564 = call ptr @s2n_strerror(i32 noundef %10563, ptr noundef @.str.4)
  %10565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10566 = load i32, ptr %10565, align 4, !tbaa !5
  %10567 = call ptr @s2n_strerror_debug(i32 noundef %10566, ptr noundef @.str.4)
  %10568 = call ptr @__errno_location() #11
  %10569 = load i32, ptr %10568, align 4, !tbaa !5
  %10570 = call ptr @strerror(i32 noundef %10569) #10
  %10571 = call ptr @__errno_location() #11
  %10572 = load i32, ptr %10571, align 4, !tbaa !5
  %10573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10560, ptr noundef @.str.5, i32 noundef %10561, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 441, ptr noundef %10564, ptr noundef %10567, ptr noundef %10570, i32 noundef %10572) #10
  br label %10574

10574:                                            ; preds = %10557, %10540
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #10
  br label %10575

10575:                                            ; preds = %10574
  br label %10576

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

10577:                                            ; No predecessors!
  br label %10578

10578:                                            ; preds = %10577
  br label %10579

10579:                                            ; preds = %10578, %10518
  br label %10580

10580:                                            ; preds = %10579
  br label %10581

10581:                                            ; preds = %10580
  br label %10582

10582:                                            ; preds = %10581
  %10583 = load i32, ptr @test_count, align 4, !tbaa !5
  %10584 = add nsw i32 %10583, 1
  store i32 %10584, ptr @test_count, align 4, !tbaa !5
  %10585 = load ptr, ptr %215, align 8, !tbaa !9
  %10586 = getelementptr inbounds %struct.s2n_connection, ptr %10585, i32 0, i32 21
  %10587 = load i8, ptr %10586, align 2, !tbaa !52
  %10588 = zext i8 %10587 to i32
  %10589 = icmp eq i32 %10588, 34
  br i1 %10589, label %10643, label %10590

10590:                                            ; preds = %10582
  br label %10591

10591:                                            ; preds = %10590
  br label %10592

10592:                                            ; preds = %10591
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #10
  %10593 = call ptr @__errno_location() #11
  %10594 = load i32, ptr %10593, align 4, !tbaa !5
  store i32 %10594, ptr %232, align 4, !tbaa !5
  %10595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10596 = call i32 @s2n_print_stacktrace(ptr noundef %10595)
  %10597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10598 = trunc i8 %10597 to i1
  br i1 %10598, label %10599, label %10621

10599:                                            ; preds = %10592
  %10600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10601 = call i32 @fileno(ptr noundef %10600) #10
  %10602 = call i32 @isatty(i32 noundef %10601) #10
  %10603 = icmp ne i32 %10602, 0
  br i1 %10603, label %10604, label %10621

10604:                                            ; preds = %10599
  %10605 = load i32, ptr %232, align 4, !tbaa !5
  %10606 = call ptr @__errno_location() #11
  store i32 %10605, ptr %10606, align 4, !tbaa !5
  %10607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10608 = load i32, ptr @test_count, align 4, !tbaa !5
  %10609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10610 = load i32, ptr %10609, align 4, !tbaa !5
  %10611 = call ptr @s2n_strerror(i32 noundef %10610, ptr noundef @.str.4)
  %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_debug(i32 noundef %10613, ptr noundef @.str.4)
  %10615 = call ptr @__errno_location() #11
  %10616 = load i32, ptr %10615, align 4, !tbaa !5
  %10617 = call ptr @strerror(i32 noundef %10616) #10
  %10618 = call ptr @__errno_location() #11
  %10619 = load i32, ptr %10618, align 4, !tbaa !5
  %10620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10607, ptr noundef @.str.2, i32 noundef %10608, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 442, ptr noundef %10611, ptr noundef %10614, ptr noundef %10617, i32 noundef %10619) #10
  br label %10638

10621:                                            ; preds = %10599, %10592
  %10622 = load i32, ptr %232, align 4, !tbaa !5
  %10623 = call ptr @__errno_location() #11
  store i32 %10622, ptr %10623, align 4, !tbaa !5
  %10624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10625 = load i32, ptr @test_count, align 4, !tbaa !5
  %10626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10627 = load i32, ptr %10626, align 4, !tbaa !5
  %10628 = call ptr @s2n_strerror(i32 noundef %10627, ptr noundef @.str.4)
  %10629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10630 = load i32, ptr %10629, align 4, !tbaa !5
  %10631 = call ptr @s2n_strerror_debug(i32 noundef %10630, ptr noundef @.str.4)
  %10632 = call ptr @__errno_location() #11
  %10633 = load i32, ptr %10632, align 4, !tbaa !5
  %10634 = call ptr @strerror(i32 noundef %10633) #10
  %10635 = call ptr @__errno_location() #11
  %10636 = load i32, ptr %10635, align 4, !tbaa !5
  %10637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10624, ptr noundef @.str.5, i32 noundef %10625, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 442, ptr noundef %10628, ptr noundef %10631, ptr noundef %10634, i32 noundef %10636) #10
  br label %10638

10638:                                            ; preds = %10621, %10604
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #10
  br label %10639

10639:                                            ; preds = %10638
  br label %10640

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

10641:                                            ; No predecessors!
  br label %10642

10642:                                            ; preds = %10641
  br label %10643

10643:                                            ; preds = %10642, %10582
  br label %10644

10644:                                            ; preds = %10643
  br label %10645

10645:                                            ; preds = %10644
  br label %10646

10646:                                            ; preds = %10645
  %10647 = load i32, ptr @test_count, align 4, !tbaa !5
  %10648 = add nsw i32 %10647, 1
  store i32 %10648, ptr @test_count, align 4, !tbaa !5
  %10649 = load ptr, ptr %215, align 8, !tbaa !9
  %10650 = getelementptr inbounds %struct.s2n_connection, ptr %10649, i32 0, i32 20
  %10651 = load i8, ptr %10650, align 1, !tbaa !61
  %10652 = zext i8 %10651 to i32
  %10653 = icmp eq i32 %10652, 31
  br i1 %10653, label %10707, label %10654

10654:                                            ; preds = %10646
  br label %10655

10655:                                            ; preds = %10654
  br label %10656

10656:                                            ; preds = %10655
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #10
  %10657 = call ptr @__errno_location() #11
  %10658 = load i32, ptr %10657, align 4, !tbaa !5
  store i32 %10658, ptr %233, align 4, !tbaa !5
  %10659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10660 = call i32 @s2n_print_stacktrace(ptr noundef %10659)
  %10661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10662 = trunc i8 %10661 to i1
  br i1 %10662, label %10663, label %10685

10663:                                            ; preds = %10656
  %10664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10665 = call i32 @fileno(ptr noundef %10664) #10
  %10666 = call i32 @isatty(i32 noundef %10665) #10
  %10667 = icmp ne i32 %10666, 0
  br i1 %10667, label %10668, label %10685

10668:                                            ; preds = %10663
  %10669 = load i32, ptr %233, align 4, !tbaa !5
  %10670 = call ptr @__errno_location() #11
  store i32 %10669, ptr %10670, align 4, !tbaa !5
  %10671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10672 = load i32, ptr @test_count, align 4, !tbaa !5
  %10673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10674 = load i32, ptr %10673, align 4, !tbaa !5
  %10675 = call ptr @s2n_strerror(i32 noundef %10674, ptr noundef @.str.4)
  %10676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10677 = load i32, ptr %10676, align 4, !tbaa !5
  %10678 = call ptr @s2n_strerror_debug(i32 noundef %10677, ptr noundef @.str.4)
  %10679 = call ptr @__errno_location() #11
  %10680 = load i32, ptr %10679, align 4, !tbaa !5
  %10681 = call ptr @strerror(i32 noundef %10680) #10
  %10682 = call ptr @__errno_location() #11
  %10683 = load i32, ptr %10682, align 4, !tbaa !5
  %10684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10671, ptr noundef @.str.2, i32 noundef %10672, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 443, ptr noundef %10675, ptr noundef %10678, ptr noundef %10681, i32 noundef %10683) #10
  br label %10702

10685:                                            ; preds = %10663, %10656
  %10686 = load i32, ptr %233, align 4, !tbaa !5
  %10687 = call ptr @__errno_location() #11
  store i32 %10686, ptr %10687, align 4, !tbaa !5
  %10688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10689 = load i32, ptr @test_count, align 4, !tbaa !5
  %10690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10691 = load i32, ptr %10690, align 4, !tbaa !5
  %10692 = call ptr @s2n_strerror(i32 noundef %10691, ptr noundef @.str.4)
  %10693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10694 = load i32, ptr %10693, align 4, !tbaa !5
  %10695 = call ptr @s2n_strerror_debug(i32 noundef %10694, ptr noundef @.str.4)
  %10696 = call ptr @__errno_location() #11
  %10697 = load i32, ptr %10696, align 4, !tbaa !5
  %10698 = call ptr @strerror(i32 noundef %10697) #10
  %10699 = call ptr @__errno_location() #11
  %10700 = load i32, ptr %10699, align 4, !tbaa !5
  %10701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10688, ptr noundef @.str.5, i32 noundef %10689, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 443, ptr noundef %10692, ptr noundef %10695, ptr noundef %10698, i32 noundef %10700) #10
  br label %10702

10702:                                            ; preds = %10685, %10668
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #10
  br label %10703

10703:                                            ; preds = %10702
  br label %10704

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

10705:                                            ; No predecessors!
  br label %10706

10706:                                            ; preds = %10705
  br label %10707

10707:                                            ; preds = %10706, %10646
  br label %10708

10708:                                            ; preds = %10707
  br label %10709

10709:                                            ; preds = %10708
  call void @llvm.lifetime.end.p0(i64 2, ptr %226) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #10
  %10710 = call i32 @s2n_io_pair_close(ptr noundef %221)
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #10
  %10711 = call i32 @s2n_connection_ptr_free(ptr noundef %218)
  %10712 = getelementptr inbounds %struct.s2n_result, ptr %234, i32 0, i32 0
  store i32 %10711, ptr %10712, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #10
  %10713 = call i32 @s2n_connection_ptr_free(ptr noundef %215)
  %10714 = getelementptr inbounds %struct.s2n_result, ptr %235, i32 0, i32 0
  store i32 %10713, ptr %10714, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #10
  %10715 = call i32 @s2n_config_ptr_free(ptr noundef %213)
  %10716 = getelementptr inbounds %struct.s2n_result, ptr %236, i32 0, i32 0
  store i32 %10715, ptr %10716, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %213) #10
  %10717 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %211)
  %10718 = getelementptr inbounds %struct.s2n_result, ptr %237, i32 0, i32 0
  store i32 %10717, ptr %10718, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #10
  br label %10719

10719:                                            ; preds = %10709, %9696
  call void @llvm.lifetime.start.p0(i64 1, ptr %238) #10
  store i8 31, ptr %238, align 1, !tbaa !15
  br label %10720

10720:                                            ; preds = %11400, %10719
  %10721 = load i8, ptr %238, align 1, !tbaa !15
  %10722 = zext i8 %10721 to i32
  %10723 = icmp sle i32 %10722, 34
  br i1 %10723, label %10725, label %10724

10724:                                            ; preds = %10720
  store i32 1047, ptr %101, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %238) #10
  br label %11403

10725:                                            ; preds = %10720
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #10
  store i64 0, ptr %239, align 8, !tbaa !47
  br label %10726

10726:                                            ; preds = %11396, %10725
  %10727 = load i64, ptr %239, align 8, !tbaa !47
  %10728 = icmp ule i64 %10727, 1
  br i1 %10728, label %10730, label %10729

10729:                                            ; preds = %10726
  store i32 1050, ptr %101, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #10
  br label %11399

10730:                                            ; preds = %10726
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #10
  %10731 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10731, ptr %240, align 8, !tbaa !9
  br label %10732

10732:                                            ; preds = %10730
  %10733 = load i32, ptr @test_count, align 4, !tbaa !5
  %10734 = add nsw i32 %10733, 1
  store i32 %10734, ptr @test_count, align 4, !tbaa !5
  %10735 = load ptr, ptr %240, align 8, !tbaa !9
  %10736 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %10735, ptr noundef @.str.87)
  %10737 = icmp eq i32 %10736, -1
  br i1 %10737, label %10738, label %10791

10738:                                            ; preds = %10732
  br label %10739

10739:                                            ; preds = %10738
  br label %10740

10740:                                            ; preds = %10739
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #10
  %10741 = call ptr @__errno_location() #11
  %10742 = load i32, ptr %10741, align 4, !tbaa !5
  store i32 %10742, ptr %241, align 4, !tbaa !5
  %10743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10744 = call i32 @s2n_print_stacktrace(ptr noundef %10743)
  %10745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10746 = trunc i8 %10745 to i1
  br i1 %10746, label %10747, label %10769

10747:                                            ; preds = %10740
  %10748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10749 = call i32 @fileno(ptr noundef %10748) #10
  %10750 = call i32 @isatty(i32 noundef %10749) #10
  %10751 = icmp ne i32 %10750, 0
  br i1 %10751, label %10752, label %10769

10752:                                            ; preds = %10747
  %10753 = load i32, ptr %241, align 4, !tbaa !5
  %10754 = call ptr @__errno_location() #11
  store i32 %10753, ptr %10754, align 4, !tbaa !5
  %10755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10756 = load i32, ptr @test_count, align 4, !tbaa !5
  %10757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10758 = load i32, ptr %10757, align 4, !tbaa !5
  %10759 = call ptr @s2n_strerror(i32 noundef %10758, ptr noundef @.str.4)
  %10760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10761 = load i32, ptr %10760, align 4, !tbaa !5
  %10762 = call ptr @s2n_strerror_debug(i32 noundef %10761, ptr noundef @.str.4)
  %10763 = call ptr @__errno_location() #11
  %10764 = load i32, ptr %10763, align 4, !tbaa !5
  %10765 = call ptr @strerror(i32 noundef %10764) #10
  %10766 = call ptr @__errno_location() #11
  %10767 = load i32, ptr %10766, align 4, !tbaa !5
  %10768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10755, ptr noundef @.str.2, i32 noundef %10756, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 452, ptr noundef %10759, ptr noundef %10762, ptr noundef %10765, i32 noundef %10767) #10
  br label %10786

10769:                                            ; preds = %10747, %10740
  %10770 = load i32, ptr %241, align 4, !tbaa !5
  %10771 = call ptr @__errno_location() #11
  store i32 %10770, ptr %10771, align 4, !tbaa !5
  %10772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10773 = load i32, ptr @test_count, align 4, !tbaa !5
  %10774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10775 = load i32, ptr %10774, align 4, !tbaa !5
  %10776 = call ptr @s2n_strerror(i32 noundef %10775, ptr noundef @.str.4)
  %10777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10778 = load i32, ptr %10777, align 4, !tbaa !5
  %10779 = call ptr @s2n_strerror_debug(i32 noundef %10778, ptr noundef @.str.4)
  %10780 = call ptr @__errno_location() #11
  %10781 = load i32, ptr %10780, align 4, !tbaa !5
  %10782 = call ptr @strerror(i32 noundef %10781) #10
  %10783 = call ptr @__errno_location() #11
  %10784 = load i32, ptr %10783, align 4, !tbaa !5
  %10785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10772, ptr noundef @.str.5, i32 noundef %10773, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 452, ptr noundef %10776, ptr noundef %10779, ptr noundef %10782, i32 noundef %10784) #10
  br label %10786

10786:                                            ; preds = %10769, %10752
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #10
  br label %10787

10787:                                            ; preds = %10786
  br label %10788

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

10789:                                            ; No predecessors!
  br label %10790

10790:                                            ; preds = %10789
  br label %10791

10791:                                            ; preds = %10790, %10732
  br label %10792

10792:                                            ; preds = %10791
  br label %10793

10793:                                            ; preds = %10792
  %10794 = load i64, ptr %239, align 8, !tbaa !47
  %10795 = icmp ne i64 %10794, 0
  br i1 %10795, label %10796, label %10865

10796:                                            ; preds = %10793
  br label %10797

10797:                                            ; preds = %10796
  %10798 = load i32, ptr @test_count, align 4, !tbaa !5
  %10799 = add nsw i32 %10798, 1
  store i32 %10799, ptr @test_count, align 4, !tbaa !5
  %10800 = load ptr, ptr %240, align 8, !tbaa !9
  %10801 = call i32 @s2n_handshake_type_set_tls13_flag(ptr noundef %10800, i32 noundef 16)
  %10802 = getelementptr inbounds %struct.s2n_result, ptr %242, i32 0, i32 0
  store i32 %10801, ptr %10802, align 4
  %10803 = getelementptr inbounds %struct.s2n_result, ptr %242, i32 0, i32 0
  %10804 = load i32, ptr %10803, align 4
  %10805 = call zeroext i1 @s2n_result_is_ok(i32 %10804)
  br i1 %10805, label %10859, label %10806

10806:                                            ; preds = %10797
  br label %10807

10807:                                            ; preds = %10806
  br label %10808

10808:                                            ; preds = %10807
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #10
  %10809 = call ptr @__errno_location() #11
  %10810 = load i32, ptr %10809, align 4, !tbaa !5
  store i32 %10810, ptr %243, align 4, !tbaa !5
  %10811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10812 = call i32 @s2n_print_stacktrace(ptr noundef %10811)
  %10813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10814 = trunc i8 %10813 to i1
  br i1 %10814, label %10815, label %10837

10815:                                            ; preds = %10808
  %10816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10817 = call i32 @fileno(ptr noundef %10816) #10
  %10818 = call i32 @isatty(i32 noundef %10817) #10
  %10819 = icmp ne i32 %10818, 0
  br i1 %10819, label %10820, label %10837

10820:                                            ; preds = %10815
  %10821 = load i32, ptr %243, align 4, !tbaa !5
  %10822 = call ptr @__errno_location() #11
  store i32 %10821, ptr %10822, align 4, !tbaa !5
  %10823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10824 = load i32, ptr @test_count, align 4, !tbaa !5
  %10825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10826 = load i32, ptr %10825, align 4, !tbaa !5
  %10827 = call ptr @s2n_strerror(i32 noundef %10826, ptr noundef @.str.4)
  %10828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10829 = load i32, ptr %10828, align 4, !tbaa !5
  %10830 = call ptr @s2n_strerror_debug(i32 noundef %10829, ptr noundef @.str.4)
  %10831 = call ptr @__errno_location() #11
  %10832 = load i32, ptr %10831, align 4, !tbaa !5
  %10833 = call ptr @strerror(i32 noundef %10832) #10
  %10834 = call ptr @__errno_location() #11
  %10835 = load i32, ptr %10834, align 4, !tbaa !5
  %10836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10823, ptr noundef @.str.2, i32 noundef %10824, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 454, ptr noundef %10827, ptr noundef %10830, ptr noundef %10833, i32 noundef %10835) #10
  br label %10854

10837:                                            ; preds = %10815, %10808
  %10838 = load i32, ptr %243, align 4, !tbaa !5
  %10839 = call ptr @__errno_location() #11
  store i32 %10838, ptr %10839, align 4, !tbaa !5
  %10840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10841 = load i32, ptr @test_count, align 4, !tbaa !5
  %10842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10843 = load i32, ptr %10842, align 4, !tbaa !5
  %10844 = call ptr @s2n_strerror(i32 noundef %10843, ptr noundef @.str.4)
  %10845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10846 = load i32, ptr %10845, align 4, !tbaa !5
  %10847 = call ptr @s2n_strerror_debug(i32 noundef %10846, ptr noundef @.str.4)
  %10848 = call ptr @__errno_location() #11
  %10849 = load i32, ptr %10848, align 4, !tbaa !5
  %10850 = call ptr @strerror(i32 noundef %10849) #10
  %10851 = call ptr @__errno_location() #11
  %10852 = load i32, ptr %10851, align 4, !tbaa !5
  %10853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10840, ptr noundef @.str.5, i32 noundef %10841, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 454, ptr noundef %10844, ptr noundef %10847, ptr noundef %10850, i32 noundef %10852) #10
  br label %10854

10854:                                            ; preds = %10837, %10820
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #10
  br label %10855

10855:                                            ; preds = %10854
  br label %10856

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

10857:                                            ; No predecessors!
  br label %10858

10858:                                            ; preds = %10857
  br label %10859

10859:                                            ; preds = %10858, %10797
  br label %10860

10860:                                            ; preds = %10859
  br label %10861

10861:                                            ; preds = %10860
  %10862 = load ptr, ptr %240, align 8, !tbaa !9
  %10863 = getelementptr inbounds %struct.s2n_connection, ptr %10862, i32 0, i32 52
  %10864 = getelementptr inbounds %struct.s2n_handshake, ptr %10863, i32 0, i32 7
  store i32 1, ptr %10864, align 8, !tbaa !62
  br label %10865

10865:                                            ; preds = %10861, %10793
  call void @llvm.lifetime.start.p0(i64 1, ptr %244) #10
  %10866 = load i8, ptr %238, align 1, !tbaa !15
  store i8 %10866, ptr %244, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %245) #10
  store i8 1, ptr %245, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %246) #10
  call void @llvm.memset.p0.i64(ptr align 8 %246, i8 0, i64 40, i1 false)
  br label %10867

10867:                                            ; preds = %10865
  %10868 = load i32, ptr @test_count, align 4, !tbaa !5
  %10869 = add nsw i32 %10868, 1
  store i32 %10869, ptr @test_count, align 4, !tbaa !5
  %10870 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %246, i32 noundef 0)
  %10871 = icmp eq i32 %10870, -1
  br i1 %10871, label %10872, label %10925

10872:                                            ; preds = %10867
  br label %10873

10873:                                            ; preds = %10872
  br label %10874

10874:                                            ; preds = %10873
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #10
  %10875 = call ptr @__errno_location() #11
  %10876 = load i32, ptr %10875, align 4, !tbaa !5
  store i32 %10876, ptr %247, align 4, !tbaa !5
  %10877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10878 = call i32 @s2n_print_stacktrace(ptr noundef %10877)
  %10879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10880 = trunc i8 %10879 to i1
  br i1 %10880, label %10881, label %10903

10881:                                            ; preds = %10874
  %10882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10883 = call i32 @fileno(ptr noundef %10882) #10
  %10884 = call i32 @isatty(i32 noundef %10883) #10
  %10885 = icmp ne i32 %10884, 0
  br i1 %10885, label %10886, label %10903

10886:                                            ; preds = %10881
  %10887 = load i32, ptr %247, align 4, !tbaa !5
  %10888 = call ptr @__errno_location() #11
  store i32 %10887, ptr %10888, align 4, !tbaa !5
  %10889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10890 = load i32, ptr @test_count, align 4, !tbaa !5
  %10891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10892 = load i32, ptr %10891, align 4, !tbaa !5
  %10893 = call ptr @s2n_strerror(i32 noundef %10892, ptr noundef @.str.4)
  %10894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10895 = load i32, ptr %10894, align 4, !tbaa !5
  %10896 = call ptr @s2n_strerror_debug(i32 noundef %10895, ptr noundef @.str.4)
  %10897 = call ptr @__errno_location() #11
  %10898 = load i32, ptr %10897, align 4, !tbaa !5
  %10899 = call ptr @strerror(i32 noundef %10898) #10
  %10900 = call ptr @__errno_location() #11
  %10901 = load i32, ptr %10900, align 4, !tbaa !5
  %10902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10889, ptr noundef @.str.2, i32 noundef %10890, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 462, ptr noundef %10893, ptr noundef %10896, ptr noundef %10899, i32 noundef %10901) #10
  br label %10920

10903:                                            ; preds = %10881, %10874
  %10904 = load i32, ptr %247, align 4, !tbaa !5
  %10905 = call ptr @__errno_location() #11
  store i32 %10904, ptr %10905, align 4, !tbaa !5
  %10906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10907 = load i32, ptr @test_count, align 4, !tbaa !5
  %10908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10909 = load i32, ptr %10908, align 4, !tbaa !5
  %10910 = call ptr @s2n_strerror(i32 noundef %10909, ptr noundef @.str.4)
  %10911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10912 = load i32, ptr %10911, align 4, !tbaa !5
  %10913 = call ptr @s2n_strerror_debug(i32 noundef %10912, ptr noundef @.str.4)
  %10914 = call ptr @__errno_location() #11
  %10915 = load i32, ptr %10914, align 4, !tbaa !5
  %10916 = call ptr @strerror(i32 noundef %10915) #10
  %10917 = call ptr @__errno_location() #11
  %10918 = load i32, ptr %10917, align 4, !tbaa !5
  %10919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10906, ptr noundef @.str.5, i32 noundef %10907, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 462, ptr noundef %10910, ptr noundef %10913, ptr noundef %10916, i32 noundef %10918) #10
  br label %10920

10920:                                            ; preds = %10903, %10886
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #10
  br label %10921

10921:                                            ; preds = %10920
  br label %10922

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

10923:                                            ; No predecessors!
  br label %10924

10924:                                            ; preds = %10923
  br label %10925

10925:                                            ; preds = %10924, %10867
  br label %10926

10926:                                            ; preds = %10925
  br label %10927

10927:                                            ; preds = %10926
  br label %10928

10928:                                            ; preds = %10927
  %10929 = load i32, ptr @test_count, align 4, !tbaa !5
  %10930 = add nsw i32 %10929, 1
  store i32 %10930, ptr @test_count, align 4, !tbaa !5
  %10931 = getelementptr inbounds [1 x i8], ptr %244, i64 0, i64 0
  %10932 = load i8, ptr %245, align 1, !tbaa !15
  %10933 = call i32 @write_test_supported_versions_list(ptr noundef %246, ptr noundef %10931, i8 noundef zeroext %10932)
  %10934 = icmp eq i32 %10933, -1
  br i1 %10934, label %10935, label %10988

10935:                                            ; preds = %10928
  br label %10936

10936:                                            ; preds = %10935
  br label %10937

10937:                                            ; preds = %10936
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #10
  %10938 = call ptr @__errno_location() #11
  %10939 = load i32, ptr %10938, align 4, !tbaa !5
  store i32 %10939, ptr %248, align 4, !tbaa !5
  %10940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10941 = call i32 @s2n_print_stacktrace(ptr noundef %10940)
  %10942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10943 = trunc i8 %10942 to i1
  br i1 %10943, label %10944, label %10966

10944:                                            ; preds = %10937
  %10945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10946 = call i32 @fileno(ptr noundef %10945) #10
  %10947 = call i32 @isatty(i32 noundef %10946) #10
  %10948 = icmp ne i32 %10947, 0
  br i1 %10948, label %10949, label %10966

10949:                                            ; preds = %10944
  %10950 = load i32, ptr %248, align 4, !tbaa !5
  %10951 = call ptr @__errno_location() #11
  store i32 %10950, ptr %10951, align 4, !tbaa !5
  %10952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10953 = load i32, ptr @test_count, align 4, !tbaa !5
  %10954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10955 = load i32, ptr %10954, align 4, !tbaa !5
  %10956 = call ptr @s2n_strerror(i32 noundef %10955, ptr noundef @.str.4)
  %10957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10958 = load i32, ptr %10957, align 4, !tbaa !5
  %10959 = call ptr @s2n_strerror_debug(i32 noundef %10958, ptr noundef @.str.4)
  %10960 = call ptr @__errno_location() #11
  %10961 = load i32, ptr %10960, align 4, !tbaa !5
  %10962 = call ptr @strerror(i32 noundef %10961) #10
  %10963 = call ptr @__errno_location() #11
  %10964 = load i32, ptr %10963, align 4, !tbaa !5
  %10965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10952, ptr noundef @.str.2, i32 noundef %10953, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 464, ptr noundef %10956, ptr noundef %10959, ptr noundef %10962, i32 noundef %10964) #10
  br label %10983

10966:                                            ; preds = %10944, %10937
  %10967 = load i32, ptr %248, 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.5, i32 noundef %10970, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 464, ptr noundef %10973, ptr noundef %10976, ptr noundef %10979, i32 noundef %10981) #10
  br label %10983

10983:                                            ; preds = %10966, %10949
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #10
  br label %10984

10984:                                            ; preds = %10983
  br label %10985

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

10986:                                            ; No predecessors!
  br label %10987

10987:                                            ; preds = %10986
  br label %10988

10988:                                            ; preds = %10987, %10928
  br label %10989

10989:                                            ; preds = %10988
  br label %10990

10990:                                            ; preds = %10989
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #10
  %10991 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !51
  %10992 = load ptr, ptr %240, align 8, !tbaa !9
  %10993 = call i32 %10991(ptr noundef %10992, ptr noundef %246)
  store i32 %10993, ptr %249, align 4, !tbaa !5
  %10994 = load i64, ptr %239, align 8, !tbaa !47
  %10995 = icmp ne i64 %10994, 0
  br i1 %10995, label %10996, label %11198

10996:                                            ; preds = %10990
  %10997 = load i8, ptr %238, align 1, !tbaa !15
  %10998 = zext i8 %10997 to i32
  %10999 = icmp slt i32 %10998, 34
  br i1 %10999, label %11000, label %11198

11000:                                            ; preds = %10996
  br label %11001

11001:                                            ; preds = %11000
  br label %11002

11002:                                            ; preds = %11001
  br label %11003

11003:                                            ; preds = %11002
  %11004 = load i32, ptr @test_count, align 4, !tbaa !5
  %11005 = add nsw i32 %11004, 1
  store i32 %11005, ptr @test_count, align 4, !tbaa !5
  %11006 = load i32, ptr %249, align 4, !tbaa !5
  %11007 = icmp eq i32 %11006, -1
  br i1 %11007, label %11061, label %11008

11008:                                            ; preds = %11003
  br label %11009

11009:                                            ; preds = %11008
  br label %11010

11010:                                            ; preds = %11009
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #10
  %11011 = call ptr @__errno_location() #11
  %11012 = load i32, ptr %11011, align 4, !tbaa !5
  store i32 %11012, ptr %250, align 4, !tbaa !5
  %11013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11014 = call i32 @s2n_print_stacktrace(ptr noundef %11013)
  %11015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11016 = trunc i8 %11015 to i1
  br i1 %11016, label %11017, label %11039

11017:                                            ; preds = %11010
  %11018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11019 = call i32 @fileno(ptr noundef %11018) #10
  %11020 = call i32 @isatty(i32 noundef %11019) #10
  %11021 = icmp ne i32 %11020, 0
  br i1 %11021, label %11022, label %11039

11022:                                            ; preds = %11017
  %11023 = load i32, ptr %250, align 4, !tbaa !5
  %11024 = call ptr @__errno_location() #11
  store i32 %11023, ptr %11024, align 4, !tbaa !5
  %11025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11026 = load i32, ptr @test_count, align 4, !tbaa !5
  %11027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11028 = load i32, ptr %11027, align 4, !tbaa !5
  %11029 = call ptr @s2n_strerror(i32 noundef %11028, ptr noundef @.str.4)
  %11030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11031 = load i32, ptr %11030, align 4, !tbaa !5
  %11032 = call ptr @s2n_strerror_debug(i32 noundef %11031, ptr noundef @.str.4)
  %11033 = call ptr @__errno_location() #11
  %11034 = load i32, ptr %11033, align 4, !tbaa !5
  %11035 = call ptr @strerror(i32 noundef %11034) #10
  %11036 = call ptr @__errno_location() #11
  %11037 = load i32, ptr %11036, align 4, !tbaa !5
  %11038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11025, ptr noundef @.str.2, i32 noundef %11026, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11029, ptr noundef %11032, ptr noundef %11035, i32 noundef %11037) #10
  br label %11056

11039:                                            ; preds = %11017, %11010
  %11040 = load i32, ptr %250, align 4, !tbaa !5
  %11041 = call ptr @__errno_location() #11
  store i32 %11040, ptr %11041, align 4, !tbaa !5
  %11042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11043 = load i32, ptr @test_count, align 4, !tbaa !5
  %11044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11045 = load i32, ptr %11044, align 4, !tbaa !5
  %11046 = call ptr @s2n_strerror(i32 noundef %11045, ptr noundef @.str.4)
  %11047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11048 = load i32, ptr %11047, align 4, !tbaa !5
  %11049 = call ptr @s2n_strerror_debug(i32 noundef %11048, ptr noundef @.str.4)
  %11050 = call ptr @__errno_location() #11
  %11051 = load i32, ptr %11050, align 4, !tbaa !5
  %11052 = call ptr @strerror(i32 noundef %11051) #10
  %11053 = call ptr @__errno_location() #11
  %11054 = load i32, ptr %11053, align 4, !tbaa !5
  %11055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11042, ptr noundef @.str.5, i32 noundef %11043, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11046, ptr noundef %11049, ptr noundef %11052, i32 noundef %11054) #10
  br label %11056

11056:                                            ; preds = %11039, %11022
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #10
  br label %11057

11057:                                            ; preds = %11056
  br label %11058

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

11059:                                            ; No predecessors!
  br label %11060

11060:                                            ; preds = %11059
  br label %11061

11061:                                            ; preds = %11060, %11003
  br label %11062

11062:                                            ; preds = %11061
  br label %11063

11063:                                            ; preds = %11062
  br label %11064

11064:                                            ; preds = %11063
  %11065 = load i32, ptr @test_count, align 4, !tbaa !5
  %11066 = add nsw i32 %11065, 1
  store i32 %11066, ptr @test_count, align 4, !tbaa !5
  %11067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11068 = load i32, ptr %11067, align 4, !tbaa !5
  %11069 = icmp eq i32 %11068, 335544384
  br i1 %11069, label %11123, label %11070

11070:                                            ; preds = %11064
  br label %11071

11071:                                            ; preds = %11070
  br label %11072

11072:                                            ; preds = %11071
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #10
  %11073 = call ptr @__errno_location() #11
  %11074 = load i32, ptr %11073, align 4, !tbaa !5
  store i32 %11074, ptr %251, align 4, !tbaa !5
  %11075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11076 = call i32 @s2n_print_stacktrace(ptr noundef %11075)
  %11077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11078 = trunc i8 %11077 to i1
  br i1 %11078, label %11079, label %11101

11079:                                            ; preds = %11072
  %11080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11081 = call i32 @fileno(ptr noundef %11080) #10
  %11082 = call i32 @isatty(i32 noundef %11081) #10
  %11083 = icmp ne i32 %11082, 0
  br i1 %11083, label %11084, label %11101

11084:                                            ; preds = %11079
  %11085 = load i32, ptr %251, align 4, !tbaa !5
  %11086 = call ptr @__errno_location() #11
  store i32 %11085, ptr %11086, align 4, !tbaa !5
  %11087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11088 = load i32, ptr @test_count, align 4, !tbaa !5
  %11089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11090 = load i32, ptr %11089, align 4, !tbaa !5
  %11091 = call ptr @s2n_strerror(i32 noundef %11090, ptr noundef @.str.4)
  %11092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11093 = load i32, ptr %11092, align 4, !tbaa !5
  %11094 = call ptr @s2n_strerror_debug(i32 noundef %11093, ptr noundef @.str.4)
  %11095 = call ptr @__errno_location() #11
  %11096 = load i32, ptr %11095, align 4, !tbaa !5
  %11097 = call ptr @strerror(i32 noundef %11096) #10
  %11098 = call ptr @__errno_location() #11
  %11099 = load i32, ptr %11098, align 4, !tbaa !5
  %11100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11087, ptr noundef @.str.2, i32 noundef %11088, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11091, ptr noundef %11094, ptr noundef %11097, i32 noundef %11099) #10
  br label %11118

11101:                                            ; preds = %11079, %11072
  %11102 = load i32, ptr %251, align 4, !tbaa !5
  %11103 = call ptr @__errno_location() #11
  store i32 %11102, ptr %11103, align 4, !tbaa !5
  %11104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11105 = load i32, ptr @test_count, align 4, !tbaa !5
  %11106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11107 = load i32, ptr %11106, align 4, !tbaa !5
  %11108 = call ptr @s2n_strerror(i32 noundef %11107, ptr noundef @.str.4)
  %11109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11110 = load i32, ptr %11109, align 4, !tbaa !5
  %11111 = call ptr @s2n_strerror_debug(i32 noundef %11110, ptr noundef @.str.4)
  %11112 = call ptr @__errno_location() #11
  %11113 = load i32, ptr %11112, align 4, !tbaa !5
  %11114 = call ptr @strerror(i32 noundef %11113) #10
  %11115 = call ptr @__errno_location() #11
  %11116 = load i32, ptr %11115, align 4, !tbaa !5
  %11117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11104, ptr noundef @.str.5, i32 noundef %11105, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11108, ptr noundef %11111, ptr noundef %11114, i32 noundef %11116) #10
  br label %11118

11118:                                            ; preds = %11101, %11084
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #10
  br label %11119

11119:                                            ; preds = %11118
  br label %11120

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

11121:                                            ; No predecessors!
  br label %11122

11122:                                            ; preds = %11121
  br label %11123

11123:                                            ; preds = %11122, %11064
  br label %11124

11124:                                            ; preds = %11123
  br label %11125

11125:                                            ; preds = %11124
  br label %11126

11126:                                            ; preds = %11125
  %11127 = load i32, ptr @test_count, align 4, !tbaa !5
  %11128 = add nsw i32 %11127, 1
  store i32 %11128, ptr @test_count, align 4, !tbaa !5
  %11129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11130 = load i32, ptr %11129, align 4, !tbaa !5
  %11131 = call ptr @s2n_strerror_debug(i32 noundef %11130, ptr noundef @.str.4)
  %11132 = icmp eq ptr %11131, null
  br i1 %11132, label %11133, label %11186

11133:                                            ; preds = %11126
  br label %11134

11134:                                            ; preds = %11133
  br label %11135

11135:                                            ; preds = %11134
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #10
  %11136 = call ptr @__errno_location() #11
  %11137 = load i32, ptr %11136, align 4, !tbaa !5
  store i32 %11137, ptr %252, align 4, !tbaa !5
  %11138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11139 = call i32 @s2n_print_stacktrace(ptr noundef %11138)
  %11140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11141 = trunc i8 %11140 to i1
  br i1 %11141, label %11142, label %11164

11142:                                            ; preds = %11135
  %11143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11144 = call i32 @fileno(ptr noundef %11143) #10
  %11145 = call i32 @isatty(i32 noundef %11144) #10
  %11146 = icmp ne i32 %11145, 0
  br i1 %11146, label %11147, label %11164

11147:                                            ; preds = %11142
  %11148 = load i32, ptr %252, align 4, !tbaa !5
  %11149 = call ptr @__errno_location() #11
  store i32 %11148, ptr %11149, align 4, !tbaa !5
  %11150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11151 = load i32, ptr @test_count, align 4, !tbaa !5
  %11152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11153 = load i32, ptr %11152, align 4, !tbaa !5
  %11154 = call ptr @s2n_strerror(i32 noundef %11153, ptr noundef @.str.4)
  %11155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11156 = load i32, ptr %11155, align 4, !tbaa !5
  %11157 = call ptr @s2n_strerror_debug(i32 noundef %11156, ptr noundef @.str.4)
  %11158 = call ptr @__errno_location() #11
  %11159 = load i32, ptr %11158, align 4, !tbaa !5
  %11160 = call ptr @strerror(i32 noundef %11159) #10
  %11161 = call ptr @__errno_location() #11
  %11162 = load i32, ptr %11161, align 4, !tbaa !5
  %11163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11150, ptr noundef @.str.2, i32 noundef %11151, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11154, ptr noundef %11157, ptr noundef %11160, i32 noundef %11162) #10
  br label %11181

11164:                                            ; preds = %11142, %11135
  %11165 = load i32, ptr %252, align 4, !tbaa !5
  %11166 = call ptr @__errno_location() #11
  store i32 %11165, ptr %11166, align 4, !tbaa !5
  %11167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11168 = load i32, ptr @test_count, align 4, !tbaa !5
  %11169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11170 = load i32, ptr %11169, align 4, !tbaa !5
  %11171 = call ptr @s2n_strerror(i32 noundef %11170, ptr noundef @.str.4)
  %11172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11173 = load i32, ptr %11172, align 4, !tbaa !5
  %11174 = call ptr @s2n_strerror_debug(i32 noundef %11173, ptr noundef @.str.4)
  %11175 = call ptr @__errno_location() #11
  %11176 = load i32, ptr %11175, align 4, !tbaa !5
  %11177 = call ptr @strerror(i32 noundef %11176) #10
  %11178 = call ptr @__errno_location() #11
  %11179 = load i32, ptr %11178, align 4, !tbaa !5
  %11180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11167, ptr noundef @.str.5, i32 noundef %11168, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11171, ptr noundef %11174, ptr noundef %11177, i32 noundef %11179) #10
  br label %11181

11181:                                            ; preds = %11164, %11147
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #10
  br label %11182

11182:                                            ; preds = %11181
  br label %11183

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

11184:                                            ; No predecessors!
  br label %11185

11185:                                            ; preds = %11184
  br label %11186

11186:                                            ; preds = %11185, %11126
  br label %11187

11187:                                            ; preds = %11186
  br label %11188

11188:                                            ; preds = %11187
  br label %11189

11189:                                            ; preds = %11188
  br label %11190

11190:                                            ; preds = %11189
  br label %11191

11191:                                            ; preds = %11190
  %11192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11192, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11193 = call ptr @__errno_location() #11
  store i32 0, ptr %11193, align 4, !tbaa !5
  br label %11194

11194:                                            ; preds = %11191
  br label %11195

11195:                                            ; preds = %11194
  br label %11196

11196:                                            ; preds = %11195
  br label %11197

11197:                                            ; preds = %11196
  br label %11392

11198:                                            ; preds = %10996, %10990
  br label %11199

11199:                                            ; preds = %11198
  %11200 = load i32, ptr @test_count, align 4, !tbaa !5
  %11201 = add nsw i32 %11200, 1
  store i32 %11201, ptr @test_count, align 4, !tbaa !5
  %11202 = load i32, ptr %249, align 4, !tbaa !5
  %11203 = icmp eq i32 %11202, -1
  br i1 %11203, label %11204, label %11257

11204:                                            ; preds = %11199
  br label %11205

11205:                                            ; preds = %11204
  br label %11206

11206:                                            ; preds = %11205
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #10
  %11207 = call ptr @__errno_location() #11
  %11208 = load i32, ptr %11207, align 4, !tbaa !5
  store i32 %11208, ptr %253, align 4, !tbaa !5
  %11209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11210 = call i32 @s2n_print_stacktrace(ptr noundef %11209)
  %11211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11212 = trunc i8 %11211 to i1
  br i1 %11212, label %11213, label %11235

11213:                                            ; preds = %11206
  %11214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11215 = call i32 @fileno(ptr noundef %11214) #10
  %11216 = call i32 @isatty(i32 noundef %11215) #10
  %11217 = icmp ne i32 %11216, 0
  br i1 %11217, label %11218, label %11235

11218:                                            ; preds = %11213
  %11219 = load i32, ptr %253, align 4, !tbaa !5
  %11220 = call ptr @__errno_location() #11
  store i32 %11219, ptr %11220, align 4, !tbaa !5
  %11221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11222 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %11224, ptr noundef @.str.4)
  %11226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11227 = load i32, ptr %11226, align 4, !tbaa !5
  %11228 = call ptr @s2n_strerror_debug(i32 noundef %11227, ptr noundef @.str.4)
  %11229 = call ptr @__errno_location() #11
  %11230 = load i32, ptr %11229, align 4, !tbaa !5
  %11231 = call ptr @strerror(i32 noundef %11230) #10
  %11232 = call ptr @__errno_location() #11
  %11233 = load i32, ptr %11232, align 4, !tbaa !5
  %11234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11221, ptr noundef @.str.2, i32 noundef %11222, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 477, ptr noundef %11225, ptr noundef %11228, ptr noundef %11231, i32 noundef %11233) #10
  br label %11252

11235:                                            ; preds = %11213, %11206
  %11236 = load i32, ptr %253, align 4, !tbaa !5
  %11237 = call ptr @__errno_location() #11
  store i32 %11236, ptr %11237, align 4, !tbaa !5
  %11238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11239 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %11241, ptr noundef @.str.4)
  %11243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11244 = load i32, ptr %11243, align 4, !tbaa !5
  %11245 = call ptr @s2n_strerror_debug(i32 noundef %11244, ptr noundef @.str.4)
  %11246 = call ptr @__errno_location() #11
  %11247 = load i32, ptr %11246, align 4, !tbaa !5
  %11248 = call ptr @strerror(i32 noundef %11247) #10
  %11249 = call ptr @__errno_location() #11
  %11250 = load i32, ptr %11249, align 4, !tbaa !5
  %11251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11238, ptr noundef @.str.5, i32 noundef %11239, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 477, ptr noundef %11242, ptr noundef %11245, ptr noundef %11248, i32 noundef %11250) #10
  br label %11252

11252:                                            ; preds = %11235, %11218
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #10
  br label %11253

11253:                                            ; preds = %11252
  br label %11254

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

11255:                                            ; No predecessors!
  br label %11256

11256:                                            ; preds = %11255
  br label %11257

11257:                                            ; preds = %11256, %11199
  br label %11258

11258:                                            ; preds = %11257
  br label %11259

11259:                                            ; preds = %11258
  br label %11260

11260:                                            ; preds = %11259
  %11261 = load i32, ptr @test_count, align 4, !tbaa !5
  %11262 = add nsw i32 %11261, 1
  store i32 %11262, ptr @test_count, align 4, !tbaa !5
  %11263 = load ptr, ptr %240, align 8, !tbaa !9
  %11264 = getelementptr inbounds %struct.s2n_connection, ptr %11263, i32 0, i32 21
  %11265 = load i8, ptr %11264, align 2, !tbaa !52
  %11266 = zext i8 %11265 to i32
  %11267 = load i8, ptr %238, align 1, !tbaa !15
  %11268 = zext i8 %11267 to i32
  %11269 = icmp eq i32 %11266, %11268
  br i1 %11269, label %11323, label %11270

11270:                                            ; preds = %11260
  br label %11271

11271:                                            ; preds = %11270
  br label %11272

11272:                                            ; preds = %11271
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #10
  %11273 = call ptr @__errno_location() #11
  %11274 = load i32, ptr %11273, align 4, !tbaa !5
  store i32 %11274, ptr %254, align 4, !tbaa !5
  %11275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11276 = call i32 @s2n_print_stacktrace(ptr noundef %11275)
  %11277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11278 = trunc i8 %11277 to i1
  br i1 %11278, label %11279, label %11301

11279:                                            ; preds = %11272
  %11280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11281 = call i32 @fileno(ptr noundef %11280) #10
  %11282 = call i32 @isatty(i32 noundef %11281) #10
  %11283 = icmp ne i32 %11282, 0
  br i1 %11283, label %11284, label %11301

11284:                                            ; preds = %11279
  %11285 = load i32, ptr %254, align 4, !tbaa !5
  %11286 = call ptr @__errno_location() #11
  store i32 %11285, ptr %11286, align 4, !tbaa !5
  %11287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11288 = load i32, ptr @test_count, align 4, !tbaa !5
  %11289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11290 = load i32, ptr %11289, align 4, !tbaa !5
  %11291 = call ptr @s2n_strerror(i32 noundef %11290, ptr noundef @.str.4)
  %11292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11293 = load i32, ptr %11292, align 4, !tbaa !5
  %11294 = call ptr @s2n_strerror_debug(i32 noundef %11293, ptr noundef @.str.4)
  %11295 = call ptr @__errno_location() #11
  %11296 = load i32, ptr %11295, align 4, !tbaa !5
  %11297 = call ptr @strerror(i32 noundef %11296) #10
  %11298 = call ptr @__errno_location() #11
  %11299 = load i32, ptr %11298, align 4, !tbaa !5
  %11300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11287, ptr noundef @.str.2, i32 noundef %11288, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 479, ptr noundef %11291, ptr noundef %11294, ptr noundef %11297, i32 noundef %11299) #10
  br label %11318

11301:                                            ; preds = %11279, %11272
  %11302 = load i32, ptr %254, align 4, !tbaa !5
  %11303 = call ptr @__errno_location() #11
  store i32 %11302, ptr %11303, align 4, !tbaa !5
  %11304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11305 = load i32, ptr @test_count, align 4, !tbaa !5
  %11306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11307 = load i32, ptr %11306, align 4, !tbaa !5
  %11308 = call ptr @s2n_strerror(i32 noundef %11307, ptr noundef @.str.4)
  %11309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11310 = load i32, ptr %11309, align 4, !tbaa !5
  %11311 = call ptr @s2n_strerror_debug(i32 noundef %11310, ptr noundef @.str.4)
  %11312 = call ptr @__errno_location() #11
  %11313 = load i32, ptr %11312, align 4, !tbaa !5
  %11314 = call ptr @strerror(i32 noundef %11313) #10
  %11315 = call ptr @__errno_location() #11
  %11316 = load i32, ptr %11315, align 4, !tbaa !5
  %11317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11304, ptr noundef @.str.5, i32 noundef %11305, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 479, ptr noundef %11308, ptr noundef %11311, ptr noundef %11314, i32 noundef %11316) #10
  br label %11318

11318:                                            ; preds = %11301, %11284
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #10
  br label %11319

11319:                                            ; preds = %11318
  br label %11320

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

11321:                                            ; No predecessors!
  br label %11322

11322:                                            ; preds = %11321
  br label %11323

11323:                                            ; preds = %11322, %11260
  br label %11324

11324:                                            ; preds = %11323
  br label %11325

11325:                                            ; preds = %11324
  br label %11326

11326:                                            ; preds = %11325
  %11327 = load i32, ptr @test_count, align 4, !tbaa !5
  %11328 = add nsw i32 %11327, 1
  store i32 %11328, ptr @test_count, align 4, !tbaa !5
  %11329 = load ptr, ptr %240, align 8, !tbaa !9
  %11330 = getelementptr inbounds %struct.s2n_connection, ptr %11329, i32 0, i32 23
  %11331 = load i8, ptr %11330, align 4, !tbaa !54
  %11332 = zext i8 %11331 to i32
  %11333 = load i8, ptr %238, align 1, !tbaa !15
  %11334 = zext i8 %11333 to i32
  %11335 = icmp eq i32 %11332, %11334
  br i1 %11335, label %11389, label %11336

11336:                                            ; preds = %11326
  br label %11337

11337:                                            ; preds = %11336
  br label %11338

11338:                                            ; preds = %11337
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #10
  %11339 = call ptr @__errno_location() #11
  %11340 = load i32, ptr %11339, align 4, !tbaa !5
  store i32 %11340, ptr %255, align 4, !tbaa !5
  %11341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11342 = call i32 @s2n_print_stacktrace(ptr noundef %11341)
  %11343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11344 = trunc i8 %11343 to i1
  br i1 %11344, label %11345, label %11367

11345:                                            ; preds = %11338
  %11346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11347 = call i32 @fileno(ptr noundef %11346) #10
  %11348 = call i32 @isatty(i32 noundef %11347) #10
  %11349 = icmp ne i32 %11348, 0
  br i1 %11349, label %11350, label %11367

11350:                                            ; preds = %11345
  %11351 = load i32, ptr %255, align 4, !tbaa !5
  %11352 = call ptr @__errno_location() #11
  store i32 %11351, ptr %11352, align 4, !tbaa !5
  %11353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11354 = load i32, ptr @test_count, align 4, !tbaa !5
  %11355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11356 = load i32, ptr %11355, align 4, !tbaa !5
  %11357 = call ptr @s2n_strerror(i32 noundef %11356, ptr noundef @.str.4)
  %11358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11359 = load i32, ptr %11358, align 4, !tbaa !5
  %11360 = call ptr @s2n_strerror_debug(i32 noundef %11359, ptr noundef @.str.4)
  %11361 = call ptr @__errno_location() #11
  %11362 = load i32, ptr %11361, align 4, !tbaa !5
  %11363 = call ptr @strerror(i32 noundef %11362) #10
  %11364 = call ptr @__errno_location() #11
  %11365 = load i32, ptr %11364, align 4, !tbaa !5
  %11366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11353, ptr noundef @.str.2, i32 noundef %11354, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 480, ptr noundef %11357, ptr noundef %11360, ptr noundef %11363, i32 noundef %11365) #10
  br label %11384

11367:                                            ; preds = %11345, %11338
  %11368 = load i32, ptr %255, align 4, !tbaa !5
  %11369 = call ptr @__errno_location() #11
  store i32 %11368, ptr %11369, align 4, !tbaa !5
  %11370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11371 = load i32, ptr @test_count, align 4, !tbaa !5
  %11372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11373 = load i32, ptr %11372, align 4, !tbaa !5
  %11374 = call ptr @s2n_strerror(i32 noundef %11373, ptr noundef @.str.4)
  %11375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11376 = load i32, ptr %11375, align 4, !tbaa !5
  %11377 = call ptr @s2n_strerror_debug(i32 noundef %11376, ptr noundef @.str.4)
  %11378 = call ptr @__errno_location() #11
  %11379 = load i32, ptr %11378, align 4, !tbaa !5
  %11380 = call ptr @strerror(i32 noundef %11379) #10
  %11381 = call ptr @__errno_location() #11
  %11382 = load i32, ptr %11381, align 4, !tbaa !5
  %11383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11370, ptr noundef @.str.5, i32 noundef %11371, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 480, ptr noundef %11374, ptr noundef %11377, ptr noundef %11380, i32 noundef %11382) #10
  br label %11384

11384:                                            ; preds = %11367, %11350
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #10
  br label %11385

11385:                                            ; preds = %11384
  br label %11386

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

11387:                                            ; No predecessors!
  br label %11388

11388:                                            ; preds = %11387
  br label %11389

11389:                                            ; preds = %11388, %11326
  br label %11390

11390:                                            ; preds = %11389
  br label %11391

11391:                                            ; preds = %11390
  br label %11392

11392:                                            ; preds = %11391, %11197
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #10
  %11393 = call i32 @s2n_stuffer_free(ptr noundef %246)
  call void @llvm.lifetime.end.p0(i64 40, ptr %246) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %245) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %244) #10
  %11394 = call i32 @s2n_connection_ptr_free(ptr noundef %240)
  %11395 = getelementptr inbounds %struct.s2n_result, ptr %256, i32 0, i32 0
  store i32 %11394, ptr %11395, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #10
  br label %11396

11396:                                            ; preds = %11392
  %11397 = load i64, ptr %239, align 8, !tbaa !47
  %11398 = add i64 %11397, 1
  store i64 %11398, ptr %239, align 8, !tbaa !47
  br label %10726, !llvm.loop !63

11399:                                            ; preds = %10729
  br label %11400

11400:                                            ; preds = %11399
  %11401 = load i8, ptr %238, align 1, !tbaa !15
  %11402 = add i8 %11401, 1
  store i8 %11402, ptr %238, align 1, !tbaa !15
  br label %10720, !llvm.loop !64

11403:                                            ; preds = %10724
  br label %11404

11404:                                            ; preds = %11403
  %11405 = load i32, ptr @test_count, align 4, !tbaa !5
  %11406 = add nsw i32 %11405, 1
  store i32 %11406, ptr @test_count, align 4, !tbaa !5
  %11407 = load ptr, ptr %11, align 8, !tbaa !9
  %11408 = call i32 @s2n_config_free(ptr noundef %11407)
  %11409 = icmp eq i32 %11408, -1
  br i1 %11409, label %11410, label %11463

11410:                                            ; preds = %11404
  br label %11411

11411:                                            ; preds = %11410
  br label %11412

11412:                                            ; preds = %11411
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #10
  %11413 = call ptr @__errno_location() #11
  %11414 = load i32, ptr %11413, align 4, !tbaa !5
  store i32 %11414, ptr %257, align 4, !tbaa !5
  %11415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11416 = call i32 @s2n_print_stacktrace(ptr noundef %11415)
  %11417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11418 = trunc i8 %11417 to i1
  br i1 %11418, label %11419, label %11441

11419:                                            ; preds = %11412
  %11420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11421 = call i32 @fileno(ptr noundef %11420) #10
  %11422 = call i32 @isatty(i32 noundef %11421) #10
  %11423 = icmp ne i32 %11422, 0
  br i1 %11423, label %11424, label %11441

11424:                                            ; preds = %11419
  %11425 = load i32, ptr %257, align 4, !tbaa !5
  %11426 = call ptr @__errno_location() #11
  store i32 %11425, ptr %11426, align 4, !tbaa !5
  %11427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11428 = load i32, ptr @test_count, align 4, !tbaa !5
  %11429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11430 = load i32, ptr %11429, align 4, !tbaa !5
  %11431 = call ptr @s2n_strerror(i32 noundef %11430, ptr noundef @.str.4)
  %11432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11433 = load i32, ptr %11432, align 4, !tbaa !5
  %11434 = call ptr @s2n_strerror_debug(i32 noundef %11433, ptr noundef @.str.4)
  %11435 = call ptr @__errno_location() #11
  %11436 = load i32, ptr %11435, align 4, !tbaa !5
  %11437 = call ptr @strerror(i32 noundef %11436) #10
  %11438 = call ptr @__errno_location() #11
  %11439 = load i32, ptr %11438, align 4, !tbaa !5
  %11440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11427, ptr noundef @.str.2, i32 noundef %11428, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 485, ptr noundef %11431, ptr noundef %11434, ptr noundef %11437, i32 noundef %11439) #10
  br label %11458

11441:                                            ; preds = %11419, %11412
  %11442 = load i32, ptr %257, align 4, !tbaa !5
  %11443 = call ptr @__errno_location() #11
  store i32 %11442, ptr %11443, align 4, !tbaa !5
  %11444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11445 = load i32, ptr @test_count, align 4, !tbaa !5
  %11446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11447 = load i32, ptr %11446, align 4, !tbaa !5
  %11448 = call ptr @s2n_strerror(i32 noundef %11447, ptr noundef @.str.4)
  %11449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11450 = load i32, ptr %11449, align 4, !tbaa !5
  %11451 = call ptr @s2n_strerror_debug(i32 noundef %11450, ptr noundef @.str.4)
  %11452 = call ptr @__errno_location() #11
  %11453 = load i32, ptr %11452, align 4, !tbaa !5
  %11454 = call ptr @strerror(i32 noundef %11453) #10
  %11455 = call ptr @__errno_location() #11
  %11456 = load i32, ptr %11455, align 4, !tbaa !5
  %11457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11444, ptr noundef @.str.5, i32 noundef %11445, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 485, ptr noundef %11448, ptr noundef %11451, ptr noundef %11454, i32 noundef %11456) #10
  br label %11458

11458:                                            ; preds = %11441, %11424
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #10
  br label %11459

11459:                                            ; preds = %11458
  br label %11460

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

11461:                                            ; No predecessors!
  br label %11462

11462:                                            ; preds = %11461
  br label %11463

11463:                                            ; preds = %11462, %11404
  br label %11464

11464:                                            ; preds = %11463
  br label %11465

11465:                                            ; preds = %11464
  br label %11466

11466:                                            ; preds = %11465
  br label %11467

11467:                                            ; preds = %11466
  %11468 = call i32 @s2n_cleanup()
  %11469 = icmp eq i32 %11468, -1
  br i1 %11469, label %11470, label %11523

11470:                                            ; preds = %11467
  br label %11471

11471:                                            ; preds = %11470
  br label %11472

11472:                                            ; preds = %11471
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #10
  %11473 = call ptr @__errno_location() #11
  %11474 = load i32, ptr %11473, align 4, !tbaa !5
  store i32 %11474, ptr %258, align 4, !tbaa !5
  %11475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11476 = call i32 @s2n_print_stacktrace(ptr noundef %11475)
  %11477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11478 = trunc i8 %11477 to i1
  br i1 %11478, label %11479, label %11501

11479:                                            ; preds = %11472
  %11480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11481 = call i32 @fileno(ptr noundef %11480) #10
  %11482 = call i32 @isatty(i32 noundef %11481) #10
  %11483 = icmp ne i32 %11482, 0
  br i1 %11483, label %11484, label %11501

11484:                                            ; preds = %11479
  %11485 = load i32, ptr %258, 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.2, i32 noundef %11488, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11491, ptr noundef %11494, ptr noundef %11497, i32 noundef %11499) #10
  br label %11518

11501:                                            ; preds = %11479, %11472
  %11502 = load i32, ptr %258, align 4, !tbaa !5
  %11503 = call ptr @__errno_location() #11
  store i32 %11502, ptr %11503, align 4, !tbaa !5
  %11504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11505 = load i32, ptr @test_count, align 4, !tbaa !5
  %11506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11507 = load i32, ptr %11506, align 4, !tbaa !5
  %11508 = call ptr @s2n_strerror(i32 noundef %11507, ptr noundef @.str.4)
  %11509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11510 = load i32, ptr %11509, align 4, !tbaa !5
  %11511 = call ptr @s2n_strerror_debug(i32 noundef %11510, ptr noundef @.str.4)
  %11512 = call ptr @__errno_location() #11
  %11513 = load i32, ptr %11512, align 4, !tbaa !5
  %11514 = call ptr @strerror(i32 noundef %11513) #10
  %11515 = call ptr @__errno_location() #11
  %11516 = load i32, ptr %11515, align 4, !tbaa !5
  %11517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11504, ptr noundef @.str.5, i32 noundef %11505, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11508, ptr noundef %11511, ptr noundef %11514, i32 noundef %11516) #10
  br label %11518

11518:                                            ; preds = %11501, %11484
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #10
  br label %11519

11519:                                            ; preds = %11518
  br label %11520

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

11521:                                            ; No predecessors!
  br label %11522

11522:                                            ; preds = %11521
  br label %11523

11523:                                            ; preds = %11522, %11467
  br label %11524

11524:                                            ; preds = %11523
  br label %11525

11525:                                            ; preds = %11524
  br label %11526

11526:                                            ; preds = %11525
  br label %11527

11527:                                            ; preds = %11526
  %11528 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %11529 = icmp eq i32 %11528, -1
  br i1 %11529, label %11530, label %11583

11530:                                            ; preds = %11527
  br label %11531

11531:                                            ; preds = %11530
  br label %11532

11532:                                            ; preds = %11531
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #10
  %11533 = call ptr @__errno_location() #11
  %11534 = load i32, ptr %11533, align 4, !tbaa !5
  store i32 %11534, ptr %259, align 4, !tbaa !5
  %11535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11536 = call i32 @s2n_print_stacktrace(ptr noundef %11535)
  %11537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11538 = trunc i8 %11537 to i1
  br i1 %11538, label %11539, label %11561

11539:                                            ; preds = %11532
  %11540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11541 = call i32 @fileno(ptr noundef %11540) #10
  %11542 = call i32 @isatty(i32 noundef %11541) #10
  %11543 = icmp ne i32 %11542, 0
  br i1 %11543, label %11544, label %11561

11544:                                            ; preds = %11539
  %11545 = load i32, ptr %259, align 4, !tbaa !5
  %11546 = call ptr @__errno_location() #11
  store i32 %11545, ptr %11546, align 4, !tbaa !5
  %11547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11548 = load i32, ptr @test_count, align 4, !tbaa !5
  %11549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11550 = load i32, ptr %11549, align 4, !tbaa !5
  %11551 = call ptr @s2n_strerror(i32 noundef %11550, ptr noundef @.str.4)
  %11552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11553 = load i32, ptr %11552, align 4, !tbaa !5
  %11554 = call ptr @s2n_strerror_debug(i32 noundef %11553, ptr noundef @.str.4)
  %11555 = call ptr @__errno_location() #11
  %11556 = load i32, ptr %11555, align 4, !tbaa !5
  %11557 = call ptr @strerror(i32 noundef %11556) #10
  %11558 = call ptr @__errno_location() #11
  %11559 = load i32, ptr %11558, align 4, !tbaa !5
  %11560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11547, ptr noundef @.str.2, i32 noundef %11548, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11551, ptr noundef %11554, ptr noundef %11557, i32 noundef %11559) #10
  br label %11578

11561:                                            ; preds = %11539, %11532
  %11562 = load i32, ptr %259, align 4, !tbaa !5
  %11563 = call ptr @__errno_location() #11
  store i32 %11562, ptr %11563, align 4, !tbaa !5
  %11564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11565 = load i32, ptr @test_count, align 4, !tbaa !5
  %11566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11567 = load i32, ptr %11566, align 4, !tbaa !5
  %11568 = call ptr @s2n_strerror(i32 noundef %11567, ptr noundef @.str.4)
  %11569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11570 = load i32, ptr %11569, align 4, !tbaa !5
  %11571 = call ptr @s2n_strerror_debug(i32 noundef %11570, ptr noundef @.str.4)
  %11572 = call ptr @__errno_location() #11
  %11573 = load i32, ptr %11572, align 4, !tbaa !5
  %11574 = call ptr @strerror(i32 noundef %11573) #10
  %11575 = call ptr @__errno_location() #11
  %11576 = load i32, ptr %11575, align 4, !tbaa !5
  %11577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11564, ptr noundef @.str.5, i32 noundef %11565, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11568, ptr noundef %11571, ptr noundef %11574, i32 noundef %11576) #10
  br label %11578

11578:                                            ; preds = %11561, %11544
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #10
  br label %11579

11579:                                            ; preds = %11578
  br label %11580

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

11581:                                            ; No predecessors!
  br label %11582

11582:                                            ; preds = %11581
  br label %11583

11583:                                            ; preds = %11582, %11527
  br label %11584

11584:                                            ; preds = %11583
  br label %11585

11585:                                            ; preds = %11584
  %11586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11587 = trunc i8 %11586 to i1
  br i1 %11587, label %11588, label %11604

11588:                                            ; preds = %11585
  %11589 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11590 = call i32 @fileno(ptr noundef %11589) #10
  %11591 = call i32 @isatty(i32 noundef %11590) #10
  %11592 = icmp ne i32 %11591, 0
  br i1 %11592, label %11593, label %11604

11593:                                            ; preds = %11588
  %11594 = load i32, ptr @test_count, align 4, !tbaa !5
  %11595 = icmp ne i32 %11594, 0
  br i1 %11595, label %11596, label %11600

11596:                                            ; preds = %11593
  %11597 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11598 = load i32, ptr @test_count, align 4, !tbaa !5
  %11599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11597, ptr noundef @.str.98, i32 noundef %11598) #10
  br label %11603

11600:                                            ; preds = %11593
  %11601 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11601, ptr noundef @.str.99) #10
  br label %11603

11603:                                            ; preds = %11600, %11596
  br label %11615

11604:                                            ; preds = %11588, %11585
  %11605 = load i32, ptr @test_count, align 4, !tbaa !5
  %11606 = icmp ne i32 %11605, 0
  br i1 %11606, label %11607, label %11611

11607:                                            ; preds = %11604
  %11608 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11609 = load i32, ptr @test_count, align 4, !tbaa !5
  %11610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11608, ptr noundef @.str.100, i32 noundef %11609) #10
  br label %11614

11611:                                            ; preds = %11604
  %11612 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11612, ptr noundef @.str.101) #10
  br label %11614

11614:                                            ; preds = %11611, %11607
  br label %11615

11615:                                            ; preds = %11614, %11603
  store i32 0, ptr %3, align 4
  store i32 1, ptr %101, align 4
  br label %11620

11616:                                            ; No predecessors!
  br label %11617

11617:                                            ; preds = %11616
  br label %11618

11618:                                            ; preds = %11617
  br label %11619

11619:                                            ; preds = %11618
  store i32 0, ptr %101, align 4
  br label %11620

11620:                                            ; preds = %11619, %11615, %5908, %5304, %4700
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #10
  %11621 = load i32, ptr %101, align 4
  switch i32 %11621, label %11624 [
    i32 0, label %11622
    i32 1, label %11622
  ]

11622:                                            ; preds = %11620, %11620
  %11623 = load i32, ptr %3, align 4
  ret i32 %11623

11624:                                            ; preds = %11620
  unreachable
}

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

declare i32 @fflush(ptr noundef) #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #1

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

declare i32 @s2n_print_stacktrace(ptr noundef) #1

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

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

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

; 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) #1

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

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

declare i32 @s2n_enable_atexit() #1

declare i32 @s2n_init() #1

declare i32 @s2n_enable_tls13_in_test(...) #1

declare ptr @s2n_config_new() #1

declare zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef) #1

declare ptr @s2n_connection_new(i32 noundef) #1

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

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #1

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) #1

declare i32 @s2n_connection_free(ptr noundef) #1

declare i32 @s2n_stuffer_free(ptr noundef) #1

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #1

declare i32 @s2n_connection_enable_quic(ptr noundef) #1

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) #1

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #1

declare i32 @s2n_extensions_client_supported_versions_size(ptr noundef) #1

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) #1

declare i32 @s2n_disable_tls13_in_test(...) #1

; 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

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #1

declare void @s2n_debug_info_reset() #1

declare i32 @s2n_client_hello_send(ptr noundef) #1

declare i32 @s2n_stuffer_read_bytes(ptr noundef, ptr noundef, i32 noundef) #1

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #1

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) #1

declare i32 @s2n_config_ptr_free(ptr noundef) #1

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) #1

declare i32 @s2n_connection_ptr_free(ptr noundef) #1

declare i32 @s2n_io_pair_close(ptr noundef) #1

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #1

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) #1

declare i32 @s2n_stuffer_rewrite(ptr noundef) #1

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) #1

declare i32 @s2n_stuffer_write(ptr noundef, ptr noundef) #1

declare i32 @s2n_client_hello_recv(ptr noundef) #1

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) #1

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

declare i32 @s2n_handshake_type_set_tls13_flag(ptr noundef, i32 noundef) #1

declare i32 @s2n_config_free(ptr noundef) #1

declare i32 @s2n_cleanup() #1

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !7, i64 0}
!17 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!18 = !{!19, !10, i64 16}
!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, !35, i64 1776, !35, i64 1816, !35, i64 1856, !35, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !35, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !36, i64 2004, !36, i64 2008, !37, i64 2016, !34, i64 2208, !6, i64 2212, !34, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !36, i64 2264, !36, 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, !39, i64 2896, !41, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !28, i64 3784, !6, i64 3808, !43, i64 3816, !7, i64 3848, !35, i64 3992, !28, i64 4032, !28, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !34, i64 4084, !34, i64 4086, !6, i64 4088, !6, i64 4092, !28, i64 4096, !6, i64 4120, !44, i64 4128, !36, 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, !34, i64 40, !34, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !28, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"short", !7, i64 0}
!35 = !{!"s2n_stuffer", !28, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!36 = !{!"", !6, i64 0}
!37 = !{!"s2n_handshake", !35, 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, !38, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!38 = !{!"s2n_offered_early_data", !10, i64 0}
!39 = !{!"s2n_client_hello", !28, i64 0, !40, 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}
!40 = !{!"", !7, i64 0, !28, i64 672, !34, i64 696}
!41 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !34, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !42, i64 48, !12, i64 52}
!42 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!43 = !{!"s2n_ticket_fields", !28, i64 0, !6, i64 24}
!44 = !{!"s2n_post_handshake", !35, i64 0, !7, i64 40}
!45 = !{!46, !10, i64 8}
!46 = !{!"", !34, i64 0, !6, i64 2, !34, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!47 = !{!21, !21, i64 0}
!48 = !{!34, !34, i64 0}
!49 = !{!35, !6, i64 28}
!50 = !{!35, !6, i64 24}
!51 = !{!46, !10, i64 16}
!52 = !{!19, !7, i64 218}
!53 = !{!19, !7, i64 219}
!54 = !{!19, !7, i64 220}
!55 = distinct !{!55, !56}
!56 = !{!"llvm.loop.mustprogress"}
!57 = distinct !{!57, !56}
!58 = distinct !{!58, !56}
!59 = !{!19, !7, i64 2001}
!60 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !15, i64 24, i64 4, !5, i64 28, i64 4, !5, i64 32, i64 4, !5, i64 36, i64 1, !15}
!61 = !{!19, !7, i64 217}
!62 = !{!19, !6, i64 2176}
!63 = distinct !{!63, !56}
!64 = distinct !{!64, !56}


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

%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }

@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 [103 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 [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@security_policy_20190801 = external constant %struct.s2n_security_policy, align 8
@.str.10 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_client_supported_versions_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.14 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [59 x i8], align 1
@__const.main.invalid_version_list = external hidden unnamed_addr constant [6 x i16], align 2
@.str.46 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [70 x i8], align 1
@__const.main.grease_version_list = external hidden unnamed_addr constant [17 x i16], align 16
@.str.50 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [60 x i8], align 1
@__const.main.invalid_version_list.52 = external hidden unnamed_addr constant [8 x i16], align 16
@__const.main.supported_version_list = external hidden unnamed_addr constant [1 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @write_test_supported_versions_list(ptr noundef, ptr noundef, i8 noundef zeroext) local_unnamed_addr #0

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #1

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

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

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca %struct.s2n_stuffer, align 8
  %4 = alloca i8, align 1
  %5 = alloca %struct.s2n_stuffer, align 8
  %6 = alloca i8, align 1
  %7 = alloca i16, align 2
  %8 = alloca %struct.s2n_stuffer, align 8
  %9 = alloca [4 x i8], align 4
  %10 = alloca %struct.s2n_stuffer, align 8
  %11 = alloca [4 x i8], align 4
  %12 = alloca %struct.s2n_stuffer, align 8
  %13 = alloca %struct.s2n_stuffer, align 8
  %14 = alloca %struct.s2n_stuffer, align 8
  %15 = alloca %struct.s2n_stuffer, align 8
  %16 = alloca [1 x i8], align 1
  %17 = alloca %struct.s2n_stuffer, align 8
  %18 = alloca %struct.s2n_stuffer, align 8
  %19 = alloca %struct.s2n_stuffer, align 8
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca [2 x i8], align 1
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca %struct.s2n_test_io_pair, align 8
  %29 = alloca [2 x i8], align 2
  %30 = alloca ptr, align 8
  %31 = alloca [1 x i8], align 1
  %32 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %33 = load ptr, ptr @stdout, align 8, !tbaa !9
  %34 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %35 = load ptr, ptr @stdout, align 8, !tbaa !9
  %36 = tail call i32 @fflush(ptr noundef %35)
  %37 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

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

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

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

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

63:                                               ; preds = %2
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr @test_count, align 4, !tbaa !5
  %66 = tail call i32 @s2n_enable_atexit() #11
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

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

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

79:                                               ; preds = %75, %68
  br label %80

80:                                               ; preds = %75, %79
  %.str.5.sink773 = phi ptr [ @.str.5, %79 ], [ @.str.2, %75 ]
  store i32 %70, ptr %69, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror(i32 noundef %84, ptr noundef nonnull @.str.4) #11
  %86 = load i32, ptr %83, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror_debug(i32 noundef %86, ptr noundef nonnull @.str.4) #11
  %88 = load i32, ptr %69, align 4, !tbaa !5
  %89 = tail call ptr @strerror(i32 noundef %88) #11
  %90 = load i32, ptr %69, align 4, !tbaa !5
  %91 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef nonnull %.str.5.sink773, i32 noundef %82, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef %90) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

92:                                               ; preds = %63
  %93 = tail call i32 @s2n_init() #11
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

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

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

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

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

119:                                              ; preds = %92
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call i32 (...) @s2n_enable_tls13_in_test() #11
  %123 = icmp eq i32 %122, -1
  br i1 %123, label %124, label %148

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

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

135:                                              ; preds = %131, %124
  br label %136

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

148:                                              ; preds = %119
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = tail call ptr @s2n_config_new() #11
  %152 = icmp eq ptr %151, null
  br i1 %152, label %153, label %177

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

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

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

165:                                              ; preds = %160, %164
  %.str.5.sink806 = phi ptr [ @.str.5, %164 ], [ @.str.2, %160 ]
  store i32 %155, ptr %154, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = tail call ptr @s2n_strerror(i32 noundef %169, ptr noundef nonnull @.str.4) #11
  %171 = load i32, ptr %168, align 4, !tbaa !5
  %172 = tail call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef nonnull @.str.4) #11
  %173 = load i32, ptr %154, align 4, !tbaa !5
  %174 = tail call ptr @strerror(i32 noundef %173) #11
  %175 = load i32, ptr %154, align 4, !tbaa !5
  %176 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull %.str.5.sink806, i32 noundef %167, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %170, ptr noundef %172, ptr noundef %174, i32 noundef %175) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

177:                                              ; preds = %148
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = tail call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef nonnull @security_policy_20190801) #11
  br i1 %180, label %205, label %181

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

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

192:                                              ; preds = %188, %181
  br label %193

193:                                              ; preds = %188, %192
  %.str.5.sink817 = phi ptr [ @.str.5, %192 ], [ @.str.2, %188 ]
  store i32 %183, ptr %182, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror(i32 noundef %197, ptr noundef nonnull @.str.4) #11
  %199 = load i32, ptr %196, align 4, !tbaa !5
  %200 = tail call ptr @s2n_strerror_debug(i32 noundef %199, ptr noundef nonnull @.str.4) #11
  %201 = load i32, ptr %182, align 4, !tbaa !5
  %202 = tail call ptr @strerror(i32 noundef %201) #11
  %203 = load i32, ptr %182, align 4, !tbaa !5
  %204 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef nonnull %.str.5.sink817, i32 noundef %195, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %198, ptr noundef %200, ptr noundef %202, i32 noundef %203) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

205:                                              ; preds = %177
  %206 = load i32, ptr @test_count, align 4, !tbaa !5
  %207 = add nsw i32 %206, 1
  store i32 %207, ptr @test_count, align 4, !tbaa !5
  %208 = load i8, ptr @security_policy_20190801, align 8, !tbaa !15
  %209 = icmp eq i8 %208, 31
  br i1 %209, label %234, label %210

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

217:                                              ; preds = %210
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = tail call i32 @fileno(ptr noundef %218) #11
  %220 = tail call i32 @isatty(i32 noundef %219) #11
  %.not542 = icmp eq i32 %220, 0
  br i1 %.not542, label %221, label %222

221:                                              ; preds = %217, %210
  br label %222

222:                                              ; preds = %217, %221
  %.str.5.sink828 = phi ptr [ @.str.5, %221 ], [ @.str.2, %217 ]
  store i32 %212, ptr %211, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = tail call ptr @s2n_strerror(i32 noundef %226, ptr noundef nonnull @.str.4) #11
  %228 = load i32, ptr %225, align 4, !tbaa !5
  %229 = tail call ptr @s2n_strerror_debug(i32 noundef %228, ptr noundef nonnull @.str.4) #11
  %230 = load i32, ptr %211, align 4, !tbaa !5
  %231 = tail call ptr @strerror(i32 noundef %230) #11
  %232 = load i32, ptr %211, align 4, !tbaa !5
  %233 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef nonnull %.str.5.sink828, i32 noundef %224, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %227, ptr noundef %229, ptr noundef %231, i32 noundef %232) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

234:                                              ; preds = %205
  %235 = tail call ptr @s2n_connection_new(i32 noundef 1) #11
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = icmp eq ptr %235, null
  br i1 %238, label %239, label %263

239:                                              ; preds = %234
  %240 = tail call ptr @__errno_location() #12
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = tail call i32 @s2n_print_stacktrace(ptr noundef %242) #11
  %244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %245 = trunc nuw i8 %244 to i1
  br i1 %245, label %246, label %250

246:                                              ; preds = %239
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = tail call i32 @fileno(ptr noundef %247) #11
  %249 = tail call i32 @isatty(i32 noundef %248) #11
  %.not714 = icmp eq i32 %249, 0
  br i1 %.not714, label %250, label %251

250:                                              ; preds = %246, %239
  br label %251

251:                                              ; preds = %246, %250
  %.str.5.sink839 = phi ptr [ @.str.5, %250 ], [ @.str.2, %246 ]
  store i32 %241, ptr %240, align 4, !tbaa !5
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = load i32, ptr @test_count, align 4, !tbaa !5
  %254 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = tail call ptr @s2n_strerror(i32 noundef %255, ptr noundef nonnull @.str.4) #11
  %257 = load i32, ptr %254, align 4, !tbaa !5
  %258 = tail call ptr @s2n_strerror_debug(i32 noundef %257, ptr noundef nonnull @.str.4) #11
  %259 = load i32, ptr %240, align 4, !tbaa !5
  %260 = tail call ptr @strerror(i32 noundef %259) #11
  %261 = load i32, ptr %240, align 4, !tbaa !5
  %262 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %252, ptr noundef nonnull %.str.5.sink839, i32 noundef %253, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %256, ptr noundef %258, ptr noundef %260, i32 noundef %261) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

263:                                              ; preds = %234
  %264 = getelementptr inbounds i8, ptr %235, i64 16
  store ptr @security_policy_20190801, ptr %264, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, i8 0, i64 40, i1 false)
  %265 = add nsw i32 %236, 2
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %3, i32 noundef 0) #11
  %267 = icmp eq i32 %266, -1
  br i1 %267, label %268, label %292

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

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

279:                                              ; preds = %275, %268
  br label %280

280:                                              ; preds = %275, %279
  %.str.5.sink850 = phi ptr [ @.str.5, %279 ], [ @.str.2, %275 ]
  store i32 %270, ptr %269, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror(i32 noundef %284, ptr noundef nonnull @.str.4) #11
  %286 = load i32, ptr %283, align 4, !tbaa !5
  %287 = call ptr @s2n_strerror_debug(i32 noundef %286, ptr noundef nonnull @.str.4) #11
  %288 = load i32, ptr %269, align 4, !tbaa !5
  %289 = call ptr @strerror(i32 noundef %288) #11
  %290 = load i32, ptr %269, align 4, !tbaa !5
  %291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef nonnull %.str.5.sink850, i32 noundef %282, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %285, ptr noundef %287, ptr noundef %289, i32 noundef %290) #13
  call void @exit(i32 noundef 1) #14
  unreachable

292:                                              ; preds = %263
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = add nsw i32 %293, 1
  store i32 %294, ptr @test_count, align 4, !tbaa !5
  %295 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_supported_versions_extension, i64 8), align 8, !tbaa !44
  %296 = call i32 %295(ptr noundef nonnull %235, ptr noundef nonnull %3) #11
  %297 = icmp eq i32 %296, -1
  br i1 %297, label %298, label %322

298:                                              ; preds = %292
  %299 = tail call ptr @__errno_location() #12
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = call i32 @s2n_print_stacktrace(ptr noundef %301) #11
  %303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %304 = trunc nuw i8 %303 to i1
  br i1 %304, label %305, label %309

305:                                              ; preds = %298
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = call i32 @fileno(ptr noundef %306) #11
  %308 = call i32 @isatty(i32 noundef %307) #11
  %.not712 = icmp eq i32 %308, 0
  br i1 %.not712, label %309, label %310

309:                                              ; preds = %305, %298
  br label %310

310:                                              ; preds = %305, %309
  %.str.5.sink861 = phi ptr [ @.str.5, %309 ], [ @.str.2, %305 ]
  store i32 %300, ptr %299, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror(i32 noundef %314, ptr noundef nonnull @.str.4) #11
  %316 = load i32, ptr %313, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror_debug(i32 noundef %316, ptr noundef nonnull @.str.4) #11
  %318 = load i32, ptr %299, align 4, !tbaa !5
  %319 = call ptr @strerror(i32 noundef %318) #11
  %320 = load i32, ptr %299, align 4, !tbaa !5
  %321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %311, ptr noundef nonnull %.str.5.sink861, i32 noundef %312, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %315, ptr noundef %317, ptr noundef %319, i32 noundef %320) #13
  call void @exit(i32 noundef 1) #14
  unreachable

322:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #11
  store i8 0, ptr %4, align 1, !tbaa !46
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr @test_count, align 4, !tbaa !5
  %325 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %3, ptr noundef nonnull %4) #11
  %326 = icmp eq i32 %325, -1
  br i1 %326, label %327, label %351

327:                                              ; preds = %322
  %328 = tail call ptr @__errno_location() #12
  %329 = load i32, ptr %328, align 4, !tbaa !5
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = call i32 @s2n_print_stacktrace(ptr noundef %330) #11
  %332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %333 = trunc nuw i8 %332 to i1
  br i1 %333, label %334, label %338

334:                                              ; preds = %327
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @fileno(ptr noundef %335) #11
  %337 = call i32 @isatty(i32 noundef %336) #11
  %.not711 = icmp eq i32 %337, 0
  br i1 %.not711, label %338, label %339

338:                                              ; preds = %334, %327
  br label %339

339:                                              ; preds = %334, %338
  %.str.5.sink872 = phi ptr [ @.str.5, %338 ], [ @.str.2, %334 ]
  store i32 %329, ptr %328, align 4, !tbaa !5
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = call ptr @s2n_strerror(i32 noundef %343, ptr noundef nonnull @.str.4) #11
  %345 = load i32, ptr %342, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror_debug(i32 noundef %345, ptr noundef nonnull @.str.4) #11
  %347 = load i32, ptr %328, align 4, !tbaa !5
  %348 = call ptr @strerror(i32 noundef %347) #11
  %349 = load i32, ptr %328, align 4, !tbaa !5
  %350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %340, ptr noundef nonnull %.str.5.sink872, i32 noundef %341, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %344, ptr noundef %346, ptr noundef %348, i32 noundef %349) #13
  call void @exit(i32 noundef 1) #14
  unreachable

351:                                              ; preds = %322
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr @test_count, align 4, !tbaa !5
  %354 = load i8, ptr %4, align 1, !tbaa !46
  %355 = icmp eq i8 %354, 8
  br i1 %355, label %380, label %356

356:                                              ; preds = %351
  %357 = tail call ptr @__errno_location() #12
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = call i32 @s2n_print_stacktrace(ptr noundef %359) #11
  %361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %362 = trunc nuw i8 %361 to i1
  br i1 %362, label %363, label %367

363:                                              ; preds = %356
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = call i32 @fileno(ptr noundef %364) #11
  %366 = call i32 @isatty(i32 noundef %365) #11
  %.not543 = icmp eq i32 %366, 0
  br i1 %.not543, label %367, label %368

367:                                              ; preds = %363, %356
  br label %368

368:                                              ; preds = %363, %367
  %.str.5.sink883 = phi ptr [ @.str.5, %367 ], [ @.str.2, %363 ]
  store i32 %358, ptr %357, align 4, !tbaa !5
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = call ptr @s2n_strerror(i32 noundef %372, ptr noundef nonnull @.str.4) #11
  %374 = load i32, ptr %371, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror_debug(i32 noundef %374, ptr noundef nonnull @.str.4) #11
  %376 = load i32, ptr %357, align 4, !tbaa !5
  %377 = call ptr @strerror(i32 noundef %376) #11
  %378 = load i32, ptr %357, align 4, !tbaa !5
  %379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %369, ptr noundef nonnull %.str.5.sink883, i32 noundef %370, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %373, ptr noundef %375, ptr noundef %377, i32 noundef %378) #13
  call void @exit(i32 noundef 1) #14
  unreachable

380:                                              ; preds = %351
  %381 = add nsw i32 %352, 2
  store i32 %381, ptr @test_count, align 4, !tbaa !5
  %382 = call i32 @s2n_connection_free(ptr noundef nonnull %235) #11
  %383 = icmp eq i32 %382, -1
  br i1 %383, label %384, label %408

384:                                              ; preds = %380
  %385 = tail call ptr @__errno_location() #12
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = call i32 @s2n_print_stacktrace(ptr noundef %387) #11
  %389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %390 = trunc nuw i8 %389 to i1
  br i1 %390, label %391, label %395

391:                                              ; preds = %384
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = call i32 @fileno(ptr noundef %392) #11
  %394 = call i32 @isatty(i32 noundef %393) #11
  %.not710 = icmp eq i32 %394, 0
  br i1 %.not710, label %395, label %396

395:                                              ; preds = %391, %384
  br label %396

396:                                              ; preds = %391, %395
  %.str.5.sink894 = phi ptr [ @.str.5, %395 ], [ @.str.2, %391 ]
  store i32 %386, ptr %385, align 4, !tbaa !5
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @s2n_strerror(i32 noundef %400, ptr noundef nonnull @.str.4) #11
  %402 = load i32, ptr %399, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef nonnull @.str.4) #11
  %404 = load i32, ptr %385, align 4, !tbaa !5
  %405 = call ptr @strerror(i32 noundef %404) #11
  %406 = load i32, ptr %385, align 4, !tbaa !5
  %407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %397, ptr noundef nonnull %.str.5.sink894, i32 noundef %398, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %401, ptr noundef %403, ptr noundef %405, i32 noundef %406) #13
  call void @exit(i32 noundef 1) #14
  unreachable

408:                                              ; preds = %380
  %409 = load i32, ptr @test_count, align 4, !tbaa !5
  %410 = add nsw i32 %409, 1
  store i32 %410, ptr @test_count, align 4, !tbaa !5
  %411 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #11
  %412 = icmp eq i32 %411, -1
  br i1 %412, label %413, label %437

413:                                              ; preds = %408
  %414 = tail call ptr @__errno_location() #12
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = call i32 @s2n_print_stacktrace(ptr noundef %416) #11
  %418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %419 = trunc nuw i8 %418 to i1
  br i1 %419, label %420, label %424

420:                                              ; preds = %413
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = call i32 @fileno(ptr noundef %421) #11
  %423 = call i32 @isatty(i32 noundef %422) #11
  %.not709 = icmp eq i32 %423, 0
  br i1 %.not709, label %424, label %425

424:                                              ; preds = %420, %413
  br label %425

425:                                              ; preds = %420, %424
  %.str.5.sink905 = phi ptr [ @.str.5, %424 ], [ @.str.2, %420 ]
  store i32 %415, ptr %414, align 4, !tbaa !5
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @s2n_strerror(i32 noundef %429, ptr noundef nonnull @.str.4) #11
  %431 = load i32, ptr %428, align 4, !tbaa !5
  %432 = call ptr @s2n_strerror_debug(i32 noundef %431, ptr noundef nonnull @.str.4) #11
  %433 = load i32, ptr %414, align 4, !tbaa !5
  %434 = call ptr @strerror(i32 noundef %433) #11
  %435 = load i32, ptr %414, align 4, !tbaa !5
  %436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %426, ptr noundef nonnull %.str.5.sink905, i32 noundef %427, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %430, ptr noundef %432, ptr noundef %434, i32 noundef %435) #13
  call void @exit(i32 noundef 1) #14
  unreachable

437:                                              ; preds = %408
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #11
  %438 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %438, label %439, label %730

439:                                              ; preds = %437
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = add nsw i32 %440, 1
  store i32 %441, ptr @test_count, align 4, !tbaa !5
  %442 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = icmp eq ptr %442, null
  br i1 %445, label %446, label %470

446:                                              ; preds = %439
  %447 = tail call ptr @__errno_location() #12
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = call i32 @s2n_print_stacktrace(ptr noundef %449) #11
  %451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %452 = trunc nuw i8 %451 to i1
  br i1 %452, label %453, label %457

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

457:                                              ; preds = %453, %446
  br label %458

458:                                              ; preds = %453, %457
  %.str.5.sink916 = phi ptr [ @.str.5, %457 ], [ @.str.2, %453 ]
  store i32 %448, ptr %447, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror(i32 noundef %462, ptr noundef nonnull @.str.4) #11
  %464 = load i32, ptr %461, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror_debug(i32 noundef %464, ptr noundef nonnull @.str.4) #11
  %466 = load i32, ptr %447, align 4, !tbaa !5
  %467 = call ptr @strerror(i32 noundef %466) #11
  %468 = load i32, ptr %447, align 4, !tbaa !5
  %469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %459, ptr noundef nonnull %.str.5.sink916, i32 noundef %460, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %463, ptr noundef %465, ptr noundef %467, i32 noundef %468) #13
  call void @exit(i32 noundef 1) #14
  unreachable

470:                                              ; preds = %439
  %471 = add nsw i32 %443, 2
  store i32 %471, ptr @test_count, align 4, !tbaa !5
  %472 = call i32 @s2n_connection_enable_quic(ptr noundef nonnull %442) #11
  %473 = icmp eq i32 %472, -1
  br i1 %473, label %474, label %498

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

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

485:                                              ; preds = %481, %474
  br label %486

486:                                              ; preds = %481, %485
  %.str.5.sink927 = phi ptr [ @.str.5, %485 ], [ @.str.2, %481 ]
  store i32 %476, ptr %475, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = call ptr @s2n_strerror(i32 noundef %490, ptr noundef nonnull @.str.4) #11
  %492 = load i32, ptr %489, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror_debug(i32 noundef %492, ptr noundef nonnull @.str.4) #11
  %494 = load i32, ptr %475, align 4, !tbaa !5
  %495 = call ptr @strerror(i32 noundef %494) #11
  %496 = load i32, ptr %475, align 4, !tbaa !5
  %497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %487, ptr noundef nonnull %.str.5.sink927, i32 noundef %488, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %491, ptr noundef %493, ptr noundef %495, i32 noundef %496) #13
  call void @exit(i32 noundef 1) #14
  unreachable

498:                                              ; preds = %470
  %499 = getelementptr inbounds i8, ptr %442, i64 16
  store ptr @security_policy_20190801, ptr %499, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %5, i8 0, i64 40, i1 false)
  %500 = load i32, ptr @test_count, align 4, !tbaa !5
  %501 = add nsw i32 %500, 1
  store i32 %501, ptr @test_count, align 4, !tbaa !5
  %502 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #11
  %503 = icmp eq i32 %502, -1
  br i1 %503, label %504, label %528

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

511:                                              ; preds = %504
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = call i32 @fileno(ptr noundef %512) #11
  %514 = call i32 @isatty(i32 noundef %513) #11
  %.not706 = icmp eq i32 %514, 0
  br i1 %.not706, label %515, label %516

515:                                              ; preds = %511, %504
  br label %516

516:                                              ; preds = %511, %515
  %.str.5.sink938 = phi ptr [ @.str.5, %515 ], [ @.str.2, %511 ]
  store i32 %506, ptr %505, align 4, !tbaa !5
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = load i32, ptr @test_count, align 4, !tbaa !5
  %519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror(i32 noundef %520, ptr noundef nonnull @.str.4) #11
  %522 = load i32, ptr %519, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror_debug(i32 noundef %522, ptr noundef nonnull @.str.4) #11
  %524 = load i32, ptr %505, align 4, !tbaa !5
  %525 = call ptr @strerror(i32 noundef %524) #11
  %526 = load i32, ptr %505, align 4, !tbaa !5
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %517, ptr noundef nonnull %.str.5.sink938, i32 noundef %518, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %521, ptr noundef %523, ptr noundef %525, i32 noundef %526) #13
  call void @exit(i32 noundef 1) #14
  unreachable

528:                                              ; preds = %498
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = add nsw i32 %529, 1
  store i32 %530, ptr @test_count, align 4, !tbaa !5
  %531 = call i32 %295(ptr noundef nonnull %442, ptr noundef nonnull %5) #11
  %532 = icmp eq i32 %531, -1
  br i1 %532, label %533, label %557

533:                                              ; preds = %528
  %534 = tail call ptr @__errno_location() #12
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = call i32 @s2n_print_stacktrace(ptr noundef %536) #11
  %538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %539 = trunc nuw i8 %538 to i1
  br i1 %539, label %540, label %544

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

544:                                              ; preds = %540, %533
  br label %545

545:                                              ; preds = %540, %544
  %.str.5.sink949 = phi ptr [ @.str.5, %544 ], [ @.str.2, %540 ]
  store i32 %535, ptr %534, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror(i32 noundef %549, ptr noundef nonnull @.str.4) #11
  %551 = load i32, ptr %548, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror_debug(i32 noundef %551, ptr noundef nonnull @.str.4) #11
  %553 = load i32, ptr %534, align 4, !tbaa !5
  %554 = call ptr @strerror(i32 noundef %553) #11
  %555 = load i32, ptr %534, align 4, !tbaa !5
  %556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef nonnull %.str.5.sink949, i32 noundef %547, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %550, ptr noundef %552, ptr noundef %554, i32 noundef %555) #13
  call void @exit(i32 noundef 1) #14
  unreachable

557:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #11
  store i8 0, ptr %6, align 1, !tbaa !46
  %558 = load i32, ptr @test_count, align 4, !tbaa !5
  %559 = add nsw i32 %558, 1
  store i32 %559, ptr @test_count, align 4, !tbaa !5
  %560 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %5, ptr noundef nonnull %6) #11
  %561 = icmp eq i32 %560, -1
  br i1 %561, label %562, label %586

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

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

573:                                              ; preds = %569, %562
  br label %574

574:                                              ; preds = %569, %573
  %.str.5.sink960 = phi ptr [ @.str.5, %573 ], [ @.str.2, %569 ]
  store i32 %564, ptr %563, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = load i32, ptr @test_count, align 4, !tbaa !5
  %577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = call ptr @s2n_strerror(i32 noundef %578, ptr noundef nonnull @.str.4) #11
  %580 = load i32, ptr %577, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror_debug(i32 noundef %580, ptr noundef nonnull @.str.4) #11
  %582 = load i32, ptr %563, align 4, !tbaa !5
  %583 = call ptr @strerror(i32 noundef %582) #11
  %584 = load i32, ptr %563, align 4, !tbaa !5
  %585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %575, ptr noundef nonnull %.str.5.sink960, i32 noundef %576, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %579, ptr noundef %581, ptr noundef %583, i32 noundef %584) #13
  call void @exit(i32 noundef 1) #14
  unreachable

586:                                              ; preds = %557
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = add nsw i32 %587, 1
  store i32 %588, ptr @test_count, align 4, !tbaa !5
  %589 = load i8, ptr %6, align 1, !tbaa !46
  %590 = icmp eq i8 %589, 2
  br i1 %590, label %615, label %591

591:                                              ; preds = %586
  %592 = tail call ptr @__errno_location() #12
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @s2n_print_stacktrace(ptr noundef %594) #11
  %596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %597 = trunc nuw i8 %596 to i1
  br i1 %597, label %598, label %602

598:                                              ; preds = %591
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = call i32 @fileno(ptr noundef %599) #11
  %601 = call i32 @isatty(i32 noundef %600) #11
  %.not544 = icmp eq i32 %601, 0
  br i1 %.not544, label %602, label %603

602:                                              ; preds = %598, %591
  br label %603

603:                                              ; preds = %598, %602
  %.str.5.sink971 = phi ptr [ @.str.5, %602 ], [ @.str.2, %598 ]
  store i32 %593, ptr %592, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = load i32, ptr @test_count, align 4, !tbaa !5
  %606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror(i32 noundef %607, ptr noundef nonnull @.str.4) #11
  %609 = load i32, ptr %606, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror_debug(i32 noundef %609, ptr noundef nonnull @.str.4) #11
  %611 = load i32, ptr %592, align 4, !tbaa !5
  %612 = call ptr @strerror(i32 noundef %611) #11
  %613 = load i32, ptr %592, align 4, !tbaa !5
  %614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %604, ptr noundef nonnull %.str.5.sink971, i32 noundef %605, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %608, ptr noundef %610, ptr noundef %612, i32 noundef %613) #13
  call void @exit(i32 noundef 1) #14
  unreachable

615:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %7) #11
  store i16 0, ptr %7, align 2, !tbaa !47
  %616 = add nsw i32 %587, 2
  store i32 %616, ptr @test_count, align 4, !tbaa !5
  %617 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %5, ptr noundef nonnull %7) #11
  %618 = icmp eq i32 %617, -1
  br i1 %618, label %619, label %643

619:                                              ; preds = %615
  %620 = tail call ptr @__errno_location() #12
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %623 = call i32 @s2n_print_stacktrace(ptr noundef %622) #11
  %624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %625 = trunc nuw i8 %624 to i1
  br i1 %625, label %626, label %630

626:                                              ; preds = %619
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = call i32 @fileno(ptr noundef %627) #11
  %629 = call i32 @isatty(i32 noundef %628) #11
  %.not703 = icmp eq i32 %629, 0
  br i1 %.not703, label %630, label %631

630:                                              ; preds = %626, %619
  br label %631

631:                                              ; preds = %626, %630
  %.str.5.sink982 = phi ptr [ @.str.5, %630 ], [ @.str.2, %626 ]
  store i32 %621, ptr %620, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror(i32 noundef %635, ptr noundef nonnull @.str.4) #11
  %637 = load i32, ptr %634, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror_debug(i32 noundef %637, ptr noundef nonnull @.str.4) #11
  %639 = load i32, ptr %620, align 4, !tbaa !5
  %640 = call ptr @strerror(i32 noundef %639) #11
  %641 = load i32, ptr %620, align 4, !tbaa !5
  %642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %632, ptr noundef nonnull %.str.5.sink982, i32 noundef %633, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %636, ptr noundef %638, ptr noundef %640, i32 noundef %641) #13
  call void @exit(i32 noundef 1) #14
  unreachable

643:                                              ; preds = %615
  %644 = load i32, ptr @test_count, align 4, !tbaa !5
  %645 = add nsw i32 %644, 1
  store i32 %645, ptr @test_count, align 4, !tbaa !5
  %646 = load i16, ptr %7, align 2, !tbaa !47
  %647 = icmp eq i16 %646, 772
  br i1 %647, label %672, label %648

648:                                              ; preds = %643
  %649 = tail call ptr @__errno_location() #12
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = call i32 @s2n_print_stacktrace(ptr noundef %651) #11
  %653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %654 = trunc nuw i8 %653 to i1
  br i1 %654, label %655, label %659

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

659:                                              ; preds = %655, %648
  br label %660

660:                                              ; preds = %655, %659
  %.str.5.sink993 = phi ptr [ @.str.5, %659 ], [ @.str.2, %655 ]
  store i32 %650, ptr %649, align 4, !tbaa !5
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = load i32, ptr @test_count, align 4, !tbaa !5
  %663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call ptr @s2n_strerror(i32 noundef %664, ptr noundef nonnull @.str.4) #11
  %666 = load i32, ptr %663, align 4, !tbaa !5
  %667 = call ptr @s2n_strerror_debug(i32 noundef %666, ptr noundef nonnull @.str.4) #11
  %668 = load i32, ptr %649, align 4, !tbaa !5
  %669 = call ptr @strerror(i32 noundef %668) #11
  %670 = load i32, ptr %649, align 4, !tbaa !5
  %671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %661, ptr noundef nonnull %.str.5.sink993, i32 noundef %662, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %665, ptr noundef %667, ptr noundef %669, i32 noundef %670) #13
  call void @exit(i32 noundef 1) #14
  unreachable

672:                                              ; preds = %643
  %673 = add nsw i32 %644, 2
  store i32 %673, ptr @test_count, align 4, !tbaa !5
  %674 = call i32 @s2n_connection_free(ptr noundef nonnull %442) #11
  %675 = icmp eq i32 %674, -1
  br i1 %675, label %676, label %700

676:                                              ; preds = %672
  %677 = tail call ptr @__errno_location() #12
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = call i32 @s2n_print_stacktrace(ptr noundef %679) #11
  %681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %682 = trunc nuw i8 %681 to i1
  br i1 %682, label %683, label %687

683:                                              ; preds = %676
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = call i32 @fileno(ptr noundef %684) #11
  %686 = call i32 @isatty(i32 noundef %685) #11
  %.not702 = icmp eq i32 %686, 0
  br i1 %.not702, label %687, label %688

687:                                              ; preds = %683, %676
  br label %688

688:                                              ; preds = %683, %687
  %.str.5.sink1004 = phi ptr [ @.str.5, %687 ], [ @.str.2, %683 ]
  store i32 %678, ptr %677, 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 nonnull @.str.4) #11
  %694 = load i32, ptr %691, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror_debug(i32 noundef %694, ptr noundef nonnull @.str.4) #11
  %696 = load i32, ptr %677, align 4, !tbaa !5
  %697 = call ptr @strerror(i32 noundef %696) #11
  %698 = load i32, ptr %677, align 4, !tbaa !5
  %699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef nonnull %.str.5.sink1004, i32 noundef %690, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %693, ptr noundef %695, ptr noundef %697, i32 noundef %698) #13
  call void @exit(i32 noundef 1) #14
  unreachable

700:                                              ; preds = %672
  %701 = load i32, ptr @test_count, align 4, !tbaa !5
  %702 = add nsw i32 %701, 1
  store i32 %702, ptr @test_count, align 4, !tbaa !5
  %703 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #11
  %704 = icmp eq i32 %703, -1
  br i1 %704, label %705, label %729

705:                                              ; preds = %700
  %706 = tail call ptr @__errno_location() #12
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = call i32 @s2n_print_stacktrace(ptr noundef %708) #11
  %710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %711 = trunc nuw i8 %710 to i1
  br i1 %711, label %712, label %716

712:                                              ; preds = %705
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @fileno(ptr noundef %713) #11
  %715 = call i32 @isatty(i32 noundef %714) #11
  %.not701 = icmp eq i32 %715, 0
  br i1 %.not701, label %716, label %717

716:                                              ; preds = %712, %705
  br label %717

717:                                              ; preds = %712, %716
  %.str.5.sink1015 = phi ptr [ @.str.5, %716 ], [ @.str.2, %712 ]
  store i32 %707, ptr %706, align 4, !tbaa !5
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = load i32, ptr @test_count, align 4, !tbaa !5
  %720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = call ptr @s2n_strerror(i32 noundef %721, ptr noundef nonnull @.str.4) #11
  %723 = load i32, ptr %720, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror_debug(i32 noundef %723, ptr noundef nonnull @.str.4) #11
  %725 = load i32, ptr %706, align 4, !tbaa !5
  %726 = call ptr @strerror(i32 noundef %725) #11
  %727 = load i32, ptr %706, align 4, !tbaa !5
  %728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %718, ptr noundef nonnull %.str.5.sink1015, i32 noundef %719, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %722, ptr noundef %724, ptr noundef %726, i32 noundef %727) #13
  call void @exit(i32 noundef 1) #14
  unreachable

729:                                              ; preds = %700
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #11
  br label %730

730:                                              ; preds = %729, %437
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr @test_count, align 4, !tbaa !5
  %733 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %734 = icmp eq ptr %733, null
  br i1 %734, label %735, label %759

735:                                              ; preds = %730
  %736 = tail call ptr @__errno_location() #12
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = call i32 @s2n_print_stacktrace(ptr noundef %738) #11
  %740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %741 = trunc nuw i8 %740 to i1
  br i1 %741, label %742, label %746

742:                                              ; preds = %735
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = call i32 @fileno(ptr noundef %743) #11
  %745 = call i32 @isatty(i32 noundef %744) #11
  %.not700 = icmp eq i32 %745, 0
  br i1 %.not700, label %746, label %747

746:                                              ; preds = %742, %735
  br label %747

747:                                              ; preds = %742, %746
  %.str.5.sink1026 = phi ptr [ @.str.5, %746 ], [ @.str.2, %742 ]
  store i32 %737, ptr %736, align 4, !tbaa !5
  %748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %749 = load i32, ptr @test_count, align 4, !tbaa !5
  %750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call ptr @s2n_strerror(i32 noundef %751, ptr noundef nonnull @.str.4) #11
  %753 = load i32, ptr %750, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror_debug(i32 noundef %753, ptr noundef nonnull @.str.4) #11
  %755 = load i32, ptr %736, align 4, !tbaa !5
  %756 = call ptr @strerror(i32 noundef %755) #11
  %757 = load i32, ptr %736, align 4, !tbaa !5
  %758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %748, ptr noundef nonnull %.str.5.sink1026, i32 noundef %749, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %752, ptr noundef %754, ptr noundef %756, i32 noundef %757) #13
  call void @exit(i32 noundef 1) #14
  unreachable

759:                                              ; preds = %730
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr @test_count, align 4, !tbaa !5
  %762 = call i32 @s2n_connection_set_config(ptr noundef nonnull %733, ptr noundef nonnull %151) #11
  %763 = icmp eq i32 %762, -1
  br i1 %763, label %764, label %788

764:                                              ; preds = %759
  %765 = tail call ptr @__errno_location() #12
  %766 = load i32, ptr %765, align 4, !tbaa !5
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = call i32 @s2n_print_stacktrace(ptr noundef %767) #11
  %769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %770 = trunc nuw i8 %769 to i1
  br i1 %770, label %771, label %775

771:                                              ; preds = %764
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = call i32 @fileno(ptr noundef %772) #11
  %774 = call i32 @isatty(i32 noundef %773) #11
  %.not699 = icmp eq i32 %774, 0
  br i1 %.not699, label %775, label %776

775:                                              ; preds = %771, %764
  br label %776

776:                                              ; preds = %771, %775
  %.str.5.sink1037 = phi ptr [ @.str.5, %775 ], [ @.str.2, %771 ]
  store i32 %766, ptr %765, align 4, !tbaa !5
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = load i32, ptr @test_count, align 4, !tbaa !5
  %779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @s2n_strerror(i32 noundef %780, ptr noundef nonnull @.str.4) #11
  %782 = load i32, ptr %779, align 4, !tbaa !5
  %783 = call ptr @s2n_strerror_debug(i32 noundef %782, ptr noundef nonnull @.str.4) #11
  %784 = load i32, ptr %765, align 4, !tbaa !5
  %785 = call ptr @strerror(i32 noundef %784) #11
  %786 = load i32, ptr %765, align 4, !tbaa !5
  %787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %777, ptr noundef nonnull %.str.5.sink1037, i32 noundef %778, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %781, ptr noundef %783, ptr noundef %785, i32 noundef %786) #13
  call void @exit(i32 noundef 1) #14
  unreachable

788:                                              ; preds = %759
  %789 = call i32 @s2n_extensions_client_supported_versions_size(ptr noundef nonnull %733) #11
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = add nsw i32 %790, 1
  store i32 %791, ptr @test_count, align 4, !tbaa !5
  %792 = icmp eq i32 %789, -1
  br i1 %792, label %793, label %817

793:                                              ; preds = %788
  %794 = tail call ptr @__errno_location() #12
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = call i32 @s2n_print_stacktrace(ptr noundef %796) #11
  %798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %799 = trunc nuw i8 %798 to i1
  br i1 %799, label %800, label %804

800:                                              ; preds = %793
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = call i32 @fileno(ptr noundef %801) #11
  %803 = call i32 @isatty(i32 noundef %802) #11
  %.not698 = icmp eq i32 %803, 0
  br i1 %.not698, label %804, label %805

804:                                              ; preds = %800, %793
  br label %805

805:                                              ; preds = %800, %804
  %.str.5.sink1048 = phi ptr [ @.str.5, %804 ], [ @.str.2, %800 ]
  store i32 %795, ptr %794, align 4, !tbaa !5
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = load i32, ptr @test_count, align 4, !tbaa !5
  %808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call ptr @s2n_strerror(i32 noundef %809, ptr noundef nonnull @.str.4) #11
  %811 = load i32, ptr %808, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror_debug(i32 noundef %811, ptr noundef nonnull @.str.4) #11
  %813 = load i32, ptr %794, align 4, !tbaa !5
  %814 = call ptr @strerror(i32 noundef %813) #11
  %815 = load i32, ptr %794, align 4, !tbaa !5
  %816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %806, ptr noundef nonnull %.str.5.sink1048, i32 noundef %807, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %810, ptr noundef %812, ptr noundef %814, i32 noundef %815) #13
  call void @exit(i32 noundef 1) #14
  unreachable

817:                                              ; preds = %788
  %818 = add i32 %789, 65532
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %819 = add nsw i32 %790, 2
  store i32 %819, ptr @test_count, align 4, !tbaa !5
  %820 = and i32 %818, 65535
  %821 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %8, i32 noundef %820) #11
  %822 = icmp eq i32 %821, -1
  br i1 %822, label %823, label %847

823:                                              ; preds = %817
  %824 = tail call ptr @__errno_location() #12
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = call i32 @s2n_print_stacktrace(ptr noundef %826) #11
  %828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %829 = trunc nuw i8 %828 to i1
  br i1 %829, label %830, label %834

830:                                              ; preds = %823
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = call i32 @fileno(ptr noundef %831) #11
  %833 = call i32 @isatty(i32 noundef %832) #11
  %.not697 = icmp eq i32 %833, 0
  br i1 %.not697, label %834, label %835

834:                                              ; preds = %830, %823
  br label %835

835:                                              ; preds = %830, %834
  %.str.5.sink1059 = phi ptr [ @.str.5, %834 ], [ @.str.2, %830 ]
  store i32 %825, ptr %824, align 4, !tbaa !5
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %839, ptr noundef nonnull @.str.4) #11
  %841 = load i32, ptr %838, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror_debug(i32 noundef %841, ptr noundef nonnull @.str.4) #11
  %843 = load i32, ptr %824, align 4, !tbaa !5
  %844 = call ptr @strerror(i32 noundef %843) #11
  %845 = load i32, ptr %824, align 4, !tbaa !5
  %846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %836, ptr noundef nonnull %.str.5.sink1059, i32 noundef %837, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %840, ptr noundef %842, ptr noundef %844, i32 noundef %845) #13
  call void @exit(i32 noundef 1) #14
  unreachable

847:                                              ; preds = %817
  %848 = load i32, ptr @test_count, align 4, !tbaa !5
  %849 = add nsw i32 %848, 1
  store i32 %849, ptr @test_count, align 4, !tbaa !5
  %850 = call i32 %295(ptr noundef nonnull %733, ptr noundef nonnull %8) #11
  %851 = icmp eq i32 %850, -1
  br i1 %851, label %852, label %876

852:                                              ; preds = %847
  %853 = tail call ptr @__errno_location() #12
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = call i32 @s2n_print_stacktrace(ptr noundef %855) #11
  %857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %858 = trunc nuw i8 %857 to i1
  br i1 %858, label %859, label %863

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

863:                                              ; preds = %859, %852
  br label %864

864:                                              ; preds = %859, %863
  %.str.5.sink1070 = phi ptr [ @.str.5, %863 ], [ @.str.2, %859 ]
  store i32 %854, ptr %853, align 4, !tbaa !5
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror(i32 noundef %868, ptr noundef nonnull @.str.4) #11
  %870 = load i32, ptr %867, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror_debug(i32 noundef %870, ptr noundef nonnull @.str.4) #11
  %872 = load i32, ptr %853, align 4, !tbaa !5
  %873 = call ptr @strerror(i32 noundef %872) #11
  %874 = load i32, ptr %853, align 4, !tbaa !5
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %865, ptr noundef nonnull %.str.5.sink1070, i32 noundef %866, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %869, ptr noundef %871, ptr noundef %873, i32 noundef %874) #13
  call void @exit(i32 noundef 1) #14
  unreachable

876:                                              ; preds = %847
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = getelementptr inbounds i8, ptr %8, i64 28
  %880 = load i32, ptr %879, align 4, !tbaa !48
  %881 = getelementptr inbounds i8, ptr %8, i64 24
  %882 = load i32, ptr %881, align 8, !tbaa !49
  %883 = sub i32 %880, %882
  %884 = icmp eq i32 %820, %883
  br i1 %884, label %909, label %885

885:                                              ; preds = %876
  %886 = tail call ptr @__errno_location() #12
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = call i32 @s2n_print_stacktrace(ptr noundef %888) #11
  %890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %891 = trunc nuw i8 %890 to i1
  br i1 %891, label %892, label %896

892:                                              ; preds = %885
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @fileno(ptr noundef %893) #11
  %895 = call i32 @isatty(i32 noundef %894) #11
  %.not546 = icmp eq i32 %895, 0
  br i1 %.not546, label %896, label %897

896:                                              ; preds = %892, %885
  br label %897

897:                                              ; preds = %892, %896
  %.str.5.sink1081 = phi ptr [ @.str.5, %896 ], [ @.str.2, %892 ]
  store i32 %887, ptr %886, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %901, ptr noundef nonnull @.str.4) #11
  %903 = load i32, ptr %900, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror_debug(i32 noundef %903, ptr noundef nonnull @.str.4) #11
  %905 = load i32, ptr %886, align 4, !tbaa !5
  %906 = call ptr @strerror(i32 noundef %905) #11
  %907 = load i32, ptr %886, align 4, !tbaa !5
  %908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %898, ptr noundef nonnull %.str.5.sink1081, i32 noundef %899, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %902, ptr noundef %904, ptr noundef %906, i32 noundef %907) #13
  call void @exit(i32 noundef 1) #14
  unreachable

909:                                              ; preds = %876
  %910 = add nsw i32 %877, 2
  store i32 %910, ptr @test_count, align 4, !tbaa !5
  %911 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %912 = icmp eq ptr %911, null
  br i1 %912, label %913, label %937

913:                                              ; preds = %909
  %914 = tail call ptr @__errno_location() #12
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = call i32 @s2n_print_stacktrace(ptr noundef %916) #11
  %918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %919 = trunc nuw i8 %918 to i1
  br i1 %919, label %920, label %924

920:                                              ; preds = %913
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = call i32 @fileno(ptr noundef %921) #11
  %923 = call i32 @isatty(i32 noundef %922) #11
  %.not695 = icmp eq i32 %923, 0
  br i1 %.not695, label %924, label %925

924:                                              ; preds = %920, %913
  br label %925

925:                                              ; preds = %920, %924
  %.str.5.sink1092 = phi ptr [ @.str.5, %924 ], [ @.str.2, %920 ]
  store i32 %915, ptr %914, align 4, !tbaa !5
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror(i32 noundef %929, ptr noundef nonnull @.str.4) #11
  %931 = load i32, ptr %928, align 4, !tbaa !5
  %932 = call ptr @s2n_strerror_debug(i32 noundef %931, ptr noundef nonnull @.str.4) #11
  %933 = load i32, ptr %914, align 4, !tbaa !5
  %934 = call ptr @strerror(i32 noundef %933) #11
  %935 = load i32, ptr %914, align 4, !tbaa !5
  %936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %926, ptr noundef nonnull %.str.5.sink1092, i32 noundef %927, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %930, ptr noundef %932, ptr noundef %934, i32 noundef %935) #13
  call void @exit(i32 noundef 1) #14
  unreachable

937:                                              ; preds = %909
  %938 = load i32, ptr @test_count, align 4, !tbaa !5
  %939 = add nsw i32 %938, 1
  store i32 %939, ptr @test_count, align 4, !tbaa !5
  %940 = call i32 @s2n_connection_set_config(ptr noundef nonnull %911, ptr noundef nonnull %151) #11
  %941 = icmp eq i32 %940, -1
  br i1 %941, label %942, label %966

942:                                              ; preds = %937
  %943 = tail call ptr @__errno_location() #12
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @s2n_print_stacktrace(ptr noundef %945) #11
  %947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %948 = trunc nuw i8 %947 to i1
  br i1 %948, label %949, label %953

949:                                              ; preds = %942
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @fileno(ptr noundef %950) #11
  %952 = call i32 @isatty(i32 noundef %951) #11
  %.not694 = icmp eq i32 %952, 0
  br i1 %.not694, label %953, label %954

953:                                              ; preds = %949, %942
  br label %954

954:                                              ; preds = %949, %953
  %.str.5.sink1103 = phi ptr [ @.str.5, %953 ], [ @.str.2, %949 ]
  store i32 %944, ptr %943, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = load i32, ptr @test_count, align 4, !tbaa !5
  %957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = call ptr @s2n_strerror(i32 noundef %958, ptr noundef nonnull @.str.4) #11
  %960 = load i32, ptr %957, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror_debug(i32 noundef %960, ptr noundef nonnull @.str.4) #11
  %962 = load i32, ptr %943, align 4, !tbaa !5
  %963 = call ptr @strerror(i32 noundef %962) #11
  %964 = load i32, ptr %943, align 4, !tbaa !5
  %965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %955, ptr noundef nonnull %.str.5.sink1103, i32 noundef %956, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %959, ptr noundef %961, ptr noundef %963, i32 noundef %964) #13
  call void @exit(i32 noundef 1) #14
  unreachable

966:                                              ; preds = %937
  %967 = load i32, ptr @test_count, align 4, !tbaa !5
  %968 = add nsw i32 %967, 1
  store i32 %968, ptr @test_count, align 4, !tbaa !5
  %969 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_supported_versions_extension, i64 16), align 8, !tbaa !50
  %970 = call i32 %969(ptr noundef nonnull %911, ptr noundef nonnull %8) #11
  %971 = icmp eq i32 %970, -1
  br i1 %971, label %972, label %996

972:                                              ; preds = %966
  %973 = tail call ptr @__errno_location() #12
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = call i32 @s2n_print_stacktrace(ptr noundef %975) #11
  %977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %978 = trunc nuw i8 %977 to i1
  br i1 %978, label %979, label %983

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

983:                                              ; preds = %979, %972
  br label %984

984:                                              ; preds = %979, %983
  %.str.5.sink1114 = phi ptr [ @.str.5, %983 ], [ @.str.2, %979 ]
  store i32 %974, ptr %973, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = load i32, ptr @test_count, align 4, !tbaa !5
  %987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror(i32 noundef %988, ptr noundef nonnull @.str.4) #11
  %990 = load i32, ptr %987, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror_debug(i32 noundef %990, ptr noundef nonnull @.str.4) #11
  %992 = load i32, ptr %973, align 4, !tbaa !5
  %993 = call ptr @strerror(i32 noundef %992) #11
  %994 = load i32, ptr %973, align 4, !tbaa !5
  %995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %985, ptr noundef nonnull %.str.5.sink1114, i32 noundef %986, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %989, ptr noundef %991, ptr noundef %993, i32 noundef %994) #13
  call void @exit(i32 noundef 1) #14
  unreachable

996:                                              ; preds = %966
  %997 = load i32, ptr @test_count, align 4, !tbaa !5
  %998 = add nsw i32 %997, 1
  store i32 %998, ptr @test_count, align 4, !tbaa !5
  %999 = getelementptr inbounds i8, ptr %911, i64 218
  %1000 = load i8, ptr %999, align 2, !tbaa !51
  %1001 = icmp eq i8 %1000, 34
  br i1 %1001, label %1026, label %1002

1002:                                             ; preds = %996
  %1003 = tail call ptr @__errno_location() #12
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1006 = call i32 @s2n_print_stacktrace(ptr noundef %1005) #11
  %1007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1008 = trunc nuw i8 %1007 to i1
  br i1 %1008, label %1009, label %1013

1009:                                             ; preds = %1002
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = call i32 @fileno(ptr noundef %1010) #11
  %1012 = call i32 @isatty(i32 noundef %1011) #11
  %.not547 = icmp eq i32 %1012, 0
  br i1 %.not547, label %1013, label %1014

1013:                                             ; preds = %1009, %1002
  br label %1014

1014:                                             ; preds = %1009, %1013
  %.str.5.sink1125 = phi ptr [ @.str.5, %1013 ], [ @.str.2, %1009 ]
  store i32 %1004, ptr %1003, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = load i32, ptr @test_count, align 4, !tbaa !5
  %1017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror(i32 noundef %1018, ptr noundef nonnull @.str.4) #11
  %1020 = load i32, ptr %1017, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror_debug(i32 noundef %1020, ptr noundef nonnull @.str.4) #11
  %1022 = load i32, ptr %1003, align 4, !tbaa !5
  %1023 = call ptr @strerror(i32 noundef %1022) #11
  %1024 = load i32, ptr %1003, align 4, !tbaa !5
  %1025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1015, ptr noundef nonnull %.str.5.sink1125, i32 noundef %1016, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1019, ptr noundef %1021, ptr noundef %1023, i32 noundef %1024) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1026:                                             ; preds = %996
  %1027 = add nsw i32 %997, 2
  store i32 %1027, ptr @test_count, align 4, !tbaa !5
  %1028 = getelementptr inbounds i8, ptr %911, i64 219
  %1029 = load i8, ptr %1028, align 1, !tbaa !52
  %1030 = icmp eq i8 %1029, 34
  br i1 %1030, label %1055, label %1031

1031:                                             ; preds = %1026
  %1032 = tail call ptr @__errno_location() #12
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1035 = call i32 @s2n_print_stacktrace(ptr noundef %1034) #11
  %1036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1037 = trunc nuw i8 %1036 to i1
  br i1 %1037, label %1038, label %1042

1038:                                             ; preds = %1031
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = call i32 @fileno(ptr noundef %1039) #11
  %1041 = call i32 @isatty(i32 noundef %1040) #11
  %.not548 = icmp eq i32 %1041, 0
  br i1 %.not548, label %1042, label %1043

1042:                                             ; preds = %1038, %1031
  br label %1043

1043:                                             ; preds = %1038, %1042
  %.str.5.sink1136 = phi ptr [ @.str.5, %1042 ], [ @.str.2, %1038 ]
  store i32 %1033, ptr %1032, align 4, !tbaa !5
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = load i32, ptr @test_count, align 4, !tbaa !5
  %1046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1047 = load i32, ptr %1046, align 4, !tbaa !5
  %1048 = call ptr @s2n_strerror(i32 noundef %1047, ptr noundef nonnull @.str.4) #11
  %1049 = load i32, ptr %1046, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror_debug(i32 noundef %1049, ptr noundef nonnull @.str.4) #11
  %1051 = load i32, ptr %1032, align 4, !tbaa !5
  %1052 = call ptr @strerror(i32 noundef %1051) #11
  %1053 = load i32, ptr %1032, align 4, !tbaa !5
  %1054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1044, ptr noundef nonnull %.str.5.sink1136, i32 noundef %1045, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1048, ptr noundef %1050, ptr noundef %1052, i32 noundef %1053) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1055:                                             ; preds = %1026
  %1056 = add nsw i32 %997, 3
  store i32 %1056, ptr @test_count, align 4, !tbaa !5
  %1057 = getelementptr inbounds i8, ptr %911, i64 220
  %1058 = load i8, ptr %1057, align 4, !tbaa !53
  %1059 = icmp eq i8 %1058, 34
  br i1 %1059, label %1084, label %1060

1060:                                             ; preds = %1055
  %1061 = tail call ptr @__errno_location() #12
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = call i32 @s2n_print_stacktrace(ptr noundef %1063) #11
  %1065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1066 = trunc nuw i8 %1065 to i1
  br i1 %1066, label %1067, label %1071

1067:                                             ; preds = %1060
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = call i32 @fileno(ptr noundef %1068) #11
  %1070 = call i32 @isatty(i32 noundef %1069) #11
  %.not549 = icmp eq i32 %1070, 0
  br i1 %.not549, label %1071, label %1072

1071:                                             ; preds = %1067, %1060
  br label %1072

1072:                                             ; preds = %1067, %1071
  %.str.5.sink1147 = phi ptr [ @.str.5, %1071 ], [ @.str.2, %1067 ]
  store i32 %1062, ptr %1061, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = load i32, ptr @test_count, align 4, !tbaa !5
  %1075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror(i32 noundef %1076, ptr noundef nonnull @.str.4) #11
  %1078 = load i32, ptr %1075, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror_debug(i32 noundef %1078, ptr noundef nonnull @.str.4) #11
  %1080 = load i32, ptr %1061, align 4, !tbaa !5
  %1081 = call ptr @strerror(i32 noundef %1080) #11
  %1082 = load i32, ptr %1061, align 4, !tbaa !5
  %1083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1073, ptr noundef nonnull %.str.5.sink1147, i32 noundef %1074, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1077, ptr noundef %1079, ptr noundef %1081, i32 noundef %1082) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1084:                                             ; preds = %1055
  %1085 = add nsw i32 %997, 4
  store i32 %1085, ptr @test_count, align 4, !tbaa !5
  %1086 = call i32 @s2n_connection_free(ptr noundef nonnull %733) #11
  %1087 = icmp eq i32 %1086, -1
  br i1 %1087, label %1088, label %1112

1088:                                             ; preds = %1084
  %1089 = tail call ptr @__errno_location() #12
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = call i32 @s2n_print_stacktrace(ptr noundef %1091) #11
  %1093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1094 = trunc nuw i8 %1093 to i1
  br i1 %1094, label %1095, label %1099

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

1099:                                             ; preds = %1095, %1088
  br label %1100

1100:                                             ; preds = %1095, %1099
  %.str.5.sink1158 = phi ptr [ @.str.5, %1099 ], [ @.str.2, %1095 ]
  store i32 %1090, ptr %1089, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.4) #11
  %1106 = load i32, ptr %1103, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.4) #11
  %1108 = load i32, ptr %1089, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #11
  %1110 = load i32, ptr %1089, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1101, ptr noundef nonnull %.str.5.sink1158, i32 noundef %1102, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1112:                                             ; preds = %1084
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr @test_count, align 4, !tbaa !5
  %1115 = call i32 @s2n_connection_free(ptr noundef nonnull %911) #11
  %1116 = icmp eq i32 %1115, -1
  br i1 %1116, label %1117, label %1141

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

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

1128:                                             ; preds = %1124, %1117
  br label %1129

1129:                                             ; preds = %1124, %1128
  %.str.5.sink1169 = phi ptr [ @.str.5, %1128 ], [ @.str.2, %1124 ]
  store i32 %1119, ptr %1118, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef nonnull @.str.4) #11
  %1135 = load i32, ptr %1132, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror_debug(i32 noundef %1135, ptr noundef nonnull @.str.4) #11
  %1137 = load i32, ptr %1118, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #11
  %1139 = load i32, ptr %1118, align 4, !tbaa !5
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1130, ptr noundef nonnull %.str.5.sink1169, i32 noundef %1131, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1134, ptr noundef %1136, ptr noundef %1138, i32 noundef %1139) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1141:                                             ; preds = %1112
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr @test_count, align 4, !tbaa !5
  %1144 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #11
  %1145 = icmp eq i32 %1144, -1
  br i1 %1145, label %1146, label %1170

1146:                                             ; preds = %1141
  %1147 = tail call ptr @__errno_location() #12
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = call i32 @s2n_print_stacktrace(ptr noundef %1149) #11
  %1151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1152 = trunc nuw i8 %1151 to i1
  br i1 %1152, label %1153, label %1157

1153:                                             ; preds = %1146
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @fileno(ptr noundef %1154) #11
  %1156 = call i32 @isatty(i32 noundef %1155) #11
  %.not690 = icmp eq i32 %1156, 0
  br i1 %.not690, label %1157, label %1158

1157:                                             ; preds = %1153, %1146
  br label %1158

1158:                                             ; preds = %1153, %1157
  %.str.5.sink1180 = phi ptr [ @.str.5, %1157 ], [ @.str.2, %1153 ]
  store i32 %1148, ptr %1147, align 4, !tbaa !5
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = load i32, ptr @test_count, align 4, !tbaa !5
  %1161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror(i32 noundef %1162, ptr noundef nonnull @.str.4) #11
  %1164 = load i32, ptr %1161, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror_debug(i32 noundef %1164, ptr noundef nonnull @.str.4) #11
  %1166 = load i32, ptr %1147, align 4, !tbaa !5
  %1167 = call ptr @strerror(i32 noundef %1166) #11
  %1168 = load i32, ptr %1147, align 4, !tbaa !5
  %1169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1159, ptr noundef nonnull %.str.5.sink1180, i32 noundef %1160, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1163, ptr noundef %1165, ptr noundef %1167, i32 noundef %1168) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1170:                                             ; preds = %1141
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #11
  %1171 = load i32, ptr @test_count, align 4, !tbaa !5
  %1172 = add nsw i32 %1171, 1
  store i32 %1172, ptr @test_count, align 4, !tbaa !5
  %1173 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1174 = icmp eq ptr %1173, null
  br i1 %1174, label %1175, label %1199

1175:                                             ; preds = %1170
  %1176 = tail call ptr @__errno_location() #12
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1179 = call i32 @s2n_print_stacktrace(ptr noundef %1178) #11
  %1180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1181 = trunc nuw i8 %1180 to i1
  br i1 %1181, label %1182, label %1186

1182:                                             ; preds = %1175
  %1183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1184 = call i32 @fileno(ptr noundef %1183) #11
  %1185 = call i32 @isatty(i32 noundef %1184) #11
  %.not689 = icmp eq i32 %1185, 0
  br i1 %.not689, label %1186, label %1187

1186:                                             ; preds = %1182, %1175
  br label %1187

1187:                                             ; preds = %1182, %1186
  %.str.5.sink1191 = phi ptr [ @.str.5, %1186 ], [ @.str.2, %1182 ]
  store i32 %1177, ptr %1176, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = load i32, ptr @test_count, align 4, !tbaa !5
  %1190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror(i32 noundef %1191, ptr noundef nonnull @.str.4) #11
  %1193 = load i32, ptr %1190, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror_debug(i32 noundef %1193, ptr noundef nonnull @.str.4) #11
  %1195 = load i32, ptr %1176, align 4, !tbaa !5
  %1196 = call ptr @strerror(i32 noundef %1195) #11
  %1197 = load i32, ptr %1176, align 4, !tbaa !5
  %1198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1188, ptr noundef nonnull %.str.5.sink1191, i32 noundef %1189, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1192, ptr noundef %1194, ptr noundef %1196, i32 noundef %1197) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1199:                                             ; preds = %1170
  %1200 = load i32, ptr @test_count, align 4, !tbaa !5
  %1201 = add nsw i32 %1200, 1
  store i32 %1201, ptr @test_count, align 4, !tbaa !5
  %1202 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1173, ptr noundef nonnull %151) #11
  %1203 = icmp eq i32 %1202, -1
  br i1 %1203, label %1204, label %1228

1204:                                             ; preds = %1199
  %1205 = tail call ptr @__errno_location() #12
  %1206 = load i32, ptr %1205, align 4, !tbaa !5
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = call i32 @s2n_print_stacktrace(ptr noundef %1207) #11
  %1209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1210 = trunc nuw i8 %1209 to i1
  br i1 %1210, label %1211, label %1215

1211:                                             ; preds = %1204
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = call i32 @fileno(ptr noundef %1212) #11
  %1214 = call i32 @isatty(i32 noundef %1213) #11
  %.not688 = icmp eq i32 %1214, 0
  br i1 %.not688, label %1215, label %1216

1215:                                             ; preds = %1211, %1204
  br label %1216

1216:                                             ; preds = %1211, %1215
  %.str.5.sink1202 = phi ptr [ @.str.5, %1215 ], [ @.str.2, %1211 ]
  store i32 %1206, ptr %1205, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = load i32, ptr @test_count, align 4, !tbaa !5
  %1219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef nonnull @.str.4) #11
  %1222 = load i32, ptr %1219, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef nonnull @.str.4) #11
  %1224 = load i32, ptr %1205, align 4, !tbaa !5
  %1225 = call ptr @strerror(i32 noundef %1224) #11
  %1226 = load i32, ptr %1205, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1217, ptr noundef nonnull %.str.5.sink1202, i32 noundef %1218, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1221, ptr noundef %1223, ptr noundef %1225, i32 noundef %1226) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1228:                                             ; preds = %1199
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #11
  store <4 x i8> <i8 32, i8 33, i8 34, i8 -1>, ptr %9, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, i8 0, i64 40, i1 false)
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = add nsw i32 %1229, 1
  store i32 %1230, ptr @test_count, align 4, !tbaa !5
  %1231 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %10, i32 noundef 9) #11
  %1232 = icmp eq i32 %1231, -1
  br i1 %1232, label %1233, label %1257

1233:                                             ; preds = %1228
  %1234 = tail call ptr @__errno_location() #12
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1237 = call i32 @s2n_print_stacktrace(ptr noundef %1236) #11
  %1238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1239 = trunc nuw i8 %1238 to i1
  br i1 %1239, label %1240, label %1244

1240:                                             ; preds = %1233
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = call i32 @fileno(ptr noundef %1241) #11
  %1243 = call i32 @isatty(i32 noundef %1242) #11
  %.not687 = icmp eq i32 %1243, 0
  br i1 %.not687, label %1244, label %1245

1244:                                             ; preds = %1240, %1233
  br label %1245

1245:                                             ; preds = %1240, %1244
  %.str.5.sink1213 = phi ptr [ @.str.5, %1244 ], [ @.str.2, %1240 ]
  store i32 %1235, ptr %1234, align 4, !tbaa !5
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = load i32, ptr @test_count, align 4, !tbaa !5
  %1248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror(i32 noundef %1249, ptr noundef nonnull @.str.4) #11
  %1251 = load i32, ptr %1248, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror_debug(i32 noundef %1251, ptr noundef nonnull @.str.4) #11
  %1253 = load i32, ptr %1234, align 4, !tbaa !5
  %1254 = call ptr @strerror(i32 noundef %1253) #11
  %1255 = load i32, ptr %1234, align 4, !tbaa !5
  %1256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1246, ptr noundef nonnull %.str.5.sink1213, i32 noundef %1247, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %1250, ptr noundef %1252, ptr noundef %1254, i32 noundef %1255) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1257:                                             ; preds = %1228
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = add nsw i32 %1258, 1
  store i32 %1259, ptr @test_count, align 4, !tbaa !5
  %1260 = call i32 @write_test_supported_versions_list(ptr noundef nonnull %10, ptr noundef nonnull %9, i8 noundef zeroext 4)
  %1261 = icmp eq i32 %1260, -1
  br i1 %1261, label %1262, label %1286

1262:                                             ; preds = %1257
  %1263 = tail call ptr @__errno_location() #12
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = call i32 @s2n_print_stacktrace(ptr noundef %1265) #11
  %1267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1268 = trunc nuw i8 %1267 to i1
  br i1 %1268, label %1269, label %1273

1269:                                             ; preds = %1262
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @fileno(ptr noundef %1270) #11
  %1272 = call i32 @isatty(i32 noundef %1271) #11
  %.not686 = icmp eq i32 %1272, 0
  br i1 %.not686, label %1273, label %1274

1273:                                             ; preds = %1269, %1262
  br label %1274

1274:                                             ; preds = %1269, %1273
  %.str.5.sink1224 = phi ptr [ @.str.5, %1273 ], [ @.str.2, %1269 ]
  store i32 %1264, ptr %1263, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror(i32 noundef %1278, ptr noundef nonnull @.str.4) #11
  %1280 = load i32, ptr %1277, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror_debug(i32 noundef %1280, ptr noundef nonnull @.str.4) #11
  %1282 = load i32, ptr %1263, align 4, !tbaa !5
  %1283 = call ptr @strerror(i32 noundef %1282) #11
  %1284 = load i32, ptr %1263, align 4, !tbaa !5
  %1285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1275, ptr noundef nonnull %.str.5.sink1224, i32 noundef %1276, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1279, ptr noundef %1281, ptr noundef %1283, i32 noundef %1284) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1286:                                             ; preds = %1257
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = add nsw i32 %1287, 1
  store i32 %1288, ptr @test_count, align 4, !tbaa !5
  %1289 = call i32 %969(ptr noundef nonnull %1173, ptr noundef nonnull %10) #11
  %1290 = icmp eq i32 %1289, -1
  br i1 %1290, label %1291, label %1315

1291:                                             ; preds = %1286
  %1292 = tail call ptr @__errno_location() #12
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = call i32 @s2n_print_stacktrace(ptr noundef %1294) #11
  %1296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1297 = trunc nuw i8 %1296 to i1
  br i1 %1297, label %1298, label %1302

1298:                                             ; preds = %1291
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = call i32 @fileno(ptr noundef %1299) #11
  %1301 = call i32 @isatty(i32 noundef %1300) #11
  %.not685 = icmp eq i32 %1301, 0
  br i1 %.not685, label %1302, label %1303

1302:                                             ; preds = %1298, %1291
  br label %1303

1303:                                             ; preds = %1298, %1302
  %.str.5.sink1235 = phi ptr [ @.str.5, %1302 ], [ @.str.2, %1298 ]
  store i32 %1293, ptr %1292, align 4, !tbaa !5
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = load i32, ptr @test_count, align 4, !tbaa !5
  %1306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror(i32 noundef %1307, ptr noundef nonnull @.str.4) #11
  %1309 = load i32, ptr %1306, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef nonnull @.str.4) #11
  %1311 = load i32, ptr %1292, align 4, !tbaa !5
  %1312 = call ptr @strerror(i32 noundef %1311) #11
  %1313 = load i32, ptr %1292, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1304, ptr noundef nonnull %.str.5.sink1235, i32 noundef %1305, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1308, ptr noundef %1310, ptr noundef %1312, i32 noundef %1313) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1315:                                             ; preds = %1286
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = add nsw i32 %1316, 1
  store i32 %1317, ptr @test_count, align 4, !tbaa !5
  %1318 = getelementptr inbounds i8, ptr %1173, i64 218
  %1319 = load i8, ptr %1318, align 2, !tbaa !51
  %1320 = icmp eq i8 %1319, 34
  br i1 %1320, label %1345, label %1321

1321:                                             ; preds = %1315
  %1322 = tail call ptr @__errno_location() #12
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = call i32 @s2n_print_stacktrace(ptr noundef %1324) #11
  %1326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1327 = trunc nuw i8 %1326 to i1
  br i1 %1327, label %1328, label %1332

1328:                                             ; preds = %1321
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = call i32 @fileno(ptr noundef %1329) #11
  %1331 = call i32 @isatty(i32 noundef %1330) #11
  %.not550 = icmp eq i32 %1331, 0
  br i1 %.not550, label %1332, label %1333

1332:                                             ; preds = %1328, %1321
  br label %1333

1333:                                             ; preds = %1328, %1332
  %.str.5.sink1246 = phi ptr [ @.str.5, %1332 ], [ @.str.2, %1328 ]
  store i32 %1323, ptr %1322, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call ptr @s2n_strerror(i32 noundef %1337, ptr noundef nonnull @.str.4) #11
  %1339 = load i32, ptr %1336, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror_debug(i32 noundef %1339, ptr noundef nonnull @.str.4) #11
  %1341 = load i32, ptr %1322, align 4, !tbaa !5
  %1342 = call ptr @strerror(i32 noundef %1341) #11
  %1343 = load i32, ptr %1322, align 4, !tbaa !5
  %1344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef nonnull %.str.5.sink1246, i32 noundef %1335, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1338, ptr noundef %1340, ptr noundef %1342, i32 noundef %1343) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1345:                                             ; preds = %1315
  %1346 = add nsw i32 %1316, 2
  store i32 %1346, ptr @test_count, align 4, !tbaa !5
  %1347 = getelementptr inbounds i8, ptr %1173, i64 219
  %1348 = load i8, ptr %1347, align 1, !tbaa !52
  %1349 = icmp eq i8 %1348, 34
  br i1 %1349, label %1374, label %1350

1350:                                             ; preds = %1345
  %1351 = tail call ptr @__errno_location() #12
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = call i32 @s2n_print_stacktrace(ptr noundef %1353) #11
  %1355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1356 = trunc nuw i8 %1355 to i1
  br i1 %1356, label %1357, label %1361

1357:                                             ; preds = %1350
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @fileno(ptr noundef %1358) #11
  %1360 = call i32 @isatty(i32 noundef %1359) #11
  %.not551 = icmp eq i32 %1360, 0
  br i1 %.not551, label %1361, label %1362

1361:                                             ; preds = %1357, %1350
  br label %1362

1362:                                             ; preds = %1357, %1361
  %.str.5.sink1257 = phi ptr [ @.str.5, %1361 ], [ @.str.2, %1357 ]
  store i32 %1352, ptr %1351, align 4, !tbaa !5
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror(i32 noundef %1366, ptr noundef nonnull @.str.4) #11
  %1368 = load i32, ptr %1365, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror_debug(i32 noundef %1368, ptr noundef nonnull @.str.4) #11
  %1370 = load i32, ptr %1351, align 4, !tbaa !5
  %1371 = call ptr @strerror(i32 noundef %1370) #11
  %1372 = load i32, ptr %1351, align 4, !tbaa !5
  %1373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1363, ptr noundef nonnull %.str.5.sink1257, i32 noundef %1364, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1367, ptr noundef %1369, ptr noundef %1371, i32 noundef %1372) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1374:                                             ; preds = %1345
  %1375 = add nsw i32 %1316, 3
  store i32 %1375, ptr @test_count, align 4, !tbaa !5
  %1376 = getelementptr inbounds i8, ptr %1173, i64 220
  %1377 = load i8, ptr %1376, align 4, !tbaa !53
  %1378 = icmp eq i8 %1377, 34
  br i1 %1378, label %1403, label %1379

1379:                                             ; preds = %1374
  %1380 = tail call ptr @__errno_location() #12
  %1381 = load i32, ptr %1380, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = call i32 @s2n_print_stacktrace(ptr noundef %1382) #11
  %1384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1385 = trunc nuw i8 %1384 to i1
  br i1 %1385, label %1386, label %1390

1386:                                             ; preds = %1379
  %1387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1388 = call i32 @fileno(ptr noundef %1387) #11
  %1389 = call i32 @isatty(i32 noundef %1388) #11
  %.not552 = icmp eq i32 %1389, 0
  br i1 %.not552, label %1390, label %1391

1390:                                             ; preds = %1386, %1379
  br label %1391

1391:                                             ; preds = %1386, %1390
  %.str.5.sink1268 = phi ptr [ @.str.5, %1390 ], [ @.str.2, %1386 ]
  store i32 %1381, ptr %1380, align 4, !tbaa !5
  %1392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1393 = load i32, ptr @test_count, align 4, !tbaa !5
  %1394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1395 = load i32, ptr %1394, align 4, !tbaa !5
  %1396 = call ptr @s2n_strerror(i32 noundef %1395, ptr noundef nonnull @.str.4) #11
  %1397 = load i32, ptr %1394, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror_debug(i32 noundef %1397, ptr noundef nonnull @.str.4) #11
  %1399 = load i32, ptr %1380, align 4, !tbaa !5
  %1400 = call ptr @strerror(i32 noundef %1399) #11
  %1401 = load i32, ptr %1380, align 4, !tbaa !5
  %1402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1392, ptr noundef nonnull %.str.5.sink1268, i32 noundef %1393, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1396, ptr noundef %1398, ptr noundef %1400, i32 noundef %1401) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1403:                                             ; preds = %1374
  %1404 = add nsw i32 %1316, 4
  store i32 %1404, ptr @test_count, align 4, !tbaa !5
  %1405 = call i32 @s2n_connection_free(ptr noundef nonnull %1173) #11
  %1406 = icmp eq i32 %1405, -1
  br i1 %1406, label %1407, label %1431

1407:                                             ; preds = %1403
  %1408 = tail call ptr @__errno_location() #12
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1411 = call i32 @s2n_print_stacktrace(ptr noundef %1410) #11
  %1412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1413 = trunc nuw i8 %1412 to i1
  br i1 %1413, label %1414, label %1418

1414:                                             ; preds = %1407
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = call i32 @fileno(ptr noundef %1415) #11
  %1417 = call i32 @isatty(i32 noundef %1416) #11
  %.not684 = icmp eq i32 %1417, 0
  br i1 %.not684, label %1418, label %1419

1418:                                             ; preds = %1414, %1407
  br label %1419

1419:                                             ; preds = %1414, %1418
  %.str.5.sink1279 = phi ptr [ @.str.5, %1418 ], [ @.str.2, %1414 ]
  store i32 %1409, ptr %1408, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = load i32, ptr @test_count, align 4, !tbaa !5
  %1422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1423 = load i32, ptr %1422, align 4, !tbaa !5
  %1424 = call ptr @s2n_strerror(i32 noundef %1423, ptr noundef nonnull @.str.4) #11
  %1425 = load i32, ptr %1422, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror_debug(i32 noundef %1425, ptr noundef nonnull @.str.4) #11
  %1427 = load i32, ptr %1408, align 4, !tbaa !5
  %1428 = call ptr @strerror(i32 noundef %1427) #11
  %1429 = load i32, ptr %1408, align 4, !tbaa !5
  %1430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1420, ptr noundef nonnull %.str.5.sink1279, i32 noundef %1421, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %1424, ptr noundef %1426, ptr noundef %1428, i32 noundef %1429) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1431:                                             ; preds = %1403
  %1432 = load i32, ptr @test_count, align 4, !tbaa !5
  %1433 = add nsw i32 %1432, 1
  store i32 %1433, ptr @test_count, align 4, !tbaa !5
  %1434 = call i32 @s2n_stuffer_free(ptr noundef nonnull %10) #11
  %1435 = icmp eq i32 %1434, -1
  br i1 %1435, label %1436, label %1460

1436:                                             ; preds = %1431
  %1437 = tail call ptr @__errno_location() #12
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1440 = call i32 @s2n_print_stacktrace(ptr noundef %1439) #11
  %1441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1442 = trunc nuw i8 %1441 to i1
  br i1 %1442, label %1443, label %1447

1443:                                             ; preds = %1436
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = call i32 @fileno(ptr noundef %1444) #11
  %1446 = call i32 @isatty(i32 noundef %1445) #11
  %.not683 = icmp eq i32 %1446, 0
  br i1 %.not683, label %1447, label %1448

1447:                                             ; preds = %1443, %1436
  br label %1448

1448:                                             ; preds = %1443, %1447
  %.str.5.sink1290 = phi ptr [ @.str.5, %1447 ], [ @.str.2, %1443 ]
  store i32 %1438, ptr %1437, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = load i32, ptr @test_count, align 4, !tbaa !5
  %1451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1452 = load i32, ptr %1451, align 4, !tbaa !5
  %1453 = call ptr @s2n_strerror(i32 noundef %1452, ptr noundef nonnull @.str.4) #11
  %1454 = load i32, ptr %1451, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror_debug(i32 noundef %1454, ptr noundef nonnull @.str.4) #11
  %1456 = load i32, ptr %1437, align 4, !tbaa !5
  %1457 = call ptr @strerror(i32 noundef %1456) #11
  %1458 = load i32, ptr %1437, align 4, !tbaa !5
  %1459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1449, ptr noundef nonnull %.str.5.sink1290, i32 noundef %1450, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1453, ptr noundef %1455, ptr noundef %1457, i32 noundef %1458) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1460:                                             ; preds = %1431
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #11
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = add nsw i32 %1461, 1
  store i32 %1462, ptr @test_count, align 4, !tbaa !5
  %1463 = call i32 (...) @s2n_disable_tls13_in_test() #11
  %1464 = icmp eq i32 %1463, -1
  br i1 %1464, label %1465, label %1489

1465:                                             ; preds = %1460
  %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 = 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 = call i32 @fileno(ptr noundef %1473) #11
  %1475 = call i32 @isatty(i32 noundef %1474) #11
  %.not682 = icmp eq i32 %1475, 0
  br i1 %.not682, label %1476, label %1477

1476:                                             ; preds = %1472, %1465
  br label %1477

1477:                                             ; preds = %1472, %1476
  %.str.5.sink1301 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1481 = load i32, ptr %1480, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror(i32 noundef %1481, ptr noundef nonnull @.str.4) #11
  %1483 = load i32, ptr %1480, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror_debug(i32 noundef %1483, ptr noundef nonnull @.str.4) #11
  %1485 = load i32, ptr %1466, align 4, !tbaa !5
  %1486 = call ptr @strerror(i32 noundef %1485) #11
  %1487 = load i32, ptr %1466, align 4, !tbaa !5
  %1488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1478, ptr noundef nonnull %.str.5.sink1301, i32 noundef %1479, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1482, ptr noundef %1484, ptr noundef %1486, i32 noundef %1487) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1489:                                             ; preds = %1460
  %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 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1493 = icmp eq ptr %1492, null
  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 = 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 = call i32 @fileno(ptr noundef %1502) #11
  %1504 = call i32 @isatty(i32 noundef %1503) #11
  %.not681 = icmp eq i32 %1504, 0
  br i1 %.not681, label %1505, label %1506

1505:                                             ; preds = %1501, %1494
  br label %1506

1506:                                             ; preds = %1501, %1505
  %.str.5.sink1312 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror(i32 noundef %1510, ptr noundef nonnull @.str.4) #11
  %1512 = load i32, ptr %1509, align 4, !tbaa !5
  %1513 = call ptr @s2n_strerror_debug(i32 noundef %1512, ptr noundef nonnull @.str.4) #11
  %1514 = load i32, ptr %1495, align 4, !tbaa !5
  %1515 = call ptr @strerror(i32 noundef %1514) #11
  %1516 = load i32, ptr %1495, align 4, !tbaa !5
  %1517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1507, ptr noundef nonnull %.str.5.sink1312, i32 noundef %1508, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1511, ptr noundef %1513, ptr noundef %1515, i32 noundef %1516) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1518:                                             ; preds = %1489
  %1519 = load i32, ptr @test_count, align 4, !tbaa !5
  %1520 = add nsw i32 %1519, 1
  store i32 %1520, ptr @test_count, align 4, !tbaa !5
  %1521 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1492, ptr noundef nonnull %151) #11
  %1522 = icmp eq i32 %1521, -1
  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 = 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 = call i32 @fileno(ptr noundef %1531) #11
  %1533 = call i32 @isatty(i32 noundef %1532) #11
  %.not680 = icmp eq i32 %1533, 0
  br i1 %.not680, label %1534, label %1535

1534:                                             ; preds = %1530, %1523
  br label %1535

1535:                                             ; preds = %1530, %1534
  %.str.5.sink1323 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror(i32 noundef %1539, ptr noundef nonnull @.str.4) #11
  %1541 = load i32, ptr %1538, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror_debug(i32 noundef %1541, ptr noundef nonnull @.str.4) #11
  %1543 = load i32, ptr %1524, align 4, !tbaa !5
  %1544 = call ptr @strerror(i32 noundef %1543) #11
  %1545 = load i32, ptr %1524, align 4, !tbaa !5
  %1546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1536, ptr noundef nonnull %.str.5.sink1323, i32 noundef %1537, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1540, ptr noundef %1542, ptr noundef %1544, i32 noundef %1545) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1547:                                             ; preds = %1518
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #11
  store <4 x i8> <i8 32, i8 33, i8 34, i8 -1>, ptr %11, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %12, i8 0, i64 40, i1 false)
  %1548 = load i32, ptr @test_count, align 4, !tbaa !5
  %1549 = add nsw i32 %1548, 1
  store i32 %1549, ptr @test_count, align 4, !tbaa !5
  %1550 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %12, i32 noundef 9) #11
  %1551 = icmp eq i32 %1550, -1
  br i1 %1551, label %1552, label %1576

1552:                                             ; preds = %1547
  %1553 = tail call ptr @__errno_location() #12
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = call i32 @s2n_print_stacktrace(ptr noundef %1555) #11
  %1557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1558 = trunc nuw i8 %1557 to i1
  br i1 %1558, label %1559, label %1563

1559:                                             ; preds = %1552
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @fileno(ptr noundef %1560) #11
  %1562 = call i32 @isatty(i32 noundef %1561) #11
  %.not679 = icmp eq i32 %1562, 0
  br i1 %.not679, label %1563, label %1564

1563:                                             ; preds = %1559, %1552
  br label %1564

1564:                                             ; preds = %1559, %1563
  %.str.5.sink1334 = phi ptr [ @.str.5, %1563 ], [ @.str.2, %1559 ]
  store i32 %1554, ptr %1553, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror(i32 noundef %1568, ptr noundef nonnull @.str.4) #11
  %1570 = load i32, ptr %1567, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror_debug(i32 noundef %1570, ptr noundef nonnull @.str.4) #11
  %1572 = load i32, ptr %1553, align 4, !tbaa !5
  %1573 = call ptr @strerror(i32 noundef %1572) #11
  %1574 = load i32, ptr %1553, align 4, !tbaa !5
  %1575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1565, ptr noundef nonnull %.str.5.sink1334, i32 noundef %1566, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1569, ptr noundef %1571, ptr noundef %1573, i32 noundef %1574) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1576:                                             ; preds = %1547
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = add nsw i32 %1577, 1
  store i32 %1578, ptr @test_count, align 4, !tbaa !5
  %1579 = call i32 @write_test_supported_versions_list(ptr noundef nonnull %12, ptr noundef nonnull %11, i8 noundef zeroext 4)
  %1580 = icmp eq i32 %1579, -1
  br i1 %1580, label %1581, label %1605

1581:                                             ; preds = %1576
  %1582 = tail call ptr @__errno_location() #12
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = call i32 @s2n_print_stacktrace(ptr noundef %1584) #11
  %1586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1587 = trunc nuw i8 %1586 to i1
  br i1 %1587, label %1588, label %1592

1588:                                             ; preds = %1581
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = call i32 @fileno(ptr noundef %1589) #11
  %1591 = call i32 @isatty(i32 noundef %1590) #11
  %.not678 = icmp eq i32 %1591, 0
  br i1 %.not678, label %1592, label %1593

1592:                                             ; preds = %1588, %1581
  br label %1593

1593:                                             ; preds = %1588, %1592
  %.str.5.sink1345 = phi ptr [ @.str.5, %1592 ], [ @.str.2, %1588 ]
  store i32 %1583, ptr %1582, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  %1598 = call ptr @s2n_strerror(i32 noundef %1597, ptr noundef nonnull @.str.4) #11
  %1599 = load i32, ptr %1596, align 4, !tbaa !5
  %1600 = call ptr @s2n_strerror_debug(i32 noundef %1599, ptr noundef nonnull @.str.4) #11
  %1601 = load i32, ptr %1582, align 4, !tbaa !5
  %1602 = call ptr @strerror(i32 noundef %1601) #11
  %1603 = load i32, ptr %1582, align 4, !tbaa !5
  %1604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1594, ptr noundef nonnull %.str.5.sink1345, i32 noundef %1595, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %1598, ptr noundef %1600, ptr noundef %1602, i32 noundef %1603) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1605:                                             ; preds = %1576
  %1606 = load i32, ptr @test_count, align 4, !tbaa !5
  %1607 = add nsw i32 %1606, 1
  store i32 %1607, ptr @test_count, align 4, !tbaa !5
  %1608 = call i32 (...) @s2n_enable_tls13_in_test() #11
  %1609 = icmp eq i32 %1608, -1
  br i1 %1609, label %1610, label %1634

1610:                                             ; preds = %1605
  %1611 = tail call ptr @__errno_location() #12
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = call i32 @s2n_print_stacktrace(ptr noundef %1613) #11
  %1615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1616 = trunc nuw i8 %1615 to i1
  br i1 %1616, label %1617, label %1621

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

1621:                                             ; preds = %1617, %1610
  br label %1622

1622:                                             ; preds = %1617, %1621
  %.str.5.sink1356 = phi ptr [ @.str.5, %1621 ], [ @.str.2, %1617 ]
  store i32 %1612, ptr %1611, align 4, !tbaa !5
  %1623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1624 = load i32, ptr @test_count, align 4, !tbaa !5
  %1625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call ptr @s2n_strerror(i32 noundef %1626, ptr noundef nonnull @.str.4) #11
  %1628 = load i32, ptr %1625, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror_debug(i32 noundef %1628, ptr noundef nonnull @.str.4) #11
  %1630 = load i32, ptr %1611, align 4, !tbaa !5
  %1631 = call ptr @strerror(i32 noundef %1630) #11
  %1632 = load i32, ptr %1611, align 4, !tbaa !5
  %1633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1623, ptr noundef nonnull %.str.5.sink1356, i32 noundef %1624, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1627, ptr noundef %1629, ptr noundef %1631, i32 noundef %1632) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1634:                                             ; preds = %1605
  %1635 = load i32, ptr @test_count, align 4, !tbaa !5
  %1636 = add nsw i32 %1635, 1
  store i32 %1636, ptr @test_count, align 4, !tbaa !5
  %1637 = call i32 %969(ptr noundef nonnull %1492, ptr noundef nonnull %12) #11
  %1638 = icmp eq i32 %1637, -1
  br i1 %1638, label %1639, label %1663

1639:                                             ; preds = %1634
  %1640 = tail call ptr @__errno_location() #12
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  %1642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1643 = call i32 @s2n_print_stacktrace(ptr noundef %1642) #11
  %1644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1645 = trunc nuw i8 %1644 to i1
  br i1 %1645, label %1646, label %1650

1646:                                             ; preds = %1639
  %1647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1648 = call i32 @fileno(ptr noundef %1647) #11
  %1649 = call i32 @isatty(i32 noundef %1648) #11
  %.not676 = icmp eq i32 %1649, 0
  br i1 %.not676, label %1650, label %1651

1650:                                             ; preds = %1646, %1639
  br label %1651

1651:                                             ; preds = %1646, %1650
  %.str.5.sink1367 = phi ptr [ @.str.5, %1650 ], [ @.str.2, %1646 ]
  store i32 %1641, ptr %1640, align 4, !tbaa !5
  %1652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1653 = load i32, ptr @test_count, align 4, !tbaa !5
  %1654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = call ptr @s2n_strerror(i32 noundef %1655, ptr noundef nonnull @.str.4) #11
  %1657 = load i32, ptr %1654, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror_debug(i32 noundef %1657, ptr noundef nonnull @.str.4) #11
  %1659 = load i32, ptr %1640, align 4, !tbaa !5
  %1660 = call ptr @strerror(i32 noundef %1659) #11
  %1661 = load i32, ptr %1640, align 4, !tbaa !5
  %1662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1652, ptr noundef nonnull %.str.5.sink1367, i32 noundef %1653, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1656, ptr noundef %1658, ptr noundef %1660, i32 noundef %1661) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1663:                                             ; preds = %1634
  %1664 = load i32, ptr @test_count, align 4, !tbaa !5
  %1665 = add nsw i32 %1664, 1
  store i32 %1665, ptr @test_count, align 4, !tbaa !5
  %1666 = getelementptr inbounds i8, ptr %1492, i64 218
  %1667 = load i8, ptr %1666, align 2, !tbaa !51
  %1668 = icmp eq i8 %1667, 0
  br i1 %1668, label %1693, label %1669

1669:                                             ; preds = %1663
  %1670 = tail call ptr @__errno_location() #12
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = call i32 @s2n_print_stacktrace(ptr noundef %1672) #11
  %1674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1675 = trunc nuw i8 %1674 to i1
  br i1 %1675, label %1676, label %1680

1676:                                             ; preds = %1669
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = call i32 @fileno(ptr noundef %1677) #11
  %1679 = call i32 @isatty(i32 noundef %1678) #11
  %.not553 = icmp eq i32 %1679, 0
  br i1 %.not553, label %1680, label %1681

1680:                                             ; preds = %1676, %1669
  br label %1681

1681:                                             ; preds = %1676, %1680
  %.str.5.sink1378 = phi ptr [ @.str.5, %1680 ], [ @.str.2, %1676 ]
  store i32 %1671, ptr %1670, align 4, !tbaa !5
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = load i32, ptr @test_count, align 4, !tbaa !5
  %1684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror(i32 noundef %1685, ptr noundef nonnull @.str.4) #11
  %1687 = load i32, ptr %1684, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror_debug(i32 noundef %1687, ptr noundef nonnull @.str.4) #11
  %1689 = load i32, ptr %1670, align 4, !tbaa !5
  %1690 = call ptr @strerror(i32 noundef %1689) #11
  %1691 = load i32, ptr %1670, align 4, !tbaa !5
  %1692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1682, ptr noundef nonnull %.str.5.sink1378, i32 noundef %1683, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1686, ptr noundef %1688, ptr noundef %1690, i32 noundef %1691) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1693:                                             ; preds = %1663
  %1694 = add nsw i32 %1664, 2
  store i32 %1694, ptr @test_count, align 4, !tbaa !5
  %1695 = getelementptr inbounds i8, ptr %1492, i64 219
  %1696 = load i8, ptr %1695, align 1, !tbaa !52
  %1697 = icmp eq i8 %1696, 33
  br i1 %1697, label %1722, label %1698

1698:                                             ; preds = %1693
  %1699 = tail call ptr @__errno_location() #12
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @s2n_print_stacktrace(ptr noundef %1701) #11
  %1703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1704 = trunc nuw i8 %1703 to i1
  br i1 %1704, label %1705, label %1709

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

1709:                                             ; preds = %1705, %1698
  br label %1710

1710:                                             ; preds = %1705, %1709
  %.str.5.sink1389 = phi ptr [ @.str.5, %1709 ], [ @.str.2, %1705 ]
  store i32 %1700, ptr %1699, align 4, !tbaa !5
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror(i32 noundef %1714, ptr noundef nonnull @.str.4) #11
  %1716 = load i32, ptr %1713, align 4, !tbaa !5
  %1717 = call ptr @s2n_strerror_debug(i32 noundef %1716, ptr noundef nonnull @.str.4) #11
  %1718 = load i32, ptr %1699, align 4, !tbaa !5
  %1719 = call ptr @strerror(i32 noundef %1718) #11
  %1720 = load i32, ptr %1699, align 4, !tbaa !5
  %1721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1711, ptr noundef nonnull %.str.5.sink1389, i32 noundef %1712, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %1715, ptr noundef %1717, ptr noundef %1719, i32 noundef %1720) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1722:                                             ; preds = %1693
  %1723 = add nsw i32 %1664, 3
  store i32 %1723, ptr @test_count, align 4, !tbaa !5
  %1724 = getelementptr inbounds i8, ptr %1492, i64 220
  %1725 = load i8, ptr %1724, align 4, !tbaa !53
  %1726 = icmp eq i8 %1725, 0
  br i1 %1726, label %1751, label %1727

1727:                                             ; preds = %1722
  %1728 = tail call ptr @__errno_location() #12
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = call i32 @s2n_print_stacktrace(ptr noundef %1730) #11
  %1732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1733 = trunc nuw i8 %1732 to i1
  br i1 %1733, label %1734, label %1738

1734:                                             ; preds = %1727
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = call i32 @fileno(ptr noundef %1735) #11
  %1737 = call i32 @isatty(i32 noundef %1736) #11
  %.not555 = icmp eq i32 %1737, 0
  br i1 %.not555, label %1738, label %1739

1738:                                             ; preds = %1734, %1727
  br label %1739

1739:                                             ; preds = %1734, %1738
  %.str.5.sink1400 = phi ptr [ @.str.5, %1738 ], [ @.str.2, %1734 ]
  store i32 %1729, ptr %1728, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror(i32 noundef %1743, ptr noundef nonnull @.str.4) #11
  %1745 = load i32, ptr %1742, align 4, !tbaa !5
  %1746 = call ptr @s2n_strerror_debug(i32 noundef %1745, ptr noundef nonnull @.str.4) #11
  %1747 = load i32, ptr %1728, align 4, !tbaa !5
  %1748 = call ptr @strerror(i32 noundef %1747) #11
  %1749 = load i32, ptr %1728, align 4, !tbaa !5
  %1750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef nonnull %.str.5.sink1400, i32 noundef %1741, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1744, ptr noundef %1746, ptr noundef %1748, i32 noundef %1749) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1751:                                             ; preds = %1722
  %1752 = add nsw i32 %1664, 4
  store i32 %1752, ptr @test_count, align 4, !tbaa !5
  %1753 = call i32 @s2n_connection_free(ptr noundef nonnull %1492) #11
  %1754 = icmp eq i32 %1753, -1
  br i1 %1754, label %1755, label %1779

1755:                                             ; preds = %1751
  %1756 = tail call ptr @__errno_location() #12
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = call i32 @s2n_print_stacktrace(ptr noundef %1758) #11
  %1760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1761 = trunc nuw i8 %1760 to i1
  br i1 %1761, label %1762, label %1766

1762:                                             ; preds = %1755
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = call i32 @fileno(ptr noundef %1763) #11
  %1765 = call i32 @isatty(i32 noundef %1764) #11
  %.not675 = icmp eq i32 %1765, 0
  br i1 %.not675, label %1766, label %1767

1766:                                             ; preds = %1762, %1755
  br label %1767

1767:                                             ; preds = %1762, %1766
  %.str.5.sink1411 = phi ptr [ @.str.5, %1766 ], [ @.str.2, %1762 ]
  store i32 %1757, ptr %1756, align 4, !tbaa !5
  %1768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1769 = load i32, ptr @test_count, align 4, !tbaa !5
  %1770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1771 = load i32, ptr %1770, align 4, !tbaa !5
  %1772 = call ptr @s2n_strerror(i32 noundef %1771, ptr noundef nonnull @.str.4) #11
  %1773 = load i32, ptr %1770, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror_debug(i32 noundef %1773, ptr noundef nonnull @.str.4) #11
  %1775 = load i32, ptr %1756, align 4, !tbaa !5
  %1776 = call ptr @strerror(i32 noundef %1775) #11
  %1777 = load i32, ptr %1756, align 4, !tbaa !5
  %1778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1768, ptr noundef nonnull %.str.5.sink1411, i32 noundef %1769, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %1772, ptr noundef %1774, ptr noundef %1776, i32 noundef %1777) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1779:                                             ; preds = %1751
  %1780 = load i32, ptr @test_count, align 4, !tbaa !5
  %1781 = add nsw i32 %1780, 1
  store i32 %1781, ptr @test_count, align 4, !tbaa !5
  %1782 = call i32 @s2n_stuffer_free(ptr noundef nonnull %12) #11
  %1783 = icmp eq i32 %1782, -1
  br i1 %1783, label %1784, label %1808

1784:                                             ; preds = %1779
  %1785 = tail call ptr @__errno_location() #12
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = call i32 @s2n_print_stacktrace(ptr noundef %1787) #11
  %1789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1790 = trunc nuw i8 %1789 to i1
  br i1 %1790, label %1791, label %1795

1791:                                             ; preds = %1784
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = call i32 @fileno(ptr noundef %1792) #11
  %1794 = call i32 @isatty(i32 noundef %1793) #11
  %.not674 = icmp eq i32 %1794, 0
  br i1 %.not674, label %1795, label %1796

1795:                                             ; preds = %1791, %1784
  br label %1796

1796:                                             ; preds = %1791, %1795
  %.str.5.sink1422 = phi ptr [ @.str.5, %1795 ], [ @.str.2, %1791 ]
  store i32 %1786, ptr %1785, align 4, !tbaa !5
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = load i32, ptr @test_count, align 4, !tbaa !5
  %1799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1800 = load i32, ptr %1799, align 4, !tbaa !5
  %1801 = call ptr @s2n_strerror(i32 noundef %1800, ptr noundef nonnull @.str.4) #11
  %1802 = load i32, ptr %1799, align 4, !tbaa !5
  %1803 = call ptr @s2n_strerror_debug(i32 noundef %1802, ptr noundef nonnull @.str.4) #11
  %1804 = load i32, ptr %1785, align 4, !tbaa !5
  %1805 = call ptr @strerror(i32 noundef %1804) #11
  %1806 = load i32, ptr %1785, align 4, !tbaa !5
  %1807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1797, ptr noundef nonnull %.str.5.sink1422, i32 noundef %1798, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1801, ptr noundef %1803, ptr noundef %1805, i32 noundef %1806) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1808:                                             ; preds = %1779
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #11
  %1809 = load i32, ptr @test_count, align 4, !tbaa !5
  %1810 = add nsw i32 %1809, 1
  store i32 %1810, ptr @test_count, align 4, !tbaa !5
  %1811 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1812 = icmp eq ptr %1811, null
  br i1 %1812, label %1813, label %1837

1813:                                             ; preds = %1808
  %1814 = tail call ptr @__errno_location() #12
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = call i32 @s2n_print_stacktrace(ptr noundef %1816) #11
  %1818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1819 = trunc nuw i8 %1818 to i1
  br i1 %1819, label %1820, label %1824

1820:                                             ; preds = %1813
  %1821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1822 = call i32 @fileno(ptr noundef %1821) #11
  %1823 = call i32 @isatty(i32 noundef %1822) #11
  %.not673 = icmp eq i32 %1823, 0
  br i1 %.not673, label %1824, label %1825

1824:                                             ; preds = %1820, %1813
  br label %1825

1825:                                             ; preds = %1820, %1824
  %.str.5.sink1433 = phi ptr [ @.str.5, %1824 ], [ @.str.2, %1820 ]
  store i32 %1815, ptr %1814, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror(i32 noundef %1829, ptr noundef nonnull @.str.4) #11
  %1831 = load i32, ptr %1828, align 4, !tbaa !5
  %1832 = call ptr @s2n_strerror_debug(i32 noundef %1831, ptr noundef nonnull @.str.4) #11
  %1833 = load i32, ptr %1814, align 4, !tbaa !5
  %1834 = call ptr @strerror(i32 noundef %1833) #11
  %1835 = load i32, ptr %1814, align 4, !tbaa !5
  %1836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1826, ptr noundef nonnull %.str.5.sink1433, i32 noundef %1827, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1830, ptr noundef %1832, ptr noundef %1834, i32 noundef %1835) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1837:                                             ; preds = %1808
  %1838 = load i32, ptr @test_count, align 4, !tbaa !5
  %1839 = add nsw i32 %1838, 1
  store i32 %1839, ptr @test_count, align 4, !tbaa !5
  %1840 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1811, ptr noundef nonnull %151) #11
  %1841 = icmp eq i32 %1840, -1
  br i1 %1841, label %1842, label %1866

1842:                                             ; preds = %1837
  %1843 = tail call ptr @__errno_location() #12
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = call i32 @s2n_print_stacktrace(ptr noundef %1845) #11
  %1847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1848 = trunc nuw i8 %1847 to i1
  br i1 %1848, label %1849, label %1853

1849:                                             ; preds = %1842
  %1850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1851 = call i32 @fileno(ptr noundef %1850) #11
  %1852 = call i32 @isatty(i32 noundef %1851) #11
  %.not672 = icmp eq i32 %1852, 0
  br i1 %.not672, label %1853, label %1854

1853:                                             ; preds = %1849, %1842
  br label %1854

1854:                                             ; preds = %1849, %1853
  %.str.5.sink1444 = phi ptr [ @.str.5, %1853 ], [ @.str.2, %1849 ]
  store i32 %1844, ptr %1843, align 4, !tbaa !5
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call ptr @s2n_strerror(i32 noundef %1858, ptr noundef nonnull @.str.4) #11
  %1860 = load i32, ptr %1857, align 4, !tbaa !5
  %1861 = call ptr @s2n_strerror_debug(i32 noundef %1860, ptr noundef nonnull @.str.4) #11
  %1862 = load i32, ptr %1843, align 4, !tbaa !5
  %1863 = call ptr @strerror(i32 noundef %1862) #11
  %1864 = load i32, ptr %1843, align 4, !tbaa !5
  %1865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1855, ptr noundef nonnull %.str.5.sink1444, i32 noundef %1856, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1859, ptr noundef %1861, ptr noundef %1863, i32 noundef %1864) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1866:                                             ; preds = %1837
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = add nsw i32 %1867, 1
  store i32 %1868, ptr @test_count, align 4, !tbaa !5
  %1869 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %13, i32 noundef 13) #11
  %1870 = icmp eq i32 %1869, -1
  br i1 %1870, label %1871, label %1895

1871:                                             ; preds = %1866
  %1872 = tail call ptr @__errno_location() #12
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = call i32 @s2n_print_stacktrace(ptr noundef %1874) #11
  %1876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1877 = trunc nuw i8 %1876 to i1
  br i1 %1877, label %1878, label %1882

1878:                                             ; preds = %1871
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = call i32 @fileno(ptr noundef %1879) #11
  %1881 = call i32 @isatty(i32 noundef %1880) #11
  %.not671 = icmp eq i32 %1881, 0
  br i1 %.not671, label %1882, label %1883

1882:                                             ; preds = %1878, %1871
  br label %1883

1883:                                             ; preds = %1878, %1882
  %.str.5.sink1455 = phi ptr [ @.str.5, %1882 ], [ @.str.2, %1878 ]
  store i32 %1873, ptr %1872, align 4, !tbaa !5
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = load i32, ptr @test_count, align 4, !tbaa !5
  %1886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1887 = load i32, ptr %1886, align 4, !tbaa !5
  %1888 = call ptr @s2n_strerror(i32 noundef %1887, ptr noundef nonnull @.str.4) #11
  %1889 = load i32, ptr %1886, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror_debug(i32 noundef %1889, ptr noundef nonnull @.str.4) #11
  %1891 = load i32, ptr %1872, align 4, !tbaa !5
  %1892 = call ptr @strerror(i32 noundef %1891) #11
  %1893 = load i32, ptr %1872, align 4, !tbaa !5
  %1894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1884, ptr noundef nonnull %.str.5.sink1455, i32 noundef %1885, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1888, ptr noundef %1890, ptr noundef %1892, i32 noundef %1893) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1895:                                             ; preds = %1866
  %1896 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %13, i8 noundef zeroext 12) #11
  %1897 = icmp sgt i32 %1896, -1
  br i1 %1897, label %.preheader741.preheader, label %.thread722

.preheader741.preheader:                          ; preds = %1895
  %1898 = load i16, ptr @__const.main.invalid_version_list, align 2, !tbaa !47
  %1899 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %13, i16 noundef zeroext %1898) #11
  %1900 = icmp sgt i32 %1899, -1
  br i1 %1900, label %.preheader741.1, label %.thread722

.preheader741.1:                                  ; preds = %.preheader741.preheader
  %1901 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list, i64 2), align 2, !tbaa !47
  %1902 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %13, i16 noundef zeroext %1901) #11
  %1903 = icmp sgt i32 %1902, -1
  br i1 %1903, label %.preheader741.2, label %.thread722

.preheader741.2:                                  ; preds = %.preheader741.1
  %1904 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list, i64 4), align 2, !tbaa !47
  %1905 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %13, i16 noundef zeroext %1904) #11
  %1906 = icmp sgt i32 %1905, -1
  br i1 %1906, label %.preheader741.3, label %.thread722

.preheader741.3:                                  ; preds = %.preheader741.2
  %1907 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list, i64 6), align 2, !tbaa !47
  %1908 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %13, i16 noundef zeroext %1907) #11
  %1909 = icmp sgt i32 %1908, -1
  br i1 %1909, label %.preheader741.4, label %.thread722

.preheader741.4:                                  ; preds = %.preheader741.3
  %1910 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list, i64 8), align 2, !tbaa !47
  %1911 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %13, i16 noundef zeroext %1910) #11
  %1912 = icmp sgt i32 %1911, -1
  br i1 %1912, label %.preheader741.5, label %.thread722

.preheader741.5:                                  ; preds = %.preheader741.4
  %1913 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list, i64 10), align 2, !tbaa !47
  %1914 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %13, i16 noundef zeroext %1913) #11
  %1915 = icmp sgt i32 %1914, -1
  br i1 %1915, label %1916, label %.thread722

1916:                                             ; preds = %.preheader741.5
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = call i32 %969(ptr noundef nonnull %1811, ptr noundef nonnull %13) #11
  %1920 = icmp eq i32 %1919, -1
  br i1 %1920, label %1945, label %1921

1921:                                             ; preds = %1916
  %1922 = tail call ptr @__errno_location() #12
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = call i32 @s2n_print_stacktrace(ptr noundef %1924) #11
  %1926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1927 = trunc nuw i8 %1926 to i1
  br i1 %1927, label %1928, label %1932

1928:                                             ; preds = %1921
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = call i32 @fileno(ptr noundef %1929) #11
  %1931 = call i32 @isatty(i32 noundef %1930) #11
  %.not556 = icmp eq i32 %1931, 0
  br i1 %.not556, label %1932, label %1933

1932:                                             ; preds = %1928, %1921
  br label %1933

1933:                                             ; preds = %1928, %1932
  %.str.5.sink1466 = phi ptr [ @.str.5, %1932 ], [ @.str.2, %1928 ]
  store i32 %1923, ptr %1922, align 4, !tbaa !5
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1937 = load i32, ptr %1936, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror(i32 noundef %1937, ptr noundef nonnull @.str.4) #11
  %1939 = load i32, ptr %1936, align 4, !tbaa !5
  %1940 = call ptr @s2n_strerror_debug(i32 noundef %1939, ptr noundef nonnull @.str.4) #11
  %1941 = load i32, ptr %1922, align 4, !tbaa !5
  %1942 = call ptr @strerror(i32 noundef %1941) #11
  %1943 = load i32, ptr %1922, align 4, !tbaa !5
  %1944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1934, ptr noundef nonnull %.str.5.sink1466, i32 noundef %1935, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1938, ptr noundef %1940, ptr noundef %1942, i32 noundef %1943) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1945:                                             ; preds = %1916
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = add nsw i32 %1946, 1
  store i32 %1947, ptr @test_count, align 4, !tbaa !5
  %1948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = icmp eq i32 %1949, 402653239
  br i1 %1950, label %1974, label %1951

1951:                                             ; preds = %1945
  %1952 = tail call ptr @__errno_location() #12
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = call i32 @s2n_print_stacktrace(ptr noundef %1954) #11
  %1956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1957 = trunc nuw i8 %1956 to i1
  br i1 %1957, label %1958, label %1962

1958:                                             ; preds = %1951
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = call i32 @fileno(ptr noundef %1959) #11
  %1961 = call i32 @isatty(i32 noundef %1960) #11
  %.not557 = icmp eq i32 %1961, 0
  br i1 %.not557, label %1962, label %1963

1962:                                             ; preds = %1958, %1951
  br label %1963

1963:                                             ; preds = %1958, %1962
  %.str.5.sink1477 = phi ptr [ @.str.5, %1962 ], [ @.str.2, %1958 ]
  store i32 %1953, ptr %1952, align 4, !tbaa !5
  %1964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1965 = load i32, ptr @test_count, align 4, !tbaa !5
  %1966 = load i32, ptr %1948, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror(i32 noundef %1966, ptr noundef nonnull @.str.4) #11
  %1968 = load i32, ptr %1948, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror_debug(i32 noundef %1968, ptr noundef nonnull @.str.4) #11
  %1970 = load i32, ptr %1952, align 4, !tbaa !5
  %1971 = call ptr @strerror(i32 noundef %1970) #11
  %1972 = load i32, ptr %1952, align 4, !tbaa !5
  %1973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1964, ptr noundef nonnull %.str.5.sink1477, i32 noundef %1965, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1967, ptr noundef %1969, ptr noundef %1971, i32 noundef %1972) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1974:                                             ; preds = %1945
  %1975 = add nsw i32 %1946, 2
  store i32 %1975, ptr @test_count, align 4, !tbaa !5
  %1976 = call ptr @s2n_strerror_debug(i32 noundef 402653239, ptr noundef nonnull @.str.4) #11
  %1977 = icmp eq ptr %1976, null
  br i1 %1977, label %1978, label %2001

1978:                                             ; preds = %1974
  %1979 = tail call ptr @__errno_location() #12
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1982 = call i32 @s2n_print_stacktrace(ptr noundef %1981) #11
  %1983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1984 = trunc nuw i8 %1983 to i1
  br i1 %1984, label %1985, label %1989

1985:                                             ; preds = %1978
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = call i32 @fileno(ptr noundef %1986) #11
  %1988 = call i32 @isatty(i32 noundef %1987) #11
  %.not670 = icmp eq i32 %1988, 0
  br i1 %.not670, label %1989, label %1990

1989:                                             ; preds = %1985, %1978
  br label %1990

1990:                                             ; preds = %1985, %1989
  %.str.5.sink1486 = phi ptr [ @.str.5, %1989 ], [ @.str.2, %1985 ]
  store i32 %1980, ptr %1979, align 4, !tbaa !5
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = load i32, ptr @test_count, align 4, !tbaa !5
  %1993 = load i32, ptr %1948, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror(i32 noundef %1993, ptr noundef nonnull @.str.4) #11
  %1995 = load i32, ptr %1948, align 4, !tbaa !5
  %1996 = call ptr @s2n_strerror_debug(i32 noundef %1995, ptr noundef nonnull @.str.4) #11
  %1997 = load i32, ptr %1979, align 4, !tbaa !5
  %1998 = call ptr @strerror(i32 noundef %1997) #11
  %1999 = load i32, ptr %1979, align 4, !tbaa !5
  %2000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1991, ptr noundef nonnull %.str.5.sink1486, i32 noundef %1992, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1994, ptr noundef %1996, ptr noundef %1998, i32 noundef %1999) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2001:                                             ; preds = %1974
  store i32 0, ptr %1948, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %2002 = tail call ptr @__errno_location() #12
  store i32 0, ptr %2002, align 4, !tbaa !5
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = add nsw i32 %2003, 1
  store i32 %2004, ptr @test_count, align 4, !tbaa !5
  %2005 = call i32 @s2n_connection_free(ptr noundef nonnull %1811) #11
  %2006 = icmp eq i32 %2005, -1
  br i1 %2006, label %2007, label %2029

2007:                                             ; preds = %2001
  %2008 = load i32, ptr %2002, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = call i32 @s2n_print_stacktrace(ptr noundef %2009) #11
  %2011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2012 = trunc nuw i8 %2011 to i1
  br i1 %2012, label %2013, label %2017

2013:                                             ; preds = %2007
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = call i32 @fileno(ptr noundef %2014) #11
  %2016 = call i32 @isatty(i32 noundef %2015) #11
  %.not669 = icmp eq i32 %2016, 0
  br i1 %.not669, label %2017, label %2018

2017:                                             ; preds = %2013, %2007
  br label %2018

2018:                                             ; preds = %2013, %2017
  %.str.5.sink1495 = phi ptr [ @.str.5, %2017 ], [ @.str.2, %2013 ]
  store i32 %2008, ptr %2002, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %2021 = load i32, ptr %1948, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror(i32 noundef %2021, ptr noundef nonnull @.str.4) #11
  %2023 = load i32, ptr %1948, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef nonnull @.str.4) #11
  %2025 = load i32, ptr %2002, align 4, !tbaa !5
  %2026 = call ptr @strerror(i32 noundef %2025) #11
  %2027 = load i32, ptr %2002, align 4, !tbaa !5
  %2028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2019, ptr noundef nonnull %.str.5.sink1495, i32 noundef %2020, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %2022, ptr noundef %2024, ptr noundef %2026, i32 noundef %2027) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2029:                                             ; preds = %2001
  %2030 = load i32, ptr @test_count, align 4, !tbaa !5
  %2031 = add nsw i32 %2030, 1
  store i32 %2031, ptr @test_count, align 4, !tbaa !5
  %2032 = call i32 @s2n_stuffer_free(ptr noundef nonnull %13) #11
  %2033 = icmp eq i32 %2032, -1
  br i1 %2033, label %2034, label %2056

2034:                                             ; preds = %2029
  %2035 = load i32, ptr %2002, align 4, !tbaa !5
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = call i32 @s2n_print_stacktrace(ptr noundef %2036) #11
  %2038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2039 = trunc nuw i8 %2038 to i1
  br i1 %2039, label %2040, label %2044

2040:                                             ; preds = %2034
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = call i32 @fileno(ptr noundef %2041) #11
  %2043 = call i32 @isatty(i32 noundef %2042) #11
  %.not668 = icmp eq i32 %2043, 0
  br i1 %.not668, label %2044, label %2045

2044:                                             ; preds = %2040, %2034
  br label %2045

2045:                                             ; preds = %2040, %2044
  %.str.5.sink1504 = phi ptr [ @.str.5, %2044 ], [ @.str.2, %2040 ]
  store i32 %2035, ptr %2002, align 4, !tbaa !5
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = load i32, ptr @test_count, align 4, !tbaa !5
  %2048 = load i32, ptr %1948, align 4, !tbaa !5
  %2049 = call ptr @s2n_strerror(i32 noundef %2048, ptr noundef nonnull @.str.4) #11
  %2050 = load i32, ptr %1948, align 4, !tbaa !5
  %2051 = call ptr @s2n_strerror_debug(i32 noundef %2050, ptr noundef nonnull @.str.4) #11
  %2052 = load i32, ptr %2002, align 4, !tbaa !5
  %2053 = call ptr @strerror(i32 noundef %2052) #11
  %2054 = load i32, ptr %2002, align 4, !tbaa !5
  %2055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2046, ptr noundef nonnull %.str.5.sink1504, i32 noundef %2047, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %2049, ptr noundef %2051, ptr noundef %2053, i32 noundef %2054) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.thread722:                                       ; preds = %.preheader741.preheader, %.preheader741.1, %.preheader741.2, %.preheader741.3, %.preheader741.4, %.preheader741.5, %1895
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #11
  br label %5089

2056:                                             ; preds = %2029
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #11
  %2057 = load i32, ptr @test_count, align 4, !tbaa !5
  %2058 = add nsw i32 %2057, 1
  store i32 %2058, ptr @test_count, align 4, !tbaa !5
  %2059 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %2060 = icmp eq ptr %2059, null
  br i1 %2060, label %2061, label %2083

2061:                                             ; preds = %2056
  %2062 = load i32, ptr %2002, align 4, !tbaa !5
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2064 = call i32 @s2n_print_stacktrace(ptr noundef %2063) #11
  %2065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2066 = trunc nuw i8 %2065 to i1
  br i1 %2066, label %2067, label %2071

2067:                                             ; preds = %2061
  %2068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2069 = call i32 @fileno(ptr noundef %2068) #11
  %2070 = call i32 @isatty(i32 noundef %2069) #11
  %.not667 = icmp eq i32 %2070, 0
  br i1 %.not667, label %2071, label %2072

2071:                                             ; preds = %2067, %2061
  br label %2072

2072:                                             ; preds = %2067, %2071
  %.str.5.sink1513 = phi ptr [ @.str.5, %2071 ], [ @.str.2, %2067 ]
  store i32 %2062, ptr %2002, align 4, !tbaa !5
  %2073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2074 = load i32, ptr @test_count, align 4, !tbaa !5
  %2075 = load i32, ptr %1948, align 4, !tbaa !5
  %2076 = call ptr @s2n_strerror(i32 noundef %2075, ptr noundef nonnull @.str.4) #11
  %2077 = load i32, ptr %1948, align 4, !tbaa !5
  %2078 = call ptr @s2n_strerror_debug(i32 noundef %2077, ptr noundef nonnull @.str.4) #11
  %2079 = load i32, ptr %2002, align 4, !tbaa !5
  %2080 = call ptr @strerror(i32 noundef %2079) #11
  %2081 = load i32, ptr %2002, align 4, !tbaa !5
  %2082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2073, ptr noundef nonnull %.str.5.sink1513, i32 noundef %2074, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %2076, ptr noundef %2078, ptr noundef %2080, i32 noundef %2081) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2083:                                             ; preds = %2056
  %2084 = load i32, ptr @test_count, align 4, !tbaa !5
  %2085 = add nsw i32 %2084, 1
  store i32 %2085, ptr @test_count, align 4, !tbaa !5
  %2086 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2059, ptr noundef nonnull %151) #11
  %2087 = icmp eq i32 %2086, -1
  br i1 %2087, label %2088, label %2110

2088:                                             ; preds = %2083
  %2089 = load i32, ptr %2002, align 4, !tbaa !5
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = call i32 @s2n_print_stacktrace(ptr noundef %2090) #11
  %2092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2093 = trunc nuw i8 %2092 to i1
  br i1 %2093, label %2094, label %2098

2094:                                             ; preds = %2088
  %2095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2096 = call i32 @fileno(ptr noundef %2095) #11
  %2097 = call i32 @isatty(i32 noundef %2096) #11
  %.not666 = icmp eq i32 %2097, 0
  br i1 %.not666, label %2098, label %2099

2098:                                             ; preds = %2094, %2088
  br label %2099

2099:                                             ; preds = %2094, %2098
  %.str.5.sink1522 = phi ptr [ @.str.5, %2098 ], [ @.str.2, %2094 ]
  store i32 %2089, ptr %2002, align 4, !tbaa !5
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = load i32, ptr %1948, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror(i32 noundef %2102, ptr noundef nonnull @.str.4) #11
  %2104 = load i32, ptr %1948, align 4, !tbaa !5
  %2105 = call ptr @s2n_strerror_debug(i32 noundef %2104, ptr noundef nonnull @.str.4) #11
  %2106 = load i32, ptr %2002, align 4, !tbaa !5
  %2107 = call ptr @strerror(i32 noundef %2106) #11
  %2108 = load i32, ptr %2002, align 4, !tbaa !5
  %2109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2100, ptr noundef nonnull %.str.5.sink1522, i32 noundef %2101, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %2103, ptr noundef %2105, ptr noundef %2107, i32 noundef %2108) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2110:                                             ; preds = %2083
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %14, i8 0, i64 40, i1 false)
  %2111 = load i32, ptr @test_count, align 4, !tbaa !5
  %2112 = add nsw i32 %2111, 1
  store i32 %2112, ptr @test_count, align 4, !tbaa !5
  %2113 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %14, i32 noundef 35) #11
  %2114 = icmp eq i32 %2113, -1
  br i1 %2114, label %2115, label %2137

2115:                                             ; preds = %2110
  %2116 = load i32, ptr %2002, align 4, !tbaa !5
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = call i32 @s2n_print_stacktrace(ptr noundef %2117) #11
  %2119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2120 = trunc nuw i8 %2119 to i1
  br i1 %2120, label %2121, label %2125

2121:                                             ; preds = %2115
  %2122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2123 = call i32 @fileno(ptr noundef %2122) #11
  %2124 = call i32 @isatty(i32 noundef %2123) #11
  %.not665 = icmp eq i32 %2124, 0
  br i1 %.not665, label %2125, label %2126

2125:                                             ; preds = %2121, %2115
  br label %2126

2126:                                             ; preds = %2121, %2125
  %.str.5.sink1531 = phi ptr [ @.str.5, %2125 ], [ @.str.2, %2121 ]
  store i32 %2116, ptr %2002, align 4, !tbaa !5
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = load i32, ptr @test_count, align 4, !tbaa !5
  %2129 = load i32, ptr %1948, align 4, !tbaa !5
  %2130 = call ptr @s2n_strerror(i32 noundef %2129, ptr noundef nonnull @.str.4) #11
  %2131 = load i32, ptr %1948, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror_debug(i32 noundef %2131, ptr noundef nonnull @.str.4) #11
  %2133 = load i32, ptr %2002, align 4, !tbaa !5
  %2134 = call ptr @strerror(i32 noundef %2133) #11
  %2135 = load i32, ptr %2002, align 4, !tbaa !5
  %2136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2127, ptr noundef nonnull %.str.5.sink1531, i32 noundef %2128, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 231, ptr noundef %2130, ptr noundef %2132, ptr noundef %2134, i32 noundef %2135) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2137:                                             ; preds = %2110
  %2138 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %14, i8 noundef zeroext 34) #11
  %2139 = icmp sgt i32 %2138, -1
  br i1 %2139, label %.preheader740.preheader, label %.thread729

.preheader740.preheader:                          ; preds = %2137
  %2140 = load i16, ptr @__const.main.grease_version_list, align 16, !tbaa !47
  %2141 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2140) #11
  %2142 = icmp sgt i32 %2141, -1
  br i1 %2142, label %.preheader740.1, label %.thread729

.preheader740.1:                                  ; preds = %.preheader740.preheader
  %2143 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 2), align 2, !tbaa !47
  %2144 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2143) #11
  %2145 = icmp sgt i32 %2144, -1
  br i1 %2145, label %.preheader740.2, label %.thread729

.preheader740.2:                                  ; preds = %.preheader740.1
  %2146 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 4), align 4, !tbaa !47
  %2147 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2146) #11
  %2148 = icmp sgt i32 %2147, -1
  br i1 %2148, label %.preheader740.3, label %.thread729

.preheader740.3:                                  ; preds = %.preheader740.2
  %2149 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 6), align 2, !tbaa !47
  %2150 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2149) #11
  %2151 = icmp sgt i32 %2150, -1
  br i1 %2151, label %.preheader740.4, label %.thread729

.preheader740.4:                                  ; preds = %.preheader740.3
  %2152 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 8), align 8, !tbaa !47
  %2153 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2152) #11
  %2154 = icmp sgt i32 %2153, -1
  br i1 %2154, label %.preheader740.5, label %.thread729

.preheader740.5:                                  ; preds = %.preheader740.4
  %2155 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 10), align 2, !tbaa !47
  %2156 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2155) #11
  %2157 = icmp sgt i32 %2156, -1
  br i1 %2157, label %.preheader740.6, label %.thread729

.preheader740.6:                                  ; preds = %.preheader740.5
  %2158 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 12), align 4, !tbaa !47
  %2159 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2158) #11
  %2160 = icmp sgt i32 %2159, -1
  br i1 %2160, label %.preheader740.7, label %.thread729

.preheader740.7:                                  ; preds = %.preheader740.6
  %2161 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 14), align 2, !tbaa !47
  %2162 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2161) #11
  %2163 = icmp sgt i32 %2162, -1
  br i1 %2163, label %.preheader740.8, label %.thread729

.preheader740.8:                                  ; preds = %.preheader740.7
  %2164 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 16), align 16, !tbaa !47
  %2165 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2164) #11
  %2166 = icmp sgt i32 %2165, -1
  br i1 %2166, label %.preheader740.9, label %.thread729

.preheader740.9:                                  ; preds = %.preheader740.8
  %2167 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 18), align 2, !tbaa !47
  %2168 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2167) #11
  %2169 = icmp sgt i32 %2168, -1
  br i1 %2169, label %.preheader740.10, label %.thread729

.preheader740.10:                                 ; preds = %.preheader740.9
  %2170 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 20), align 4, !tbaa !47
  %2171 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2170) #11
  %2172 = icmp sgt i32 %2171, -1
  br i1 %2172, label %.preheader740.11, label %.thread729

.preheader740.11:                                 ; preds = %.preheader740.10
  %2173 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 22), align 2, !tbaa !47
  %2174 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2173) #11
  %2175 = icmp sgt i32 %2174, -1
  br i1 %2175, label %.preheader740.12, label %.thread729

.preheader740.12:                                 ; preds = %.preheader740.11
  %2176 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 24), align 8, !tbaa !47
  %2177 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2176) #11
  %2178 = icmp sgt i32 %2177, -1
  br i1 %2178, label %.preheader740.13, label %.thread729

.preheader740.13:                                 ; preds = %.preheader740.12
  %2179 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 26), align 2, !tbaa !47
  %2180 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2179) #11
  %2181 = icmp sgt i32 %2180, -1
  br i1 %2181, label %.preheader740.14, label %.thread729

.preheader740.14:                                 ; preds = %.preheader740.13
  %2182 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 28), align 4, !tbaa !47
  %2183 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2182) #11
  %2184 = icmp sgt i32 %2183, -1
  br i1 %2184, label %.preheader740.15, label %.thread729

.preheader740.15:                                 ; preds = %.preheader740.14
  %2185 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 30), align 2, !tbaa !47
  %2186 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2185) #11
  %2187 = icmp sgt i32 %2186, -1
  br i1 %2187, label %.preheader740.16, label %.thread729

.preheader740.16:                                 ; preds = %.preheader740.15
  %2188 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.grease_version_list, i64 32), align 16, !tbaa !47
  %2189 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %14, i16 noundef zeroext %2188) #11
  %2190 = icmp sgt i32 %2189, -1
  br i1 %2190, label %2191, label %.thread729

2191:                                             ; preds = %.preheader740.16
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = add nsw i32 %2192, 1
  store i32 %2193, ptr @test_count, align 4, !tbaa !5
  %2194 = call i32 %969(ptr noundef nonnull %2059, ptr noundef nonnull %14) #11
  %2195 = icmp eq i32 %2194, -1
  br i1 %2195, label %2196, label %2218

2196:                                             ; preds = %2191
  %2197 = load i32, ptr %2002, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = call i32 @s2n_print_stacktrace(ptr noundef %2198) #11
  %2200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2201 = trunc nuw i8 %2200 to i1
  br i1 %2201, label %2202, label %2206

2202:                                             ; preds = %2196
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = call i32 @fileno(ptr noundef %2203) #11
  %2205 = call i32 @isatty(i32 noundef %2204) #11
  %.not664 = icmp eq i32 %2205, 0
  br i1 %.not664, label %2206, label %2207

2206:                                             ; preds = %2202, %2196
  br label %2207

2207:                                             ; preds = %2202, %2206
  %.str.5.sink1540 = phi ptr [ @.str.5, %2206 ], [ @.str.2, %2202 ]
  store i32 %2197, ptr %2002, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = load i32, ptr %1948, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror(i32 noundef %2210, ptr noundef nonnull @.str.4) #11
  %2212 = load i32, ptr %1948, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror_debug(i32 noundef %2212, ptr noundef nonnull @.str.4) #11
  %2214 = load i32, ptr %2002, align 4, !tbaa !5
  %2215 = call ptr @strerror(i32 noundef %2214) #11
  %2216 = load i32, ptr %2002, align 4, !tbaa !5
  %2217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2208, ptr noundef nonnull %.str.5.sink1540, i32 noundef %2209, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %2211, ptr noundef %2213, ptr noundef %2215, i32 noundef %2216) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2218:                                             ; preds = %2191
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = add nsw i32 %2219, 1
  store i32 %2220, ptr @test_count, align 4, !tbaa !5
  %2221 = getelementptr inbounds i8, ptr %2059, i64 218
  %2222 = load i8, ptr %2221, align 2, !tbaa !51
  %2223 = icmp eq i8 %2222, 34
  br i1 %2223, label %2246, label %2224

2224:                                             ; preds = %2218
  %2225 = load i32, ptr %2002, align 4, !tbaa !5
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = call i32 @s2n_print_stacktrace(ptr noundef %2226) #11
  %2228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2229 = trunc nuw i8 %2228 to i1
  br i1 %2229, label %2230, label %2234

2230:                                             ; preds = %2224
  %2231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2232 = call i32 @fileno(ptr noundef %2231) #11
  %2233 = call i32 @isatty(i32 noundef %2232) #11
  %.not558 = icmp eq i32 %2233, 0
  br i1 %.not558, label %2234, label %2235

2234:                                             ; preds = %2230, %2224
  br label %2235

2235:                                             ; preds = %2230, %2234
  %.str.5.sink1549 = phi ptr [ @.str.5, %2234 ], [ @.str.2, %2230 ]
  store i32 %2225, ptr %2002, align 4, !tbaa !5
  %2236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2237 = load i32, ptr @test_count, align 4, !tbaa !5
  %2238 = load i32, ptr %1948, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror(i32 noundef %2238, ptr noundef nonnull @.str.4) #11
  %2240 = load i32, ptr %1948, align 4, !tbaa !5
  %2241 = call ptr @s2n_strerror_debug(i32 noundef %2240, ptr noundef nonnull @.str.4) #11
  %2242 = load i32, ptr %2002, align 4, !tbaa !5
  %2243 = call ptr @strerror(i32 noundef %2242) #11
  %2244 = load i32, ptr %2002, align 4, !tbaa !5
  %2245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2236, ptr noundef nonnull %.str.5.sink1549, i32 noundef %2237, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %2239, ptr noundef %2241, ptr noundef %2243, i32 noundef %2244) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2246:                                             ; preds = %2218
  %2247 = add nsw i32 %2219, 2
  store i32 %2247, ptr @test_count, align 4, !tbaa !5
  %2248 = getelementptr inbounds i8, ptr %2059, i64 219
  %2249 = load i8, ptr %2248, align 1, !tbaa !52
  %2250 = icmp eq i8 %2249, 34
  br i1 %2250, label %2273, label %2251

2251:                                             ; preds = %2246
  %2252 = load i32, ptr %2002, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @s2n_print_stacktrace(ptr noundef %2253) #11
  %2255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2256 = trunc nuw i8 %2255 to i1
  br i1 %2256, label %2257, label %2261

2257:                                             ; preds = %2251
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @fileno(ptr noundef %2258) #11
  %2260 = call i32 @isatty(i32 noundef %2259) #11
  %.not559 = icmp eq i32 %2260, 0
  br i1 %.not559, label %2261, label %2262

2261:                                             ; preds = %2257, %2251
  br label %2262

2262:                                             ; preds = %2257, %2261
  %.str.5.sink1558 = phi ptr [ @.str.5, %2261 ], [ @.str.2, %2257 ]
  store i32 %2252, ptr %2002, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %2265 = load i32, ptr %1948, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef nonnull @.str.4) #11
  %2267 = load i32, ptr %1948, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef nonnull @.str.4) #11
  %2269 = load i32, ptr %2002, align 4, !tbaa !5
  %2270 = call ptr @strerror(i32 noundef %2269) #11
  %2271 = load i32, ptr %2002, align 4, !tbaa !5
  %2272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef nonnull %.str.5.sink1558, i32 noundef %2264, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %2266, ptr noundef %2268, ptr noundef %2270, i32 noundef %2271) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2273:                                             ; preds = %2246
  %2274 = add nsw i32 %2219, 3
  store i32 %2274, ptr @test_count, align 4, !tbaa !5
  %2275 = getelementptr inbounds i8, ptr %2059, i64 220
  %2276 = load i8, ptr %2275, align 4, !tbaa !53
  %2277 = icmp eq i8 %2276, 34
  br i1 %2277, label %2300, label %2278

2278:                                             ; preds = %2273
  %2279 = load i32, ptr %2002, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @s2n_print_stacktrace(ptr noundef %2280) #11
  %2282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2283 = trunc nuw i8 %2282 to i1
  br i1 %2283, label %2284, label %2288

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

2288:                                             ; preds = %2284, %2278
  br label %2289

2289:                                             ; preds = %2284, %2288
  %.str.5.sink1567 = phi ptr [ @.str.5, %2288 ], [ @.str.2, %2284 ]
  store i32 %2279, ptr %2002, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = load i32, ptr %1948, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror(i32 noundef %2292, ptr noundef nonnull @.str.4) #11
  %2294 = load i32, ptr %1948, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef nonnull @.str.4) #11
  %2296 = load i32, ptr %2002, align 4, !tbaa !5
  %2297 = call ptr @strerror(i32 noundef %2296) #11
  %2298 = load i32, ptr %2002, align 4, !tbaa !5
  %2299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef nonnull %.str.5.sink1567, i32 noundef %2291, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %2293, ptr noundef %2295, ptr noundef %2297, i32 noundef %2298) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2300:                                             ; preds = %2273
  %2301 = add nsw i32 %2219, 4
  store i32 %2301, ptr @test_count, align 4, !tbaa !5
  %2302 = call i32 @s2n_connection_free(ptr noundef nonnull %2059) #11
  %2303 = icmp eq i32 %2302, -1
  br i1 %2303, label %2304, label %2326

2304:                                             ; preds = %2300
  %2305 = load i32, ptr %2002, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = call i32 @s2n_print_stacktrace(ptr noundef %2306) #11
  %2308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2309 = trunc nuw i8 %2308 to i1
  br i1 %2309, label %2310, label %2314

2310:                                             ; preds = %2304
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = call i32 @fileno(ptr noundef %2311) #11
  %2313 = call i32 @isatty(i32 noundef %2312) #11
  %.not663 = icmp eq i32 %2313, 0
  br i1 %.not663, label %2314, label %2315

2314:                                             ; preds = %2310, %2304
  br label %2315

2315:                                             ; preds = %2310, %2314
  %.str.5.sink1576 = phi ptr [ @.str.5, %2314 ], [ @.str.2, %2310 ]
  store i32 %2305, ptr %2002, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = load i32, ptr %1948, align 4, !tbaa !5
  %2319 = call ptr @s2n_strerror(i32 noundef %2318, ptr noundef nonnull @.str.4) #11
  %2320 = load i32, ptr %1948, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror_debug(i32 noundef %2320, ptr noundef nonnull @.str.4) #11
  %2322 = load i32, ptr %2002, align 4, !tbaa !5
  %2323 = call ptr @strerror(i32 noundef %2322) #11
  %2324 = load i32, ptr %2002, align 4, !tbaa !5
  %2325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2316, ptr noundef nonnull %.str.5.sink1576, i32 noundef %2317, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2319, ptr noundef %2321, ptr noundef %2323, i32 noundef %2324) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2326:                                             ; preds = %2300
  %2327 = load i32, ptr @test_count, align 4, !tbaa !5
  %2328 = add nsw i32 %2327, 1
  store i32 %2328, ptr @test_count, align 4, !tbaa !5
  %2329 = call i32 @s2n_stuffer_free(ptr noundef nonnull %14) #11
  %2330 = icmp eq i32 %2329, -1
  br i1 %2330, label %2331, label %2353

2331:                                             ; preds = %2326
  %2332 = load i32, ptr %2002, align 4, !tbaa !5
  %2333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2334 = call i32 @s2n_print_stacktrace(ptr noundef %2333) #11
  %2335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2336 = trunc nuw i8 %2335 to i1
  br i1 %2336, label %2337, label %2341

2337:                                             ; preds = %2331
  %2338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2339 = call i32 @fileno(ptr noundef %2338) #11
  %2340 = call i32 @isatty(i32 noundef %2339) #11
  %.not662 = icmp eq i32 %2340, 0
  br i1 %.not662, label %2341, label %2342

2341:                                             ; preds = %2337, %2331
  br label %2342

2342:                                             ; preds = %2337, %2341
  %.str.5.sink1585 = phi ptr [ @.str.5, %2341 ], [ @.str.2, %2337 ]
  store i32 %2332, ptr %2002, align 4, !tbaa !5
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = load i32, ptr @test_count, align 4, !tbaa !5
  %2345 = load i32, ptr %1948, align 4, !tbaa !5
  %2346 = call ptr @s2n_strerror(i32 noundef %2345, ptr noundef nonnull @.str.4) #11
  %2347 = load i32, ptr %1948, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror_debug(i32 noundef %2347, ptr noundef nonnull @.str.4) #11
  %2349 = load i32, ptr %2002, align 4, !tbaa !5
  %2350 = call ptr @strerror(i32 noundef %2349) #11
  %2351 = load i32, ptr %2002, align 4, !tbaa !5
  %2352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2343, ptr noundef nonnull %.str.5.sink1585, i32 noundef %2344, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %2346, ptr noundef %2348, ptr noundef %2350, i32 noundef %2351) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.thread729:                                       ; preds = %.preheader740.preheader, %.preheader740.1, %.preheader740.2, %.preheader740.3, %.preheader740.4, %.preheader740.5, %.preheader740.6, %.preheader740.7, %.preheader740.8, %.preheader740.9, %.preheader740.10, %.preheader740.11, %.preheader740.12, %.preheader740.13, %.preheader740.14, %.preheader740.15, %.preheader740.16, %2137
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #11
  br label %5089

2353:                                             ; preds = %2326
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #11
  %2354 = load i32, ptr @test_count, align 4, !tbaa !5
  %2355 = add nsw i32 %2354, 1
  store i32 %2355, ptr @test_count, align 4, !tbaa !5
  %2356 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %2357 = icmp eq ptr %2356, null
  br i1 %2357, label %2358, label %2380

2358:                                             ; preds = %2353
  %2359 = load i32, ptr %2002, align 4, !tbaa !5
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = call i32 @s2n_print_stacktrace(ptr noundef %2360) #11
  %2362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2363 = trunc nuw i8 %2362 to i1
  br i1 %2363, label %2364, label %2368

2364:                                             ; preds = %2358
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2366 = call i32 @fileno(ptr noundef %2365) #11
  %2367 = call i32 @isatty(i32 noundef %2366) #11
  %.not661 = icmp eq i32 %2367, 0
  br i1 %.not661, label %2368, label %2369

2368:                                             ; preds = %2364, %2358
  br label %2369

2369:                                             ; preds = %2364, %2368
  %.str.5.sink1594 = phi ptr [ @.str.5, %2368 ], [ @.str.2, %2364 ]
  store i32 %2359, ptr %2002, align 4, !tbaa !5
  %2370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2371 = load i32, ptr @test_count, align 4, !tbaa !5
  %2372 = load i32, ptr %1948, align 4, !tbaa !5
  %2373 = call ptr @s2n_strerror(i32 noundef %2372, ptr noundef nonnull @.str.4) #11
  %2374 = load i32, ptr %1948, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2374, ptr noundef nonnull @.str.4) #11
  %2376 = load i32, ptr %2002, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #11
  %2378 = load i32, ptr %2002, align 4, !tbaa !5
  %2379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2370, ptr noundef nonnull %.str.5.sink1594, i32 noundef %2371, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %2373, ptr noundef %2375, ptr noundef %2377, i32 noundef %2378) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2380:                                             ; preds = %2353
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = add nsw i32 %2381, 1
  store i32 %2382, ptr @test_count, align 4, !tbaa !5
  %2383 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2356, ptr noundef nonnull %151) #11
  %2384 = icmp eq i32 %2383, -1
  br i1 %2384, label %2385, label %2407

2385:                                             ; preds = %2380
  %2386 = load i32, ptr %2002, align 4, !tbaa !5
  %2387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2388 = call i32 @s2n_print_stacktrace(ptr noundef %2387) #11
  %2389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2390 = trunc nuw i8 %2389 to i1
  br i1 %2390, label %2391, label %2395

2391:                                             ; preds = %2385
  %2392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2393 = call i32 @fileno(ptr noundef %2392) #11
  %2394 = call i32 @isatty(i32 noundef %2393) #11
  %.not660 = icmp eq i32 %2394, 0
  br i1 %.not660, label %2395, label %2396

2395:                                             ; preds = %2391, %2385
  br label %2396

2396:                                             ; preds = %2391, %2395
  %.str.5.sink1603 = phi ptr [ @.str.5, %2395 ], [ @.str.2, %2391 ]
  store i32 %2386, ptr %2002, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = load i32, ptr %1948, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror(i32 noundef %2399, ptr noundef nonnull @.str.4) #11
  %2401 = load i32, ptr %1948, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror_debug(i32 noundef %2401, ptr noundef nonnull @.str.4) #11
  %2403 = load i32, ptr %2002, align 4, !tbaa !5
  %2404 = call ptr @strerror(i32 noundef %2403) #11
  %2405 = load i32, ptr %2002, align 4, !tbaa !5
  %2406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef nonnull %.str.5.sink1603, i32 noundef %2398, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %2400, ptr noundef %2402, ptr noundef %2404, i32 noundef %2405) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2407:                                             ; preds = %2380
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = add nsw i32 %2408, 1
  store i32 %2409, ptr @test_count, align 4, !tbaa !5
  %2410 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %15, i32 noundef 17) #11
  %2411 = icmp eq i32 %2410, -1
  br i1 %2411, label %2412, label %2434

2412:                                             ; preds = %2407
  %2413 = load i32, ptr %2002, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = call i32 @s2n_print_stacktrace(ptr noundef %2414) #11
  %2416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2417 = trunc nuw i8 %2416 to i1
  br i1 %2417, label %2418, label %2422

2418:                                             ; preds = %2412
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = call i32 @fileno(ptr noundef %2419) #11
  %2421 = call i32 @isatty(i32 noundef %2420) #11
  %.not659 = icmp eq i32 %2421, 0
  br i1 %.not659, label %2422, label %2423

2422:                                             ; preds = %2418, %2412
  br label %2423

2423:                                             ; preds = %2418, %2422
  %.str.5.sink1612 = phi ptr [ @.str.5, %2422 ], [ @.str.2, %2418 ]
  store i32 %2413, ptr %2002, align 4, !tbaa !5
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = load i32, ptr %1948, align 4, !tbaa !5
  %2427 = call ptr @s2n_strerror(i32 noundef %2426, ptr noundef nonnull @.str.4) #11
  %2428 = load i32, ptr %1948, align 4, !tbaa !5
  %2429 = call ptr @s2n_strerror_debug(i32 noundef %2428, ptr noundef nonnull @.str.4) #11
  %2430 = load i32, ptr %2002, align 4, !tbaa !5
  %2431 = call ptr @strerror(i32 noundef %2430) #11
  %2432 = load i32, ptr %2002, align 4, !tbaa !5
  %2433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2424, ptr noundef nonnull %.str.5.sink1612, i32 noundef %2425, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %2427, ptr noundef %2429, ptr noundef %2431, i32 noundef %2432) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2434:                                             ; preds = %2407
  %2435 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %15, i8 noundef zeroext 16) #11
  %2436 = icmp sgt i32 %2435, -1
  br i1 %2436, label %.preheader739.preheader, label %.thread736

.preheader739.preheader:                          ; preds = %2434
  %2437 = load i16, ptr @__const.main.invalid_version_list.52, align 16, !tbaa !47
  %2438 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %15, i16 noundef zeroext %2437) #11
  %2439 = icmp sgt i32 %2438, -1
  br i1 %2439, label %.preheader739.1, label %.thread736

.preheader739.1:                                  ; preds = %.preheader739.preheader
  %2440 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list.52, i64 2), align 2, !tbaa !47
  %2441 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %15, i16 noundef zeroext %2440) #11
  %2442 = icmp sgt i32 %2441, -1
  br i1 %2442, label %.preheader739.2, label %.thread736

.preheader739.2:                                  ; preds = %.preheader739.1
  %2443 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list.52, i64 4), align 4, !tbaa !47
  %2444 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %15, i16 noundef zeroext %2443) #11
  %2445 = icmp sgt i32 %2444, -1
  br i1 %2445, label %.preheader739.3, label %.thread736

.preheader739.3:                                  ; preds = %.preheader739.2
  %2446 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list.52, i64 6), align 2, !tbaa !47
  %2447 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %15, i16 noundef zeroext %2446) #11
  %2448 = icmp sgt i32 %2447, -1
  br i1 %2448, label %.preheader739.4, label %.thread736

.preheader739.4:                                  ; preds = %.preheader739.3
  %2449 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list.52, i64 8), align 8, !tbaa !47
  %2450 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %15, i16 noundef zeroext %2449) #11
  %2451 = icmp sgt i32 %2450, -1
  br i1 %2451, label %.preheader739.5, label %.thread736

.preheader739.5:                                  ; preds = %.preheader739.4
  %2452 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list.52, i64 10), align 2, !tbaa !47
  %2453 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %15, i16 noundef zeroext %2452) #11
  %2454 = icmp sgt i32 %2453, -1
  br i1 %2454, label %.preheader739.6, label %.thread736

.preheader739.6:                                  ; preds = %.preheader739.5
  %2455 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list.52, i64 12), align 4, !tbaa !47
  %2456 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %15, i16 noundef zeroext %2455) #11
  %2457 = icmp sgt i32 %2456, -1
  br i1 %2457, label %.preheader739.7, label %.thread736

.preheader739.7:                                  ; preds = %.preheader739.6
  %2458 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.invalid_version_list.52, i64 14), align 2, !tbaa !47
  %2459 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %15, i16 noundef zeroext %2458) #11
  %2460 = icmp sgt i32 %2459, -1
  br i1 %2460, label %2461, label %.thread736

2461:                                             ; preds = %.preheader739.7
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = add nsw i32 %2462, 1
  store i32 %2463, ptr @test_count, align 4, !tbaa !5
  %2464 = call i32 %969(ptr noundef nonnull %2356, ptr noundef nonnull %15) #11
  %2465 = icmp eq i32 %2464, -1
  br i1 %2465, label %2466, label %2488

2466:                                             ; preds = %2461
  %2467 = load i32, ptr %2002, align 4, !tbaa !5
  %2468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2469 = call i32 @s2n_print_stacktrace(ptr noundef %2468) #11
  %2470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2471 = trunc nuw i8 %2470 to i1
  br i1 %2471, label %2472, label %2476

2472:                                             ; preds = %2466
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = call i32 @fileno(ptr noundef %2473) #11
  %2475 = call i32 @isatty(i32 noundef %2474) #11
  %.not658 = icmp eq i32 %2475, 0
  br i1 %.not658, label %2476, label %2477

2476:                                             ; preds = %2472, %2466
  br label %2477

2477:                                             ; preds = %2472, %2476
  %.str.5.sink1621 = phi ptr [ @.str.5, %2476 ], [ @.str.2, %2472 ]
  store i32 %2467, ptr %2002, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = load i32, ptr %1948, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror(i32 noundef %2480, ptr noundef nonnull @.str.4) #11
  %2482 = load i32, ptr %1948, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror_debug(i32 noundef %2482, ptr noundef nonnull @.str.4) #11
  %2484 = load i32, ptr %2002, align 4, !tbaa !5
  %2485 = call ptr @strerror(i32 noundef %2484) #11
  %2486 = load i32, ptr %2002, align 4, !tbaa !5
  %2487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2478, ptr noundef nonnull %.str.5.sink1621, i32 noundef %2479, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %2481, ptr noundef %2483, ptr noundef %2485, i32 noundef %2486) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2488:                                             ; preds = %2461
  %2489 = load i32, ptr @test_count, align 4, !tbaa !5
  %2490 = add nsw i32 %2489, 1
  store i32 %2490, ptr @test_count, align 4, !tbaa !5
  %2491 = getelementptr inbounds i8, ptr %2356, i64 218
  %2492 = load i8, ptr %2491, align 2, !tbaa !51
  %2493 = icmp eq i8 %2492, 34
  br i1 %2493, label %2516, label %2494

2494:                                             ; preds = %2488
  %2495 = load i32, ptr %2002, align 4, !tbaa !5
  %2496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2497 = call i32 @s2n_print_stacktrace(ptr noundef %2496) #11
  %2498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2499 = trunc nuw i8 %2498 to i1
  br i1 %2499, label %2500, label %2504

2500:                                             ; preds = %2494
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = call i32 @fileno(ptr noundef %2501) #11
  %2503 = call i32 @isatty(i32 noundef %2502) #11
  %.not561 = icmp eq i32 %2503, 0
  br i1 %.not561, label %2504, label %2505

2504:                                             ; preds = %2500, %2494
  br label %2505

2505:                                             ; preds = %2500, %2504
  %.str.5.sink1630 = phi ptr [ @.str.5, %2504 ], [ @.str.2, %2500 ]
  store i32 %2495, ptr %2002, align 4, !tbaa !5
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = load i32, ptr %1948, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror(i32 noundef %2508, ptr noundef nonnull @.str.4) #11
  %2510 = load i32, ptr %1948, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror_debug(i32 noundef %2510, ptr noundef nonnull @.str.4) #11
  %2512 = load i32, ptr %2002, align 4, !tbaa !5
  %2513 = call ptr @strerror(i32 noundef %2512) #11
  %2514 = load i32, ptr %2002, align 4, !tbaa !5
  %2515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2506, ptr noundef nonnull %.str.5.sink1630, i32 noundef %2507, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %2509, ptr noundef %2511, ptr noundef %2513, i32 noundef %2514) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2516:                                             ; preds = %2488
  %2517 = add nsw i32 %2489, 2
  store i32 %2517, ptr @test_count, align 4, !tbaa !5
  %2518 = getelementptr inbounds i8, ptr %2356, i64 219
  %2519 = load i8, ptr %2518, align 1, !tbaa !52
  %2520 = icmp eq i8 %2519, 34
  br i1 %2520, label %2543, label %2521

2521:                                             ; preds = %2516
  %2522 = load i32, ptr %2002, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @s2n_print_stacktrace(ptr noundef %2523) #11
  %2525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2526 = trunc nuw i8 %2525 to i1
  br i1 %2526, label %2527, label %2531

2527:                                             ; preds = %2521
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = call i32 @fileno(ptr noundef %2528) #11
  %2530 = call i32 @isatty(i32 noundef %2529) #11
  %.not562 = icmp eq i32 %2530, 0
  br i1 %.not562, label %2531, label %2532

2531:                                             ; preds = %2527, %2521
  br label %2532

2532:                                             ; preds = %2527, %2531
  %.str.5.sink1639 = phi ptr [ @.str.5, %2531 ], [ @.str.2, %2527 ]
  store i32 %2522, ptr %2002, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = load i32, ptr @test_count, align 4, !tbaa !5
  %2535 = load i32, ptr %1948, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror(i32 noundef %2535, ptr noundef nonnull @.str.4) #11
  %2537 = load i32, ptr %1948, align 4, !tbaa !5
  %2538 = call ptr @s2n_strerror_debug(i32 noundef %2537, ptr noundef nonnull @.str.4) #11
  %2539 = load i32, ptr %2002, align 4, !tbaa !5
  %2540 = call ptr @strerror(i32 noundef %2539) #11
  %2541 = load i32, ptr %2002, align 4, !tbaa !5
  %2542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2533, ptr noundef nonnull %.str.5.sink1639, i32 noundef %2534, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %2536, ptr noundef %2538, ptr noundef %2540, i32 noundef %2541) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2543:                                             ; preds = %2516
  %2544 = add nsw i32 %2489, 3
  store i32 %2544, ptr @test_count, align 4, !tbaa !5
  %2545 = getelementptr inbounds i8, ptr %2356, i64 220
  %2546 = load i8, ptr %2545, align 4, !tbaa !53
  %2547 = icmp eq i8 %2546, 34
  br i1 %2547, label %2570, label %2548

2548:                                             ; preds = %2543
  %2549 = load i32, ptr %2002, align 4, !tbaa !5
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = call i32 @s2n_print_stacktrace(ptr noundef %2550) #11
  %2552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2553 = trunc nuw i8 %2552 to i1
  br i1 %2553, label %2554, label %2558

2554:                                             ; preds = %2548
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = call i32 @fileno(ptr noundef %2555) #11
  %2557 = call i32 @isatty(i32 noundef %2556) #11
  %.not563 = icmp eq i32 %2557, 0
  br i1 %.not563, label %2558, label %2559

2558:                                             ; preds = %2554, %2548
  br label %2559

2559:                                             ; preds = %2554, %2558
  %.str.5.sink1648 = phi ptr [ @.str.5, %2558 ], [ @.str.2, %2554 ]
  store i32 %2549, ptr %2002, align 4, !tbaa !5
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = load i32, ptr %1948, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror(i32 noundef %2562, ptr noundef nonnull @.str.4) #11
  %2564 = load i32, ptr %1948, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef nonnull @.str.4) #11
  %2566 = load i32, ptr %2002, align 4, !tbaa !5
  %2567 = call ptr @strerror(i32 noundef %2566) #11
  %2568 = load i32, ptr %2002, align 4, !tbaa !5
  %2569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2560, ptr noundef nonnull %.str.5.sink1648, i32 noundef %2561, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2563, ptr noundef %2565, ptr noundef %2567, i32 noundef %2568) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2570:                                             ; preds = %2543
  %2571 = add nsw i32 %2489, 4
  store i32 %2571, ptr @test_count, align 4, !tbaa !5
  %2572 = call i32 @s2n_connection_free(ptr noundef nonnull %2356) #11
  %2573 = icmp eq i32 %2572, -1
  br i1 %2573, label %2574, label %2596

2574:                                             ; preds = %2570
  %2575 = load i32, ptr %2002, align 4, !tbaa !5
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = call i32 @s2n_print_stacktrace(ptr noundef %2576) #11
  %2578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2579 = trunc nuw i8 %2578 to i1
  br i1 %2579, label %2580, label %2584

2580:                                             ; preds = %2574
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = call i32 @fileno(ptr noundef %2581) #11
  %2583 = call i32 @isatty(i32 noundef %2582) #11
  %.not657 = icmp eq i32 %2583, 0
  br i1 %.not657, label %2584, label %2585

2584:                                             ; preds = %2580, %2574
  br label %2585

2585:                                             ; preds = %2580, %2584
  %.str.5.sink1657 = phi ptr [ @.str.5, %2584 ], [ @.str.2, %2580 ]
  store i32 %2575, ptr %2002, align 4, !tbaa !5
  %2586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2587 = load i32, ptr @test_count, align 4, !tbaa !5
  %2588 = load i32, ptr %1948, align 4, !tbaa !5
  %2589 = call ptr @s2n_strerror(i32 noundef %2588, ptr noundef nonnull @.str.4) #11
  %2590 = load i32, ptr %1948, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror_debug(i32 noundef %2590, ptr noundef nonnull @.str.4) #11
  %2592 = load i32, ptr %2002, align 4, !tbaa !5
  %2593 = call ptr @strerror(i32 noundef %2592) #11
  %2594 = load i32, ptr %2002, align 4, !tbaa !5
  %2595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2586, ptr noundef nonnull %.str.5.sink1657, i32 noundef %2587, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %2589, ptr noundef %2591, ptr noundef %2593, i32 noundef %2594) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2596:                                             ; preds = %2570
  %2597 = load i32, ptr @test_count, align 4, !tbaa !5
  %2598 = add nsw i32 %2597, 1
  store i32 %2598, ptr @test_count, align 4, !tbaa !5
  %2599 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #11
  %2600 = icmp eq i32 %2599, -1
  br i1 %2600, label %2601, label %2623

2601:                                             ; preds = %2596
  %2602 = load i32, ptr %2002, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603) #11
  %2605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2606 = trunc nuw i8 %2605 to i1
  br i1 %2606, label %2607, label %2611

2607:                                             ; preds = %2601
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #11
  %2610 = call i32 @isatty(i32 noundef %2609) #11
  %.not656 = icmp eq i32 %2610, 0
  br i1 %.not656, label %2611, label %2612

2611:                                             ; preds = %2607, %2601
  br label %2612

2612:                                             ; preds = %2607, %2611
  %.str.5.sink1666 = phi ptr [ @.str.5, %2611 ], [ @.str.2, %2607 ]
  store i32 %2602, ptr %2002, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = load i32, ptr %1948, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror(i32 noundef %2615, ptr noundef nonnull @.str.4) #11
  %2617 = load i32, ptr %1948, align 4, !tbaa !5
  %2618 = call ptr @s2n_strerror_debug(i32 noundef %2617, ptr noundef nonnull @.str.4) #11
  %2619 = load i32, ptr %2002, align 4, !tbaa !5
  %2620 = call ptr @strerror(i32 noundef %2619) #11
  %2621 = load i32, ptr %2002, align 4, !tbaa !5
  %2622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef nonnull %.str.5.sink1666, i32 noundef %2614, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2616, ptr noundef %2618, ptr noundef %2620, i32 noundef %2621) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.thread736:                                       ; preds = %.preheader739.preheader, %.preheader739.1, %.preheader739.2, %.preheader739.3, %.preheader739.4, %.preheader739.5, %.preheader739.6, %.preheader739.7, %2434
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #11
  br label %5089

2623:                                             ; preds = %2596
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #11
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = add nsw i32 %2624, 1
  store i32 %2625, ptr @test_count, align 4, !tbaa !5
  %2626 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %2627 = icmp eq ptr %2626, null
  br i1 %2627, label %2628, label %2650

2628:                                             ; preds = %2623
  %2629 = load i32, ptr %2002, align 4, !tbaa !5
  %2630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2631 = call i32 @s2n_print_stacktrace(ptr noundef %2630) #11
  %2632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2633 = trunc nuw i8 %2632 to i1
  br i1 %2633, label %2634, label %2638

2634:                                             ; preds = %2628
  %2635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2636 = call i32 @fileno(ptr noundef %2635) #11
  %2637 = call i32 @isatty(i32 noundef %2636) #11
  %.not655 = icmp eq i32 %2637, 0
  br i1 %.not655, label %2638, label %2639

2638:                                             ; preds = %2634, %2628
  br label %2639

2639:                                             ; preds = %2634, %2638
  %.str.5.sink1675 = phi ptr [ @.str.5, %2638 ], [ @.str.2, %2634 ]
  store i32 %2629, ptr %2002, align 4, !tbaa !5
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = load i32, ptr %1948, align 4, !tbaa !5
  %2643 = call ptr @s2n_strerror(i32 noundef %2642, ptr noundef nonnull @.str.4) #11
  %2644 = load i32, ptr %1948, align 4, !tbaa !5
  %2645 = call ptr @s2n_strerror_debug(i32 noundef %2644, ptr noundef nonnull @.str.4) #11
  %2646 = load i32, ptr %2002, align 4, !tbaa !5
  %2647 = call ptr @strerror(i32 noundef %2646) #11
  %2648 = load i32, ptr %2002, align 4, !tbaa !5
  %2649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2640, ptr noundef nonnull %.str.5.sink1675, i32 noundef %2641, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %2643, ptr noundef %2645, ptr noundef %2647, i32 noundef %2648) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2650:                                             ; preds = %2623
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = add nsw i32 %2651, 1
  store i32 %2652, ptr @test_count, align 4, !tbaa !5
  %2653 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2626, ptr noundef nonnull %151) #11
  %2654 = icmp eq i32 %2653, -1
  br i1 %2654, label %2655, label %2677

2655:                                             ; preds = %2650
  %2656 = load i32, ptr %2002, align 4, !tbaa !5
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = call i32 @s2n_print_stacktrace(ptr noundef %2657) #11
  %2659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2660 = trunc nuw i8 %2659 to i1
  br i1 %2660, label %2661, label %2665

2661:                                             ; preds = %2655
  %2662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2663 = call i32 @fileno(ptr noundef %2662) #11
  %2664 = call i32 @isatty(i32 noundef %2663) #11
  %.not654 = icmp eq i32 %2664, 0
  br i1 %.not654, label %2665, label %2666

2665:                                             ; preds = %2661, %2655
  br label %2666

2666:                                             ; preds = %2661, %2665
  %.str.5.sink1684 = phi ptr [ @.str.5, %2665 ], [ @.str.2, %2661 ]
  store i32 %2656, ptr %2002, align 4, !tbaa !5
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = load i32, ptr @test_count, align 4, !tbaa !5
  %2669 = load i32, ptr %1948, align 4, !tbaa !5
  %2670 = call ptr @s2n_strerror(i32 noundef %2669, ptr noundef nonnull @.str.4) #11
  %2671 = load i32, ptr %1948, align 4, !tbaa !5
  %2672 = call ptr @s2n_strerror_debug(i32 noundef %2671, ptr noundef nonnull @.str.4) #11
  %2673 = load i32, ptr %2002, align 4, !tbaa !5
  %2674 = call ptr @strerror(i32 noundef %2673) #11
  %2675 = load i32, ptr %2002, align 4, !tbaa !5
  %2676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2667, ptr noundef nonnull %.str.5.sink1684, i32 noundef %2668, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %2670, ptr noundef %2672, ptr noundef %2674, i32 noundef %2675) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2677:                                             ; preds = %2650
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #11
  %2678 = load i8, ptr @__const.main.supported_version_list, align 1
  store i8 %2678, ptr %16, align 1
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %17, i8 0, i64 40, i1 false)
  %2679 = load i32, ptr @test_count, align 4, !tbaa !5
  %2680 = add nsw i32 %2679, 1
  store i32 %2680, ptr @test_count, align 4, !tbaa !5
  %2681 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %17, i32 noundef 3) #11
  %2682 = icmp eq i32 %2681, -1
  br i1 %2682, label %2683, label %2705

2683:                                             ; preds = %2677
  %2684 = load i32, ptr %2002, align 4, !tbaa !5
  %2685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2686 = call i32 @s2n_print_stacktrace(ptr noundef %2685) #11
  %2687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2688 = trunc nuw i8 %2687 to i1
  br i1 %2688, label %2689, label %2693

2689:                                             ; preds = %2683
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = call i32 @fileno(ptr noundef %2690) #11
  %2692 = call i32 @isatty(i32 noundef %2691) #11
  %.not653 = icmp eq i32 %2692, 0
  br i1 %.not653, label %2693, label %2694

2693:                                             ; preds = %2689, %2683
  br label %2694

2694:                                             ; preds = %2689, %2693
  %.str.5.sink1693 = phi ptr [ @.str.5, %2693 ], [ @.str.2, %2689 ]
  store i32 %2684, ptr %2002, align 4, !tbaa !5
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = load i32, ptr @test_count, align 4, !tbaa !5
  %2697 = load i32, ptr %1948, align 4, !tbaa !5
  %2698 = call ptr @s2n_strerror(i32 noundef %2697, ptr noundef nonnull @.str.4) #11
  %2699 = load i32, ptr %1948, align 4, !tbaa !5
  %2700 = call ptr @s2n_strerror_debug(i32 noundef %2699, ptr noundef nonnull @.str.4) #11
  %2701 = load i32, ptr %2002, align 4, !tbaa !5
  %2702 = call ptr @strerror(i32 noundef %2701) #11
  %2703 = load i32, ptr %2002, align 4, !tbaa !5
  %2704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2695, ptr noundef nonnull %.str.5.sink1693, i32 noundef %2696, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2698, ptr noundef %2700, ptr noundef %2702, i32 noundef %2703) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2705:                                             ; preds = %2677
  %2706 = load i32, ptr @test_count, align 4, !tbaa !5
  %2707 = add nsw i32 %2706, 1
  store i32 %2707, ptr @test_count, align 4, !tbaa !5
  %2708 = call i32 @write_test_supported_versions_list(ptr noundef nonnull %17, ptr noundef nonnull %16, i8 noundef zeroext 1)
  %2709 = icmp eq i32 %2708, -1
  br i1 %2709, label %2710, label %2732

2710:                                             ; preds = %2705
  %2711 = load i32, ptr %2002, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = call i32 @s2n_print_stacktrace(ptr noundef %2712) #11
  %2714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2715 = trunc nuw i8 %2714 to i1
  br i1 %2715, label %2716, label %2720

2716:                                             ; preds = %2710
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @fileno(ptr noundef %2717) #11
  %2719 = call i32 @isatty(i32 noundef %2718) #11
  %.not652 = icmp eq i32 %2719, 0
  br i1 %.not652, label %2720, label %2721

2720:                                             ; preds = %2716, %2710
  br label %2721

2721:                                             ; preds = %2716, %2720
  %.str.5.sink1702 = phi ptr [ @.str.5, %2720 ], [ @.str.2, %2716 ]
  store i32 %2711, ptr %2002, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = load i32, ptr %1948, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror(i32 noundef %2724, ptr noundef nonnull @.str.4) #11
  %2726 = load i32, ptr %1948, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror_debug(i32 noundef %2726, ptr noundef nonnull @.str.4) #11
  %2728 = load i32, ptr %2002, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #11
  %2730 = load i32, ptr %2002, align 4, !tbaa !5
  %2731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2722, ptr noundef nonnull %.str.5.sink1702, i32 noundef %2723, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2725, ptr noundef %2727, ptr noundef %2729, i32 noundef %2730) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2732:                                             ; preds = %2705
  %2733 = load i32, ptr @test_count, align 4, !tbaa !5
  %2734 = add nsw i32 %2733, 1
  store i32 %2734, ptr @test_count, align 4, !tbaa !5
  %2735 = call i32 %969(ptr noundef nonnull %2626, ptr noundef nonnull %17) #11
  %2736 = icmp eq i32 %2735, -1
  br i1 %2736, label %2759, label %2737

2737:                                             ; preds = %2732
  %2738 = load i32, ptr %2002, align 4, !tbaa !5
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = call i32 @s2n_print_stacktrace(ptr noundef %2739) #11
  %2741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2742 = trunc nuw i8 %2741 to i1
  br i1 %2742, label %2743, label %2747

2743:                                             ; preds = %2737
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = call i32 @fileno(ptr noundef %2744) #11
  %2746 = call i32 @isatty(i32 noundef %2745) #11
  %.not564 = icmp eq i32 %2746, 0
  br i1 %.not564, label %2747, label %2748

2747:                                             ; preds = %2743, %2737
  br label %2748

2748:                                             ; preds = %2743, %2747
  %.str.5.sink1711 = phi ptr [ @.str.5, %2747 ], [ @.str.2, %2743 ]
  store i32 %2738, ptr %2002, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = load i32, ptr %1948, align 4, !tbaa !5
  %2752 = call ptr @s2n_strerror(i32 noundef %2751, ptr noundef nonnull @.str.4) #11
  %2753 = load i32, ptr %1948, align 4, !tbaa !5
  %2754 = call ptr @s2n_strerror_debug(i32 noundef %2753, ptr noundef nonnull @.str.4) #11
  %2755 = load i32, ptr %2002, align 4, !tbaa !5
  %2756 = call ptr @strerror(i32 noundef %2755) #11
  %2757 = load i32, ptr %2002, align 4, !tbaa !5
  %2758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2749, ptr noundef nonnull %.str.5.sink1711, i32 noundef %2750, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2752, ptr noundef %2754, ptr noundef %2756, i32 noundef %2757) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2759:                                             ; preds = %2732
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %2761 = add nsw i32 %2760, 1
  store i32 %2761, ptr @test_count, align 4, !tbaa !5
  %2762 = load i32, ptr %1948, align 4, !tbaa !5
  %2763 = icmp eq i32 %2762, 335544384
  br i1 %2763, label %2786, label %2764

2764:                                             ; preds = %2759
  %2765 = load i32, ptr %2002, align 4, !tbaa !5
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = call i32 @s2n_print_stacktrace(ptr noundef %2766) #11
  %2768 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2769 = trunc nuw i8 %2768 to i1
  br i1 %2769, label %2770, label %2774

2770:                                             ; preds = %2764
  %2771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2772 = call i32 @fileno(ptr noundef %2771) #11
  %2773 = call i32 @isatty(i32 noundef %2772) #11
  %.not565 = icmp eq i32 %2773, 0
  br i1 %.not565, label %2774, label %2775

2774:                                             ; preds = %2770, %2764
  br label %2775

2775:                                             ; preds = %2770, %2774
  %.str.5.sink1720 = phi ptr [ @.str.5, %2774 ], [ @.str.2, %2770 ]
  store i32 %2765, ptr %2002, align 4, !tbaa !5
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = load i32, ptr @test_count, align 4, !tbaa !5
  %2778 = load i32, ptr %1948, align 4, !tbaa !5
  %2779 = call ptr @s2n_strerror(i32 noundef %2778, ptr noundef nonnull @.str.4) #11
  %2780 = load i32, ptr %1948, align 4, !tbaa !5
  %2781 = call ptr @s2n_strerror_debug(i32 noundef %2780, ptr noundef nonnull @.str.4) #11
  %2782 = load i32, ptr %2002, align 4, !tbaa !5
  %2783 = call ptr @strerror(i32 noundef %2782) #11
  %2784 = load i32, ptr %2002, align 4, !tbaa !5
  %2785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2776, ptr noundef nonnull %.str.5.sink1720, i32 noundef %2777, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2779, ptr noundef %2781, ptr noundef %2783, i32 noundef %2784) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2786:                                             ; preds = %2759
  %2787 = add nsw i32 %2760, 2
  store i32 %2787, ptr @test_count, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror_debug(i32 noundef 335544384, ptr noundef nonnull @.str.4) #11
  %2789 = icmp eq ptr %2788, null
  br i1 %2789, label %2790, label %2812

2790:                                             ; preds = %2786
  %2791 = load i32, ptr %2002, align 4, !tbaa !5
  %2792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2793 = call i32 @s2n_print_stacktrace(ptr noundef %2792) #11
  %2794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2795 = trunc nuw i8 %2794 to i1
  br i1 %2795, label %2796, label %2800

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

2800:                                             ; preds = %2796, %2790
  br label %2801

2801:                                             ; preds = %2796, %2800
  %.str.5.sink1729 = phi ptr [ @.str.5, %2800 ], [ @.str.2, %2796 ]
  store i32 %2791, ptr %2002, align 4, !tbaa !5
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = load i32, ptr @test_count, align 4, !tbaa !5
  %2804 = load i32, ptr %1948, align 4, !tbaa !5
  %2805 = call ptr @s2n_strerror(i32 noundef %2804, ptr noundef nonnull @.str.4) #11
  %2806 = load i32, ptr %1948, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror_debug(i32 noundef %2806, ptr noundef nonnull @.str.4) #11
  %2808 = load i32, ptr %2002, align 4, !tbaa !5
  %2809 = call ptr @strerror(i32 noundef %2808) #11
  %2810 = load i32, ptr %2002, align 4, !tbaa !5
  %2811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2802, ptr noundef nonnull %.str.5.sink1729, i32 noundef %2803, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2805, ptr noundef %2807, ptr noundef %2809, i32 noundef %2810) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2812:                                             ; preds = %2786
  store i32 0, ptr %1948, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %2002, align 4, !tbaa !5
  %2813 = load i32, ptr @test_count, align 4, !tbaa !5
  %2814 = add nsw i32 %2813, 1
  store i32 %2814, ptr @test_count, align 4, !tbaa !5
  %2815 = getelementptr inbounds i8, ptr %2626, i64 2001
  %2816 = load i8, ptr %2815, align 1, !tbaa !54
  %2817 = icmp eq i8 %2816, 70
  br i1 %2817, label %2840, label %2818

2818:                                             ; preds = %2812
  %2819 = load i32, ptr %2002, align 4, !tbaa !5
  %2820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2821 = call i32 @s2n_print_stacktrace(ptr noundef %2820) #11
  %2822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2823 = trunc nuw i8 %2822 to i1
  br i1 %2823, label %2824, label %2828

2824:                                             ; preds = %2818
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2826 = call i32 @fileno(ptr noundef %2825) #11
  %2827 = call i32 @isatty(i32 noundef %2826) #11
  %.not566 = icmp eq i32 %2827, 0
  br i1 %.not566, label %2828, label %2829

2828:                                             ; preds = %2824, %2818
  br label %2829

2829:                                             ; preds = %2824, %2828
  %.str.5.sink1738 = phi ptr [ @.str.5, %2828 ], [ @.str.2, %2824 ]
  store i32 %2819, ptr %2002, align 4, !tbaa !5
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = load i32, ptr @test_count, align 4, !tbaa !5
  %2832 = load i32, ptr %1948, align 4, !tbaa !5
  %2833 = call ptr @s2n_strerror(i32 noundef %2832, ptr noundef nonnull @.str.4) #11
  %2834 = load i32, ptr %1948, align 4, !tbaa !5
  %2835 = call ptr @s2n_strerror_debug(i32 noundef %2834, ptr noundef nonnull @.str.4) #11
  %2836 = load i32, ptr %2002, align 4, !tbaa !5
  %2837 = call ptr @strerror(i32 noundef %2836) #11
  %2838 = load i32, ptr %2002, align 4, !tbaa !5
  %2839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2830, ptr noundef nonnull %.str.5.sink1738, i32 noundef %2831, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2833, ptr noundef %2835, ptr noundef %2837, i32 noundef %2838) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2840:                                             ; preds = %2812
  %2841 = add nsw i32 %2813, 2
  store i32 %2841, ptr @test_count, align 4, !tbaa !5
  %2842 = call i32 @s2n_connection_free(ptr noundef nonnull %2626) #11
  %2843 = icmp eq i32 %2842, -1
  br i1 %2843, label %2844, label %2866

2844:                                             ; preds = %2840
  %2845 = load i32, ptr %2002, align 4, !tbaa !5
  %2846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2847 = call i32 @s2n_print_stacktrace(ptr noundef %2846) #11
  %2848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2849 = trunc nuw i8 %2848 to i1
  br i1 %2849, label %2850, label %2854

2850:                                             ; preds = %2844
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = call i32 @fileno(ptr noundef %2851) #11
  %2853 = call i32 @isatty(i32 noundef %2852) #11
  %.not650 = icmp eq i32 %2853, 0
  br i1 %.not650, label %2854, label %2855

2854:                                             ; preds = %2850, %2844
  br label %2855

2855:                                             ; preds = %2850, %2854
  %.str.5.sink1747 = phi ptr [ @.str.5, %2854 ], [ @.str.2, %2850 ]
  store i32 %2845, ptr %2002, align 4, !tbaa !5
  %2856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2857 = load i32, ptr @test_count, align 4, !tbaa !5
  %2858 = load i32, ptr %1948, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror(i32 noundef %2858, ptr noundef nonnull @.str.4) #11
  %2860 = load i32, ptr %1948, align 4, !tbaa !5
  %2861 = call ptr @s2n_strerror_debug(i32 noundef %2860, ptr noundef nonnull @.str.4) #11
  %2862 = load i32, ptr %2002, align 4, !tbaa !5
  %2863 = call ptr @strerror(i32 noundef %2862) #11
  %2864 = load i32, ptr %2002, align 4, !tbaa !5
  %2865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2856, ptr noundef nonnull %.str.5.sink1747, i32 noundef %2857, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2859, ptr noundef %2861, ptr noundef %2863, i32 noundef %2864) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2866:                                             ; preds = %2840
  %2867 = load i32, ptr @test_count, align 4, !tbaa !5
  %2868 = add nsw i32 %2867, 1
  store i32 %2868, ptr @test_count, align 4, !tbaa !5
  %2869 = call i32 @s2n_stuffer_free(ptr noundef nonnull %17) #11
  %2870 = icmp eq i32 %2869, -1
  br i1 %2870, label %2871, label %2893

2871:                                             ; preds = %2866
  %2872 = load i32, ptr %2002, align 4, !tbaa !5
  %2873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2874 = call i32 @s2n_print_stacktrace(ptr noundef %2873) #11
  %2875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2876 = trunc nuw i8 %2875 to i1
  br i1 %2876, label %2877, label %2881

2877:                                             ; preds = %2871
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = call i32 @fileno(ptr noundef %2878) #11
  %2880 = call i32 @isatty(i32 noundef %2879) #11
  %.not649 = icmp eq i32 %2880, 0
  br i1 %.not649, label %2881, label %2882

2881:                                             ; preds = %2877, %2871
  br label %2882

2882:                                             ; preds = %2877, %2881
  %.str.5.sink1756 = phi ptr [ @.str.5, %2881 ], [ @.str.2, %2877 ]
  store i32 %2872, ptr %2002, align 4, !tbaa !5
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = load i32, ptr @test_count, align 4, !tbaa !5
  %2885 = load i32, ptr %1948, align 4, !tbaa !5
  %2886 = call ptr @s2n_strerror(i32 noundef %2885, ptr noundef nonnull @.str.4) #11
  %2887 = load i32, ptr %1948, align 4, !tbaa !5
  %2888 = call ptr @s2n_strerror_debug(i32 noundef %2887, ptr noundef nonnull @.str.4) #11
  %2889 = load i32, ptr %2002, align 4, !tbaa !5
  %2890 = call ptr @strerror(i32 noundef %2889) #11
  %2891 = load i32, ptr %2002, align 4, !tbaa !5
  %2892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2883, ptr noundef nonnull %.str.5.sink1756, i32 noundef %2884, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %2886, ptr noundef %2888, ptr noundef %2890, i32 noundef %2891) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2893:                                             ; preds = %2866
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #11
  %2894 = load i32, ptr @test_count, align 4, !tbaa !5
  %2895 = add nsw i32 %2894, 1
  store i32 %2895, ptr @test_count, align 4, !tbaa !5
  %2896 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %2897 = icmp eq ptr %2896, null
  br i1 %2897, label %2898, label %2920

2898:                                             ; preds = %2893
  %2899 = load i32, ptr %2002, align 4, !tbaa !5
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = call i32 @s2n_print_stacktrace(ptr noundef %2900) #11
  %2902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2903 = trunc nuw i8 %2902 to i1
  br i1 %2903, label %2904, label %2908

2904:                                             ; preds = %2898
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = call i32 @fileno(ptr noundef %2905) #11
  %2907 = call i32 @isatty(i32 noundef %2906) #11
  %.not648 = icmp eq i32 %2907, 0
  br i1 %.not648, label %2908, label %2909

2908:                                             ; preds = %2904, %2898
  br label %2909

2909:                                             ; preds = %2904, %2908
  %.str.5.sink1765 = phi ptr [ @.str.5, %2908 ], [ @.str.2, %2904 ]
  store i32 %2899, ptr %2002, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = load i32, ptr @test_count, align 4, !tbaa !5
  %2912 = load i32, ptr %1948, align 4, !tbaa !5
  %2913 = call ptr @s2n_strerror(i32 noundef %2912, ptr noundef nonnull @.str.4) #11
  %2914 = load i32, ptr %1948, align 4, !tbaa !5
  %2915 = call ptr @s2n_strerror_debug(i32 noundef %2914, ptr noundef nonnull @.str.4) #11
  %2916 = load i32, ptr %2002, align 4, !tbaa !5
  %2917 = call ptr @strerror(i32 noundef %2916) #11
  %2918 = load i32, ptr %2002, align 4, !tbaa !5
  %2919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2910, ptr noundef nonnull %.str.5.sink1765, i32 noundef %2911, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %2913, ptr noundef %2915, ptr noundef %2917, i32 noundef %2918) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2920:                                             ; preds = %2893
  %2921 = load i32, ptr @test_count, align 4, !tbaa !5
  %2922 = add nsw i32 %2921, 1
  store i32 %2922, ptr @test_count, align 4, !tbaa !5
  %2923 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2896, ptr noundef nonnull %151) #11
  %2924 = icmp eq i32 %2923, -1
  br i1 %2924, label %2925, label %2947

2925:                                             ; preds = %2920
  %2926 = load i32, ptr %2002, align 4, !tbaa !5
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = call i32 @s2n_print_stacktrace(ptr noundef %2927) #11
  %2929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2930 = trunc nuw i8 %2929 to i1
  br i1 %2930, label %2931, label %2935

2931:                                             ; preds = %2925
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = call i32 @fileno(ptr noundef %2932) #11
  %2934 = call i32 @isatty(i32 noundef %2933) #11
  %.not647 = icmp eq i32 %2934, 0
  br i1 %.not647, label %2935, label %2936

2935:                                             ; preds = %2931, %2925
  br label %2936

2936:                                             ; preds = %2931, %2935
  %.str.5.sink1774 = phi ptr [ @.str.5, %2935 ], [ @.str.2, %2931 ]
  store i32 %2926, ptr %2002, align 4, !tbaa !5
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = load i32, ptr @test_count, align 4, !tbaa !5
  %2939 = load i32, ptr %1948, align 4, !tbaa !5
  %2940 = call ptr @s2n_strerror(i32 noundef %2939, ptr noundef nonnull @.str.4) #11
  %2941 = load i32, ptr %1948, align 4, !tbaa !5
  %2942 = call ptr @s2n_strerror_debug(i32 noundef %2941, ptr noundef nonnull @.str.4) #11
  %2943 = load i32, ptr %2002, align 4, !tbaa !5
  %2944 = call ptr @strerror(i32 noundef %2943) #11
  %2945 = load i32, ptr %2002, align 4, !tbaa !5
  %2946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2937, ptr noundef nonnull %.str.5.sink1774, i32 noundef %2938, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2940, ptr noundef %2942, ptr noundef %2944, i32 noundef %2945) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2947:                                             ; preds = %2920
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %18, i8 0, i64 40, i1 false)
  %2948 = load i32, ptr @test_count, align 4, !tbaa !5
  %2949 = add nsw i32 %2948, 1
  store i32 %2949, ptr @test_count, align 4, !tbaa !5
  %2950 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %18, i32 noundef 1) #11
  %2951 = icmp eq i32 %2950, -1
  br i1 %2951, label %2952, label %2974

2952:                                             ; preds = %2947
  %2953 = load i32, ptr %2002, align 4, !tbaa !5
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = call i32 @s2n_print_stacktrace(ptr noundef %2954) #11
  %2956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2957 = trunc nuw i8 %2956 to i1
  br i1 %2957, label %2958, label %2962

2958:                                             ; preds = %2952
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = call i32 @fileno(ptr noundef %2959) #11
  %2961 = call i32 @isatty(i32 noundef %2960) #11
  %.not646 = icmp eq i32 %2961, 0
  br i1 %.not646, label %2962, label %2963

2962:                                             ; preds = %2958, %2952
  br label %2963

2963:                                             ; preds = %2958, %2962
  %.str.5.sink1783 = phi ptr [ @.str.5, %2962 ], [ @.str.2, %2958 ]
  store i32 %2953, ptr %2002, align 4, !tbaa !5
  %2964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2965 = load i32, ptr @test_count, align 4, !tbaa !5
  %2966 = load i32, ptr %1948, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror(i32 noundef %2966, ptr noundef nonnull @.str.4) #11
  %2968 = load i32, ptr %1948, align 4, !tbaa !5
  %2969 = call ptr @s2n_strerror_debug(i32 noundef %2968, ptr noundef nonnull @.str.4) #11
  %2970 = load i32, ptr %2002, align 4, !tbaa !5
  %2971 = call ptr @strerror(i32 noundef %2970) #11
  %2972 = load i32, ptr %2002, align 4, !tbaa !5
  %2973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2964, ptr noundef nonnull %.str.5.sink1783, i32 noundef %2965, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2967, ptr noundef %2969, ptr noundef %2971, i32 noundef %2972) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2974:                                             ; preds = %2947
  %2975 = load i32, ptr @test_count, align 4, !tbaa !5
  %2976 = add nsw i32 %2975, 1
  store i32 %2976, ptr @test_count, align 4, !tbaa !5
  %2977 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %18, i8 noundef zeroext 0) #11
  %2978 = icmp eq i32 %2977, -1
  br i1 %2978, label %2979, label %3001

2979:                                             ; preds = %2974
  %2980 = load i32, ptr %2002, align 4, !tbaa !5
  %2981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2982 = call i32 @s2n_print_stacktrace(ptr noundef %2981) #11
  %2983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2984 = trunc nuw i8 %2983 to i1
  br i1 %2984, label %2985, label %2989

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

2989:                                             ; preds = %2985, %2979
  br label %2990

2990:                                             ; preds = %2985, %2989
  %.str.5.sink1792 = phi ptr [ @.str.5, %2989 ], [ @.str.2, %2985 ]
  store i32 %2980, ptr %2002, align 4, !tbaa !5
  %2991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2992 = load i32, ptr @test_count, align 4, !tbaa !5
  %2993 = load i32, ptr %1948, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror(i32 noundef %2993, ptr noundef nonnull @.str.4) #11
  %2995 = load i32, ptr %1948, align 4, !tbaa !5
  %2996 = call ptr @s2n_strerror_debug(i32 noundef %2995, ptr noundef nonnull @.str.4) #11
  %2997 = load i32, ptr %2002, align 4, !tbaa !5
  %2998 = call ptr @strerror(i32 noundef %2997) #11
  %2999 = load i32, ptr %2002, align 4, !tbaa !5
  %3000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2991, ptr noundef nonnull %.str.5.sink1792, i32 noundef %2992, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2994, ptr noundef %2996, ptr noundef %2998, i32 noundef %2999) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3001:                                             ; preds = %2974
  %3002 = load i32, ptr @test_count, align 4, !tbaa !5
  %3003 = add nsw i32 %3002, 1
  store i32 %3003, ptr @test_count, align 4, !tbaa !5
  %3004 = call i32 %969(ptr noundef nonnull %2896, ptr noundef nonnull %18) #11
  %3005 = icmp eq i32 %3004, -1
  br i1 %3005, label %3028, label %3006

3006:                                             ; preds = %3001
  %3007 = load i32, ptr %2002, align 4, !tbaa !5
  %3008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3009 = call i32 @s2n_print_stacktrace(ptr noundef %3008) #11
  %3010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3011 = trunc nuw i8 %3010 to i1
  br i1 %3011, label %3012, label %3016

3012:                                             ; preds = %3006
  %3013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3014 = call i32 @fileno(ptr noundef %3013) #11
  %3015 = call i32 @isatty(i32 noundef %3014) #11
  %.not567 = icmp eq i32 %3015, 0
  br i1 %.not567, label %3016, label %3017

3016:                                             ; preds = %3012, %3006
  br label %3017

3017:                                             ; preds = %3012, %3016
  %.str.5.sink1801 = phi ptr [ @.str.5, %3016 ], [ @.str.2, %3012 ]
  store i32 %3007, ptr %2002, align 4, !tbaa !5
  %3018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3019 = load i32, ptr @test_count, align 4, !tbaa !5
  %3020 = load i32, ptr %1948, align 4, !tbaa !5
  %3021 = call ptr @s2n_strerror(i32 noundef %3020, ptr noundef nonnull @.str.4) #11
  %3022 = load i32, ptr %1948, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror_debug(i32 noundef %3022, ptr noundef nonnull @.str.4) #11
  %3024 = load i32, ptr %2002, align 4, !tbaa !5
  %3025 = call ptr @strerror(i32 noundef %3024) #11
  %3026 = load i32, ptr %2002, align 4, !tbaa !5
  %3027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3018, ptr noundef nonnull %.str.5.sink1801, i32 noundef %3019, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %3021, ptr noundef %3023, ptr noundef %3025, i32 noundef %3026) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3028:                                             ; preds = %3001
  %3029 = load i32, ptr @test_count, align 4, !tbaa !5
  %3030 = add nsw i32 %3029, 1
  store i32 %3030, ptr @test_count, align 4, !tbaa !5
  %3031 = load i32, ptr %1948, align 4, !tbaa !5
  %3032 = icmp eq i32 %3031, 402653239
  br i1 %3032, label %3055, label %3033

3033:                                             ; preds = %3028
  %3034 = load i32, ptr %2002, align 4, !tbaa !5
  %3035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3036 = call i32 @s2n_print_stacktrace(ptr noundef %3035) #11
  %3037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3038 = trunc nuw i8 %3037 to i1
  br i1 %3038, label %3039, label %3043

3039:                                             ; preds = %3033
  %3040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3041 = call i32 @fileno(ptr noundef %3040) #11
  %3042 = call i32 @isatty(i32 noundef %3041) #11
  %.not568 = icmp eq i32 %3042, 0
  br i1 %.not568, label %3043, label %3044

3043:                                             ; preds = %3039, %3033
  br label %3044

3044:                                             ; preds = %3039, %3043
  %.str.5.sink1810 = phi ptr [ @.str.5, %3043 ], [ @.str.2, %3039 ]
  store i32 %3034, ptr %2002, align 4, !tbaa !5
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = load i32, ptr @test_count, align 4, !tbaa !5
  %3047 = load i32, ptr %1948, align 4, !tbaa !5
  %3048 = call ptr @s2n_strerror(i32 noundef %3047, ptr noundef nonnull @.str.4) #11
  %3049 = load i32, ptr %1948, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror_debug(i32 noundef %3049, ptr noundef nonnull @.str.4) #11
  %3051 = load i32, ptr %2002, align 4, !tbaa !5
  %3052 = call ptr @strerror(i32 noundef %3051) #11
  %3053 = load i32, ptr %2002, align 4, !tbaa !5
  %3054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3045, ptr noundef nonnull %.str.5.sink1810, i32 noundef %3046, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %3048, ptr noundef %3050, ptr noundef %3052, i32 noundef %3053) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3055:                                             ; preds = %3028
  %3056 = add nsw i32 %3029, 2
  store i32 %3056, ptr @test_count, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef 402653239, ptr noundef nonnull @.str.4) #11
  %3058 = icmp eq ptr %3057, null
  br i1 %3058, label %3059, label %3081

3059:                                             ; preds = %3055
  %3060 = load i32, ptr %2002, align 4, !tbaa !5
  %3061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3062 = call i32 @s2n_print_stacktrace(ptr noundef %3061) #11
  %3063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3064 = trunc nuw i8 %3063 to i1
  br i1 %3064, label %3065, label %3069

3065:                                             ; preds = %3059
  %3066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3067 = call i32 @fileno(ptr noundef %3066) #11
  %3068 = call i32 @isatty(i32 noundef %3067) #11
  %.not644 = icmp eq i32 %3068, 0
  br i1 %.not644, label %3069, label %3070

3069:                                             ; preds = %3065, %3059
  br label %3070

3070:                                             ; preds = %3065, %3069
  %.str.5.sink1819 = phi ptr [ @.str.5, %3069 ], [ @.str.2, %3065 ]
  store i32 %3060, ptr %2002, align 4, !tbaa !5
  %3071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3072 = load i32, ptr @test_count, align 4, !tbaa !5
  %3073 = load i32, ptr %1948, align 4, !tbaa !5
  %3074 = call ptr @s2n_strerror(i32 noundef %3073, ptr noundef nonnull @.str.4) #11
  %3075 = load i32, ptr %1948, align 4, !tbaa !5
  %3076 = call ptr @s2n_strerror_debug(i32 noundef %3075, ptr noundef nonnull @.str.4) #11
  %3077 = load i32, ptr %2002, align 4, !tbaa !5
  %3078 = call ptr @strerror(i32 noundef %3077) #11
  %3079 = load i32, ptr %2002, align 4, !tbaa !5
  %3080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3071, ptr noundef nonnull %.str.5.sink1819, i32 noundef %3072, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %3074, ptr noundef %3076, ptr noundef %3078, i32 noundef %3079) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3081:                                             ; preds = %3055
  store i32 0, ptr %1948, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %2002, align 4, !tbaa !5
  %3082 = load i32, ptr @test_count, align 4, !tbaa !5
  %3083 = add nsw i32 %3082, 1
  store i32 %3083, ptr @test_count, align 4, !tbaa !5
  %3084 = getelementptr inbounds i8, ptr %2896, i64 2001
  %3085 = load i8, ptr %3084, align 1, !tbaa !54
  %3086 = icmp eq i8 %3085, 70
  br i1 %3086, label %3109, label %3087

3087:                                             ; preds = %3081
  %3088 = load i32, ptr %2002, align 4, !tbaa !5
  %3089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3090 = call i32 @s2n_print_stacktrace(ptr noundef %3089) #11
  %3091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3092 = trunc nuw i8 %3091 to i1
  br i1 %3092, label %3093, label %3097

3093:                                             ; preds = %3087
  %3094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3095 = call i32 @fileno(ptr noundef %3094) #11
  %3096 = call i32 @isatty(i32 noundef %3095) #11
  %.not569 = icmp eq i32 %3096, 0
  br i1 %.not569, label %3097, label %3098

3097:                                             ; preds = %3093, %3087
  br label %3098

3098:                                             ; preds = %3093, %3097
  %.str.5.sink1828 = phi ptr [ @.str.5, %3097 ], [ @.str.2, %3093 ]
  store i32 %3088, ptr %2002, align 4, !tbaa !5
  %3099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = load i32, ptr %1948, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror(i32 noundef %3101, ptr noundef nonnull @.str.4) #11
  %3103 = load i32, ptr %1948, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror_debug(i32 noundef %3103, ptr noundef nonnull @.str.4) #11
  %3105 = load i32, ptr %2002, align 4, !tbaa !5
  %3106 = call ptr @strerror(i32 noundef %3105) #11
  %3107 = load i32, ptr %2002, align 4, !tbaa !5
  %3108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3099, ptr noundef nonnull %.str.5.sink1828, i32 noundef %3100, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %3102, ptr noundef %3104, ptr noundef %3106, i32 noundef %3107) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3109:                                             ; preds = %3081
  %3110 = add nsw i32 %3082, 2
  store i32 %3110, ptr @test_count, align 4, !tbaa !5
  %3111 = call i32 @s2n_connection_free(ptr noundef nonnull %2896) #11
  %3112 = icmp eq i32 %3111, -1
  br i1 %3112, label %3113, label %3135

3113:                                             ; preds = %3109
  %3114 = load i32, ptr %2002, align 4, !tbaa !5
  %3115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3116 = call i32 @s2n_print_stacktrace(ptr noundef %3115) #11
  %3117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3118 = trunc nuw i8 %3117 to i1
  br i1 %3118, label %3119, label %3123

3119:                                             ; preds = %3113
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = call i32 @fileno(ptr noundef %3120) #11
  %3122 = call i32 @isatty(i32 noundef %3121) #11
  %.not643 = icmp eq i32 %3122, 0
  br i1 %.not643, label %3123, label %3124

3123:                                             ; preds = %3119, %3113
  br label %3124

3124:                                             ; preds = %3119, %3123
  %.str.5.sink1837 = phi ptr [ @.str.5, %3123 ], [ @.str.2, %3119 ]
  store i32 %3114, ptr %2002, align 4, !tbaa !5
  %3125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3126 = load i32, ptr @test_count, align 4, !tbaa !5
  %3127 = load i32, ptr %1948, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror(i32 noundef %3127, ptr noundef nonnull @.str.4) #11
  %3129 = load i32, ptr %1948, align 4, !tbaa !5
  %3130 = call ptr @s2n_strerror_debug(i32 noundef %3129, ptr noundef nonnull @.str.4) #11
  %3131 = load i32, ptr %2002, align 4, !tbaa !5
  %3132 = call ptr @strerror(i32 noundef %3131) #11
  %3133 = load i32, ptr %2002, align 4, !tbaa !5
  %3134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3125, ptr noundef nonnull %.str.5.sink1837, i32 noundef %3126, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %3128, ptr noundef %3130, ptr noundef %3132, i32 noundef %3133) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3135:                                             ; preds = %3109
  %3136 = load i32, ptr @test_count, align 4, !tbaa !5
  %3137 = add nsw i32 %3136, 1
  store i32 %3137, ptr @test_count, align 4, !tbaa !5
  %3138 = call i32 @s2n_stuffer_free(ptr noundef nonnull %18) #11
  %3139 = icmp eq i32 %3138, -1
  br i1 %3139, label %3140, label %3162

3140:                                             ; preds = %3135
  %3141 = load i32, ptr %2002, align 4, !tbaa !5
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = call i32 @s2n_print_stacktrace(ptr noundef %3142) #11
  %3144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3145 = trunc nuw i8 %3144 to i1
  br i1 %3145, label %3146, label %3150

3146:                                             ; preds = %3140
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = call i32 @fileno(ptr noundef %3147) #11
  %3149 = call i32 @isatty(i32 noundef %3148) #11
  %.not642 = icmp eq i32 %3149, 0
  br i1 %.not642, label %3150, label %3151

3150:                                             ; preds = %3146, %3140
  br label %3151

3151:                                             ; preds = %3146, %3150
  %.str.5.sink1846 = phi ptr [ @.str.5, %3150 ], [ @.str.2, %3146 ]
  store i32 %3141, ptr %2002, align 4, !tbaa !5
  %3152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3153 = load i32, ptr @test_count, align 4, !tbaa !5
  %3154 = load i32, ptr %1948, align 4, !tbaa !5
  %3155 = call ptr @s2n_strerror(i32 noundef %3154, ptr noundef nonnull @.str.4) #11
  %3156 = load i32, ptr %1948, align 4, !tbaa !5
  %3157 = call ptr @s2n_strerror_debug(i32 noundef %3156, ptr noundef nonnull @.str.4) #11
  %3158 = load i32, ptr %2002, align 4, !tbaa !5
  %3159 = call ptr @strerror(i32 noundef %3158) #11
  %3160 = load i32, ptr %2002, align 4, !tbaa !5
  %3161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3152, ptr noundef nonnull %.str.5.sink1846, i32 noundef %3153, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %3155, ptr noundef %3157, ptr noundef %3159, i32 noundef %3160) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3162:                                             ; preds = %3135
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #11
  %3163 = load i32, ptr @test_count, align 4, !tbaa !5
  %3164 = add nsw i32 %3163, 1
  store i32 %3164, ptr @test_count, align 4, !tbaa !5
  %3165 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %3166 = icmp eq ptr %3165, null
  br i1 %3166, label %3167, label %3189

3167:                                             ; preds = %3162
  %3168 = load i32, ptr %2002, align 4, !tbaa !5
  %3169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3170 = call i32 @s2n_print_stacktrace(ptr noundef %3169) #11
  %3171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3172 = trunc nuw i8 %3171 to i1
  br i1 %3172, label %3173, label %3177

3173:                                             ; preds = %3167
  %3174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3175 = call i32 @fileno(ptr noundef %3174) #11
  %3176 = call i32 @isatty(i32 noundef %3175) #11
  %.not641 = icmp eq i32 %3176, 0
  br i1 %.not641, label %3177, label %3178

3177:                                             ; preds = %3173, %3167
  br label %3178

3178:                                             ; preds = %3173, %3177
  %.str.5.sink1855 = phi ptr [ @.str.5, %3177 ], [ @.str.2, %3173 ]
  store i32 %3168, ptr %2002, align 4, !tbaa !5
  %3179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3180 = load i32, ptr @test_count, align 4, !tbaa !5
  %3181 = load i32, ptr %1948, align 4, !tbaa !5
  %3182 = call ptr @s2n_strerror(i32 noundef %3181, ptr noundef nonnull @.str.4) #11
  %3183 = load i32, ptr %1948, align 4, !tbaa !5
  %3184 = call ptr @s2n_strerror_debug(i32 noundef %3183, ptr noundef nonnull @.str.4) #11
  %3185 = load i32, ptr %2002, align 4, !tbaa !5
  %3186 = call ptr @strerror(i32 noundef %3185) #11
  %3187 = load i32, ptr %2002, align 4, !tbaa !5
  %3188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3179, ptr noundef nonnull %.str.5.sink1855, i32 noundef %3180, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %3182, ptr noundef %3184, ptr noundef %3186, i32 noundef %3187) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3189:                                             ; preds = %3162
  %3190 = load i32, ptr @test_count, align 4, !tbaa !5
  %3191 = add nsw i32 %3190, 1
  store i32 %3191, ptr @test_count, align 4, !tbaa !5
  %3192 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3165, ptr noundef nonnull %151) #11
  %3193 = icmp eq i32 %3192, -1
  br i1 %3193, label %3194, label %3216

3194:                                             ; preds = %3189
  %3195 = load i32, ptr %2002, align 4, !tbaa !5
  %3196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3197 = call i32 @s2n_print_stacktrace(ptr noundef %3196) #11
  %3198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3199 = trunc nuw i8 %3198 to i1
  br i1 %3199, label %3200, label %3204

3200:                                             ; preds = %3194
  %3201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3202 = call i32 @fileno(ptr noundef %3201) #11
  %3203 = call i32 @isatty(i32 noundef %3202) #11
  %.not640 = icmp eq i32 %3203, 0
  br i1 %.not640, label %3204, label %3205

3204:                                             ; preds = %3200, %3194
  br label %3205

3205:                                             ; preds = %3200, %3204
  %.str.5.sink1864 = phi ptr [ @.str.5, %3204 ], [ @.str.2, %3200 ]
  store i32 %3195, ptr %2002, align 4, !tbaa !5
  %3206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3207 = load i32, ptr @test_count, align 4, !tbaa !5
  %3208 = load i32, ptr %1948, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror(i32 noundef %3208, ptr noundef nonnull @.str.4) #11
  %3210 = load i32, ptr %1948, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror_debug(i32 noundef %3210, ptr noundef nonnull @.str.4) #11
  %3212 = load i32, ptr %2002, align 4, !tbaa !5
  %3213 = call ptr @strerror(i32 noundef %3212) #11
  %3214 = load i32, ptr %2002, align 4, !tbaa !5
  %3215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3206, ptr noundef nonnull %.str.5.sink1864, i32 noundef %3207, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %3209, ptr noundef %3211, ptr noundef %3213, i32 noundef %3214) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3216:                                             ; preds = %3189
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %19) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %19, i8 0, i64 40, i1 false)
  %3217 = load i32, ptr @test_count, align 4, !tbaa !5
  %3218 = add nsw i32 %3217, 1
  store i32 %3218, ptr @test_count, align 4, !tbaa !5
  %3219 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %19, i32 noundef 1) #11
  %3220 = icmp eq i32 %3219, -1
  br i1 %3220, label %3221, label %3243

3221:                                             ; preds = %3216
  %3222 = load i32, ptr %2002, align 4, !tbaa !5
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = call i32 @s2n_print_stacktrace(ptr noundef %3223) #11
  %3225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3226 = trunc nuw i8 %3225 to i1
  br i1 %3226, label %3227, label %3231

3227:                                             ; preds = %3221
  %3228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3229 = call i32 @fileno(ptr noundef %3228) #11
  %3230 = call i32 @isatty(i32 noundef %3229) #11
  %.not639 = icmp eq i32 %3230, 0
  br i1 %.not639, label %3231, label %3232

3231:                                             ; preds = %3227, %3221
  br label %3232

3232:                                             ; preds = %3227, %3231
  %.str.5.sink1873 = phi ptr [ @.str.5, %3231 ], [ @.str.2, %3227 ]
  store i32 %3222, ptr %2002, align 4, !tbaa !5
  %3233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3234 = load i32, ptr @test_count, align 4, !tbaa !5
  %3235 = load i32, ptr %1948, align 4, !tbaa !5
  %3236 = call ptr @s2n_strerror(i32 noundef %3235, ptr noundef nonnull @.str.4) #11
  %3237 = load i32, ptr %1948, align 4, !tbaa !5
  %3238 = call ptr @s2n_strerror_debug(i32 noundef %3237, ptr noundef nonnull @.str.4) #11
  %3239 = load i32, ptr %2002, align 4, !tbaa !5
  %3240 = call ptr @strerror(i32 noundef %3239) #11
  %3241 = load i32, ptr %2002, align 4, !tbaa !5
  %3242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3233, ptr noundef nonnull %.str.5.sink1873, i32 noundef %3234, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %3236, ptr noundef %3238, ptr noundef %3240, i32 noundef %3241) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3243:                                             ; preds = %3216
  %3244 = load i32, ptr @test_count, align 4, !tbaa !5
  %3245 = add nsw i32 %3244, 1
  store i32 %3245, ptr @test_count, align 4, !tbaa !5
  %3246 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %19, i8 noundef zeroext 13) #11
  %3247 = icmp eq i32 %3246, -1
  br i1 %3247, label %3248, label %3270

3248:                                             ; preds = %3243
  %3249 = load i32, ptr %2002, align 4, !tbaa !5
  %3250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3251 = call i32 @s2n_print_stacktrace(ptr noundef %3250) #11
  %3252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3253 = trunc nuw i8 %3252 to i1
  br i1 %3253, label %3254, label %3258

3254:                                             ; preds = %3248
  %3255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3256 = call i32 @fileno(ptr noundef %3255) #11
  %3257 = call i32 @isatty(i32 noundef %3256) #11
  %.not638 = icmp eq i32 %3257, 0
  br i1 %.not638, label %3258, label %3259

3258:                                             ; preds = %3254, %3248
  br label %3259

3259:                                             ; preds = %3254, %3258
  %.str.5.sink1882 = phi ptr [ @.str.5, %3258 ], [ @.str.2, %3254 ]
  store i32 %3249, ptr %2002, align 4, !tbaa !5
  %3260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3261 = load i32, ptr @test_count, align 4, !tbaa !5
  %3262 = load i32, ptr %1948, align 4, !tbaa !5
  %3263 = call ptr @s2n_strerror(i32 noundef %3262, ptr noundef nonnull @.str.4) #11
  %3264 = load i32, ptr %1948, align 4, !tbaa !5
  %3265 = call ptr @s2n_strerror_debug(i32 noundef %3264, ptr noundef nonnull @.str.4) #11
  %3266 = load i32, ptr %2002, align 4, !tbaa !5
  %3267 = call ptr @strerror(i32 noundef %3266) #11
  %3268 = load i32, ptr %2002, align 4, !tbaa !5
  %3269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3260, ptr noundef nonnull %.str.5.sink1882, i32 noundef %3261, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %3263, ptr noundef %3265, ptr noundef %3267, i32 noundef %3268) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3270:                                             ; preds = %3243
  %3271 = load i32, ptr @test_count, align 4, !tbaa !5
  %3272 = add nsw i32 %3271, 1
  store i32 %3272, ptr @test_count, align 4, !tbaa !5
  %3273 = call i32 %969(ptr noundef nonnull %3165, ptr noundef nonnull %19) #11
  %3274 = icmp eq i32 %3273, -1
  br i1 %3274, label %3297, label %3275

3275:                                             ; preds = %3270
  %3276 = load i32, ptr %2002, align 4, !tbaa !5
  %3277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3278 = call i32 @s2n_print_stacktrace(ptr noundef %3277) #11
  %3279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3280 = trunc nuw i8 %3279 to i1
  br i1 %3280, label %3281, label %3285

3281:                                             ; preds = %3275
  %3282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3283 = call i32 @fileno(ptr noundef %3282) #11
  %3284 = call i32 @isatty(i32 noundef %3283) #11
  %.not570 = icmp eq i32 %3284, 0
  br i1 %.not570, label %3285, label %3286

3285:                                             ; preds = %3281, %3275
  br label %3286

3286:                                             ; preds = %3281, %3285
  %.str.5.sink1891 = phi ptr [ @.str.5, %3285 ], [ @.str.2, %3281 ]
  store i32 %3276, ptr %2002, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = load i32, ptr @test_count, align 4, !tbaa !5
  %3289 = load i32, ptr %1948, align 4, !tbaa !5
  %3290 = call ptr @s2n_strerror(i32 noundef %3289, ptr noundef nonnull @.str.4) #11
  %3291 = load i32, ptr %1948, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror_debug(i32 noundef %3291, ptr noundef nonnull @.str.4) #11
  %3293 = load i32, ptr %2002, align 4, !tbaa !5
  %3294 = call ptr @strerror(i32 noundef %3293) #11
  %3295 = load i32, ptr %2002, align 4, !tbaa !5
  %3296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3287, ptr noundef nonnull %.str.5.sink1891, i32 noundef %3288, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %3290, ptr noundef %3292, ptr noundef %3294, i32 noundef %3295) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3297:                                             ; preds = %3270
  %3298 = load i32, ptr @test_count, align 4, !tbaa !5
  %3299 = add nsw i32 %3298, 1
  store i32 %3299, ptr @test_count, align 4, !tbaa !5
  %3300 = load i32, ptr %1948, align 4, !tbaa !5
  %3301 = icmp eq i32 %3300, 335544322
  br i1 %3301, label %3324, label %3302

3302:                                             ; preds = %3297
  %3303 = load i32, ptr %2002, align 4, !tbaa !5
  %3304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3305 = call i32 @s2n_print_stacktrace(ptr noundef %3304) #11
  %3306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3307 = trunc nuw i8 %3306 to i1
  br i1 %3307, label %3308, label %3312

3308:                                             ; preds = %3302
  %3309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3310 = call i32 @fileno(ptr noundef %3309) #11
  %3311 = call i32 @isatty(i32 noundef %3310) #11
  %.not571 = icmp eq i32 %3311, 0
  br i1 %.not571, label %3312, label %3313

3312:                                             ; preds = %3308, %3302
  br label %3313

3313:                                             ; preds = %3308, %3312
  %.str.5.sink1900 = phi ptr [ @.str.5, %3312 ], [ @.str.2, %3308 ]
  store i32 %3303, ptr %2002, align 4, !tbaa !5
  %3314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3315 = load i32, ptr @test_count, align 4, !tbaa !5
  %3316 = load i32, ptr %1948, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror(i32 noundef %3316, ptr noundef nonnull @.str.4) #11
  %3318 = load i32, ptr %1948, align 4, !tbaa !5
  %3319 = call ptr @s2n_strerror_debug(i32 noundef %3318, ptr noundef nonnull @.str.4) #11
  %3320 = load i32, ptr %2002, align 4, !tbaa !5
  %3321 = call ptr @strerror(i32 noundef %3320) #11
  %3322 = load i32, ptr %2002, align 4, !tbaa !5
  %3323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3314, ptr noundef nonnull %.str.5.sink1900, i32 noundef %3315, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %3317, ptr noundef %3319, ptr noundef %3321, i32 noundef %3322) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3324:                                             ; preds = %3297
  %3325 = add nsw i32 %3298, 2
  store i32 %3325, ptr @test_count, align 4, !tbaa !5
  %3326 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %3327 = icmp eq ptr %3326, null
  br i1 %3327, label %3328, label %3350

3328:                                             ; preds = %3324
  %3329 = load i32, ptr %2002, align 4, !tbaa !5
  %3330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3331 = call i32 @s2n_print_stacktrace(ptr noundef %3330) #11
  %3332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3333 = trunc nuw i8 %3332 to i1
  br i1 %3333, label %3334, label %3338

3334:                                             ; preds = %3328
  %3335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3336 = call i32 @fileno(ptr noundef %3335) #11
  %3337 = call i32 @isatty(i32 noundef %3336) #11
  %.not637 = icmp eq i32 %3337, 0
  br i1 %.not637, label %3338, label %3339

3338:                                             ; preds = %3334, %3328
  br label %3339

3339:                                             ; preds = %3334, %3338
  %.str.5.sink1909 = phi ptr [ @.str.5, %3338 ], [ @.str.2, %3334 ]
  store i32 %3329, ptr %2002, align 4, !tbaa !5
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = load i32, ptr @test_count, align 4, !tbaa !5
  %3342 = load i32, ptr %1948, align 4, !tbaa !5
  %3343 = call ptr @s2n_strerror(i32 noundef %3342, ptr noundef nonnull @.str.4) #11
  %3344 = load i32, ptr %1948, align 4, !tbaa !5
  %3345 = call ptr @s2n_strerror_debug(i32 noundef %3344, ptr noundef nonnull @.str.4) #11
  %3346 = load i32, ptr %2002, align 4, !tbaa !5
  %3347 = call ptr @strerror(i32 noundef %3346) #11
  %3348 = load i32, ptr %2002, align 4, !tbaa !5
  %3349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3340, ptr noundef nonnull %.str.5.sink1909, i32 noundef %3341, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %3343, ptr noundef %3345, ptr noundef %3347, i32 noundef %3348) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3350:                                             ; preds = %3324
  store i32 0, ptr %1948, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %2002, align 4, !tbaa !5
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = add nsw i32 %3351, 1
  store i32 %3352, ptr @test_count, align 4, !tbaa !5
  %3353 = getelementptr inbounds i8, ptr %3165, i64 2001
  %3354 = load i8, ptr %3353, align 1, !tbaa !54
  %3355 = icmp eq i8 %3354, 70
  br i1 %3355, label %3378, label %3356

3356:                                             ; preds = %3350
  %3357 = load i32, ptr %2002, align 4, !tbaa !5
  %3358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3359 = call i32 @s2n_print_stacktrace(ptr noundef %3358) #11
  %3360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3361 = trunc nuw i8 %3360 to i1
  br i1 %3361, label %3362, label %3366

3362:                                             ; preds = %3356
  %3363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3364 = call i32 @fileno(ptr noundef %3363) #11
  %3365 = call i32 @isatty(i32 noundef %3364) #11
  %.not572 = icmp eq i32 %3365, 0
  br i1 %.not572, label %3366, label %3367

3366:                                             ; preds = %3362, %3356
  br label %3367

3367:                                             ; preds = %3362, %3366
  %.str.5.sink1918 = phi ptr [ @.str.5, %3366 ], [ @.str.2, %3362 ]
  store i32 %3357, ptr %2002, align 4, !tbaa !5
  %3368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3369 = load i32, ptr @test_count, align 4, !tbaa !5
  %3370 = load i32, ptr %1948, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror(i32 noundef %3370, ptr noundef nonnull @.str.4) #11
  %3372 = load i32, ptr %1948, align 4, !tbaa !5
  %3373 = call ptr @s2n_strerror_debug(i32 noundef %3372, ptr noundef nonnull @.str.4) #11
  %3374 = load i32, ptr %2002, align 4, !tbaa !5
  %3375 = call ptr @strerror(i32 noundef %3374) #11
  %3376 = load i32, ptr %2002, align 4, !tbaa !5
  %3377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3368, ptr noundef nonnull %.str.5.sink1918, i32 noundef %3369, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %3371, ptr noundef %3373, ptr noundef %3375, i32 noundef %3376) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3378:                                             ; preds = %3350
  %3379 = add nsw i32 %3351, 2
  store i32 %3379, ptr @test_count, align 4, !tbaa !5
  %3380 = call i32 @s2n_connection_free(ptr noundef nonnull %3165) #11
  %3381 = icmp eq i32 %3380, -1
  br i1 %3381, label %3382, label %3404

3382:                                             ; preds = %3378
  %3383 = load i32, ptr %2002, align 4, !tbaa !5
  %3384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3385 = call i32 @s2n_print_stacktrace(ptr noundef %3384) #11
  %3386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3387 = trunc nuw i8 %3386 to i1
  br i1 %3387, label %3388, label %3392

3388:                                             ; preds = %3382
  %3389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3390 = call i32 @fileno(ptr noundef %3389) #11
  %3391 = call i32 @isatty(i32 noundef %3390) #11
  %.not636 = icmp eq i32 %3391, 0
  br i1 %.not636, label %3392, label %3393

3392:                                             ; preds = %3388, %3382
  br label %3393

3393:                                             ; preds = %3388, %3392
  %.str.5.sink1927 = phi ptr [ @.str.5, %3392 ], [ @.str.2, %3388 ]
  store i32 %3383, ptr %2002, align 4, !tbaa !5
  %3394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3395 = load i32, ptr @test_count, align 4, !tbaa !5
  %3396 = load i32, ptr %1948, align 4, !tbaa !5
  %3397 = call ptr @s2n_strerror(i32 noundef %3396, ptr noundef nonnull @.str.4) #11
  %3398 = load i32, ptr %1948, align 4, !tbaa !5
  %3399 = call ptr @s2n_strerror_debug(i32 noundef %3398, ptr noundef nonnull @.str.4) #11
  %3400 = load i32, ptr %2002, align 4, !tbaa !5
  %3401 = call ptr @strerror(i32 noundef %3400) #11
  %3402 = load i32, ptr %2002, align 4, !tbaa !5
  %3403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3394, ptr noundef nonnull %.str.5.sink1927, i32 noundef %3395, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %3397, ptr noundef %3399, ptr noundef %3401, i32 noundef %3402) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3404:                                             ; preds = %3378
  %3405 = load i32, ptr @test_count, align 4, !tbaa !5
  %3406 = add nsw i32 %3405, 1
  store i32 %3406, ptr @test_count, align 4, !tbaa !5
  %3407 = call i32 @s2n_stuffer_free(ptr noundef nonnull %19) #11
  %3408 = icmp eq i32 %3407, -1
  br i1 %3408, label %3409, label %3431

3409:                                             ; preds = %3404
  %3410 = load i32, ptr %2002, align 4, !tbaa !5
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = call i32 @s2n_print_stacktrace(ptr noundef %3411) #11
  %3413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3414 = trunc nuw i8 %3413 to i1
  br i1 %3414, label %3415, label %3419

3415:                                             ; preds = %3409
  %3416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3417 = call i32 @fileno(ptr noundef %3416) #11
  %3418 = call i32 @isatty(i32 noundef %3417) #11
  %.not635 = icmp eq i32 %3418, 0
  br i1 %.not635, label %3419, label %3420

3419:                                             ; preds = %3415, %3409
  br label %3420

3420:                                             ; preds = %3415, %3419
  %.str.5.sink1936 = phi ptr [ @.str.5, %3419 ], [ @.str.2, %3415 ]
  store i32 %3410, ptr %2002, align 4, !tbaa !5
  %3421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3422 = load i32, ptr @test_count, align 4, !tbaa !5
  %3423 = load i32, ptr %1948, align 4, !tbaa !5
  %3424 = call ptr @s2n_strerror(i32 noundef %3423, ptr noundef nonnull @.str.4) #11
  %3425 = load i32, ptr %1948, align 4, !tbaa !5
  %3426 = call ptr @s2n_strerror_debug(i32 noundef %3425, ptr noundef nonnull @.str.4) #11
  %3427 = load i32, ptr %2002, align 4, !tbaa !5
  %3428 = call ptr @strerror(i32 noundef %3427) #11
  %3429 = load i32, ptr %2002, align 4, !tbaa !5
  %3430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3421, ptr noundef nonnull %.str.5.sink1936, i32 noundef %3422, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %3424, ptr noundef %3426, ptr noundef %3428, i32 noundef %3429) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3431:                                             ; preds = %3404
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #11
  %3432 = load i32, ptr @test_count, align 4, !tbaa !5
  %3433 = add nsw i32 %3432, 1
  store i32 %3433, ptr @test_count, align 4, !tbaa !5
  %3434 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %3435 = icmp eq ptr %3434, null
  br i1 %3435, label %3436, label %3458

3436:                                             ; preds = %3431
  %3437 = load i32, ptr %2002, align 4, !tbaa !5
  %3438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3439 = call i32 @s2n_print_stacktrace(ptr noundef %3438) #11
  %3440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3441 = trunc nuw i8 %3440 to i1
  br i1 %3441, label %3442, label %3446

3442:                                             ; preds = %3436
  %3443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3444 = call i32 @fileno(ptr noundef %3443) #11
  %3445 = call i32 @isatty(i32 noundef %3444) #11
  %.not634 = icmp eq i32 %3445, 0
  br i1 %.not634, label %3446, label %3447

3446:                                             ; preds = %3442, %3436
  br label %3447

3447:                                             ; preds = %3442, %3446
  %.str.5.sink1945 = phi ptr [ @.str.5, %3446 ], [ @.str.2, %3442 ]
  store i32 %3437, ptr %2002, align 4, !tbaa !5
  %3448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3449 = load i32, ptr @test_count, align 4, !tbaa !5
  %3450 = load i32, ptr %1948, align 4, !tbaa !5
  %3451 = call ptr @s2n_strerror(i32 noundef %3450, ptr noundef nonnull @.str.4) #11
  %3452 = load i32, ptr %1948, align 4, !tbaa !5
  %3453 = call ptr @s2n_strerror_debug(i32 noundef %3452, ptr noundef nonnull @.str.4) #11
  %3454 = load i32, ptr %2002, align 4, !tbaa !5
  %3455 = call ptr @strerror(i32 noundef %3454) #11
  %3456 = load i32, ptr %2002, align 4, !tbaa !5
  %3457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3448, ptr noundef nonnull %.str.5.sink1945, i32 noundef %3449, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %3451, ptr noundef %3453, ptr noundef %3455, i32 noundef %3456) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3458:                                             ; preds = %3431
  %3459 = load i32, ptr @test_count, align 4, !tbaa !5
  %3460 = add nsw i32 %3459, 1
  store i32 %3460, ptr @test_count, align 4, !tbaa !5
  %3461 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3434, ptr noundef nonnull %151) #11
  %3462 = icmp eq i32 %3461, -1
  br i1 %3462, label %3463, label %3485

3463:                                             ; preds = %3458
  %3464 = load i32, ptr %2002, align 4, !tbaa !5
  %3465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3466 = call i32 @s2n_print_stacktrace(ptr noundef %3465) #11
  %3467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3468 = trunc nuw i8 %3467 to i1
  br i1 %3468, label %3469, label %3473

3469:                                             ; preds = %3463
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = call i32 @fileno(ptr noundef %3470) #11
  %3472 = call i32 @isatty(i32 noundef %3471) #11
  %.not633 = icmp eq i32 %3472, 0
  br i1 %.not633, label %3473, label %3474

3473:                                             ; preds = %3469, %3463
  br label %3474

3474:                                             ; preds = %3469, %3473
  %.str.5.sink1954 = phi ptr [ @.str.5, %3473 ], [ @.str.2, %3469 ]
  store i32 %3464, ptr %2002, align 4, !tbaa !5
  %3475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3476 = load i32, ptr @test_count, align 4, !tbaa !5
  %3477 = load i32, ptr %1948, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror(i32 noundef %3477, ptr noundef nonnull @.str.4) #11
  %3479 = load i32, ptr %1948, align 4, !tbaa !5
  %3480 = call ptr @s2n_strerror_debug(i32 noundef %3479, ptr noundef nonnull @.str.4) #11
  %3481 = load i32, ptr %2002, align 4, !tbaa !5
  %3482 = call ptr @strerror(i32 noundef %3481) #11
  %3483 = load i32, ptr %2002, align 4, !tbaa !5
  %3484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3475, ptr noundef nonnull %.str.5.sink1954, i32 noundef %3476, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %3478, ptr noundef %3480, ptr noundef %3482, i32 noundef %3483) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3485:                                             ; preds = %3458
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %3486 = load i32, ptr @test_count, align 4, !tbaa !5
  %3487 = add nsw i32 %3486, 1
  store i32 %3487, ptr @test_count, align 4, !tbaa !5
  %3488 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %20, i32 noundef 5) #11
  %3489 = icmp eq i32 %3488, -1
  br i1 %3489, label %3490, label %3512

3490:                                             ; preds = %3485
  %3491 = load i32, ptr %2002, align 4, !tbaa !5
  %3492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3493 = call i32 @s2n_print_stacktrace(ptr noundef %3492) #11
  %3494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3495 = trunc nuw i8 %3494 to i1
  br i1 %3495, label %3496, label %3500

3496:                                             ; preds = %3490
  %3497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3498 = call i32 @fileno(ptr noundef %3497) #11
  %3499 = call i32 @isatty(i32 noundef %3498) #11
  %.not632 = icmp eq i32 %3499, 0
  br i1 %.not632, label %3500, label %3501

3500:                                             ; preds = %3496, %3490
  br label %3501

3501:                                             ; preds = %3496, %3500
  %.str.5.sink1963 = phi ptr [ @.str.5, %3500 ], [ @.str.2, %3496 ]
  store i32 %3491, ptr %2002, align 4, !tbaa !5
  %3502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3503 = load i32, ptr @test_count, align 4, !tbaa !5
  %3504 = load i32, ptr %1948, align 4, !tbaa !5
  %3505 = call ptr @s2n_strerror(i32 noundef %3504, ptr noundef nonnull @.str.4) #11
  %3506 = load i32, ptr %1948, align 4, !tbaa !5
  %3507 = call ptr @s2n_strerror_debug(i32 noundef %3506, ptr noundef nonnull @.str.4) #11
  %3508 = load i32, ptr %2002, align 4, !tbaa !5
  %3509 = call ptr @strerror(i32 noundef %3508) #11
  %3510 = load i32, ptr %2002, align 4, !tbaa !5
  %3511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3502, ptr noundef nonnull %.str.5.sink1963, i32 noundef %3503, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3505, ptr noundef %3507, ptr noundef %3509, i32 noundef %3510) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3512:                                             ; preds = %3485
  %3513 = load i32, ptr @test_count, align 4, !tbaa !5
  %3514 = add nsw i32 %3513, 1
  store i32 %3514, ptr @test_count, align 4, !tbaa !5
  %3515 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %20, i8 noundef zeroext 2) #11
  %3516 = icmp eq i32 %3515, -1
  br i1 %3516, label %3517, label %3539

3517:                                             ; preds = %3512
  %3518 = load i32, ptr %2002, align 4, !tbaa !5
  %3519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3520 = call i32 @s2n_print_stacktrace(ptr noundef %3519) #11
  %3521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3522 = trunc nuw i8 %3521 to i1
  br i1 %3522, label %3523, label %3527

3523:                                             ; preds = %3517
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = call i32 @fileno(ptr noundef %3524) #11
  %3526 = call i32 @isatty(i32 noundef %3525) #11
  %.not631 = icmp eq i32 %3526, 0
  br i1 %.not631, label %3527, label %3528

3527:                                             ; preds = %3523, %3517
  br label %3528

3528:                                             ; preds = %3523, %3527
  %.str.5.sink1972 = phi ptr [ @.str.5, %3527 ], [ @.str.2, %3523 ]
  store i32 %3518, ptr %2002, align 4, !tbaa !5
  %3529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3530 = load i32, ptr @test_count, align 4, !tbaa !5
  %3531 = load i32, ptr %1948, align 4, !tbaa !5
  %3532 = call ptr @s2n_strerror(i32 noundef %3531, ptr noundef nonnull @.str.4) #11
  %3533 = load i32, ptr %1948, align 4, !tbaa !5
  %3534 = call ptr @s2n_strerror_debug(i32 noundef %3533, ptr noundef nonnull @.str.4) #11
  %3535 = load i32, ptr %2002, align 4, !tbaa !5
  %3536 = call ptr @strerror(i32 noundef %3535) #11
  %3537 = load i32, ptr %2002, align 4, !tbaa !5
  %3538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3529, ptr noundef nonnull %.str.5.sink1972, i32 noundef %3530, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 344, ptr noundef %3532, ptr noundef %3534, ptr noundef %3536, i32 noundef %3537) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3539:                                             ; preds = %3512
  %3540 = load i32, ptr @test_count, align 4, !tbaa !5
  %3541 = add nsw i32 %3540, 1
  store i32 %3541, ptr @test_count, align 4, !tbaa !5
  %3542 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %20, i16 noundef zeroext 770) #11
  %3543 = icmp eq i32 %3542, -1
  br i1 %3543, label %3544, label %3566

3544:                                             ; preds = %3539
  %3545 = load i32, ptr %2002, align 4, !tbaa !5
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = call i32 @s2n_print_stacktrace(ptr noundef %3546) #11
  %3548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3549 = trunc nuw i8 %3548 to i1
  br i1 %3549, label %3550, label %3554

3550:                                             ; preds = %3544
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = call i32 @fileno(ptr noundef %3551) #11
  %3553 = call i32 @isatty(i32 noundef %3552) #11
  %.not630 = icmp eq i32 %3553, 0
  br i1 %.not630, label %3554, label %3555

3554:                                             ; preds = %3550, %3544
  br label %3555

3555:                                             ; preds = %3550, %3554
  %.str.5.sink1981 = phi ptr [ @.str.5, %3554 ], [ @.str.2, %3550 ]
  store i32 %3545, ptr %2002, align 4, !tbaa !5
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = load i32, ptr @test_count, align 4, !tbaa !5
  %3558 = load i32, ptr %1948, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror(i32 noundef %3558, ptr noundef nonnull @.str.4) #11
  %3560 = load i32, ptr %1948, align 4, !tbaa !5
  %3561 = call ptr @s2n_strerror_debug(i32 noundef %3560, ptr noundef nonnull @.str.4) #11
  %3562 = load i32, ptr %2002, align 4, !tbaa !5
  %3563 = call ptr @strerror(i32 noundef %3562) #11
  %3564 = load i32, ptr %2002, align 4, !tbaa !5
  %3565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3556, ptr noundef nonnull %.str.5.sink1981, i32 noundef %3557, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %3559, ptr noundef %3561, ptr noundef %3563, i32 noundef %3564) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3566:                                             ; preds = %3539
  %3567 = load i32, ptr @test_count, align 4, !tbaa !5
  %3568 = add nsw i32 %3567, 1
  store i32 %3568, ptr @test_count, align 4, !tbaa !5
  %3569 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %20, i16 noundef zeroext 771) #11
  %3570 = icmp eq i32 %3569, -1
  br i1 %3570, label %3571, label %3593

3571:                                             ; preds = %3566
  %3572 = load i32, ptr %2002, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = call i32 @s2n_print_stacktrace(ptr noundef %3573) #11
  %3575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3576 = trunc nuw i8 %3575 to i1
  br i1 %3576, label %3577, label %3581

3577:                                             ; preds = %3571
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = call i32 @fileno(ptr noundef %3578) #11
  %3580 = call i32 @isatty(i32 noundef %3579) #11
  %.not629 = icmp eq i32 %3580, 0
  br i1 %.not629, label %3581, label %3582

3581:                                             ; preds = %3577, %3571
  br label %3582

3582:                                             ; preds = %3577, %3581
  %.str.5.sink1990 = phi ptr [ @.str.5, %3581 ], [ @.str.2, %3577 ]
  store i32 %3572, ptr %2002, align 4, !tbaa !5
  %3583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3584 = load i32, ptr @test_count, align 4, !tbaa !5
  %3585 = load i32, ptr %1948, align 4, !tbaa !5
  %3586 = call ptr @s2n_strerror(i32 noundef %3585, ptr noundef nonnull @.str.4) #11
  %3587 = load i32, ptr %1948, align 4, !tbaa !5
  %3588 = call ptr @s2n_strerror_debug(i32 noundef %3587, ptr noundef nonnull @.str.4) #11
  %3589 = load i32, ptr %2002, align 4, !tbaa !5
  %3590 = call ptr @strerror(i32 noundef %3589) #11
  %3591 = load i32, ptr %2002, align 4, !tbaa !5
  %3592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3583, ptr noundef nonnull %.str.5.sink1990, i32 noundef %3584, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %3586, ptr noundef %3588, ptr noundef %3590, i32 noundef %3591) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3593:                                             ; preds = %3566
  %3594 = load i32, ptr @test_count, align 4, !tbaa !5
  %3595 = add nsw i32 %3594, 1
  store i32 %3595, ptr @test_count, align 4, !tbaa !5
  %3596 = call i32 %969(ptr noundef nonnull %3434, ptr noundef nonnull %20) #11
  %3597 = icmp eq i32 %3596, -1
  br i1 %3597, label %3620, label %3598

3598:                                             ; preds = %3593
  %3599 = load i32, ptr %2002, align 4, !tbaa !5
  %3600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3601 = call i32 @s2n_print_stacktrace(ptr noundef %3600) #11
  %3602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3603 = trunc nuw i8 %3602 to i1
  br i1 %3603, label %3604, label %3608

3604:                                             ; preds = %3598
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = call i32 @fileno(ptr noundef %3605) #11
  %3607 = call i32 @isatty(i32 noundef %3606) #11
  %.not573 = icmp eq i32 %3607, 0
  br i1 %.not573, label %3608, label %3609

3608:                                             ; preds = %3604, %3598
  br label %3609

3609:                                             ; preds = %3604, %3608
  %.str.5.sink1999 = phi ptr [ @.str.5, %3608 ], [ @.str.2, %3604 ]
  store i32 %3599, ptr %2002, align 4, !tbaa !5
  %3610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3611 = load i32, ptr @test_count, align 4, !tbaa !5
  %3612 = load i32, ptr %1948, align 4, !tbaa !5
  %3613 = call ptr @s2n_strerror(i32 noundef %3612, ptr noundef nonnull @.str.4) #11
  %3614 = load i32, ptr %1948, align 4, !tbaa !5
  %3615 = call ptr @s2n_strerror_debug(i32 noundef %3614, ptr noundef nonnull @.str.4) #11
  %3616 = load i32, ptr %2002, align 4, !tbaa !5
  %3617 = call ptr @strerror(i32 noundef %3616) #11
  %3618 = load i32, ptr %2002, align 4, !tbaa !5
  %3619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3610, ptr noundef nonnull %.str.5.sink1999, i32 noundef %3611, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 348, ptr noundef %3613, ptr noundef %3615, ptr noundef %3617, i32 noundef %3618) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3620:                                             ; preds = %3593
  %3621 = load i32, ptr @test_count, align 4, !tbaa !5
  %3622 = add nsw i32 %3621, 1
  store i32 %3622, ptr @test_count, align 4, !tbaa !5
  %3623 = load i32, ptr %1948, align 4, !tbaa !5
  %3624 = icmp eq i32 %3623, 335544322
  br i1 %3624, label %3647, label %3625

3625:                                             ; preds = %3620
  %3626 = load i32, ptr %2002, align 4, !tbaa !5
  %3627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3628 = call i32 @s2n_print_stacktrace(ptr noundef %3627) #11
  %3629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3630 = trunc nuw i8 %3629 to i1
  br i1 %3630, label %3631, label %3635

3631:                                             ; preds = %3625
  %3632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3633 = call i32 @fileno(ptr noundef %3632) #11
  %3634 = call i32 @isatty(i32 noundef %3633) #11
  %.not574 = icmp eq i32 %3634, 0
  br i1 %.not574, label %3635, label %3636

3635:                                             ; preds = %3631, %3625
  br label %3636

3636:                                             ; preds = %3631, %3635
  %.str.5.sink2008 = phi ptr [ @.str.5, %3635 ], [ @.str.2, %3631 ]
  store i32 %3626, ptr %2002, align 4, !tbaa !5
  %3637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3638 = load i32, ptr @test_count, align 4, !tbaa !5
  %3639 = load i32, ptr %1948, align 4, !tbaa !5
  %3640 = call ptr @s2n_strerror(i32 noundef %3639, ptr noundef nonnull @.str.4) #11
  %3641 = load i32, ptr %1948, align 4, !tbaa !5
  %3642 = call ptr @s2n_strerror_debug(i32 noundef %3641, ptr noundef nonnull @.str.4) #11
  %3643 = load i32, ptr %2002, align 4, !tbaa !5
  %3644 = call ptr @strerror(i32 noundef %3643) #11
  %3645 = load i32, ptr %2002, align 4, !tbaa !5
  %3646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3637, ptr noundef nonnull %.str.5.sink2008, i32 noundef %3638, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 348, ptr noundef %3640, ptr noundef %3642, ptr noundef %3644, i32 noundef %3645) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3647:                                             ; preds = %3620
  %3648 = add nsw i32 %3621, 2
  store i32 %3648, ptr @test_count, align 4, !tbaa !5
  %3649 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %3650 = icmp eq ptr %3649, null
  br i1 %3650, label %3651, label %3673

3651:                                             ; preds = %3647
  %3652 = load i32, ptr %2002, align 4, !tbaa !5
  %3653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3654 = call i32 @s2n_print_stacktrace(ptr noundef %3653) #11
  %3655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3656 = trunc nuw i8 %3655 to i1
  br i1 %3656, label %3657, label %3661

3657:                                             ; preds = %3651
  %3658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3659 = call i32 @fileno(ptr noundef %3658) #11
  %3660 = call i32 @isatty(i32 noundef %3659) #11
  %.not628 = icmp eq i32 %3660, 0
  br i1 %.not628, label %3661, label %3662

3661:                                             ; preds = %3657, %3651
  br label %3662

3662:                                             ; preds = %3657, %3661
  %.str.5.sink2017 = phi ptr [ @.str.5, %3661 ], [ @.str.2, %3657 ]
  store i32 %3652, ptr %2002, align 4, !tbaa !5
  %3663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3664 = load i32, ptr @test_count, align 4, !tbaa !5
  %3665 = load i32, ptr %1948, align 4, !tbaa !5
  %3666 = call ptr @s2n_strerror(i32 noundef %3665, ptr noundef nonnull @.str.4) #11
  %3667 = load i32, ptr %1948, align 4, !tbaa !5
  %3668 = call ptr @s2n_strerror_debug(i32 noundef %3667, ptr noundef nonnull @.str.4) #11
  %3669 = load i32, ptr %2002, align 4, !tbaa !5
  %3670 = call ptr @strerror(i32 noundef %3669) #11
  %3671 = load i32, ptr %2002, align 4, !tbaa !5
  %3672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3663, ptr noundef nonnull %.str.5.sink2017, i32 noundef %3664, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 348, ptr noundef %3666, ptr noundef %3668, ptr noundef %3670, i32 noundef %3671) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3673:                                             ; preds = %3647
  store i32 0, ptr %1948, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %2002, align 4, !tbaa !5
  %3674 = load i32, ptr @test_count, align 4, !tbaa !5
  %3675 = add nsw i32 %3674, 1
  store i32 %3675, ptr @test_count, align 4, !tbaa !5
  %3676 = getelementptr inbounds i8, ptr %3434, i64 2001
  %3677 = load i8, ptr %3676, align 1, !tbaa !54
  %3678 = icmp eq i8 %3677, 70
  br i1 %3678, label %3701, label %3679

3679:                                             ; preds = %3673
  %3680 = load i32, ptr %2002, align 4, !tbaa !5
  %3681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3682 = call i32 @s2n_print_stacktrace(ptr noundef %3681) #11
  %3683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3684 = trunc nuw i8 %3683 to i1
  br i1 %3684, label %3685, label %3689

3685:                                             ; preds = %3679
  %3686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3687 = call i32 @fileno(ptr noundef %3686) #11
  %3688 = call i32 @isatty(i32 noundef %3687) #11
  %.not575 = icmp eq i32 %3688, 0
  br i1 %.not575, label %3689, label %3690

3689:                                             ; preds = %3685, %3679
  br label %3690

3690:                                             ; preds = %3685, %3689
  %.str.5.sink2026 = phi ptr [ @.str.5, %3689 ], [ @.str.2, %3685 ]
  store i32 %3680, ptr %2002, align 4, !tbaa !5
  %3691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3692 = load i32, ptr @test_count, align 4, !tbaa !5
  %3693 = load i32, ptr %1948, align 4, !tbaa !5
  %3694 = call ptr @s2n_strerror(i32 noundef %3693, ptr noundef nonnull @.str.4) #11
  %3695 = load i32, ptr %1948, align 4, !tbaa !5
  %3696 = call ptr @s2n_strerror_debug(i32 noundef %3695, ptr noundef nonnull @.str.4) #11
  %3697 = load i32, ptr %2002, align 4, !tbaa !5
  %3698 = call ptr @strerror(i32 noundef %3697) #11
  %3699 = load i32, ptr %2002, align 4, !tbaa !5
  %3700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3691, ptr noundef nonnull %.str.5.sink2026, i32 noundef %3692, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %3694, ptr noundef %3696, ptr noundef %3698, i32 noundef %3699) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3701:                                             ; preds = %3673
  %3702 = add nsw i32 %3674, 2
  store i32 %3702, ptr @test_count, align 4, !tbaa !5
  %3703 = call i32 @s2n_connection_free(ptr noundef nonnull %3434) #11
  %3704 = icmp eq i32 %3703, -1
  br i1 %3704, label %3705, label %3727

3705:                                             ; preds = %3701
  %3706 = load i32, ptr %2002, align 4, !tbaa !5
  %3707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3708 = call i32 @s2n_print_stacktrace(ptr noundef %3707) #11
  %3709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3710 = trunc nuw i8 %3709 to i1
  br i1 %3710, label %3711, label %3715

3711:                                             ; preds = %3705
  %3712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3713 = call i32 @fileno(ptr noundef %3712) #11
  %3714 = call i32 @isatty(i32 noundef %3713) #11
  %.not627 = icmp eq i32 %3714, 0
  br i1 %.not627, label %3715, label %3716

3715:                                             ; preds = %3711, %3705
  br label %3716

3716:                                             ; preds = %3711, %3715
  %.str.5.sink2035 = phi ptr [ @.str.5, %3715 ], [ @.str.2, %3711 ]
  store i32 %3706, ptr %2002, align 4, !tbaa !5
  %3717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3718 = load i32, ptr @test_count, align 4, !tbaa !5
  %3719 = load i32, ptr %1948, align 4, !tbaa !5
  %3720 = call ptr @s2n_strerror(i32 noundef %3719, ptr noundef nonnull @.str.4) #11
  %3721 = load i32, ptr %1948, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror_debug(i32 noundef %3721, ptr noundef nonnull @.str.4) #11
  %3723 = load i32, ptr %2002, align 4, !tbaa !5
  %3724 = call ptr @strerror(i32 noundef %3723) #11
  %3725 = load i32, ptr %2002, align 4, !tbaa !5
  %3726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3717, ptr noundef nonnull %.str.5.sink2035, i32 noundef %3718, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %3720, ptr noundef %3722, ptr noundef %3724, i32 noundef %3725) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3727:                                             ; preds = %3701
  %3728 = load i32, ptr @test_count, align 4, !tbaa !5
  %3729 = add nsw i32 %3728, 1
  store i32 %3729, ptr @test_count, align 4, !tbaa !5
  %3730 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #11
  %3731 = icmp eq i32 %3730, -1
  br i1 %3731, label %3732, label %3754

3732:                                             ; preds = %3727
  %3733 = load i32, ptr %2002, align 4, !tbaa !5
  %3734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3735 = call i32 @s2n_print_stacktrace(ptr noundef %3734) #11
  %3736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3737 = trunc nuw i8 %3736 to i1
  br i1 %3737, label %3738, label %3742

3738:                                             ; preds = %3732
  %3739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3740 = call i32 @fileno(ptr noundef %3739) #11
  %3741 = call i32 @isatty(i32 noundef %3740) #11
  %.not626 = icmp eq i32 %3741, 0
  br i1 %.not626, label %3742, label %3743

3742:                                             ; preds = %3738, %3732
  br label %3743

3743:                                             ; preds = %3738, %3742
  %.str.5.sink2044 = phi ptr [ @.str.5, %3742 ], [ @.str.2, %3738 ]
  store i32 %3733, ptr %2002, align 4, !tbaa !5
  %3744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3745 = load i32, ptr @test_count, align 4, !tbaa !5
  %3746 = load i32, ptr %1948, align 4, !tbaa !5
  %3747 = call ptr @s2n_strerror(i32 noundef %3746, ptr noundef nonnull @.str.4) #11
  %3748 = load i32, ptr %1948, align 4, !tbaa !5
  %3749 = call ptr @s2n_strerror_debug(i32 noundef %3748, ptr noundef nonnull @.str.4) #11
  %3750 = load i32, ptr %2002, align 4, !tbaa !5
  %3751 = call ptr @strerror(i32 noundef %3750) #11
  %3752 = load i32, ptr %2002, align 4, !tbaa !5
  %3753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3744, ptr noundef nonnull %.str.5.sink2044, i32 noundef %3745, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 352, ptr noundef %3747, ptr noundef %3749, ptr noundef %3751, i32 noundef %3752) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3754:                                             ; preds = %3727
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #11
  %3755 = load i32, ptr @test_count, align 4, !tbaa !5
  %3756 = add nsw i32 %3755, 1
  store i32 %3756, ptr @test_count, align 4, !tbaa !5
  %3757 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %3758 = icmp eq ptr %3757, null
  br i1 %3758, label %3759, label %3781

3759:                                             ; preds = %3754
  %3760 = load i32, ptr %2002, align 4, !tbaa !5
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = call i32 @s2n_print_stacktrace(ptr noundef %3761) #11
  %3763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3764 = trunc nuw i8 %3763 to i1
  br i1 %3764, label %3765, label %3769

3765:                                             ; preds = %3759
  %3766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3767 = call i32 @fileno(ptr noundef %3766) #11
  %3768 = call i32 @isatty(i32 noundef %3767) #11
  %.not625 = icmp eq i32 %3768, 0
  br i1 %.not625, label %3769, label %3770

3769:                                             ; preds = %3765, %3759
  br label %3770

3770:                                             ; preds = %3765, %3769
  %.str.5.sink2053 = phi ptr [ @.str.5, %3769 ], [ @.str.2, %3765 ]
  store i32 %3760, ptr %2002, align 4, !tbaa !5
  %3771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3772 = load i32, ptr @test_count, align 4, !tbaa !5
  %3773 = load i32, ptr %1948, align 4, !tbaa !5
  %3774 = call ptr @s2n_strerror(i32 noundef %3773, ptr noundef nonnull @.str.4) #11
  %3775 = load i32, ptr %1948, align 4, !tbaa !5
  %3776 = call ptr @s2n_strerror_debug(i32 noundef %3775, ptr noundef nonnull @.str.4) #11
  %3777 = load i32, ptr %2002, align 4, !tbaa !5
  %3778 = call ptr @strerror(i32 noundef %3777) #11
  %3779 = load i32, ptr %2002, align 4, !tbaa !5
  %3780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3771, ptr noundef nonnull %.str.5.sink2053, i32 noundef %3772, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %3774, ptr noundef %3776, ptr noundef %3778, i32 noundef %3779) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3781:                                             ; preds = %3754
  %3782 = load i32, ptr @test_count, align 4, !tbaa !5
  %3783 = add nsw i32 %3782, 1
  store i32 %3783, ptr @test_count, align 4, !tbaa !5
  %3784 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3757, ptr noundef nonnull %151) #11
  %3785 = icmp eq i32 %3784, -1
  br i1 %3785, label %3786, label %3808

3786:                                             ; preds = %3781
  %3787 = load i32, ptr %2002, align 4, !tbaa !5
  %3788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3789 = call i32 @s2n_print_stacktrace(ptr noundef %3788) #11
  %3790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3791 = trunc nuw i8 %3790 to i1
  br i1 %3791, label %3792, label %3796

3792:                                             ; preds = %3786
  %3793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3794 = call i32 @fileno(ptr noundef %3793) #11
  %3795 = call i32 @isatty(i32 noundef %3794) #11
  %.not624 = icmp eq i32 %3795, 0
  br i1 %.not624, label %3796, label %3797

3796:                                             ; preds = %3792, %3786
  br label %3797

3797:                                             ; preds = %3792, %3796
  %.str.5.sink2062 = phi ptr [ @.str.5, %3796 ], [ @.str.2, %3792 ]
  store i32 %3787, ptr %2002, align 4, !tbaa !5
  %3798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3799 = load i32, ptr @test_count, align 4, !tbaa !5
  %3800 = load i32, ptr %1948, align 4, !tbaa !5
  %3801 = call ptr @s2n_strerror(i32 noundef %3800, ptr noundef nonnull @.str.4) #11
  %3802 = load i32, ptr %1948, align 4, !tbaa !5
  %3803 = call ptr @s2n_strerror_debug(i32 noundef %3802, ptr noundef nonnull @.str.4) #11
  %3804 = load i32, ptr %2002, align 4, !tbaa !5
  %3805 = call ptr @strerror(i32 noundef %3804) #11
  %3806 = load i32, ptr %2002, align 4, !tbaa !5
  %3807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3798, ptr noundef nonnull %.str.5.sink2062, i32 noundef %3799, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 359, ptr noundef %3801, ptr noundef %3803, ptr noundef %3805, i32 noundef %3806) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3808:                                             ; preds = %3781
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %21, i8 0, i64 40, i1 false)
  %3809 = load i32, ptr @test_count, align 4, !tbaa !5
  %3810 = add nsw i32 %3809, 1
  store i32 %3810, ptr @test_count, align 4, !tbaa !5
  %3811 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %21, i32 noundef 4) #11
  %3812 = icmp eq i32 %3811, -1
  br i1 %3812, label %3813, label %3835

3813:                                             ; preds = %3808
  %3814 = load i32, ptr %2002, align 4, !tbaa !5
  %3815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3816 = call i32 @s2n_print_stacktrace(ptr noundef %3815) #11
  %3817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3818 = trunc nuw i8 %3817 to i1
  br i1 %3818, label %3819, label %3823

3819:                                             ; preds = %3813
  %3820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3821 = call i32 @fileno(ptr noundef %3820) #11
  %3822 = call i32 @isatty(i32 noundef %3821) #11
  %.not623 = icmp eq i32 %3822, 0
  br i1 %.not623, label %3823, label %3824

3823:                                             ; preds = %3819, %3813
  br label %3824

3824:                                             ; preds = %3819, %3823
  %.str.5.sink2071 = phi ptr [ @.str.5, %3823 ], [ @.str.2, %3819 ]
  store i32 %3814, ptr %2002, align 4, !tbaa !5
  %3825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3826 = load i32, ptr @test_count, align 4, !tbaa !5
  %3827 = load i32, ptr %1948, align 4, !tbaa !5
  %3828 = call ptr @s2n_strerror(i32 noundef %3827, ptr noundef nonnull @.str.4) #11
  %3829 = load i32, ptr %1948, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror_debug(i32 noundef %3829, ptr noundef nonnull @.str.4) #11
  %3831 = load i32, ptr %2002, align 4, !tbaa !5
  %3832 = call ptr @strerror(i32 noundef %3831) #11
  %3833 = load i32, ptr %2002, align 4, !tbaa !5
  %3834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3825, ptr noundef nonnull %.str.5.sink2071, i32 noundef %3826, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 362, ptr noundef %3828, ptr noundef %3830, ptr noundef %3832, i32 noundef %3833) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3835:                                             ; preds = %3808
  %3836 = load i32, ptr @test_count, align 4, !tbaa !5
  %3837 = add nsw i32 %3836, 1
  store i32 %3837, ptr @test_count, align 4, !tbaa !5
  %3838 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %21, i8 noundef zeroext 3) #11
  %3839 = icmp eq i32 %3838, -1
  br i1 %3839, label %3840, label %3862

3840:                                             ; preds = %3835
  %3841 = load i32, ptr %2002, align 4, !tbaa !5
  %3842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3843 = call i32 @s2n_print_stacktrace(ptr noundef %3842) #11
  %3844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3845 = trunc nuw i8 %3844 to i1
  br i1 %3845, label %3846, label %3850

3846:                                             ; preds = %3840
  %3847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3848 = call i32 @fileno(ptr noundef %3847) #11
  %3849 = call i32 @isatty(i32 noundef %3848) #11
  %.not622 = icmp eq i32 %3849, 0
  br i1 %.not622, label %3850, label %3851

3850:                                             ; preds = %3846, %3840
  br label %3851

3851:                                             ; preds = %3846, %3850
  %.str.5.sink2080 = phi ptr [ @.str.5, %3850 ], [ @.str.2, %3846 ]
  store i32 %3841, ptr %2002, align 4, !tbaa !5
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = load i32, ptr @test_count, align 4, !tbaa !5
  %3854 = load i32, ptr %1948, align 4, !tbaa !5
  %3855 = call ptr @s2n_strerror(i32 noundef %3854, ptr noundef nonnull @.str.4) #11
  %3856 = load i32, ptr %1948, align 4, !tbaa !5
  %3857 = call ptr @s2n_strerror_debug(i32 noundef %3856, ptr noundef nonnull @.str.4) #11
  %3858 = load i32, ptr %2002, align 4, !tbaa !5
  %3859 = call ptr @strerror(i32 noundef %3858) #11
  %3860 = load i32, ptr %2002, align 4, !tbaa !5
  %3861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3852, ptr noundef nonnull %.str.5.sink2080, i32 noundef %3853, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 364, ptr noundef %3855, ptr noundef %3857, ptr noundef %3859, i32 noundef %3860) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3862:                                             ; preds = %3835
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = add nsw i32 %3863, 1
  store i32 %3864, ptr @test_count, align 4, !tbaa !5
  %3865 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %21, i16 noundef zeroext 770) #11
  %3866 = icmp eq i32 %3865, -1
  br i1 %3866, label %3867, label %3889

3867:                                             ; preds = %3862
  %3868 = load i32, ptr %2002, align 4, !tbaa !5
  %3869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3870 = call i32 @s2n_print_stacktrace(ptr noundef %3869) #11
  %3871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3872 = trunc nuw i8 %3871 to i1
  br i1 %3872, label %3873, label %3877

3873:                                             ; preds = %3867
  %3874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3875 = call i32 @fileno(ptr noundef %3874) #11
  %3876 = call i32 @isatty(i32 noundef %3875) #11
  %.not621 = icmp eq i32 %3876, 0
  br i1 %.not621, label %3877, label %3878

3877:                                             ; preds = %3873, %3867
  br label %3878

3878:                                             ; preds = %3873, %3877
  %.str.5.sink2089 = phi ptr [ @.str.5, %3877 ], [ @.str.2, %3873 ]
  store i32 %3868, ptr %2002, align 4, !tbaa !5
  %3879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3880 = load i32, ptr @test_count, align 4, !tbaa !5
  %3881 = load i32, ptr %1948, align 4, !tbaa !5
  %3882 = call ptr @s2n_strerror(i32 noundef %3881, ptr noundef nonnull @.str.4) #11
  %3883 = load i32, ptr %1948, align 4, !tbaa !5
  %3884 = call ptr @s2n_strerror_debug(i32 noundef %3883, ptr noundef nonnull @.str.4) #11
  %3885 = load i32, ptr %2002, align 4, !tbaa !5
  %3886 = call ptr @strerror(i32 noundef %3885) #11
  %3887 = load i32, ptr %2002, align 4, !tbaa !5
  %3888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3879, ptr noundef nonnull %.str.5.sink2089, i32 noundef %3880, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef %3882, ptr noundef %3884, ptr noundef %3886, i32 noundef %3887) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3889:                                             ; preds = %3862
  %3890 = load i32, ptr @test_count, align 4, !tbaa !5
  %3891 = add nsw i32 %3890, 1
  store i32 %3891, ptr @test_count, align 4, !tbaa !5
  %3892 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %21, i8 noundef zeroext 3) #11
  %3893 = icmp eq i32 %3892, -1
  br i1 %3893, label %3894, label %3916

3894:                                             ; preds = %3889
  %3895 = load i32, ptr %2002, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = call i32 @s2n_print_stacktrace(ptr noundef %3896) #11
  %3898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3899 = trunc nuw i8 %3898 to i1
  br i1 %3899, label %3900, label %3904

3900:                                             ; preds = %3894
  %3901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3902 = call i32 @fileno(ptr noundef %3901) #11
  %3903 = call i32 @isatty(i32 noundef %3902) #11
  %.not620 = icmp eq i32 %3903, 0
  br i1 %.not620, label %3904, label %3905

3904:                                             ; preds = %3900, %3894
  br label %3905

3905:                                             ; preds = %3900, %3904
  %.str.5.sink2098 = phi ptr [ @.str.5, %3904 ], [ @.str.2, %3900 ]
  store i32 %3895, ptr %2002, align 4, !tbaa !5
  %3906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3907 = load i32, ptr @test_count, align 4, !tbaa !5
  %3908 = load i32, ptr %1948, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror(i32 noundef %3908, ptr noundef nonnull @.str.4) #11
  %3910 = load i32, ptr %1948, align 4, !tbaa !5
  %3911 = call ptr @s2n_strerror_debug(i32 noundef %3910, ptr noundef nonnull @.str.4) #11
  %3912 = load i32, ptr %2002, align 4, !tbaa !5
  %3913 = call ptr @strerror(i32 noundef %3912) #11
  %3914 = load i32, ptr %2002, align 4, !tbaa !5
  %3915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3906, ptr noundef nonnull %.str.5.sink2098, i32 noundef %3907, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %3909, ptr noundef %3911, ptr noundef %3913, i32 noundef %3914) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3916:                                             ; preds = %3889
  %3917 = load i32, ptr @test_count, align 4, !tbaa !5
  %3918 = add nsw i32 %3917, 1
  store i32 %3918, ptr @test_count, align 4, !tbaa !5
  %3919 = call i32 %969(ptr noundef nonnull %3757, ptr noundef nonnull %21) #11
  %3920 = icmp eq i32 %3919, -1
  br i1 %3920, label %3943, label %3921

3921:                                             ; preds = %3916
  %3922 = load i32, ptr %2002, align 4, !tbaa !5
  %3923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3924 = call i32 @s2n_print_stacktrace(ptr noundef %3923) #11
  %3925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3926 = trunc nuw i8 %3925 to i1
  br i1 %3926, label %3927, label %3931

3927:                                             ; preds = %3921
  %3928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3929 = call i32 @fileno(ptr noundef %3928) #11
  %3930 = call i32 @isatty(i32 noundef %3929) #11
  %.not576 = icmp eq i32 %3930, 0
  br i1 %.not576, label %3931, label %3932

3931:                                             ; preds = %3927, %3921
  br label %3932

3932:                                             ; preds = %3927, %3931
  %.str.5.sink2107 = phi ptr [ @.str.5, %3931 ], [ @.str.2, %3927 ]
  store i32 %3922, ptr %2002, align 4, !tbaa !5
  %3933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3934 = load i32, ptr @test_count, align 4, !tbaa !5
  %3935 = load i32, ptr %1948, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror(i32 noundef %3935, ptr noundef nonnull @.str.4) #11
  %3937 = load i32, ptr %1948, align 4, !tbaa !5
  %3938 = call ptr @s2n_strerror_debug(i32 noundef %3937, ptr noundef nonnull @.str.4) #11
  %3939 = load i32, ptr %2002, align 4, !tbaa !5
  %3940 = call ptr @strerror(i32 noundef %3939) #11
  %3941 = load i32, ptr %2002, align 4, !tbaa !5
  %3942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3933, ptr noundef nonnull %.str.5.sink2107, i32 noundef %3934, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %3936, ptr noundef %3938, ptr noundef %3940, i32 noundef %3941) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3943:                                             ; preds = %3916
  %3944 = load i32, ptr @test_count, align 4, !tbaa !5
  %3945 = add nsw i32 %3944, 1
  store i32 %3945, ptr @test_count, align 4, !tbaa !5
  %3946 = load i32, ptr %1948, align 4, !tbaa !5
  %3947 = icmp eq i32 %3946, 335544322
  br i1 %3947, label %3970, label %3948

3948:                                             ; preds = %3943
  %3949 = load i32, ptr %2002, 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
  %.not577 = icmp eq i32 %3957, 0
  br i1 %.not577, label %3958, label %3959

3958:                                             ; preds = %3954, %3948
  br label %3959

3959:                                             ; preds = %3954, %3958
  %.str.5.sink2116 = phi ptr [ @.str.5, %3958 ], [ @.str.2, %3954 ]
  store i32 %3949, ptr %2002, 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 %1948, align 4, !tbaa !5
  %3963 = call ptr @s2n_strerror(i32 noundef %3962, ptr noundef nonnull @.str.4) #11
  %3964 = load i32, ptr %1948, align 4, !tbaa !5
  %3965 = call ptr @s2n_strerror_debug(i32 noundef %3964, ptr noundef nonnull @.str.4) #11
  %3966 = load i32, ptr %2002, align 4, !tbaa !5
  %3967 = call ptr @strerror(i32 noundef %3966) #11
  %3968 = load i32, ptr %2002, align 4, !tbaa !5
  %3969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3960, ptr noundef nonnull %.str.5.sink2116, i32 noundef %3961, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %3963, ptr noundef %3965, ptr noundef %3967, i32 noundef %3968) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3970:                                             ; preds = %3943
  %3971 = add nsw i32 %3944, 2
  store i32 %3971, ptr @test_count, align 4, !tbaa !5
  %3972 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %3973 = icmp eq ptr %3972, null
  br i1 %3973, label %3974, label %3996

3974:                                             ; preds = %3970
  %3975 = load i32, ptr %2002, align 4, !tbaa !5
  %3976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3977 = call i32 @s2n_print_stacktrace(ptr noundef %3976) #11
  %3978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3979 = trunc nuw i8 %3978 to i1
  br i1 %3979, label %3980, label %3984

3980:                                             ; preds = %3974
  %3981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3982 = call i32 @fileno(ptr noundef %3981) #11
  %3983 = call i32 @isatty(i32 noundef %3982) #11
  %.not619 = icmp eq i32 %3983, 0
  br i1 %.not619, label %3984, label %3985

3984:                                             ; preds = %3980, %3974
  br label %3985

3985:                                             ; preds = %3980, %3984
  %.str.5.sink2125 = phi ptr [ @.str.5, %3984 ], [ @.str.2, %3980 ]
  store i32 %3975, ptr %2002, align 4, !tbaa !5
  %3986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3987 = load i32, ptr @test_count, align 4, !tbaa !5
  %3988 = load i32, ptr %1948, align 4, !tbaa !5
  %3989 = call ptr @s2n_strerror(i32 noundef %3988, ptr noundef nonnull @.str.4) #11
  %3990 = load i32, ptr %1948, align 4, !tbaa !5
  %3991 = call ptr @s2n_strerror_debug(i32 noundef %3990, ptr noundef nonnull @.str.4) #11
  %3992 = load i32, ptr %2002, align 4, !tbaa !5
  %3993 = call ptr @strerror(i32 noundef %3992) #11
  %3994 = load i32, ptr %2002, align 4, !tbaa !5
  %3995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3986, ptr noundef nonnull %.str.5.sink2125, i32 noundef %3987, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %3989, ptr noundef %3991, ptr noundef %3993, i32 noundef %3994) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3996:                                             ; preds = %3970
  store i32 0, ptr %1948, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %2002, align 4, !tbaa !5
  %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 = getelementptr inbounds i8, ptr %3757, i64 2001
  %4000 = load i8, ptr %3999, align 1, !tbaa !54
  %4001 = icmp eq i8 %4000, 70
  br i1 %4001, label %4024, label %4002

4002:                                             ; preds = %3996
  %4003 = load i32, ptr %2002, align 4, !tbaa !5
  %4004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4005 = call i32 @s2n_print_stacktrace(ptr noundef %4004) #11
  %4006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4007 = trunc nuw i8 %4006 to i1
  br i1 %4007, label %4008, label %4012

4008:                                             ; preds = %4002
  %4009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4010 = call i32 @fileno(ptr noundef %4009) #11
  %4011 = call i32 @isatty(i32 noundef %4010) #11
  %.not578 = icmp eq i32 %4011, 0
  br i1 %.not578, label %4012, label %4013

4012:                                             ; preds = %4008, %4002
  br label %4013

4013:                                             ; preds = %4008, %4012
  %.str.5.sink2134 = phi ptr [ @.str.5, %4012 ], [ @.str.2, %4008 ]
  store i32 %4003, ptr %2002, align 4, !tbaa !5
  %4014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4015 = load i32, ptr @test_count, align 4, !tbaa !5
  %4016 = load i32, ptr %1948, align 4, !tbaa !5
  %4017 = call ptr @s2n_strerror(i32 noundef %4016, ptr noundef nonnull @.str.4) #11
  %4018 = load i32, ptr %1948, align 4, !tbaa !5
  %4019 = call ptr @s2n_strerror_debug(i32 noundef %4018, ptr noundef nonnull @.str.4) #11
  %4020 = load i32, ptr %2002, align 4, !tbaa !5
  %4021 = call ptr @strerror(i32 noundef %4020) #11
  %4022 = load i32, ptr %2002, align 4, !tbaa !5
  %4023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4014, ptr noundef nonnull %.str.5.sink2134, i32 noundef %4015, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %4017, ptr noundef %4019, ptr noundef %4021, i32 noundef %4022) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4024:                                             ; preds = %3996
  %4025 = add nsw i32 %3997, 2
  store i32 %4025, ptr @test_count, align 4, !tbaa !5
  %4026 = call i32 @s2n_connection_free(ptr noundef nonnull %3757) #11
  %4027 = icmp eq i32 %4026, -1
  br i1 %4027, label %4028, label %4050

4028:                                             ; preds = %4024
  %4029 = load i32, ptr %2002, align 4, !tbaa !5
  %4030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4031 = call i32 @s2n_print_stacktrace(ptr noundef %4030) #11
  %4032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4033 = trunc nuw i8 %4032 to i1
  br i1 %4033, label %4034, label %4038

4034:                                             ; preds = %4028
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = call i32 @fileno(ptr noundef %4035) #11
  %4037 = call i32 @isatty(i32 noundef %4036) #11
  %.not618 = icmp eq i32 %4037, 0
  br i1 %.not618, label %4038, label %4039

4038:                                             ; preds = %4034, %4028
  br label %4039

4039:                                             ; preds = %4034, %4038
  %.str.5.sink2143 = phi ptr [ @.str.5, %4038 ], [ @.str.2, %4034 ]
  store i32 %4029, ptr %2002, align 4, !tbaa !5
  %4040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4041 = load i32, ptr @test_count, align 4, !tbaa !5
  %4042 = load i32, ptr %1948, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef nonnull @.str.4) #11
  %4044 = load i32, ptr %1948, align 4, !tbaa !5
  %4045 = call ptr @s2n_strerror_debug(i32 noundef %4044, ptr noundef nonnull @.str.4) #11
  %4046 = load i32, ptr %2002, align 4, !tbaa !5
  %4047 = call ptr @strerror(i32 noundef %4046) #11
  %4048 = load i32, ptr %2002, align 4, !tbaa !5
  %4049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4040, ptr noundef nonnull %.str.5.sink2143, i32 noundef %4041, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %4043, ptr noundef %4045, ptr noundef %4047, i32 noundef %4048) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4050:                                             ; preds = %4024
  %4051 = load i32, ptr @test_count, align 4, !tbaa !5
  %4052 = add nsw i32 %4051, 1
  store i32 %4052, ptr @test_count, align 4, !tbaa !5
  %4053 = call i32 @s2n_stuffer_free(ptr noundef nonnull %21) #11
  %4054 = icmp eq i32 %4053, -1
  br i1 %4054, label %4055, label %4077

4055:                                             ; preds = %4050
  %4056 = load i32, ptr %2002, align 4, !tbaa !5
  %4057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4058 = call i32 @s2n_print_stacktrace(ptr noundef %4057) #11
  %4059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4060 = trunc nuw i8 %4059 to i1
  br i1 %4060, label %4061, label %4065

4061:                                             ; preds = %4055
  %4062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4063 = call i32 @fileno(ptr noundef %4062) #11
  %4064 = call i32 @isatty(i32 noundef %4063) #11
  %.not617 = icmp eq i32 %4064, 0
  br i1 %.not617, label %4065, label %4066

4065:                                             ; preds = %4061, %4055
  br label %4066

4066:                                             ; preds = %4061, %4065
  %.str.5.sink2152 = phi ptr [ @.str.5, %4065 ], [ @.str.2, %4061 ]
  store i32 %4056, ptr %2002, align 4, !tbaa !5
  %4067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4068 = load i32, ptr @test_count, align 4, !tbaa !5
  %4069 = load i32, ptr %1948, align 4, !tbaa !5
  %4070 = call ptr @s2n_strerror(i32 noundef %4069, ptr noundef nonnull @.str.4) #11
  %4071 = load i32, ptr %1948, align 4, !tbaa !5
  %4072 = call ptr @s2n_strerror_debug(i32 noundef %4071, ptr noundef nonnull @.str.4) #11
  %4073 = load i32, ptr %2002, align 4, !tbaa !5
  %4074 = call ptr @strerror(i32 noundef %4073) #11
  %4075 = load i32, ptr %2002, align 4, !tbaa !5
  %4076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4067, ptr noundef nonnull %.str.5.sink2152, i32 noundef %4068, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 372, ptr noundef %4070, ptr noundef %4072, ptr noundef %4074, i32 noundef %4075) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4077:                                             ; preds = %4050
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #11
  %4078 = load i32, ptr @test_count, align 4, !tbaa !5
  %4079 = add nsw i32 %4078, 1
  store i32 %4079, ptr @test_count, align 4, !tbaa !5
  %4080 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %4081 = icmp eq ptr %4080, null
  br i1 %4081, label %4082, label %4104

4082:                                             ; preds = %4077
  %4083 = load i32, ptr %2002, align 4, !tbaa !5
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = call i32 @s2n_print_stacktrace(ptr noundef %4084) #11
  %4086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4087 = trunc nuw i8 %4086 to i1
  br i1 %4087, label %4088, label %4092

4088:                                             ; preds = %4082
  %4089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4090 = call i32 @fileno(ptr noundef %4089) #11
  %4091 = call i32 @isatty(i32 noundef %4090) #11
  %.not616 = icmp eq i32 %4091, 0
  br i1 %.not616, label %4092, label %4093

4092:                                             ; preds = %4088, %4082
  br label %4093

4093:                                             ; preds = %4088, %4092
  %.str.5.sink2161 = phi ptr [ @.str.5, %4092 ], [ @.str.2, %4088 ]
  store i32 %4083, ptr %2002, align 4, !tbaa !5
  %4094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4095 = load i32, ptr @test_count, align 4, !tbaa !5
  %4096 = load i32, ptr %1948, align 4, !tbaa !5
  %4097 = call ptr @s2n_strerror(i32 noundef %4096, ptr noundef nonnull @.str.4) #11
  %4098 = load i32, ptr %1948, align 4, !tbaa !5
  %4099 = call ptr @s2n_strerror_debug(i32 noundef %4098, ptr noundef nonnull @.str.4) #11
  %4100 = load i32, ptr %2002, align 4, !tbaa !5
  %4101 = call ptr @strerror(i32 noundef %4100) #11
  %4102 = load i32, ptr %2002, align 4, !tbaa !5
  %4103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4094, ptr noundef nonnull %.str.5.sink2161, i32 noundef %4095, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 380, ptr noundef %4097, ptr noundef %4099, ptr noundef %4101, i32 noundef %4102) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4104:                                             ; preds = %4077
  %4105 = load i32, ptr @test_count, align 4, !tbaa !5
  %4106 = add nsw i32 %4105, 1
  store i32 %4106, ptr @test_count, align 4, !tbaa !5
  %4107 = call i32 @s2n_client_hello_send(ptr noundef nonnull %4080) #11
  %4108 = icmp eq i32 %4107, -1
  br i1 %4108, label %4109, label %4131

4109:                                             ; preds = %4104
  %4110 = load i32, ptr %2002, align 4, !tbaa !5
  %4111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4112 = call i32 @s2n_print_stacktrace(ptr noundef %4111) #11
  %4113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4114 = trunc nuw i8 %4113 to i1
  br i1 %4114, label %4115, label %4119

4115:                                             ; preds = %4109
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = call i32 @fileno(ptr noundef %4116) #11
  %4118 = call i32 @isatty(i32 noundef %4117) #11
  %.not615 = icmp eq i32 %4118, 0
  br i1 %.not615, label %4119, label %4120

4119:                                             ; preds = %4115, %4109
  br label %4120

4120:                                             ; preds = %4115, %4119
  %.str.5.sink2170 = phi ptr [ @.str.5, %4119 ], [ @.str.2, %4115 ]
  store i32 %4110, ptr %2002, align 4, !tbaa !5
  %4121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4122 = load i32, ptr @test_count, align 4, !tbaa !5
  %4123 = load i32, ptr %1948, align 4, !tbaa !5
  %4124 = call ptr @s2n_strerror(i32 noundef %4123, ptr noundef nonnull @.str.4) #11
  %4125 = load i32, ptr %1948, align 4, !tbaa !5
  %4126 = call ptr @s2n_strerror_debug(i32 noundef %4125, ptr noundef nonnull @.str.4) #11
  %4127 = load i32, ptr %2002, align 4, !tbaa !5
  %4128 = call ptr @strerror(i32 noundef %4127) #11
  %4129 = load i32, ptr %2002, align 4, !tbaa !5
  %4130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4121, ptr noundef nonnull %.str.5.sink2170, i32 noundef %4122, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 381, ptr noundef %4124, ptr noundef %4126, ptr noundef %4128, i32 noundef %4129) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4131:                                             ; preds = %4104
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #11
  %4132 = getelementptr inbounds i8, ptr %4080, i64 2016
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %22, ptr noundef nonnull align 8 dereferenceable(40) %4132, i64 40, i1 false), !tbaa.struct !55
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %23) #11
  %4133 = load i32, ptr @test_count, align 4, !tbaa !5
  %4134 = add nsw i32 %4133, 1
  store i32 %4134, ptr @test_count, align 4, !tbaa !5
  %4135 = call i32 @s2n_stuffer_read_bytes(ptr noundef nonnull %22, ptr noundef nonnull %23, i32 noundef 2) #11
  %4136 = icmp eq i32 %4135, -1
  br i1 %4136, label %4137, label %4159

4137:                                             ; preds = %4131
  %4138 = load i32, ptr %2002, align 4, !tbaa !5
  %4139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4140 = call i32 @s2n_print_stacktrace(ptr noundef %4139) #11
  %4141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4142 = trunc nuw i8 %4141 to i1
  br i1 %4142, label %4143, label %4147

4143:                                             ; preds = %4137
  %4144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4145 = call i32 @fileno(ptr noundef %4144) #11
  %4146 = call i32 @isatty(i32 noundef %4145) #11
  %.not614 = icmp eq i32 %4146, 0
  br i1 %.not614, label %4147, label %4148

4147:                                             ; preds = %4143, %4137
  br label %4148

4148:                                             ; preds = %4143, %4147
  %.str.5.sink2179 = phi ptr [ @.str.5, %4147 ], [ @.str.2, %4143 ]
  store i32 %4138, ptr %2002, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = load i32, ptr @test_count, align 4, !tbaa !5
  %4151 = load i32, ptr %1948, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror(i32 noundef %4151, ptr noundef nonnull @.str.4) #11
  %4153 = load i32, ptr %1948, align 4, !tbaa !5
  %4154 = call ptr @s2n_strerror_debug(i32 noundef %4153, ptr noundef nonnull @.str.4) #11
  %4155 = load i32, ptr %2002, align 4, !tbaa !5
  %4156 = call ptr @strerror(i32 noundef %4155) #11
  %4157 = load i32, ptr %2002, align 4, !tbaa !5
  %4158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4149, ptr noundef nonnull %.str.5.sink2179, i32 noundef %4150, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %4152, ptr noundef %4154, ptr noundef %4156, i32 noundef %4157) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4159:                                             ; preds = %4131
  %4160 = load i32, ptr @test_count, align 4, !tbaa !5
  %4161 = add nsw i32 %4160, 1
  store i32 %4161, ptr @test_count, align 4, !tbaa !5
  %4162 = load i8, ptr %23, align 1, !tbaa !46
  %4163 = icmp eq i8 %4162, 3
  br i1 %4163, label %4186, label %4164

4164:                                             ; preds = %4159
  %4165 = load i32, ptr %2002, align 4, !tbaa !5
  %4166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4167 = call i32 @s2n_print_stacktrace(ptr noundef %4166) #11
  %4168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4169 = trunc nuw i8 %4168 to i1
  br i1 %4169, label %4170, label %4174

4170:                                             ; preds = %4164
  %4171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4172 = call i32 @fileno(ptr noundef %4171) #11
  %4173 = call i32 @isatty(i32 noundef %4172) #11
  %.not579 = icmp eq i32 %4173, 0
  br i1 %.not579, label %4174, label %4175

4174:                                             ; preds = %4170, %4164
  br label %4175

4175:                                             ; preds = %4170, %4174
  %.str.5.sink2188 = phi ptr [ @.str.5, %4174 ], [ @.str.2, %4170 ]
  store i32 %4165, ptr %2002, align 4, !tbaa !5
  %4176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4177 = load i32, ptr @test_count, align 4, !tbaa !5
  %4178 = load i32, ptr %1948, align 4, !tbaa !5
  %4179 = call ptr @s2n_strerror(i32 noundef %4178, ptr noundef nonnull @.str.4) #11
  %4180 = load i32, ptr %1948, align 4, !tbaa !5
  %4181 = call ptr @s2n_strerror_debug(i32 noundef %4180, ptr noundef nonnull @.str.4) #11
  %4182 = load i32, ptr %2002, align 4, !tbaa !5
  %4183 = call ptr @strerror(i32 noundef %4182) #11
  %4184 = load i32, ptr %2002, align 4, !tbaa !5
  %4185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4176, ptr noundef nonnull %.str.5.sink2188, i32 noundef %4177, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %4179, ptr noundef %4181, ptr noundef %4183, i32 noundef %4184) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4186:                                             ; preds = %4159
  %4187 = add nsw i32 %4160, 2
  store i32 %4187, ptr @test_count, align 4, !tbaa !5
  %4188 = getelementptr inbounds i8, ptr %23, i64 1
  %4189 = load i8, ptr %4188, align 1, !tbaa !46
  %4190 = icmp eq i8 %4189, 3
  br i1 %4190, label %4213, label %4191

4191:                                             ; preds = %4186
  %4192 = load i32, ptr %2002, align 4, !tbaa !5
  %4193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4194 = call i32 @s2n_print_stacktrace(ptr noundef %4193) #11
  %4195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4196 = trunc nuw i8 %4195 to i1
  br i1 %4196, label %4197, label %4201

4197:                                             ; preds = %4191
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = call i32 @fileno(ptr noundef %4198) #11
  %4200 = call i32 @isatty(i32 noundef %4199) #11
  %.not580 = icmp eq i32 %4200, 0
  br i1 %.not580, label %4201, label %4202

4201:                                             ; preds = %4197, %4191
  br label %4202

4202:                                             ; preds = %4197, %4201
  %.str.5.sink2197 = phi ptr [ @.str.5, %4201 ], [ @.str.2, %4197 ]
  store i32 %4192, ptr %2002, align 4, !tbaa !5
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = load i32, ptr @test_count, align 4, !tbaa !5
  %4205 = load i32, ptr %1948, align 4, !tbaa !5
  %4206 = call ptr @s2n_strerror(i32 noundef %4205, ptr noundef nonnull @.str.4) #11
  %4207 = load i32, ptr %1948, align 4, !tbaa !5
  %4208 = call ptr @s2n_strerror_debug(i32 noundef %4207, ptr noundef nonnull @.str.4) #11
  %4209 = load i32, ptr %2002, align 4, !tbaa !5
  %4210 = call ptr @strerror(i32 noundef %4209) #11
  %4211 = load i32, ptr %2002, align 4, !tbaa !5
  %4212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4203, ptr noundef nonnull %.str.5.sink2197, i32 noundef %4204, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %4206, ptr noundef %4208, ptr noundef %4210, i32 noundef %4211) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4213:                                             ; preds = %4186
  %4214 = add nsw i32 %4160, 3
  store i32 %4214, ptr @test_count, align 4, !tbaa !5
  %4215 = call i32 @s2n_connection_free(ptr noundef nonnull %4080) #11
  %4216 = icmp eq i32 %4215, -1
  br i1 %4216, label %4217, label %4239

4217:                                             ; preds = %4213
  %4218 = load i32, ptr %2002, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = call i32 @s2n_print_stacktrace(ptr noundef %4219) #11
  %4221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4222 = trunc nuw i8 %4221 to i1
  br i1 %4222, label %4223, label %4227

4223:                                             ; preds = %4217
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @fileno(ptr noundef %4224) #11
  %4226 = call i32 @isatty(i32 noundef %4225) #11
  %.not613 = icmp eq i32 %4226, 0
  br i1 %.not613, label %4227, label %4228

4227:                                             ; preds = %4223, %4217
  br label %4228

4228:                                             ; preds = %4223, %4227
  %.str.5.sink2206 = phi ptr [ @.str.5, %4227 ], [ @.str.2, %4223 ]
  store i32 %4218, ptr %2002, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = load i32, ptr @test_count, align 4, !tbaa !5
  %4231 = load i32, ptr %1948, align 4, !tbaa !5
  %4232 = call ptr @s2n_strerror(i32 noundef %4231, ptr noundef nonnull @.str.4) #11
  %4233 = load i32, ptr %1948, align 4, !tbaa !5
  %4234 = call ptr @s2n_strerror_debug(i32 noundef %4233, ptr noundef nonnull @.str.4) #11
  %4235 = load i32, ptr %2002, align 4, !tbaa !5
  %4236 = call ptr @strerror(i32 noundef %4235) #11
  %4237 = load i32, ptr %2002, align 4, !tbaa !5
  %4238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4229, ptr noundef nonnull %.str.5.sink2206, i32 noundef %4230, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 390, ptr noundef %4232, ptr noundef %4234, ptr noundef %4236, i32 noundef %4237) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4239:                                             ; preds = %4213
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #11
  %4240 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %4240, label %4241, label %.preheader.preheader

4241:                                             ; preds = %4239
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  store ptr null, ptr %24, align 8, !tbaa !9
  %4242 = load i32, ptr @test_count, align 4, !tbaa !5
  %4243 = add nsw i32 %4242, 1
  store i32 %4243, ptr @test_count, align 4, !tbaa !5
  %4244 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %24, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.72) #11
  %4245 = icmp eq i32 %4244, -1
  br i1 %4245, label %4246, label %4268

4246:                                             ; preds = %4241
  %4247 = load i32, ptr %2002, align 4, !tbaa !5
  %4248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4249 = call i32 @s2n_print_stacktrace(ptr noundef %4248) #11
  %4250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4251 = trunc nuw i8 %4250 to i1
  br i1 %4251, label %4252, label %4256

4252:                                             ; preds = %4246
  %4253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4254 = call i32 @fileno(ptr noundef %4253) #11
  %4255 = call i32 @isatty(i32 noundef %4254) #11
  %.not612 = icmp eq i32 %4255, 0
  br i1 %.not612, label %4256, label %4257

4256:                                             ; preds = %4252, %4246
  br label %4257

4257:                                             ; preds = %4252, %4256
  %.str.5.sink2215 = phi ptr [ @.str.5, %4256 ], [ @.str.2, %4252 ]
  store i32 %4247, ptr %2002, align 4, !tbaa !5
  %4258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4259 = load i32, ptr @test_count, align 4, !tbaa !5
  %4260 = load i32, ptr %1948, align 4, !tbaa !5
  %4261 = call ptr @s2n_strerror(i32 noundef %4260, ptr noundef nonnull @.str.4) #11
  %4262 = load i32, ptr %1948, align 4, !tbaa !5
  %4263 = call ptr @s2n_strerror_debug(i32 noundef %4262, ptr noundef nonnull @.str.4) #11
  %4264 = load i32, ptr %2002, align 4, !tbaa !5
  %4265 = call ptr @strerror(i32 noundef %4264) #11
  %4266 = load i32, ptr %2002, align 4, !tbaa !5
  %4267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4258, ptr noundef nonnull %.str.5.sink2215, i32 noundef %4259, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %4261, ptr noundef %4263, ptr noundef %4265, i32 noundef %4266) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4268:                                             ; preds = %4241
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  %4269 = call ptr @s2n_config_new() #11
  store ptr %4269, ptr %25, align 8, !tbaa !9
  %4270 = load i32, ptr @test_count, align 4, !tbaa !5
  %4271 = add nsw i32 %4270, 1
  store i32 %4271, ptr @test_count, align 4, !tbaa !5
  %4272 = load ptr, ptr %24, align 8, !tbaa !9
  %4273 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4269, ptr noundef %4272) #11
  %4274 = icmp eq i32 %4273, -1
  br i1 %4274, label %4275, label %4297

4275:                                             ; preds = %4268
  %4276 = load i32, ptr %2002, align 4, !tbaa !5
  %4277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4278 = call i32 @s2n_print_stacktrace(ptr noundef %4277) #11
  %4279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4280 = trunc nuw i8 %4279 to i1
  br i1 %4280, label %4281, label %4285

4281:                                             ; preds = %4275
  %4282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4283 = call i32 @fileno(ptr noundef %4282) #11
  %4284 = call i32 @isatty(i32 noundef %4283) #11
  %.not611 = icmp eq i32 %4284, 0
  br i1 %.not611, label %4285, label %4286

4285:                                             ; preds = %4281, %4275
  br label %4286

4286:                                             ; preds = %4281, %4285
  %.str.5.sink2224 = phi ptr [ @.str.5, %4285 ], [ @.str.2, %4281 ]
  store i32 %4276, ptr %2002, align 4, !tbaa !5
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = load i32, ptr @test_count, align 4, !tbaa !5
  %4289 = load i32, ptr %1948, align 4, !tbaa !5
  %4290 = call ptr @s2n_strerror(i32 noundef %4289, ptr noundef nonnull @.str.4) #11
  %4291 = load i32, ptr %1948, align 4, !tbaa !5
  %4292 = call ptr @s2n_strerror_debug(i32 noundef %4291, ptr noundef nonnull @.str.4) #11
  %4293 = load i32, ptr %2002, align 4, !tbaa !5
  %4294 = call ptr @strerror(i32 noundef %4293) #11
  %4295 = load i32, ptr %2002, align 4, !tbaa !5
  %4296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4287, ptr noundef nonnull %.str.5.sink2224, i32 noundef %4288, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 409, ptr noundef %4290, ptr noundef %4292, ptr noundef %4294, i32 noundef %4295) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4297:                                             ; preds = %4268
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #11
  %4298 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4298, ptr %26, align 8, !tbaa !9
  %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 = icmp eq ptr %4298, null
  br i1 %4301, label %4302, label %4324

4302:                                             ; preds = %4297
  %4303 = load i32, ptr %2002, align 4, !tbaa !5
  %4304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4305 = call i32 @s2n_print_stacktrace(ptr noundef %4304) #11
  %4306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4307 = trunc nuw i8 %4306 to i1
  br i1 %4307, label %4308, label %4312

4308:                                             ; preds = %4302
  %4309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4310 = call i32 @fileno(ptr noundef %4309) #11
  %4311 = call i32 @isatty(i32 noundef %4310) #11
  %.not610 = icmp eq i32 %4311, 0
  br i1 %.not610, label %4312, label %4313

4312:                                             ; preds = %4308, %4302
  br label %4313

4313:                                             ; preds = %4308, %4312
  %.str.5.sink2233 = phi ptr [ @.str.5, %4312 ], [ @.str.2, %4308 ]
  store i32 %4303, ptr %2002, align 4, !tbaa !5
  %4314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4315 = load i32, ptr @test_count, align 4, !tbaa !5
  %4316 = load i32, ptr %1948, align 4, !tbaa !5
  %4317 = call ptr @s2n_strerror(i32 noundef %4316, ptr noundef nonnull @.str.4) #11
  %4318 = load i32, ptr %1948, align 4, !tbaa !5
  %4319 = call ptr @s2n_strerror_debug(i32 noundef %4318, ptr noundef nonnull @.str.4) #11
  %4320 = load i32, ptr %2002, align 4, !tbaa !5
  %4321 = call ptr @strerror(i32 noundef %4320) #11
  %4322 = load i32, ptr %2002, align 4, !tbaa !5
  %4323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4314, ptr noundef nonnull %.str.5.sink2233, i32 noundef %4315, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %4317, ptr noundef %4319, ptr noundef %4321, i32 noundef %4322) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4324:                                             ; preds = %4297
  %4325 = add nsw i32 %4299, 2
  store i32 %4325, ptr @test_count, align 4, !tbaa !5
  %4326 = load ptr, ptr %25, align 8, !tbaa !9
  %4327 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4298, ptr noundef %4326) #11
  %4328 = icmp eq i32 %4327, -1
  br i1 %4328, label %4329, label %4351

4329:                                             ; preds = %4324
  %4330 = load i32, ptr %2002, align 4, !tbaa !5
  %4331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4332 = call i32 @s2n_print_stacktrace(ptr noundef %4331) #11
  %4333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4334 = trunc nuw i8 %4333 to i1
  br i1 %4334, label %4335, label %4339

4335:                                             ; preds = %4329
  %4336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4337 = call i32 @fileno(ptr noundef %4336) #11
  %4338 = call i32 @isatty(i32 noundef %4337) #11
  %.not609 = icmp eq i32 %4338, 0
  br i1 %.not609, label %4339, label %4340

4339:                                             ; preds = %4335, %4329
  br label %4340

4340:                                             ; preds = %4335, %4339
  %.str.5.sink2242 = phi ptr [ @.str.5, %4339 ], [ @.str.2, %4335 ]
  store i32 %4330, ptr %2002, align 4, !tbaa !5
  %4341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4342 = load i32, ptr @test_count, align 4, !tbaa !5
  %4343 = load i32, ptr %1948, align 4, !tbaa !5
  %4344 = call ptr @s2n_strerror(i32 noundef %4343, ptr noundef nonnull @.str.4) #11
  %4345 = load i32, ptr %1948, align 4, !tbaa !5
  %4346 = call ptr @s2n_strerror_debug(i32 noundef %4345, ptr noundef nonnull @.str.4) #11
  %4347 = load i32, ptr %2002, align 4, !tbaa !5
  %4348 = call ptr @strerror(i32 noundef %4347) #11
  %4349 = load i32, ptr %2002, align 4, !tbaa !5
  %4350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4341, ptr noundef nonnull %.str.5.sink2242, i32 noundef %4342, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %4344, ptr noundef %4346, ptr noundef %4348, i32 noundef %4349) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4351:                                             ; preds = %4324
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  %4352 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %4352, ptr %27, align 8, !tbaa !9
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = add nsw i32 %4353, 1
  store i32 %4354, ptr @test_count, align 4, !tbaa !5
  %4355 = icmp eq ptr %4352, null
  br i1 %4355, label %4356, label %4378

4356:                                             ; preds = %4351
  %4357 = load i32, ptr %2002, align 4, !tbaa !5
  %4358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4359 = call i32 @s2n_print_stacktrace(ptr noundef %4358) #11
  %4360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4361 = trunc nuw i8 %4360 to i1
  br i1 %4361, label %4362, label %4366

4362:                                             ; preds = %4356
  %4363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4364 = call i32 @fileno(ptr noundef %4363) #11
  %4365 = call i32 @isatty(i32 noundef %4364) #11
  %.not608 = icmp eq i32 %4365, 0
  br i1 %.not608, label %4366, label %4367

4366:                                             ; preds = %4362, %4356
  br label %4367

4367:                                             ; preds = %4362, %4366
  %.str.5.sink2251 = phi ptr [ @.str.5, %4366 ], [ @.str.2, %4362 ]
  store i32 %4357, ptr %2002, align 4, !tbaa !5
  %4368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4369 = load i32, ptr @test_count, align 4, !tbaa !5
  %4370 = load i32, ptr %1948, align 4, !tbaa !5
  %4371 = call ptr @s2n_strerror(i32 noundef %4370, ptr noundef nonnull @.str.4) #11
  %4372 = load i32, ptr %1948, align 4, !tbaa !5
  %4373 = call ptr @s2n_strerror_debug(i32 noundef %4372, ptr noundef nonnull @.str.4) #11
  %4374 = load i32, ptr %2002, align 4, !tbaa !5
  %4375 = call ptr @strerror(i32 noundef %4374) #11
  %4376 = load i32, ptr %2002, align 4, !tbaa !5
  %4377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4368, ptr noundef nonnull %.str.5.sink2251, i32 noundef %4369, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 418, ptr noundef %4371, ptr noundef %4373, ptr noundef %4375, i32 noundef %4376) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4378:                                             ; preds = %4351
  %4379 = add nsw i32 %4353, 2
  store i32 %4379, ptr @test_count, align 4, !tbaa !5
  %4380 = load ptr, ptr %25, align 8, !tbaa !9
  %4381 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4352, ptr noundef %4380) #11
  %4382 = icmp eq i32 %4381, -1
  br i1 %4382, label %4383, label %4405

4383:                                             ; preds = %4378
  %4384 = load i32, ptr %2002, align 4, !tbaa !5
  %4385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4386 = call i32 @s2n_print_stacktrace(ptr noundef %4385) #11
  %4387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4388 = trunc nuw i8 %4387 to i1
  br i1 %4388, label %4389, label %4393

4389:                                             ; preds = %4383
  %4390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4391 = call i32 @fileno(ptr noundef %4390) #11
  %4392 = call i32 @isatty(i32 noundef %4391) #11
  %.not607 = icmp eq i32 %4392, 0
  br i1 %.not607, label %4393, label %4394

4393:                                             ; preds = %4389, %4383
  br label %4394

4394:                                             ; preds = %4389, %4393
  %.str.5.sink2260 = phi ptr [ @.str.5, %4393 ], [ @.str.2, %4389 ]
  store i32 %4384, ptr %2002, align 4, !tbaa !5
  %4395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4396 = load i32, ptr @test_count, align 4, !tbaa !5
  %4397 = load i32, ptr %1948, align 4, !tbaa !5
  %4398 = call ptr @s2n_strerror(i32 noundef %4397, ptr noundef nonnull @.str.4) #11
  %4399 = load i32, ptr %1948, align 4, !tbaa !5
  %4400 = call ptr @s2n_strerror_debug(i32 noundef %4399, ptr noundef nonnull @.str.4) #11
  %4401 = load i32, ptr %2002, align 4, !tbaa !5
  %4402 = call ptr @strerror(i32 noundef %4401) #11
  %4403 = load i32, ptr %2002, align 4, !tbaa !5
  %4404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4395, ptr noundef nonnull %.str.5.sink2260, i32 noundef %4396, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 419, ptr noundef %4398, ptr noundef %4400, ptr noundef %4402, i32 noundef %4403) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4405:                                             ; preds = %4378
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #11
  store i64 0, ptr %28, align 8
  %4406 = load i32, ptr @test_count, align 4, !tbaa !5
  %4407 = add nsw i32 %4406, 1
  store i32 %4407, ptr @test_count, align 4, !tbaa !5
  %4408 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %28) #11
  %4409 = icmp eq i32 %4408, -1
  br i1 %4409, label %4410, label %4432

4410:                                             ; preds = %4405
  %4411 = load i32, ptr %2002, 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
  %.not606 = icmp eq i32 %4419, 0
  br i1 %.not606, label %4420, label %4421

4420:                                             ; preds = %4416, %4410
  br label %4421

4421:                                             ; preds = %4416, %4420
  %.str.5.sink2269 = phi ptr [ @.str.5, %4420 ], [ @.str.2, %4416 ]
  store i32 %4411, ptr %2002, 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 %1948, align 4, !tbaa !5
  %4425 = call ptr @s2n_strerror(i32 noundef %4424, ptr noundef nonnull @.str.4) #11
  %4426 = load i32, ptr %1948, align 4, !tbaa !5
  %4427 = call ptr @s2n_strerror_debug(i32 noundef %4426, ptr noundef nonnull @.str.4) #11
  %4428 = load i32, ptr %2002, align 4, !tbaa !5
  %4429 = call ptr @strerror(i32 noundef %4428) #11
  %4430 = load i32, ptr %2002, align 4, !tbaa !5
  %4431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4422, ptr noundef nonnull %.str.5.sink2269, i32 noundef %4423, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %4425, ptr noundef %4427, ptr noundef %4429, i32 noundef %4430) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4432:                                             ; preds = %4405
  %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 = load ptr, ptr %27, align 8, !tbaa !9
  %4436 = load ptr, ptr %26, align 8, !tbaa !9
  %4437 = call i32 @s2n_connections_set_io_pair(ptr noundef %4435, ptr noundef %4436, ptr noundef nonnull %28) #11
  %4438 = icmp eq i32 %4437, -1
  br i1 %4438, label %4439, label %4461

4439:                                             ; preds = %4432
  %4440 = load i32, ptr %2002, align 4, !tbaa !5
  %4441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4442 = call i32 @s2n_print_stacktrace(ptr noundef %4441) #11
  %4443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4444 = trunc nuw i8 %4443 to i1
  br i1 %4444, label %4445, label %4449

4445:                                             ; preds = %4439
  %4446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4447 = call i32 @fileno(ptr noundef %4446) #11
  %4448 = call i32 @isatty(i32 noundef %4447) #11
  %.not605 = icmp eq i32 %4448, 0
  br i1 %.not605, label %4449, label %4450

4449:                                             ; preds = %4445, %4439
  br label %4450

4450:                                             ; preds = %4445, %4449
  %.str.5.sink2278 = phi ptr [ @.str.5, %4449 ], [ @.str.2, %4445 ]
  store i32 %4440, ptr %2002, align 4, !tbaa !5
  %4451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4452 = load i32, ptr @test_count, align 4, !tbaa !5
  %4453 = load i32, ptr %1948, align 4, !tbaa !5
  %4454 = call ptr @s2n_strerror(i32 noundef %4453, ptr noundef nonnull @.str.4) #11
  %4455 = load i32, ptr %1948, align 4, !tbaa !5
  %4456 = call ptr @s2n_strerror_debug(i32 noundef %4455, ptr noundef nonnull @.str.4) #11
  %4457 = load i32, ptr %2002, align 4, !tbaa !5
  %4458 = call ptr @strerror(i32 noundef %4457) #11
  %4459 = load i32, ptr %2002, align 4, !tbaa !5
  %4460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4451, ptr noundef nonnull %.str.5.sink2278, i32 noundef %4452, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 423, ptr noundef %4454, ptr noundef %4456, ptr noundef %4458, i32 noundef %4459) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4461:                                             ; preds = %4432
  %4462 = load ptr, ptr %27, align 8, !tbaa !9
  %4463 = getelementptr inbounds i8, ptr %4462, i64 2016
  %4464 = load i32, ptr @test_count, align 4, !tbaa !5
  %4465 = add nsw i32 %4464, 1
  store i32 %4465, ptr @test_count, align 4, !tbaa !5
  %4466 = call i32 @s2n_client_hello_send(ptr noundef %4462) #11
  %4467 = icmp eq i32 %4466, -1
  br i1 %4467, label %4468, label %4490

4468:                                             ; preds = %4461
  %4469 = load i32, ptr %2002, align 4, !tbaa !5
  %4470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4471 = call i32 @s2n_print_stacktrace(ptr noundef %4470) #11
  %4472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4473 = trunc nuw i8 %4472 to i1
  br i1 %4473, label %4474, label %4478

4474:                                             ; preds = %4468
  %4475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4476 = call i32 @fileno(ptr noundef %4475) #11
  %4477 = call i32 @isatty(i32 noundef %4476) #11
  %.not604 = icmp eq i32 %4477, 0
  br i1 %.not604, label %4478, label %4479

4478:                                             ; preds = %4474, %4468
  br label %4479

4479:                                             ; preds = %4474, %4478
  %.str.5.sink2287 = phi ptr [ @.str.5, %4478 ], [ @.str.2, %4474 ]
  store i32 %4469, ptr %2002, align 4, !tbaa !5
  %4480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4481 = load i32, ptr @test_count, align 4, !tbaa !5
  %4482 = load i32, ptr %1948, align 4, !tbaa !5
  %4483 = call ptr @s2n_strerror(i32 noundef %4482, ptr noundef nonnull @.str.4) #11
  %4484 = load i32, ptr %1948, align 4, !tbaa !5
  %4485 = call ptr @s2n_strerror_debug(i32 noundef %4484, ptr noundef nonnull @.str.4) #11
  %4486 = load i32, ptr %2002, align 4, !tbaa !5
  %4487 = call ptr @strerror(i32 noundef %4486) #11
  %4488 = load i32, ptr %2002, align 4, !tbaa !5
  %4489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4480, ptr noundef nonnull %.str.5.sink2287, i32 noundef %4481, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %4483, ptr noundef %4485, ptr noundef %4487, i32 noundef %4488) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4490:                                             ; preds = %4461
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %29) #11
  store i16 259, ptr %29, align 2
  %4491 = load i32, ptr @test_count, align 4, !tbaa !5
  %4492 = add nsw i32 %4491, 1
  store i32 %4492, ptr @test_count, align 4, !tbaa !5
  %4493 = call i32 @s2n_stuffer_rewrite(ptr noundef nonnull %4463) #11
  %4494 = icmp eq i32 %4493, -1
  br i1 %4494, label %4495, label %4517

4495:                                             ; preds = %4490
  %4496 = load i32, ptr %2002, align 4, !tbaa !5
  %4497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4498 = call i32 @s2n_print_stacktrace(ptr noundef %4497) #11
  %4499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4500 = trunc nuw i8 %4499 to i1
  br i1 %4500, label %4501, label %4505

4501:                                             ; preds = %4495
  %4502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4503 = call i32 @fileno(ptr noundef %4502) #11
  %4504 = call i32 @isatty(i32 noundef %4503) #11
  %.not603 = icmp eq i32 %4504, 0
  br i1 %.not603, label %4505, label %4506

4505:                                             ; preds = %4501, %4495
  br label %4506

4506:                                             ; preds = %4501, %4505
  %.str.5.sink2296 = phi ptr [ @.str.5, %4505 ], [ @.str.2, %4501 ]
  store i32 %4496, ptr %2002, align 4, !tbaa !5
  %4507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4508 = load i32, ptr @test_count, align 4, !tbaa !5
  %4509 = load i32, ptr %1948, align 4, !tbaa !5
  %4510 = call ptr @s2n_strerror(i32 noundef %4509, ptr noundef nonnull @.str.4) #11
  %4511 = load i32, ptr %1948, align 4, !tbaa !5
  %4512 = call ptr @s2n_strerror_debug(i32 noundef %4511, ptr noundef nonnull @.str.4) #11
  %4513 = load i32, ptr %2002, align 4, !tbaa !5
  %4514 = call ptr @strerror(i32 noundef %4513) #11
  %4515 = load i32, ptr %2002, align 4, !tbaa !5
  %4516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4507, ptr noundef nonnull %.str.5.sink2296, i32 noundef %4508, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %4510, ptr noundef %4512, ptr noundef %4514, i32 noundef %4515) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4517:                                             ; preds = %4490
  %4518 = load i32, ptr @test_count, align 4, !tbaa !5
  %4519 = add nsw i32 %4518, 1
  store i32 %4519, ptr @test_count, align 4, !tbaa !5
  %4520 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %4463, ptr noundef nonnull %29, i32 noundef 2) #11
  %4521 = icmp eq i32 %4520, -1
  br i1 %4521, label %4522, label %4544

4522:                                             ; preds = %4517
  %4523 = load i32, ptr %2002, align 4, !tbaa !5
  %4524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4525 = call i32 @s2n_print_stacktrace(ptr noundef %4524) #11
  %4526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4527 = trunc nuw i8 %4526 to i1
  br i1 %4527, label %4528, label %4532

4528:                                             ; preds = %4522
  %4529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4530 = call i32 @fileno(ptr noundef %4529) #11
  %4531 = call i32 @isatty(i32 noundef %4530) #11
  %.not602 = icmp eq i32 %4531, 0
  br i1 %.not602, label %4532, label %4533

4532:                                             ; preds = %4528, %4522
  br label %4533

4533:                                             ; preds = %4528, %4532
  %.str.5.sink2305 = phi ptr [ @.str.5, %4532 ], [ @.str.2, %4528 ]
  store i32 %4523, ptr %2002, align 4, !tbaa !5
  %4534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4535 = load i32, ptr @test_count, align 4, !tbaa !5
  %4536 = load i32, ptr %1948, align 4, !tbaa !5
  %4537 = call ptr @s2n_strerror(i32 noundef %4536, ptr noundef nonnull @.str.4) #11
  %4538 = load i32, ptr %1948, align 4, !tbaa !5
  %4539 = call ptr @s2n_strerror_debug(i32 noundef %4538, ptr noundef nonnull @.str.4) #11
  %4540 = load i32, ptr %2002, align 4, !tbaa !5
  %4541 = call ptr @strerror(i32 noundef %4540) #11
  %4542 = load i32, ptr %2002, align 4, !tbaa !5
  %4543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4534, ptr noundef nonnull %.str.5.sink2305, i32 noundef %4535, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %4537, ptr noundef %4539, ptr noundef %4541, i32 noundef %4542) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4544:                                             ; preds = %4517
  %4545 = load i32, ptr @test_count, align 4, !tbaa !5
  %4546 = add nsw i32 %4545, 1
  store i32 %4546, ptr @test_count, align 4, !tbaa !5
  %4547 = load ptr, ptr %26, align 8, !tbaa !9
  %4548 = getelementptr inbounds i8, ptr %4547, i64 2016
  %4549 = call i32 @s2n_stuffer_write(ptr noundef nonnull %4548, ptr noundef nonnull %4463) #11
  %4550 = icmp eq i32 %4549, -1
  br i1 %4550, label %4551, label %4573

4551:                                             ; preds = %4544
  %4552 = load i32, ptr %2002, align 4, !tbaa !5
  %4553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4554 = call i32 @s2n_print_stacktrace(ptr noundef %4553) #11
  %4555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4556 = trunc nuw i8 %4555 to i1
  br i1 %4556, label %4557, label %4561

4557:                                             ; preds = %4551
  %4558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4559 = call i32 @fileno(ptr noundef %4558) #11
  %4560 = call i32 @isatty(i32 noundef %4559) #11
  %.not601 = icmp eq i32 %4560, 0
  br i1 %.not601, label %4561, label %4562

4561:                                             ; preds = %4557, %4551
  br label %4562

4562:                                             ; preds = %4557, %4561
  %.str.5.sink2314 = phi ptr [ @.str.5, %4561 ], [ @.str.2, %4557 ]
  store i32 %4552, ptr %2002, align 4, !tbaa !5
  %4563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4564 = load i32, ptr @test_count, align 4, !tbaa !5
  %4565 = load i32, ptr %1948, align 4, !tbaa !5
  %4566 = call ptr @s2n_strerror(i32 noundef %4565, ptr noundef nonnull @.str.4) #11
  %4567 = load i32, ptr %1948, align 4, !tbaa !5
  %4568 = call ptr @s2n_strerror_debug(i32 noundef %4567, ptr noundef nonnull @.str.4) #11
  %4569 = load i32, ptr %2002, align 4, !tbaa !5
  %4570 = call ptr @strerror(i32 noundef %4569) #11
  %4571 = load i32, ptr %2002, align 4, !tbaa !5
  %4572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4563, ptr noundef nonnull %.str.5.sink2314, i32 noundef %4564, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %4566, ptr noundef %4568, ptr noundef %4570, i32 noundef %4571) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4573:                                             ; preds = %4544
  %4574 = load i32, ptr @test_count, align 4, !tbaa !5
  %4575 = add nsw i32 %4574, 1
  store i32 %4575, ptr @test_count, align 4, !tbaa !5
  %4576 = load ptr, ptr %26, align 8, !tbaa !9
  %4577 = call i32 @s2n_client_hello_recv(ptr noundef %4576) #11
  %4578 = icmp eq i32 %4577, -1
  br i1 %4578, label %4579, label %4601

4579:                                             ; preds = %4573
  %4580 = load i32, ptr %2002, 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
  %.not600 = icmp eq i32 %4588, 0
  br i1 %.not600, label %4589, label %4590

4589:                                             ; preds = %4585, %4579
  br label %4590

4590:                                             ; preds = %4585, %4589
  %.str.5.sink2323 = phi ptr [ @.str.5, %4589 ], [ @.str.2, %4585 ]
  store i32 %4580, ptr %2002, 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 %1948, align 4, !tbaa !5
  %4594 = call ptr @s2n_strerror(i32 noundef %4593, ptr noundef nonnull @.str.4) #11
  %4595 = load i32, ptr %1948, align 4, !tbaa !5
  %4596 = call ptr @s2n_strerror_debug(i32 noundef %4595, ptr noundef nonnull @.str.4) #11
  %4597 = load i32, ptr %2002, align 4, !tbaa !5
  %4598 = call ptr @strerror(i32 noundef %4597) #11
  %4599 = load i32, ptr %2002, align 4, !tbaa !5
  %4600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4591, ptr noundef nonnull %.str.5.sink2323, i32 noundef %4592, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 438, ptr noundef %4594, ptr noundef %4596, ptr noundef %4598, i32 noundef %4599) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4601:                                             ; preds = %4573
  %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 ptr, ptr %26, align 8, !tbaa !9
  %4605 = getelementptr inbounds i8, ptr %4604, i64 220
  %4606 = load i8, ptr %4605, align 4, !tbaa !53
  %4607 = icmp eq i8 %4606, 34
  br i1 %4607, label %4630, label %4608

4608:                                             ; preds = %4601
  %4609 = load i32, ptr %2002, align 4, !tbaa !5
  %4610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4611 = call i32 @s2n_print_stacktrace(ptr noundef %4610) #11
  %4612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4613 = trunc nuw i8 %4612 to i1
  br i1 %4613, label %4614, label %4618

4614:                                             ; preds = %4608
  %4615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4616 = call i32 @fileno(ptr noundef %4615) #11
  %4617 = call i32 @isatty(i32 noundef %4616) #11
  %.not581 = icmp eq i32 %4617, 0
  br i1 %.not581, label %4618, label %4619

4618:                                             ; preds = %4614, %4608
  br label %4619

4619:                                             ; preds = %4614, %4618
  %.str.5.sink2332 = phi ptr [ @.str.5, %4618 ], [ @.str.2, %4614 ]
  store i32 %4609, ptr %2002, align 4, !tbaa !5
  %4620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4621 = load i32, ptr @test_count, align 4, !tbaa !5
  %4622 = load i32, ptr %1948, align 4, !tbaa !5
  %4623 = call ptr @s2n_strerror(i32 noundef %4622, ptr noundef nonnull @.str.4) #11
  %4624 = load i32, ptr %1948, align 4, !tbaa !5
  %4625 = call ptr @s2n_strerror_debug(i32 noundef %4624, ptr noundef nonnull @.str.4) #11
  %4626 = load i32, ptr %2002, align 4, !tbaa !5
  %4627 = call ptr @strerror(i32 noundef %4626) #11
  %4628 = load i32, ptr %2002, align 4, !tbaa !5
  %4629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4620, ptr noundef nonnull %.str.5.sink2332, i32 noundef %4621, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 441, ptr noundef %4623, ptr noundef %4625, ptr noundef %4627, i32 noundef %4628) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4630:                                             ; preds = %4601
  %4631 = add nsw i32 %4602, 2
  store i32 %4631, ptr @test_count, align 4, !tbaa !5
  %4632 = getelementptr inbounds i8, ptr %4604, i64 218
  %4633 = load i8, ptr %4632, align 2, !tbaa !51
  %4634 = icmp eq i8 %4633, 34
  br i1 %4634, label %4657, label %4635

4635:                                             ; preds = %4630
  %4636 = load i32, ptr %2002, align 4, !tbaa !5
  %4637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4638 = call i32 @s2n_print_stacktrace(ptr noundef %4637) #11
  %4639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4640 = trunc nuw i8 %4639 to i1
  br i1 %4640, label %4641, label %4645

4641:                                             ; preds = %4635
  %4642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4643 = call i32 @fileno(ptr noundef %4642) #11
  %4644 = call i32 @isatty(i32 noundef %4643) #11
  %.not582 = icmp eq i32 %4644, 0
  br i1 %.not582, label %4645, label %4646

4645:                                             ; preds = %4641, %4635
  br label %4646

4646:                                             ; preds = %4641, %4645
  %.str.5.sink2341 = phi ptr [ @.str.5, %4645 ], [ @.str.2, %4641 ]
  store i32 %4636, ptr %2002, align 4, !tbaa !5
  %4647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4648 = load i32, ptr @test_count, align 4, !tbaa !5
  %4649 = load i32, ptr %1948, align 4, !tbaa !5
  %4650 = call ptr @s2n_strerror(i32 noundef %4649, ptr noundef nonnull @.str.4) #11
  %4651 = load i32, ptr %1948, align 4, !tbaa !5
  %4652 = call ptr @s2n_strerror_debug(i32 noundef %4651, ptr noundef nonnull @.str.4) #11
  %4653 = load i32, ptr %2002, align 4, !tbaa !5
  %4654 = call ptr @strerror(i32 noundef %4653) #11
  %4655 = load i32, ptr %2002, align 4, !tbaa !5
  %4656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4647, ptr noundef nonnull %.str.5.sink2341, i32 noundef %4648, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %4650, ptr noundef %4652, ptr noundef %4654, i32 noundef %4655) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4657:                                             ; preds = %4630
  %4658 = add nsw i32 %4602, 3
  store i32 %4658, ptr @test_count, align 4, !tbaa !5
  %4659 = getelementptr inbounds i8, ptr %4604, i64 217
  %4660 = load i8, ptr %4659, align 1, !tbaa !56
  %4661 = icmp eq i8 %4660, 31
  br i1 %4661, label %4684, label %4662

4662:                                             ; preds = %4657
  %4663 = load i32, ptr %2002, align 4, !tbaa !5
  %4664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4665 = call i32 @s2n_print_stacktrace(ptr noundef %4664) #11
  %4666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4667 = trunc nuw i8 %4666 to i1
  br i1 %4667, label %4668, label %4672

4668:                                             ; preds = %4662
  %4669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4670 = call i32 @fileno(ptr noundef %4669) #11
  %4671 = call i32 @isatty(i32 noundef %4670) #11
  %.not583 = icmp eq i32 %4671, 0
  br i1 %.not583, label %4672, label %4673

4672:                                             ; preds = %4668, %4662
  br label %4673

4673:                                             ; preds = %4668, %4672
  %.str.5.sink2350 = phi ptr [ @.str.5, %4672 ], [ @.str.2, %4668 ]
  store i32 %4663, ptr %2002, align 4, !tbaa !5
  %4674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4675 = load i32, ptr @test_count, align 4, !tbaa !5
  %4676 = load i32, ptr %1948, align 4, !tbaa !5
  %4677 = call ptr @s2n_strerror(i32 noundef %4676, ptr noundef nonnull @.str.4) #11
  %4678 = load i32, ptr %1948, align 4, !tbaa !5
  %4679 = call ptr @s2n_strerror_debug(i32 noundef %4678, ptr noundef nonnull @.str.4) #11
  %4680 = load i32, ptr %2002, align 4, !tbaa !5
  %4681 = call ptr @strerror(i32 noundef %4680) #11
  %4682 = load i32, ptr %2002, align 4, !tbaa !5
  %4683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4674, ptr noundef nonnull %.str.5.sink2350, i32 noundef %4675, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %4677, ptr noundef %4679, ptr noundef %4681, i32 noundef %4682) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4684:                                             ; preds = %4657
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %29) #11
  %4685 = call i32 @s2n_io_pair_close(ptr noundef nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  %4686 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  %4687 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  %4688 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  %4689 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  br label %.preheader.preheader

.preheader.preheader:                             ; preds = %4684, %4239
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %4992
  %.0521746 = phi i8 [ %4995, %4992 ], [ 31, %.preheader.preheader ]
  %.not762 = icmp eq i8 %.0521746, 34
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #11
  %4690 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4690, ptr %30, align 8, !tbaa !9
  %4691 = load i32, ptr @test_count, align 4, !tbaa !5
  %4692 = add nsw i32 %4691, 1
  store i32 %4692, ptr @test_count, align 4, !tbaa !5
  %4693 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4690, ptr noundef nonnull @.str.87) #11
  %4694 = icmp eq i32 %4693, -1
  br i1 %4694, label %4700, label %._crit_edge760

4695:                                             ; preds = %4992
  %4696 = load i32, ptr @test_count, align 4, !tbaa !5
  %4697 = add nsw i32 %4696, 1
  store i32 %4697, ptr @test_count, align 4, !tbaa !5
  %4698 = call i32 @s2n_config_free(ptr noundef nonnull %151) #11
  %4699 = icmp eq i32 %4698, -1
  br i1 %4699, label %4996, label %5018

4700:                                             ; preds = %4938, %.preheader
  %4701 = load i32, ptr %2002, align 4, !tbaa !5
  %4702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4703 = call i32 @s2n_print_stacktrace(ptr noundef %4702) #11
  %4704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4705 = trunc nuw i8 %4704 to i1
  br i1 %4705, label %4706, label %4710

4706:                                             ; preds = %4700
  %4707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4708 = call i32 @fileno(ptr noundef %4707) #11
  %4709 = call i32 @isatty(i32 noundef %4708) #11
  %.not599 = icmp eq i32 %4709, 0
  br i1 %.not599, label %4710, label %4711

4710:                                             ; preds = %4706, %4700
  br label %4711

4711:                                             ; preds = %4706, %4710
  %.str.5.sink2359 = phi ptr [ @.str.5, %4710 ], [ @.str.2, %4706 ]
  store i32 %4701, ptr %2002, align 4, !tbaa !5
  %4712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4713 = load i32, ptr @test_count, align 4, !tbaa !5
  %4714 = load i32, ptr %1948, align 4, !tbaa !5
  %4715 = call ptr @s2n_strerror(i32 noundef %4714, ptr noundef nonnull @.str.4) #11
  %4716 = load i32, ptr %1948, align 4, !tbaa !5
  %4717 = call ptr @s2n_strerror_debug(i32 noundef %4716, ptr noundef nonnull @.str.4) #11
  %4718 = load i32, ptr %2002, align 4, !tbaa !5
  %4719 = call ptr @strerror(i32 noundef %4718) #11
  %4720 = load i32, ptr %2002, align 4, !tbaa !5
  %4721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4712, ptr noundef nonnull %.str.5.sink2359, i32 noundef %4713, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %4715, ptr noundef %4717, ptr noundef %4719, i32 noundef %4720) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4722:                                             ; preds = %4946
  %.pre754 = load i32, ptr %2002, align 4, !tbaa !5
  %.pre755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4723 = call i32 @s2n_print_stacktrace(ptr noundef %.pre755) #11
  %4724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4725 = trunc nuw i8 %4724 to i1
  br i1 %4725, label %4726, label %4730

4726:                                             ; preds = %4722
  %4727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4728 = call i32 @fileno(ptr noundef %4727) #11
  %4729 = call i32 @isatty(i32 noundef %4728) #11
  %.not590 = icmp eq i32 %4729, 0
  br i1 %.not590, label %4730, label %4731

4730:                                             ; preds = %4726, %4722
  br label %4731

4731:                                             ; preds = %4726, %4730
  %.str.5.sink2368 = phi ptr [ @.str.5, %4730 ], [ @.str.2, %4726 ]
  store i32 %.pre754, ptr %2002, align 4, !tbaa !5
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = load i32, ptr @test_count, align 4, !tbaa !5
  %4734 = load i32, ptr %1948, align 4, !tbaa !5
  %4735 = call ptr @s2n_strerror(i32 noundef %4734, ptr noundef nonnull @.str.4) #11
  %4736 = load i32, ptr %1948, align 4, !tbaa !5
  %4737 = call ptr @s2n_strerror_debug(i32 noundef %4736, ptr noundef nonnull @.str.4) #11
  %4738 = load i32, ptr %2002, align 4, !tbaa !5
  %4739 = call ptr @strerror(i32 noundef %4738) #11
  %4740 = load i32, ptr %2002, align 4, !tbaa !5
  %4741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4732, ptr noundef nonnull %.str.5.sink2368, i32 noundef %4733, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %4735, ptr noundef %4737, ptr noundef %4739, i32 noundef %4740) #13
  call void @exit(i32 noundef 1) #14
  unreachable

._crit_edge760:                                   ; preds = %.preheader
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  %.pre761 = add nsw i32 %.pre, 1
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #11
  store i8 %.0521746, ptr %31, align 1, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %32) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %32, i8 0, i64 40, i1 false)
  store i32 %.pre761, ptr @test_count, align 4, !tbaa !5
  %4742 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %32, i32 noundef 0) #11
  %4743 = icmp eq i32 %4742, -1
  br i1 %4743, label %4744, label %4766

4744:                                             ; preds = %4952, %._crit_edge760
  %4745 = load i32, ptr %2002, align 4, !tbaa !5
  %4746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4747 = call i32 @s2n_print_stacktrace(ptr noundef %4746) #11
  %4748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4749 = trunc nuw i8 %4748 to i1
  br i1 %4749, label %4750, label %4754

4750:                                             ; preds = %4744
  %4751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4752 = call i32 @fileno(ptr noundef %4751) #11
  %4753 = call i32 @isatty(i32 noundef %4752) #11
  %.not598 = icmp eq i32 %4753, 0
  br i1 %.not598, label %4754, label %4755

4754:                                             ; preds = %4750, %4744
  br label %4755

4755:                                             ; preds = %4750, %4754
  %.str.5.sink2377 = phi ptr [ @.str.5, %4754 ], [ @.str.2, %4750 ]
  store i32 %4745, ptr %2002, align 4, !tbaa !5
  %4756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4757 = load i32, ptr @test_count, align 4, !tbaa !5
  %4758 = load i32, ptr %1948, align 4, !tbaa !5
  %4759 = call ptr @s2n_strerror(i32 noundef %4758, ptr noundef nonnull @.str.4) #11
  %4760 = load i32, ptr %1948, align 4, !tbaa !5
  %4761 = call ptr @s2n_strerror_debug(i32 noundef %4760, ptr noundef nonnull @.str.4) #11
  %4762 = load i32, ptr %2002, align 4, !tbaa !5
  %4763 = call ptr @strerror(i32 noundef %4762) #11
  %4764 = load i32, ptr %2002, align 4, !tbaa !5
  %4765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4756, ptr noundef nonnull %.str.5.sink2377, i32 noundef %4757, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 462, ptr noundef %4759, ptr noundef %4761, ptr noundef %4763, i32 noundef %4764) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4766:                                             ; preds = %._crit_edge760
  %4767 = load i32, ptr @test_count, align 4, !tbaa !5
  %4768 = add nsw i32 %4767, 1
  store i32 %4768, ptr @test_count, align 4, !tbaa !5
  %4769 = call i32 @write_test_supported_versions_list(ptr noundef nonnull %32, ptr noundef nonnull %31, i8 noundef zeroext 1)
  %4770 = icmp eq i32 %4769, -1
  br i1 %4770, label %4771, label %4855

4771:                                             ; preds = %4959, %4766
  %4772 = load i32, ptr %2002, align 4, !tbaa !5
  %4773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4774 = call i32 @s2n_print_stacktrace(ptr noundef %4773) #11
  %4775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4776 = trunc nuw i8 %4775 to i1
  br i1 %4776, label %4777, label %4781

4777:                                             ; preds = %4771
  %4778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4779 = call i32 @fileno(ptr noundef %4778) #11
  %4780 = call i32 @isatty(i32 noundef %4779) #11
  %.not597 = icmp eq i32 %4780, 0
  br i1 %.not597, label %4781, label %4782

4781:                                             ; preds = %4777, %4771
  br label %4782

4782:                                             ; preds = %4777, %4781
  %.str.5.sink2386 = phi ptr [ @.str.5, %4781 ], [ @.str.2, %4777 ]
  store i32 %4772, ptr %2002, align 4, !tbaa !5
  %4783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4784 = load i32, ptr @test_count, align 4, !tbaa !5
  %4785 = load i32, ptr %1948, align 4, !tbaa !5
  %4786 = call ptr @s2n_strerror(i32 noundef %4785, ptr noundef nonnull @.str.4) #11
  %4787 = load i32, ptr %1948, align 4, !tbaa !5
  %4788 = call ptr @s2n_strerror_debug(i32 noundef %4787, ptr noundef nonnull @.str.4) #11
  %4789 = load i32, ptr %2002, align 4, !tbaa !5
  %4790 = call ptr @strerror(i32 noundef %4789) #11
  %4791 = load i32, ptr %2002, align 4, !tbaa !5
  %4792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4783, ptr noundef nonnull %.str.5.sink2386, i32 noundef %4784, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 464, ptr noundef %4786, ptr noundef %4788, ptr noundef %4790, i32 noundef %4791) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4793:                                             ; preds = %4982
  %.pre756 = load i32, ptr %2002, align 4, !tbaa !5
  %4794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4795 = call i32 @s2n_print_stacktrace(ptr noundef %4794) #11
  %4796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4797 = trunc nuw i8 %4796 to i1
  br i1 %4797, label %4798, label %4802

4798:                                             ; preds = %4793
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @fileno(ptr noundef %4799) #11
  %4801 = call i32 @isatty(i32 noundef %4800) #11
  %.not594 = icmp eq i32 %4801, 0
  br i1 %.not594, label %4802, label %4803

4802:                                             ; preds = %4798, %4793
  br label %4803

4803:                                             ; preds = %4798, %4802
  %.str.5.sink2395 = phi ptr [ @.str.5, %4802 ], [ @.str.2, %4798 ]
  store i32 %.pre756, ptr %2002, align 4, !tbaa !5
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = load i32, ptr @test_count, align 4, !tbaa !5
  %4806 = load i32, ptr %1948, align 4, !tbaa !5
  %4807 = call ptr @s2n_strerror(i32 noundef %4806, ptr noundef nonnull @.str.4) #11
  %4808 = load i32, ptr %1948, align 4, !tbaa !5
  %4809 = call ptr @s2n_strerror_debug(i32 noundef %4808, ptr noundef nonnull @.str.4) #11
  %4810 = load i32, ptr %2002, align 4, !tbaa !5
  %4811 = call ptr @strerror(i32 noundef %4810) #11
  %4812 = load i32, ptr %2002, align 4, !tbaa !5
  %4813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4804, ptr noundef nonnull %.str.5.sink2395, i32 noundef %4805, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %4807, ptr noundef %4809, ptr noundef %4811, i32 noundef %4812) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4814:                                             ; preds = %4983
  %.pre757 = load i32, ptr %2002, align 4, !tbaa !5
  %4815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4816 = call i32 @s2n_print_stacktrace(ptr noundef %4815) #11
  %4817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4818 = trunc nuw i8 %4817 to i1
  br i1 %4818, label %4819, label %4823

4819:                                             ; preds = %4814
  %4820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4821 = call i32 @fileno(ptr noundef %4820) #11
  %4822 = call i32 @isatty(i32 noundef %4821) #11
  %.not595 = icmp eq i32 %4822, 0
  br i1 %.not595, label %4823, label %4824

4823:                                             ; preds = %4819, %4814
  br label %4824

4824:                                             ; preds = %4819, %4823
  %.str.5.sink2404 = phi ptr [ @.str.5, %4823 ], [ @.str.2, %4819 ]
  store i32 %.pre757, ptr %2002, align 4, !tbaa !5
  %4825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4826 = load i32, ptr @test_count, align 4, !tbaa !5
  %4827 = load i32, ptr %1948, align 4, !tbaa !5
  %4828 = call ptr @s2n_strerror(i32 noundef %4827, ptr noundef nonnull @.str.4) #11
  %4829 = load i32, ptr %1948, align 4, !tbaa !5
  %4830 = call ptr @s2n_strerror_debug(i32 noundef %4829, ptr noundef nonnull @.str.4) #11
  %4831 = load i32, ptr %2002, align 4, !tbaa !5
  %4832 = call ptr @strerror(i32 noundef %4831) #11
  %4833 = load i32, ptr %2002, align 4, !tbaa !5
  %4834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4825, ptr noundef nonnull %.str.5.sink2404, i32 noundef %4826, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %4828, ptr noundef %4830, ptr noundef %4832, i32 noundef %4833) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4835:                                             ; preds = %4987
  %.pre758 = load i32, ptr %2002, align 4, !tbaa !5
  %.pre759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4836 = call i32 @s2n_print_stacktrace(ptr noundef %.pre759) #11
  %4837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4838 = trunc nuw i8 %4837 to i1
  br i1 %4838, label %4839, label %4843

4839:                                             ; preds = %4835
  %4840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4841 = call i32 @fileno(ptr noundef %4840) #11
  %4842 = call i32 @isatty(i32 noundef %4841) #11
  %.not596 = icmp eq i32 %4842, 0
  br i1 %.not596, label %4843, label %4844

4843:                                             ; preds = %4839, %4835
  br label %4844

4844:                                             ; preds = %4839, %4843
  %.str.5.sink2413 = phi ptr [ @.str.5, %4843 ], [ @.str.2, %4839 ]
  store i32 %.pre758, ptr %2002, align 4, !tbaa !5
  %4845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4846 = load i32, ptr @test_count, align 4, !tbaa !5
  %4847 = load i32, ptr %1948, align 4, !tbaa !5
  %4848 = call ptr @s2n_strerror(i32 noundef %4847, ptr noundef nonnull @.str.4) #11
  %4849 = load i32, ptr %1948, align 4, !tbaa !5
  %4850 = call ptr @s2n_strerror_debug(i32 noundef %4849, ptr noundef nonnull @.str.4) #11
  %4851 = load i32, ptr %2002, align 4, !tbaa !5
  %4852 = call ptr @strerror(i32 noundef %4851) #11
  %4853 = load i32, ptr %2002, align 4, !tbaa !5
  %4854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4845, ptr noundef nonnull %.str.5.sink2413, i32 noundef %4846, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %4848, ptr noundef %4850, ptr noundef %4852, i32 noundef %4853) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4855:                                             ; preds = %4766
  %4856 = load ptr, ptr %30, align 8, !tbaa !9
  %4857 = call i32 %969(ptr noundef %4856, ptr noundef nonnull %32) #11
  %4858 = load i32, ptr @test_count, align 4, !tbaa !5
  %4859 = add nsw i32 %4858, 1
  store i32 %4859, ptr @test_count, align 4, !tbaa !5
  %4860 = icmp eq i32 %4857, -1
  br i1 %4860, label %4861, label %4883

4861:                                             ; preds = %4970, %4855
  %4862 = load i32, ptr %2002, align 4, !tbaa !5
  %4863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4864 = call i32 @s2n_print_stacktrace(ptr noundef %4863) #11
  %4865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4866 = trunc nuw i8 %4865 to i1
  br i1 %4866, label %4867, label %4871

4867:                                             ; preds = %4861
  %4868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4869 = call i32 @fileno(ptr noundef %4868) #11
  %4870 = call i32 @isatty(i32 noundef %4869) #11
  %.not593 = icmp eq i32 %4870, 0
  br i1 %.not593, label %4871, label %4872

4871:                                             ; preds = %4867, %4861
  br label %4872

4872:                                             ; preds = %4867, %4871
  %.str.5.sink2422 = phi ptr [ @.str.5, %4871 ], [ @.str.2, %4867 ]
  store i32 %4862, ptr %2002, align 4, !tbaa !5
  %4873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4874 = load i32, ptr @test_count, align 4, !tbaa !5
  %4875 = load i32, ptr %1948, align 4, !tbaa !5
  %4876 = call ptr @s2n_strerror(i32 noundef %4875, ptr noundef nonnull @.str.4) #11
  %4877 = load i32, ptr %1948, align 4, !tbaa !5
  %4878 = call ptr @s2n_strerror_debug(i32 noundef %4877, ptr noundef nonnull @.str.4) #11
  %4879 = load i32, ptr %2002, align 4, !tbaa !5
  %4880 = call ptr @strerror(i32 noundef %4879) #11
  %4881 = load i32, ptr %2002, align 4, !tbaa !5
  %4882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4873, ptr noundef nonnull %.str.5.sink2422, i32 noundef %4874, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %4876, ptr noundef %4878, ptr noundef %4880, i32 noundef %4881) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4883:                                             ; preds = %4855
  %4884 = add nsw i32 %4858, 2
  store i32 %4884, ptr @test_count, align 4, !tbaa !5
  %4885 = load ptr, ptr %30, align 8, !tbaa !9
  %4886 = getelementptr inbounds i8, ptr %4885, i64 218
  %4887 = load i8, ptr %4886, align 2, !tbaa !51
  %4888 = icmp eq i8 %4887, %.0521746
  br i1 %4888, label %4911, label %4889

4889:                                             ; preds = %4971, %4883
  %4890 = load i32, ptr %2002, align 4, !tbaa !5
  %4891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4892 = call i32 @s2n_print_stacktrace(ptr noundef %4891) #11
  %4893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4894 = trunc nuw i8 %4893 to i1
  br i1 %4894, label %4895, label %4899

4895:                                             ; preds = %4889
  %4896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4897 = call i32 @fileno(ptr noundef %4896) #11
  %4898 = call i32 @isatty(i32 noundef %4897) #11
  %.not591 = icmp eq i32 %4898, 0
  br i1 %.not591, label %4899, label %4900

4899:                                             ; preds = %4895, %4889
  br label %4900

4900:                                             ; preds = %4895, %4899
  %.str.5.sink2431 = phi ptr [ @.str.5, %4899 ], [ @.str.2, %4895 ]
  store i32 %4890, ptr %2002, align 4, !tbaa !5
  %4901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4902 = load i32, ptr @test_count, align 4, !tbaa !5
  %4903 = load i32, ptr %1948, align 4, !tbaa !5
  %4904 = call ptr @s2n_strerror(i32 noundef %4903, ptr noundef nonnull @.str.4) #11
  %4905 = load i32, ptr %1948, align 4, !tbaa !5
  %4906 = call ptr @s2n_strerror_debug(i32 noundef %4905, ptr noundef nonnull @.str.4) #11
  %4907 = load i32, ptr %2002, align 4, !tbaa !5
  %4908 = call ptr @strerror(i32 noundef %4907) #11
  %4909 = load i32, ptr %2002, align 4, !tbaa !5
  %4910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4901, ptr noundef nonnull %.str.5.sink2431, i32 noundef %4902, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %4904, ptr noundef %4906, ptr noundef %4908, i32 noundef %4909) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4911:                                             ; preds = %4883
  %4912 = add nsw i32 %4858, 3
  store i32 %4912, ptr @test_count, align 4, !tbaa !5
  %4913 = getelementptr inbounds i8, ptr %4885, i64 220
  %4914 = load i8, ptr %4913, align 4, !tbaa !53
  %4915 = icmp eq i8 %4914, %.0521746
  br i1 %4915, label %4938, label %4916

4916:                                             ; preds = %4977, %4911
  %4917 = load i32, ptr %2002, align 4, !tbaa !5
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = call i32 @s2n_print_stacktrace(ptr noundef %4918) #11
  %4920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4921 = trunc nuw i8 %4920 to i1
  br i1 %4921, label %4922, label %4926

4922:                                             ; preds = %4916
  %4923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4924 = call i32 @fileno(ptr noundef %4923) #11
  %4925 = call i32 @isatty(i32 noundef %4924) #11
  %.not592 = icmp eq i32 %4925, 0
  br i1 %.not592, label %4926, label %4927

4926:                                             ; preds = %4922, %4916
  br label %4927

4927:                                             ; preds = %4922, %4926
  %.str.5.sink2440 = phi ptr [ @.str.5, %4926 ], [ @.str.2, %4922 ]
  store i32 %4917, ptr %2002, align 4, !tbaa !5
  %4928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4929 = load i32, ptr @test_count, align 4, !tbaa !5
  %4930 = load i32, ptr %1948, align 4, !tbaa !5
  %4931 = call ptr @s2n_strerror(i32 noundef %4930, ptr noundef nonnull @.str.4) #11
  %4932 = load i32, ptr %1948, align 4, !tbaa !5
  %4933 = call ptr @s2n_strerror_debug(i32 noundef %4932, ptr noundef nonnull @.str.4) #11
  %4934 = load i32, ptr %2002, align 4, !tbaa !5
  %4935 = call ptr @strerror(i32 noundef %4934) #11
  %4936 = load i32, ptr %2002, align 4, !tbaa !5
  %4937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4928, ptr noundef nonnull %.str.5.sink2440, i32 noundef %4929, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %4931, ptr noundef %4933, ptr noundef %4935, i32 noundef %4936) #13
  call void @exit(i32 noundef 1) #14
  unreachable

4938:                                             ; preds = %4911
  %4939 = call i32 @s2n_stuffer_free(ptr noundef nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #11
  %4940 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #11
  %4941 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %4941, ptr %30, align 8, !tbaa !9
  %4942 = load i32, ptr @test_count, align 4, !tbaa !5
  %4943 = add nsw i32 %4942, 1
  store i32 %4943, ptr @test_count, align 4, !tbaa !5
  %4944 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4941, ptr noundef nonnull @.str.87) #11
  %4945 = icmp eq i32 %4944, -1
  br i1 %4945, label %4700, label %4946

4946:                                             ; preds = %4938
  %4947 = load i32, ptr @test_count, align 4, !tbaa !5
  %4948 = add nsw i32 %4947, 1
  store i32 %4948, ptr @test_count, align 4, !tbaa !5
  %4949 = load ptr, ptr %30, align 8, !tbaa !9
  %4950 = call i32 @s2n_handshake_type_set_tls13_flag(ptr noundef %4949, i32 noundef 16) #11
  %4951 = call zeroext i1 @s2n_result_is_ok(i32 %4950)
  br i1 %4951, label %4952, label %4722

4952:                                             ; preds = %4946
  %4953 = load ptr, ptr %30, align 8, !tbaa !9
  %4954 = getelementptr inbounds i8, ptr %4953, i64 2176
  store i32 1, ptr %4954, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #11
  store i8 %.0521746, ptr %31, align 1, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %32) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %32, i8 0, i64 40, i1 false)
  %4955 = load i32, ptr @test_count, align 4, !tbaa !5
  %4956 = add nsw i32 %4955, 1
  store i32 %4956, ptr @test_count, align 4, !tbaa !5
  %4957 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %32, i32 noundef 0) #11
  %4958 = icmp eq i32 %4957, -1
  br i1 %4958, label %4744, label %4959

4959:                                             ; preds = %4952
  %4960 = load i32, ptr @test_count, align 4, !tbaa !5
  %4961 = add nsw i32 %4960, 1
  store i32 %4961, ptr @test_count, align 4, !tbaa !5
  %4962 = call i32 @write_test_supported_versions_list(ptr noundef nonnull %32, ptr noundef nonnull %31, i8 noundef zeroext 1)
  %4963 = icmp eq i32 %4962, -1
  br i1 %4963, label %4771, label %4964

4964:                                             ; preds = %4959
  %4965 = load ptr, ptr %30, align 8, !tbaa !9
  %4966 = call i32 %969(ptr noundef %4965, ptr noundef nonnull %32) #11
  %4967 = load i32, ptr @test_count, align 4, !tbaa !5
  %4968 = add nsw i32 %4967, 1
  store i32 %4968, ptr @test_count, align 4, !tbaa !5
  %4969 = icmp eq i32 %4966, -1
  br i1 %.not762, label %4970, label %4982

4970:                                             ; preds = %4964
  br i1 %4969, label %4861, label %4971

4971:                                             ; preds = %4970
  %4972 = add nsw i32 %4967, 2
  store i32 %4972, ptr @test_count, align 4, !tbaa !5
  %4973 = load ptr, ptr %30, align 8, !tbaa !9
  %4974 = getelementptr inbounds i8, ptr %4973, i64 218
  %4975 = load i8, ptr %4974, align 2, !tbaa !51
  %4976 = icmp eq i8 %4975, 34
  br i1 %4976, label %4977, label %4889

4977:                                             ; preds = %4971
  %4978 = add nsw i32 %4967, 3
  store i32 %4978, ptr @test_count, align 4, !tbaa !5
  %4979 = getelementptr inbounds i8, ptr %4973, i64 220
  %4980 = load i8, ptr %4979, align 4, !tbaa !53
  %4981 = icmp eq i8 %4980, 34
  br i1 %4981, label %4992, label %4916

4982:                                             ; preds = %4964
  br i1 %4969, label %4983, label %4793

4983:                                             ; preds = %4982
  %4984 = add nsw i32 %4967, 2
  store i32 %4984, ptr @test_count, align 4, !tbaa !5
  %4985 = load i32, ptr %1948, align 4, !tbaa !5
  %4986 = icmp eq i32 %4985, 335544384
  br i1 %4986, label %4987, label %4814

4987:                                             ; preds = %4983
  %4988 = add nsw i32 %4967, 3
  store i32 %4988, ptr @test_count, align 4, !tbaa !5
  %4989 = call ptr @s2n_strerror_debug(i32 noundef 335544384, ptr noundef nonnull @.str.4) #11
  %4990 = icmp eq ptr %4989, null
  br i1 %4990, label %4835, label %4991

4991:                                             ; preds = %4987
  store i32 0, ptr %1948, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %2002, align 4, !tbaa !5
  br label %4992

4992:                                             ; preds = %4991, %4977
  %4993 = call i32 @s2n_stuffer_free(ptr noundef nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #11
  %4994 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  %4995 = add nuw nsw i8 %.0521746, 1
  %exitcond.not = icmp eq i8 %4995, 35
  br i1 %exitcond.not, label %4695, label %.preheader, !llvm.loop !58

4996:                                             ; preds = %4695
  %4997 = load i32, ptr %2002, align 4, !tbaa !5
  %4998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4999 = call i32 @s2n_print_stacktrace(ptr noundef %4998) #11
  %5000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5001 = trunc nuw i8 %5000 to i1
  br i1 %5001, label %5002, label %5006

5002:                                             ; preds = %4996
  %5003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5004 = call i32 @fileno(ptr noundef %5003) #11
  %5005 = call i32 @isatty(i32 noundef %5004) #11
  %.not589 = icmp eq i32 %5005, 0
  br i1 %.not589, label %5006, label %5007

5006:                                             ; preds = %5002, %4996
  br label %5007

5007:                                             ; preds = %5002, %5006
  %.str.5.sink2449 = phi ptr [ @.str.5, %5006 ], [ @.str.2, %5002 ]
  store i32 %4997, ptr %2002, align 4, !tbaa !5
  %5008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5009 = load i32, ptr @test_count, align 4, !tbaa !5
  %5010 = load i32, ptr %1948, align 4, !tbaa !5
  %5011 = call ptr @s2n_strerror(i32 noundef %5010, ptr noundef nonnull @.str.4) #11
  %5012 = load i32, ptr %1948, align 4, !tbaa !5
  %5013 = call ptr @s2n_strerror_debug(i32 noundef %5012, ptr noundef nonnull @.str.4) #11
  %5014 = load i32, ptr %2002, align 4, !tbaa !5
  %5015 = call ptr @strerror(i32 noundef %5014) #11
  %5016 = load i32, ptr %2002, align 4, !tbaa !5
  %5017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5008, ptr noundef nonnull %.str.5.sink2449, i32 noundef %5009, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 485, ptr noundef %5011, ptr noundef %5013, ptr noundef %5015, i32 noundef %5016) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5018:                                             ; preds = %4695
  %5019 = call i32 @s2n_cleanup() #11
  %5020 = icmp eq i32 %5019, -1
  br i1 %5020, label %5021, label %5043

5021:                                             ; preds = %5018
  %5022 = load i32, ptr %2002, align 4, !tbaa !5
  %5023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5024 = call i32 @s2n_print_stacktrace(ptr noundef %5023) #11
  %5025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5026 = trunc nuw i8 %5025 to i1
  br i1 %5026, label %5027, label %5031

5027:                                             ; preds = %5021
  %5028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5029 = call i32 @fileno(ptr noundef %5028) #11
  %5030 = call i32 @isatty(i32 noundef %5029) #11
  %.not588 = icmp eq i32 %5030, 0
  br i1 %.not588, label %5031, label %5032

5031:                                             ; preds = %5027, %5021
  br label %5032

5032:                                             ; preds = %5027, %5031
  %.str.5.sink2458 = phi ptr [ @.str.5, %5031 ], [ @.str.2, %5027 ]
  store i32 %5022, ptr %2002, align 4, !tbaa !5
  %5033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5034 = load i32, ptr @test_count, align 4, !tbaa !5
  %5035 = load i32, ptr %1948, align 4, !tbaa !5
  %5036 = call ptr @s2n_strerror(i32 noundef %5035, ptr noundef nonnull @.str.4) #11
  %5037 = load i32, ptr %1948, align 4, !tbaa !5
  %5038 = call ptr @s2n_strerror_debug(i32 noundef %5037, ptr noundef nonnull @.str.4) #11
  %5039 = load i32, ptr %2002, align 4, !tbaa !5
  %5040 = call ptr @strerror(i32 noundef %5039) #11
  %5041 = load i32, ptr %2002, align 4, !tbaa !5
  %5042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5033, ptr noundef nonnull %.str.5.sink2458, i32 noundef %5034, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %5036, ptr noundef %5038, ptr noundef %5040, i32 noundef %5041) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5043:                                             ; preds = %5018
  %5044 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %5045 = icmp eq i32 %5044, -1
  br i1 %5045, label %5046, label %5068

5046:                                             ; preds = %5043
  %5047 = load i32, ptr %2002, align 4, !tbaa !5
  %5048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5049 = call i32 @s2n_print_stacktrace(ptr noundef %5048) #11
  %5050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5051 = trunc nuw i8 %5050 to i1
  br i1 %5051, label %5052, label %5056

5052:                                             ; preds = %5046
  %5053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5054 = call i32 @fileno(ptr noundef %5053) #11
  %5055 = call i32 @isatty(i32 noundef %5054) #11
  %.not587 = icmp eq i32 %5055, 0
  br i1 %.not587, label %5056, label %5057

5056:                                             ; preds = %5052, %5046
  br label %5057

5057:                                             ; preds = %5052, %5056
  %.str.5.sink2467 = phi ptr [ @.str.5, %5056 ], [ @.str.2, %5052 ]
  store i32 %5047, ptr %2002, align 4, !tbaa !5
  %5058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5059 = load i32, ptr @test_count, align 4, !tbaa !5
  %5060 = load i32, ptr %1948, align 4, !tbaa !5
  %5061 = call ptr @s2n_strerror(i32 noundef %5060, ptr noundef nonnull @.str.4) #11
  %5062 = load i32, ptr %1948, align 4, !tbaa !5
  %5063 = call ptr @s2n_strerror_debug(i32 noundef %5062, ptr noundef nonnull @.str.4) #11
  %5064 = load i32, ptr %2002, align 4, !tbaa !5
  %5065 = call ptr @strerror(i32 noundef %5064) #11
  %5066 = load i32, ptr %2002, align 4, !tbaa !5
  %5067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5058, ptr noundef nonnull %.str.5.sink2467, i32 noundef %5059, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %5061, ptr noundef %5063, ptr noundef %5065, i32 noundef %5066) #13
  call void @exit(i32 noundef 1) #14
  unreachable

5068:                                             ; preds = %5043
  %5069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5070 = trunc nuw i8 %5069 to i1
  br i1 %5070, label %5071, label %5082

5071:                                             ; preds = %5068
  %5072 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5073 = call i32 @fileno(ptr noundef %5072) #11
  %5074 = call i32 @isatty(i32 noundef %5073) #11
  %.not584 = icmp eq i32 %5074, 0
  br i1 %.not584, label %5082, label %5075

5075:                                             ; preds = %5071
  %5076 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not586 = icmp eq i32 %5076, 0
  %5077 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not586, label %5080, label %5078

5078:                                             ; preds = %5075
  %5079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5077, ptr noundef nonnull @.str.98, i32 noundef %5076) #11
  br label %5089

5080:                                             ; preds = %5075
  %5081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5077, ptr noundef nonnull @.str.99) #11
  br label %5089

5082:                                             ; preds = %5071, %5068
  %5083 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not585 = icmp eq i32 %5083, 0
  %5084 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not585, label %5087, label %5085

5085:                                             ; preds = %5082
  %5086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5084, ptr noundef nonnull @.str.100, i32 noundef %5083) #11
  br label %5089

5087:                                             ; preds = %5082
  %5088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5084, ptr noundef nonnull @.str.101) #11
  br label %5089

5089:                                             ; preds = %.thread736, %.thread729, %.thread722, %5080, %5078, %5087, %5085
  %.6 = phi i32 [ 0, %5085 ], [ 0, %5087 ], [ 0, %5078 ], [ 0, %5080 ], [ -1, %.thread722 ], [ -1, %.thread729 ], [ -1, %.thread736 ]
  ret i32 %.6
}

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

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

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

; 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 #1

; 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 #3

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

; 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 #1

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #1

declare i32 @s2n_init() local_unnamed_addr #1

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #1

declare ptr @s2n_config_new() local_unnamed_addr #1

declare zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef) local_unnamed_addr #1

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #1

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

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #1

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #1

declare i32 @s2n_connection_enable_quic(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_extensions_client_supported_versions_size(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #1

; 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

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #1

declare void @s2n_debug_info_reset() local_unnamed_addr #1

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_read_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_rewrite(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_write(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare i32 @s2n_handshake_type_set_tls13_flag(ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_cleanup() local_unnamed_addr #1

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 0}
!16 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!17 = !{!18, !10, i64 16}
!18 = !{!"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, !19, i64 160, !20, i64 168, !20, 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, !21, i64 240, !10, i64 632, !10, i64 640, !22, i64 648, !28, i64 1144, !31, 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, !20, 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, !33, i64 2208, !6, i64 2212, !33, i64 2216, !20, i64 2224, !7, i64 2232, !20, i64 2240, !20, i64 2248, !20, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !27, i64 2792, !6, i64 2816, !27, i64 2824, !27, i64 2848, !27, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !27, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !27, i64 4032, !27, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !33, i64 4084, !33, i64 4086, !6, i64 4088, !6, i64 4092, !27, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!19 = !{!"s2n_timer", !20, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!22 = !{!"s2n_kex_parameters", !23, i64 0, !24, i64 8, !7, i64 24, !24, i64 56, !25, i64 72, !25, i64 184, !7, i64 296, !26, i64 360, !27, i64 448, !27, i64 472}
!23 = !{!"s2n_dh_params", !10, i64 0}
!24 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!25 = !{!"s2n_kem_group_params", !10, i64 0, !26, i64 8, !24, i64 96}
!26 = !{!"s2n_kem_params", !10, i64 0, !27, i64 8, !27, i64 32, !27, i64 56, !12, i64 80}
!27 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!28 = !{!"s2n_handshake_parameters", !29, i64 0, !29, i64 48, !27, i64 96, !6, i64 120, !30, 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}
!29 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!30 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!31 = !{!"s2n_psk_parameters", !6, i64 0, !32, i64 8, !33, i64 40, !33, i64 42, !10, i64 48, !6, i64 56}
!32 = !{!"s2n_array", !27, i64 0, !6, i64 24, !6, i64 28}
!33 = !{!"short", !7, i64 0}
!34 = !{!"s2n_stuffer", !27, 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", !27, i64 0, !39, i64 24, !27, i64 728, !27, i64 752, !27, 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, !27, i64 672, !33, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !33, 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", !27, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!45, !10, i64 8}
!45 = !{!"", !33, i64 0, !6, i64 2, !33, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!46 = !{!7, !7, i64 0}
!47 = !{!33, !33, i64 0}
!48 = !{!34, !6, i64 28}
!49 = !{!34, !6, i64 24}
!50 = !{!45, !10, i64 16}
!51 = !{!18, !7, i64 218}
!52 = !{!18, !7, i64 219}
!53 = !{!18, !7, i64 220}
!54 = !{!18, !7, i64 2001}
!55 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !46, i64 24, i64 4, !5, i64 28, i64 4, !5, i64 32, i64 4, !5, i64 36, i64 1, !46}
!56 = !{!18, !7, i64 217}
!57 = !{!18, !6, i64 2176}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass