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

@s2n_use_color_in_output = external dso_local global i8, align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local global i32, align 4
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [94 x i8], align 1
@stderr = external global ptr, align 8
@.str.4 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_client_key_share_extension = external constant %struct.s2n_extension_type, align 8
@.str.16 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_ecc_curve_x25519 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.37 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [82 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@hello_retry_req_random = external global [32 x i8], align 16
@.str.41 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [25 x i8], align 1

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #1

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strrchr(ptr noundef, i32 noundef) #2

declare i32 @s2n_calculate_stacktrace() #3

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

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) #3

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca %struct.s2n_stuffer, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca %struct.s2n_result, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca %struct.s2n_result, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_stuffer, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %struct.s2n_stuffer, align 8
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i16, align 2
  %44 = alloca i32, align 4
  %45 = alloca i16, align 2
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i16, align 2
  %52 = alloca i16, align 2
  %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 %struct.s2n_stuffer, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca ptr, align 8
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %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 ptr, align 8
  %80 = alloca %struct.s2n_stuffer, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca ptr, align 8
  %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 i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i16, align 2
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i16, align 2
  %103 = alloca i16, align 2
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca ptr, align 8
  %114 = alloca ptr, align 8
  %115 = alloca %struct.s2n_stuffer, align 8
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_result, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca ptr, align 8
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca ptr, align 8
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca ptr, align 8
  %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 i32, align 4
  %137 = alloca ptr, align 8
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca ptr, align 8
  %145 = alloca %struct.s2n_stuffer, align 8
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca ptr, align 8
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca ptr, align 8
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca ptr, align 8
  %164 = alloca i32, align 4
  %165 = alloca ptr, align 8
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca ptr, align 8
  %169 = alloca %struct.s2n_stuffer, align 8
  %170 = alloca %struct.s2n_stuffer, align 8
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca ptr, align 8
  %187 = alloca ptr, align 8
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca %struct.s2n_result, align 4
  %191 = alloca i32, align 4
  %192 = alloca %struct.s2n_stuffer, align 8
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i16, align 2
  %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 i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca ptr, align 8
  %205 = alloca ptr, align 8
  %206 = alloca %struct.s2n_stuffer, align 8
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca %struct.s2n_result, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca ptr, align 8
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca ptr, align 8
  %219 = alloca ptr, align 8
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca [2 x i8], align 1
  %227 = alloca ptr, align 8
  %228 = alloca i32, align 4
  %229 = alloca %struct.s2n_result, align 4
  %230 = alloca i32, align 4
  %231 = alloca %struct.s2n_stuffer, align 8
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca i32, align 4
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca ptr, align 8
  %240 = alloca i32, align 4
  %241 = alloca %struct.s2n_result, align 4
  %242 = alloca i32, align 4
  %243 = alloca ptr, align 8
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca %struct.s2n_ecc_evp_params, align 8
  %248 = alloca %struct.s2n_stuffer, align 8
  %249 = alloca i32, align 4
  %250 = alloca %struct.s2n_stuffer_reservation, align 8
  %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 i32, align 4
  %257 = alloca ptr, align 8
  %258 = alloca i32, align 4
  %259 = alloca i32, align 4
  %260 = alloca i32, align 4
  %261 = alloca i32, align 4
  %262 = alloca i32, align 4
  %263 = alloca i32, align 4
  %264 = alloca ptr, align 8
  %265 = alloca i32, align 4
  %266 = alloca %struct.s2n_result, align 4
  %267 = alloca i32, align 4
  %268 = alloca ptr, align 8
  %269 = alloca i32, align 4
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %273 = alloca %struct.s2n_stuffer, align 8
  %274 = alloca i32, align 4
  %275 = alloca %struct.s2n_stuffer_reservation, align 8
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca i32, align 4
  %281 = alloca i32, align 4
  %282 = alloca i32, align 4
  %283 = alloca ptr, align 8
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca i32, align 4
  %287 = alloca i64, align 8
  %288 = alloca i32, align 4
  %289 = alloca i32, align 4
  %290 = alloca i32, align 4
  %291 = alloca ptr, align 8
  %292 = alloca i32, align 4
  %293 = alloca %struct.s2n_result, align 4
  %294 = alloca i32, align 4
  %295 = alloca ptr, align 8
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca i32, align 4
  %299 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %300 = alloca %struct.s2n_stuffer, align 8
  %301 = alloca i32, align 4
  %302 = alloca %struct.s2n_stuffer_reservation, align 8
  %303 = alloca i32, align 4
  %304 = alloca i32, align 4
  %305 = alloca i32, align 4
  %306 = alloca i32, align 4
  %307 = alloca i32, align 4
  %308 = alloca i32, align 4
  %309 = alloca i32, align 4
  %310 = alloca i32, align 4
  %311 = alloca ptr, align 8
  %312 = alloca i32, align 4
  %313 = alloca i32, align 4
  %314 = alloca i32, align 4
  %315 = alloca i64, align 8
  %316 = alloca i32, align 4
  %317 = alloca i32, align 4
  %318 = alloca i32, align 4
  %319 = alloca ptr, align 8
  %320 = alloca i32, align 4
  %321 = alloca %struct.s2n_result, align 4
  %322 = alloca i32, align 4
  %323 = alloca ptr, align 8
  %324 = alloca i32, align 4
  %325 = alloca i32, align 4
  %326 = alloca i32, align 4
  %327 = alloca %struct.s2n_ecc_evp_params, align 8
  %328 = alloca %struct.s2n_stuffer, align 8
  %329 = alloca i32, align 4
  %330 = alloca %struct.s2n_stuffer_reservation, align 8
  %331 = alloca i32, align 4
  %332 = alloca i32, align 4
  %333 = alloca i32, align 4
  %334 = alloca i32, align 4
  %335 = alloca i32, align 4
  %336 = alloca i32, align 4
  %337 = alloca ptr, align 8
  %338 = alloca i32, align 4
  %339 = alloca i32, align 4
  %340 = alloca i32, align 4
  %341 = alloca i32, align 4
  %342 = alloca i32, align 4
  %343 = alloca ptr, align 8
  %344 = alloca i32, align 4
  %345 = alloca %struct.s2n_result, align 4
  %346 = alloca i32, align 4
  %347 = alloca ptr, align 8
  %348 = alloca i32, align 4
  %349 = alloca i32, align 4
  %350 = alloca i32, align 4
  %351 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %352 = alloca %struct.s2n_stuffer, align 8
  %353 = alloca i32, align 4
  %354 = alloca %struct.s2n_stuffer_reservation, align 8
  %355 = alloca i32, align 4
  %356 = alloca i32, align 4
  %357 = alloca i32, align 4
  %358 = alloca i32, align 4
  %359 = alloca i32, align 4
  %360 = alloca i32, align 4
  %361 = alloca i32, align 4
  %362 = alloca ptr, align 8
  %363 = alloca i32, align 4
  %364 = alloca i32, align 4
  %365 = alloca i32, align 4
  %366 = alloca i64, align 8
  %367 = alloca i32, align 4
  %368 = alloca i32, align 4
  %369 = alloca i32, align 4
  %370 = alloca ptr, align 8
  %371 = alloca %struct.s2n_stuffer, align 8
  %372 = alloca i32, align 4
  %373 = alloca %struct.s2n_result, align 4
  %374 = alloca i32, align 4
  %375 = alloca i32, align 4
  %376 = alloca ptr, align 8
  %377 = alloca i32, align 4
  %378 = alloca i32, align 4
  %379 = alloca i32, align 4
  %380 = alloca i32, align 4
  %381 = alloca i32, align 4
  %382 = alloca i32, align 4
  %383 = alloca i32, align 4
  %384 = alloca i32, align 4
  %385 = alloca i32, align 4
  %386 = alloca ptr, align 8
  %387 = alloca %struct.s2n_stuffer, align 8
  %388 = alloca i32, align 4
  %389 = alloca %struct.s2n_result, align 4
  %390 = alloca i32, align 4
  %391 = alloca i32, align 4
  %392 = alloca ptr, align 8
  %393 = alloca i32, align 4
  %394 = alloca i32, align 4
  %395 = alloca i32, align 4
  %396 = alloca i32, align 4
  %397 = alloca i32, align 4
  %398 = alloca i32, align 4
  %399 = alloca i32, align 4
  %400 = alloca i32, align 4
  %401 = alloca i32, align 4
  %402 = alloca i32, align 4
  %403 = alloca ptr, align 8
  %404 = alloca %struct.s2n_stuffer, align 8
  %405 = alloca i32, align 4
  %406 = alloca %struct.s2n_result, align 4
  %407 = alloca i32, align 4
  %408 = alloca i32, align 4
  %409 = alloca ptr, align 8
  %410 = alloca i32, align 4
  %411 = alloca i32, align 4
  %412 = alloca i32, align 4
  %413 = alloca i32, align 4
  %414 = alloca i32, align 4
  %415 = alloca i32, align 4
  %416 = alloca i32, align 4
  %417 = alloca ptr, align 8
  %418 = alloca i32, align 4
  %419 = alloca i32, align 4
  %420 = alloca i32, align 4
  %421 = alloca i32, align 4
  %422 = alloca i32, align 4
  %423 = alloca ptr, align 8
  %424 = alloca %struct.s2n_stuffer, align 8
  %425 = alloca i32, align 4
  %426 = alloca i32, align 4
  %427 = alloca %struct.s2n_result, align 4
  %428 = alloca i32, align 4
  %429 = alloca i32, align 4
  %430 = alloca ptr, align 8
  %431 = alloca i32, align 4
  %432 = alloca i32, align 4
  %433 = alloca i32, align 4
  %434 = alloca i32, align 4
  %435 = alloca ptr, align 8
  %436 = alloca i32, align 4
  %437 = alloca i32, align 4
  %438 = alloca i32, align 4
  %439 = alloca i32, align 4
  %440 = alloca ptr, align 8
  %441 = alloca %struct.s2n_stuffer, align 8
  %442 = alloca i32, align 4
  %443 = alloca i32, align 4
  %444 = alloca %struct.s2n_result, align 4
  %445 = alloca i32, align 4
  %446 = alloca i32, align 4
  %447 = alloca ptr, align 8
  %448 = alloca i32, align 4
  %449 = alloca i32, align 4
  %450 = alloca i32, align 4
  %451 = alloca i32, align 4
  %452 = alloca i32, align 4
  %453 = alloca i32, align 4
  %454 = alloca i32, align 4
  %455 = alloca i32, align 4
  %456 = alloca ptr, align 8
  %457 = alloca i32, align 4
  %458 = alloca i32, align 4
  %459 = alloca i32, align 4
  %460 = alloca i32, align 4
  %461 = alloca ptr, align 8
  %462 = alloca %struct.s2n_stuffer, align 8
  %463 = alloca i32, align 4
  %464 = alloca i32, align 4
  %465 = alloca %struct.s2n_result, align 4
  %466 = alloca i32, align 4
  %467 = alloca i32, align 4
  %468 = alloca ptr, align 8
  %469 = alloca i32, align 4
  %470 = alloca i32, align 4
  %471 = alloca i32, align 4
  %472 = alloca i32, align 4
  %473 = alloca i32, align 4
  %474 = alloca i32, align 4
  %475 = alloca i32, align 4
  %476 = alloca ptr, align 8
  %477 = alloca i32, align 4
  %478 = alloca i32, align 4
  %479 = alloca i32, align 4
  %480 = alloca i32, align 4
  %481 = alloca ptr, align 8
  %482 = alloca %struct.s2n_stuffer, align 8
  %483 = alloca %struct.s2n_ecc_evp_params, align 8
  %484 = alloca %struct.s2n_ecc_evp_params, align 8
  %485 = alloca i32, align 4
  %486 = alloca i32, align 4
  %487 = alloca i32, align 4
  %488 = alloca %struct.s2n_result, align 4
  %489 = alloca i32, align 4
  %490 = alloca i32, align 4
  %491 = alloca ptr, align 8
  %492 = alloca i32, align 4
  %493 = alloca i32, align 4
  %494 = alloca i32, align 4
  %495 = alloca i32, align 4
  %496 = alloca i32, align 4
  %497 = alloca i32, align 4
  %498 = alloca i32, align 4
  %499 = alloca i32, align 4
  %500 = alloca i32, align 4
  %501 = alloca i32, align 4
  %502 = alloca i32, align 4
  %503 = alloca i32, align 4
  %504 = alloca i32, align 4
  %505 = alloca ptr, align 8
  %506 = alloca %struct.s2n_stuffer, align 8
  %507 = alloca ptr, align 8
  %508 = alloca i32, align 4
  %509 = alloca i32, align 4
  %510 = alloca i32, align 4
  %511 = alloca i32, align 4
  %512 = alloca %struct.s2n_result, align 4
  %513 = alloca i32, align 4
  %514 = alloca i32, align 4
  %515 = alloca i32, align 4
  %516 = alloca ptr, align 8
  %517 = alloca i32, align 4
  %518 = alloca i32, align 4
  %519 = alloca i32, align 4
  %520 = alloca i32, align 4
  %521 = alloca i32, align 4
  %522 = alloca i32, align 4
  %523 = alloca i32, align 4
  %524 = alloca i32, align 4
  %525 = alloca i32, align 4
  %526 = alloca i32, align 4
  %527 = alloca ptr, align 8
  %528 = alloca i32, align 4
  %529 = alloca i32, align 4
  %530 = alloca i32, align 4
  %531 = alloca i32, align 4
  %532 = alloca i32, align 4
  %533 = alloca ptr, align 8
  %534 = alloca i32, align 4
  %535 = alloca i32, align 4
  %536 = alloca ptr, align 8
  %537 = alloca i32, align 4
  %538 = alloca i32, align 4
  %539 = alloca %struct.s2n_result, align 4
  %540 = alloca i32, align 4
  %541 = alloca i32, align 4
  %542 = alloca %struct.s2n_stuffer, align 8
  %543 = alloca i32, align 4
  %544 = alloca ptr, align 8
  %545 = alloca i32, align 4
  %546 = alloca i32, align 4
  %547 = alloca i32, align 4
  %548 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %549 = alloca %struct.s2n_stuffer_reservation, align 8
  %550 = alloca i32, align 4
  %551 = alloca i32, align 4
  %552 = alloca i32, align 4
  %553 = alloca i32, align 4
  %554 = alloca i32, align 4
  %555 = alloca i32, align 4
  %556 = alloca i32, align 4
  %557 = alloca i32, align 4
  %558 = alloca i32, align 4
  %559 = alloca ptr, align 8
  %560 = alloca i32, align 4
  %561 = alloca i32, align 4
  %562 = alloca i32, align 4
  %563 = alloca i64, align 8
  %564 = alloca i32, align 4
  %565 = alloca i32, align 4
  %566 = alloca i32, align 4
  %567 = alloca i32, align 4
  %568 = alloca ptr, align 8
  %569 = alloca i32, align 4
  %570 = alloca i32, align 4
  %571 = alloca %struct.s2n_result, align 4
  %572 = alloca i32, align 4
  %573 = alloca %struct.s2n_stuffer, align 8
  %574 = alloca i32, align 4
  %575 = alloca ptr, align 8
  %576 = alloca i32, align 4
  %577 = alloca i32, align 4
  %578 = alloca i32, align 4
  %579 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %580 = alloca %struct.s2n_stuffer_reservation, align 8
  %581 = alloca i32, align 4
  %582 = alloca i32, align 4
  %583 = alloca i32, align 4
  %584 = alloca i32, align 4
  %585 = alloca i32, align 4
  %586 = alloca i32, align 4
  %587 = alloca i32, align 4
  %588 = alloca i32, align 4
  %589 = alloca ptr, align 8
  %590 = alloca i32, align 4
  %591 = alloca i32, align 4
  %592 = alloca i32, align 4
  %593 = alloca i64, align 8
  %594 = alloca i32, align 4
  %595 = alloca i32, align 4
  %596 = alloca i32, align 4
  %597 = alloca ptr, align 8
  %598 = alloca %struct.s2n_stuffer, align 8
  %599 = alloca ptr, align 8
  %600 = alloca i32, align 4
  %601 = alloca i32, align 4
  %602 = alloca i32, align 4
  %603 = alloca %struct.s2n_result, align 4
  %604 = alloca i32, align 4
  %605 = alloca i32, align 4
  %606 = alloca i32, align 4
  %607 = alloca i32, align 4
  %608 = alloca ptr, align 8
  %609 = alloca i32, align 4
  %610 = alloca i32, align 4
  %611 = alloca ptr, align 8
  %612 = alloca i32, align 4
  %613 = alloca i32, align 4
  %614 = alloca i32, align 4
  %615 = alloca i32, align 4
  %616 = alloca i32, align 4
  %617 = alloca ptr, align 8
  %618 = alloca i32, align 4
  %619 = alloca i32, align 4
  %620 = alloca i32, align 4
  %621 = alloca i32, align 4
  %622 = alloca i32, align 4
  %623 = alloca i32, align 4
  %624 = 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 %625

625:                                              ; preds = %2
  br label %626

626:                                              ; preds = %625
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %627 = load ptr, ptr @stdout, align 8, !tbaa !9
  %628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %627, ptr noundef @.str.2, ptr noundef @.str.3) #12
  %629 = load ptr, ptr @stdout, align 8, !tbaa !9
  %630 = call i32 @fflush(ptr noundef %629)
  br label %631

631:                                              ; preds = %626
  %632 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %633 = icmp eq i32 %632, -1
  br i1 %633, label %634, label %685

634:                                              ; preds = %631
  br label %635

635:                                              ; preds = %634
  br label %636

636:                                              ; preds = %635
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #12
  %637 = call ptr @__errno_location() #13
  %638 = load i32, ptr %637, align 4, !tbaa !5
  store i32 %638, ptr %6, align 4, !tbaa !5
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = call i32 @s2n_print_stacktrace(ptr noundef %639)
  %641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %642 = trunc i8 %641 to i1
  br i1 %642, label %643, label %665

643:                                              ; preds = %636
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = call i32 @fileno(ptr noundef %644) #12
  %646 = call i32 @isatty(i32 noundef %645) #12
  %647 = icmp ne i32 %646, 0
  br i1 %647, label %648, label %665

648:                                              ; preds = %643
  %649 = load i32, ptr %6, align 4, !tbaa !5
  %650 = call ptr @__errno_location() #13
  store i32 %649, ptr %650, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = load i32, ptr @test_count, align 4, !tbaa !5
  %653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror(i32 noundef %654, ptr noundef @.str.6)
  %656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call ptr @s2n_strerror_debug(i32 noundef %657, ptr noundef @.str.6)
  %659 = call ptr @__errno_location() #13
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @strerror(i32 noundef %660) #12
  %662 = call ptr @__errno_location() #13
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %651, ptr noundef @.str.4, i32 noundef %652, ptr noundef @.str.5, ptr noundef @.str.3, i32 noundef 67, ptr noundef %655, ptr noundef %658, ptr noundef %661, i32 noundef %663) #12
  br label %682

665:                                              ; preds = %643, %636
  %666 = load i32, ptr %6, align 4, !tbaa !5
  %667 = call ptr @__errno_location() #13
  store i32 %666, ptr %667, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef @.str.6)
  %673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror_debug(i32 noundef %674, ptr noundef @.str.6)
  %676 = call ptr @__errno_location() #13
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @strerror(i32 noundef %677) #12
  %679 = call ptr @__errno_location() #13
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef @.str.7, i32 noundef %669, ptr noundef @.str.5, ptr noundef @.str.3, i32 noundef 67, ptr noundef %672, ptr noundef %675, ptr noundef %678, i32 noundef %680) #12
  br label %682

682:                                              ; preds = %665, %648
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #12
  br label %683

683:                                              ; preds = %682
  call void @exit(i32 noundef 1) #14
  unreachable

684:                                              ; No predecessors!
  br label %685

685:                                              ; preds = %684, %631
  br label %686

686:                                              ; preds = %685
  br label %687

687:                                              ; preds = %686
  %688 = load i32, ptr @test_count, align 4, !tbaa !5
  %689 = add nsw i32 %688, 1
  store i32 %689, ptr @test_count, align 4, !tbaa !5
  %690 = call i32 @s2n_enable_atexit()
  %691 = icmp eq i32 %690, -1
  br i1 %691, label %692, label %743

692:                                              ; preds = %687
  br label %693

693:                                              ; preds = %692
  br label %694

694:                                              ; preds = %693
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #12
  %695 = call ptr @__errno_location() #13
  %696 = load i32, ptr %695, align 4, !tbaa !5
  store i32 %696, ptr %7, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = call i32 @s2n_print_stacktrace(ptr noundef %697)
  %699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %700 = trunc i8 %699 to i1
  br i1 %700, label %701, label %723

701:                                              ; preds = %694
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = call i32 @fileno(ptr noundef %702) #12
  %704 = call i32 @isatty(i32 noundef %703) #12
  %705 = icmp ne i32 %704, 0
  br i1 %705, label %706, label %723

706:                                              ; preds = %701
  %707 = load i32, ptr %7, align 4, !tbaa !5
  %708 = call ptr @__errno_location() #13
  store i32 %707, ptr %708, align 4, !tbaa !5
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror(i32 noundef %712, ptr noundef @.str.6)
  %714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call ptr @s2n_strerror_debug(i32 noundef %715, ptr noundef @.str.6)
  %717 = call ptr @__errno_location() #13
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = call ptr @strerror(i32 noundef %718) #12
  %720 = call ptr @__errno_location() #13
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %709, ptr noundef @.str.4, i32 noundef %710, ptr noundef @.str.8, ptr noundef @.str.3, i32 noundef 67, ptr noundef %713, ptr noundef %716, ptr noundef %719, i32 noundef %721) #12
  br label %740

723:                                              ; preds = %701, %694
  %724 = load i32, ptr %7, align 4, !tbaa !5
  %725 = call ptr @__errno_location() #13
  store i32 %724, ptr %725, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %729 = load i32, ptr %728, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror(i32 noundef %729, ptr noundef @.str.6)
  %731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror_debug(i32 noundef %732, ptr noundef @.str.6)
  %734 = call ptr @__errno_location() #13
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = call ptr @strerror(i32 noundef %735) #12
  %737 = call ptr @__errno_location() #13
  %738 = load i32, ptr %737, align 4, !tbaa !5
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %726, ptr noundef @.str.7, i32 noundef %727, ptr noundef @.str.8, ptr noundef @.str.3, i32 noundef 67, ptr noundef %730, ptr noundef %733, ptr noundef %736, i32 noundef %738) #12
  br label %740

740:                                              ; preds = %723, %706
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #12
  br label %741

741:                                              ; preds = %740
  call void @exit(i32 noundef 1) #14
  unreachable

742:                                              ; No predecessors!
  br label %743

743:                                              ; preds = %742, %687
  br label %744

744:                                              ; preds = %743
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  %747 = call i32 @s2n_init()
  %748 = icmp eq i32 %747, -1
  br i1 %748, label %749, label %800

749:                                              ; preds = %746
  br label %750

750:                                              ; preds = %749
  br label %751

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

758:                                              ; preds = %751
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @fileno(ptr noundef %759) #12
  %761 = call i32 @isatty(i32 noundef %760) #12
  %762 = icmp ne i32 %761, 0
  br i1 %762, label %763, label %780

763:                                              ; preds = %758
  %764 = load i32, ptr %8, align 4, !tbaa !5
  %765 = call ptr @__errno_location() #13
  store i32 %764, ptr %765, align 4, !tbaa !5
  %766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %767 = load i32, ptr @test_count, align 4, !tbaa !5
  %768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = call ptr @s2n_strerror(i32 noundef %769, ptr noundef @.str.6)
  %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_debug(i32 noundef %772, ptr noundef @.str.6)
  %774 = call ptr @__errno_location() #13
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call ptr @strerror(i32 noundef %775) #12
  %777 = call ptr @__errno_location() #13
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %766, ptr noundef @.str.4, i32 noundef %767, ptr noundef @.str.9, ptr noundef @.str.3, i32 noundef 67, ptr noundef %770, ptr noundef %773, ptr noundef %776, i32 noundef %778) #12
  br label %797

780:                                              ; preds = %758, %751
  %781 = load i32, ptr %8, align 4, !tbaa !5
  %782 = call ptr @__errno_location() #13
  store i32 %781, ptr %782, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = call ptr @s2n_strerror(i32 noundef %786, ptr noundef @.str.6)
  %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_debug(i32 noundef %789, ptr noundef @.str.6)
  %791 = call ptr @__errno_location() #13
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call ptr @strerror(i32 noundef %792) #12
  %794 = call ptr @__errno_location() #13
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %783, ptr noundef @.str.7, i32 noundef %784, ptr noundef @.str.9, ptr noundef @.str.3, i32 noundef 67, ptr noundef %787, ptr noundef %790, ptr noundef %793, i32 noundef %795) #12
  br label %797

797:                                              ; preds = %780, %763
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #12
  br label %798

798:                                              ; preds = %797
  call void @exit(i32 noundef 1) #14
  unreachable

799:                                              ; No predecessors!
  br label %800

800:                                              ; preds = %799, %746
  br label %801

801:                                              ; preds = %800
  br label %802

802:                                              ; preds = %801
  br label %803

803:                                              ; preds = %802
  %804 = load i32, ptr @test_count, align 4, !tbaa !5
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr @test_count, align 4, !tbaa !5
  %806 = call i32 (...) @s2n_enable_tls13_in_test()
  %807 = icmp eq i32 %806, -1
  br i1 %807, label %808, label %859

808:                                              ; preds = %803
  br label %809

809:                                              ; preds = %808
  br label %810

810:                                              ; preds = %809
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #12
  %811 = call ptr @__errno_location() #13
  %812 = load i32, ptr %811, align 4, !tbaa !5
  store i32 %812, ptr %9, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 @s2n_print_stacktrace(ptr noundef %813)
  %815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %816 = trunc i8 %815 to i1
  br i1 %816, label %817, label %839

817:                                              ; preds = %810
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = call i32 @fileno(ptr noundef %818) #12
  %820 = call i32 @isatty(i32 noundef %819) #12
  %821 = icmp ne i32 %820, 0
  br i1 %821, label %822, label %839

822:                                              ; preds = %817
  %823 = load i32, ptr %9, align 4, !tbaa !5
  %824 = call ptr @__errno_location() #13
  store i32 %823, ptr %824, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = load i32, ptr @test_count, align 4, !tbaa !5
  %827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror(i32 noundef %828, ptr noundef @.str.6)
  %830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = call ptr @s2n_strerror_debug(i32 noundef %831, ptr noundef @.str.6)
  %833 = call ptr @__errno_location() #13
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call ptr @strerror(i32 noundef %834) #12
  %836 = call ptr @__errno_location() #13
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %825, ptr noundef @.str.4, i32 noundef %826, ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 68, ptr noundef %829, ptr noundef %832, ptr noundef %835, i32 noundef %837) #12
  br label %856

839:                                              ; preds = %817, %810
  %840 = load i32, ptr %9, align 4, !tbaa !5
  %841 = call ptr @__errno_location() #13
  store i32 %840, ptr %841, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror(i32 noundef %845, ptr noundef @.str.6)
  %847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror_debug(i32 noundef %848, ptr noundef @.str.6)
  %850 = call ptr @__errno_location() #13
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @strerror(i32 noundef %851) #12
  %853 = call ptr @__errno_location() #13
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef @.str.7, i32 noundef %843, ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 68, ptr noundef %846, ptr noundef %849, ptr noundef %852, i32 noundef %854) #12
  br label %856

856:                                              ; preds = %839, %822
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #12
  br label %857

857:                                              ; preds = %856
  call void @exit(i32 noundef 1) #14
  unreachable

858:                                              ; No predecessors!
  br label %859

859:                                              ; preds = %858, %803
  br label %860

860:                                              ; preds = %859
  call void @llvm.lifetime.start.p0(i64 40, ptr %10) #12
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #12
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %861

861:                                              ; preds = %860
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = add nsw i32 %862, 1
  store i32 %863, ptr @test_count, align 4, !tbaa !5
  %864 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %864, ptr %11, align 8, !tbaa !9
  %865 = icmp eq ptr %864, null
  br i1 %865, label %866, label %919

866:                                              ; preds = %861
  br label %867

867:                                              ; preds = %866
  br label %868

868:                                              ; preds = %867
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #12
  %869 = call ptr @__errno_location() #13
  %870 = load i32, ptr %869, align 4, !tbaa !5
  store i32 %870, ptr %12, align 4, !tbaa !5
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = call i32 @s2n_print_stacktrace(ptr noundef %871)
  %873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %874 = trunc i8 %873 to i1
  br i1 %874, label %875, label %897

875:                                              ; preds = %868
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = call i32 @fileno(ptr noundef %876) #12
  %878 = call i32 @isatty(i32 noundef %877) #12
  %879 = icmp ne i32 %878, 0
  br i1 %879, label %880, label %897

880:                                              ; preds = %875
  %881 = load i32, ptr %12, align 4, !tbaa !5
  %882 = call ptr @__errno_location() #13
  store i32 %881, ptr %882, align 4, !tbaa !5
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror(i32 noundef %886, ptr noundef @.str.6)
  %888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror_debug(i32 noundef %889, ptr noundef @.str.6)
  %891 = call ptr @__errno_location() #13
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call ptr @strerror(i32 noundef %892) #12
  %894 = call ptr @__errno_location() #13
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %883, ptr noundef @.str.4, i32 noundef %884, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 74, ptr noundef %887, ptr noundef %890, ptr noundef %893, i32 noundef %895) #12
  br label %914

897:                                              ; preds = %875, %868
  %898 = load i32, ptr %12, align 4, !tbaa !5
  %899 = call ptr @__errno_location() #13
  store i32 %898, ptr %899, align 4, !tbaa !5
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = load i32, ptr @test_count, align 4, !tbaa !5
  %902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror(i32 noundef %903, ptr noundef @.str.6)
  %905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror_debug(i32 noundef %906, ptr noundef @.str.6)
  %908 = call ptr @__errno_location() #13
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call ptr @strerror(i32 noundef %909) #12
  %911 = call ptr @__errno_location() #13
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %900, ptr noundef @.str.7, i32 noundef %901, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 74, ptr noundef %904, ptr noundef %907, ptr noundef %910, i32 noundef %912) #12
  br label %914

914:                                              ; preds = %897, %880
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #12
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915
  call void @exit(i32 noundef 1) #14
  unreachable

917:                                              ; No predecessors!
  br label %918

918:                                              ; preds = %917
  br label %919

919:                                              ; preds = %918, %861
  br label %920

920:                                              ; preds = %919
  br label %921

921:                                              ; preds = %920
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #12
  store i32 0, ptr %13, align 4, !tbaa !5
  br label %922

922:                                              ; preds = %921
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = add nsw i32 %923, 1
  store i32 %924, ptr @test_count, align 4, !tbaa !5
  %925 = load ptr, ptr %11, align 8, !tbaa !9
  %926 = call i32 @s2n_extensions_client_key_share_size(ptr noundef %925, ptr noundef %13)
  %927 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  store i32 %926, ptr %927, align 4
  %928 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  %929 = load i32, ptr %928, align 4
  %930 = call zeroext i1 @s2n_result_is_ok(i32 %929)
  br i1 %930, label %984, label %931

931:                                              ; preds = %922
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #12
  %934 = call ptr @__errno_location() #13
  %935 = load i32, ptr %934, align 4, !tbaa !5
  store i32 %935, ptr %15, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = call i32 @s2n_print_stacktrace(ptr noundef %936)
  %938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %939 = trunc i8 %938 to i1
  br i1 %939, label %940, label %962

940:                                              ; preds = %933
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = call i32 @fileno(ptr noundef %941) #12
  %943 = call i32 @isatty(i32 noundef %942) #12
  %944 = icmp ne i32 %943, 0
  br i1 %944, label %945, label %962

945:                                              ; preds = %940
  %946 = load i32, ptr %15, align 4, !tbaa !5
  %947 = call ptr @__errno_location() #13
  store i32 %946, ptr %947, align 4, !tbaa !5
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = load i32, ptr @test_count, align 4, !tbaa !5
  %950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call ptr @s2n_strerror(i32 noundef %951, ptr noundef @.str.6)
  %953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror_debug(i32 noundef %954, ptr noundef @.str.6)
  %956 = call ptr @__errno_location() #13
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call ptr @strerror(i32 noundef %957) #12
  %959 = call ptr @__errno_location() #13
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %948, ptr noundef @.str.4, i32 noundef %949, ptr noundef @.str.12, ptr noundef @.str.3, i32 noundef 77, ptr noundef %952, ptr noundef %955, ptr noundef %958, i32 noundef %960) #12
  br label %979

962:                                              ; preds = %940, %933
  %963 = load i32, ptr %15, align 4, !tbaa !5
  %964 = call ptr @__errno_location() #13
  store i32 %963, ptr %964, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %968 = load i32, ptr %967, align 4, !tbaa !5
  %969 = call ptr @s2n_strerror(i32 noundef %968, ptr noundef @.str.6)
  %970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef @.str.6)
  %973 = call ptr @__errno_location() #13
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @strerror(i32 noundef %974) #12
  %976 = call ptr @__errno_location() #13
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %965, ptr noundef @.str.7, i32 noundef %966, ptr noundef @.str.12, ptr noundef @.str.3, i32 noundef 77, ptr noundef %969, ptr noundef %972, ptr noundef %975, i32 noundef %977) #12
  br label %979

979:                                              ; preds = %962, %945
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  br label %980

980:                                              ; preds = %979
  br label %981

981:                                              ; preds = %980
  call void @exit(i32 noundef 1) #14
  unreachable

982:                                              ; No predecessors!
  br label %983

983:                                              ; preds = %982
  br label %984

984:                                              ; preds = %983, %922
  br label %985

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #12
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %987

987:                                              ; preds = %986
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = add nsw i32 %988, 1
  store i32 %989, ptr @test_count, align 4, !tbaa !5
  %990 = load ptr, ptr %11, align 8, !tbaa !9
  %991 = call i32 @s2n_extensions_client_key_share_size(ptr noundef %990, ptr noundef %16)
  %992 = getelementptr inbounds %struct.s2n_result, ptr %17, i32 0, i32 0
  store i32 %991, ptr %992, align 4
  %993 = getelementptr inbounds %struct.s2n_result, ptr %17, i32 0, i32 0
  %994 = load i32, ptr %993, align 4
  %995 = call zeroext i1 @s2n_result_is_ok(i32 %994)
  br i1 %995, label %1049, label %996

996:                                              ; preds = %987
  br label %997

997:                                              ; preds = %996
  br label %998

998:                                              ; preds = %997
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #12
  %999 = call ptr @__errno_location() #13
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  store i32 %1000, ptr %18, align 4, !tbaa !5
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = call i32 @s2n_print_stacktrace(ptr noundef %1001)
  %1003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1004 = trunc i8 %1003 to i1
  br i1 %1004, label %1005, label %1027

1005:                                             ; preds = %998
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = call i32 @fileno(ptr noundef %1006) #12
  %1008 = call i32 @isatty(i32 noundef %1007) #12
  %1009 = icmp ne i32 %1008, 0
  br i1 %1009, label %1010, label %1027

1010:                                             ; preds = %1005
  %1011 = load i32, ptr %18, align 4, !tbaa !5
  %1012 = call ptr @__errno_location() #13
  store i32 %1011, ptr %1012, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror(i32 noundef %1016, ptr noundef @.str.6)
  %1018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call ptr @s2n_strerror_debug(i32 noundef %1019, ptr noundef @.str.6)
  %1021 = call ptr @__errno_location() #13
  %1022 = load i32, ptr %1021, align 4, !tbaa !5
  %1023 = call ptr @strerror(i32 noundef %1022) #12
  %1024 = call ptr @__errno_location() #13
  %1025 = load i32, ptr %1024, align 4, !tbaa !5
  %1026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1013, ptr noundef @.str.4, i32 noundef %1014, ptr noundef @.str.13, ptr noundef @.str.3, i32 noundef 81, ptr noundef %1017, ptr noundef %1020, ptr noundef %1023, i32 noundef %1025) #12
  br label %1044

1027:                                             ; preds = %1005, %998
  %1028 = load i32, ptr %18, align 4, !tbaa !5
  %1029 = call ptr @__errno_location() #13
  store i32 %1028, ptr %1029, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror(i32 noundef %1033, ptr noundef @.str.6)
  %1035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef @.str.6)
  %1038 = call ptr @__errno_location() #13
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @strerror(i32 noundef %1039) #12
  %1041 = call ptr @__errno_location() #13
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1030, ptr noundef @.str.7, i32 noundef %1031, ptr noundef @.str.13, ptr noundef @.str.3, i32 noundef 81, ptr noundef %1034, ptr noundef %1037, ptr noundef %1040, i32 noundef %1042) #12
  br label %1044

1044:                                             ; preds = %1027, %1010
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #12
  br label %1045

1045:                                             ; preds = %1044
  br label %1046

1046:                                             ; preds = %1045
  call void @exit(i32 noundef 1) #14
  unreachable

1047:                                             ; No predecessors!
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

1049:                                             ; preds = %1048, %987
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

1052:                                             ; preds = %1051
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %1054 = add nsw i32 %1053, 1
  store i32 %1054, ptr @test_count, align 4, !tbaa !5
  %1055 = load i32, ptr %13, align 4, !tbaa !5
  %1056 = load i32, ptr %16, align 4, !tbaa !5
  %1057 = icmp eq i32 %1055, %1056
  br i1 %1057, label %1111, label %1058

1058:                                             ; preds = %1052
  br label %1059

1059:                                             ; preds = %1058
  br label %1060

1060:                                             ; preds = %1059
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #12
  %1061 = call ptr @__errno_location() #13
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  store i32 %1062, ptr %19, align 4, !tbaa !5
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = call i32 @s2n_print_stacktrace(ptr noundef %1063)
  %1065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1066 = trunc i8 %1065 to i1
  br i1 %1066, label %1067, label %1089

1067:                                             ; preds = %1060
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = call i32 @fileno(ptr noundef %1068) #12
  %1070 = call i32 @isatty(i32 noundef %1069) #12
  %1071 = icmp ne i32 %1070, 0
  br i1 %1071, label %1072, label %1089

1072:                                             ; preds = %1067
  %1073 = load i32, ptr %19, align 4, !tbaa !5
  %1074 = call ptr @__errno_location() #13
  store i32 %1073, ptr %1074, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror(i32 noundef %1078, ptr noundef @.str.6)
  %1080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror_debug(i32 noundef %1081, ptr noundef @.str.6)
  %1083 = call ptr @__errno_location() #13
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #12
  %1086 = call ptr @__errno_location() #13
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef @.str.4, i32 noundef %1076, ptr noundef @.str.14, ptr noundef @.str.3, i32 noundef 82, ptr noundef %1079, ptr noundef %1082, ptr noundef %1085, i32 noundef %1087) #12
  br label %1106

1089:                                             ; preds = %1067, %1060
  %1090 = load i32, ptr %19, align 4, !tbaa !5
  %1091 = call ptr @__errno_location() #13
  store i32 %1090, ptr %1091, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = load i32, ptr @test_count, align 4, !tbaa !5
  %1094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror(i32 noundef %1095, ptr noundef @.str.6)
  %1097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call ptr @s2n_strerror_debug(i32 noundef %1098, ptr noundef @.str.6)
  %1100 = call ptr @__errno_location() #13
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = call ptr @strerror(i32 noundef %1101) #12
  %1103 = call ptr @__errno_location() #13
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1092, ptr noundef @.str.7, i32 noundef %1093, ptr noundef @.str.14, ptr noundef @.str.3, i32 noundef 82, ptr noundef %1096, ptr noundef %1099, ptr noundef %1102, i32 noundef %1104) #12
  br label %1106

1106:                                             ; preds = %1089, %1072
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #12
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

1108:                                             ; preds = %1107
  call void @exit(i32 noundef 1) #14
  unreachable

1109:                                             ; No predecessors!
  br label %1110

1110:                                             ; preds = %1109
  br label %1111

1111:                                             ; preds = %1110, %1052
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

1114:                                             ; preds = %1113
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = add nsw i32 %1115, 1
  store i32 %1116, ptr @test_count, align 4, !tbaa !5
  %1117 = load i32, ptr %13, align 4, !tbaa !5
  %1118 = call i32 @s2n_stuffer_alloc(ptr noundef %10, i32 noundef %1117)
  %1119 = icmp eq i32 %1118, -1
  br i1 %1119, label %1120, label %1173

1120:                                             ; preds = %1114
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

1122:                                             ; preds = %1121
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #12
  %1123 = call ptr @__errno_location() #13
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  store i32 %1124, ptr %20, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @s2n_print_stacktrace(ptr noundef %1125)
  %1127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1128 = trunc i8 %1127 to i1
  br i1 %1128, label %1129, label %1151

1129:                                             ; preds = %1122
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = call i32 @fileno(ptr noundef %1130) #12
  %1132 = call i32 @isatty(i32 noundef %1131) #12
  %1133 = icmp ne i32 %1132, 0
  br i1 %1133, label %1134, label %1151

1134:                                             ; preds = %1129
  %1135 = load i32, ptr %20, align 4, !tbaa !5
  %1136 = call ptr @__errno_location() #13
  store i32 %1135, ptr %1136, align 4, !tbaa !5
  %1137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1138 = load i32, ptr @test_count, align 4, !tbaa !5
  %1139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror(i32 noundef %1140, ptr noundef @.str.6)
  %1142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror_debug(i32 noundef %1143, ptr noundef @.str.6)
  %1145 = call ptr @__errno_location() #13
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @strerror(i32 noundef %1146) #12
  %1148 = call ptr @__errno_location() #13
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1137, ptr noundef @.str.4, i32 noundef %1138, ptr noundef @.str.15, ptr noundef @.str.3, i32 noundef 85, ptr noundef %1141, ptr noundef %1144, ptr noundef %1147, i32 noundef %1149) #12
  br label %1168

1151:                                             ; preds = %1129, %1122
  %1152 = load i32, ptr %20, align 4, !tbaa !5
  %1153 = call ptr @__errno_location() #13
  store i32 %1152, ptr %1153, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror(i32 noundef %1157, ptr noundef @.str.6)
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror_debug(i32 noundef %1160, ptr noundef @.str.6)
  %1162 = call ptr @__errno_location() #13
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @strerror(i32 noundef %1163) #12
  %1165 = call ptr @__errno_location() #13
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1154, ptr noundef @.str.7, i32 noundef %1155, ptr noundef @.str.15, ptr noundef @.str.3, i32 noundef 85, ptr noundef %1158, ptr noundef %1161, ptr noundef %1164, i32 noundef %1166) #12
  br label %1168

1168:                                             ; preds = %1151, %1134
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #12
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169
  call void @exit(i32 noundef 1) #14
  unreachable

1171:                                             ; No predecessors!
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

1173:                                             ; preds = %1172, %1114
  br label %1174

1174:                                             ; preds = %1173
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175
  %1177 = load i32, ptr @test_count, align 4, !tbaa !5
  %1178 = add nsw i32 %1177, 1
  store i32 %1178, ptr @test_count, align 4, !tbaa !5
  %1179 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %1180 = load ptr, ptr %11, align 8, !tbaa !9
  %1181 = call i32 %1179(ptr noundef %1180, ptr noundef %10)
  %1182 = icmp eq i32 %1181, -1
  br i1 %1182, label %1183, label %1236

1183:                                             ; preds = %1176
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

1185:                                             ; preds = %1184
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #12
  %1186 = call ptr @__errno_location() #13
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  store i32 %1187, ptr %21, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @s2n_print_stacktrace(ptr noundef %1188)
  %1190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1191 = trunc i8 %1190 to i1
  br i1 %1191, label %1192, label %1214

1192:                                             ; preds = %1185
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = call i32 @fileno(ptr noundef %1193) #12
  %1195 = call i32 @isatty(i32 noundef %1194) #12
  %1196 = icmp ne i32 %1195, 0
  br i1 %1196, label %1197, label %1214

1197:                                             ; preds = %1192
  %1198 = load i32, ptr %21, align 4, !tbaa !5
  %1199 = call ptr @__errno_location() #13
  store i32 %1198, ptr %1199, align 4, !tbaa !5
  %1200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror(i32 noundef %1203, ptr noundef @.str.6)
  %1205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1206 = load i32, ptr %1205, align 4, !tbaa !5
  %1207 = call ptr @s2n_strerror_debug(i32 noundef %1206, ptr noundef @.str.6)
  %1208 = call ptr @__errno_location() #13
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = call ptr @strerror(i32 noundef %1209) #12
  %1211 = call ptr @__errno_location() #13
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1200, ptr noundef @.str.4, i32 noundef %1201, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 86, ptr noundef %1204, ptr noundef %1207, ptr noundef %1210, i32 noundef %1212) #12
  br label %1231

1214:                                             ; preds = %1192, %1185
  %1215 = load i32, ptr %21, align 4, !tbaa !5
  %1216 = call ptr @__errno_location() #13
  store i32 %1215, ptr %1216, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = load i32, ptr @test_count, align 4, !tbaa !5
  %1219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef @.str.6)
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror_debug(i32 noundef %1223, ptr noundef @.str.6)
  %1225 = call ptr @__errno_location() #13
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call ptr @strerror(i32 noundef %1226) #12
  %1228 = call ptr @__errno_location() #13
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1217, ptr noundef @.str.7, i32 noundef %1218, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 86, ptr noundef %1221, ptr noundef %1224, ptr noundef %1227, i32 noundef %1229) #12
  br label %1231

1231:                                             ; preds = %1214, %1197
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #12
  br label %1232

1232:                                             ; preds = %1231
  br label %1233

1233:                                             ; preds = %1232
  call void @exit(i32 noundef 1) #14
  unreachable

1234:                                             ; No predecessors!
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

1236:                                             ; preds = %1235, %1176
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = add nsw i32 %1240, 1
  store i32 %1241, ptr @test_count, align 4, !tbaa !5
  %1242 = load i32, ptr %13, align 4, !tbaa !5
  %1243 = sub i32 %1242, 2
  %1244 = sub i32 %1243, 2
  %1245 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 2
  %1246 = load i32, ptr %1245, align 4, !tbaa !18
  %1247 = getelementptr inbounds %struct.s2n_stuffer, ptr %10, i32 0, i32 1
  %1248 = load i32, ptr %1247, align 8, !tbaa !21
  %1249 = sub i32 %1246, %1248
  %1250 = icmp eq i32 %1244, %1249
  br i1 %1250, label %1304, label %1251

1251:                                             ; preds = %1239
  br label %1252

1252:                                             ; preds = %1251
  br label %1253

1253:                                             ; preds = %1252
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #12
  %1254 = call ptr @__errno_location() #13
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  store i32 %1255, ptr %22, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = call i32 @s2n_print_stacktrace(ptr noundef %1256)
  %1258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1259 = trunc i8 %1258 to i1
  br i1 %1259, label %1260, label %1282

1260:                                             ; preds = %1253
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = call i32 @fileno(ptr noundef %1261) #12
  %1263 = call i32 @isatty(i32 noundef %1262) #12
  %1264 = icmp ne i32 %1263, 0
  br i1 %1264, label %1265, label %1282

1265:                                             ; preds = %1260
  %1266 = load i32, ptr %22, align 4, !tbaa !5
  %1267 = call ptr @__errno_location() #13
  store i32 %1266, ptr %1267, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = load i32, ptr @test_count, align 4, !tbaa !5
  %1270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1271 = load i32, ptr %1270, align 4, !tbaa !5
  %1272 = call ptr @s2n_strerror(i32 noundef %1271, ptr noundef @.str.6)
  %1273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1274 = load i32, ptr %1273, align 4, !tbaa !5
  %1275 = call ptr @s2n_strerror_debug(i32 noundef %1274, ptr noundef @.str.6)
  %1276 = call ptr @__errno_location() #13
  %1277 = load i32, ptr %1276, align 4, !tbaa !5
  %1278 = call ptr @strerror(i32 noundef %1277) #12
  %1279 = call ptr @__errno_location() #13
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1268, ptr noundef @.str.4, i32 noundef %1269, ptr noundef @.str.17, ptr noundef @.str.3, i32 noundef 88, ptr noundef %1272, ptr noundef %1275, ptr noundef %1278, i32 noundef %1280) #12
  br label %1299

1282:                                             ; preds = %1260, %1253
  %1283 = load i32, ptr %22, align 4, !tbaa !5
  %1284 = call ptr @__errno_location() #13
  store i32 %1283, ptr %1284, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = load i32, ptr @test_count, align 4, !tbaa !5
  %1287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror(i32 noundef %1288, ptr noundef @.str.6)
  %1290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call ptr @s2n_strerror_debug(i32 noundef %1291, ptr noundef @.str.6)
  %1293 = call ptr @__errno_location() #13
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = call ptr @strerror(i32 noundef %1294) #12
  %1296 = call ptr @__errno_location() #13
  %1297 = load i32, ptr %1296, align 4, !tbaa !5
  %1298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1285, ptr noundef @.str.7, i32 noundef %1286, ptr noundef @.str.17, ptr noundef @.str.3, i32 noundef 88, ptr noundef %1289, ptr noundef %1292, ptr noundef %1295, i32 noundef %1297) #12
  br label %1299

1299:                                             ; preds = %1282, %1265
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #12
  br label %1300

1300:                                             ; preds = %1299
  br label %1301

1301:                                             ; preds = %1300
  call void @exit(i32 noundef 1) #14
  unreachable

1302:                                             ; No predecessors!
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

1304:                                             ; preds = %1303, %1239
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

1306:                                             ; preds = %1305
  br label %1307

1307:                                             ; preds = %1306
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = add nsw i32 %1308, 1
  store i32 %1309, ptr @test_count, align 4, !tbaa !5
  %1310 = call i32 @s2n_stuffer_free(ptr noundef %10)
  %1311 = icmp eq i32 %1310, -1
  br i1 %1311, label %1312, label %1365

1312:                                             ; preds = %1307
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

1314:                                             ; preds = %1313
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #12
  %1315 = call ptr @__errno_location() #13
  %1316 = load i32, ptr %1315, align 4, !tbaa !5
  store i32 %1316, ptr %23, align 4, !tbaa !5
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = call i32 @s2n_print_stacktrace(ptr noundef %1317)
  %1319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1320 = trunc i8 %1319 to i1
  br i1 %1320, label %1321, label %1343

1321:                                             ; preds = %1314
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = call i32 @fileno(ptr noundef %1322) #12
  %1324 = call i32 @isatty(i32 noundef %1323) #12
  %1325 = icmp ne i32 %1324, 0
  br i1 %1325, label %1326, label %1343

1326:                                             ; preds = %1321
  %1327 = load i32, ptr %23, align 4, !tbaa !5
  %1328 = call ptr @__errno_location() #13
  store i32 %1327, ptr %1328, align 4, !tbaa !5
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = load i32, ptr @test_count, align 4, !tbaa !5
  %1331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror(i32 noundef %1332, ptr noundef @.str.6)
  %1334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror_debug(i32 noundef %1335, ptr noundef @.str.6)
  %1337 = call ptr @__errno_location() #13
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @strerror(i32 noundef %1338) #12
  %1340 = call ptr @__errno_location() #13
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1329, ptr noundef @.str.4, i32 noundef %1330, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 90, ptr noundef %1333, ptr noundef %1336, ptr noundef %1339, i32 noundef %1341) #12
  br label %1360

1343:                                             ; preds = %1321, %1314
  %1344 = load i32, ptr %23, align 4, !tbaa !5
  %1345 = call ptr @__errno_location() #13
  store i32 %1344, ptr %1345, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = load i32, ptr @test_count, align 4, !tbaa !5
  %1348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror(i32 noundef %1349, ptr noundef @.str.6)
  %1351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = call ptr @s2n_strerror_debug(i32 noundef %1352, ptr noundef @.str.6)
  %1354 = call ptr @__errno_location() #13
  %1355 = load i32, ptr %1354, align 4, !tbaa !5
  %1356 = call ptr @strerror(i32 noundef %1355) #12
  %1357 = call ptr @__errno_location() #13
  %1358 = load i32, ptr %1357, align 4, !tbaa !5
  %1359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1346, ptr noundef @.str.7, i32 noundef %1347, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 90, ptr noundef %1350, ptr noundef %1353, ptr noundef %1356, i32 noundef %1358) #12
  br label %1360

1360:                                             ; preds = %1343, %1326
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #12
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361
  call void @exit(i32 noundef 1) #14
  unreachable

1363:                                             ; No predecessors!
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364, %1307
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

1367:                                             ; preds = %1366
  br label %1368

1368:                                             ; preds = %1367
  %1369 = load i32, ptr @test_count, align 4, !tbaa !5
  %1370 = add nsw i32 %1369, 1
  store i32 %1370, ptr @test_count, align 4, !tbaa !5
  %1371 = load ptr, ptr %11, align 8, !tbaa !9
  %1372 = call i32 @s2n_connection_free(ptr noundef %1371)
  %1373 = icmp eq i32 %1372, -1
  br i1 %1373, label %1374, label %1427

1374:                                             ; preds = %1368
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #12
  %1377 = call ptr @__errno_location() #13
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  store i32 %1378, ptr %24, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @s2n_print_stacktrace(ptr noundef %1379)
  %1381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1382 = trunc i8 %1381 to i1
  br i1 %1382, label %1383, label %1405

1383:                                             ; preds = %1376
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @fileno(ptr noundef %1384) #12
  %1386 = call i32 @isatty(i32 noundef %1385) #12
  %1387 = icmp ne i32 %1386, 0
  br i1 %1387, label %1388, label %1405

1388:                                             ; preds = %1383
  %1389 = load i32, ptr %24, align 4, !tbaa !5
  %1390 = call ptr @__errno_location() #13
  store i32 %1389, ptr %1390, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = load i32, ptr @test_count, align 4, !tbaa !5
  %1393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror(i32 noundef %1394, ptr noundef @.str.6)
  %1396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror_debug(i32 noundef %1397, ptr noundef @.str.6)
  %1399 = call ptr @__errno_location() #13
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = call ptr @strerror(i32 noundef %1400) #12
  %1402 = call ptr @__errno_location() #13
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1391, ptr noundef @.str.4, i32 noundef %1392, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 91, ptr noundef %1395, ptr noundef %1398, ptr noundef %1401, i32 noundef %1403) #12
  br label %1422

1405:                                             ; preds = %1383, %1376
  %1406 = load i32, ptr %24, align 4, !tbaa !5
  %1407 = call ptr @__errno_location() #13
  store i32 %1406, ptr %1407, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror(i32 noundef %1411, ptr noundef @.str.6)
  %1413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror_debug(i32 noundef %1414, ptr noundef @.str.6)
  %1416 = call ptr @__errno_location() #13
  %1417 = load i32, ptr %1416, align 4, !tbaa !5
  %1418 = call ptr @strerror(i32 noundef %1417) #12
  %1419 = call ptr @__errno_location() #13
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef @.str.7, i32 noundef %1409, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 91, ptr noundef %1412, ptr noundef %1415, ptr noundef %1418, i32 noundef %1420) #12
  br label %1422

1422:                                             ; preds = %1405, %1388
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #12
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1423
  call void @exit(i32 noundef 1) #14
  unreachable

1425:                                             ; No predecessors!
  br label %1426

1426:                                             ; preds = %1425
  br label %1427

1427:                                             ; preds = %1426, %1368
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %10) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr %25) #12
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #12
  store ptr null, ptr %26, align 8, !tbaa !9
  br label %1430

1430:                                             ; preds = %1429
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = add nsw i32 %1431, 1
  store i32 %1432, ptr @test_count, align 4, !tbaa !5
  %1433 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1433, ptr %26, align 8, !tbaa !9
  %1434 = icmp eq ptr %1433, null
  br i1 %1434, label %1435, label %1488

1435:                                             ; preds = %1430
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1436
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #12
  %1438 = call ptr @__errno_location() #13
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  store i32 %1439, ptr %27, align 4, !tbaa !5
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @s2n_print_stacktrace(ptr noundef %1440)
  %1442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1443 = trunc i8 %1442 to i1
  br i1 %1443, label %1444, label %1466

1444:                                             ; preds = %1437
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @fileno(ptr noundef %1445) #12
  %1447 = call i32 @isatty(i32 noundef %1446) #12
  %1448 = icmp ne i32 %1447, 0
  br i1 %1448, label %1449, label %1466

1449:                                             ; preds = %1444
  %1450 = load i32, ptr %27, align 4, !tbaa !5
  %1451 = call ptr @__errno_location() #13
  store i32 %1450, ptr %1451, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = load i32, ptr @test_count, align 4, !tbaa !5
  %1454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1455 = load i32, ptr %1454, align 4, !tbaa !5
  %1456 = call ptr @s2n_strerror(i32 noundef %1455, ptr noundef @.str.6)
  %1457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror_debug(i32 noundef %1458, ptr noundef @.str.6)
  %1460 = call ptr @__errno_location() #13
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  %1462 = call ptr @strerror(i32 noundef %1461) #12
  %1463 = call ptr @__errno_location() #13
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1452, ptr noundef @.str.4, i32 noundef %1453, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 100, ptr noundef %1456, ptr noundef %1459, ptr noundef %1462, i32 noundef %1464) #12
  br label %1483

1466:                                             ; preds = %1444, %1437
  %1467 = load i32, ptr %27, align 4, !tbaa !5
  %1468 = call ptr @__errno_location() #13
  store i32 %1467, ptr %1468, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = call ptr @s2n_strerror(i32 noundef %1472, ptr noundef @.str.6)
  %1474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1475 = load i32, ptr %1474, align 4, !tbaa !5
  %1476 = call ptr @s2n_strerror_debug(i32 noundef %1475, ptr noundef @.str.6)
  %1477 = call ptr @__errno_location() #13
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  %1479 = call ptr @strerror(i32 noundef %1478) #12
  %1480 = call ptr @__errno_location() #13
  %1481 = load i32, ptr %1480, align 4, !tbaa !5
  %1482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1469, ptr noundef @.str.7, i32 noundef %1470, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 100, ptr noundef %1473, ptr noundef %1476, ptr noundef %1479, i32 noundef %1481) #12
  br label %1483

1483:                                             ; preds = %1466, %1449
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #12
  br label %1484

1484:                                             ; preds = %1483
  br label %1485

1485:                                             ; preds = %1484
  call void @exit(i32 noundef 1) #14
  unreachable

1486:                                             ; No predecessors!
  br label %1487

1487:                                             ; preds = %1486
  br label %1488

1488:                                             ; preds = %1487, %1430
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

1491:                                             ; preds = %1490
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = add nsw i32 %1492, 1
  store i32 %1493, ptr @test_count, align 4, !tbaa !5
  %1494 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %25, i32 noundef 0)
  %1495 = icmp eq i32 %1494, -1
  br i1 %1495, label %1496, label %1549

1496:                                             ; preds = %1491
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

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

1505:                                             ; preds = %1498
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @fileno(ptr noundef %1506) #12
  %1508 = call i32 @isatty(i32 noundef %1507) #12
  %1509 = icmp ne i32 %1508, 0
  br i1 %1509, label %1510, label %1527

1510:                                             ; preds = %1505
  %1511 = load i32, ptr %28, align 4, !tbaa !5
  %1512 = call ptr @__errno_location() #13
  store i32 %1511, ptr %1512, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror(i32 noundef %1516, ptr noundef @.str.6)
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror_debug(i32 noundef %1519, ptr noundef @.str.6)
  %1521 = call ptr @__errno_location() #13
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @strerror(i32 noundef %1522) #12
  %1524 = call ptr @__errno_location() #13
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1513, ptr noundef @.str.4, i32 noundef %1514, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 101, ptr noundef %1517, ptr noundef %1520, ptr noundef %1523, i32 noundef %1525) #12
  br label %1544

1527:                                             ; preds = %1505, %1498
  %1528 = load i32, ptr %28, align 4, !tbaa !5
  %1529 = call ptr @__errno_location() #13
  store i32 %1528, ptr %1529, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call ptr @s2n_strerror(i32 noundef %1533, ptr noundef @.str.6)
  %1535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = call ptr @s2n_strerror_debug(i32 noundef %1536, ptr noundef @.str.6)
  %1538 = call ptr @__errno_location() #13
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call ptr @strerror(i32 noundef %1539) #12
  %1541 = call ptr @__errno_location() #13
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1530, ptr noundef @.str.7, i32 noundef %1531, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 101, ptr noundef %1534, ptr noundef %1537, ptr noundef %1540, i32 noundef %1542) #12
  br label %1544

1544:                                             ; preds = %1527, %1510
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #12
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

1546:                                             ; preds = %1545
  call void @exit(i32 noundef 1) #14
  unreachable

1547:                                             ; No predecessors!
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548, %1491
  br label %1550

1550:                                             ; preds = %1549
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551
  %1553 = load i32, ptr @test_count, align 4, !tbaa !5
  %1554 = add nsw i32 %1553, 1
  store i32 %1554, ptr @test_count, align 4, !tbaa !5
  %1555 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %1556 = load ptr, ptr %26, align 8, !tbaa !9
  %1557 = call i32 %1555(ptr noundef %1556, ptr noundef %25)
  %1558 = icmp eq i32 %1557, -1
  br i1 %1558, label %1559, label %1612

1559:                                             ; preds = %1552
  br label %1560

1560:                                             ; preds = %1559
  br label %1561

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

1568:                                             ; preds = %1561
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = call i32 @fileno(ptr noundef %1569) #12
  %1571 = call i32 @isatty(i32 noundef %1570) #12
  %1572 = icmp ne i32 %1571, 0
  br i1 %1572, label %1573, label %1590

1573:                                             ; preds = %1568
  %1574 = load i32, ptr %29, align 4, !tbaa !5
  %1575 = call ptr @__errno_location() #13
  store i32 %1574, ptr %1575, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror(i32 noundef %1579, ptr noundef @.str.6)
  %1581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call ptr @s2n_strerror_debug(i32 noundef %1582, ptr noundef @.str.6)
  %1584 = call ptr @__errno_location() #13
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call ptr @strerror(i32 noundef %1585) #12
  %1587 = call ptr @__errno_location() #13
  %1588 = load i32, ptr %1587, align 4, !tbaa !5
  %1589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1576, ptr noundef @.str.4, i32 noundef %1577, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 103, ptr noundef %1580, ptr noundef %1583, ptr noundef %1586, i32 noundef %1588) #12
  br label %1607

1590:                                             ; preds = %1568, %1561
  %1591 = load i32, ptr %29, align 4, !tbaa !5
  %1592 = call ptr @__errno_location() #13
  store i32 %1591, ptr %1592, align 4, !tbaa !5
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = load i32, ptr @test_count, align 4, !tbaa !5
  %1595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call ptr @s2n_strerror(i32 noundef %1596, ptr noundef @.str.6)
  %1598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1599 = load i32, ptr %1598, align 4, !tbaa !5
  %1600 = call ptr @s2n_strerror_debug(i32 noundef %1599, ptr noundef @.str.6)
  %1601 = call ptr @__errno_location() #13
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call ptr @strerror(i32 noundef %1602) #12
  %1604 = call ptr @__errno_location() #13
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1593, ptr noundef @.str.7, i32 noundef %1594, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 103, ptr noundef %1597, ptr noundef %1600, ptr noundef %1603, i32 noundef %1605) #12
  br label %1607

1607:                                             ; preds = %1590, %1573
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #12
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608
  call void @exit(i32 noundef 1) #14
  unreachable

1610:                                             ; No predecessors!
  br label %1611

1611:                                             ; preds = %1610
  br label %1612

1612:                                             ; preds = %1611, %1552
  br label %1613

1613:                                             ; preds = %1612
  br label %1614

1614:                                             ; preds = %1613
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #12
  store ptr null, ptr %30, align 8, !tbaa !9
  br label %1615

1615:                                             ; preds = %1614
  %1616 = load i32, ptr @test_count, align 4, !tbaa !5
  %1617 = add nsw i32 %1616, 1
  store i32 %1617, ptr @test_count, align 4, !tbaa !5
  %1618 = load ptr, ptr %26, align 8, !tbaa !9
  %1619 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %1618, ptr noundef %30)
  %1620 = icmp eq i32 %1619, -1
  br i1 %1620, label %1621, label %1674

1621:                                             ; preds = %1615
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

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

1630:                                             ; preds = %1623
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = call i32 @fileno(ptr noundef %1631) #12
  %1633 = call i32 @isatty(i32 noundef %1632) #12
  %1634 = icmp ne i32 %1633, 0
  br i1 %1634, label %1635, label %1652

1635:                                             ; preds = %1630
  %1636 = load i32, ptr %31, align 4, !tbaa !5
  %1637 = call ptr @__errno_location() #13
  store i32 %1636, ptr %1637, align 4, !tbaa !5
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  %1642 = call ptr @s2n_strerror(i32 noundef %1641, ptr noundef @.str.6)
  %1643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = call ptr @s2n_strerror_debug(i32 noundef %1644, ptr noundef @.str.6)
  %1646 = call ptr @__errno_location() #13
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @strerror(i32 noundef %1647) #12
  %1649 = call ptr @__errno_location() #13
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1638, ptr noundef @.str.4, i32 noundef %1639, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 106, ptr noundef %1642, ptr noundef %1645, ptr noundef %1648, i32 noundef %1650) #12
  br label %1669

1652:                                             ; preds = %1630, %1623
  %1653 = load i32, ptr %31, align 4, !tbaa !5
  %1654 = call ptr @__errno_location() #13
  store i32 %1653, ptr %1654, align 4, !tbaa !5
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror(i32 noundef %1658, ptr noundef @.str.6)
  %1660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call ptr @s2n_strerror_debug(i32 noundef %1661, ptr noundef @.str.6)
  %1663 = call ptr @__errno_location() #13
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @strerror(i32 noundef %1664) #12
  %1666 = call ptr @__errno_location() #13
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1655, ptr noundef @.str.7, i32 noundef %1656, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 106, ptr noundef %1659, ptr noundef %1662, ptr noundef %1665, i32 noundef %1667) #12
  br label %1669

1669:                                             ; preds = %1652, %1635
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #12
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

1671:                                             ; preds = %1670
  call void @exit(i32 noundef 1) #14
  unreachable

1672:                                             ; No predecessors!
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673, %1615
  br label %1675

1675:                                             ; preds = %1674
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

1677:                                             ; preds = %1676
  %1678 = load i32, ptr @test_count, align 4, !tbaa !5
  %1679 = add nsw i32 %1678, 1
  store i32 %1679, ptr @test_count, align 4, !tbaa !5
  %1680 = load ptr, ptr %30, align 8, !tbaa !9
  %1681 = icmp eq ptr %1680, null
  br i1 %1681, label %1682, label %1735

1682:                                             ; preds = %1677
  br label %1683

1683:                                             ; preds = %1682
  br label %1684

1684:                                             ; preds = %1683
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #12
  %1685 = call ptr @__errno_location() #13
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  store i32 %1686, ptr %32, align 4, !tbaa !5
  %1687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1688 = call i32 @s2n_print_stacktrace(ptr noundef %1687)
  %1689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1690 = trunc i8 %1689 to i1
  br i1 %1690, label %1691, label %1713

1691:                                             ; preds = %1684
  %1692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1693 = call i32 @fileno(ptr noundef %1692) #12
  %1694 = call i32 @isatty(i32 noundef %1693) #12
  %1695 = icmp ne i32 %1694, 0
  br i1 %1695, label %1696, label %1713

1696:                                             ; preds = %1691
  %1697 = load i32, ptr %32, align 4, !tbaa !5
  %1698 = call ptr @__errno_location() #13
  store i32 %1697, ptr %1698, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror(i32 noundef %1702, ptr noundef @.str.6)
  %1704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef @.str.6)
  %1707 = call ptr @__errno_location() #13
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call ptr @strerror(i32 noundef %1708) #12
  %1710 = call ptr @__errno_location() #13
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1699, ptr noundef @.str.4, i32 noundef %1700, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 107, ptr noundef %1703, ptr noundef %1706, ptr noundef %1709, i32 noundef %1711) #12
  br label %1730

1713:                                             ; preds = %1691, %1684
  %1714 = load i32, ptr %32, align 4, !tbaa !5
  %1715 = call ptr @__errno_location() #13
  store i32 %1714, ptr %1715, align 4, !tbaa !5
  %1716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1717 = load i32, ptr @test_count, align 4, !tbaa !5
  %1718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  %1720 = call ptr @s2n_strerror(i32 noundef %1719, ptr noundef @.str.6)
  %1721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror_debug(i32 noundef %1722, ptr noundef @.str.6)
  %1724 = call ptr @__errno_location() #13
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call ptr @strerror(i32 noundef %1725) #12
  %1727 = call ptr @__errno_location() #13
  %1728 = load i32, ptr %1727, align 4, !tbaa !5
  %1729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1716, ptr noundef @.str.7, i32 noundef %1717, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 107, ptr noundef %1720, ptr noundef %1723, ptr noundef %1726, i32 noundef %1728) #12
  br label %1730

1730:                                             ; preds = %1713, %1696
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

1732:                                             ; preds = %1731
  call void @exit(i32 noundef 1) #14
  unreachable

1733:                                             ; No predecessors!
  br label %1734

1734:                                             ; preds = %1733
  br label %1735

1735:                                             ; preds = %1734, %1677
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

1737:                                             ; preds = %1736
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #12
  %1738 = load ptr, ptr %26, align 8, !tbaa !9
  %1739 = getelementptr inbounds %struct.s2n_connection, ptr %1738, i32 0, i32 31
  %1740 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %1739, i32 0, i32 3
  store ptr %1740, ptr %33, align 8, !tbaa !9
  br label %1741

1741:                                             ; preds = %1737
  %1742 = load i32, ptr @test_count, align 4, !tbaa !5
  %1743 = add nsw i32 %1742, 1
  store i32 %1743, ptr @test_count, align 4, !tbaa !5
  %1744 = load ptr, ptr %33, align 8, !tbaa !9
  %1745 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1744, i32 0, i32 0
  %1746 = load ptr, ptr %1745, align 8, !tbaa !22
  %1747 = load ptr, ptr %30, align 8, !tbaa !9
  %1748 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1747, i32 0, i32 1
  %1749 = load ptr, ptr %1748, align 8, !tbaa !24
  %1750 = getelementptr inbounds ptr, ptr %1749, i64 0
  %1751 = load ptr, ptr %1750, align 8, !tbaa !9
  %1752 = icmp eq ptr %1746, %1751
  br i1 %1752, label %1806, label %1753

1753:                                             ; preds = %1741
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

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

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

1767:                                             ; preds = %1762
  %1768 = load i32, ptr %34, align 4, !tbaa !5
  %1769 = call ptr @__errno_location() #13
  store i32 %1768, ptr %1769, align 4, !tbaa !5
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = load i32, ptr @test_count, align 4, !tbaa !5
  %1772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror(i32 noundef %1773, ptr noundef @.str.6)
  %1775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call ptr @s2n_strerror_debug(i32 noundef %1776, ptr noundef @.str.6)
  %1778 = call ptr @__errno_location() #13
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call ptr @strerror(i32 noundef %1779) #12
  %1781 = call ptr @__errno_location() #13
  %1782 = load i32, ptr %1781, align 4, !tbaa !5
  %1783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1770, ptr noundef @.str.4, i32 noundef %1771, ptr noundef @.str.23, ptr noundef @.str.3, i32 noundef 110, ptr noundef %1774, ptr noundef %1777, ptr noundef %1780, i32 noundef %1782) #12
  br label %1801

1784:                                             ; preds = %1762, %1755
  %1785 = load i32, ptr %34, align 4, !tbaa !5
  %1786 = call ptr @__errno_location() #13
  store i32 %1785, ptr %1786, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = load i32, ptr @test_count, align 4, !tbaa !5
  %1789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror(i32 noundef %1790, ptr noundef @.str.6)
  %1792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror_debug(i32 noundef %1793, ptr noundef @.str.6)
  %1795 = call ptr @__errno_location() #13
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call ptr @strerror(i32 noundef %1796) #12
  %1798 = call ptr @__errno_location() #13
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1787, ptr noundef @.str.7, i32 noundef %1788, ptr noundef @.str.23, ptr noundef @.str.3, i32 noundef 110, ptr noundef %1791, ptr noundef %1794, ptr noundef %1797, i32 noundef %1799) #12
  br label %1801

1801:                                             ; preds = %1784, %1767
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #12
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

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

1804:                                             ; No predecessors!
  br label %1805

1805:                                             ; preds = %1804
  br label %1806

1806:                                             ; preds = %1805, %1741
  br label %1807

1807:                                             ; preds = %1806
  br label %1808

1808:                                             ; preds = %1807
  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 = load ptr, ptr %33, align 8, !tbaa !9
  %1813 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %1812, i32 0, i32 1
  %1814 = load ptr, ptr %1813, align 8, !tbaa !26
  %1815 = icmp eq ptr %1814, null
  br i1 %1815, label %1816, label %1869

1816:                                             ; preds = %1809
  br label %1817

1817:                                             ; preds = %1816
  br label %1818

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

1825:                                             ; preds = %1818
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = call i32 @fileno(ptr noundef %1826) #12
  %1828 = call i32 @isatty(i32 noundef %1827) #12
  %1829 = icmp ne i32 %1828, 0
  br i1 %1829, label %1830, label %1847

1830:                                             ; preds = %1825
  %1831 = load i32, ptr %35, align 4, !tbaa !5
  %1832 = call ptr @__errno_location() #13
  store i32 %1831, ptr %1832, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call ptr @s2n_strerror(i32 noundef %1836, ptr noundef @.str.6)
  %1838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror_debug(i32 noundef %1839, ptr noundef @.str.6)
  %1841 = call ptr @__errno_location() #13
  %1842 = load i32, ptr %1841, align 4, !tbaa !5
  %1843 = call ptr @strerror(i32 noundef %1842) #12
  %1844 = call ptr @__errno_location() #13
  %1845 = load i32, ptr %1844, align 4, !tbaa !5
  %1846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1833, ptr noundef @.str.4, i32 noundef %1834, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 111, ptr noundef %1837, ptr noundef %1840, ptr noundef %1843, i32 noundef %1845) #12
  br label %1864

1847:                                             ; preds = %1825, %1818
  %1848 = load i32, ptr %35, align 4, !tbaa !5
  %1849 = call ptr @__errno_location() #13
  store i32 %1848, ptr %1849, align 4, !tbaa !5
  %1850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1851 = load i32, ptr @test_count, align 4, !tbaa !5
  %1852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = call ptr @s2n_strerror(i32 noundef %1853, ptr noundef @.str.6)
  %1855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1856 = load i32, ptr %1855, align 4, !tbaa !5
  %1857 = call ptr @s2n_strerror_debug(i32 noundef %1856, ptr noundef @.str.6)
  %1858 = call ptr @__errno_location() #13
  %1859 = load i32, ptr %1858, align 4, !tbaa !5
  %1860 = call ptr @strerror(i32 noundef %1859) #12
  %1861 = call ptr @__errno_location() #13
  %1862 = load i32, ptr %1861, align 4, !tbaa !5
  %1863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1850, ptr noundef @.str.7, i32 noundef %1851, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 111, ptr noundef %1854, ptr noundef %1857, ptr noundef %1860, i32 noundef %1862) #12
  br label %1864

1864:                                             ; preds = %1847, %1830
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #12
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

1866:                                             ; preds = %1865
  call void @exit(i32 noundef 1) #14
  unreachable

1867:                                             ; No predecessors!
  br label %1868

1868:                                             ; preds = %1867
  br label %1869

1869:                                             ; preds = %1868, %1809
  br label %1870

1870:                                             ; preds = %1869
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

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

1877:                                             ; preds = %1872
  br label %1878

1878:                                             ; preds = %1877
  br label %1879

1879:                                             ; preds = %1878
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #12
  %1880 = call ptr @__errno_location() #13
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  store i32 %1881, ptr %36, 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) #12
  %1889 = call i32 @isatty(i32 noundef %1888) #12
  %1890 = icmp ne i32 %1889, 0
  br i1 %1890, label %1891, label %1908

1891:                                             ; preds = %1886
  %1892 = load i32, ptr %36, align 4, !tbaa !5
  %1893 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %1902 = call ptr @__errno_location() #13
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @strerror(i32 noundef %1903) #12
  %1905 = call ptr @__errno_location() #13
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef @.str.4, i32 noundef %1895, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 113, ptr noundef %1898, ptr noundef %1901, ptr noundef %1904, i32 noundef %1906) #12
  br label %1925

1908:                                             ; preds = %1886, %1879
  %1909 = load i32, ptr %36, align 4, !tbaa !5
  %1910 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %1919 = call ptr @__errno_location() #13
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  %1921 = call ptr @strerror(i32 noundef %1920) #12
  %1922 = call ptr @__errno_location() #13
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1911, ptr noundef @.str.7, i32 noundef %1912, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 113, ptr noundef %1915, ptr noundef %1918, ptr noundef %1921, i32 noundef %1923) #12
  br label %1925

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

1926:                                             ; preds = %1925
  br label %1927

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

1928:                                             ; No predecessors!
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

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

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931
  br label %1933

1933:                                             ; preds = %1932
  %1934 = load i32, ptr @test_count, align 4, !tbaa !5
  %1935 = add nsw i32 %1934, 1
  store i32 %1935, ptr @test_count, align 4, !tbaa !5
  %1936 = load ptr, ptr %26, align 8, !tbaa !9
  %1937 = call i32 @s2n_connection_free(ptr noundef %1936)
  %1938 = icmp eq i32 %1937, -1
  br i1 %1938, label %1939, label %1992

1939:                                             ; preds = %1933
  br label %1940

1940:                                             ; preds = %1939
  br label %1941

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

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

1953:                                             ; preds = %1948
  %1954 = load i32, ptr %37, align 4, !tbaa !5
  %1955 = call ptr @__errno_location() #13
  store i32 %1954, ptr %1955, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1959 = load i32, ptr %1958, align 4, !tbaa !5
  %1960 = call ptr @s2n_strerror(i32 noundef %1959, ptr noundef @.str.6)
  %1961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror_debug(i32 noundef %1962, ptr noundef @.str.6)
  %1964 = call ptr @__errno_location() #13
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call ptr @strerror(i32 noundef %1965) #12
  %1967 = call ptr @__errno_location() #13
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1956, ptr noundef @.str.4, i32 noundef %1957, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 114, ptr noundef %1960, ptr noundef %1963, ptr noundef %1966, i32 noundef %1968) #12
  br label %1987

1970:                                             ; preds = %1948, %1941
  %1971 = load i32, ptr %37, align 4, !tbaa !5
  %1972 = call ptr @__errno_location() #13
  store i32 %1971, ptr %1972, align 4, !tbaa !5
  %1973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1974 = load i32, ptr @test_count, align 4, !tbaa !5
  %1975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1976 = load i32, ptr %1975, align 4, !tbaa !5
  %1977 = call ptr @s2n_strerror(i32 noundef %1976, ptr noundef @.str.6)
  %1978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror_debug(i32 noundef %1979, ptr noundef @.str.6)
  %1981 = call ptr @__errno_location() #13
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call ptr @strerror(i32 noundef %1982) #12
  %1984 = call ptr @__errno_location() #13
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1973, ptr noundef @.str.7, i32 noundef %1974, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 114, ptr noundef %1977, ptr noundef %1980, ptr noundef %1983, i32 noundef %1985) #12
  br label %1987

1987:                                             ; preds = %1970, %1953
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #12
  br label %1988

1988:                                             ; preds = %1987
  br label %1989

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

1990:                                             ; No predecessors!
  br label %1991

1991:                                             ; preds = %1990
  br label %1992

1992:                                             ; preds = %1991, %1933
  br label %1993

1993:                                             ; preds = %1992
  br label %1994

1994:                                             ; preds = %1993
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %25) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr %38) #12
  call void @llvm.memset.p0.i64(ptr align 8 %38, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #12
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %1995

1995:                                             ; preds = %1994
  %1996 = load i32, ptr @test_count, align 4, !tbaa !5
  %1997 = add nsw i32 %1996, 1
  store i32 %1997, ptr @test_count, align 4, !tbaa !5
  %1998 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1998, ptr %39, align 8, !tbaa !9
  %1999 = icmp eq ptr %1998, null
  br i1 %1999, label %2000, label %2053

2000:                                             ; preds = %1995
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

2002:                                             ; preds = %2001
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #12
  %2003 = call ptr @__errno_location() #13
  %2004 = load i32, ptr %2003, align 4, !tbaa !5
  store i32 %2004, ptr %40, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = call i32 @s2n_print_stacktrace(ptr noundef %2005)
  %2007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2008 = trunc i8 %2007 to i1
  br i1 %2008, label %2009, label %2031

2009:                                             ; preds = %2002
  %2010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2011 = call i32 @fileno(ptr noundef %2010) #12
  %2012 = call i32 @isatty(i32 noundef %2011) #12
  %2013 = icmp ne i32 %2012, 0
  br i1 %2013, label %2014, label %2031

2014:                                             ; preds = %2009
  %2015 = load i32, ptr %40, align 4, !tbaa !5
  %2016 = call ptr @__errno_location() #13
  store i32 %2015, ptr %2016, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror(i32 noundef %2020, ptr noundef @.str.6)
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef @.str.6)
  %2025 = call ptr @__errno_location() #13
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #12
  %2028 = call ptr @__errno_location() #13
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef @.str.4, i32 noundef %2018, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 121, ptr noundef %2021, ptr noundef %2024, ptr noundef %2027, i32 noundef %2029) #12
  br label %2048

2031:                                             ; preds = %2009, %2002
  %2032 = load i32, ptr %40, align 4, !tbaa !5
  %2033 = call ptr @__errno_location() #13
  store i32 %2032, ptr %2033, align 4, !tbaa !5
  %2034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2035 = load i32, ptr @test_count, align 4, !tbaa !5
  %2036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = call ptr @s2n_strerror(i32 noundef %2037, ptr noundef @.str.6)
  %2039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2040 = load i32, ptr %2039, align 4, !tbaa !5
  %2041 = call ptr @s2n_strerror_debug(i32 noundef %2040, ptr noundef @.str.6)
  %2042 = call ptr @__errno_location() #13
  %2043 = load i32, ptr %2042, align 4, !tbaa !5
  %2044 = call ptr @strerror(i32 noundef %2043) #12
  %2045 = call ptr @__errno_location() #13
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2034, ptr noundef @.str.7, i32 noundef %2035, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 121, ptr noundef %2038, ptr noundef %2041, ptr noundef %2044, i32 noundef %2046) #12
  br label %2048

2048:                                             ; preds = %2031, %2014
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #12
  br label %2049

2049:                                             ; preds = %2048
  br label %2050

2050:                                             ; preds = %2049
  call void @exit(i32 noundef 1) #14
  unreachable

2051:                                             ; No predecessors!
  br label %2052

2052:                                             ; preds = %2051
  br label %2053

2053:                                             ; preds = %2052, %1995
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

2055:                                             ; preds = %2054
  br label %2056

2056:                                             ; preds = %2055
  %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 i32 @s2n_stuffer_growable_alloc(ptr noundef %38, i32 noundef 0)
  %2060 = icmp eq i32 %2059, -1
  br i1 %2060, label %2061, label %2114

2061:                                             ; preds = %2056
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #12
  %2064 = call ptr @__errno_location() #13
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  store i32 %2065, ptr %41, align 4, !tbaa !5
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = call i32 @s2n_print_stacktrace(ptr noundef %2066)
  %2068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2069 = trunc i8 %2068 to i1
  br i1 %2069, label %2070, label %2092

2070:                                             ; preds = %2063
  %2071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2072 = call i32 @fileno(ptr noundef %2071) #12
  %2073 = call i32 @isatty(i32 noundef %2072) #12
  %2074 = icmp ne i32 %2073, 0
  br i1 %2074, label %2075, label %2092

2075:                                             ; preds = %2070
  %2076 = load i32, ptr %41, align 4, !tbaa !5
  %2077 = call ptr @__errno_location() #13
  store i32 %2076, ptr %2077, align 4, !tbaa !5
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = load i32, ptr @test_count, align 4, !tbaa !5
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror(i32 noundef %2081, ptr noundef @.str.6)
  %2083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror_debug(i32 noundef %2084, ptr noundef @.str.6)
  %2086 = call ptr @__errno_location() #13
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @strerror(i32 noundef %2087) #12
  %2089 = call ptr @__errno_location() #13
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2078, ptr noundef @.str.4, i32 noundef %2079, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 122, ptr noundef %2082, ptr noundef %2085, ptr noundef %2088, i32 noundef %2090) #12
  br label %2109

2092:                                             ; preds = %2070, %2063
  %2093 = load i32, ptr %41, align 4, !tbaa !5
  %2094 = call ptr @__errno_location() #13
  store i32 %2093, ptr %2094, align 4, !tbaa !5
  %2095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2096 = load i32, ptr @test_count, align 4, !tbaa !5
  %2097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call ptr @s2n_strerror(i32 noundef %2098, ptr noundef @.str.6)
  %2100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror_debug(i32 noundef %2101, ptr noundef @.str.6)
  %2103 = call ptr @__errno_location() #13
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = call ptr @strerror(i32 noundef %2104) #12
  %2106 = call ptr @__errno_location() #13
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2095, ptr noundef @.str.7, i32 noundef %2096, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 122, ptr noundef %2099, ptr noundef %2102, ptr noundef %2105, i32 noundef %2107) #12
  br label %2109

2109:                                             ; preds = %2092, %2075
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #12
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110
  call void @exit(i32 noundef 1) #14
  unreachable

2112:                                             ; No predecessors!
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

2114:                                             ; preds = %2113, %2056
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  br label %2117

2117:                                             ; preds = %2116
  %2118 = load i32, ptr @test_count, align 4, !tbaa !5
  %2119 = add nsw i32 %2118, 1
  store i32 %2119, ptr @test_count, align 4, !tbaa !5
  %2120 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %2121 = load ptr, ptr %39, align 8, !tbaa !9
  %2122 = call i32 %2120(ptr noundef %2121, ptr noundef %38)
  %2123 = icmp eq i32 %2122, -1
  br i1 %2123, label %2124, label %2177

2124:                                             ; preds = %2117
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

2126:                                             ; preds = %2125
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #12
  %2127 = call ptr @__errno_location() #13
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  store i32 %2128, ptr %42, align 4, !tbaa !5
  %2129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2130 = call i32 @s2n_print_stacktrace(ptr noundef %2129)
  %2131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2132 = trunc i8 %2131 to i1
  br i1 %2132, label %2133, label %2155

2133:                                             ; preds = %2126
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = call i32 @fileno(ptr noundef %2134) #12
  %2136 = call i32 @isatty(i32 noundef %2135) #12
  %2137 = icmp ne i32 %2136, 0
  br i1 %2137, label %2138, label %2155

2138:                                             ; preds = %2133
  %2139 = load i32, ptr %42, align 4, !tbaa !5
  %2140 = call ptr @__errno_location() #13
  store i32 %2139, ptr %2140, align 4, !tbaa !5
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = load i32, ptr @test_count, align 4, !tbaa !5
  %2143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  %2145 = call ptr @s2n_strerror(i32 noundef %2144, ptr noundef @.str.6)
  %2146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror_debug(i32 noundef %2147, ptr noundef @.str.6)
  %2149 = call ptr @__errno_location() #13
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @strerror(i32 noundef %2150) #12
  %2152 = call ptr @__errno_location() #13
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2141, ptr noundef @.str.4, i32 noundef %2142, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 123, ptr noundef %2145, ptr noundef %2148, ptr noundef %2151, i32 noundef %2153) #12
  br label %2172

2155:                                             ; preds = %2133, %2126
  %2156 = load i32, ptr %42, align 4, !tbaa !5
  %2157 = call ptr @__errno_location() #13
  store i32 %2156, ptr %2157, align 4, !tbaa !5
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @s2n_strerror(i32 noundef %2161, ptr noundef @.str.6)
  %2163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call ptr @s2n_strerror_debug(i32 noundef %2164, ptr noundef @.str.6)
  %2166 = call ptr @__errno_location() #13
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call ptr @strerror(i32 noundef %2167) #12
  %2169 = call ptr @__errno_location() #13
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  %2171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2158, ptr noundef @.str.7, i32 noundef %2159, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 123, ptr noundef %2162, ptr noundef %2165, ptr noundef %2168, i32 noundef %2170) #12
  br label %2172

2172:                                             ; preds = %2155, %2138
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #12
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173
  call void @exit(i32 noundef 1) #14
  unreachable

2175:                                             ; No predecessors!
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

2177:                                             ; preds = %2176, %2117
  br label %2178

2178:                                             ; preds = %2177
  br label %2179

2179:                                             ; preds = %2178
  call void @llvm.lifetime.start.p0(i64 2, ptr %43) #12
  store i16 0, ptr %43, align 2, !tbaa !27
  br label %2180

2180:                                             ; preds = %2179
  %2181 = load i32, ptr @test_count, align 4, !tbaa !5
  %2182 = add nsw i32 %2181, 1
  store i32 %2182, ptr @test_count, align 4, !tbaa !5
  %2183 = call i32 @s2n_stuffer_read_uint16(ptr noundef %38, ptr noundef %43)
  %2184 = icmp eq i32 %2183, -1
  br i1 %2184, label %2185, label %2238

2185:                                             ; preds = %2180
  br label %2186

2186:                                             ; preds = %2185
  br label %2187

2187:                                             ; preds = %2186
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #12
  %2188 = call ptr @__errno_location() #13
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  store i32 %2189, ptr %44, align 4, !tbaa !5
  %2190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2191 = call i32 @s2n_print_stacktrace(ptr noundef %2190)
  %2192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2193 = trunc i8 %2192 to i1
  br i1 %2193, label %2194, label %2216

2194:                                             ; preds = %2187
  %2195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2196 = call i32 @fileno(ptr noundef %2195) #12
  %2197 = call i32 @isatty(i32 noundef %2196) #12
  %2198 = icmp ne i32 %2197, 0
  br i1 %2198, label %2199, label %2216

2199:                                             ; preds = %2194
  %2200 = load i32, ptr %44, align 4, !tbaa !5
  %2201 = call ptr @__errno_location() #13
  store i32 %2200, ptr %2201, align 4, !tbaa !5
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = load i32, ptr @test_count, align 4, !tbaa !5
  %2204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror(i32 noundef %2205, ptr noundef @.str.6)
  %2207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call ptr @s2n_strerror_debug(i32 noundef %2208, ptr noundef @.str.6)
  %2210 = call ptr @__errno_location() #13
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  %2212 = call ptr @strerror(i32 noundef %2211) #12
  %2213 = call ptr @__errno_location() #13
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2202, ptr noundef @.str.4, i32 noundef %2203, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 127, ptr noundef %2206, ptr noundef %2209, ptr noundef %2212, i32 noundef %2214) #12
  br label %2233

2216:                                             ; preds = %2194, %2187
  %2217 = load i32, ptr %44, align 4, !tbaa !5
  %2218 = call ptr @__errno_location() #13
  store i32 %2217, ptr %2218, align 4, !tbaa !5
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror(i32 noundef %2222, ptr noundef @.str.6)
  %2224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = call ptr @s2n_strerror_debug(i32 noundef %2225, ptr noundef @.str.6)
  %2227 = call ptr @__errno_location() #13
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = call ptr @strerror(i32 noundef %2228) #12
  %2230 = call ptr @__errno_location() #13
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2219, ptr noundef @.str.7, i32 noundef %2220, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 127, ptr noundef %2223, ptr noundef %2226, ptr noundef %2229, i32 noundef %2231) #12
  br label %2233

2233:                                             ; preds = %2216, %2199
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #12
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234
  call void @exit(i32 noundef 1) #14
  unreachable

2236:                                             ; No predecessors!
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237, %2180
  br label %2239

2239:                                             ; preds = %2238
  br label %2240

2240:                                             ; preds = %2239
  call void @llvm.lifetime.start.p0(i64 2, ptr %45) #12
  %2241 = getelementptr inbounds %struct.s2n_stuffer, ptr %38, i32 0, i32 2
  %2242 = load i32, ptr %2241, align 4, !tbaa !18
  %2243 = getelementptr inbounds %struct.s2n_stuffer, ptr %38, i32 0, i32 1
  %2244 = load i32, ptr %2243, align 8, !tbaa !21
  %2245 = sub i32 %2242, %2244
  %2246 = trunc i32 %2245 to i16
  store i16 %2246, ptr %45, align 2, !tbaa !27
  br label %2247

2247:                                             ; preds = %2240
  %2248 = load i32, ptr @test_count, align 4, !tbaa !5
  %2249 = add nsw i32 %2248, 1
  store i32 %2249, ptr @test_count, align 4, !tbaa !5
  %2250 = load i16, ptr %43, align 2, !tbaa !27
  %2251 = zext i16 %2250 to i32
  %2252 = load i16, ptr %45, align 2, !tbaa !27
  %2253 = zext i16 %2252 to i32
  %2254 = icmp eq i32 %2251, %2253
  br i1 %2254, label %2308, label %2255

2255:                                             ; preds = %2247
  br label %2256

2256:                                             ; preds = %2255
  br label %2257

2257:                                             ; preds = %2256
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #12
  %2258 = call ptr @__errno_location() #13
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  store i32 %2259, ptr %46, align 4, !tbaa !5
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = call i32 @s2n_print_stacktrace(ptr noundef %2260)
  %2262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2263 = trunc i8 %2262 to i1
  br i1 %2263, label %2264, label %2286

2264:                                             ; preds = %2257
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = call i32 @fileno(ptr noundef %2265) #12
  %2267 = call i32 @isatty(i32 noundef %2266) #12
  %2268 = icmp ne i32 %2267, 0
  br i1 %2268, label %2269, label %2286

2269:                                             ; preds = %2264
  %2270 = load i32, ptr %46, align 4, !tbaa !5
  %2271 = call ptr @__errno_location() #13
  store i32 %2270, ptr %2271, align 4, !tbaa !5
  %2272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2273 = load i32, ptr @test_count, align 4, !tbaa !5
  %2274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = call ptr @s2n_strerror(i32 noundef %2275, ptr noundef @.str.6)
  %2277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror_debug(i32 noundef %2278, ptr noundef @.str.6)
  %2280 = call ptr @__errno_location() #13
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @strerror(i32 noundef %2281) #12
  %2283 = call ptr @__errno_location() #13
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2272, ptr noundef @.str.4, i32 noundef %2273, ptr noundef @.str.26, ptr noundef @.str.3, i32 noundef 129, ptr noundef %2276, ptr noundef %2279, ptr noundef %2282, i32 noundef %2284) #12
  br label %2303

2286:                                             ; preds = %2264, %2257
  %2287 = load i32, ptr %46, align 4, !tbaa !5
  %2288 = call ptr @__errno_location() #13
  store i32 %2287, ptr %2288, align 4, !tbaa !5
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2290 = load i32, ptr @test_count, align 4, !tbaa !5
  %2291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror(i32 noundef %2292, ptr noundef @.str.6)
  %2294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = call ptr @s2n_strerror_debug(i32 noundef %2295, ptr noundef @.str.6)
  %2297 = call ptr @__errno_location() #13
  %2298 = load i32, ptr %2297, align 4, !tbaa !5
  %2299 = call ptr @strerror(i32 noundef %2298) #12
  %2300 = call ptr @__errno_location() #13
  %2301 = load i32, ptr %2300, align 4, !tbaa !5
  %2302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2289, ptr noundef @.str.7, i32 noundef %2290, ptr noundef @.str.26, ptr noundef @.str.3, i32 noundef 129, ptr noundef %2293, ptr noundef %2296, ptr noundef %2299, i32 noundef %2301) #12
  br label %2303

2303:                                             ; preds = %2286, %2269
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  br label %2304

2304:                                             ; preds = %2303
  br label %2305

2305:                                             ; preds = %2304
  call void @exit(i32 noundef 1) #14
  unreachable

2306:                                             ; No predecessors!
  br label %2307

2307:                                             ; preds = %2306
  br label %2308

2308:                                             ; preds = %2307, %2247
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

2311:                                             ; preds = %2310
  %2312 = load i32, ptr @test_count, align 4, !tbaa !5
  %2313 = add nsw i32 %2312, 1
  store i32 %2313, ptr @test_count, align 4, !tbaa !5
  %2314 = load i16, ptr %43, align 2, !tbaa !27
  %2315 = zext i16 %2314 to i32
  %2316 = getelementptr inbounds %struct.s2n_stuffer, ptr %38, i32 0, i32 2
  %2317 = load i32, ptr %2316, align 4, !tbaa !18
  %2318 = getelementptr inbounds %struct.s2n_stuffer, ptr %38, i32 0, i32 1
  %2319 = load i32, ptr %2318, align 8, !tbaa !21
  %2320 = sub i32 %2317, %2319
  %2321 = icmp eq i32 %2315, %2320
  br i1 %2321, label %2375, label %2322

2322:                                             ; preds = %2311
  br label %2323

2323:                                             ; preds = %2322
  br label %2324

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

2331:                                             ; preds = %2324
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = call i32 @fileno(ptr noundef %2332) #12
  %2334 = call i32 @isatty(i32 noundef %2333) #12
  %2335 = icmp ne i32 %2334, 0
  br i1 %2335, label %2336, label %2353

2336:                                             ; preds = %2331
  %2337 = load i32, ptr %47, align 4, !tbaa !5
  %2338 = call ptr @__errno_location() #13
  store i32 %2337, ptr %2338, align 4, !tbaa !5
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = load i32, ptr @test_count, align 4, !tbaa !5
  %2341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @s2n_strerror(i32 noundef %2342, ptr noundef @.str.6)
  %2344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call ptr @s2n_strerror_debug(i32 noundef %2345, ptr noundef @.str.6)
  %2347 = call ptr @__errno_location() #13
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call ptr @strerror(i32 noundef %2348) #12
  %2350 = call ptr @__errno_location() #13
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2339, ptr noundef @.str.4, i32 noundef %2340, ptr noundef @.str.27, ptr noundef @.str.3, i32 noundef 130, ptr noundef %2343, ptr noundef %2346, ptr noundef %2349, i32 noundef %2351) #12
  br label %2370

2353:                                             ; preds = %2331, %2324
  %2354 = load i32, ptr %47, align 4, !tbaa !5
  %2355 = call ptr @__errno_location() #13
  store i32 %2354, ptr %2355, align 4, !tbaa !5
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror(i32 noundef %2359, ptr noundef @.str.6)
  %2361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call ptr @s2n_strerror_debug(i32 noundef %2362, ptr noundef @.str.6)
  %2364 = call ptr @__errno_location() #13
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = call ptr @strerror(i32 noundef %2365) #12
  %2367 = call ptr @__errno_location() #13
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2356, ptr noundef @.str.7, i32 noundef %2357, ptr noundef @.str.27, ptr noundef @.str.3, i32 noundef 130, ptr noundef %2360, ptr noundef %2363, ptr noundef %2366, i32 noundef %2368) #12
  br label %2370

2370:                                             ; preds = %2353, %2336
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #12
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371
  call void @exit(i32 noundef 1) #14
  unreachable

2373:                                             ; No predecessors!
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

2375:                                             ; preds = %2374, %2311
  br label %2376

2376:                                             ; preds = %2375
  br label %2377

2377:                                             ; preds = %2376
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #12
  store ptr null, ptr %48, align 8, !tbaa !9
  br label %2378

2378:                                             ; preds = %2377
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = add nsw i32 %2379, 1
  store i32 %2380, ptr @test_count, align 4, !tbaa !5
  %2381 = load ptr, ptr %39, align 8, !tbaa !9
  %2382 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %2381, ptr noundef %48)
  %2383 = icmp eq i32 %2382, -1
  br i1 %2383, label %2384, label %2437

2384:                                             ; preds = %2378
  br label %2385

2385:                                             ; preds = %2384
  br label %2386

2386:                                             ; preds = %2385
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #12
  %2387 = call ptr @__errno_location() #13
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  store i32 %2388, ptr %49, align 4, !tbaa !5
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @s2n_print_stacktrace(ptr noundef %2389)
  %2391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2392 = trunc i8 %2391 to i1
  br i1 %2392, label %2393, label %2415

2393:                                             ; preds = %2386
  %2394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2395 = call i32 @fileno(ptr noundef %2394) #12
  %2396 = call i32 @isatty(i32 noundef %2395) #12
  %2397 = icmp ne i32 %2396, 0
  br i1 %2397, label %2398, label %2415

2398:                                             ; preds = %2393
  %2399 = load i32, ptr %49, align 4, !tbaa !5
  %2400 = call ptr @__errno_location() #13
  store i32 %2399, ptr %2400, align 4, !tbaa !5
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = load i32, ptr @test_count, align 4, !tbaa !5
  %2403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror(i32 noundef %2404, ptr noundef @.str.6)
  %2406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror_debug(i32 noundef %2407, ptr noundef @.str.6)
  %2409 = call ptr @__errno_location() #13
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @strerror(i32 noundef %2410) #12
  %2412 = call ptr @__errno_location() #13
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2401, ptr noundef @.str.4, i32 noundef %2402, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 133, ptr noundef %2405, ptr noundef %2408, ptr noundef %2411, i32 noundef %2413) #12
  br label %2432

2415:                                             ; preds = %2393, %2386
  %2416 = load i32, ptr %49, align 4, !tbaa !5
  %2417 = call ptr @__errno_location() #13
  store i32 %2416, ptr %2417, align 4, !tbaa !5
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = load i32, ptr @test_count, align 4, !tbaa !5
  %2420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror(i32 noundef %2421, ptr noundef @.str.6)
  %2423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call ptr @s2n_strerror_debug(i32 noundef %2424, ptr noundef @.str.6)
  %2426 = call ptr @__errno_location() #13
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @strerror(i32 noundef %2427) #12
  %2429 = call ptr @__errno_location() #13
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2418, ptr noundef @.str.7, i32 noundef %2419, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 133, ptr noundef %2422, ptr noundef %2425, ptr noundef %2428, i32 noundef %2430) #12
  br label %2432

2432:                                             ; preds = %2415, %2398
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #12
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433
  call void @exit(i32 noundef 1) #14
  unreachable

2435:                                             ; No predecessors!
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436, %2378
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

2440:                                             ; preds = %2439
  %2441 = load i32, ptr @test_count, align 4, !tbaa !5
  %2442 = add nsw i32 %2441, 1
  store i32 %2442, ptr @test_count, align 4, !tbaa !5
  %2443 = load ptr, ptr %48, align 8, !tbaa !9
  %2444 = icmp eq ptr %2443, null
  br i1 %2444, label %2445, label %2498

2445:                                             ; preds = %2440
  br label %2446

2446:                                             ; preds = %2445
  br label %2447

2447:                                             ; preds = %2446
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #12
  %2448 = call ptr @__errno_location() #13
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  store i32 %2449, ptr %50, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = call i32 @s2n_print_stacktrace(ptr noundef %2450)
  %2452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2453 = trunc i8 %2452 to i1
  br i1 %2453, label %2454, label %2476

2454:                                             ; preds = %2447
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = call i32 @fileno(ptr noundef %2455) #12
  %2457 = call i32 @isatty(i32 noundef %2456) #12
  %2458 = icmp ne i32 %2457, 0
  br i1 %2458, label %2459, label %2476

2459:                                             ; preds = %2454
  %2460 = load i32, ptr %50, align 4, !tbaa !5
  %2461 = call ptr @__errno_location() #13
  store i32 %2460, ptr %2461, align 4, !tbaa !5
  %2462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2463 = load i32, ptr @test_count, align 4, !tbaa !5
  %2464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror(i32 noundef %2465, ptr noundef @.str.6)
  %2467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = call ptr @s2n_strerror_debug(i32 noundef %2468, ptr noundef @.str.6)
  %2470 = call ptr @__errno_location() #13
  %2471 = load i32, ptr %2470, align 4, !tbaa !5
  %2472 = call ptr @strerror(i32 noundef %2471) #12
  %2473 = call ptr @__errno_location() #13
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2462, ptr noundef @.str.4, i32 noundef %2463, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 134, ptr noundef %2466, ptr noundef %2469, ptr noundef %2472, i32 noundef %2474) #12
  br label %2493

2476:                                             ; preds = %2454, %2447
  %2477 = load i32, ptr %50, align 4, !tbaa !5
  %2478 = call ptr @__errno_location() #13
  store i32 %2477, ptr %2478, align 4, !tbaa !5
  %2479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2480 = load i32, ptr @test_count, align 4, !tbaa !5
  %2481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror(i32 noundef %2482, ptr noundef @.str.6)
  %2484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call ptr @s2n_strerror_debug(i32 noundef %2485, ptr noundef @.str.6)
  %2487 = call ptr @__errno_location() #13
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @strerror(i32 noundef %2488) #12
  %2490 = call ptr @__errno_location() #13
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2479, ptr noundef @.str.7, i32 noundef %2480, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 134, ptr noundef %2483, ptr noundef %2486, ptr noundef %2489, i32 noundef %2491) #12
  br label %2493

2493:                                             ; preds = %2476, %2459
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #12
  br label %2494

2494:                                             ; preds = %2493
  br label %2495

2495:                                             ; preds = %2494
  call void @exit(i32 noundef 1) #14
  unreachable

2496:                                             ; No predecessors!
  br label %2497

2497:                                             ; preds = %2496
  br label %2498

2498:                                             ; preds = %2497, %2440
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  call void @llvm.lifetime.start.p0(i64 2, ptr %51) #12
  store i16 0, ptr %51, align 2, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 2, ptr %52) #12
  store i16 0, ptr %52, align 2, !tbaa !27
  br label %2501

2501:                                             ; preds = %2500
  %2502 = load i32, ptr @test_count, align 4, !tbaa !5
  %2503 = add nsw i32 %2502, 1
  store i32 %2503, ptr @test_count, align 4, !tbaa !5
  %2504 = call i32 @s2n_stuffer_read_uint16(ptr noundef %38, ptr noundef %51)
  %2505 = icmp eq i32 %2504, -1
  br i1 %2505, label %2506, label %2559

2506:                                             ; preds = %2501
  br label %2507

2507:                                             ; preds = %2506
  br label %2508

2508:                                             ; preds = %2507
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #12
  %2509 = call ptr @__errno_location() #13
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  store i32 %2510, ptr %53, align 4, !tbaa !5
  %2511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2512 = call i32 @s2n_print_stacktrace(ptr noundef %2511)
  %2513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2514 = trunc i8 %2513 to i1
  br i1 %2514, label %2515, label %2537

2515:                                             ; preds = %2508
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = call i32 @fileno(ptr noundef %2516) #12
  %2518 = call i32 @isatty(i32 noundef %2517) #12
  %2519 = icmp ne i32 %2518, 0
  br i1 %2519, label %2520, label %2537

2520:                                             ; preds = %2515
  %2521 = load i32, ptr %53, align 4, !tbaa !5
  %2522 = call ptr @__errno_location() #13
  store i32 %2521, ptr %2522, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = load i32, ptr @test_count, align 4, !tbaa !5
  %2525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2526 = load i32, ptr %2525, align 4, !tbaa !5
  %2527 = call ptr @s2n_strerror(i32 noundef %2526, ptr noundef @.str.6)
  %2528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2529 = load i32, ptr %2528, align 4, !tbaa !5
  %2530 = call ptr @s2n_strerror_debug(i32 noundef %2529, ptr noundef @.str.6)
  %2531 = call ptr @__errno_location() #13
  %2532 = load i32, ptr %2531, align 4, !tbaa !5
  %2533 = call ptr @strerror(i32 noundef %2532) #12
  %2534 = call ptr @__errno_location() #13
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2523, ptr noundef @.str.4, i32 noundef %2524, ptr noundef @.str.28, ptr noundef @.str.3, i32 noundef 138, ptr noundef %2527, ptr noundef %2530, ptr noundef %2533, i32 noundef %2535) #12
  br label %2554

2537:                                             ; preds = %2515, %2508
  %2538 = load i32, ptr %53, align 4, !tbaa !5
  %2539 = call ptr @__errno_location() #13
  store i32 %2538, ptr %2539, align 4, !tbaa !5
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call ptr @s2n_strerror(i32 noundef %2543, ptr noundef @.str.6)
  %2545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2546 = load i32, ptr %2545, align 4, !tbaa !5
  %2547 = call ptr @s2n_strerror_debug(i32 noundef %2546, ptr noundef @.str.6)
  %2548 = call ptr @__errno_location() #13
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @strerror(i32 noundef %2549) #12
  %2551 = call ptr @__errno_location() #13
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2540, ptr noundef @.str.7, i32 noundef %2541, ptr noundef @.str.28, ptr noundef @.str.3, i32 noundef 138, ptr noundef %2544, ptr noundef %2547, ptr noundef %2550, i32 noundef %2552) #12
  br label %2554

2554:                                             ; preds = %2537, %2520
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #12
  br label %2555

2555:                                             ; preds = %2554
  br label %2556

2556:                                             ; preds = %2555
  call void @exit(i32 noundef 1) #14
  unreachable

2557:                                             ; No predecessors!
  br label %2558

2558:                                             ; preds = %2557
  br label %2559

2559:                                             ; preds = %2558, %2501
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561
  %2563 = load i32, ptr @test_count, align 4, !tbaa !5
  %2564 = add nsw i32 %2563, 1
  store i32 %2564, ptr @test_count, align 4, !tbaa !5
  %2565 = load i16, ptr %51, align 2, !tbaa !27
  %2566 = zext i16 %2565 to i32
  %2567 = load ptr, ptr %48, align 8, !tbaa !9
  %2568 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2567, i32 0, i32 1
  %2569 = load ptr, ptr %2568, align 8, !tbaa !24
  %2570 = getelementptr inbounds ptr, ptr %2569, i64 0
  %2571 = load ptr, ptr %2570, align 8, !tbaa !9
  %2572 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %2571, i32 0, i32 0
  %2573 = load i16, ptr %2572, align 8, !tbaa !28
  %2574 = zext i16 %2573 to i32
  %2575 = icmp eq i32 %2566, %2574
  br i1 %2575, label %2629, label %2576

2576:                                             ; preds = %2562
  br label %2577

2577:                                             ; preds = %2576
  br label %2578

2578:                                             ; preds = %2577
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #12
  %2579 = call ptr @__errno_location() #13
  %2580 = load i32, ptr %2579, align 4, !tbaa !5
  store i32 %2580, ptr %54, align 4, !tbaa !5
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = call i32 @s2n_print_stacktrace(ptr noundef %2581)
  %2583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2584 = trunc i8 %2583 to i1
  br i1 %2584, label %2585, label %2607

2585:                                             ; preds = %2578
  %2586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2587 = call i32 @fileno(ptr noundef %2586) #12
  %2588 = call i32 @isatty(i32 noundef %2587) #12
  %2589 = icmp ne i32 %2588, 0
  br i1 %2589, label %2590, label %2607

2590:                                             ; preds = %2585
  %2591 = load i32, ptr %54, align 4, !tbaa !5
  %2592 = call ptr @__errno_location() #13
  store i32 %2591, ptr %2592, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror(i32 noundef %2596, ptr noundef @.str.6)
  %2598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror_debug(i32 noundef %2599, ptr noundef @.str.6)
  %2601 = call ptr @__errno_location() #13
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @strerror(i32 noundef %2602) #12
  %2604 = call ptr @__errno_location() #13
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef @.str.4, i32 noundef %2594, ptr noundef @.str.29, ptr noundef @.str.3, i32 noundef 139, ptr noundef %2597, ptr noundef %2600, ptr noundef %2603, i32 noundef %2605) #12
  br label %2624

2607:                                             ; preds = %2585, %2578
  %2608 = load i32, ptr %54, align 4, !tbaa !5
  %2609 = call ptr @__errno_location() #13
  store i32 %2608, ptr %2609, align 4, !tbaa !5
  %2610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2611 = load i32, ptr @test_count, align 4, !tbaa !5
  %2612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call ptr @s2n_strerror(i32 noundef %2613, ptr noundef @.str.6)
  %2615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror_debug(i32 noundef %2616, ptr noundef @.str.6)
  %2618 = call ptr @__errno_location() #13
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call ptr @strerror(i32 noundef %2619) #12
  %2621 = call ptr @__errno_location() #13
  %2622 = load i32, ptr %2621, align 4, !tbaa !5
  %2623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2610, ptr noundef @.str.7, i32 noundef %2611, ptr noundef @.str.29, ptr noundef @.str.3, i32 noundef 139, ptr noundef %2614, ptr noundef %2617, ptr noundef %2620, i32 noundef %2622) #12
  br label %2624

2624:                                             ; preds = %2607, %2590
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #12
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  call void @exit(i32 noundef 1) #14
  unreachable

2627:                                             ; No predecessors!
  br label %2628

2628:                                             ; preds = %2627
  br label %2629

2629:                                             ; preds = %2628, %2562
  br label %2630

2630:                                             ; preds = %2629
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

2632:                                             ; preds = %2631
  %2633 = load i32, ptr @test_count, align 4, !tbaa !5
  %2634 = add nsw i32 %2633, 1
  store i32 %2634, ptr @test_count, align 4, !tbaa !5
  %2635 = call i32 @s2n_stuffer_read_uint16(ptr noundef %38, ptr noundef %52)
  %2636 = icmp eq i32 %2635, -1
  br i1 %2636, label %2637, label %2690

2637:                                             ; preds = %2632
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #12
  %2640 = call ptr @__errno_location() #13
  %2641 = load i32, ptr %2640, align 4, !tbaa !5
  store i32 %2641, ptr %55, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = call i32 @s2n_print_stacktrace(ptr noundef %2642)
  %2644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2645 = trunc i8 %2644 to i1
  br i1 %2645, label %2646, label %2668

2646:                                             ; preds = %2639
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = call i32 @fileno(ptr noundef %2647) #12
  %2649 = call i32 @isatty(i32 noundef %2648) #12
  %2650 = icmp ne i32 %2649, 0
  br i1 %2650, label %2651, label %2668

2651:                                             ; preds = %2646
  %2652 = load i32, ptr %55, align 4, !tbaa !5
  %2653 = call ptr @__errno_location() #13
  store i32 %2652, ptr %2653, align 4, !tbaa !5
  %2654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2655 = load i32, ptr @test_count, align 4, !tbaa !5
  %2656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror(i32 noundef %2657, ptr noundef @.str.6)
  %2659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror_debug(i32 noundef %2660, ptr noundef @.str.6)
  %2662 = call ptr @__errno_location() #13
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @strerror(i32 noundef %2663) #12
  %2665 = call ptr @__errno_location() #13
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2654, ptr noundef @.str.4, i32 noundef %2655, ptr noundef @.str.30, ptr noundef @.str.3, i32 noundef 140, ptr noundef %2658, ptr noundef %2661, ptr noundef %2664, i32 noundef %2666) #12
  br label %2685

2668:                                             ; preds = %2646, %2639
  %2669 = load i32, ptr %55, align 4, !tbaa !5
  %2670 = call ptr @__errno_location() #13
  store i32 %2669, ptr %2670, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = load i32, ptr @test_count, align 4, !tbaa !5
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror(i32 noundef %2674, ptr noundef @.str.6)
  %2676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror_debug(i32 noundef %2677, ptr noundef @.str.6)
  %2679 = call ptr @__errno_location() #13
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @strerror(i32 noundef %2680) #12
  %2682 = call ptr @__errno_location() #13
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2671, ptr noundef @.str.7, i32 noundef %2672, ptr noundef @.str.30, ptr noundef @.str.3, i32 noundef 140, ptr noundef %2675, ptr noundef %2678, ptr noundef %2681, i32 noundef %2683) #12
  br label %2685

2685:                                             ; preds = %2668, %2651
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #12
  br label %2686

2686:                                             ; preds = %2685
  br label %2687

2687:                                             ; preds = %2686
  call void @exit(i32 noundef 1) #14
  unreachable

2688:                                             ; No predecessors!
  br label %2689

2689:                                             ; preds = %2688
  br label %2690

2690:                                             ; preds = %2689, %2632
  br label %2691

2691:                                             ; preds = %2690
  br label %2692

2692:                                             ; preds = %2691
  br label %2693

2693:                                             ; preds = %2692
  %2694 = load i32, ptr @test_count, align 4, !tbaa !5
  %2695 = add nsw i32 %2694, 1
  store i32 %2695, ptr @test_count, align 4, !tbaa !5
  %2696 = load i16, ptr %52, align 2, !tbaa !27
  %2697 = zext i16 %2696 to i32
  %2698 = load ptr, ptr %48, align 8, !tbaa !9
  %2699 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2698, i32 0, i32 1
  %2700 = load ptr, ptr %2699, align 8, !tbaa !24
  %2701 = getelementptr inbounds ptr, ptr %2700, i64 0
  %2702 = load ptr, ptr %2701, align 8, !tbaa !9
  %2703 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %2702, i32 0, i32 3
  %2704 = load i8, ptr %2703, align 8, !tbaa !30
  %2705 = zext i8 %2704 to i32
  %2706 = icmp eq i32 %2697, %2705
  br i1 %2706, label %2760, label %2707

2707:                                             ; preds = %2693
  br label %2708

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #12
  %2710 = call ptr @__errno_location() #13
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  store i32 %2711, ptr %56, 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) #12
  %2719 = call i32 @isatty(i32 noundef %2718) #12
  %2720 = icmp ne i32 %2719, 0
  br i1 %2720, label %2721, label %2738

2721:                                             ; preds = %2716
  %2722 = load i32, ptr %56, align 4, !tbaa !5
  %2723 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %2732 = call ptr @__errno_location() #13
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #12
  %2735 = call ptr @__errno_location() #13
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2724, ptr noundef @.str.4, i32 noundef %2725, ptr noundef @.str.31, ptr noundef @.str.3, i32 noundef 141, ptr noundef %2728, ptr noundef %2731, ptr noundef %2734, i32 noundef %2736) #12
  br label %2755

2738:                                             ; preds = %2716, %2709
  %2739 = load i32, ptr %56, align 4, !tbaa !5
  %2740 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %2749 = call ptr @__errno_location() #13
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call ptr @strerror(i32 noundef %2750) #12
  %2752 = call ptr @__errno_location() #13
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2741, ptr noundef @.str.7, i32 noundef %2742, ptr noundef @.str.31, ptr noundef @.str.3, i32 noundef 141, ptr noundef %2745, ptr noundef %2748, ptr noundef %2751, i32 noundef %2753) #12
  br label %2755

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

2756:                                             ; preds = %2755
  br label %2757

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

2758:                                             ; No predecessors!
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

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

2761:                                             ; preds = %2760
  br label %2762

2762:                                             ; preds = %2761
  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 = load i16, ptr %52, align 2, !tbaa !27
  %2767 = zext i16 %2766 to i32
  %2768 = call i32 @s2n_stuffer_skip_read(ptr noundef %38, i32 noundef %2767)
  %2769 = icmp eq i32 %2768, -1
  br i1 %2769, label %2770, label %2823

2770:                                             ; preds = %2763
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

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

2779:                                             ; preds = %2772
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = call i32 @fileno(ptr noundef %2780) #12
  %2782 = call i32 @isatty(i32 noundef %2781) #12
  %2783 = icmp ne i32 %2782, 0
  br i1 %2783, label %2784, label %2801

2784:                                             ; preds = %2779
  %2785 = load i32, ptr %57, align 4, !tbaa !5
  %2786 = call ptr @__errno_location() #13
  store i32 %2785, ptr %2786, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = load i32, ptr @test_count, align 4, !tbaa !5
  %2789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror(i32 noundef %2790, ptr noundef @.str.6)
  %2792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror_debug(i32 noundef %2793, ptr noundef @.str.6)
  %2795 = call ptr @__errno_location() #13
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @strerror(i32 noundef %2796) #12
  %2798 = call ptr @__errno_location() #13
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2787, ptr noundef @.str.4, i32 noundef %2788, ptr noundef @.str.32, ptr noundef @.str.3, i32 noundef 143, ptr noundef %2791, ptr noundef %2794, ptr noundef %2797, i32 noundef %2799) #12
  br label %2818

2801:                                             ; preds = %2779, %2772
  %2802 = load i32, ptr %57, align 4, !tbaa !5
  %2803 = call ptr @__errno_location() #13
  store i32 %2802, ptr %2803, align 4, !tbaa !5
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = load i32, ptr @test_count, align 4, !tbaa !5
  %2806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @s2n_strerror(i32 noundef %2807, ptr noundef @.str.6)
  %2809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror_debug(i32 noundef %2810, ptr noundef @.str.6)
  %2812 = call ptr @__errno_location() #13
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call ptr @strerror(i32 noundef %2813) #12
  %2815 = call ptr @__errno_location() #13
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2804, ptr noundef @.str.7, i32 noundef %2805, ptr noundef @.str.32, ptr noundef @.str.3, i32 noundef 143, ptr noundef %2808, ptr noundef %2811, ptr noundef %2814, i32 noundef %2816) #12
  br label %2818

2818:                                             ; preds = %2801, %2784
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #12
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

2820:                                             ; preds = %2819
  call void @exit(i32 noundef 1) #14
  unreachable

2821:                                             ; No predecessors!
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

2823:                                             ; preds = %2822, %2763
  br label %2824

2824:                                             ; preds = %2823
  br label %2825

2825:                                             ; preds = %2824
  br label %2826

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

2831:                                             ; preds = %2826
  br label %2832

2832:                                             ; preds = %2831
  br label %2833

2833:                                             ; preds = %2832
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #12
  %2834 = call ptr @__errno_location() #13
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  store i32 %2835, ptr %58, 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) #12
  %2843 = call i32 @isatty(i32 noundef %2842) #12
  %2844 = icmp ne i32 %2843, 0
  br i1 %2844, label %2845, label %2862

2845:                                             ; preds = %2840
  %2846 = load i32, ptr %58, align 4, !tbaa !5
  %2847 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %2856 = call ptr @__errno_location() #13
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call ptr @strerror(i32 noundef %2857) #12
  %2859 = call ptr @__errno_location() #13
  %2860 = load i32, ptr %2859, align 4, !tbaa !5
  %2861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2848, ptr noundef @.str.4, i32 noundef %2849, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 145, ptr noundef %2852, ptr noundef %2855, ptr noundef %2858, i32 noundef %2860) #12
  br label %2879

2862:                                             ; preds = %2840, %2833
  %2863 = load i32, ptr %58, align 4, !tbaa !5
  %2864 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %2873 = call ptr @__errno_location() #13
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = call ptr @strerror(i32 noundef %2874) #12
  %2876 = call ptr @__errno_location() #13
  %2877 = load i32, ptr %2876, align 4, !tbaa !5
  %2878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2865, ptr noundef @.str.7, i32 noundef %2866, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 145, ptr noundef %2869, ptr noundef %2872, ptr noundef %2875, i32 noundef %2877) #12
  br label %2879

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

2880:                                             ; preds = %2879
  br label %2881

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

2882:                                             ; No predecessors!
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

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

2885:                                             ; preds = %2884
  br label %2886

2886:                                             ; preds = %2885
  br label %2887

2887:                                             ; preds = %2886
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = add nsw i32 %2888, 1
  store i32 %2889, ptr @test_count, align 4, !tbaa !5
  %2890 = load ptr, ptr %39, align 8, !tbaa !9
  %2891 = call i32 @s2n_connection_free(ptr noundef %2890)
  %2892 = icmp eq i32 %2891, -1
  br i1 %2892, label %2893, label %2946

2893:                                             ; preds = %2887
  br label %2894

2894:                                             ; preds = %2893
  br label %2895

2895:                                             ; preds = %2894
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #12
  %2896 = call ptr @__errno_location() #13
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  store i32 %2897, ptr %59, align 4, !tbaa !5
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @s2n_print_stacktrace(ptr noundef %2898)
  %2900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2901 = trunc i8 %2900 to i1
  br i1 %2901, label %2902, label %2924

2902:                                             ; preds = %2895
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = call i32 @fileno(ptr noundef %2903) #12
  %2905 = call i32 @isatty(i32 noundef %2904) #12
  %2906 = icmp ne i32 %2905, 0
  br i1 %2906, label %2907, label %2924

2907:                                             ; preds = %2902
  %2908 = load i32, ptr %59, align 4, !tbaa !5
  %2909 = call ptr @__errno_location() #13
  store i32 %2908, ptr %2909, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = load i32, ptr @test_count, align 4, !tbaa !5
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror(i32 noundef %2913, ptr noundef @.str.6)
  %2915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror_debug(i32 noundef %2916, ptr noundef @.str.6)
  %2918 = call ptr @__errno_location() #13
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @strerror(i32 noundef %2919) #12
  %2921 = call ptr @__errno_location() #13
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2910, ptr noundef @.str.4, i32 noundef %2911, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 146, ptr noundef %2914, ptr noundef %2917, ptr noundef %2920, i32 noundef %2922) #12
  br label %2941

2924:                                             ; preds = %2902, %2895
  %2925 = load i32, ptr %59, align 4, !tbaa !5
  %2926 = call ptr @__errno_location() #13
  store i32 %2925, ptr %2926, align 4, !tbaa !5
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = load i32, ptr @test_count, align 4, !tbaa !5
  %2929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @s2n_strerror(i32 noundef %2930, ptr noundef @.str.6)
  %2932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call ptr @s2n_strerror_debug(i32 noundef %2933, ptr noundef @.str.6)
  %2935 = call ptr @__errno_location() #13
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call ptr @strerror(i32 noundef %2936) #12
  %2938 = call ptr @__errno_location() #13
  %2939 = load i32, ptr %2938, align 4, !tbaa !5
  %2940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2927, ptr noundef @.str.7, i32 noundef %2928, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 146, ptr noundef %2931, ptr noundef %2934, ptr noundef %2937, i32 noundef %2939) #12
  br label %2941

2941:                                             ; preds = %2924, %2907
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #12
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942
  call void @exit(i32 noundef 1) #14
  unreachable

2944:                                             ; No predecessors!
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945, %2887
  br label %2947

2947:                                             ; preds = %2946
  br label %2948

2948:                                             ; preds = %2947
  call void @llvm.lifetime.end.p0(i64 2, ptr %52) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %45) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %43) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #12
  %2949 = call i32 (...) @s2n_is_evp_apis_supported()
  %2950 = icmp ne i32 %2949, 0
  br i1 %2950, label %2951, label %3698

2951:                                             ; preds = %2948
  call void @llvm.lifetime.start.p0(i64 40, ptr %60) #12
  call void @llvm.memset.p0.i64(ptr align 8 %60, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #12
  store ptr null, ptr %61, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #12
  store ptr null, ptr %62, align 8, !tbaa !9
  br label %2952

2952:                                             ; preds = %2951
  %2953 = load i32, ptr @test_count, align 4, !tbaa !5
  %2954 = add nsw i32 %2953, 1
  store i32 %2954, ptr @test_count, align 4, !tbaa !5
  %2955 = call ptr @s2n_config_new()
  store ptr %2955, ptr %62, align 8, !tbaa !9
  %2956 = icmp eq ptr %2955, null
  br i1 %2956, label %2957, label %3010

2957:                                             ; preds = %2952
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

2959:                                             ; preds = %2958
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #12
  %2960 = call ptr @__errno_location() #13
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  store i32 %2961, ptr %63, align 4, !tbaa !5
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = call i32 @s2n_print_stacktrace(ptr noundef %2962)
  %2964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2965 = trunc i8 %2964 to i1
  br i1 %2965, label %2966, label %2988

2966:                                             ; preds = %2959
  %2967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2968 = call i32 @fileno(ptr noundef %2967) #12
  %2969 = call i32 @isatty(i32 noundef %2968) #12
  %2970 = icmp ne i32 %2969, 0
  br i1 %2970, label %2971, label %2988

2971:                                             ; preds = %2966
  %2972 = load i32, ptr %63, align 4, !tbaa !5
  %2973 = call ptr @__errno_location() #13
  store i32 %2972, ptr %2973, align 4, !tbaa !5
  %2974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2975 = load i32, ptr @test_count, align 4, !tbaa !5
  %2976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror(i32 noundef %2977, ptr noundef @.str.6)
  %2979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @s2n_strerror_debug(i32 noundef %2980, ptr noundef @.str.6)
  %2982 = call ptr @__errno_location() #13
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call ptr @strerror(i32 noundef %2983) #12
  %2985 = call ptr @__errno_location() #13
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2974, ptr noundef @.str.4, i32 noundef %2975, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 155, ptr noundef %2978, ptr noundef %2981, ptr noundef %2984, i32 noundef %2986) #12
  br label %3005

2988:                                             ; preds = %2966, %2959
  %2989 = load i32, ptr %63, align 4, !tbaa !5
  %2990 = call ptr @__errno_location() #13
  store i32 %2989, ptr %2990, align 4, !tbaa !5
  %2991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2992 = load i32, ptr @test_count, align 4, !tbaa !5
  %2993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @s2n_strerror(i32 noundef %2994, ptr noundef @.str.6)
  %2996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call ptr @s2n_strerror_debug(i32 noundef %2997, ptr noundef @.str.6)
  %2999 = call ptr @__errno_location() #13
  %3000 = load i32, ptr %2999, align 4, !tbaa !5
  %3001 = call ptr @strerror(i32 noundef %3000) #12
  %3002 = call ptr @__errno_location() #13
  %3003 = load i32, ptr %3002, align 4, !tbaa !5
  %3004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2991, ptr noundef @.str.7, i32 noundef %2992, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 155, ptr noundef %2995, ptr noundef %2998, ptr noundef %3001, i32 noundef %3003) #12
  br label %3005

3005:                                             ; preds = %2988, %2971
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #12
  br label %3006

3006:                                             ; preds = %3005
  br label %3007

3007:                                             ; preds = %3006
  call void @exit(i32 noundef 1) #14
  unreachable

3008:                                             ; No predecessors!
  br label %3009

3009:                                             ; preds = %3008
  br label %3010

3010:                                             ; preds = %3009, %2952
  br label %3011

3011:                                             ; preds = %3010
  br label %3012

3012:                                             ; preds = %3011
  br label %3013

3013:                                             ; preds = %3012
  %3014 = load i32, ptr @test_count, align 4, !tbaa !5
  %3015 = add nsw i32 %3014, 1
  store i32 %3015, ptr @test_count, align 4, !tbaa !5
  %3016 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3016, ptr %61, align 8, !tbaa !9
  %3017 = icmp eq ptr %3016, null
  br i1 %3017, label %3018, label %3071

3018:                                             ; preds = %3013
  br label %3019

3019:                                             ; preds = %3018
  br label %3020

3020:                                             ; preds = %3019
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #12
  %3021 = call ptr @__errno_location() #13
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  store i32 %3022, ptr %64, align 4, !tbaa !5
  %3023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3024 = call i32 @s2n_print_stacktrace(ptr noundef %3023)
  %3025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3026 = trunc i8 %3025 to i1
  br i1 %3026, label %3027, label %3049

3027:                                             ; preds = %3020
  %3028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3029 = call i32 @fileno(ptr noundef %3028) #12
  %3030 = call i32 @isatty(i32 noundef %3029) #12
  %3031 = icmp ne i32 %3030, 0
  br i1 %3031, label %3032, label %3049

3032:                                             ; preds = %3027
  %3033 = load i32, ptr %64, align 4, !tbaa !5
  %3034 = call ptr @__errno_location() #13
  store i32 %3033, ptr %3034, align 4, !tbaa !5
  %3035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3036 = load i32, ptr @test_count, align 4, !tbaa !5
  %3037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  %3039 = call ptr @s2n_strerror(i32 noundef %3038, ptr noundef @.str.6)
  %3040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3041 = load i32, ptr %3040, align 4, !tbaa !5
  %3042 = call ptr @s2n_strerror_debug(i32 noundef %3041, ptr noundef @.str.6)
  %3043 = call ptr @__errno_location() #13
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call ptr @strerror(i32 noundef %3044) #12
  %3046 = call ptr @__errno_location() #13
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3035, ptr noundef @.str.4, i32 noundef %3036, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 156, ptr noundef %3039, ptr noundef %3042, ptr noundef %3045, i32 noundef %3047) #12
  br label %3066

3049:                                             ; preds = %3027, %3020
  %3050 = load i32, ptr %64, align 4, !tbaa !5
  %3051 = call ptr @__errno_location() #13
  store i32 %3050, ptr %3051, align 4, !tbaa !5
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3053 = load i32, ptr @test_count, align 4, !tbaa !5
  %3054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror(i32 noundef %3055, ptr noundef @.str.6)
  %3057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call ptr @s2n_strerror_debug(i32 noundef %3058, ptr noundef @.str.6)
  %3060 = call ptr @__errno_location() #13
  %3061 = load i32, ptr %3060, align 4, !tbaa !5
  %3062 = call ptr @strerror(i32 noundef %3061) #12
  %3063 = call ptr @__errno_location() #13
  %3064 = load i32, ptr %3063, align 4, !tbaa !5
  %3065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3052, ptr noundef @.str.7, i32 noundef %3053, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 156, ptr noundef %3056, ptr noundef %3059, ptr noundef %3062, i32 noundef %3064) #12
  br label %3066

3066:                                             ; preds = %3049, %3032
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #12
  br label %3067

3067:                                             ; preds = %3066
  br label %3068

3068:                                             ; preds = %3067
  call void @exit(i32 noundef 1) #14
  unreachable

3069:                                             ; No predecessors!
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070, %3013
  br label %3072

3072:                                             ; preds = %3071
  br label %3073

3073:                                             ; preds = %3072
  br label %3074

3074:                                             ; preds = %3073
  %3075 = load i32, ptr @test_count, align 4, !tbaa !5
  %3076 = add nsw i32 %3075, 1
  store i32 %3076, ptr @test_count, align 4, !tbaa !5
  %3077 = load ptr, ptr %62, align 8, !tbaa !9
  %3078 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3077, ptr noundef @.str.34)
  %3079 = icmp eq i32 %3078, -1
  br i1 %3079, label %3080, label %3133

3080:                                             ; preds = %3074
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

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

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

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

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

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

3129:                                             ; preds = %3128
  br label %3130

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

3131:                                             ; No predecessors!
  br label %3132

3132:                                             ; preds = %3131
  br label %3133

3133:                                             ; preds = %3132, %3074
  br label %3134

3134:                                             ; preds = %3133
  br label %3135

3135:                                             ; preds = %3134
  br label %3136

3136:                                             ; preds = %3135
  %3137 = load i32, ptr @test_count, align 4, !tbaa !5
  %3138 = add nsw i32 %3137, 1
  store i32 %3138, ptr @test_count, align 4, !tbaa !5
  %3139 = load ptr, ptr %61, align 8, !tbaa !9
  %3140 = load ptr, ptr %62, align 8, !tbaa !9
  %3141 = call i32 @s2n_connection_set_config(ptr noundef %3139, ptr noundef %3140)
  %3142 = icmp eq i32 %3141, -1
  br i1 %3142, label %3143, label %3196

3143:                                             ; preds = %3136
  br label %3144

3144:                                             ; preds = %3143
  br label %3145

3145:                                             ; preds = %3144
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #12
  %3146 = call ptr @__errno_location() #13
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  store i32 %3147, ptr %66, align 4, !tbaa !5
  %3148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3149 = call i32 @s2n_print_stacktrace(ptr noundef %3148)
  %3150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3151 = trunc i8 %3150 to i1
  br i1 %3151, label %3152, label %3174

3152:                                             ; preds = %3145
  %3153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3154 = call i32 @fileno(ptr noundef %3153) #12
  %3155 = call i32 @isatty(i32 noundef %3154) #12
  %3156 = icmp ne i32 %3155, 0
  br i1 %3156, label %3157, label %3174

3157:                                             ; preds = %3152
  %3158 = load i32, ptr %66, align 4, !tbaa !5
  %3159 = call ptr @__errno_location() #13
  store i32 %3158, ptr %3159, align 4, !tbaa !5
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3161 = load i32, ptr @test_count, align 4, !tbaa !5
  %3162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3163 = load i32, ptr %3162, align 4, !tbaa !5
  %3164 = call ptr @s2n_strerror(i32 noundef %3163, ptr noundef @.str.6)
  %3165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3166 = load i32, ptr %3165, align 4, !tbaa !5
  %3167 = call ptr @s2n_strerror_debug(i32 noundef %3166, ptr noundef @.str.6)
  %3168 = call ptr @__errno_location() #13
  %3169 = load i32, ptr %3168, align 4, !tbaa !5
  %3170 = call ptr @strerror(i32 noundef %3169) #12
  %3171 = call ptr @__errno_location() #13
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  %3173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3160, ptr noundef @.str.4, i32 noundef %3161, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 159, ptr noundef %3164, ptr noundef %3167, ptr noundef %3170, i32 noundef %3172) #12
  br label %3191

3174:                                             ; preds = %3152, %3145
  %3175 = load i32, ptr %66, align 4, !tbaa !5
  %3176 = call ptr @__errno_location() #13
  store i32 %3175, ptr %3176, align 4, !tbaa !5
  %3177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3178 = load i32, ptr @test_count, align 4, !tbaa !5
  %3179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3180 = load i32, ptr %3179, align 4, !tbaa !5
  %3181 = call ptr @s2n_strerror(i32 noundef %3180, ptr noundef @.str.6)
  %3182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3183 = load i32, ptr %3182, align 4, !tbaa !5
  %3184 = call ptr @s2n_strerror_debug(i32 noundef %3183, ptr noundef @.str.6)
  %3185 = call ptr @__errno_location() #13
  %3186 = load i32, ptr %3185, align 4, !tbaa !5
  %3187 = call ptr @strerror(i32 noundef %3186) #12
  %3188 = call ptr @__errno_location() #13
  %3189 = load i32, ptr %3188, align 4, !tbaa !5
  %3190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3177, ptr noundef @.str.7, i32 noundef %3178, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 159, ptr noundef %3181, ptr noundef %3184, ptr noundef %3187, i32 noundef %3189) #12
  br label %3191

3191:                                             ; preds = %3174, %3157
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #12
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

3193:                                             ; preds = %3192
  call void @exit(i32 noundef 1) #14
  unreachable

3194:                                             ; No predecessors!
  br label %3195

3195:                                             ; preds = %3194
  br label %3196

3196:                                             ; preds = %3195, %3136
  br label %3197

3197:                                             ; preds = %3196
  br label %3198

3198:                                             ; preds = %3197
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #12
  store ptr null, ptr %67, align 8, !tbaa !9
  br label %3199

3199:                                             ; preds = %3198
  %3200 = load i32, ptr @test_count, align 4, !tbaa !5
  %3201 = add nsw i32 %3200, 1
  store i32 %3201, ptr @test_count, align 4, !tbaa !5
  %3202 = load ptr, ptr %61, align 8, !tbaa !9
  %3203 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %3202, ptr noundef %67)
  %3204 = icmp eq i32 %3203, -1
  br i1 %3204, label %3205, label %3258

3205:                                             ; preds = %3199
  br label %3206

3206:                                             ; preds = %3205
  br label %3207

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

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

3219:                                             ; preds = %3214
  %3220 = load i32, ptr %68, align 4, !tbaa !5
  %3221 = call ptr @__errno_location() #13
  store i32 %3220, ptr %3221, align 4, !tbaa !5
  %3222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3223 = load i32, ptr @test_count, align 4, !tbaa !5
  %3224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3225 = load i32, ptr %3224, align 4, !tbaa !5
  %3226 = call ptr @s2n_strerror(i32 noundef %3225, ptr noundef @.str.6)
  %3227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  %3229 = call ptr @s2n_strerror_debug(i32 noundef %3228, ptr noundef @.str.6)
  %3230 = call ptr @__errno_location() #13
  %3231 = load i32, ptr %3230, align 4, !tbaa !5
  %3232 = call ptr @strerror(i32 noundef %3231) #12
  %3233 = call ptr @__errno_location() #13
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  %3235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3222, ptr noundef @.str.4, i32 noundef %3223, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 162, ptr noundef %3226, ptr noundef %3229, ptr noundef %3232, i32 noundef %3234) #12
  br label %3253

3236:                                             ; preds = %3214, %3207
  %3237 = load i32, ptr %68, align 4, !tbaa !5
  %3238 = call ptr @__errno_location() #13
  store i32 %3237, ptr %3238, align 4, !tbaa !5
  %3239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3240 = load i32, ptr @test_count, align 4, !tbaa !5
  %3241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3242 = load i32, ptr %3241, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror(i32 noundef %3242, ptr noundef @.str.6)
  %3244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3245 = load i32, ptr %3244, align 4, !tbaa !5
  %3246 = call ptr @s2n_strerror_debug(i32 noundef %3245, ptr noundef @.str.6)
  %3247 = call ptr @__errno_location() #13
  %3248 = load i32, ptr %3247, align 4, !tbaa !5
  %3249 = call ptr @strerror(i32 noundef %3248) #12
  %3250 = call ptr @__errno_location() #13
  %3251 = load i32, ptr %3250, align 4, !tbaa !5
  %3252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3239, ptr noundef @.str.7, i32 noundef %3240, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 162, ptr noundef %3243, ptr noundef %3246, ptr noundef %3249, i32 noundef %3251) #12
  br label %3253

3253:                                             ; preds = %3236, %3219
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #12
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

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

3256:                                             ; No predecessors!
  br label %3257

3257:                                             ; preds = %3256
  br label %3258

3258:                                             ; preds = %3257, %3199
  br label %3259

3259:                                             ; preds = %3258
  br label %3260

3260:                                             ; preds = %3259
  br label %3261

3261:                                             ; preds = %3260
  %3262 = load i32, ptr @test_count, align 4, !tbaa !5
  %3263 = add nsw i32 %3262, 1
  store i32 %3263, ptr @test_count, align 4, !tbaa !5
  %3264 = load ptr, ptr %67, align 8, !tbaa !9
  %3265 = icmp eq ptr %3264, null
  br i1 %3265, label %3266, label %3319

3266:                                             ; preds = %3261
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

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

3275:                                             ; preds = %3268
  %3276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3277 = call i32 @fileno(ptr noundef %3276) #12
  %3278 = call i32 @isatty(i32 noundef %3277) #12
  %3279 = icmp ne i32 %3278, 0
  br i1 %3279, label %3280, label %3297

3280:                                             ; preds = %3275
  %3281 = load i32, ptr %69, align 4, !tbaa !5
  %3282 = call ptr @__errno_location() #13
  store i32 %3281, ptr %3282, align 4, !tbaa !5
  %3283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3284 = load i32, ptr @test_count, align 4, !tbaa !5
  %3285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3286 = load i32, ptr %3285, align 4, !tbaa !5
  %3287 = call ptr @s2n_strerror(i32 noundef %3286, ptr noundef @.str.6)
  %3288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3289 = load i32, ptr %3288, align 4, !tbaa !5
  %3290 = call ptr @s2n_strerror_debug(i32 noundef %3289, ptr noundef @.str.6)
  %3291 = call ptr @__errno_location() #13
  %3292 = load i32, ptr %3291, align 4, !tbaa !5
  %3293 = call ptr @strerror(i32 noundef %3292) #12
  %3294 = call ptr @__errno_location() #13
  %3295 = load i32, ptr %3294, align 4, !tbaa !5
  %3296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3283, ptr noundef @.str.4, i32 noundef %3284, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 163, ptr noundef %3287, ptr noundef %3290, ptr noundef %3293, i32 noundef %3295) #12
  br label %3314

3297:                                             ; preds = %3275, %3268
  %3298 = load i32, ptr %69, align 4, !tbaa !5
  %3299 = call ptr @__errno_location() #13
  store i32 %3298, ptr %3299, align 4, !tbaa !5
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = load i32, ptr @test_count, align 4, !tbaa !5
  %3302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call ptr @s2n_strerror(i32 noundef %3303, ptr noundef @.str.6)
  %3305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3306 = load i32, ptr %3305, align 4, !tbaa !5
  %3307 = call ptr @s2n_strerror_debug(i32 noundef %3306, ptr noundef @.str.6)
  %3308 = call ptr @__errno_location() #13
  %3309 = load i32, ptr %3308, align 4, !tbaa !5
  %3310 = call ptr @strerror(i32 noundef %3309) #12
  %3311 = call ptr @__errno_location() #13
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3300, ptr noundef @.str.7, i32 noundef %3301, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 163, ptr noundef %3304, ptr noundef %3307, ptr noundef %3310, i32 noundef %3312) #12
  br label %3314

3314:                                             ; preds = %3297, %3280
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #12
  br label %3315

3315:                                             ; preds = %3314
  br label %3316

3316:                                             ; preds = %3315
  call void @exit(i32 noundef 1) #14
  unreachable

3317:                                             ; No predecessors!
  br label %3318

3318:                                             ; preds = %3317
  br label %3319

3319:                                             ; preds = %3318, %3261
  br label %3320

3320:                                             ; preds = %3319
  br label %3321

3321:                                             ; preds = %3320
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #12
  store ptr @s2n_ecc_curve_x25519, ptr %70, align 8, !tbaa !9
  br label %3322

3322:                                             ; preds = %3321
  %3323 = load i32, ptr @test_count, align 4, !tbaa !5
  %3324 = add nsw i32 %3323, 1
  store i32 %3324, ptr @test_count, align 4, !tbaa !5
  %3325 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %60, i32 noundef 0)
  %3326 = icmp eq i32 %3325, -1
  br i1 %3326, label %3327, label %3380

3327:                                             ; preds = %3322
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

3329:                                             ; preds = %3328
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #12
  %3330 = call ptr @__errno_location() #13
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  store i32 %3331, ptr %71, align 4, !tbaa !5
  %3332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3333 = call i32 @s2n_print_stacktrace(ptr noundef %3332)
  %3334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3335 = trunc i8 %3334 to i1
  br i1 %3335, label %3336, label %3358

3336:                                             ; preds = %3329
  %3337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3338 = call i32 @fileno(ptr noundef %3337) #12
  %3339 = call i32 @isatty(i32 noundef %3338) #12
  %3340 = icmp ne i32 %3339, 0
  br i1 %3340, label %3341, label %3358

3341:                                             ; preds = %3336
  %3342 = load i32, ptr %71, align 4, !tbaa !5
  %3343 = call ptr @__errno_location() #13
  store i32 %3342, ptr %3343, align 4, !tbaa !5
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3345 = load i32, ptr @test_count, align 4, !tbaa !5
  %3346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3347 = load i32, ptr %3346, align 4, !tbaa !5
  %3348 = call ptr @s2n_strerror(i32 noundef %3347, ptr noundef @.str.6)
  %3349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3350 = load i32, ptr %3349, align 4, !tbaa !5
  %3351 = call ptr @s2n_strerror_debug(i32 noundef %3350, ptr noundef @.str.6)
  %3352 = call ptr @__errno_location() #13
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @strerror(i32 noundef %3353) #12
  %3355 = call ptr @__errno_location() #13
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3344, ptr noundef @.str.4, i32 noundef %3345, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 168, ptr noundef %3348, ptr noundef %3351, ptr noundef %3354, i32 noundef %3356) #12
  br label %3375

3358:                                             ; preds = %3336, %3329
  %3359 = load i32, ptr %71, align 4, !tbaa !5
  %3360 = call ptr @__errno_location() #13
  store i32 %3359, ptr %3360, align 4, !tbaa !5
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = load i32, ptr @test_count, align 4, !tbaa !5
  %3363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3364 = load i32, ptr %3363, align 4, !tbaa !5
  %3365 = call ptr @s2n_strerror(i32 noundef %3364, ptr noundef @.str.6)
  %3366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  %3368 = call ptr @s2n_strerror_debug(i32 noundef %3367, ptr noundef @.str.6)
  %3369 = call ptr @__errno_location() #13
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @strerror(i32 noundef %3370) #12
  %3372 = call ptr @__errno_location() #13
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3361, ptr noundef @.str.7, i32 noundef %3362, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 168, ptr noundef %3365, ptr noundef %3368, ptr noundef %3371, i32 noundef %3373) #12
  br label %3375

3375:                                             ; preds = %3358, %3341
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #12
  br label %3376

3376:                                             ; preds = %3375
  br label %3377

3377:                                             ; preds = %3376
  call void @exit(i32 noundef 1) #14
  unreachable

3378:                                             ; No predecessors!
  br label %3379

3379:                                             ; preds = %3378
  br label %3380

3380:                                             ; preds = %3379, %3322
  br label %3381

3381:                                             ; preds = %3380
  br label %3382

3382:                                             ; preds = %3381
  br label %3383

3383:                                             ; preds = %3382
  %3384 = load i32, ptr @test_count, align 4, !tbaa !5
  %3385 = add nsw i32 %3384, 1
  store i32 %3385, ptr @test_count, align 4, !tbaa !5
  %3386 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %3387 = load ptr, ptr %61, align 8, !tbaa !9
  %3388 = call i32 %3386(ptr noundef %3387, ptr noundef %60)
  %3389 = icmp eq i32 %3388, -1
  br i1 %3389, label %3390, label %3443

3390:                                             ; preds = %3383
  br label %3391

3391:                                             ; preds = %3390
  br label %3392

3392:                                             ; preds = %3391
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #12
  %3393 = call ptr @__errno_location() #13
  %3394 = load i32, ptr %3393, align 4, !tbaa !5
  store i32 %3394, ptr %72, align 4, !tbaa !5
  %3395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3396 = call i32 @s2n_print_stacktrace(ptr noundef %3395)
  %3397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3398 = trunc i8 %3397 to i1
  br i1 %3398, label %3399, label %3421

3399:                                             ; preds = %3392
  %3400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3401 = call i32 @fileno(ptr noundef %3400) #12
  %3402 = call i32 @isatty(i32 noundef %3401) #12
  %3403 = icmp ne i32 %3402, 0
  br i1 %3403, label %3404, label %3421

3404:                                             ; preds = %3399
  %3405 = load i32, ptr %72, align 4, !tbaa !5
  %3406 = call ptr @__errno_location() #13
  store i32 %3405, ptr %3406, align 4, !tbaa !5
  %3407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3408 = load i32, ptr @test_count, align 4, !tbaa !5
  %3409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3410 = load i32, ptr %3409, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror(i32 noundef %3410, ptr noundef @.str.6)
  %3412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3413 = load i32, ptr %3412, align 4, !tbaa !5
  %3414 = call ptr @s2n_strerror_debug(i32 noundef %3413, ptr noundef @.str.6)
  %3415 = call ptr @__errno_location() #13
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call ptr @strerror(i32 noundef %3416) #12
  %3418 = call ptr @__errno_location() #13
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3407, ptr noundef @.str.4, i32 noundef %3408, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 170, ptr noundef %3411, ptr noundef %3414, ptr noundef %3417, i32 noundef %3419) #12
  br label %3438

3421:                                             ; preds = %3399, %3392
  %3422 = load i32, ptr %72, align 4, !tbaa !5
  %3423 = call ptr @__errno_location() #13
  store i32 %3422, ptr %3423, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3427, ptr noundef @.str.6)
  %3429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  %3431 = call ptr @s2n_strerror_debug(i32 noundef %3430, ptr noundef @.str.6)
  %3432 = call ptr @__errno_location() #13
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  %3434 = call ptr @strerror(i32 noundef %3433) #12
  %3435 = call ptr @__errno_location() #13
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3424, ptr noundef @.str.7, i32 noundef %3425, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 170, ptr noundef %3428, ptr noundef %3431, ptr noundef %3434, i32 noundef %3436) #12
  br label %3438

3438:                                             ; preds = %3421, %3404
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #12
  br label %3439

3439:                                             ; preds = %3438
  br label %3440

3440:                                             ; preds = %3439
  call void @exit(i32 noundef 1) #14
  unreachable

3441:                                             ; No predecessors!
  br label %3442

3442:                                             ; preds = %3441
  br label %3443

3443:                                             ; preds = %3442, %3383
  br label %3444

3444:                                             ; preds = %3443
  br label %3445

3445:                                             ; preds = %3444
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #12
  %3446 = load ptr, ptr %61, align 8, !tbaa !9
  %3447 = getelementptr inbounds %struct.s2n_connection, ptr %3446, i32 0, i32 31
  %3448 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %3447, i32 0, i32 3
  store ptr %3448, ptr %73, align 8, !tbaa !9
  br label %3449

3449:                                             ; preds = %3445
  %3450 = load i32, ptr @test_count, align 4, !tbaa !5
  %3451 = add nsw i32 %3450, 1
  store i32 %3451, ptr @test_count, align 4, !tbaa !5
  %3452 = load ptr, ptr %73, align 8, !tbaa !9
  %3453 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %3452, i32 0, i32 0
  %3454 = load ptr, ptr %3453, align 8, !tbaa !22
  %3455 = load ptr, ptr %70, align 8, !tbaa !9
  %3456 = icmp eq ptr %3454, %3455
  br i1 %3456, label %3457, label %3510

3457:                                             ; preds = %3449
  br label %3458

3458:                                             ; preds = %3457
  br label %3459

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

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

3471:                                             ; preds = %3466
  %3472 = load i32, ptr %74, align 4, !tbaa !5
  %3473 = call ptr @__errno_location() #13
  store i32 %3472, ptr %3473, align 4, !tbaa !5
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = load i32, ptr @test_count, align 4, !tbaa !5
  %3476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror(i32 noundef %3477, ptr noundef @.str.6)
  %3479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call ptr @s2n_strerror_debug(i32 noundef %3480, ptr noundef @.str.6)
  %3482 = call ptr @__errno_location() #13
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call ptr @strerror(i32 noundef %3483) #12
  %3485 = call ptr @__errno_location() #13
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3474, ptr noundef @.str.4, i32 noundef %3475, ptr noundef @.str.37, ptr noundef @.str.3, i32 noundef 173, ptr noundef %3478, ptr noundef %3481, ptr noundef %3484, i32 noundef %3486) #12
  br label %3505

3488:                                             ; preds = %3466, %3459
  %3489 = load i32, ptr %74, align 4, !tbaa !5
  %3490 = call ptr @__errno_location() #13
  store i32 %3489, ptr %3490, align 4, !tbaa !5
  %3491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3492 = load i32, ptr @test_count, align 4, !tbaa !5
  %3493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  %3495 = call ptr @s2n_strerror(i32 noundef %3494, ptr noundef @.str.6)
  %3496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror_debug(i32 noundef %3497, ptr noundef @.str.6)
  %3499 = call ptr @__errno_location() #13
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @strerror(i32 noundef %3500) #12
  %3502 = call ptr @__errno_location() #13
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3491, ptr noundef @.str.7, i32 noundef %3492, ptr noundef @.str.37, ptr noundef @.str.3, i32 noundef 173, ptr noundef %3495, ptr noundef %3498, ptr noundef %3501, i32 noundef %3503) #12
  br label %3505

3505:                                             ; preds = %3488, %3471
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #12
  br label %3506

3506:                                             ; preds = %3505
  br label %3507

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

3508:                                             ; No predecessors!
  br label %3509

3509:                                             ; preds = %3508
  br label %3510

3510:                                             ; preds = %3509, %3449
  br label %3511

3511:                                             ; preds = %3510
  br label %3512

3512:                                             ; preds = %3511
  br label %3513

3513:                                             ; preds = %3512
  %3514 = load i32, ptr @test_count, align 4, !tbaa !5
  %3515 = add nsw i32 %3514, 1
  store i32 %3515, ptr @test_count, align 4, !tbaa !5
  %3516 = call i32 @s2n_stuffer_free(ptr noundef %60)
  %3517 = icmp eq i32 %3516, -1
  br i1 %3517, label %3518, label %3571

3518:                                             ; preds = %3513
  br label %3519

3519:                                             ; preds = %3518
  br label %3520

3520:                                             ; preds = %3519
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #12
  %3521 = call ptr @__errno_location() #13
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  store i32 %3522, ptr %75, align 4, !tbaa !5
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = call i32 @s2n_print_stacktrace(ptr noundef %3523)
  %3525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3526 = trunc i8 %3525 to i1
  br i1 %3526, label %3527, label %3549

3527:                                             ; preds = %3520
  %3528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3529 = call i32 @fileno(ptr noundef %3528) #12
  %3530 = call i32 @isatty(i32 noundef %3529) #12
  %3531 = icmp ne i32 %3530, 0
  br i1 %3531, label %3532, label %3549

3532:                                             ; preds = %3527
  %3533 = load i32, ptr %75, align 4, !tbaa !5
  %3534 = call ptr @__errno_location() #13
  store i32 %3533, ptr %3534, align 4, !tbaa !5
  %3535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3536 = load i32, ptr @test_count, align 4, !tbaa !5
  %3537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3538 = load i32, ptr %3537, align 4, !tbaa !5
  %3539 = call ptr @s2n_strerror(i32 noundef %3538, ptr noundef @.str.6)
  %3540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3541 = load i32, ptr %3540, align 4, !tbaa !5
  %3542 = call ptr @s2n_strerror_debug(i32 noundef %3541, ptr noundef @.str.6)
  %3543 = call ptr @__errno_location() #13
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  %3545 = call ptr @strerror(i32 noundef %3544) #12
  %3546 = call ptr @__errno_location() #13
  %3547 = load i32, ptr %3546, align 4, !tbaa !5
  %3548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3535, ptr noundef @.str.4, i32 noundef %3536, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 175, ptr noundef %3539, ptr noundef %3542, ptr noundef %3545, i32 noundef %3547) #12
  br label %3566

3549:                                             ; preds = %3527, %3520
  %3550 = load i32, ptr %75, align 4, !tbaa !5
  %3551 = call ptr @__errno_location() #13
  store i32 %3550, ptr %3551, align 4, !tbaa !5
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = load i32, ptr @test_count, align 4, !tbaa !5
  %3554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3555 = load i32, ptr %3554, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror(i32 noundef %3555, ptr noundef @.str.6)
  %3557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror_debug(i32 noundef %3558, ptr noundef @.str.6)
  %3560 = call ptr @__errno_location() #13
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call ptr @strerror(i32 noundef %3561) #12
  %3563 = call ptr @__errno_location() #13
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3552, ptr noundef @.str.7, i32 noundef %3553, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 175, ptr noundef %3556, ptr noundef %3559, ptr noundef %3562, i32 noundef %3564) #12
  br label %3566

3566:                                             ; preds = %3549, %3532
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #12
  br label %3567

3567:                                             ; preds = %3566
  br label %3568

3568:                                             ; preds = %3567
  call void @exit(i32 noundef 1) #14
  unreachable

3569:                                             ; No predecessors!
  br label %3570

3570:                                             ; preds = %3569
  br label %3571

3571:                                             ; preds = %3570, %3513
  br label %3572

3572:                                             ; preds = %3571
  br label %3573

3573:                                             ; preds = %3572
  br label %3574

3574:                                             ; preds = %3573
  %3575 = load i32, ptr @test_count, align 4, !tbaa !5
  %3576 = add nsw i32 %3575, 1
  store i32 %3576, ptr @test_count, align 4, !tbaa !5
  %3577 = load ptr, ptr %61, align 8, !tbaa !9
  %3578 = call i32 @s2n_connection_free(ptr noundef %3577)
  %3579 = icmp eq i32 %3578, -1
  br i1 %3579, label %3580, label %3633

3580:                                             ; preds = %3574
  br label %3581

3581:                                             ; preds = %3580
  br label %3582

3582:                                             ; preds = %3581
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #12
  %3583 = call ptr @__errno_location() #13
  %3584 = load i32, ptr %3583, align 4, !tbaa !5
  store i32 %3584, ptr %76, align 4, !tbaa !5
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = call i32 @s2n_print_stacktrace(ptr noundef %3585)
  %3587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3588 = trunc i8 %3587 to i1
  br i1 %3588, label %3589, label %3611

3589:                                             ; preds = %3582
  %3590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3591 = call i32 @fileno(ptr noundef %3590) #12
  %3592 = call i32 @isatty(i32 noundef %3591) #12
  %3593 = icmp ne i32 %3592, 0
  br i1 %3593, label %3594, label %3611

3594:                                             ; preds = %3589
  %3595 = load i32, ptr %76, align 4, !tbaa !5
  %3596 = call ptr @__errno_location() #13
  store i32 %3595, ptr %3596, align 4, !tbaa !5
  %3597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3598 = load i32, ptr @test_count, align 4, !tbaa !5
  %3599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = call ptr @s2n_strerror(i32 noundef %3600, ptr noundef @.str.6)
  %3602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = call ptr @s2n_strerror_debug(i32 noundef %3603, ptr noundef @.str.6)
  %3605 = call ptr @__errno_location() #13
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  %3607 = call ptr @strerror(i32 noundef %3606) #12
  %3608 = call ptr @__errno_location() #13
  %3609 = load i32, ptr %3608, align 4, !tbaa !5
  %3610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3597, ptr noundef @.str.4, i32 noundef %3598, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 176, ptr noundef %3601, ptr noundef %3604, ptr noundef %3607, i32 noundef %3609) #12
  br label %3628

3611:                                             ; preds = %3589, %3582
  %3612 = load i32, ptr %76, align 4, !tbaa !5
  %3613 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %3622 = call ptr @__errno_location() #13
  %3623 = load i32, ptr %3622, align 4, !tbaa !5
  %3624 = call ptr @strerror(i32 noundef %3623) #12
  %3625 = call ptr @__errno_location() #13
  %3626 = load i32, ptr %3625, align 4, !tbaa !5
  %3627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3614, ptr noundef @.str.7, i32 noundef %3615, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 176, ptr noundef %3618, ptr noundef %3621, ptr noundef %3624, i32 noundef %3626) #12
  br label %3628

3628:                                             ; preds = %3611, %3594
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #12
  br label %3629

3629:                                             ; preds = %3628
  br label %3630

3630:                                             ; preds = %3629
  call void @exit(i32 noundef 1) #14
  unreachable

3631:                                             ; No predecessors!
  br label %3632

3632:                                             ; preds = %3631
  br label %3633

3633:                                             ; preds = %3632, %3574
  br label %3634

3634:                                             ; preds = %3633
  br label %3635

3635:                                             ; preds = %3634
  br label %3636

3636:                                             ; preds = %3635
  %3637 = load i32, ptr @test_count, align 4, !tbaa !5
  %3638 = add nsw i32 %3637, 1
  store i32 %3638, ptr @test_count, align 4, !tbaa !5
  %3639 = load ptr, ptr %62, align 8, !tbaa !9
  %3640 = call i32 @s2n_config_free(ptr noundef %3639)
  %3641 = icmp eq i32 %3640, -1
  br i1 %3641, label %3642, label %3695

3642:                                             ; preds = %3636
  br label %3643

3643:                                             ; preds = %3642
  br label %3644

3644:                                             ; preds = %3643
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #12
  %3645 = call ptr @__errno_location() #13
  %3646 = load i32, ptr %3645, align 4, !tbaa !5
  store i32 %3646, ptr %77, align 4, !tbaa !5
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = call i32 @s2n_print_stacktrace(ptr noundef %3647)
  %3649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3650 = trunc i8 %3649 to i1
  br i1 %3650, label %3651, label %3673

3651:                                             ; preds = %3644
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = call i32 @fileno(ptr noundef %3652) #12
  %3654 = call i32 @isatty(i32 noundef %3653) #12
  %3655 = icmp ne i32 %3654, 0
  br i1 %3655, label %3656, label %3673

3656:                                             ; preds = %3651
  %3657 = load i32, ptr %77, align 4, !tbaa !5
  %3658 = call ptr @__errno_location() #13
  store i32 %3657, ptr %3658, align 4, !tbaa !5
  %3659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3660 = load i32, ptr @test_count, align 4, !tbaa !5
  %3661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3662 = load i32, ptr %3661, align 4, !tbaa !5
  %3663 = call ptr @s2n_strerror(i32 noundef %3662, ptr noundef @.str.6)
  %3664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3665 = load i32, ptr %3664, align 4, !tbaa !5
  %3666 = call ptr @s2n_strerror_debug(i32 noundef %3665, ptr noundef @.str.6)
  %3667 = call ptr @__errno_location() #13
  %3668 = load i32, ptr %3667, align 4, !tbaa !5
  %3669 = call ptr @strerror(i32 noundef %3668) #12
  %3670 = call ptr @__errno_location() #13
  %3671 = load i32, ptr %3670, align 4, !tbaa !5
  %3672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3659, ptr noundef @.str.4, i32 noundef %3660, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 177, ptr noundef %3663, ptr noundef %3666, ptr noundef %3669, i32 noundef %3671) #12
  br label %3690

3673:                                             ; preds = %3651, %3644
  %3674 = load i32, ptr %77, align 4, !tbaa !5
  %3675 = call ptr @__errno_location() #13
  store i32 %3674, ptr %3675, align 4, !tbaa !5
  %3676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3677 = load i32, ptr @test_count, align 4, !tbaa !5
  %3678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  %3680 = call ptr @s2n_strerror(i32 noundef %3679, ptr noundef @.str.6)
  %3681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3682 = load i32, ptr %3681, align 4, !tbaa !5
  %3683 = call ptr @s2n_strerror_debug(i32 noundef %3682, ptr noundef @.str.6)
  %3684 = call ptr @__errno_location() #13
  %3685 = load i32, ptr %3684, align 4, !tbaa !5
  %3686 = call ptr @strerror(i32 noundef %3685) #12
  %3687 = call ptr @__errno_location() #13
  %3688 = load i32, ptr %3687, align 4, !tbaa !5
  %3689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3676, ptr noundef @.str.7, i32 noundef %3677, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 177, ptr noundef %3680, ptr noundef %3683, ptr noundef %3686, i32 noundef %3688) #12
  br label %3690

3690:                                             ; preds = %3673, %3656
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #12
  br label %3691

3691:                                             ; preds = %3690
  br label %3692

3692:                                             ; preds = %3691
  call void @exit(i32 noundef 1) #14
  unreachable

3693:                                             ; No predecessors!
  br label %3694

3694:                                             ; preds = %3693
  br label %3695

3695:                                             ; preds = %3694, %3636
  br label %3696

3696:                                             ; preds = %3695
  br label %3697

3697:                                             ; preds = %3696
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %60) #12
  br label %3698

3698:                                             ; preds = %3697, %2948
  %3699 = call i32 (...) @s2n_is_evp_apis_supported()
  %3700 = icmp ne i32 %3699, 0
  br i1 %3700, label %3701, label %5364

3701:                                             ; preds = %3698
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #12
  store ptr null, ptr %78, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #12
  store ptr null, ptr %79, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %80) #12
  call void @llvm.memset.p0.i64(ptr align 8 %80, i8 0, i64 40, i1 false)
  br label %3702

3702:                                             ; preds = %3701
  %3703 = load i32, ptr @test_count, align 4, !tbaa !5
  %3704 = add nsw i32 %3703, 1
  store i32 %3704, ptr @test_count, align 4, !tbaa !5
  %3705 = call ptr @s2n_config_new()
  store ptr %3705, ptr %79, align 8, !tbaa !9
  %3706 = icmp eq ptr %3705, null
  br i1 %3706, label %3707, label %3760

3707:                                             ; preds = %3702
  br label %3708

3708:                                             ; preds = %3707
  br label %3709

3709:                                             ; preds = %3708
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #12
  %3710 = call ptr @__errno_location() #13
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  store i32 %3711, ptr %81, align 4, !tbaa !5
  %3712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3713 = call i32 @s2n_print_stacktrace(ptr noundef %3712)
  %3714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3715 = trunc i8 %3714 to i1
  br i1 %3715, label %3716, label %3738

3716:                                             ; preds = %3709
  %3717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3718 = call i32 @fileno(ptr noundef %3717) #12
  %3719 = call i32 @isatty(i32 noundef %3718) #12
  %3720 = icmp ne i32 %3719, 0
  br i1 %3720, label %3721, label %3738

3721:                                             ; preds = %3716
  %3722 = load i32, ptr %81, align 4, !tbaa !5
  %3723 = call ptr @__errno_location() #13
  store i32 %3722, ptr %3723, align 4, !tbaa !5
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = load i32, ptr @test_count, align 4, !tbaa !5
  %3726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @s2n_strerror(i32 noundef %3727, ptr noundef @.str.6)
  %3729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call ptr @s2n_strerror_debug(i32 noundef %3730, ptr noundef @.str.6)
  %3732 = call ptr @__errno_location() #13
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call ptr @strerror(i32 noundef %3733) #12
  %3735 = call ptr @__errno_location() #13
  %3736 = load i32, ptr %3735, align 4, !tbaa !5
  %3737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3724, ptr noundef @.str.4, i32 noundef %3725, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 205, ptr noundef %3728, ptr noundef %3731, ptr noundef %3734, i32 noundef %3736) #12
  br label %3755

3738:                                             ; preds = %3716, %3709
  %3739 = load i32, ptr %81, align 4, !tbaa !5
  %3740 = call ptr @__errno_location() #13
  store i32 %3739, ptr %3740, align 4, !tbaa !5
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3744, ptr noundef @.str.6)
  %3746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @s2n_strerror_debug(i32 noundef %3747, ptr noundef @.str.6)
  %3749 = call ptr @__errno_location() #13
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call ptr @strerror(i32 noundef %3750) #12
  %3752 = call ptr @__errno_location() #13
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  %3754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3741, ptr noundef @.str.7, i32 noundef %3742, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 205, ptr noundef %3745, ptr noundef %3748, ptr noundef %3751, i32 noundef %3753) #12
  br label %3755

3755:                                             ; preds = %3738, %3721
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #12
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

3757:                                             ; preds = %3756
  call void @exit(i32 noundef 1) #14
  unreachable

3758:                                             ; No predecessors!
  br label %3759

3759:                                             ; preds = %3758
  br label %3760

3760:                                             ; preds = %3759, %3702
  br label %3761

3761:                                             ; preds = %3760
  br label %3762

3762:                                             ; preds = %3761
  br label %3763

3763:                                             ; preds = %3762
  %3764 = load i32, ptr @test_count, align 4, !tbaa !5
  %3765 = add nsw i32 %3764, 1
  store i32 %3765, ptr @test_count, align 4, !tbaa !5
  %3766 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3766, ptr %78, align 8, !tbaa !9
  %3767 = icmp eq ptr %3766, null
  br i1 %3767, label %3768, label %3821

3768:                                             ; preds = %3763
  br label %3769

3769:                                             ; preds = %3768
  br label %3770

3770:                                             ; preds = %3769
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #12
  %3771 = call ptr @__errno_location() #13
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  store i32 %3772, ptr %82, align 4, !tbaa !5
  %3773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3774 = call i32 @s2n_print_stacktrace(ptr noundef %3773)
  %3775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3776 = trunc i8 %3775 to i1
  br i1 %3776, label %3777, label %3799

3777:                                             ; preds = %3770
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @fileno(ptr noundef %3778) #12
  %3780 = call i32 @isatty(i32 noundef %3779) #12
  %3781 = icmp ne i32 %3780, 0
  br i1 %3781, label %3782, label %3799

3782:                                             ; preds = %3777
  %3783 = load i32, ptr %82, align 4, !tbaa !5
  %3784 = call ptr @__errno_location() #13
  store i32 %3783, ptr %3784, align 4, !tbaa !5
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = load i32, ptr @test_count, align 4, !tbaa !5
  %3787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  %3789 = call ptr @s2n_strerror(i32 noundef %3788, ptr noundef @.str.6)
  %3790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3791 = load i32, ptr %3790, align 4, !tbaa !5
  %3792 = call ptr @s2n_strerror_debug(i32 noundef %3791, ptr noundef @.str.6)
  %3793 = call ptr @__errno_location() #13
  %3794 = load i32, ptr %3793, align 4, !tbaa !5
  %3795 = call ptr @strerror(i32 noundef %3794) #12
  %3796 = call ptr @__errno_location() #13
  %3797 = load i32, ptr %3796, align 4, !tbaa !5
  %3798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3785, ptr noundef @.str.4, i32 noundef %3786, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 206, ptr noundef %3789, ptr noundef %3792, ptr noundef %3795, i32 noundef %3797) #12
  br label %3816

3799:                                             ; preds = %3777, %3770
  %3800 = load i32, ptr %82, align 4, !tbaa !5
  %3801 = call ptr @__errno_location() #13
  store i32 %3800, ptr %3801, align 4, !tbaa !5
  %3802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3803 = load i32, ptr @test_count, align 4, !tbaa !5
  %3804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3805 = load i32, ptr %3804, align 4, !tbaa !5
  %3806 = call ptr @s2n_strerror(i32 noundef %3805, ptr noundef @.str.6)
  %3807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3808 = load i32, ptr %3807, align 4, !tbaa !5
  %3809 = call ptr @s2n_strerror_debug(i32 noundef %3808, ptr noundef @.str.6)
  %3810 = call ptr @__errno_location() #13
  %3811 = load i32, ptr %3810, align 4, !tbaa !5
  %3812 = call ptr @strerror(i32 noundef %3811) #12
  %3813 = call ptr @__errno_location() #13
  %3814 = load i32, ptr %3813, align 4, !tbaa !5
  %3815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3802, ptr noundef @.str.7, i32 noundef %3803, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 206, ptr noundef %3806, ptr noundef %3809, ptr noundef %3812, i32 noundef %3814) #12
  br label %3816

3816:                                             ; preds = %3799, %3782
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #12
  br label %3817

3817:                                             ; preds = %3816
  br label %3818

3818:                                             ; preds = %3817
  call void @exit(i32 noundef 1) #14
  unreachable

3819:                                             ; No predecessors!
  br label %3820

3820:                                             ; preds = %3819
  br label %3821

3821:                                             ; preds = %3820, %3763
  br label %3822

3822:                                             ; preds = %3821
  br label %3823

3823:                                             ; preds = %3822
  br label %3824

3824:                                             ; preds = %3823
  %3825 = load i32, ptr @test_count, align 4, !tbaa !5
  %3826 = add nsw i32 %3825, 1
  store i32 %3826, ptr @test_count, align 4, !tbaa !5
  %3827 = load ptr, ptr %79, align 8, !tbaa !9
  %3828 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3827, ptr noundef @.str.39)
  %3829 = icmp eq i32 %3828, -1
  br i1 %3829, label %3830, label %3883

3830:                                             ; preds = %3824
  br label %3831

3831:                                             ; preds = %3830
  br label %3832

3832:                                             ; preds = %3831
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #12
  %3833 = call ptr @__errno_location() #13
  %3834 = load i32, ptr %3833, align 4, !tbaa !5
  store i32 %3834, ptr %83, align 4, !tbaa !5
  %3835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3836 = call i32 @s2n_print_stacktrace(ptr noundef %3835)
  %3837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3838 = trunc i8 %3837 to i1
  br i1 %3838, label %3839, label %3861

3839:                                             ; preds = %3832
  %3840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3841 = call i32 @fileno(ptr noundef %3840) #12
  %3842 = call i32 @isatty(i32 noundef %3841) #12
  %3843 = icmp ne i32 %3842, 0
  br i1 %3843, label %3844, label %3861

3844:                                             ; preds = %3839
  %3845 = load i32, ptr %83, align 4, !tbaa !5
  %3846 = call ptr @__errno_location() #13
  store i32 %3845, ptr %3846, align 4, !tbaa !5
  %3847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3848 = load i32, ptr @test_count, align 4, !tbaa !5
  %3849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3850 = load i32, ptr %3849, align 4, !tbaa !5
  %3851 = call ptr @s2n_strerror(i32 noundef %3850, ptr noundef @.str.6)
  %3852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3853 = load i32, ptr %3852, align 4, !tbaa !5
  %3854 = call ptr @s2n_strerror_debug(i32 noundef %3853, ptr noundef @.str.6)
  %3855 = call ptr @__errno_location() #13
  %3856 = load i32, ptr %3855, align 4, !tbaa !5
  %3857 = call ptr @strerror(i32 noundef %3856) #12
  %3858 = call ptr @__errno_location() #13
  %3859 = load i32, ptr %3858, align 4, !tbaa !5
  %3860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3847, ptr noundef @.str.4, i32 noundef %3848, ptr noundef @.str.40, ptr noundef @.str.3, i32 noundef 208, ptr noundef %3851, ptr noundef %3854, ptr noundef %3857, i32 noundef %3859) #12
  br label %3878

3861:                                             ; preds = %3839, %3832
  %3862 = load i32, ptr %83, align 4, !tbaa !5
  %3863 = call ptr @__errno_location() #13
  store i32 %3862, ptr %3863, align 4, !tbaa !5
  %3864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3865 = load i32, ptr @test_count, align 4, !tbaa !5
  %3866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3867 = load i32, ptr %3866, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror(i32 noundef %3867, ptr noundef @.str.6)
  %3869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3870 = load i32, ptr %3869, align 4, !tbaa !5
  %3871 = call ptr @s2n_strerror_debug(i32 noundef %3870, ptr noundef @.str.6)
  %3872 = call ptr @__errno_location() #13
  %3873 = load i32, ptr %3872, align 4, !tbaa !5
  %3874 = call ptr @strerror(i32 noundef %3873) #12
  %3875 = call ptr @__errno_location() #13
  %3876 = load i32, ptr %3875, align 4, !tbaa !5
  %3877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3864, ptr noundef @.str.7, i32 noundef %3865, ptr noundef @.str.40, ptr noundef @.str.3, i32 noundef 208, ptr noundef %3868, ptr noundef %3871, ptr noundef %3874, i32 noundef %3876) #12
  br label %3878

3878:                                             ; preds = %3861, %3844
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #12
  br label %3879

3879:                                             ; preds = %3878
  br label %3880

3880:                                             ; preds = %3879
  call void @exit(i32 noundef 1) #14
  unreachable

3881:                                             ; No predecessors!
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

3883:                                             ; preds = %3882, %3824
  br label %3884

3884:                                             ; preds = %3883
  br label %3885

3885:                                             ; preds = %3884
  br label %3886

3886:                                             ; preds = %3885
  %3887 = load i32, ptr @test_count, align 4, !tbaa !5
  %3888 = add nsw i32 %3887, 1
  store i32 %3888, ptr @test_count, align 4, !tbaa !5
  %3889 = load ptr, ptr %78, align 8, !tbaa !9
  %3890 = load ptr, ptr %79, align 8, !tbaa !9
  %3891 = call i32 @s2n_connection_set_config(ptr noundef %3889, ptr noundef %3890)
  %3892 = icmp eq i32 %3891, -1
  br i1 %3892, label %3893, label %3946

3893:                                             ; preds = %3886
  br label %3894

3894:                                             ; preds = %3893
  br label %3895

3895:                                             ; preds = %3894
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #12
  %3896 = call ptr @__errno_location() #13
  %3897 = load i32, ptr %3896, align 4, !tbaa !5
  store i32 %3897, ptr %84, align 4, !tbaa !5
  %3898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3899 = call i32 @s2n_print_stacktrace(ptr noundef %3898)
  %3900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3901 = trunc i8 %3900 to i1
  br i1 %3901, label %3902, label %3924

3902:                                             ; preds = %3895
  %3903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3904 = call i32 @fileno(ptr noundef %3903) #12
  %3905 = call i32 @isatty(i32 noundef %3904) #12
  %3906 = icmp ne i32 %3905, 0
  br i1 %3906, label %3907, label %3924

3907:                                             ; preds = %3902
  %3908 = load i32, ptr %84, align 4, !tbaa !5
  %3909 = call ptr @__errno_location() #13
  store i32 %3908, ptr %3909, align 4, !tbaa !5
  %3910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3911 = load i32, ptr @test_count, align 4, !tbaa !5
  %3912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3913 = load i32, ptr %3912, align 4, !tbaa !5
  %3914 = call ptr @s2n_strerror(i32 noundef %3913, ptr noundef @.str.6)
  %3915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call ptr @s2n_strerror_debug(i32 noundef %3916, ptr noundef @.str.6)
  %3918 = call ptr @__errno_location() #13
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call ptr @strerror(i32 noundef %3919) #12
  %3921 = call ptr @__errno_location() #13
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3910, ptr noundef @.str.4, i32 noundef %3911, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 209, ptr noundef %3914, ptr noundef %3917, ptr noundef %3920, i32 noundef %3922) #12
  br label %3941

3924:                                             ; preds = %3902, %3895
  %3925 = load i32, ptr %84, align 4, !tbaa !5
  %3926 = call ptr @__errno_location() #13
  store i32 %3925, ptr %3926, align 4, !tbaa !5
  %3927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3928 = load i32, ptr @test_count, align 4, !tbaa !5
  %3929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3930 = load i32, ptr %3929, align 4, !tbaa !5
  %3931 = call ptr @s2n_strerror(i32 noundef %3930, ptr noundef @.str.6)
  %3932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3933 = load i32, ptr %3932, align 4, !tbaa !5
  %3934 = call ptr @s2n_strerror_debug(i32 noundef %3933, ptr noundef @.str.6)
  %3935 = call ptr @__errno_location() #13
  %3936 = load i32, ptr %3935, align 4, !tbaa !5
  %3937 = call ptr @strerror(i32 noundef %3936) #12
  %3938 = call ptr @__errno_location() #13
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  %3940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3927, ptr noundef @.str.7, i32 noundef %3928, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 209, ptr noundef %3931, ptr noundef %3934, ptr noundef %3937, i32 noundef %3939) #12
  br label %3941

3941:                                             ; preds = %3924, %3907
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #12
  br label %3942

3942:                                             ; preds = %3941
  br label %3943

3943:                                             ; preds = %3942
  call void @exit(i32 noundef 1) #14
  unreachable

3944:                                             ; No predecessors!
  br label %3945

3945:                                             ; preds = %3944
  br label %3946

3946:                                             ; preds = %3945, %3886
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947
  br label %3949

3949:                                             ; preds = %3948
  %3950 = load i32, ptr @test_count, align 4, !tbaa !5
  %3951 = add nsw i32 %3950, 1
  store i32 %3951, ptr @test_count, align 4, !tbaa !5
  %3952 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %80, i32 noundef 0)
  %3953 = icmp eq i32 %3952, -1
  br i1 %3953, label %3954, label %4007

3954:                                             ; preds = %3949
  br label %3955

3955:                                             ; preds = %3954
  br label %3956

3956:                                             ; preds = %3955
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #12
  %3957 = call ptr @__errno_location() #13
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  store i32 %3958, ptr %85, align 4, !tbaa !5
  %3959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3960 = call i32 @s2n_print_stacktrace(ptr noundef %3959)
  %3961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3962 = trunc i8 %3961 to i1
  br i1 %3962, label %3963, label %3985

3963:                                             ; preds = %3956
  %3964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3965 = call i32 @fileno(ptr noundef %3964) #12
  %3966 = call i32 @isatty(i32 noundef %3965) #12
  %3967 = icmp ne i32 %3966, 0
  br i1 %3967, label %3968, label %3985

3968:                                             ; preds = %3963
  %3969 = load i32, ptr %85, align 4, !tbaa !5
  %3970 = call ptr @__errno_location() #13
  store i32 %3969, ptr %3970, align 4, !tbaa !5
  %3971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3972 = load i32, ptr @test_count, align 4, !tbaa !5
  %3973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @s2n_strerror(i32 noundef %3974, ptr noundef @.str.6)
  %3976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call ptr @s2n_strerror_debug(i32 noundef %3977, ptr noundef @.str.6)
  %3979 = call ptr @__errno_location() #13
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call ptr @strerror(i32 noundef %3980) #12
  %3982 = call ptr @__errno_location() #13
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3971, ptr noundef @.str.4, i32 noundef %3972, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 211, ptr noundef %3975, ptr noundef %3978, ptr noundef %3981, i32 noundef %3983) #12
  br label %4002

3985:                                             ; preds = %3963, %3956
  %3986 = load i32, ptr %85, align 4, !tbaa !5
  %3987 = call ptr @__errno_location() #13
  store i32 %3986, ptr %3987, align 4, !tbaa !5
  %3988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3989 = load i32, ptr @test_count, align 4, !tbaa !5
  %3990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3991 = load i32, ptr %3990, align 4, !tbaa !5
  %3992 = call ptr @s2n_strerror(i32 noundef %3991, ptr noundef @.str.6)
  %3993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3994 = load i32, ptr %3993, align 4, !tbaa !5
  %3995 = call ptr @s2n_strerror_debug(i32 noundef %3994, ptr noundef @.str.6)
  %3996 = call ptr @__errno_location() #13
  %3997 = load i32, ptr %3996, align 4, !tbaa !5
  %3998 = call ptr @strerror(i32 noundef %3997) #12
  %3999 = call ptr @__errno_location() #13
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  %4001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3988, ptr noundef @.str.7, i32 noundef %3989, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 211, ptr noundef %3992, ptr noundef %3995, ptr noundef %3998, i32 noundef %4000) #12
  br label %4002

4002:                                             ; preds = %3985, %3968
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #12
  br label %4003

4003:                                             ; preds = %4002
  br label %4004

4004:                                             ; preds = %4003
  call void @exit(i32 noundef 1) #14
  unreachable

4005:                                             ; No predecessors!
  br label %4006

4006:                                             ; preds = %4005
  br label %4007

4007:                                             ; preds = %4006, %3949
  br label %4008

4008:                                             ; preds = %4007
  br label %4009

4009:                                             ; preds = %4008
  %4010 = load ptr, ptr %78, align 8, !tbaa !9
  %4011 = getelementptr inbounds %struct.s2n_connection, ptr %4010, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %4011, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #12
  store ptr null, ptr %86, align 8, !tbaa !9
  br label %4012

4012:                                             ; preds = %4009
  %4013 = load i32, ptr @test_count, align 4, !tbaa !5
  %4014 = add nsw i32 %4013, 1
  store i32 %4014, ptr @test_count, align 4, !tbaa !5
  %4015 = load ptr, ptr %78, align 8, !tbaa !9
  %4016 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %4015, ptr noundef %86)
  %4017 = icmp eq i32 %4016, -1
  br i1 %4017, label %4018, label %4071

4018:                                             ; preds = %4012
  br label %4019

4019:                                             ; preds = %4018
  br label %4020

4020:                                             ; preds = %4019
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #12
  %4021 = call ptr @__errno_location() #13
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  store i32 %4022, ptr %87, align 4, !tbaa !5
  %4023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4024 = call i32 @s2n_print_stacktrace(ptr noundef %4023)
  %4025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4026 = trunc i8 %4025 to i1
  br i1 %4026, label %4027, label %4049

4027:                                             ; preds = %4020
  %4028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4029 = call i32 @fileno(ptr noundef %4028) #12
  %4030 = call i32 @isatty(i32 noundef %4029) #12
  %4031 = icmp ne i32 %4030, 0
  br i1 %4031, label %4032, label %4049

4032:                                             ; preds = %4027
  %4033 = load i32, ptr %87, align 4, !tbaa !5
  %4034 = call ptr @__errno_location() #13
  store i32 %4033, ptr %4034, align 4, !tbaa !5
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = load i32, ptr @test_count, align 4, !tbaa !5
  %4037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4038 = load i32, ptr %4037, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror(i32 noundef %4038, ptr noundef @.str.6)
  %4040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call ptr @s2n_strerror_debug(i32 noundef %4041, ptr noundef @.str.6)
  %4043 = call ptr @__errno_location() #13
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call ptr @strerror(i32 noundef %4044) #12
  %4046 = call ptr @__errno_location() #13
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4035, ptr noundef @.str.4, i32 noundef %4036, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 217, ptr noundef %4039, ptr noundef %4042, ptr noundef %4045, i32 noundef %4047) #12
  br label %4066

4049:                                             ; preds = %4027, %4020
  %4050 = load i32, ptr %87, align 4, !tbaa !5
  %4051 = call ptr @__errno_location() #13
  store i32 %4050, ptr %4051, align 4, !tbaa !5
  %4052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4053 = load i32, ptr @test_count, align 4, !tbaa !5
  %4054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4055 = load i32, ptr %4054, align 4, !tbaa !5
  %4056 = call ptr @s2n_strerror(i32 noundef %4055, ptr noundef @.str.6)
  %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_debug(i32 noundef %4058, ptr noundef @.str.6)
  %4060 = call ptr @__errno_location() #13
  %4061 = load i32, ptr %4060, align 4, !tbaa !5
  %4062 = call ptr @strerror(i32 noundef %4061) #12
  %4063 = call ptr @__errno_location() #13
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4052, ptr noundef @.str.7, i32 noundef %4053, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 217, ptr noundef %4056, ptr noundef %4059, ptr noundef %4062, i32 noundef %4064) #12
  br label %4066

4066:                                             ; preds = %4049, %4032
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #12
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

4068:                                             ; preds = %4067
  call void @exit(i32 noundef 1) #14
  unreachable

4069:                                             ; No predecessors!
  br label %4070

4070:                                             ; preds = %4069
  br label %4071

4071:                                             ; preds = %4070, %4012
  br label %4072

4072:                                             ; preds = %4071
  br label %4073

4073:                                             ; preds = %4072
  br label %4074

4074:                                             ; preds = %4073
  %4075 = load i32, ptr @test_count, align 4, !tbaa !5
  %4076 = add nsw i32 %4075, 1
  store i32 %4076, ptr @test_count, align 4, !tbaa !5
  %4077 = load ptr, ptr %86, align 8, !tbaa !9
  %4078 = icmp eq ptr %4077, null
  br i1 %4078, label %4079, label %4132

4079:                                             ; preds = %4074
  br label %4080

4080:                                             ; preds = %4079
  br label %4081

4081:                                             ; preds = %4080
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #12
  %4082 = call ptr @__errno_location() #13
  %4083 = load i32, ptr %4082, align 4, !tbaa !5
  store i32 %4083, ptr %88, align 4, !tbaa !5
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = call i32 @s2n_print_stacktrace(ptr noundef %4084)
  %4086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4087 = trunc i8 %4086 to i1
  br i1 %4087, label %4088, label %4110

4088:                                             ; preds = %4081
  %4089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4090 = call i32 @fileno(ptr noundef %4089) #12
  %4091 = call i32 @isatty(i32 noundef %4090) #12
  %4092 = icmp ne i32 %4091, 0
  br i1 %4092, label %4093, label %4110

4093:                                             ; preds = %4088
  %4094 = load i32, ptr %88, align 4, !tbaa !5
  %4095 = call ptr @__errno_location() #13
  store i32 %4094, ptr %4095, align 4, !tbaa !5
  %4096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4097 = load i32, ptr @test_count, align 4, !tbaa !5
  %4098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  %4100 = call ptr @s2n_strerror(i32 noundef %4099, ptr noundef @.str.6)
  %4101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4102 = load i32, ptr %4101, align 4, !tbaa !5
  %4103 = call ptr @s2n_strerror_debug(i32 noundef %4102, ptr noundef @.str.6)
  %4104 = call ptr @__errno_location() #13
  %4105 = load i32, ptr %4104, align 4, !tbaa !5
  %4106 = call ptr @strerror(i32 noundef %4105) #12
  %4107 = call ptr @__errno_location() #13
  %4108 = load i32, ptr %4107, align 4, !tbaa !5
  %4109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4096, ptr noundef @.str.4, i32 noundef %4097, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 218, ptr noundef %4100, ptr noundef %4103, ptr noundef %4106, i32 noundef %4108) #12
  br label %4127

4110:                                             ; preds = %4088, %4081
  %4111 = load i32, ptr %88, align 4, !tbaa !5
  %4112 = call ptr @__errno_location() #13
  store i32 %4111, ptr %4112, align 4, !tbaa !5
  %4113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4114 = load i32, ptr @test_count, align 4, !tbaa !5
  %4115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call ptr @s2n_strerror(i32 noundef %4116, ptr noundef @.str.6)
  %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_debug(i32 noundef %4119, ptr noundef @.str.6)
  %4121 = call ptr @__errno_location() #13
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = call ptr @strerror(i32 noundef %4122) #12
  %4124 = call ptr @__errno_location() #13
  %4125 = load i32, ptr %4124, align 4, !tbaa !5
  %4126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4113, ptr noundef @.str.7, i32 noundef %4114, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 218, ptr noundef %4117, ptr noundef %4120, ptr noundef %4123, i32 noundef %4125) #12
  br label %4127

4127:                                             ; preds = %4110, %4093
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #12
  br label %4128

4128:                                             ; preds = %4127
  br label %4129

4129:                                             ; preds = %4128
  call void @exit(i32 noundef 1) #14
  unreachable

4130:                                             ; No predecessors!
  br label %4131

4131:                                             ; preds = %4130
  br label %4132

4132:                                             ; preds = %4131, %4074
  br label %4133

4133:                                             ; preds = %4132
  br label %4134

4134:                                             ; preds = %4133
  br label %4135

4135:                                             ; preds = %4134
  %4136 = load i32, ptr @test_count, align 4, !tbaa !5
  %4137 = add nsw i32 %4136, 1
  store i32 %4137, ptr @test_count, align 4, !tbaa !5
  %4138 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %4139 = load ptr, ptr %78, align 8, !tbaa !9
  %4140 = call i32 %4138(ptr noundef %4139, ptr noundef %80)
  %4141 = icmp eq i32 %4140, -1
  br i1 %4141, label %4142, label %4195

4142:                                             ; preds = %4135
  br label %4143

4143:                                             ; preds = %4142
  br label %4144

4144:                                             ; preds = %4143
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #12
  %4145 = call ptr @__errno_location() #13
  %4146 = load i32, ptr %4145, align 4, !tbaa !5
  store i32 %4146, ptr %89, align 4, !tbaa !5
  %4147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4148 = call i32 @s2n_print_stacktrace(ptr noundef %4147)
  %4149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4150 = trunc i8 %4149 to i1
  br i1 %4150, label %4151, label %4173

4151:                                             ; preds = %4144
  %4152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4153 = call i32 @fileno(ptr noundef %4152) #12
  %4154 = call i32 @isatty(i32 noundef %4153) #12
  %4155 = icmp ne i32 %4154, 0
  br i1 %4155, label %4156, label %4173

4156:                                             ; preds = %4151
  %4157 = load i32, ptr %89, align 4, !tbaa !5
  %4158 = call ptr @__errno_location() #13
  store i32 %4157, ptr %4158, align 4, !tbaa !5
  %4159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4160 = load i32, ptr @test_count, align 4, !tbaa !5
  %4161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = call ptr @s2n_strerror(i32 noundef %4162, ptr noundef @.str.6)
  %4164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call ptr @s2n_strerror_debug(i32 noundef %4165, ptr noundef @.str.6)
  %4167 = call ptr @__errno_location() #13
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @strerror(i32 noundef %4168) #12
  %4170 = call ptr @__errno_location() #13
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4159, ptr noundef @.str.4, i32 noundef %4160, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 220, ptr noundef %4163, ptr noundef %4166, ptr noundef %4169, i32 noundef %4171) #12
  br label %4190

4173:                                             ; preds = %4151, %4144
  %4174 = load i32, ptr %89, align 4, !tbaa !5
  %4175 = call ptr @__errno_location() #13
  store i32 %4174, ptr %4175, align 4, !tbaa !5
  %4176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4177 = load i32, ptr @test_count, align 4, !tbaa !5
  %4178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4179 = load i32, ptr %4178, align 4, !tbaa !5
  %4180 = call ptr @s2n_strerror(i32 noundef %4179, ptr noundef @.str.6)
  %4181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4182 = load i32, ptr %4181, align 4, !tbaa !5
  %4183 = call ptr @s2n_strerror_debug(i32 noundef %4182, ptr noundef @.str.6)
  %4184 = call ptr @__errno_location() #13
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  %4186 = call ptr @strerror(i32 noundef %4185) #12
  %4187 = call ptr @__errno_location() #13
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  %4189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4176, ptr noundef @.str.7, i32 noundef %4177, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 220, ptr noundef %4180, ptr noundef %4183, ptr noundef %4186, i32 noundef %4188) #12
  br label %4190

4190:                                             ; preds = %4173, %4156
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #12
  br label %4191

4191:                                             ; preds = %4190
  br label %4192

4192:                                             ; preds = %4191
  call void @exit(i32 noundef 1) #14
  unreachable

4193:                                             ; No predecessors!
  br label %4194

4194:                                             ; preds = %4193
  br label %4195

4195:                                             ; preds = %4194, %4135
  br label %4196

4196:                                             ; preds = %4195
  br label %4197

4197:                                             ; preds = %4196
  br label %4198

4198:                                             ; preds = %4197
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #12
  store i32 32, ptr %90, align 4, !tbaa !5
  %4199 = load i32, ptr %90, align 4, !tbaa !5
  %4200 = icmp ne i32 %4199, 0
  br i1 %4200, label %4201, label %4263

4201:                                             ; preds = %4198
  %4202 = load ptr, ptr %78, align 8, !tbaa !9
  %4203 = getelementptr inbounds %struct.s2n_connection, ptr %4202, i32 0, i32 32
  %4204 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4203, i32 0, i32 13
  %4205 = getelementptr inbounds [32 x i8], ptr %4204, i64 0, i64 0
  %4206 = load i32, ptr %90, align 4, !tbaa !5
  %4207 = sext i32 %4206 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %4205, ptr align 16 @hello_retry_req_random, i64 %4207, i1 false)
  %4208 = icmp eq ptr %4205, null
  br i1 %4208, label %4209, label %4262

4209:                                             ; preds = %4201
  br label %4210

4210:                                             ; preds = %4209
  br label %4211

4211:                                             ; preds = %4210
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #12
  %4212 = call ptr @__errno_location() #13
  %4213 = load i32, ptr %4212, align 4, !tbaa !5
  store i32 %4213, ptr %91, align 4, !tbaa !5
  %4214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4215 = call i32 @s2n_print_stacktrace(ptr noundef %4214)
  %4216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4217 = trunc i8 %4216 to i1
  br i1 %4217, label %4218, label %4240

4218:                                             ; preds = %4211
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = call i32 @fileno(ptr noundef %4219) #12
  %4221 = call i32 @isatty(i32 noundef %4220) #12
  %4222 = icmp ne i32 %4221, 0
  br i1 %4222, label %4223, label %4240

4223:                                             ; preds = %4218
  %4224 = load i32, ptr %91, align 4, !tbaa !5
  %4225 = call ptr @__errno_location() #13
  store i32 %4224, ptr %4225, align 4, !tbaa !5
  %4226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4227 = load i32, ptr @test_count, align 4, !tbaa !5
  %4228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call ptr @s2n_strerror(i32 noundef %4229, ptr noundef @.str.6)
  %4231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @s2n_strerror_debug(i32 noundef %4232, ptr noundef @.str.6)
  %4234 = call ptr @__errno_location() #13
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @strerror(i32 noundef %4235) #12
  %4237 = call ptr @__errno_location() #13
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4226, ptr noundef @.str.4, i32 noundef %4227, ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 223, ptr noundef %4230, ptr noundef %4233, ptr noundef %4236, i32 noundef %4238) #12
  br label %4257

4240:                                             ; preds = %4218, %4211
  %4241 = load i32, ptr %91, align 4, !tbaa !5
  %4242 = call ptr @__errno_location() #13
  store i32 %4241, ptr %4242, align 4, !tbaa !5
  %4243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4244 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4246, ptr noundef @.str.6)
  %4248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4249 = load i32, ptr %4248, align 4, !tbaa !5
  %4250 = call ptr @s2n_strerror_debug(i32 noundef %4249, ptr noundef @.str.6)
  %4251 = call ptr @__errno_location() #13
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = call ptr @strerror(i32 noundef %4252) #12
  %4254 = call ptr @__errno_location() #13
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4243, ptr noundef @.str.7, i32 noundef %4244, ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 223, ptr noundef %4247, ptr noundef %4250, ptr noundef %4253, i32 noundef %4255) #12
  br label %4257

4257:                                             ; preds = %4240, %4223
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #12
  br label %4258

4258:                                             ; preds = %4257
  br label %4259

4259:                                             ; preds = %4258
  call void @exit(i32 noundef 1) #14
  unreachable

4260:                                             ; No predecessors!
  br label %4261

4261:                                             ; preds = %4260
  br label %4262

4262:                                             ; preds = %4261, %4201
  br label %4263

4263:                                             ; preds = %4262, %4198
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #12
  br label %4264

4264:                                             ; preds = %4263
  br label %4265

4265:                                             ; preds = %4264
  br label %4266

4266:                                             ; preds = %4265
  %4267 = load i32, ptr @test_count, align 4, !tbaa !5
  %4268 = add nsw i32 %4267, 1
  store i32 %4268, ptr @test_count, align 4, !tbaa !5
  %4269 = load ptr, ptr %78, align 8, !tbaa !9
  %4270 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %4269, i8 noundef zeroext 34)
  %4271 = icmp eq i32 %4270, -1
  br i1 %4271, label %4272, label %4325

4272:                                             ; preds = %4266
  br label %4273

4273:                                             ; preds = %4272
  br label %4274

4274:                                             ; preds = %4273
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #12
  %4275 = call ptr @__errno_location() #13
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  store i32 %4276, ptr %92, align 4, !tbaa !5
  %4277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4278 = call i32 @s2n_print_stacktrace(ptr noundef %4277)
  %4279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4280 = trunc i8 %4279 to i1
  br i1 %4280, label %4281, label %4303

4281:                                             ; preds = %4274
  %4282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4283 = call i32 @fileno(ptr noundef %4282) #12
  %4284 = call i32 @isatty(i32 noundef %4283) #12
  %4285 = icmp ne i32 %4284, 0
  br i1 %4285, label %4286, label %4303

4286:                                             ; preds = %4281
  %4287 = load i32, ptr %92, align 4, !tbaa !5
  %4288 = call ptr @__errno_location() #13
  store i32 %4287, ptr %4288, align 4, !tbaa !5
  %4289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4290 = load i32, ptr @test_count, align 4, !tbaa !5
  %4291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4292 = load i32, ptr %4291, align 4, !tbaa !5
  %4293 = call ptr @s2n_strerror(i32 noundef %4292, ptr noundef @.str.6)
  %4294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4295 = load i32, ptr %4294, align 4, !tbaa !5
  %4296 = call ptr @s2n_strerror_debug(i32 noundef %4295, ptr noundef @.str.6)
  %4297 = call ptr @__errno_location() #13
  %4298 = load i32, ptr %4297, align 4, !tbaa !5
  %4299 = call ptr @strerror(i32 noundef %4298) #12
  %4300 = call ptr @__errno_location() #13
  %4301 = load i32, ptr %4300, align 4, !tbaa !5
  %4302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4289, ptr noundef @.str.4, i32 noundef %4290, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 224, ptr noundef %4293, ptr noundef %4296, ptr noundef %4299, i32 noundef %4301) #12
  br label %4320

4303:                                             ; preds = %4281, %4274
  %4304 = load i32, ptr %92, align 4, !tbaa !5
  %4305 = call ptr @__errno_location() #13
  store i32 %4304, ptr %4305, align 4, !tbaa !5
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = load i32, ptr @test_count, align 4, !tbaa !5
  %4308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4309 = load i32, ptr %4308, align 4, !tbaa !5
  %4310 = call ptr @s2n_strerror(i32 noundef %4309, ptr noundef @.str.6)
  %4311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4312 = load i32, ptr %4311, align 4, !tbaa !5
  %4313 = call ptr @s2n_strerror_debug(i32 noundef %4312, ptr noundef @.str.6)
  %4314 = call ptr @__errno_location() #13
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call ptr @strerror(i32 noundef %4315) #12
  %4317 = call ptr @__errno_location() #13
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4306, ptr noundef @.str.7, i32 noundef %4307, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 224, ptr noundef %4310, ptr noundef %4313, ptr noundef %4316, i32 noundef %4318) #12
  br label %4320

4320:                                             ; preds = %4303, %4286
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #12
  br label %4321

4321:                                             ; preds = %4320
  br label %4322

4322:                                             ; preds = %4321
  call void @exit(i32 noundef 1) #14
  unreachable

4323:                                             ; No predecessors!
  br label %4324

4324:                                             ; preds = %4323
  br label %4325

4325:                                             ; preds = %4324, %4266
  br label %4326

4326:                                             ; preds = %4325
  br label %4327

4327:                                             ; preds = %4326
  br label %4328

4328:                                             ; preds = %4327
  %4329 = load i32, ptr @test_count, align 4, !tbaa !5
  %4330 = add nsw i32 %4329, 1
  store i32 %4330, ptr @test_count, align 4, !tbaa !5
  %4331 = load ptr, ptr %78, align 8, !tbaa !9
  %4332 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %4331)
  %4333 = icmp eq i32 %4332, -1
  br i1 %4333, label %4334, label %4387

4334:                                             ; preds = %4328
  br label %4335

4335:                                             ; preds = %4334
  br label %4336

4336:                                             ; preds = %4335
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #12
  %4337 = call ptr @__errno_location() #13
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  store i32 %4338, ptr %93, align 4, !tbaa !5
  %4339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4340 = call i32 @s2n_print_stacktrace(ptr noundef %4339)
  %4341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4342 = trunc i8 %4341 to i1
  br i1 %4342, label %4343, label %4365

4343:                                             ; preds = %4336
  %4344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4345 = call i32 @fileno(ptr noundef %4344) #12
  %4346 = call i32 @isatty(i32 noundef %4345) #12
  %4347 = icmp ne i32 %4346, 0
  br i1 %4347, label %4348, label %4365

4348:                                             ; preds = %4343
  %4349 = load i32, ptr %93, align 4, !tbaa !5
  %4350 = call ptr @__errno_location() #13
  store i32 %4349, ptr %4350, align 4, !tbaa !5
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = load i32, ptr @test_count, align 4, !tbaa !5
  %4353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror(i32 noundef %4354, ptr noundef @.str.6)
  %4356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call ptr @s2n_strerror_debug(i32 noundef %4357, ptr noundef @.str.6)
  %4359 = call ptr @__errno_location() #13
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call ptr @strerror(i32 noundef %4360) #12
  %4362 = call ptr @__errno_location() #13
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4351, ptr noundef @.str.4, i32 noundef %4352, ptr noundef @.str.43, ptr noundef @.str.3, i32 noundef 225, ptr noundef %4355, ptr noundef %4358, ptr noundef %4361, i32 noundef %4363) #12
  br label %4382

4365:                                             ; preds = %4343, %4336
  %4366 = load i32, ptr %93, align 4, !tbaa !5
  %4367 = call ptr @__errno_location() #13
  store i32 %4366, ptr %4367, align 4, !tbaa !5
  %4368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4369 = load i32, ptr @test_count, align 4, !tbaa !5
  %4370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror(i32 noundef %4371, ptr noundef @.str.6)
  %4373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @s2n_strerror_debug(i32 noundef %4374, ptr noundef @.str.6)
  %4376 = call ptr @__errno_location() #13
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call ptr @strerror(i32 noundef %4377) #12
  %4379 = call ptr @__errno_location() #13
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4368, ptr noundef @.str.7, i32 noundef %4369, ptr noundef @.str.43, ptr noundef @.str.3, i32 noundef 225, ptr noundef %4372, ptr noundef %4375, ptr noundef %4378, i32 noundef %4380) #12
  br label %4382

4382:                                             ; preds = %4365, %4348
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #12
  br label %4383

4383:                                             ; preds = %4382
  br label %4384

4384:                                             ; preds = %4383
  call void @exit(i32 noundef 1) #14
  unreachable

4385:                                             ; No predecessors!
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386, %4328
  br label %4388

4388:                                             ; preds = %4387
  br label %4389

4389:                                             ; preds = %4388
  %4390 = load ptr, ptr %78, align 8, !tbaa !9
  %4391 = getelementptr inbounds %struct.s2n_connection, ptr %4390, i32 0, i32 31
  %4392 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4391, i32 0, i32 1
  %4393 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4392, i32 0, i32 0
  store ptr @s2n_ecc_curve_x25519, ptr %4393, align 8, !tbaa !54
  br label %4394

4394:                                             ; preds = %4389
  %4395 = load i32, ptr @test_count, align 4, !tbaa !5
  %4396 = add nsw i32 %4395, 1
  store i32 %4396, ptr @test_count, align 4, !tbaa !5
  %4397 = call i32 @s2n_stuffer_free(ptr noundef %80)
  %4398 = icmp eq i32 %4397, -1
  br i1 %4398, label %4399, label %4452

4399:                                             ; preds = %4394
  br label %4400

4400:                                             ; preds = %4399
  br label %4401

4401:                                             ; preds = %4400
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #12
  %4402 = call ptr @__errno_location() #13
  %4403 = load i32, ptr %4402, align 4, !tbaa !5
  store i32 %4403, ptr %94, align 4, !tbaa !5
  %4404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4405 = call i32 @s2n_print_stacktrace(ptr noundef %4404)
  %4406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4407 = trunc i8 %4406 to i1
  br i1 %4407, label %4408, label %4430

4408:                                             ; preds = %4401
  %4409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4410 = call i32 @fileno(ptr noundef %4409) #12
  %4411 = call i32 @isatty(i32 noundef %4410) #12
  %4412 = icmp ne i32 %4411, 0
  br i1 %4412, label %4413, label %4430

4413:                                             ; preds = %4408
  %4414 = load i32, ptr %94, align 4, !tbaa !5
  %4415 = call ptr @__errno_location() #13
  store i32 %4414, ptr %4415, align 4, !tbaa !5
  %4416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4417 = load i32, ptr @test_count, align 4, !tbaa !5
  %4418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call ptr @s2n_strerror(i32 noundef %4419, ptr noundef @.str.6)
  %4421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call ptr @s2n_strerror_debug(i32 noundef %4422, ptr noundef @.str.6)
  %4424 = call ptr @__errno_location() #13
  %4425 = load i32, ptr %4424, align 4, !tbaa !5
  %4426 = call ptr @strerror(i32 noundef %4425) #12
  %4427 = call ptr @__errno_location() #13
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  %4429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4416, ptr noundef @.str.4, i32 noundef %4417, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 228, ptr noundef %4420, ptr noundef %4423, ptr noundef %4426, i32 noundef %4428) #12
  br label %4447

4430:                                             ; preds = %4408, %4401
  %4431 = load i32, ptr %94, align 4, !tbaa !5
  %4432 = call ptr @__errno_location() #13
  store i32 %4431, ptr %4432, align 4, !tbaa !5
  %4433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4434 = load i32, ptr @test_count, align 4, !tbaa !5
  %4435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call ptr @s2n_strerror(i32 noundef %4436, ptr noundef @.str.6)
  %4438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call ptr @s2n_strerror_debug(i32 noundef %4439, ptr noundef @.str.6)
  %4441 = call ptr @__errno_location() #13
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call ptr @strerror(i32 noundef %4442) #12
  %4444 = call ptr @__errno_location() #13
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4433, ptr noundef @.str.7, i32 noundef %4434, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 228, ptr noundef %4437, ptr noundef %4440, ptr noundef %4443, i32 noundef %4445) #12
  br label %4447

4447:                                             ; preds = %4430, %4413
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #12
  br label %4448

4448:                                             ; preds = %4447
  br label %4449

4449:                                             ; preds = %4448
  call void @exit(i32 noundef 1) #14
  unreachable

4450:                                             ; No predecessors!
  br label %4451

4451:                                             ; preds = %4450
  br label %4452

4452:                                             ; preds = %4451, %4394
  br label %4453

4453:                                             ; preds = %4452
  br label %4454

4454:                                             ; preds = %4453
  br label %4455

4455:                                             ; preds = %4454
  %4456 = load i32, ptr @test_count, align 4, !tbaa !5
  %4457 = add nsw i32 %4456, 1
  store i32 %4457, ptr @test_count, align 4, !tbaa !5
  %4458 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %80, i32 noundef 0)
  %4459 = icmp eq i32 %4458, -1
  br i1 %4459, label %4460, label %4513

4460:                                             ; preds = %4455
  br label %4461

4461:                                             ; preds = %4460
  br label %4462

4462:                                             ; preds = %4461
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #12
  %4463 = call ptr @__errno_location() #13
  %4464 = load i32, ptr %4463, align 4, !tbaa !5
  store i32 %4464, ptr %95, align 4, !tbaa !5
  %4465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4466 = call i32 @s2n_print_stacktrace(ptr noundef %4465)
  %4467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4468 = trunc i8 %4467 to i1
  br i1 %4468, label %4469, label %4491

4469:                                             ; preds = %4462
  %4470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4471 = call i32 @fileno(ptr noundef %4470) #12
  %4472 = call i32 @isatty(i32 noundef %4471) #12
  %4473 = icmp ne i32 %4472, 0
  br i1 %4473, label %4474, label %4491

4474:                                             ; preds = %4469
  %4475 = load i32, ptr %95, align 4, !tbaa !5
  %4476 = call ptr @__errno_location() #13
  store i32 %4475, ptr %4476, align 4, !tbaa !5
  %4477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4478 = load i32, ptr @test_count, align 4, !tbaa !5
  %4479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4480 = load i32, ptr %4479, align 4, !tbaa !5
  %4481 = call ptr @s2n_strerror(i32 noundef %4480, ptr noundef @.str.6)
  %4482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4483 = load i32, ptr %4482, align 4, !tbaa !5
  %4484 = call ptr @s2n_strerror_debug(i32 noundef %4483, ptr noundef @.str.6)
  %4485 = call ptr @__errno_location() #13
  %4486 = load i32, ptr %4485, align 4, !tbaa !5
  %4487 = call ptr @strerror(i32 noundef %4486) #12
  %4488 = call ptr @__errno_location() #13
  %4489 = load i32, ptr %4488, align 4, !tbaa !5
  %4490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4477, ptr noundef @.str.4, i32 noundef %4478, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 229, ptr noundef %4481, ptr noundef %4484, ptr noundef %4487, i32 noundef %4489) #12
  br label %4508

4491:                                             ; preds = %4469, %4462
  %4492 = load i32, ptr %95, align 4, !tbaa !5
  %4493 = call ptr @__errno_location() #13
  store i32 %4492, ptr %4493, align 4, !tbaa !5
  %4494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4495 = load i32, ptr @test_count, align 4, !tbaa !5
  %4496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  %4498 = call ptr @s2n_strerror(i32 noundef %4497, ptr noundef @.str.6)
  %4499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call ptr @s2n_strerror_debug(i32 noundef %4500, ptr noundef @.str.6)
  %4502 = call ptr @__errno_location() #13
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  %4504 = call ptr @strerror(i32 noundef %4503) #12
  %4505 = call ptr @__errno_location() #13
  %4506 = load i32, ptr %4505, align 4, !tbaa !5
  %4507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4494, ptr noundef @.str.7, i32 noundef %4495, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 229, ptr noundef %4498, ptr noundef %4501, ptr noundef %4504, i32 noundef %4506) #12
  br label %4508

4508:                                             ; preds = %4491, %4474
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #12
  br label %4509

4509:                                             ; preds = %4508
  br label %4510

4510:                                             ; preds = %4509
  call void @exit(i32 noundef 1) #14
  unreachable

4511:                                             ; No predecessors!
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

4513:                                             ; preds = %4512, %4455
  br label %4514

4514:                                             ; preds = %4513
  br label %4515

4515:                                             ; preds = %4514
  br label %4516

4516:                                             ; preds = %4515
  %4517 = load i32, ptr @test_count, align 4, !tbaa !5
  %4518 = add nsw i32 %4517, 1
  store i32 %4518, ptr @test_count, align 4, !tbaa !5
  %4519 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %4520 = load ptr, ptr %78, align 8, !tbaa !9
  %4521 = call i32 %4519(ptr noundef %4520, ptr noundef %80)
  %4522 = icmp eq i32 %4521, -1
  br i1 %4522, label %4523, label %4576

4523:                                             ; preds = %4516
  br label %4524

4524:                                             ; preds = %4523
  br label %4525

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

4532:                                             ; preds = %4525
  %4533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4534 = call i32 @fileno(ptr noundef %4533) #12
  %4535 = call i32 @isatty(i32 noundef %4534) #12
  %4536 = icmp ne i32 %4535, 0
  br i1 %4536, label %4537, label %4554

4537:                                             ; preds = %4532
  %4538 = load i32, ptr %96, align 4, !tbaa !5
  %4539 = call ptr @__errno_location() #13
  store i32 %4538, ptr %4539, align 4, !tbaa !5
  %4540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4541 = load i32, ptr @test_count, align 4, !tbaa !5
  %4542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4543 = load i32, ptr %4542, align 4, !tbaa !5
  %4544 = call ptr @s2n_strerror(i32 noundef %4543, ptr noundef @.str.6)
  %4545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4546 = load i32, ptr %4545, align 4, !tbaa !5
  %4547 = call ptr @s2n_strerror_debug(i32 noundef %4546, ptr noundef @.str.6)
  %4548 = call ptr @__errno_location() #13
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  %4550 = call ptr @strerror(i32 noundef %4549) #12
  %4551 = call ptr @__errno_location() #13
  %4552 = load i32, ptr %4551, align 4, !tbaa !5
  %4553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4540, ptr noundef @.str.4, i32 noundef %4541, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 231, ptr noundef %4544, ptr noundef %4547, ptr noundef %4550, i32 noundef %4552) #12
  br label %4571

4554:                                             ; preds = %4532, %4525
  %4555 = load i32, ptr %96, align 4, !tbaa !5
  %4556 = call ptr @__errno_location() #13
  store i32 %4555, ptr %4556, align 4, !tbaa !5
  %4557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4558 = load i32, ptr @test_count, align 4, !tbaa !5
  %4559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call ptr @s2n_strerror(i32 noundef %4560, ptr noundef @.str.6)
  %4562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4563 = load i32, ptr %4562, align 4, !tbaa !5
  %4564 = call ptr @s2n_strerror_debug(i32 noundef %4563, ptr noundef @.str.6)
  %4565 = call ptr @__errno_location() #13
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call ptr @strerror(i32 noundef %4566) #12
  %4568 = call ptr @__errno_location() #13
  %4569 = load i32, ptr %4568, align 4, !tbaa !5
  %4570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4557, ptr noundef @.str.7, i32 noundef %4558, ptr noundef @.str.16, ptr noundef @.str.3, i32 noundef 231, ptr noundef %4561, ptr noundef %4564, ptr noundef %4567, i32 noundef %4569) #12
  br label %4571

4571:                                             ; preds = %4554, %4537
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #12
  br label %4572

4572:                                             ; preds = %4571
  br label %4573

4573:                                             ; preds = %4572
  call void @exit(i32 noundef 1) #14
  unreachable

4574:                                             ; No predecessors!
  br label %4575

4575:                                             ; preds = %4574
  br label %4576

4576:                                             ; preds = %4575, %4516
  br label %4577

4577:                                             ; preds = %4576
  br label %4578

4578:                                             ; preds = %4577
  call void @llvm.lifetime.start.p0(i64 2, ptr %97) #12
  store i16 0, ptr %97, align 2, !tbaa !27
  br label %4579

4579:                                             ; preds = %4578
  %4580 = load i32, ptr @test_count, align 4, !tbaa !5
  %4581 = add nsw i32 %4580, 1
  store i32 %4581, ptr @test_count, align 4, !tbaa !5
  %4582 = call i32 @s2n_stuffer_read_uint16(ptr noundef %80, ptr noundef %97)
  %4583 = icmp eq i32 %4582, -1
  br i1 %4583, label %4584, label %4637

4584:                                             ; preds = %4579
  br label %4585

4585:                                             ; preds = %4584
  br label %4586

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

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

4598:                                             ; preds = %4593
  %4599 = load i32, ptr %98, align 4, !tbaa !5
  %4600 = call ptr @__errno_location() #13
  store i32 %4599, ptr %4600, align 4, !tbaa !5
  %4601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4602 = load i32, ptr @test_count, align 4, !tbaa !5
  %4603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4604 = load i32, ptr %4603, align 4, !tbaa !5
  %4605 = call ptr @s2n_strerror(i32 noundef %4604, ptr noundef @.str.6)
  %4606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4607 = load i32, ptr %4606, align 4, !tbaa !5
  %4608 = call ptr @s2n_strerror_debug(i32 noundef %4607, ptr noundef @.str.6)
  %4609 = call ptr @__errno_location() #13
  %4610 = load i32, ptr %4609, align 4, !tbaa !5
  %4611 = call ptr @strerror(i32 noundef %4610) #12
  %4612 = call ptr @__errno_location() #13
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  %4614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4601, ptr noundef @.str.4, i32 noundef %4602, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 234, ptr noundef %4605, ptr noundef %4608, ptr noundef %4611, i32 noundef %4613) #12
  br label %4632

4615:                                             ; preds = %4593, %4586
  %4616 = load i32, ptr %98, align 4, !tbaa !5
  %4617 = call ptr @__errno_location() #13
  store i32 %4616, ptr %4617, align 4, !tbaa !5
  %4618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4619 = load i32, ptr @test_count, align 4, !tbaa !5
  %4620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4621 = load i32, ptr %4620, align 4, !tbaa !5
  %4622 = call ptr @s2n_strerror(i32 noundef %4621, ptr noundef @.str.6)
  %4623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4624 = load i32, ptr %4623, align 4, !tbaa !5
  %4625 = call ptr @s2n_strerror_debug(i32 noundef %4624, ptr noundef @.str.6)
  %4626 = call ptr @__errno_location() #13
  %4627 = load i32, ptr %4626, align 4, !tbaa !5
  %4628 = call ptr @strerror(i32 noundef %4627) #12
  %4629 = call ptr @__errno_location() #13
  %4630 = load i32, ptr %4629, align 4, !tbaa !5
  %4631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4618, ptr noundef @.str.7, i32 noundef %4619, ptr noundef @.str.25, ptr noundef @.str.3, i32 noundef 234, ptr noundef %4622, ptr noundef %4625, ptr noundef %4628, i32 noundef %4630) #12
  br label %4632

4632:                                             ; preds = %4615, %4598
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #12
  br label %4633

4633:                                             ; preds = %4632
  br label %4634

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

4635:                                             ; No predecessors!
  br label %4636

4636:                                             ; preds = %4635
  br label %4637

4637:                                             ; preds = %4636, %4579
  br label %4638

4638:                                             ; preds = %4637
  br label %4639

4639:                                             ; preds = %4638
  br label %4640

4640:                                             ; preds = %4639
  %4641 = load i32, ptr @test_count, align 4, !tbaa !5
  %4642 = add nsw i32 %4641, 1
  store i32 %4642, ptr @test_count, align 4, !tbaa !5
  %4643 = getelementptr inbounds %struct.s2n_stuffer, ptr %80, i32 0, i32 2
  %4644 = load i32, ptr %4643, align 4, !tbaa !18
  %4645 = getelementptr inbounds %struct.s2n_stuffer, ptr %80, i32 0, i32 1
  %4646 = load i32, ptr %4645, align 8, !tbaa !21
  %4647 = sub i32 %4644, %4646
  %4648 = load i16, ptr %97, align 2, !tbaa !27
  %4649 = zext i16 %4648 to i32
  %4650 = icmp eq i32 %4647, %4649
  br i1 %4650, label %4704, label %4651

4651:                                             ; preds = %4640
  br label %4652

4652:                                             ; preds = %4651
  br label %4653

4653:                                             ; preds = %4652
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #12
  %4654 = call ptr @__errno_location() #13
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  store i32 %4655, ptr %99, align 4, !tbaa !5
  %4656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4657 = call i32 @s2n_print_stacktrace(ptr noundef %4656)
  %4658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4659 = trunc i8 %4658 to i1
  br i1 %4659, label %4660, label %4682

4660:                                             ; preds = %4653
  %4661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4662 = call i32 @fileno(ptr noundef %4661) #12
  %4663 = call i32 @isatty(i32 noundef %4662) #12
  %4664 = icmp ne i32 %4663, 0
  br i1 %4664, label %4665, label %4682

4665:                                             ; preds = %4660
  %4666 = load i32, ptr %99, align 4, !tbaa !5
  %4667 = call ptr @__errno_location() #13
  store i32 %4666, ptr %4667, align 4, !tbaa !5
  %4668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4669 = load i32, ptr @test_count, align 4, !tbaa !5
  %4670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4671 = load i32, ptr %4670, align 4, !tbaa !5
  %4672 = call ptr @s2n_strerror(i32 noundef %4671, ptr noundef @.str.6)
  %4673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4674 = load i32, ptr %4673, align 4, !tbaa !5
  %4675 = call ptr @s2n_strerror_debug(i32 noundef %4674, ptr noundef @.str.6)
  %4676 = call ptr @__errno_location() #13
  %4677 = load i32, ptr %4676, align 4, !tbaa !5
  %4678 = call ptr @strerror(i32 noundef %4677) #12
  %4679 = call ptr @__errno_location() #13
  %4680 = load i32, ptr %4679, align 4, !tbaa !5
  %4681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4668, ptr noundef @.str.4, i32 noundef %4669, ptr noundef @.str.44, ptr noundef @.str.3, i32 noundef 235, ptr noundef %4672, ptr noundef %4675, ptr noundef %4678, i32 noundef %4680) #12
  br label %4699

4682:                                             ; preds = %4660, %4653
  %4683 = load i32, ptr %99, align 4, !tbaa !5
  %4684 = call ptr @__errno_location() #13
  store i32 %4683, ptr %4684, align 4, !tbaa !5
  %4685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4686 = load i32, ptr @test_count, align 4, !tbaa !5
  %4687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  %4689 = call ptr @s2n_strerror(i32 noundef %4688, ptr noundef @.str.6)
  %4690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call ptr @s2n_strerror_debug(i32 noundef %4691, ptr noundef @.str.6)
  %4693 = call ptr @__errno_location() #13
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call ptr @strerror(i32 noundef %4694) #12
  %4696 = call ptr @__errno_location() #13
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4685, ptr noundef @.str.7, i32 noundef %4686, ptr noundef @.str.44, ptr noundef @.str.3, i32 noundef 235, ptr noundef %4689, ptr noundef %4692, ptr noundef %4695, i32 noundef %4697) #12
  br label %4699

4699:                                             ; preds = %4682, %4665
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #12
  br label %4700

4700:                                             ; preds = %4699
  br label %4701

4701:                                             ; preds = %4700
  call void @exit(i32 noundef 1) #14
  unreachable

4702:                                             ; No predecessors!
  br label %4703

4703:                                             ; preds = %4702
  br label %4704

4704:                                             ; preds = %4703, %4640
  br label %4705

4705:                                             ; preds = %4704
  br label %4706

4706:                                             ; preds = %4705
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #12
  store i32 0, ptr %100, align 4, !tbaa !5
  br label %4707

4707:                                             ; preds = %4706
  %4708 = load i32, ptr @test_count, align 4, !tbaa !5
  %4709 = add nsw i32 %4708, 1
  store i32 %4709, ptr @test_count, align 4, !tbaa !5
  %4710 = load i16, ptr %97, align 2, !tbaa !27
  %4711 = zext i16 %4710 to i32
  %4712 = load ptr, ptr %78, align 8, !tbaa !9
  %4713 = getelementptr inbounds %struct.s2n_connection, ptr %4712, i32 0, i32 31
  %4714 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4713, i32 0, i32 1
  %4715 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4714, i32 0, i32 0
  %4716 = load ptr, ptr %4715, align 8, !tbaa !54
  %4717 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %4716, i32 0, i32 3
  %4718 = load i8, ptr %4717, align 8, !tbaa !30
  %4719 = zext i8 %4718 to i32
  %4720 = add nsw i32 %4719, 2
  %4721 = add nsw i32 %4720, 2
  %4722 = icmp eq i32 %4711, %4721
  br i1 %4722, label %4776, label %4723

4723:                                             ; preds = %4707
  br label %4724

4724:                                             ; preds = %4723
  br label %4725

4725:                                             ; preds = %4724
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #12
  %4726 = call ptr @__errno_location() #13
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  store i32 %4727, ptr %101, align 4, !tbaa !5
  %4728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4729 = call i32 @s2n_print_stacktrace(ptr noundef %4728)
  %4730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4731 = trunc i8 %4730 to i1
  br i1 %4731, label %4732, label %4754

4732:                                             ; preds = %4725
  %4733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4734 = call i32 @fileno(ptr noundef %4733) #12
  %4735 = call i32 @isatty(i32 noundef %4734) #12
  %4736 = icmp ne i32 %4735, 0
  br i1 %4736, label %4737, label %4754

4737:                                             ; preds = %4732
  %4738 = load i32, ptr %101, align 4, !tbaa !5
  %4739 = call ptr @__errno_location() #13
  store i32 %4738, ptr %4739, align 4, !tbaa !5
  %4740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4741 = load i32, ptr @test_count, align 4, !tbaa !5
  %4742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4743 = load i32, ptr %4742, align 4, !tbaa !5
  %4744 = call ptr @s2n_strerror(i32 noundef %4743, ptr noundef @.str.6)
  %4745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4746 = load i32, ptr %4745, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror_debug(i32 noundef %4746, ptr noundef @.str.6)
  %4748 = call ptr @__errno_location() #13
  %4749 = load i32, ptr %4748, align 4, !tbaa !5
  %4750 = call ptr @strerror(i32 noundef %4749) #12
  %4751 = call ptr @__errno_location() #13
  %4752 = load i32, ptr %4751, align 4, !tbaa !5
  %4753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4740, ptr noundef @.str.4, i32 noundef %4741, ptr noundef @.str.45, ptr noundef @.str.3, i32 noundef 239, ptr noundef %4744, ptr noundef %4747, ptr noundef %4750, i32 noundef %4752) #12
  br label %4771

4754:                                             ; preds = %4732, %4725
  %4755 = load i32, ptr %101, align 4, !tbaa !5
  %4756 = call ptr @__errno_location() #13
  store i32 %4755, ptr %4756, align 4, !tbaa !5
  %4757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4758 = load i32, ptr @test_count, align 4, !tbaa !5
  %4759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4760 = load i32, ptr %4759, align 4, !tbaa !5
  %4761 = call ptr @s2n_strerror(i32 noundef %4760, ptr noundef @.str.6)
  %4762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4763 = load i32, ptr %4762, align 4, !tbaa !5
  %4764 = call ptr @s2n_strerror_debug(i32 noundef %4763, ptr noundef @.str.6)
  %4765 = call ptr @__errno_location() #13
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  %4767 = call ptr @strerror(i32 noundef %4766) #12
  %4768 = call ptr @__errno_location() #13
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  %4770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4757, ptr noundef @.str.7, i32 noundef %4758, ptr noundef @.str.45, ptr noundef @.str.3, i32 noundef 239, ptr noundef %4761, ptr noundef %4764, ptr noundef %4767, i32 noundef %4769) #12
  br label %4771

4771:                                             ; preds = %4754, %4737
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #12
  br label %4772

4772:                                             ; preds = %4771
  br label %4773

4773:                                             ; preds = %4772
  call void @exit(i32 noundef 1) #14
  unreachable

4774:                                             ; No predecessors!
  br label %4775

4775:                                             ; preds = %4774
  br label %4776

4776:                                             ; preds = %4775, %4707
  br label %4777

4777:                                             ; preds = %4776
  br label %4778

4778:                                             ; preds = %4777
  call void @llvm.lifetime.start.p0(i64 2, ptr %102) #12
  store i16 0, ptr %102, align 2, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 2, ptr %103) #12
  store i16 0, ptr %103, align 2, !tbaa !27
  br label %4779

4779:                                             ; preds = %4778
  %4780 = load i32, ptr @test_count, align 4, !tbaa !5
  %4781 = add nsw i32 %4780, 1
  store i32 %4781, ptr @test_count, align 4, !tbaa !5
  %4782 = call i32 @s2n_stuffer_read_uint16(ptr noundef %80, ptr noundef %102)
  %4783 = icmp eq i32 %4782, -1
  br i1 %4783, label %4784, label %4837

4784:                                             ; preds = %4779
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

4786:                                             ; preds = %4785
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #12
  %4787 = call ptr @__errno_location() #13
  %4788 = load i32, ptr %4787, align 4, !tbaa !5
  store i32 %4788, ptr %104, align 4, !tbaa !5
  %4789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4790 = call i32 @s2n_print_stacktrace(ptr noundef %4789)
  %4791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4792 = trunc i8 %4791 to i1
  br i1 %4792, label %4793, label %4815

4793:                                             ; preds = %4786
  %4794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4795 = call i32 @fileno(ptr noundef %4794) #12
  %4796 = call i32 @isatty(i32 noundef %4795) #12
  %4797 = icmp ne i32 %4796, 0
  br i1 %4797, label %4798, label %4815

4798:                                             ; preds = %4793
  %4799 = load i32, ptr %104, align 4, !tbaa !5
  %4800 = call ptr @__errno_location() #13
  store i32 %4799, ptr %4800, align 4, !tbaa !5
  %4801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4802 = load i32, ptr @test_count, align 4, !tbaa !5
  %4803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4804 = load i32, ptr %4803, align 4, !tbaa !5
  %4805 = call ptr @s2n_strerror(i32 noundef %4804, ptr noundef @.str.6)
  %4806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4807 = load i32, ptr %4806, align 4, !tbaa !5
  %4808 = call ptr @s2n_strerror_debug(i32 noundef %4807, ptr noundef @.str.6)
  %4809 = call ptr @__errno_location() #13
  %4810 = load i32, ptr %4809, align 4, !tbaa !5
  %4811 = call ptr @strerror(i32 noundef %4810) #12
  %4812 = call ptr @__errno_location() #13
  %4813 = load i32, ptr %4812, align 4, !tbaa !5
  %4814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4801, ptr noundef @.str.4, i32 noundef %4802, ptr noundef @.str.28, ptr noundef @.str.3, i32 noundef 242, ptr noundef %4805, ptr noundef %4808, ptr noundef %4811, i32 noundef %4813) #12
  br label %4832

4815:                                             ; preds = %4793, %4786
  %4816 = load i32, ptr %104, align 4, !tbaa !5
  %4817 = call ptr @__errno_location() #13
  store i32 %4816, ptr %4817, align 4, !tbaa !5
  %4818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4819 = load i32, ptr @test_count, align 4, !tbaa !5
  %4820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4821 = load i32, ptr %4820, align 4, !tbaa !5
  %4822 = call ptr @s2n_strerror(i32 noundef %4821, ptr noundef @.str.6)
  %4823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4824 = load i32, ptr %4823, align 4, !tbaa !5
  %4825 = call ptr @s2n_strerror_debug(i32 noundef %4824, ptr noundef @.str.6)
  %4826 = call ptr @__errno_location() #13
  %4827 = load i32, ptr %4826, align 4, !tbaa !5
  %4828 = call ptr @strerror(i32 noundef %4827) #12
  %4829 = call ptr @__errno_location() #13
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4818, ptr noundef @.str.7, i32 noundef %4819, ptr noundef @.str.28, ptr noundef @.str.3, i32 noundef 242, ptr noundef %4822, ptr noundef %4825, ptr noundef %4828, i32 noundef %4830) #12
  br label %4832

4832:                                             ; preds = %4815, %4798
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #12
  br label %4833

4833:                                             ; preds = %4832
  br label %4834

4834:                                             ; preds = %4833
  call void @exit(i32 noundef 1) #14
  unreachable

4835:                                             ; No predecessors!
  br label %4836

4836:                                             ; preds = %4835
  br label %4837

4837:                                             ; preds = %4836, %4779
  br label %4838

4838:                                             ; preds = %4837
  br label %4839

4839:                                             ; preds = %4838
  br label %4840

4840:                                             ; preds = %4839
  %4841 = load i32, ptr @test_count, align 4, !tbaa !5
  %4842 = add nsw i32 %4841, 1
  store i32 %4842, ptr @test_count, align 4, !tbaa !5
  %4843 = call i32 @s2n_stuffer_read_uint16(ptr noundef %80, ptr noundef %103)
  %4844 = icmp eq i32 %4843, -1
  br i1 %4844, label %4845, label %4898

4845:                                             ; preds = %4840
  br label %4846

4846:                                             ; preds = %4845
  br label %4847

4847:                                             ; preds = %4846
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #12
  %4848 = call ptr @__errno_location() #13
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  store i32 %4849, ptr %105, align 4, !tbaa !5
  %4850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4851 = call i32 @s2n_print_stacktrace(ptr noundef %4850)
  %4852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4853 = trunc i8 %4852 to i1
  br i1 %4853, label %4854, label %4876

4854:                                             ; preds = %4847
  %4855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4856 = call i32 @fileno(ptr noundef %4855) #12
  %4857 = call i32 @isatty(i32 noundef %4856) #12
  %4858 = icmp ne i32 %4857, 0
  br i1 %4858, label %4859, label %4876

4859:                                             ; preds = %4854
  %4860 = load i32, ptr %105, align 4, !tbaa !5
  %4861 = call ptr @__errno_location() #13
  store i32 %4860, ptr %4861, align 4, !tbaa !5
  %4862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4863 = load i32, ptr @test_count, align 4, !tbaa !5
  %4864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call ptr @s2n_strerror(i32 noundef %4865, ptr noundef @.str.6)
  %4867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4868 = load i32, ptr %4867, align 4, !tbaa !5
  %4869 = call ptr @s2n_strerror_debug(i32 noundef %4868, ptr noundef @.str.6)
  %4870 = call ptr @__errno_location() #13
  %4871 = load i32, ptr %4870, align 4, !tbaa !5
  %4872 = call ptr @strerror(i32 noundef %4871) #12
  %4873 = call ptr @__errno_location() #13
  %4874 = load i32, ptr %4873, align 4, !tbaa !5
  %4875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4862, ptr noundef @.str.4, i32 noundef %4863, ptr noundef @.str.30, ptr noundef @.str.3, i32 noundef 243, ptr noundef %4866, ptr noundef %4869, ptr noundef %4872, i32 noundef %4874) #12
  br label %4893

4876:                                             ; preds = %4854, %4847
  %4877 = load i32, ptr %105, align 4, !tbaa !5
  %4878 = call ptr @__errno_location() #13
  store i32 %4877, ptr %4878, align 4, !tbaa !5
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = load i32, ptr @test_count, align 4, !tbaa !5
  %4881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call ptr @s2n_strerror(i32 noundef %4882, ptr noundef @.str.6)
  %4884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4885 = load i32, ptr %4884, align 4, !tbaa !5
  %4886 = call ptr @s2n_strerror_debug(i32 noundef %4885, ptr noundef @.str.6)
  %4887 = call ptr @__errno_location() #13
  %4888 = load i32, ptr %4887, align 4, !tbaa !5
  %4889 = call ptr @strerror(i32 noundef %4888) #12
  %4890 = call ptr @__errno_location() #13
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  %4892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4879, ptr noundef @.str.7, i32 noundef %4880, ptr noundef @.str.30, ptr noundef @.str.3, i32 noundef 243, ptr noundef %4883, ptr noundef %4886, ptr noundef %4889, i32 noundef %4891) #12
  br label %4893

4893:                                             ; preds = %4876, %4859
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #12
  br label %4894

4894:                                             ; preds = %4893
  br label %4895

4895:                                             ; preds = %4894
  call void @exit(i32 noundef 1) #14
  unreachable

4896:                                             ; No predecessors!
  br label %4897

4897:                                             ; preds = %4896
  br label %4898

4898:                                             ; preds = %4897, %4840
  br label %4899

4899:                                             ; preds = %4898
  br label %4900

4900:                                             ; preds = %4899
  %4901 = load ptr, ptr %78, align 8, !tbaa !9
  %4902 = getelementptr inbounds %struct.s2n_connection, ptr %4901, i32 0, i32 31
  %4903 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4902, i32 0, i32 1
  %4904 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4903, i32 0, i32 0
  %4905 = load ptr, ptr %4904, align 8, !tbaa !54
  %4906 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %4905, i32 0, i32 3
  %4907 = load i8, ptr %4906, align 8, !tbaa !30
  %4908 = zext i8 %4907 to i32
  %4909 = add nsw i32 %4908, 2
  %4910 = add nsw i32 %4909, 2
  %4911 = load i32, ptr %100, align 4, !tbaa !5
  %4912 = add i32 %4911, %4910
  store i32 %4912, ptr %100, align 4, !tbaa !5
  br label %4913

4913:                                             ; preds = %4900
  %4914 = load i32, ptr @test_count, align 4, !tbaa !5
  %4915 = add nsw i32 %4914, 1
  store i32 %4915, ptr @test_count, align 4, !tbaa !5
  %4916 = load i16, ptr %102, align 2, !tbaa !27
  %4917 = zext i16 %4916 to i32
  %4918 = load ptr, ptr %78, align 8, !tbaa !9
  %4919 = getelementptr inbounds %struct.s2n_connection, ptr %4918, i32 0, i32 31
  %4920 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4919, i32 0, i32 1
  %4921 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4920, i32 0, i32 0
  %4922 = load ptr, ptr %4921, align 8, !tbaa !54
  %4923 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %4922, i32 0, i32 0
  %4924 = load i16, ptr %4923, align 8, !tbaa !28
  %4925 = zext i16 %4924 to i32
  %4926 = icmp eq i32 %4917, %4925
  br i1 %4926, label %4980, label %4927

4927:                                             ; preds = %4913
  br label %4928

4928:                                             ; preds = %4927
  br label %4929

4929:                                             ; preds = %4928
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #12
  %4930 = call ptr @__errno_location() #13
  %4931 = load i32, ptr %4930, align 4, !tbaa !5
  store i32 %4931, ptr %106, align 4, !tbaa !5
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = call i32 @s2n_print_stacktrace(ptr noundef %4932)
  %4934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4935 = trunc i8 %4934 to i1
  br i1 %4935, label %4936, label %4958

4936:                                             ; preds = %4929
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = call i32 @fileno(ptr noundef %4937) #12
  %4939 = call i32 @isatty(i32 noundef %4938) #12
  %4940 = icmp ne i32 %4939, 0
  br i1 %4940, label %4941, label %4958

4941:                                             ; preds = %4936
  %4942 = load i32, ptr %106, align 4, !tbaa !5
  %4943 = call ptr @__errno_location() #13
  store i32 %4942, ptr %4943, align 4, !tbaa !5
  %4944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4945 = load i32, ptr @test_count, align 4, !tbaa !5
  %4946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4947 = load i32, ptr %4946, align 4, !tbaa !5
  %4948 = call ptr @s2n_strerror(i32 noundef %4947, ptr noundef @.str.6)
  %4949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4950 = load i32, ptr %4949, align 4, !tbaa !5
  %4951 = call ptr @s2n_strerror_debug(i32 noundef %4950, ptr noundef @.str.6)
  %4952 = call ptr @__errno_location() #13
  %4953 = load i32, ptr %4952, align 4, !tbaa !5
  %4954 = call ptr @strerror(i32 noundef %4953) #12
  %4955 = call ptr @__errno_location() #13
  %4956 = load i32, ptr %4955, align 4, !tbaa !5
  %4957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4944, ptr noundef @.str.4, i32 noundef %4945, ptr noundef @.str.46, ptr noundef @.str.3, i32 noundef 247, ptr noundef %4948, ptr noundef %4951, ptr noundef %4954, i32 noundef %4956) #12
  br label %4975

4958:                                             ; preds = %4936, %4929
  %4959 = load i32, ptr %106, align 4, !tbaa !5
  %4960 = call ptr @__errno_location() #13
  store i32 %4959, ptr %4960, align 4, !tbaa !5
  %4961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4962 = load i32, ptr @test_count, align 4, !tbaa !5
  %4963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4964 = load i32, ptr %4963, align 4, !tbaa !5
  %4965 = call ptr @s2n_strerror(i32 noundef %4964, ptr noundef @.str.6)
  %4966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4967 = load i32, ptr %4966, align 4, !tbaa !5
  %4968 = call ptr @s2n_strerror_debug(i32 noundef %4967, ptr noundef @.str.6)
  %4969 = call ptr @__errno_location() #13
  %4970 = load i32, ptr %4969, align 4, !tbaa !5
  %4971 = call ptr @strerror(i32 noundef %4970) #12
  %4972 = call ptr @__errno_location() #13
  %4973 = load i32, ptr %4972, align 4, !tbaa !5
  %4974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4961, ptr noundef @.str.7, i32 noundef %4962, ptr noundef @.str.46, ptr noundef @.str.3, i32 noundef 247, ptr noundef %4965, ptr noundef %4968, ptr noundef %4971, i32 noundef %4973) #12
  br label %4975

4975:                                             ; preds = %4958, %4941
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #12
  br label %4976

4976:                                             ; preds = %4975
  br label %4977

4977:                                             ; preds = %4976
  call void @exit(i32 noundef 1) #14
  unreachable

4978:                                             ; No predecessors!
  br label %4979

4979:                                             ; preds = %4978
  br label %4980

4980:                                             ; preds = %4979, %4913
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

4982:                                             ; preds = %4981
  br label %4983

4983:                                             ; preds = %4982
  %4984 = load i32, ptr @test_count, align 4, !tbaa !5
  %4985 = add nsw i32 %4984, 1
  store i32 %4985, ptr @test_count, align 4, !tbaa !5
  %4986 = load i16, ptr %103, align 2, !tbaa !27
  %4987 = zext i16 %4986 to i32
  %4988 = load ptr, ptr %78, align 8, !tbaa !9
  %4989 = getelementptr inbounds %struct.s2n_connection, ptr %4988, i32 0, i32 31
  %4990 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4989, i32 0, i32 1
  %4991 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4990, i32 0, i32 0
  %4992 = load ptr, ptr %4991, align 8, !tbaa !54
  %4993 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %4992, i32 0, i32 3
  %4994 = load i8, ptr %4993, align 8, !tbaa !30
  %4995 = zext i8 %4994 to i32
  %4996 = icmp eq i32 %4987, %4995
  br i1 %4996, label %5050, label %4997

4997:                                             ; preds = %4983
  br label %4998

4998:                                             ; preds = %4997
  br label %4999

4999:                                             ; preds = %4998
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #12
  %5000 = call ptr @__errno_location() #13
  %5001 = load i32, ptr %5000, align 4, !tbaa !5
  store i32 %5001, ptr %107, 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) #12
  %5009 = call i32 @isatty(i32 noundef %5008) #12
  %5010 = icmp ne i32 %5009, 0
  br i1 %5010, label %5011, label %5028

5011:                                             ; preds = %5006
  %5012 = load i32, ptr %107, align 4, !tbaa !5
  %5013 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %5022 = call ptr @__errno_location() #13
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @strerror(i32 noundef %5023) #12
  %5025 = call ptr @__errno_location() #13
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5014, ptr noundef @.str.4, i32 noundef %5015, ptr noundef @.str.47, ptr noundef @.str.3, i32 noundef 248, ptr noundef %5018, ptr noundef %5021, ptr noundef %5024, i32 noundef %5026) #12
  br label %5045

5028:                                             ; preds = %5006, %4999
  %5029 = load i32, ptr %107, align 4, !tbaa !5
  %5030 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %5039 = call ptr @__errno_location() #13
  %5040 = load i32, ptr %5039, align 4, !tbaa !5
  %5041 = call ptr @strerror(i32 noundef %5040) #12
  %5042 = call ptr @__errno_location() #13
  %5043 = load i32, ptr %5042, align 4, !tbaa !5
  %5044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5031, ptr noundef @.str.7, i32 noundef %5032, ptr noundef @.str.47, ptr noundef @.str.3, i32 noundef 248, ptr noundef %5035, ptr noundef %5038, ptr noundef %5041, i32 noundef %5043) #12
  br label %5045

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

5046:                                             ; preds = %5045
  br label %5047

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

5048:                                             ; No predecessors!
  br label %5049

5049:                                             ; preds = %5048
  br label %5050

5050:                                             ; preds = %5049, %4983
  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 i16, ptr %103, align 2, !tbaa !27
  %5057 = zext i16 %5056 to i32
  %5058 = call i32 @s2n_stuffer_skip_read(ptr noundef %80, i32 noundef %5057)
  %5059 = icmp eq i32 %5058, -1
  br i1 %5059, label %5060, label %5113

5060:                                             ; preds = %5053
  br label %5061

5061:                                             ; preds = %5060
  br label %5062

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

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

5074:                                             ; preds = %5069
  %5075 = load i32, ptr %108, align 4, !tbaa !5
  %5076 = call ptr @__errno_location() #13
  store i32 %5075, ptr %5076, align 4, !tbaa !5
  %5077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5078 = load i32, ptr @test_count, align 4, !tbaa !5
  %5079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5080 = load i32, ptr %5079, align 4, !tbaa !5
  %5081 = call ptr @s2n_strerror(i32 noundef %5080, ptr noundef @.str.6)
  %5082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror_debug(i32 noundef %5083, ptr noundef @.str.6)
  %5085 = call ptr @__errno_location() #13
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call ptr @strerror(i32 noundef %5086) #12
  %5088 = call ptr @__errno_location() #13
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5077, ptr noundef @.str.4, i32 noundef %5078, ptr noundef @.str.32, ptr noundef @.str.3, i32 noundef 249, ptr noundef %5081, ptr noundef %5084, ptr noundef %5087, i32 noundef %5089) #12
  br label %5108

5091:                                             ; preds = %5069, %5062
  %5092 = load i32, ptr %108, align 4, !tbaa !5
  %5093 = call ptr @__errno_location() #13
  store i32 %5092, ptr %5093, align 4, !tbaa !5
  %5094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5095 = load i32, ptr @test_count, align 4, !tbaa !5
  %5096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5097 = load i32, ptr %5096, align 4, !tbaa !5
  %5098 = call ptr @s2n_strerror(i32 noundef %5097, ptr noundef @.str.6)
  %5099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5100 = load i32, ptr %5099, align 4, !tbaa !5
  %5101 = call ptr @s2n_strerror_debug(i32 noundef %5100, ptr noundef @.str.6)
  %5102 = call ptr @__errno_location() #13
  %5103 = load i32, ptr %5102, align 4, !tbaa !5
  %5104 = call ptr @strerror(i32 noundef %5103) #12
  %5105 = call ptr @__errno_location() #13
  %5106 = load i32, ptr %5105, align 4, !tbaa !5
  %5107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5094, ptr noundef @.str.7, i32 noundef %5095, ptr noundef @.str.32, ptr noundef @.str.3, i32 noundef 249, ptr noundef %5098, ptr noundef %5101, ptr noundef %5104, i32 noundef %5106) #12
  br label %5108

5108:                                             ; preds = %5091, %5074
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #12
  br label %5109

5109:                                             ; preds = %5108
  br label %5110

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

5111:                                             ; No predecessors!
  br label %5112

5112:                                             ; preds = %5111
  br label %5113

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

5114:                                             ; preds = %5113
  br label %5115

5115:                                             ; preds = %5114
  br label %5116

5116:                                             ; preds = %5115
  %5117 = load i32, ptr @test_count, align 4, !tbaa !5
  %5118 = add nsw i32 %5117, 1
  store i32 %5118, ptr @test_count, align 4, !tbaa !5
  %5119 = load i32, ptr %100, align 4, !tbaa !5
  %5120 = load i16, ptr %97, align 2, !tbaa !27
  %5121 = zext i16 %5120 to i32
  %5122 = icmp eq i32 %5119, %5121
  br i1 %5122, label %5176, label %5123

5123:                                             ; preds = %5116
  br label %5124

5124:                                             ; preds = %5123
  br label %5125

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

5132:                                             ; preds = %5125
  %5133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5134 = call i32 @fileno(ptr noundef %5133) #12
  %5135 = call i32 @isatty(i32 noundef %5134) #12
  %5136 = icmp ne i32 %5135, 0
  br i1 %5136, label %5137, label %5154

5137:                                             ; preds = %5132
  %5138 = load i32, ptr %109, align 4, !tbaa !5
  %5139 = call ptr @__errno_location() #13
  store i32 %5138, ptr %5139, align 4, !tbaa !5
  %5140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5141 = load i32, ptr @test_count, align 4, !tbaa !5
  %5142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5143 = load i32, ptr %5142, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror(i32 noundef %5143, ptr noundef @.str.6)
  %5145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5146 = load i32, ptr %5145, align 4, !tbaa !5
  %5147 = call ptr @s2n_strerror_debug(i32 noundef %5146, ptr noundef @.str.6)
  %5148 = call ptr @__errno_location() #13
  %5149 = load i32, ptr %5148, align 4, !tbaa !5
  %5150 = call ptr @strerror(i32 noundef %5149) #12
  %5151 = call ptr @__errno_location() #13
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  %5153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5140, ptr noundef @.str.4, i32 noundef %5141, ptr noundef @.str.48, ptr noundef @.str.3, i32 noundef 250, ptr noundef %5144, ptr noundef %5147, ptr noundef %5150, i32 noundef %5152) #12
  br label %5171

5154:                                             ; preds = %5132, %5125
  %5155 = load i32, ptr %109, align 4, !tbaa !5
  %5156 = call ptr @__errno_location() #13
  store i32 %5155, ptr %5156, align 4, !tbaa !5
  %5157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5158 = load i32, ptr @test_count, align 4, !tbaa !5
  %5159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5160 = load i32, ptr %5159, align 4, !tbaa !5
  %5161 = call ptr @s2n_strerror(i32 noundef %5160, ptr noundef @.str.6)
  %5162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5163 = load i32, ptr %5162, align 4, !tbaa !5
  %5164 = call ptr @s2n_strerror_debug(i32 noundef %5163, ptr noundef @.str.6)
  %5165 = call ptr @__errno_location() #13
  %5166 = load i32, ptr %5165, align 4, !tbaa !5
  %5167 = call ptr @strerror(i32 noundef %5166) #12
  %5168 = call ptr @__errno_location() #13
  %5169 = load i32, ptr %5168, align 4, !tbaa !5
  %5170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5157, ptr noundef @.str.7, i32 noundef %5158, ptr noundef @.str.48, ptr noundef @.str.3, i32 noundef 250, ptr noundef %5161, ptr noundef %5164, ptr noundef %5167, i32 noundef %5169) #12
  br label %5171

5171:                                             ; preds = %5154, %5137
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #12
  br label %5172

5172:                                             ; preds = %5171
  br label %5173

5173:                                             ; preds = %5172
  call void @exit(i32 noundef 1) #14
  unreachable

5174:                                             ; No predecessors!
  br label %5175

5175:                                             ; preds = %5174
  br label %5176

5176:                                             ; preds = %5175, %5116
  br label %5177

5177:                                             ; preds = %5176
  br label %5178

5178:                                             ; preds = %5177
  br label %5179

5179:                                             ; preds = %5178
  %5180 = load i32, ptr @test_count, align 4, !tbaa !5
  %5181 = add nsw i32 %5180, 1
  store i32 %5181, ptr @test_count, align 4, !tbaa !5
  %5182 = call i32 @s2n_stuffer_free(ptr noundef %80)
  %5183 = icmp eq i32 %5182, -1
  br i1 %5183, label %5184, label %5237

5184:                                             ; preds = %5179
  br label %5185

5185:                                             ; preds = %5184
  br label %5186

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

5193:                                             ; preds = %5186
  %5194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5195 = call i32 @fileno(ptr noundef %5194) #12
  %5196 = call i32 @isatty(i32 noundef %5195) #12
  %5197 = icmp ne i32 %5196, 0
  br i1 %5197, label %5198, label %5215

5198:                                             ; preds = %5193
  %5199 = load i32, ptr %110, align 4, !tbaa !5
  %5200 = call ptr @__errno_location() #13
  store i32 %5199, ptr %5200, align 4, !tbaa !5
  %5201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5202 = load i32, ptr @test_count, align 4, !tbaa !5
  %5203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5204 = load i32, ptr %5203, align 4, !tbaa !5
  %5205 = call ptr @s2n_strerror(i32 noundef %5204, ptr noundef @.str.6)
  %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_debug(i32 noundef %5207, ptr noundef @.str.6)
  %5209 = call ptr @__errno_location() #13
  %5210 = load i32, ptr %5209, align 4, !tbaa !5
  %5211 = call ptr @strerror(i32 noundef %5210) #12
  %5212 = call ptr @__errno_location() #13
  %5213 = load i32, ptr %5212, align 4, !tbaa !5
  %5214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5201, ptr noundef @.str.4, i32 noundef %5202, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 252, ptr noundef %5205, ptr noundef %5208, ptr noundef %5211, i32 noundef %5213) #12
  br label %5232

5215:                                             ; preds = %5193, %5186
  %5216 = load i32, ptr %110, align 4, !tbaa !5
  %5217 = call ptr @__errno_location() #13
  store i32 %5216, ptr %5217, align 4, !tbaa !5
  %5218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5219 = load i32, ptr @test_count, align 4, !tbaa !5
  %5220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror(i32 noundef %5221, ptr noundef @.str.6)
  %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_debug(i32 noundef %5224, ptr noundef @.str.6)
  %5226 = call ptr @__errno_location() #13
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @strerror(i32 noundef %5227) #12
  %5229 = call ptr @__errno_location() #13
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5218, ptr noundef @.str.7, i32 noundef %5219, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 252, ptr noundef %5222, ptr noundef %5225, ptr noundef %5228, i32 noundef %5230) #12
  br label %5232

5232:                                             ; preds = %5215, %5198
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #12
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

5234:                                             ; preds = %5233
  call void @exit(i32 noundef 1) #14
  unreachable

5235:                                             ; No predecessors!
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

5237:                                             ; preds = %5236, %5179
  br label %5238

5238:                                             ; preds = %5237
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

5240:                                             ; preds = %5239
  %5241 = load i32, ptr @test_count, align 4, !tbaa !5
  %5242 = add nsw i32 %5241, 1
  store i32 %5242, ptr @test_count, align 4, !tbaa !5
  %5243 = load ptr, ptr %79, align 8, !tbaa !9
  %5244 = call i32 @s2n_config_free(ptr noundef %5243)
  %5245 = icmp eq i32 %5244, -1
  br i1 %5245, label %5246, label %5299

5246:                                             ; preds = %5240
  br label %5247

5247:                                             ; preds = %5246
  br label %5248

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

5255:                                             ; preds = %5248
  %5256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5257 = call i32 @fileno(ptr noundef %5256) #12
  %5258 = call i32 @isatty(i32 noundef %5257) #12
  %5259 = icmp ne i32 %5258, 0
  br i1 %5259, label %5260, label %5277

5260:                                             ; preds = %5255
  %5261 = load i32, ptr %111, align 4, !tbaa !5
  %5262 = call ptr @__errno_location() #13
  store i32 %5261, ptr %5262, align 4, !tbaa !5
  %5263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5264 = load i32, ptr @test_count, align 4, !tbaa !5
  %5265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @s2n_strerror(i32 noundef %5266, ptr noundef @.str.6)
  %5268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @s2n_strerror_debug(i32 noundef %5269, ptr noundef @.str.6)
  %5271 = call ptr @__errno_location() #13
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @strerror(i32 noundef %5272) #12
  %5274 = call ptr @__errno_location() #13
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5263, ptr noundef @.str.4, i32 noundef %5264, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 253, ptr noundef %5267, ptr noundef %5270, ptr noundef %5273, i32 noundef %5275) #12
  br label %5294

5277:                                             ; preds = %5255, %5248
  %5278 = load i32, ptr %111, align 4, !tbaa !5
  %5279 = call ptr @__errno_location() #13
  store i32 %5278, ptr %5279, align 4, !tbaa !5
  %5280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5281 = load i32, ptr @test_count, align 4, !tbaa !5
  %5282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  %5284 = call ptr @s2n_strerror(i32 noundef %5283, ptr noundef @.str.6)
  %5285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5286 = load i32, ptr %5285, align 4, !tbaa !5
  %5287 = call ptr @s2n_strerror_debug(i32 noundef %5286, ptr noundef @.str.6)
  %5288 = call ptr @__errno_location() #13
  %5289 = load i32, ptr %5288, align 4, !tbaa !5
  %5290 = call ptr @strerror(i32 noundef %5289) #12
  %5291 = call ptr @__errno_location() #13
  %5292 = load i32, ptr %5291, align 4, !tbaa !5
  %5293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5280, ptr noundef @.str.7, i32 noundef %5281, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 253, ptr noundef %5284, ptr noundef %5287, ptr noundef %5290, i32 noundef %5292) #12
  br label %5294

5294:                                             ; preds = %5277, %5260
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #12
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

5296:                                             ; preds = %5295
  call void @exit(i32 noundef 1) #14
  unreachable

5297:                                             ; No predecessors!
  br label %5298

5298:                                             ; preds = %5297
  br label %5299

5299:                                             ; preds = %5298, %5240
  br label %5300

5300:                                             ; preds = %5299
  br label %5301

5301:                                             ; preds = %5300
  br label %5302

5302:                                             ; preds = %5301
  %5303 = load i32, ptr @test_count, align 4, !tbaa !5
  %5304 = add nsw i32 %5303, 1
  store i32 %5304, ptr @test_count, align 4, !tbaa !5
  %5305 = load ptr, ptr %78, align 8, !tbaa !9
  %5306 = call i32 @s2n_connection_free(ptr noundef %5305)
  %5307 = icmp eq i32 %5306, -1
  br i1 %5307, label %5308, label %5361

5308:                                             ; preds = %5302
  br label %5309

5309:                                             ; preds = %5308
  br label %5310

5310:                                             ; preds = %5309
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #12
  %5311 = call ptr @__errno_location() #13
  %5312 = load i32, ptr %5311, align 4, !tbaa !5
  store i32 %5312, ptr %112, align 4, !tbaa !5
  %5313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5314 = call i32 @s2n_print_stacktrace(ptr noundef %5313)
  %5315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5316 = trunc i8 %5315 to i1
  br i1 %5316, label %5317, label %5339

5317:                                             ; preds = %5310
  %5318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5319 = call i32 @fileno(ptr noundef %5318) #12
  %5320 = call i32 @isatty(i32 noundef %5319) #12
  %5321 = icmp ne i32 %5320, 0
  br i1 %5321, label %5322, label %5339

5322:                                             ; preds = %5317
  %5323 = load i32, ptr %112, align 4, !tbaa !5
  %5324 = call ptr @__errno_location() #13
  store i32 %5323, ptr %5324, align 4, !tbaa !5
  %5325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5326 = load i32, ptr @test_count, align 4, !tbaa !5
  %5327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5328 = load i32, ptr %5327, align 4, !tbaa !5
  %5329 = call ptr @s2n_strerror(i32 noundef %5328, ptr noundef @.str.6)
  %5330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  %5332 = call ptr @s2n_strerror_debug(i32 noundef %5331, ptr noundef @.str.6)
  %5333 = call ptr @__errno_location() #13
  %5334 = load i32, ptr %5333, align 4, !tbaa !5
  %5335 = call ptr @strerror(i32 noundef %5334) #12
  %5336 = call ptr @__errno_location() #13
  %5337 = load i32, ptr %5336, align 4, !tbaa !5
  %5338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5325, ptr noundef @.str.4, i32 noundef %5326, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 254, ptr noundef %5329, ptr noundef %5332, ptr noundef %5335, i32 noundef %5337) #12
  br label %5356

5339:                                             ; preds = %5317, %5310
  %5340 = load i32, ptr %112, align 4, !tbaa !5
  %5341 = call ptr @__errno_location() #13
  store i32 %5340, ptr %5341, align 4, !tbaa !5
  %5342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5343 = load i32, ptr @test_count, align 4, !tbaa !5
  %5344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5345 = load i32, ptr %5344, align 4, !tbaa !5
  %5346 = call ptr @s2n_strerror(i32 noundef %5345, ptr noundef @.str.6)
  %5347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5348 = load i32, ptr %5347, align 4, !tbaa !5
  %5349 = call ptr @s2n_strerror_debug(i32 noundef %5348, ptr noundef @.str.6)
  %5350 = call ptr @__errno_location() #13
  %5351 = load i32, ptr %5350, align 4, !tbaa !5
  %5352 = call ptr @strerror(i32 noundef %5351) #12
  %5353 = call ptr @__errno_location() #13
  %5354 = load i32, ptr %5353, align 4, !tbaa !5
  %5355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5342, ptr noundef @.str.7, i32 noundef %5343, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 254, ptr noundef %5346, ptr noundef %5349, ptr noundef %5352, i32 noundef %5354) #12
  br label %5356

5356:                                             ; preds = %5339, %5322
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #12
  br label %5357

5357:                                             ; preds = %5356
  br label %5358

5358:                                             ; preds = %5357
  call void @exit(i32 noundef 1) #14
  unreachable

5359:                                             ; No predecessors!
  br label %5360

5360:                                             ; preds = %5359
  br label %5361

5361:                                             ; preds = %5360, %5302
  br label %5362

5362:                                             ; preds = %5361
  br label %5363

5363:                                             ; preds = %5362
  call void @llvm.lifetime.end.p0(i64 2, ptr %103) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %102) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %97) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %80) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #12
  br label %5364

5364:                                             ; preds = %5363, %3698
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #12
  store ptr null, ptr %113, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #12
  store ptr null, ptr %114, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %115) #12
  call void @llvm.memset.p0.i64(ptr align 8 %115, i8 0, i64 40, i1 false)
  br label %5365

5365:                                             ; preds = %5364
  %5366 = load i32, ptr @test_count, align 4, !tbaa !5
  %5367 = add nsw i32 %5366, 1
  store i32 %5367, ptr @test_count, align 4, !tbaa !5
  %5368 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5368, ptr %113, align 8, !tbaa !9
  %5369 = icmp eq ptr %5368, null
  br i1 %5369, label %5370, label %5423

5370:                                             ; preds = %5365
  br label %5371

5371:                                             ; preds = %5370
  br label %5372

5372:                                             ; preds = %5371
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #12
  %5373 = call ptr @__errno_location() #13
  %5374 = load i32, ptr %5373, align 4, !tbaa !5
  store i32 %5374, ptr %116, align 4, !tbaa !5
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = call i32 @s2n_print_stacktrace(ptr noundef %5375)
  %5377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5378 = trunc i8 %5377 to i1
  br i1 %5378, label %5379, label %5401

5379:                                             ; preds = %5372
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = call i32 @fileno(ptr noundef %5380) #12
  %5382 = call i32 @isatty(i32 noundef %5381) #12
  %5383 = icmp ne i32 %5382, 0
  br i1 %5383, label %5384, label %5401

5384:                                             ; preds = %5379
  %5385 = load i32, ptr %116, align 4, !tbaa !5
  %5386 = call ptr @__errno_location() #13
  store i32 %5385, ptr %5386, align 4, !tbaa !5
  %5387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5388 = load i32, ptr @test_count, align 4, !tbaa !5
  %5389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5390 = load i32, ptr %5389, align 4, !tbaa !5
  %5391 = call ptr @s2n_strerror(i32 noundef %5390, ptr noundef @.str.6)
  %5392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5393 = load i32, ptr %5392, align 4, !tbaa !5
  %5394 = call ptr @s2n_strerror_debug(i32 noundef %5393, ptr noundef @.str.6)
  %5395 = call ptr @__errno_location() #13
  %5396 = load i32, ptr %5395, align 4, !tbaa !5
  %5397 = call ptr @strerror(i32 noundef %5396) #12
  %5398 = call ptr @__errno_location() #13
  %5399 = load i32, ptr %5398, align 4, !tbaa !5
  %5400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5387, ptr noundef @.str.4, i32 noundef %5388, ptr noundef @.str.49, ptr noundef @.str.3, i32 noundef 264, ptr noundef %5391, ptr noundef %5394, ptr noundef %5397, i32 noundef %5399) #12
  br label %5418

5401:                                             ; preds = %5379, %5372
  %5402 = load i32, ptr %116, align 4, !tbaa !5
  %5403 = call ptr @__errno_location() #13
  store i32 %5402, ptr %5403, align 4, !tbaa !5
  %5404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5405 = load i32, ptr @test_count, align 4, !tbaa !5
  %5406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5407 = load i32, ptr %5406, align 4, !tbaa !5
  %5408 = call ptr @s2n_strerror(i32 noundef %5407, ptr noundef @.str.6)
  %5409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5410 = load i32, ptr %5409, align 4, !tbaa !5
  %5411 = call ptr @s2n_strerror_debug(i32 noundef %5410, ptr noundef @.str.6)
  %5412 = call ptr @__errno_location() #13
  %5413 = load i32, ptr %5412, align 4, !tbaa !5
  %5414 = call ptr @strerror(i32 noundef %5413) #12
  %5415 = call ptr @__errno_location() #13
  %5416 = load i32, ptr %5415, align 4, !tbaa !5
  %5417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5404, ptr noundef @.str.7, i32 noundef %5405, ptr noundef @.str.49, ptr noundef @.str.3, i32 noundef 264, ptr noundef %5408, ptr noundef %5411, ptr noundef %5414, i32 noundef %5416) #12
  br label %5418

5418:                                             ; preds = %5401, %5384
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #12
  br label %5419

5419:                                             ; preds = %5418
  br label %5420

5420:                                             ; preds = %5419
  call void @exit(i32 noundef 1) #14
  unreachable

5421:                                             ; No predecessors!
  br label %5422

5422:                                             ; preds = %5421
  br label %5423

5423:                                             ; preds = %5422, %5365
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

5425:                                             ; preds = %5424
  br label %5426

5426:                                             ; preds = %5425
  %5427 = load i32, ptr @test_count, align 4, !tbaa !5
  %5428 = add nsw i32 %5427, 1
  store i32 %5428, ptr @test_count, align 4, !tbaa !5
  %5429 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5429, ptr %114, align 8, !tbaa !9
  %5430 = icmp eq ptr %5429, null
  br i1 %5430, label %5431, label %5484

5431:                                             ; preds = %5426
  br label %5432

5432:                                             ; preds = %5431
  br label %5433

5433:                                             ; preds = %5432
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #12
  %5434 = call ptr @__errno_location() #13
  %5435 = load i32, ptr %5434, align 4, !tbaa !5
  store i32 %5435, ptr %117, align 4, !tbaa !5
  %5436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5437 = call i32 @s2n_print_stacktrace(ptr noundef %5436)
  %5438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5439 = trunc i8 %5438 to i1
  br i1 %5439, label %5440, label %5462

5440:                                             ; preds = %5433
  %5441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5442 = call i32 @fileno(ptr noundef %5441) #12
  %5443 = call i32 @isatty(i32 noundef %5442) #12
  %5444 = icmp ne i32 %5443, 0
  br i1 %5444, label %5445, label %5462

5445:                                             ; preds = %5440
  %5446 = load i32, ptr %117, align 4, !tbaa !5
  %5447 = call ptr @__errno_location() #13
  store i32 %5446, ptr %5447, align 4, !tbaa !5
  %5448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5449 = load i32, ptr @test_count, align 4, !tbaa !5
  %5450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @s2n_strerror(i32 noundef %5451, ptr noundef @.str.6)
  %5453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call ptr @s2n_strerror_debug(i32 noundef %5454, ptr noundef @.str.6)
  %5456 = call ptr @__errno_location() #13
  %5457 = load i32, ptr %5456, align 4, !tbaa !5
  %5458 = call ptr @strerror(i32 noundef %5457) #12
  %5459 = call ptr @__errno_location() #13
  %5460 = load i32, ptr %5459, align 4, !tbaa !5
  %5461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5448, ptr noundef @.str.4, i32 noundef %5449, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 265, ptr noundef %5452, ptr noundef %5455, ptr noundef %5458, i32 noundef %5460) #12
  br label %5479

5462:                                             ; preds = %5440, %5433
  %5463 = load i32, ptr %117, align 4, !tbaa !5
  %5464 = call ptr @__errno_location() #13
  store i32 %5463, ptr %5464, align 4, !tbaa !5
  %5465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5466 = load i32, ptr @test_count, align 4, !tbaa !5
  %5467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call ptr @s2n_strerror(i32 noundef %5468, ptr noundef @.str.6)
  %5470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call ptr @s2n_strerror_debug(i32 noundef %5471, ptr noundef @.str.6)
  %5473 = call ptr @__errno_location() #13
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = call ptr @strerror(i32 noundef %5474) #12
  %5476 = call ptr @__errno_location() #13
  %5477 = load i32, ptr %5476, align 4, !tbaa !5
  %5478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5465, ptr noundef @.str.7, i32 noundef %5466, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 265, ptr noundef %5469, ptr noundef %5472, ptr noundef %5475, i32 noundef %5477) #12
  br label %5479

5479:                                             ; preds = %5462, %5445
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #12
  br label %5480

5480:                                             ; preds = %5479
  br label %5481

5481:                                             ; preds = %5480
  call void @exit(i32 noundef 1) #14
  unreachable

5482:                                             ; No predecessors!
  br label %5483

5483:                                             ; preds = %5482
  br label %5484

5484:                                             ; preds = %5483, %5426
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485
  br label %5487

5487:                                             ; preds = %5486
  %5488 = load i32, ptr @test_count, align 4, !tbaa !5
  %5489 = add nsw i32 %5488, 1
  store i32 %5489, ptr @test_count, align 4, !tbaa !5
  %5490 = load ptr, ptr %114, align 8, !tbaa !9
  %5491 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %5490)
  %5492 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  store i32 %5491, ptr %5492, align 4
  %5493 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  %5494 = load i32, ptr %5493, align 4
  %5495 = call zeroext i1 @s2n_result_is_ok(i32 %5494)
  br i1 %5495, label %5549, label %5496

5496:                                             ; preds = %5487
  br label %5497

5497:                                             ; preds = %5496
  br label %5498

5498:                                             ; preds = %5497
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #12
  %5499 = call ptr @__errno_location() #13
  %5500 = load i32, ptr %5499, align 4, !tbaa !5
  store i32 %5500, ptr %119, align 4, !tbaa !5
  %5501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5502 = call i32 @s2n_print_stacktrace(ptr noundef %5501)
  %5503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5504 = trunc i8 %5503 to i1
  br i1 %5504, label %5505, label %5527

5505:                                             ; preds = %5498
  %5506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5507 = call i32 @fileno(ptr noundef %5506) #12
  %5508 = call i32 @isatty(i32 noundef %5507) #12
  %5509 = icmp ne i32 %5508, 0
  br i1 %5509, label %5510, label %5527

5510:                                             ; preds = %5505
  %5511 = load i32, ptr %119, align 4, !tbaa !5
  %5512 = call ptr @__errno_location() #13
  store i32 %5511, ptr %5512, align 4, !tbaa !5
  %5513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5514 = load i32, ptr @test_count, align 4, !tbaa !5
  %5515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5516 = load i32, ptr %5515, align 4, !tbaa !5
  %5517 = call ptr @s2n_strerror(i32 noundef %5516, ptr noundef @.str.6)
  %5518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5519 = load i32, ptr %5518, align 4, !tbaa !5
  %5520 = call ptr @s2n_strerror_debug(i32 noundef %5519, ptr noundef @.str.6)
  %5521 = call ptr @__errno_location() #13
  %5522 = load i32, ptr %5521, align 4, !tbaa !5
  %5523 = call ptr @strerror(i32 noundef %5522) #12
  %5524 = call ptr @__errno_location() #13
  %5525 = load i32, ptr %5524, align 4, !tbaa !5
  %5526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5513, ptr noundef @.str.4, i32 noundef %5514, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 266, ptr noundef %5517, ptr noundef %5520, ptr noundef %5523, i32 noundef %5525) #12
  br label %5544

5527:                                             ; preds = %5505, %5498
  %5528 = load i32, ptr %119, align 4, !tbaa !5
  %5529 = call ptr @__errno_location() #13
  store i32 %5528, ptr %5529, align 4, !tbaa !5
  %5530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5531 = load i32, ptr @test_count, align 4, !tbaa !5
  %5532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5533 = load i32, ptr %5532, align 4, !tbaa !5
  %5534 = call ptr @s2n_strerror(i32 noundef %5533, ptr noundef @.str.6)
  %5535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5536 = load i32, ptr %5535, align 4, !tbaa !5
  %5537 = call ptr @s2n_strerror_debug(i32 noundef %5536, ptr noundef @.str.6)
  %5538 = call ptr @__errno_location() #13
  %5539 = load i32, ptr %5538, align 4, !tbaa !5
  %5540 = call ptr @strerror(i32 noundef %5539) #12
  %5541 = call ptr @__errno_location() #13
  %5542 = load i32, ptr %5541, align 4, !tbaa !5
  %5543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5530, ptr noundef @.str.7, i32 noundef %5531, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 266, ptr noundef %5534, ptr noundef %5537, ptr noundef %5540, i32 noundef %5542) #12
  br label %5544

5544:                                             ; preds = %5527, %5510
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #12
  br label %5545

5545:                                             ; preds = %5544
  br label %5546

5546:                                             ; preds = %5545
  call void @exit(i32 noundef 1) #14
  unreachable

5547:                                             ; No predecessors!
  br label %5548

5548:                                             ; preds = %5547
  br label %5549

5549:                                             ; preds = %5548, %5487
  br label %5550

5550:                                             ; preds = %5549
  br label %5551

5551:                                             ; preds = %5550
  br label %5552

5552:                                             ; preds = %5551
  %5553 = load i32, ptr @test_count, align 4, !tbaa !5
  %5554 = add nsw i32 %5553, 1
  store i32 %5554, ptr @test_count, align 4, !tbaa !5
  %5555 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %115, i32 noundef 0)
  %5556 = icmp eq i32 %5555, -1
  br i1 %5556, label %5557, label %5610

5557:                                             ; preds = %5552
  br label %5558

5558:                                             ; preds = %5557
  br label %5559

5559:                                             ; preds = %5558
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #12
  %5560 = call ptr @__errno_location() #13
  %5561 = load i32, ptr %5560, align 4, !tbaa !5
  store i32 %5561, ptr %120, align 4, !tbaa !5
  %5562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5563 = call i32 @s2n_print_stacktrace(ptr noundef %5562)
  %5564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5565 = trunc i8 %5564 to i1
  br i1 %5565, label %5566, label %5588

5566:                                             ; preds = %5559
  %5567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5568 = call i32 @fileno(ptr noundef %5567) #12
  %5569 = call i32 @isatty(i32 noundef %5568) #12
  %5570 = icmp ne i32 %5569, 0
  br i1 %5570, label %5571, label %5588

5571:                                             ; preds = %5566
  %5572 = load i32, ptr %120, align 4, !tbaa !5
  %5573 = call ptr @__errno_location() #13
  store i32 %5572, ptr %5573, align 4, !tbaa !5
  %5574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5575 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5577, ptr noundef @.str.6)
  %5579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  %5581 = call ptr @s2n_strerror_debug(i32 noundef %5580, ptr noundef @.str.6)
  %5582 = call ptr @__errno_location() #13
  %5583 = load i32, ptr %5582, align 4, !tbaa !5
  %5584 = call ptr @strerror(i32 noundef %5583) #12
  %5585 = call ptr @__errno_location() #13
  %5586 = load i32, ptr %5585, align 4, !tbaa !5
  %5587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5574, ptr noundef @.str.4, i32 noundef %5575, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 268, ptr noundef %5578, ptr noundef %5581, ptr noundef %5584, i32 noundef %5586) #12
  br label %5605

5588:                                             ; preds = %5566, %5559
  %5589 = load i32, ptr %120, align 4, !tbaa !5
  %5590 = call ptr @__errno_location() #13
  store i32 %5589, ptr %5590, align 4, !tbaa !5
  %5591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5592 = load i32, ptr @test_count, align 4, !tbaa !5
  %5593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5594 = load i32, ptr %5593, align 4, !tbaa !5
  %5595 = call ptr @s2n_strerror(i32 noundef %5594, ptr noundef @.str.6)
  %5596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  %5598 = call ptr @s2n_strerror_debug(i32 noundef %5597, ptr noundef @.str.6)
  %5599 = call ptr @__errno_location() #13
  %5600 = load i32, ptr %5599, align 4, !tbaa !5
  %5601 = call ptr @strerror(i32 noundef %5600) #12
  %5602 = call ptr @__errno_location() #13
  %5603 = load i32, ptr %5602, align 4, !tbaa !5
  %5604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5591, ptr noundef @.str.7, i32 noundef %5592, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 268, ptr noundef %5595, ptr noundef %5598, ptr noundef %5601, i32 noundef %5603) #12
  br label %5605

5605:                                             ; preds = %5588, %5571
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #12
  br label %5606

5606:                                             ; preds = %5605
  br label %5607

5607:                                             ; preds = %5606
  call void @exit(i32 noundef 1) #14
  unreachable

5608:                                             ; No predecessors!
  br label %5609

5609:                                             ; preds = %5608
  br label %5610

5610:                                             ; preds = %5609, %5552
  br label %5611

5611:                                             ; preds = %5610
  br label %5612

5612:                                             ; preds = %5611
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #12
  store ptr null, ptr %121, align 8, !tbaa !9
  br label %5613

5613:                                             ; preds = %5612
  %5614 = load i32, ptr @test_count, align 4, !tbaa !5
  %5615 = add nsw i32 %5614, 1
  store i32 %5615, ptr @test_count, align 4, !tbaa !5
  %5616 = load ptr, ptr %114, align 8, !tbaa !9
  %5617 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %5616, ptr noundef %121)
  %5618 = icmp eq i32 %5617, -1
  br i1 %5618, label %5619, label %5672

5619:                                             ; preds = %5613
  br label %5620

5620:                                             ; preds = %5619
  br label %5621

5621:                                             ; preds = %5620
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #12
  %5622 = call ptr @__errno_location() #13
  %5623 = load i32, ptr %5622, align 4, !tbaa !5
  store i32 %5623, ptr %122, align 4, !tbaa !5
  %5624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5625 = call i32 @s2n_print_stacktrace(ptr noundef %5624)
  %5626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5627 = trunc i8 %5626 to i1
  br i1 %5627, label %5628, label %5650

5628:                                             ; preds = %5621
  %5629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5630 = call i32 @fileno(ptr noundef %5629) #12
  %5631 = call i32 @isatty(i32 noundef %5630) #12
  %5632 = icmp ne i32 %5631, 0
  br i1 %5632, label %5633, label %5650

5633:                                             ; preds = %5628
  %5634 = load i32, ptr %122, align 4, !tbaa !5
  %5635 = call ptr @__errno_location() #13
  store i32 %5634, ptr %5635, align 4, !tbaa !5
  %5636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5637 = load i32, ptr @test_count, align 4, !tbaa !5
  %5638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5639 = load i32, ptr %5638, align 4, !tbaa !5
  %5640 = call ptr @s2n_strerror(i32 noundef %5639, ptr noundef @.str.6)
  %5641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5642 = load i32, ptr %5641, align 4, !tbaa !5
  %5643 = call ptr @s2n_strerror_debug(i32 noundef %5642, ptr noundef @.str.6)
  %5644 = call ptr @__errno_location() #13
  %5645 = load i32, ptr %5644, align 4, !tbaa !5
  %5646 = call ptr @strerror(i32 noundef %5645) #12
  %5647 = call ptr @__errno_location() #13
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5636, ptr noundef @.str.4, i32 noundef %5637, ptr noundef @.str.52, ptr noundef @.str.3, i32 noundef 271, ptr noundef %5640, ptr noundef %5643, ptr noundef %5646, i32 noundef %5648) #12
  br label %5667

5650:                                             ; preds = %5628, %5621
  %5651 = load i32, ptr %122, align 4, !tbaa !5
  %5652 = call ptr @__errno_location() #13
  store i32 %5651, ptr %5652, align 4, !tbaa !5
  %5653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5654 = load i32, ptr @test_count, align 4, !tbaa !5
  %5655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  %5657 = call ptr @s2n_strerror(i32 noundef %5656, ptr noundef @.str.6)
  %5658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call ptr @s2n_strerror_debug(i32 noundef %5659, ptr noundef @.str.6)
  %5661 = call ptr @__errno_location() #13
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @strerror(i32 noundef %5662) #12
  %5664 = call ptr @__errno_location() #13
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5653, ptr noundef @.str.7, i32 noundef %5654, ptr noundef @.str.52, ptr noundef @.str.3, i32 noundef 271, ptr noundef %5657, ptr noundef %5660, ptr noundef %5663, i32 noundef %5665) #12
  br label %5667

5667:                                             ; preds = %5650, %5633
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #12
  br label %5668

5668:                                             ; preds = %5667
  br label %5669

5669:                                             ; preds = %5668
  call void @exit(i32 noundef 1) #14
  unreachable

5670:                                             ; No predecessors!
  br label %5671

5671:                                             ; preds = %5670
  br label %5672

5672:                                             ; preds = %5671, %5613
  br label %5673

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673
  br label %5675

5675:                                             ; preds = %5674
  %5676 = load i32, ptr @test_count, align 4, !tbaa !5
  %5677 = add nsw i32 %5676, 1
  store i32 %5677, ptr @test_count, align 4, !tbaa !5
  %5678 = load ptr, ptr %121, align 8, !tbaa !9
  %5679 = icmp eq ptr %5678, null
  br i1 %5679, label %5680, label %5733

5680:                                             ; preds = %5675
  br label %5681

5681:                                             ; preds = %5680
  br label %5682

5682:                                             ; preds = %5681
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #12
  %5683 = call ptr @__errno_location() #13
  %5684 = load i32, ptr %5683, align 4, !tbaa !5
  store i32 %5684, ptr %123, align 4, !tbaa !5
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = call i32 @s2n_print_stacktrace(ptr noundef %5685)
  %5687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5688 = trunc i8 %5687 to i1
  br i1 %5688, label %5689, label %5711

5689:                                             ; preds = %5682
  %5690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5691 = call i32 @fileno(ptr noundef %5690) #12
  %5692 = call i32 @isatty(i32 noundef %5691) #12
  %5693 = icmp ne i32 %5692, 0
  br i1 %5693, label %5694, label %5711

5694:                                             ; preds = %5689
  %5695 = load i32, ptr %123, align 4, !tbaa !5
  %5696 = call ptr @__errno_location() #13
  store i32 %5695, ptr %5696, align 4, !tbaa !5
  %5697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5698 = load i32, ptr @test_count, align 4, !tbaa !5
  %5699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5700 = load i32, ptr %5699, align 4, !tbaa !5
  %5701 = call ptr @s2n_strerror(i32 noundef %5700, ptr noundef @.str.6)
  %5702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5703 = load i32, ptr %5702, align 4, !tbaa !5
  %5704 = call ptr @s2n_strerror_debug(i32 noundef %5703, ptr noundef @.str.6)
  %5705 = call ptr @__errno_location() #13
  %5706 = load i32, ptr %5705, align 4, !tbaa !5
  %5707 = call ptr @strerror(i32 noundef %5706) #12
  %5708 = call ptr @__errno_location() #13
  %5709 = load i32, ptr %5708, align 4, !tbaa !5
  %5710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5697, ptr noundef @.str.4, i32 noundef %5698, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 272, ptr noundef %5701, ptr noundef %5704, ptr noundef %5707, i32 noundef %5709) #12
  br label %5728

5711:                                             ; preds = %5689, %5682
  %5712 = load i32, ptr %123, align 4, !tbaa !5
  %5713 = call ptr @__errno_location() #13
  store i32 %5712, ptr %5713, align 4, !tbaa !5
  %5714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5715 = load i32, ptr @test_count, align 4, !tbaa !5
  %5716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call ptr @s2n_strerror(i32 noundef %5717, ptr noundef @.str.6)
  %5719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call ptr @s2n_strerror_debug(i32 noundef %5720, ptr noundef @.str.6)
  %5722 = call ptr @__errno_location() #13
  %5723 = load i32, ptr %5722, align 4, !tbaa !5
  %5724 = call ptr @strerror(i32 noundef %5723) #12
  %5725 = call ptr @__errno_location() #13
  %5726 = load i32, ptr %5725, align 4, !tbaa !5
  %5727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5714, ptr noundef @.str.7, i32 noundef %5715, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 272, ptr noundef %5718, ptr noundef %5721, ptr noundef %5724, i32 noundef %5726) #12
  br label %5728

5728:                                             ; preds = %5711, %5694
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #12
  br label %5729

5729:                                             ; preds = %5728
  br label %5730

5730:                                             ; preds = %5729
  call void @exit(i32 noundef 1) #14
  unreachable

5731:                                             ; No predecessors!
  br label %5732

5732:                                             ; preds = %5731
  br label %5733

5733:                                             ; preds = %5732, %5675
  br label %5734

5734:                                             ; preds = %5733
  br label %5735

5735:                                             ; preds = %5734
  br label %5736

5736:                                             ; preds = %5735
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #12
  store i32 32, ptr %124, align 4, !tbaa !5
  %5737 = load i32, ptr %124, align 4, !tbaa !5
  %5738 = icmp ne i32 %5737, 0
  %5739 = xor i1 %5738, true
  %5740 = xor i1 %5739, true
  %5741 = zext i1 %5740 to i32
  %5742 = sext i32 %5741 to i64
  %5743 = call i64 @llvm.expect.i64(i64 %5742, i64 1)
  %5744 = icmp ne i64 %5743, 0
  br i1 %5744, label %5745, label %5795

5745:                                             ; preds = %5736
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #12
  %5746 = load ptr, ptr %113, align 8, !tbaa !9
  %5747 = getelementptr inbounds %struct.s2n_connection, ptr %5746, i32 0, i32 32
  %5748 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5747, i32 0, i32 13
  %5749 = getelementptr inbounds [32 x i8], ptr %5748, i64 0, i64 0
  %5750 = load i32, ptr %124, align 4, !tbaa !5
  %5751 = sext i32 %5750 to i64
  %5752 = call ptr @s2n_ensure_memmove_trace(ptr noundef %5749, ptr noundef @hello_retry_req_random, i64 noundef %5751)
  store ptr %5752, ptr %125, align 8, !tbaa !9
  br label %5753

5753:                                             ; preds = %5745
  %5754 = load ptr, ptr %125, align 8, !tbaa !9
  %5755 = icmp ne ptr %5754, null
  br i1 %5755, label %5789, label %5756

5756:                                             ; preds = %5753
  br label %5757

5757:                                             ; preds = %5756
  br label %5758

5758:                                             ; preds = %5757
  %5759 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5760 = getelementptr inbounds %struct.s2n_debug_info, ptr %5759, i32 0, i32 0
  store ptr @.str.53, ptr %5760, align 8, !tbaa !55
  %5761 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5762 = getelementptr inbounds %struct.s2n_debug_info, ptr %5761, i32 0, i32 0
  %5763 = load ptr, ptr %5762, align 8, !tbaa !55
  %5764 = getelementptr inbounds i8, ptr %5763, i64 21
  %5765 = call ptr @strrchr(ptr noundef %5764, i32 noundef 47) #15
  %5766 = icmp ne ptr %5765, null
  br i1 %5766, label %5767, label %5774

5767:                                             ; preds = %5758
  %5768 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5769 = getelementptr inbounds %struct.s2n_debug_info, ptr %5768, i32 0, i32 0
  %5770 = load ptr, ptr %5769, align 8, !tbaa !55
  %5771 = getelementptr inbounds i8, ptr %5770, i64 21
  %5772 = call ptr @strrchr(ptr noundef %5771, i32 noundef 47) #15
  %5773 = getelementptr inbounds i8, ptr %5772, i64 1
  br label %5779

5774:                                             ; preds = %5758
  %5775 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5776 = getelementptr inbounds %struct.s2n_debug_info, ptr %5775, i32 0, i32 0
  %5777 = load ptr, ptr %5776, align 8, !tbaa !55
  %5778 = getelementptr inbounds i8, ptr %5777, i64 21
  br label %5779

5779:                                             ; preds = %5774, %5767
  %5780 = phi ptr [ %5773, %5767 ], [ %5778, %5774 ]
  %5781 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %5782 = getelementptr inbounds %struct.s2n_debug_info, ptr %5781, i32 0, i32 1
  store ptr %5780, ptr %5782, align 8, !tbaa !57
  %5783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %5783, align 4, !tbaa !5
  %5784 = call i32 @s2n_calculate_stacktrace()
  br label %5785

5785:                                             ; preds = %5779
  br label %5786

5786:                                             ; preds = %5785
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %126, align 4
  br label %5792

5787:                                             ; No predecessors!
  br label %5788

5788:                                             ; preds = %5787
  br label %5789

5789:                                             ; preds = %5788, %5753
  br label %5790

5790:                                             ; preds = %5789
  br label %5791

5791:                                             ; preds = %5790
  store i32 0, ptr %126, align 4
  br label %5792

5792:                                             ; preds = %5791, %5786
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #12
  %5793 = load i32, ptr %126, align 4
  switch i32 %5793, label %5796 [
    i32 0, label %5794
  ]

5794:                                             ; preds = %5792
  br label %5795

5795:                                             ; preds = %5794, %5736
  store i32 0, ptr %126, align 4
  br label %5796

5796:                                             ; preds = %5795, %5792
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #12
  %5797 = load i32, ptr %126, align 4
  switch i32 %5797, label %6775 [
    i32 0, label %5798
  ]

5798:                                             ; preds = %5796
  br label %5799

5799:                                             ; preds = %5798
  br label %5800

5800:                                             ; preds = %5799
  br label %5801

5801:                                             ; preds = %5800
  %5802 = load i32, ptr @test_count, align 4, !tbaa !5
  %5803 = add nsw i32 %5802, 1
  store i32 %5803, ptr @test_count, align 4, !tbaa !5
  %5804 = load ptr, ptr %113, align 8, !tbaa !9
  %5805 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %5804, i8 noundef zeroext 34)
  %5806 = icmp eq i32 %5805, -1
  br i1 %5806, label %5807, label %5860

5807:                                             ; preds = %5801
  br label %5808

5808:                                             ; preds = %5807
  br label %5809

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

5816:                                             ; preds = %5809
  %5817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5818 = call i32 @fileno(ptr noundef %5817) #12
  %5819 = call i32 @isatty(i32 noundef %5818) #12
  %5820 = icmp ne i32 %5819, 0
  br i1 %5820, label %5821, label %5838

5821:                                             ; preds = %5816
  %5822 = load i32, ptr %127, align 4, !tbaa !5
  %5823 = call ptr @__errno_location() #13
  store i32 %5822, ptr %5823, align 4, !tbaa !5
  %5824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5825 = load i32, ptr @test_count, align 4, !tbaa !5
  %5826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5827 = load i32, ptr %5826, align 4, !tbaa !5
  %5828 = call ptr @s2n_strerror(i32 noundef %5827, ptr noundef @.str.6)
  %5829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5830 = load i32, ptr %5829, align 4, !tbaa !5
  %5831 = call ptr @s2n_strerror_debug(i32 noundef %5830, ptr noundef @.str.6)
  %5832 = call ptr @__errno_location() #13
  %5833 = load i32, ptr %5832, align 4, !tbaa !5
  %5834 = call ptr @strerror(i32 noundef %5833) #12
  %5835 = call ptr @__errno_location() #13
  %5836 = load i32, ptr %5835, align 4, !tbaa !5
  %5837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5824, ptr noundef @.str.4, i32 noundef %5825, ptr noundef @.str.54, ptr noundef @.str.3, i32 noundef 276, ptr noundef %5828, ptr noundef %5831, ptr noundef %5834, i32 noundef %5836) #12
  br label %5855

5838:                                             ; preds = %5816, %5809
  %5839 = load i32, ptr %127, align 4, !tbaa !5
  %5840 = call ptr @__errno_location() #13
  store i32 %5839, ptr %5840, align 4, !tbaa !5
  %5841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5842 = load i32, ptr @test_count, align 4, !tbaa !5
  %5843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5844 = load i32, ptr %5843, align 4, !tbaa !5
  %5845 = call ptr @s2n_strerror(i32 noundef %5844, ptr noundef @.str.6)
  %5846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call ptr @s2n_strerror_debug(i32 noundef %5847, ptr noundef @.str.6)
  %5849 = call ptr @__errno_location() #13
  %5850 = load i32, ptr %5849, align 4, !tbaa !5
  %5851 = call ptr @strerror(i32 noundef %5850) #12
  %5852 = call ptr @__errno_location() #13
  %5853 = load i32, ptr %5852, align 4, !tbaa !5
  %5854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5841, ptr noundef @.str.7, i32 noundef %5842, ptr noundef @.str.54, ptr noundef @.str.3, i32 noundef 276, ptr noundef %5845, ptr noundef %5848, ptr noundef %5851, i32 noundef %5853) #12
  br label %5855

5855:                                             ; preds = %5838, %5821
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #12
  br label %5856

5856:                                             ; preds = %5855
  br label %5857

5857:                                             ; preds = %5856
  call void @exit(i32 noundef 1) #14
  unreachable

5858:                                             ; No predecessors!
  br label %5859

5859:                                             ; preds = %5858
  br label %5860

5860:                                             ; preds = %5859, %5801
  br label %5861

5861:                                             ; preds = %5860
  br label %5862

5862:                                             ; preds = %5861
  br label %5863

5863:                                             ; preds = %5862
  %5864 = load i32, ptr @test_count, align 4, !tbaa !5
  %5865 = add nsw i32 %5864, 1
  store i32 %5865, ptr @test_count, align 4, !tbaa !5
  %5866 = load ptr, ptr %113, align 8, !tbaa !9
  %5867 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %5866)
  %5868 = icmp eq i32 %5867, -1
  br i1 %5868, label %5869, label %5922

5869:                                             ; preds = %5863
  br label %5870

5870:                                             ; preds = %5869
  br label %5871

5871:                                             ; preds = %5870
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #12
  %5872 = call ptr @__errno_location() #13
  %5873 = load i32, ptr %5872, align 4, !tbaa !5
  store i32 %5873, ptr %128, align 4, !tbaa !5
  %5874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5875 = call i32 @s2n_print_stacktrace(ptr noundef %5874)
  %5876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5877 = trunc i8 %5876 to i1
  br i1 %5877, label %5878, label %5900

5878:                                             ; preds = %5871
  %5879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5880 = call i32 @fileno(ptr noundef %5879) #12
  %5881 = call i32 @isatty(i32 noundef %5880) #12
  %5882 = icmp ne i32 %5881, 0
  br i1 %5882, label %5883, label %5900

5883:                                             ; preds = %5878
  %5884 = load i32, ptr %128, align 4, !tbaa !5
  %5885 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %5894 = call ptr @__errno_location() #13
  %5895 = load i32, ptr %5894, align 4, !tbaa !5
  %5896 = call ptr @strerror(i32 noundef %5895) #12
  %5897 = call ptr @__errno_location() #13
  %5898 = load i32, ptr %5897, align 4, !tbaa !5
  %5899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5886, ptr noundef @.str.4, i32 noundef %5887, ptr noundef @.str.55, ptr noundef @.str.3, i32 noundef 277, ptr noundef %5890, ptr noundef %5893, ptr noundef %5896, i32 noundef %5898) #12
  br label %5917

5900:                                             ; preds = %5878, %5871
  %5901 = load i32, ptr %128, align 4, !tbaa !5
  %5902 = call ptr @__errno_location() #13
  store i32 %5901, ptr %5902, align 4, !tbaa !5
  %5903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5904 = load i32, ptr @test_count, align 4, !tbaa !5
  %5905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5906 = load i32, ptr %5905, align 4, !tbaa !5
  %5907 = call ptr @s2n_strerror(i32 noundef %5906, ptr noundef @.str.6)
  %5908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5909 = load i32, ptr %5908, align 4, !tbaa !5
  %5910 = call ptr @s2n_strerror_debug(i32 noundef %5909, ptr noundef @.str.6)
  %5911 = call ptr @__errno_location() #13
  %5912 = load i32, ptr %5911, align 4, !tbaa !5
  %5913 = call ptr @strerror(i32 noundef %5912) #12
  %5914 = call ptr @__errno_location() #13
  %5915 = load i32, ptr %5914, align 4, !tbaa !5
  %5916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5903, ptr noundef @.str.7, i32 noundef %5904, ptr noundef @.str.55, ptr noundef @.str.3, i32 noundef 277, ptr noundef %5907, ptr noundef %5910, ptr noundef %5913, i32 noundef %5915) #12
  br label %5917

5917:                                             ; preds = %5900, %5883
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #12
  br label %5918

5918:                                             ; preds = %5917
  br label %5919

5919:                                             ; preds = %5918
  call void @exit(i32 noundef 1) #14
  unreachable

5920:                                             ; No predecessors!
  br label %5921

5921:                                             ; preds = %5920
  br label %5922

5922:                                             ; preds = %5921, %5863
  br label %5923

5923:                                             ; preds = %5922
  br label %5924

5924:                                             ; preds = %5923
  %5925 = load ptr, ptr %121, align 8, !tbaa !9
  %5926 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %5925, i32 0, i32 1
  %5927 = load ptr, ptr %5926, align 8, !tbaa !24
  %5928 = getelementptr inbounds ptr, ptr %5927, i64 0
  %5929 = load ptr, ptr %5928, align 8, !tbaa !9
  %5930 = load ptr, ptr %113, align 8, !tbaa !9
  %5931 = getelementptr inbounds %struct.s2n_connection, ptr %5930, i32 0, i32 31
  %5932 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5931, i32 0, i32 1
  %5933 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5932, i32 0, i32 0
  store ptr %5929, ptr %5933, align 8, !tbaa !54
  br label %5934

5934:                                             ; preds = %5924
  %5935 = load i32, ptr @test_count, align 4, !tbaa !5
  %5936 = add nsw i32 %5935, 1
  store i32 %5936, ptr @test_count, align 4, !tbaa !5
  %5937 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %5938 = load ptr, ptr %113, align 8, !tbaa !9
  %5939 = call i32 %5937(ptr noundef %5938, ptr noundef %115)
  %5940 = icmp eq i32 %5939, -1
  br i1 %5940, label %5941, label %5994

5941:                                             ; preds = %5934
  br label %5942

5942:                                             ; preds = %5941
  br label %5943

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

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

5955:                                             ; preds = %5950
  %5956 = load i32, ptr %129, align 4, !tbaa !5
  %5957 = call ptr @__errno_location() #13
  store i32 %5956, ptr %5957, align 4, !tbaa !5
  %5958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5959 = load i32, ptr @test_count, align 4, !tbaa !5
  %5960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5961 = load i32, ptr %5960, align 4, !tbaa !5
  %5962 = call ptr @s2n_strerror(i32 noundef %5961, ptr noundef @.str.6)
  %5963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5964 = load i32, ptr %5963, align 4, !tbaa !5
  %5965 = call ptr @s2n_strerror_debug(i32 noundef %5964, ptr noundef @.str.6)
  %5966 = call ptr @__errno_location() #13
  %5967 = load i32, ptr %5966, align 4, !tbaa !5
  %5968 = call ptr @strerror(i32 noundef %5967) #12
  %5969 = call ptr @__errno_location() #13
  %5970 = load i32, ptr %5969, align 4, !tbaa !5
  %5971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5958, ptr noundef @.str.4, i32 noundef %5959, ptr noundef @.str.56, ptr noundef @.str.3, i32 noundef 282, ptr noundef %5962, ptr noundef %5965, ptr noundef %5968, i32 noundef %5970) #12
  br label %5989

5972:                                             ; preds = %5950, %5943
  %5973 = load i32, ptr %129, align 4, !tbaa !5
  %5974 = call ptr @__errno_location() #13
  store i32 %5973, ptr %5974, align 4, !tbaa !5
  %5975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5976 = load i32, ptr @test_count, align 4, !tbaa !5
  %5977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5978 = load i32, ptr %5977, align 4, !tbaa !5
  %5979 = call ptr @s2n_strerror(i32 noundef %5978, ptr noundef @.str.6)
  %5980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5981 = load i32, ptr %5980, align 4, !tbaa !5
  %5982 = call ptr @s2n_strerror_debug(i32 noundef %5981, ptr noundef @.str.6)
  %5983 = call ptr @__errno_location() #13
  %5984 = load i32, ptr %5983, align 4, !tbaa !5
  %5985 = call ptr @strerror(i32 noundef %5984) #12
  %5986 = call ptr @__errno_location() #13
  %5987 = load i32, ptr %5986, align 4, !tbaa !5
  %5988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5975, ptr noundef @.str.7, i32 noundef %5976, ptr noundef @.str.56, ptr noundef @.str.3, i32 noundef 282, ptr noundef %5979, ptr noundef %5982, ptr noundef %5985, i32 noundef %5987) #12
  br label %5989

5989:                                             ; preds = %5972, %5955
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #12
  br label %5990

5990:                                             ; preds = %5989
  br label %5991

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

5992:                                             ; No predecessors!
  br label %5993

5993:                                             ; preds = %5992
  br label %5994

5994:                                             ; preds = %5993, %5934
  br label %5995

5995:                                             ; preds = %5994
  br label %5996

5996:                                             ; preds = %5995
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #12
  %5997 = load ptr, ptr %113, align 8, !tbaa !9
  %5998 = getelementptr inbounds %struct.s2n_connection, ptr %5997, i32 0, i32 31
  %5999 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5998, i32 0, i32 3
  store ptr %5999, ptr %130, align 8, !tbaa !9
  br label %6000

6000:                                             ; preds = %5996
  %6001 = load i32, ptr @test_count, align 4, !tbaa !5
  %6002 = add nsw i32 %6001, 1
  store i32 %6002, ptr @test_count, align 4, !tbaa !5
  %6003 = load ptr, ptr %130, align 8, !tbaa !9
  %6004 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6003, i32 0, i32 0
  %6005 = load ptr, ptr %6004, align 8, !tbaa !22
  %6006 = load ptr, ptr %113, align 8, !tbaa !9
  %6007 = getelementptr inbounds %struct.s2n_connection, ptr %6006, i32 0, i32 31
  %6008 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6007, i32 0, i32 1
  %6009 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6008, i32 0, i32 0
  %6010 = load ptr, ptr %6009, align 8, !tbaa !54
  %6011 = icmp eq ptr %6005, %6010
  br i1 %6011, label %6065, label %6012

6012:                                             ; preds = %6000
  br label %6013

6013:                                             ; preds = %6012
  br label %6014

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

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

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

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

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

6061:                                             ; preds = %6060
  br label %6062

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

6063:                                             ; No predecessors!
  br label %6064

6064:                                             ; preds = %6063
  br label %6065

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

6066:                                             ; preds = %6065
  br label %6067

6067:                                             ; preds = %6066
  br label %6068

6068:                                             ; preds = %6067
  %6069 = load i32, ptr @test_count, align 4, !tbaa !5
  %6070 = add nsw i32 %6069, 1
  store i32 %6070, ptr @test_count, align 4, !tbaa !5
  %6071 = load ptr, ptr %130, align 8, !tbaa !9
  %6072 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6071, i32 0, i32 0
  %6073 = load ptr, ptr %6072, align 8, !tbaa !22
  %6074 = icmp eq ptr %6073, null
  br i1 %6074, label %6075, label %6128

6075:                                             ; preds = %6068
  br label %6076

6076:                                             ; preds = %6075
  br label %6077

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

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

6089:                                             ; preds = %6084
  %6090 = load i32, ptr %132, align 4, !tbaa !5
  %6091 = call ptr @__errno_location() #13
  store i32 %6090, ptr %6091, align 4, !tbaa !5
  %6092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6093 = load i32, ptr @test_count, align 4, !tbaa !5
  %6094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6095 = load i32, ptr %6094, align 4, !tbaa !5
  %6096 = call ptr @s2n_strerror(i32 noundef %6095, ptr noundef @.str.6)
  %6097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6098 = load i32, ptr %6097, align 4, !tbaa !5
  %6099 = call ptr @s2n_strerror_debug(i32 noundef %6098, ptr noundef @.str.6)
  %6100 = call ptr @__errno_location() #13
  %6101 = load i32, ptr %6100, align 4, !tbaa !5
  %6102 = call ptr @strerror(i32 noundef %6101) #12
  %6103 = call ptr @__errno_location() #13
  %6104 = load i32, ptr %6103, align 4, !tbaa !5
  %6105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6092, ptr noundef @.str.4, i32 noundef %6093, ptr noundef @.str.58, ptr noundef @.str.3, i32 noundef 287, ptr noundef %6096, ptr noundef %6099, ptr noundef %6102, i32 noundef %6104) #12
  br label %6123

6106:                                             ; preds = %6084, %6077
  %6107 = load i32, ptr %132, align 4, !tbaa !5
  %6108 = call ptr @__errno_location() #13
  store i32 %6107, ptr %6108, align 4, !tbaa !5
  %6109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6110 = load i32, ptr @test_count, align 4, !tbaa !5
  %6111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6112 = load i32, ptr %6111, align 4, !tbaa !5
  %6113 = call ptr @s2n_strerror(i32 noundef %6112, ptr noundef @.str.6)
  %6114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6115 = load i32, ptr %6114, align 4, !tbaa !5
  %6116 = call ptr @s2n_strerror_debug(i32 noundef %6115, ptr noundef @.str.6)
  %6117 = call ptr @__errno_location() #13
  %6118 = load i32, ptr %6117, align 4, !tbaa !5
  %6119 = call ptr @strerror(i32 noundef %6118) #12
  %6120 = call ptr @__errno_location() #13
  %6121 = load i32, ptr %6120, align 4, !tbaa !5
  %6122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6109, ptr noundef @.str.7, i32 noundef %6110, ptr noundef @.str.58, ptr noundef @.str.3, i32 noundef 287, ptr noundef %6113, ptr noundef %6116, ptr noundef %6119, i32 noundef %6121) #12
  br label %6123

6123:                                             ; preds = %6106, %6089
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #12
  br label %6124

6124:                                             ; preds = %6123
  br label %6125

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

6126:                                             ; No predecessors!
  br label %6127

6127:                                             ; preds = %6126
  br label %6128

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

6129:                                             ; preds = %6128
  br label %6130

6130:                                             ; preds = %6129
  br label %6131

6131:                                             ; preds = %6130
  %6132 = load i32, ptr @test_count, align 4, !tbaa !5
  %6133 = add nsw i32 %6132, 1
  store i32 %6133, ptr @test_count, align 4, !tbaa !5
  %6134 = load ptr, ptr %130, align 8, !tbaa !9
  %6135 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6134, i32 0, i32 1
  %6136 = load ptr, ptr %6135, align 8, !tbaa !26
  %6137 = icmp eq ptr %6136, null
  br i1 %6137, label %6138, label %6191

6138:                                             ; preds = %6131
  br label %6139

6139:                                             ; preds = %6138
  br label %6140

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

6147:                                             ; preds = %6140
  %6148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6149 = call i32 @fileno(ptr noundef %6148) #12
  %6150 = call i32 @isatty(i32 noundef %6149) #12
  %6151 = icmp ne i32 %6150, 0
  br i1 %6151, label %6152, label %6169

6152:                                             ; preds = %6147
  %6153 = load i32, ptr %133, align 4, !tbaa !5
  %6154 = call ptr @__errno_location() #13
  store i32 %6153, ptr %6154, align 4, !tbaa !5
  %6155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6156 = load i32, ptr @test_count, align 4, !tbaa !5
  %6157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6158 = load i32, ptr %6157, align 4, !tbaa !5
  %6159 = call ptr @s2n_strerror(i32 noundef %6158, ptr noundef @.str.6)
  %6160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6161 = load i32, ptr %6160, align 4, !tbaa !5
  %6162 = call ptr @s2n_strerror_debug(i32 noundef %6161, ptr noundef @.str.6)
  %6163 = call ptr @__errno_location() #13
  %6164 = load i32, ptr %6163, align 4, !tbaa !5
  %6165 = call ptr @strerror(i32 noundef %6164) #12
  %6166 = call ptr @__errno_location() #13
  %6167 = load i32, ptr %6166, align 4, !tbaa !5
  %6168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6155, ptr noundef @.str.4, i32 noundef %6156, ptr noundef @.str.59, ptr noundef @.str.3, i32 noundef 288, ptr noundef %6159, ptr noundef %6162, ptr noundef %6165, i32 noundef %6167) #12
  br label %6186

6169:                                             ; preds = %6147, %6140
  %6170 = load i32, ptr %133, align 4, !tbaa !5
  %6171 = call ptr @__errno_location() #13
  store i32 %6170, ptr %6171, align 4, !tbaa !5
  %6172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6173 = load i32, ptr @test_count, align 4, !tbaa !5
  %6174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6175 = load i32, ptr %6174, align 4, !tbaa !5
  %6176 = call ptr @s2n_strerror(i32 noundef %6175, ptr noundef @.str.6)
  %6177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6178 = load i32, ptr %6177, align 4, !tbaa !5
  %6179 = call ptr @s2n_strerror_debug(i32 noundef %6178, ptr noundef @.str.6)
  %6180 = call ptr @__errno_location() #13
  %6181 = load i32, ptr %6180, align 4, !tbaa !5
  %6182 = call ptr @strerror(i32 noundef %6181) #12
  %6183 = call ptr @__errno_location() #13
  %6184 = load i32, ptr %6183, align 4, !tbaa !5
  %6185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6172, ptr noundef @.str.7, i32 noundef %6173, ptr noundef @.str.59, ptr noundef @.str.3, i32 noundef 288, ptr noundef %6176, ptr noundef %6179, ptr noundef %6182, i32 noundef %6184) #12
  br label %6186

6186:                                             ; preds = %6169, %6152
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #12
  br label %6187

6187:                                             ; preds = %6186
  br label %6188

6188:                                             ; preds = %6187
  call void @exit(i32 noundef 1) #14
  unreachable

6189:                                             ; No predecessors!
  br label %6190

6190:                                             ; preds = %6189
  br label %6191

6191:                                             ; preds = %6190, %6131
  br label %6192

6192:                                             ; preds = %6191
  br label %6193

6193:                                             ; preds = %6192
  %6194 = load ptr, ptr %121, align 8, !tbaa !9
  %6195 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %6194, i32 0, i32 1
  %6196 = load ptr, ptr %6195, align 8, !tbaa !24
  %6197 = getelementptr inbounds ptr, ptr %6196, i64 0
  %6198 = load ptr, ptr %6197, align 8, !tbaa !9
  %6199 = load ptr, ptr %114, align 8, !tbaa !9
  %6200 = getelementptr inbounds %struct.s2n_connection, ptr %6199, i32 0, i32 31
  %6201 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6200, i32 0, i32 1
  %6202 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6201, i32 0, i32 0
  store ptr %6198, ptr %6202, align 8, !tbaa !54
  br label %6203

6203:                                             ; preds = %6193
  %6204 = load i32, ptr @test_count, align 4, !tbaa !5
  %6205 = add nsw i32 %6204, 1
  store i32 %6205, ptr @test_count, align 4, !tbaa !5
  %6206 = load ptr, ptr %114, align 8, !tbaa !9
  %6207 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %6206, i8 noundef zeroext 34)
  %6208 = icmp eq i32 %6207, -1
  br i1 %6208, label %6209, label %6262

6209:                                             ; preds = %6203
  br label %6210

6210:                                             ; preds = %6209
  br label %6211

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

6218:                                             ; preds = %6211
  %6219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6220 = call i32 @fileno(ptr noundef %6219) #12
  %6221 = call i32 @isatty(i32 noundef %6220) #12
  %6222 = icmp ne i32 %6221, 0
  br i1 %6222, label %6223, label %6240

6223:                                             ; preds = %6218
  %6224 = load i32, ptr %134, align 4, !tbaa !5
  %6225 = call ptr @__errno_location() #13
  store i32 %6224, ptr %6225, align 4, !tbaa !5
  %6226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6227 = load i32, ptr @test_count, align 4, !tbaa !5
  %6228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6229 = load i32, ptr %6228, align 4, !tbaa !5
  %6230 = call ptr @s2n_strerror(i32 noundef %6229, ptr noundef @.str.6)
  %6231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6232 = load i32, ptr %6231, align 4, !tbaa !5
  %6233 = call ptr @s2n_strerror_debug(i32 noundef %6232, ptr noundef @.str.6)
  %6234 = call ptr @__errno_location() #13
  %6235 = load i32, ptr %6234, align 4, !tbaa !5
  %6236 = call ptr @strerror(i32 noundef %6235) #12
  %6237 = call ptr @__errno_location() #13
  %6238 = load i32, ptr %6237, align 4, !tbaa !5
  %6239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6226, ptr noundef @.str.4, i32 noundef %6227, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 291, ptr noundef %6230, ptr noundef %6233, ptr noundef %6236, i32 noundef %6238) #12
  br label %6257

6240:                                             ; preds = %6218, %6211
  %6241 = load i32, ptr %134, align 4, !tbaa !5
  %6242 = call ptr @__errno_location() #13
  store i32 %6241, ptr %6242, align 4, !tbaa !5
  %6243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6244 = load i32, ptr @test_count, align 4, !tbaa !5
  %6245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6246 = load i32, ptr %6245, align 4, !tbaa !5
  %6247 = call ptr @s2n_strerror(i32 noundef %6246, ptr noundef @.str.6)
  %6248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  %6250 = call ptr @s2n_strerror_debug(i32 noundef %6249, ptr noundef @.str.6)
  %6251 = call ptr @__errno_location() #13
  %6252 = load i32, ptr %6251, align 4, !tbaa !5
  %6253 = call ptr @strerror(i32 noundef %6252) #12
  %6254 = call ptr @__errno_location() #13
  %6255 = load i32, ptr %6254, align 4, !tbaa !5
  %6256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6243, ptr noundef @.str.7, i32 noundef %6244, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 291, ptr noundef %6247, ptr noundef %6250, ptr noundef %6253, i32 noundef %6255) #12
  br label %6257

6257:                                             ; preds = %6240, %6223
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #12
  br label %6258

6258:                                             ; preds = %6257
  br label %6259

6259:                                             ; preds = %6258
  call void @exit(i32 noundef 1) #14
  unreachable

6260:                                             ; No predecessors!
  br label %6261

6261:                                             ; preds = %6260
  br label %6262

6262:                                             ; preds = %6261, %6203
  br label %6263

6263:                                             ; preds = %6262
  br label %6264

6264:                                             ; preds = %6263
  br label %6265

6265:                                             ; preds = %6264
  %6266 = load i32, ptr @test_count, align 4, !tbaa !5
  %6267 = add nsw i32 %6266, 1
  store i32 %6267, ptr @test_count, align 4, !tbaa !5
  %6268 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %6269 = load ptr, ptr %114, align 8, !tbaa !9
  %6270 = call i32 %6268(ptr noundef %6269, ptr noundef %115)
  %6271 = icmp eq i32 %6270, -1
  br i1 %6271, label %6272, label %6325

6272:                                             ; preds = %6265
  br label %6273

6273:                                             ; preds = %6272
  br label %6274

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

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

6286:                                             ; preds = %6281
  %6287 = load i32, ptr %135, align 4, !tbaa !5
  %6288 = call ptr @__errno_location() #13
  store i32 %6287, ptr %6288, align 4, !tbaa !5
  %6289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6290 = load i32, ptr @test_count, align 4, !tbaa !5
  %6291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call ptr @s2n_strerror(i32 noundef %6292, ptr noundef @.str.6)
  %6294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6295 = load i32, ptr %6294, align 4, !tbaa !5
  %6296 = call ptr @s2n_strerror_debug(i32 noundef %6295, ptr noundef @.str.6)
  %6297 = call ptr @__errno_location() #13
  %6298 = load i32, ptr %6297, align 4, !tbaa !5
  %6299 = call ptr @strerror(i32 noundef %6298) #12
  %6300 = call ptr @__errno_location() #13
  %6301 = load i32, ptr %6300, align 4, !tbaa !5
  %6302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6289, ptr noundef @.str.4, i32 noundef %6290, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 293, ptr noundef %6293, ptr noundef %6296, ptr noundef %6299, i32 noundef %6301) #12
  br label %6320

6303:                                             ; preds = %6281, %6274
  %6304 = load i32, ptr %135, align 4, !tbaa !5
  %6305 = call ptr @__errno_location() #13
  store i32 %6304, ptr %6305, align 4, !tbaa !5
  %6306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6307 = load i32, ptr @test_count, align 4, !tbaa !5
  %6308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call ptr @s2n_strerror(i32 noundef %6309, ptr noundef @.str.6)
  %6311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6312 = load i32, ptr %6311, align 4, !tbaa !5
  %6313 = call ptr @s2n_strerror_debug(i32 noundef %6312, ptr noundef @.str.6)
  %6314 = call ptr @__errno_location() #13
  %6315 = load i32, ptr %6314, align 4, !tbaa !5
  %6316 = call ptr @strerror(i32 noundef %6315) #12
  %6317 = call ptr @__errno_location() #13
  %6318 = load i32, ptr %6317, align 4, !tbaa !5
  %6319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6306, ptr noundef @.str.7, i32 noundef %6307, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 293, ptr noundef %6310, ptr noundef %6313, ptr noundef %6316, i32 noundef %6318) #12
  br label %6320

6320:                                             ; preds = %6303, %6286
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #12
  br label %6321

6321:                                             ; preds = %6320
  br label %6322

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

6323:                                             ; No predecessors!
  br label %6324

6324:                                             ; preds = %6323
  br label %6325

6325:                                             ; preds = %6324, %6265
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326
  br label %6328

6328:                                             ; preds = %6327
  %6329 = load i32, ptr @test_count, align 4, !tbaa !5
  %6330 = add nsw i32 %6329, 1
  store i32 %6330, ptr @test_count, align 4, !tbaa !5
  %6331 = getelementptr inbounds %struct.s2n_stuffer, ptr %115, i32 0, i32 2
  %6332 = load i32, ptr %6331, align 4, !tbaa !18
  %6333 = getelementptr inbounds %struct.s2n_stuffer, ptr %115, i32 0, i32 1
  %6334 = load i32, ptr %6333, align 8, !tbaa !21
  %6335 = sub i32 %6332, %6334
  %6336 = icmp eq i32 %6335, 0
  br i1 %6336, label %6390, label %6337

6337:                                             ; preds = %6328
  br label %6338

6338:                                             ; preds = %6337
  br label %6339

6339:                                             ; preds = %6338
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #12
  %6340 = call ptr @__errno_location() #13
  %6341 = load i32, ptr %6340, align 4, !tbaa !5
  store i32 %6341, ptr %136, align 4, !tbaa !5
  %6342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6343 = call i32 @s2n_print_stacktrace(ptr noundef %6342)
  %6344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6345 = trunc i8 %6344 to i1
  br i1 %6345, label %6346, label %6368

6346:                                             ; preds = %6339
  %6347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6348 = call i32 @fileno(ptr noundef %6347) #12
  %6349 = call i32 @isatty(i32 noundef %6348) #12
  %6350 = icmp ne i32 %6349, 0
  br i1 %6350, label %6351, label %6368

6351:                                             ; preds = %6346
  %6352 = load i32, ptr %136, align 4, !tbaa !5
  %6353 = call ptr @__errno_location() #13
  store i32 %6352, ptr %6353, align 4, !tbaa !5
  %6354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6355 = load i32, ptr @test_count, align 4, !tbaa !5
  %6356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6357 = load i32, ptr %6356, align 4, !tbaa !5
  %6358 = call ptr @s2n_strerror(i32 noundef %6357, ptr noundef @.str.6)
  %6359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6360 = load i32, ptr %6359, align 4, !tbaa !5
  %6361 = call ptr @s2n_strerror_debug(i32 noundef %6360, ptr noundef @.str.6)
  %6362 = call ptr @__errno_location() #13
  %6363 = load i32, ptr %6362, align 4, !tbaa !5
  %6364 = call ptr @strerror(i32 noundef %6363) #12
  %6365 = call ptr @__errno_location() #13
  %6366 = load i32, ptr %6365, align 4, !tbaa !5
  %6367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6354, ptr noundef @.str.4, i32 noundef %6355, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 296, ptr noundef %6358, ptr noundef %6361, ptr noundef %6364, i32 noundef %6366) #12
  br label %6385

6368:                                             ; preds = %6346, %6339
  %6369 = load i32, ptr %136, align 4, !tbaa !5
  %6370 = call ptr @__errno_location() #13
  store i32 %6369, ptr %6370, align 4, !tbaa !5
  %6371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6372 = load i32, ptr @test_count, align 4, !tbaa !5
  %6373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call ptr @s2n_strerror(i32 noundef %6374, ptr noundef @.str.6)
  %6376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6377 = load i32, ptr %6376, align 4, !tbaa !5
  %6378 = call ptr @s2n_strerror_debug(i32 noundef %6377, ptr noundef @.str.6)
  %6379 = call ptr @__errno_location() #13
  %6380 = load i32, ptr %6379, align 4, !tbaa !5
  %6381 = call ptr @strerror(i32 noundef %6380) #12
  %6382 = call ptr @__errno_location() #13
  %6383 = load i32, ptr %6382, align 4, !tbaa !5
  %6384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6371, ptr noundef @.str.7, i32 noundef %6372, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 296, ptr noundef %6375, ptr noundef %6378, ptr noundef %6381, i32 noundef %6383) #12
  br label %6385

6385:                                             ; preds = %6368, %6351
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #12
  br label %6386

6386:                                             ; preds = %6385
  br label %6387

6387:                                             ; preds = %6386
  call void @exit(i32 noundef 1) #14
  unreachable

6388:                                             ; No predecessors!
  br label %6389

6389:                                             ; preds = %6388
  br label %6390

6390:                                             ; preds = %6389, %6328
  br label %6391

6391:                                             ; preds = %6390
  br label %6392

6392:                                             ; preds = %6391
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #12
  %6393 = load ptr, ptr %114, align 8, !tbaa !9
  %6394 = getelementptr inbounds %struct.s2n_connection, ptr %6393, i32 0, i32 31
  %6395 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6394, i32 0, i32 3
  store ptr %6395, ptr %137, align 8, !tbaa !9
  br label %6396

6396:                                             ; preds = %6392
  %6397 = load i32, ptr @test_count, align 4, !tbaa !5
  %6398 = add nsw i32 %6397, 1
  store i32 %6398, ptr @test_count, align 4, !tbaa !5
  %6399 = load ptr, ptr %137, align 8, !tbaa !9
  %6400 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6399, i32 0, i32 0
  %6401 = load ptr, ptr %6400, align 8, !tbaa !22
  %6402 = load ptr, ptr %114, align 8, !tbaa !9
  %6403 = getelementptr inbounds %struct.s2n_connection, ptr %6402, i32 0, i32 31
  %6404 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6403, i32 0, i32 1
  %6405 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6404, i32 0, i32 0
  %6406 = load ptr, ptr %6405, align 8, !tbaa !54
  %6407 = icmp eq ptr %6401, %6406
  br i1 %6407, label %6461, label %6408

6408:                                             ; preds = %6396
  br label %6409

6409:                                             ; preds = %6408
  br label %6410

6410:                                             ; preds = %6409
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #12
  %6411 = call ptr @__errno_location() #13
  %6412 = load i32, ptr %6411, align 4, !tbaa !5
  store i32 %6412, ptr %138, align 4, !tbaa !5
  %6413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6414 = call i32 @s2n_print_stacktrace(ptr noundef %6413)
  %6415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6416 = trunc i8 %6415 to i1
  br i1 %6416, label %6417, label %6439

6417:                                             ; preds = %6410
  %6418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6419 = call i32 @fileno(ptr noundef %6418) #12
  %6420 = call i32 @isatty(i32 noundef %6419) #12
  %6421 = icmp ne i32 %6420, 0
  br i1 %6421, label %6422, label %6439

6422:                                             ; preds = %6417
  %6423 = load i32, ptr %138, align 4, !tbaa !5
  %6424 = call ptr @__errno_location() #13
  store i32 %6423, ptr %6424, align 4, !tbaa !5
  %6425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6426 = load i32, ptr @test_count, align 4, !tbaa !5
  %6427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6428 = load i32, ptr %6427, align 4, !tbaa !5
  %6429 = call ptr @s2n_strerror(i32 noundef %6428, ptr noundef @.str.6)
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror_debug(i32 noundef %6431, ptr noundef @.str.6)
  %6433 = call ptr @__errno_location() #13
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @strerror(i32 noundef %6434) #12
  %6436 = call ptr @__errno_location() #13
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6425, ptr noundef @.str.4, i32 noundef %6426, ptr noundef @.str.63, ptr noundef @.str.3, i32 noundef 300, ptr noundef %6429, ptr noundef %6432, ptr noundef %6435, i32 noundef %6437) #12
  br label %6456

6439:                                             ; preds = %6417, %6410
  %6440 = load i32, ptr %138, align 4, !tbaa !5
  %6441 = call ptr @__errno_location() #13
  store i32 %6440, ptr %6441, align 4, !tbaa !5
  %6442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6443 = load i32, ptr @test_count, align 4, !tbaa !5
  %6444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6445 = load i32, ptr %6444, align 4, !tbaa !5
  %6446 = call ptr @s2n_strerror(i32 noundef %6445, ptr noundef @.str.6)
  %6447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6448 = load i32, ptr %6447, align 4, !tbaa !5
  %6449 = call ptr @s2n_strerror_debug(i32 noundef %6448, ptr noundef @.str.6)
  %6450 = call ptr @__errno_location() #13
  %6451 = load i32, ptr %6450, align 4, !tbaa !5
  %6452 = call ptr @strerror(i32 noundef %6451) #12
  %6453 = call ptr @__errno_location() #13
  %6454 = load i32, ptr %6453, align 4, !tbaa !5
  %6455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6442, ptr noundef @.str.7, i32 noundef %6443, ptr noundef @.str.63, ptr noundef @.str.3, i32 noundef 300, ptr noundef %6446, ptr noundef %6449, ptr noundef %6452, i32 noundef %6454) #12
  br label %6456

6456:                                             ; preds = %6439, %6422
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #12
  br label %6457

6457:                                             ; preds = %6456
  br label %6458

6458:                                             ; preds = %6457
  call void @exit(i32 noundef 1) #14
  unreachable

6459:                                             ; No predecessors!
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

6461:                                             ; preds = %6460, %6396
  br label %6462

6462:                                             ; preds = %6461
  br label %6463

6463:                                             ; preds = %6462
  br label %6464

6464:                                             ; preds = %6463
  %6465 = load i32, ptr @test_count, align 4, !tbaa !5
  %6466 = add nsw i32 %6465, 1
  store i32 %6466, ptr @test_count, align 4, !tbaa !5
  %6467 = load ptr, ptr %137, align 8, !tbaa !9
  %6468 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6467, i32 0, i32 0
  %6469 = load ptr, ptr %6468, align 8, !tbaa !22
  %6470 = icmp eq ptr %6469, null
  br i1 %6470, label %6471, label %6524

6471:                                             ; preds = %6464
  br label %6472

6472:                                             ; preds = %6471
  br label %6473

6473:                                             ; preds = %6472
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #12
  %6474 = call ptr @__errno_location() #13
  %6475 = load i32, ptr %6474, align 4, !tbaa !5
  store i32 %6475, ptr %139, align 4, !tbaa !5
  %6476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6477 = call i32 @s2n_print_stacktrace(ptr noundef %6476)
  %6478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6479 = trunc i8 %6478 to i1
  br i1 %6479, label %6480, label %6502

6480:                                             ; preds = %6473
  %6481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6482 = call i32 @fileno(ptr noundef %6481) #12
  %6483 = call i32 @isatty(i32 noundef %6482) #12
  %6484 = icmp ne i32 %6483, 0
  br i1 %6484, label %6485, label %6502

6485:                                             ; preds = %6480
  %6486 = load i32, ptr %139, align 4, !tbaa !5
  %6487 = call ptr @__errno_location() #13
  store i32 %6486, ptr %6487, align 4, !tbaa !5
  %6488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6489 = load i32, ptr @test_count, align 4, !tbaa !5
  %6490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6491 = load i32, ptr %6490, align 4, !tbaa !5
  %6492 = call ptr @s2n_strerror(i32 noundef %6491, ptr noundef @.str.6)
  %6493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  %6495 = call ptr @s2n_strerror_debug(i32 noundef %6494, ptr noundef @.str.6)
  %6496 = call ptr @__errno_location() #13
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  %6498 = call ptr @strerror(i32 noundef %6497) #12
  %6499 = call ptr @__errno_location() #13
  %6500 = load i32, ptr %6499, align 4, !tbaa !5
  %6501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6488, ptr noundef @.str.4, i32 noundef %6489, ptr noundef @.str.64, ptr noundef @.str.3, i32 noundef 301, ptr noundef %6492, ptr noundef %6495, ptr noundef %6498, i32 noundef %6500) #12
  br label %6519

6502:                                             ; preds = %6480, %6473
  %6503 = load i32, ptr %139, align 4, !tbaa !5
  %6504 = call ptr @__errno_location() #13
  store i32 %6503, ptr %6504, align 4, !tbaa !5
  %6505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6506 = load i32, ptr @test_count, align 4, !tbaa !5
  %6507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6508 = load i32, ptr %6507, align 4, !tbaa !5
  %6509 = call ptr @s2n_strerror(i32 noundef %6508, ptr noundef @.str.6)
  %6510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6511 = load i32, ptr %6510, align 4, !tbaa !5
  %6512 = call ptr @s2n_strerror_debug(i32 noundef %6511, ptr noundef @.str.6)
  %6513 = call ptr @__errno_location() #13
  %6514 = load i32, ptr %6513, align 4, !tbaa !5
  %6515 = call ptr @strerror(i32 noundef %6514) #12
  %6516 = call ptr @__errno_location() #13
  %6517 = load i32, ptr %6516, align 4, !tbaa !5
  %6518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6505, ptr noundef @.str.7, i32 noundef %6506, ptr noundef @.str.64, ptr noundef @.str.3, i32 noundef 301, ptr noundef %6509, ptr noundef %6512, ptr noundef %6515, i32 noundef %6517) #12
  br label %6519

6519:                                             ; preds = %6502, %6485
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #12
  br label %6520

6520:                                             ; preds = %6519
  br label %6521

6521:                                             ; preds = %6520
  call void @exit(i32 noundef 1) #14
  unreachable

6522:                                             ; No predecessors!
  br label %6523

6523:                                             ; preds = %6522
  br label %6524

6524:                                             ; preds = %6523, %6464
  br label %6525

6525:                                             ; preds = %6524
  br label %6526

6526:                                             ; preds = %6525
  br label %6527

6527:                                             ; preds = %6526
  %6528 = load i32, ptr @test_count, align 4, !tbaa !5
  %6529 = add nsw i32 %6528, 1
  store i32 %6529, ptr @test_count, align 4, !tbaa !5
  %6530 = load ptr, ptr %137, align 8, !tbaa !9
  %6531 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6530, i32 0, i32 1
  %6532 = load ptr, ptr %6531, align 8, !tbaa !26
  %6533 = icmp eq ptr %6532, null
  br i1 %6533, label %6534, label %6587

6534:                                             ; preds = %6527
  br label %6535

6535:                                             ; preds = %6534
  br label %6536

6536:                                             ; preds = %6535
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #12
  %6537 = call ptr @__errno_location() #13
  %6538 = load i32, ptr %6537, align 4, !tbaa !5
  store i32 %6538, ptr %140, align 4, !tbaa !5
  %6539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6540 = call i32 @s2n_print_stacktrace(ptr noundef %6539)
  %6541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6542 = trunc i8 %6541 to i1
  br i1 %6542, label %6543, label %6565

6543:                                             ; preds = %6536
  %6544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6545 = call i32 @fileno(ptr noundef %6544) #12
  %6546 = call i32 @isatty(i32 noundef %6545) #12
  %6547 = icmp ne i32 %6546, 0
  br i1 %6547, label %6548, label %6565

6548:                                             ; preds = %6543
  %6549 = load i32, ptr %140, align 4, !tbaa !5
  %6550 = call ptr @__errno_location() #13
  store i32 %6549, ptr %6550, align 4, !tbaa !5
  %6551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6552 = load i32, ptr @test_count, align 4, !tbaa !5
  %6553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6554 = load i32, ptr %6553, align 4, !tbaa !5
  %6555 = call ptr @s2n_strerror(i32 noundef %6554, ptr noundef @.str.6)
  %6556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6557 = load i32, ptr %6556, align 4, !tbaa !5
  %6558 = call ptr @s2n_strerror_debug(i32 noundef %6557, ptr noundef @.str.6)
  %6559 = call ptr @__errno_location() #13
  %6560 = load i32, ptr %6559, align 4, !tbaa !5
  %6561 = call ptr @strerror(i32 noundef %6560) #12
  %6562 = call ptr @__errno_location() #13
  %6563 = load i32, ptr %6562, align 4, !tbaa !5
  %6564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6551, ptr noundef @.str.4, i32 noundef %6552, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 302, ptr noundef %6555, ptr noundef %6558, ptr noundef %6561, i32 noundef %6563) #12
  br label %6582

6565:                                             ; preds = %6543, %6536
  %6566 = load i32, ptr %140, align 4, !tbaa !5
  %6567 = call ptr @__errno_location() #13
  store i32 %6566, ptr %6567, align 4, !tbaa !5
  %6568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6569 = load i32, ptr @test_count, align 4, !tbaa !5
  %6570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6571 = load i32, ptr %6570, align 4, !tbaa !5
  %6572 = call ptr @s2n_strerror(i32 noundef %6571, ptr noundef @.str.6)
  %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_debug(i32 noundef %6574, ptr noundef @.str.6)
  %6576 = call ptr @__errno_location() #13
  %6577 = load i32, ptr %6576, align 4, !tbaa !5
  %6578 = call ptr @strerror(i32 noundef %6577) #12
  %6579 = call ptr @__errno_location() #13
  %6580 = load i32, ptr %6579, align 4, !tbaa !5
  %6581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6568, ptr noundef @.str.7, i32 noundef %6569, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 302, ptr noundef %6572, ptr noundef %6575, ptr noundef %6578, i32 noundef %6580) #12
  br label %6582

6582:                                             ; preds = %6565, %6548
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #12
  br label %6583

6583:                                             ; preds = %6582
  br label %6584

6584:                                             ; preds = %6583
  call void @exit(i32 noundef 1) #14
  unreachable

6585:                                             ; No predecessors!
  br label %6586

6586:                                             ; preds = %6585
  br label %6587

6587:                                             ; preds = %6586, %6527
  br label %6588

6588:                                             ; preds = %6587
  br label %6589

6589:                                             ; preds = %6588
  br label %6590

6590:                                             ; preds = %6589
  %6591 = load i32, ptr @test_count, align 4, !tbaa !5
  %6592 = add nsw i32 %6591, 1
  store i32 %6592, ptr @test_count, align 4, !tbaa !5
  %6593 = call i32 @s2n_stuffer_free(ptr noundef %115)
  %6594 = icmp eq i32 %6593, -1
  br i1 %6594, label %6595, label %6648

6595:                                             ; preds = %6590
  br label %6596

6596:                                             ; preds = %6595
  br label %6597

6597:                                             ; preds = %6596
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #12
  %6598 = call ptr @__errno_location() #13
  %6599 = load i32, ptr %6598, align 4, !tbaa !5
  store i32 %6599, ptr %141, align 4, !tbaa !5
  %6600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6601 = call i32 @s2n_print_stacktrace(ptr noundef %6600)
  %6602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6603 = trunc i8 %6602 to i1
  br i1 %6603, label %6604, label %6626

6604:                                             ; preds = %6597
  %6605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6606 = call i32 @fileno(ptr noundef %6605) #12
  %6607 = call i32 @isatty(i32 noundef %6606) #12
  %6608 = icmp ne i32 %6607, 0
  br i1 %6608, label %6609, label %6626

6609:                                             ; preds = %6604
  %6610 = load i32, ptr %141, align 4, !tbaa !5
  %6611 = call ptr @__errno_location() #13
  store i32 %6610, ptr %6611, align 4, !tbaa !5
  %6612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6613 = load i32, ptr @test_count, align 4, !tbaa !5
  %6614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6615 = load i32, ptr %6614, align 4, !tbaa !5
  %6616 = call ptr @s2n_strerror(i32 noundef %6615, ptr noundef @.str.6)
  %6617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6618 = load i32, ptr %6617, align 4, !tbaa !5
  %6619 = call ptr @s2n_strerror_debug(i32 noundef %6618, ptr noundef @.str.6)
  %6620 = call ptr @__errno_location() #13
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  %6622 = call ptr @strerror(i32 noundef %6621) #12
  %6623 = call ptr @__errno_location() #13
  %6624 = load i32, ptr %6623, align 4, !tbaa !5
  %6625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6612, ptr noundef @.str.4, i32 noundef %6613, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 304, ptr noundef %6616, ptr noundef %6619, ptr noundef %6622, i32 noundef %6624) #12
  br label %6643

6626:                                             ; preds = %6604, %6597
  %6627 = load i32, ptr %141, align 4, !tbaa !5
  %6628 = call ptr @__errno_location() #13
  store i32 %6627, ptr %6628, align 4, !tbaa !5
  %6629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6630 = load i32, ptr @test_count, align 4, !tbaa !5
  %6631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6632 = load i32, ptr %6631, align 4, !tbaa !5
  %6633 = call ptr @s2n_strerror(i32 noundef %6632, ptr noundef @.str.6)
  %6634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6635 = load i32, ptr %6634, align 4, !tbaa !5
  %6636 = call ptr @s2n_strerror_debug(i32 noundef %6635, ptr noundef @.str.6)
  %6637 = call ptr @__errno_location() #13
  %6638 = load i32, ptr %6637, align 4, !tbaa !5
  %6639 = call ptr @strerror(i32 noundef %6638) #12
  %6640 = call ptr @__errno_location() #13
  %6641 = load i32, ptr %6640, align 4, !tbaa !5
  %6642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6629, ptr noundef @.str.7, i32 noundef %6630, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 304, ptr noundef %6633, ptr noundef %6636, ptr noundef %6639, i32 noundef %6641) #12
  br label %6643

6643:                                             ; preds = %6626, %6609
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #12
  br label %6644

6644:                                             ; preds = %6643
  br label %6645

6645:                                             ; preds = %6644
  call void @exit(i32 noundef 1) #14
  unreachable

6646:                                             ; No predecessors!
  br label %6647

6647:                                             ; preds = %6646
  br label %6648

6648:                                             ; preds = %6647, %6590
  br label %6649

6649:                                             ; preds = %6648
  br label %6650

6650:                                             ; preds = %6649
  br label %6651

6651:                                             ; preds = %6650
  %6652 = load i32, ptr @test_count, align 4, !tbaa !5
  %6653 = add nsw i32 %6652, 1
  store i32 %6653, ptr @test_count, align 4, !tbaa !5
  %6654 = load ptr, ptr %113, align 8, !tbaa !9
  %6655 = call i32 @s2n_connection_free(ptr noundef %6654)
  %6656 = icmp eq i32 %6655, -1
  br i1 %6656, label %6657, label %6710

6657:                                             ; preds = %6651
  br label %6658

6658:                                             ; preds = %6657
  br label %6659

6659:                                             ; preds = %6658
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #12
  %6660 = call ptr @__errno_location() #13
  %6661 = load i32, ptr %6660, align 4, !tbaa !5
  store i32 %6661, ptr %142, align 4, !tbaa !5
  %6662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6663 = call i32 @s2n_print_stacktrace(ptr noundef %6662)
  %6664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6665 = trunc i8 %6664 to i1
  br i1 %6665, label %6666, label %6688

6666:                                             ; preds = %6659
  %6667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6668 = call i32 @fileno(ptr noundef %6667) #12
  %6669 = call i32 @isatty(i32 noundef %6668) #12
  %6670 = icmp ne i32 %6669, 0
  br i1 %6670, label %6671, label %6688

6671:                                             ; preds = %6666
  %6672 = load i32, ptr %142, align 4, !tbaa !5
  %6673 = call ptr @__errno_location() #13
  store i32 %6672, ptr %6673, align 4, !tbaa !5
  %6674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6675 = load i32, ptr @test_count, align 4, !tbaa !5
  %6676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6677 = load i32, ptr %6676, align 4, !tbaa !5
  %6678 = call ptr @s2n_strerror(i32 noundef %6677, ptr noundef @.str.6)
  %6679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6680 = load i32, ptr %6679, align 4, !tbaa !5
  %6681 = call ptr @s2n_strerror_debug(i32 noundef %6680, ptr noundef @.str.6)
  %6682 = call ptr @__errno_location() #13
  %6683 = load i32, ptr %6682, align 4, !tbaa !5
  %6684 = call ptr @strerror(i32 noundef %6683) #12
  %6685 = call ptr @__errno_location() #13
  %6686 = load i32, ptr %6685, align 4, !tbaa !5
  %6687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6674, ptr noundef @.str.4, i32 noundef %6675, ptr noundef @.str.66, ptr noundef @.str.3, i32 noundef 305, ptr noundef %6678, ptr noundef %6681, ptr noundef %6684, i32 noundef %6686) #12
  br label %6705

6688:                                             ; preds = %6666, %6659
  %6689 = load i32, ptr %142, align 4, !tbaa !5
  %6690 = call ptr @__errno_location() #13
  store i32 %6689, ptr %6690, align 4, !tbaa !5
  %6691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6692 = load i32, ptr @test_count, align 4, !tbaa !5
  %6693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6694 = load i32, ptr %6693, align 4, !tbaa !5
  %6695 = call ptr @s2n_strerror(i32 noundef %6694, ptr noundef @.str.6)
  %6696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6697 = load i32, ptr %6696, align 4, !tbaa !5
  %6698 = call ptr @s2n_strerror_debug(i32 noundef %6697, ptr noundef @.str.6)
  %6699 = call ptr @__errno_location() #13
  %6700 = load i32, ptr %6699, align 4, !tbaa !5
  %6701 = call ptr @strerror(i32 noundef %6700) #12
  %6702 = call ptr @__errno_location() #13
  %6703 = load i32, ptr %6702, align 4, !tbaa !5
  %6704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6691, ptr noundef @.str.7, i32 noundef %6692, ptr noundef @.str.66, ptr noundef @.str.3, i32 noundef 305, ptr noundef %6695, ptr noundef %6698, ptr noundef %6701, i32 noundef %6703) #12
  br label %6705

6705:                                             ; preds = %6688, %6671
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #12
  br label %6706

6706:                                             ; preds = %6705
  br label %6707

6707:                                             ; preds = %6706
  call void @exit(i32 noundef 1) #14
  unreachable

6708:                                             ; No predecessors!
  br label %6709

6709:                                             ; preds = %6708
  br label %6710

6710:                                             ; preds = %6709, %6651
  br label %6711

6711:                                             ; preds = %6710
  br label %6712

6712:                                             ; preds = %6711
  br label %6713

6713:                                             ; preds = %6712
  %6714 = load i32, ptr @test_count, align 4, !tbaa !5
  %6715 = add nsw i32 %6714, 1
  store i32 %6715, ptr @test_count, align 4, !tbaa !5
  %6716 = load ptr, ptr %114, align 8, !tbaa !9
  %6717 = call i32 @s2n_connection_free(ptr noundef %6716)
  %6718 = icmp eq i32 %6717, -1
  br i1 %6718, label %6719, label %6772

6719:                                             ; preds = %6713
  br label %6720

6720:                                             ; preds = %6719
  br label %6721

6721:                                             ; preds = %6720
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #12
  %6722 = call ptr @__errno_location() #13
  %6723 = load i32, ptr %6722, align 4, !tbaa !5
  store i32 %6723, ptr %143, align 4, !tbaa !5
  %6724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6725 = call i32 @s2n_print_stacktrace(ptr noundef %6724)
  %6726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6727 = trunc i8 %6726 to i1
  br i1 %6727, label %6728, label %6750

6728:                                             ; preds = %6721
  %6729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6730 = call i32 @fileno(ptr noundef %6729) #12
  %6731 = call i32 @isatty(i32 noundef %6730) #12
  %6732 = icmp ne i32 %6731, 0
  br i1 %6732, label %6733, label %6750

6733:                                             ; preds = %6728
  %6734 = load i32, ptr %143, align 4, !tbaa !5
  %6735 = call ptr @__errno_location() #13
  store i32 %6734, ptr %6735, align 4, !tbaa !5
  %6736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6737 = load i32, ptr @test_count, align 4, !tbaa !5
  %6738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6739 = load i32, ptr %6738, align 4, !tbaa !5
  %6740 = call ptr @s2n_strerror(i32 noundef %6739, ptr noundef @.str.6)
  %6741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6742 = load i32, ptr %6741, align 4, !tbaa !5
  %6743 = call ptr @s2n_strerror_debug(i32 noundef %6742, ptr noundef @.str.6)
  %6744 = call ptr @__errno_location() #13
  %6745 = load i32, ptr %6744, align 4, !tbaa !5
  %6746 = call ptr @strerror(i32 noundef %6745) #12
  %6747 = call ptr @__errno_location() #13
  %6748 = load i32, ptr %6747, align 4, !tbaa !5
  %6749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6736, ptr noundef @.str.4, i32 noundef %6737, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 306, ptr noundef %6740, ptr noundef %6743, ptr noundef %6746, i32 noundef %6748) #12
  br label %6767

6750:                                             ; preds = %6728, %6721
  %6751 = load i32, ptr %143, align 4, !tbaa !5
  %6752 = call ptr @__errno_location() #13
  store i32 %6751, ptr %6752, align 4, !tbaa !5
  %6753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6754 = load i32, ptr @test_count, align 4, !tbaa !5
  %6755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6756 = load i32, ptr %6755, align 4, !tbaa !5
  %6757 = call ptr @s2n_strerror(i32 noundef %6756, ptr noundef @.str.6)
  %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_debug(i32 noundef %6759, ptr noundef @.str.6)
  %6761 = call ptr @__errno_location() #13
  %6762 = load i32, ptr %6761, align 4, !tbaa !5
  %6763 = call ptr @strerror(i32 noundef %6762) #12
  %6764 = call ptr @__errno_location() #13
  %6765 = load i32, ptr %6764, align 4, !tbaa !5
  %6766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6753, ptr noundef @.str.7, i32 noundef %6754, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 306, ptr noundef %6757, ptr noundef %6760, ptr noundef %6763, i32 noundef %6765) #12
  br label %6767

6767:                                             ; preds = %6750, %6733
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #12
  br label %6768

6768:                                             ; preds = %6767
  br label %6769

6769:                                             ; preds = %6768
  call void @exit(i32 noundef 1) #14
  unreachable

6770:                                             ; No predecessors!
  br label %6771

6771:                                             ; preds = %6770
  br label %6772

6772:                                             ; preds = %6771, %6713
  br label %6773

6773:                                             ; preds = %6772
  br label %6774

6774:                                             ; preds = %6773
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #12
  store i32 0, ptr %126, align 4
  br label %6775

6775:                                             ; preds = %6774, %5796
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %115) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #12
  %6776 = load i32, ptr %126, align 4
  switch i32 %6776, label %28981 [
    i32 0, label %6777
    i32 1, label %28979
  ]

6777:                                             ; preds = %6775
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #12
  store ptr null, ptr %144, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %145) #12
  call void @llvm.memset.p0.i64(ptr align 8 %145, i8 0, i64 40, i1 false)
  br label %6778

6778:                                             ; preds = %6777
  %6779 = load i32, ptr @test_count, align 4, !tbaa !5
  %6780 = add nsw i32 %6779, 1
  store i32 %6780, ptr @test_count, align 4, !tbaa !5
  %6781 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6781, ptr %144, align 8, !tbaa !9
  %6782 = icmp eq ptr %6781, null
  br i1 %6782, label %6783, label %6836

6783:                                             ; preds = %6778
  br label %6784

6784:                                             ; preds = %6783
  br label %6785

6785:                                             ; preds = %6784
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #12
  %6786 = call ptr @__errno_location() #13
  %6787 = load i32, ptr %6786, align 4, !tbaa !5
  store i32 %6787, ptr %146, align 4, !tbaa !5
  %6788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6789 = call i32 @s2n_print_stacktrace(ptr noundef %6788)
  %6790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6791 = trunc i8 %6790 to i1
  br i1 %6791, label %6792, label %6814

6792:                                             ; preds = %6785
  %6793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6794 = call i32 @fileno(ptr noundef %6793) #12
  %6795 = call i32 @isatty(i32 noundef %6794) #12
  %6796 = icmp ne i32 %6795, 0
  br i1 %6796, label %6797, label %6814

6797:                                             ; preds = %6792
  %6798 = load i32, ptr %146, align 4, !tbaa !5
  %6799 = call ptr @__errno_location() #13
  store i32 %6798, ptr %6799, align 4, !tbaa !5
  %6800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6801 = load i32, ptr @test_count, align 4, !tbaa !5
  %6802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6803 = load i32, ptr %6802, align 4, !tbaa !5
  %6804 = call ptr @s2n_strerror(i32 noundef %6803, ptr noundef @.str.6)
  %6805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6806 = load i32, ptr %6805, align 4, !tbaa !5
  %6807 = call ptr @s2n_strerror_debug(i32 noundef %6806, ptr noundef @.str.6)
  %6808 = call ptr @__errno_location() #13
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = call ptr @strerror(i32 noundef %6809) #12
  %6811 = call ptr @__errno_location() #13
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6800, ptr noundef @.str.4, i32 noundef %6801, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 315, ptr noundef %6804, ptr noundef %6807, ptr noundef %6810, i32 noundef %6812) #12
  br label %6831

6814:                                             ; preds = %6792, %6785
  %6815 = load i32, ptr %146, align 4, !tbaa !5
  %6816 = call ptr @__errno_location() #13
  store i32 %6815, ptr %6816, align 4, !tbaa !5
  %6817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6818 = load i32, ptr @test_count, align 4, !tbaa !5
  %6819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6820 = load i32, ptr %6819, align 4, !tbaa !5
  %6821 = call ptr @s2n_strerror(i32 noundef %6820, ptr noundef @.str.6)
  %6822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6823 = load i32, ptr %6822, align 4, !tbaa !5
  %6824 = call ptr @s2n_strerror_debug(i32 noundef %6823, ptr noundef @.str.6)
  %6825 = call ptr @__errno_location() #13
  %6826 = load i32, ptr %6825, align 4, !tbaa !5
  %6827 = call ptr @strerror(i32 noundef %6826) #12
  %6828 = call ptr @__errno_location() #13
  %6829 = load i32, ptr %6828, align 4, !tbaa !5
  %6830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6817, ptr noundef @.str.7, i32 noundef %6818, ptr noundef @.str.11, ptr noundef @.str.3, i32 noundef 315, ptr noundef %6821, ptr noundef %6824, ptr noundef %6827, i32 noundef %6829) #12
  br label %6831

6831:                                             ; preds = %6814, %6797
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #12
  br label %6832

6832:                                             ; preds = %6831
  br label %6833

6833:                                             ; preds = %6832
  call void @exit(i32 noundef 1) #14
  unreachable

6834:                                             ; No predecessors!
  br label %6835

6835:                                             ; preds = %6834
  br label %6836

6836:                                             ; preds = %6835, %6778
  br label %6837

6837:                                             ; preds = %6836
  br label %6838

6838:                                             ; preds = %6837
  br label %6839

6839:                                             ; preds = %6838
  %6840 = load i32, ptr @test_count, align 4, !tbaa !5
  %6841 = add nsw i32 %6840, 1
  store i32 %6841, ptr @test_count, align 4, !tbaa !5
  %6842 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %145, i32 noundef 0)
  %6843 = icmp eq i32 %6842, -1
  br i1 %6843, label %6844, label %6897

6844:                                             ; preds = %6839
  br label %6845

6845:                                             ; preds = %6844
  br label %6846

6846:                                             ; preds = %6845
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #12
  %6847 = call ptr @__errno_location() #13
  %6848 = load i32, ptr %6847, align 4, !tbaa !5
  store i32 %6848, ptr %147, align 4, !tbaa !5
  %6849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6850 = call i32 @s2n_print_stacktrace(ptr noundef %6849)
  %6851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6852 = trunc i8 %6851 to i1
  br i1 %6852, label %6853, label %6875

6853:                                             ; preds = %6846
  %6854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6855 = call i32 @fileno(ptr noundef %6854) #12
  %6856 = call i32 @isatty(i32 noundef %6855) #12
  %6857 = icmp ne i32 %6856, 0
  br i1 %6857, label %6858, label %6875

6858:                                             ; preds = %6853
  %6859 = load i32, ptr %147, align 4, !tbaa !5
  %6860 = call ptr @__errno_location() #13
  store i32 %6859, ptr %6860, align 4, !tbaa !5
  %6861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6862 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %6864, ptr noundef @.str.6)
  %6866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6867 = load i32, ptr %6866, align 4, !tbaa !5
  %6868 = call ptr @s2n_strerror_debug(i32 noundef %6867, ptr noundef @.str.6)
  %6869 = call ptr @__errno_location() #13
  %6870 = load i32, ptr %6869, align 4, !tbaa !5
  %6871 = call ptr @strerror(i32 noundef %6870) #12
  %6872 = call ptr @__errno_location() #13
  %6873 = load i32, ptr %6872, align 4, !tbaa !5
  %6874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6861, ptr noundef @.str.4, i32 noundef %6862, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 317, ptr noundef %6865, ptr noundef %6868, ptr noundef %6871, i32 noundef %6873) #12
  br label %6892

6875:                                             ; preds = %6853, %6846
  %6876 = load i32, ptr %147, align 4, !tbaa !5
  %6877 = call ptr @__errno_location() #13
  store i32 %6876, ptr %6877, align 4, !tbaa !5
  %6878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6879 = load i32, ptr @test_count, align 4, !tbaa !5
  %6880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6881 = load i32, ptr %6880, align 4, !tbaa !5
  %6882 = call ptr @s2n_strerror(i32 noundef %6881, ptr noundef @.str.6)
  %6883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6884 = load i32, ptr %6883, align 4, !tbaa !5
  %6885 = call ptr @s2n_strerror_debug(i32 noundef %6884, ptr noundef @.str.6)
  %6886 = call ptr @__errno_location() #13
  %6887 = load i32, ptr %6886, align 4, !tbaa !5
  %6888 = call ptr @strerror(i32 noundef %6887) #12
  %6889 = call ptr @__errno_location() #13
  %6890 = load i32, ptr %6889, align 4, !tbaa !5
  %6891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6878, ptr noundef @.str.7, i32 noundef %6879, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 317, ptr noundef %6882, ptr noundef %6885, ptr noundef %6888, i32 noundef %6890) #12
  br label %6892

6892:                                             ; preds = %6875, %6858
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #12
  br label %6893

6893:                                             ; preds = %6892
  br label %6894

6894:                                             ; preds = %6893
  call void @exit(i32 noundef 1) #14
  unreachable

6895:                                             ; No predecessors!
  br label %6896

6896:                                             ; preds = %6895
  br label %6897

6897:                                             ; preds = %6896, %6839
  br label %6898

6898:                                             ; preds = %6897
  br label %6899

6899:                                             ; preds = %6898
  br label %6900

6900:                                             ; preds = %6899
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #12
  store i32 32, ptr %148, align 4, !tbaa !5
  %6901 = load i32, ptr %148, align 4, !tbaa !5
  %6902 = icmp ne i32 %6901, 0
  br i1 %6902, label %6903, label %6965

6903:                                             ; preds = %6900
  %6904 = load ptr, ptr %144, align 8, !tbaa !9
  %6905 = getelementptr inbounds %struct.s2n_connection, ptr %6904, i32 0, i32 32
  %6906 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %6905, i32 0, i32 13
  %6907 = getelementptr inbounds [32 x i8], ptr %6906, i64 0, i64 0
  %6908 = load i32, ptr %148, align 4, !tbaa !5
  %6909 = sext i32 %6908 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %6907, ptr align 16 @hello_retry_req_random, i64 %6909, i1 false)
  %6910 = icmp eq ptr %6907, null
  br i1 %6910, label %6911, label %6964

6911:                                             ; preds = %6903
  br label %6912

6912:                                             ; preds = %6911
  br label %6913

6913:                                             ; preds = %6912
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #12
  %6914 = call ptr @__errno_location() #13
  %6915 = load i32, ptr %6914, align 4, !tbaa !5
  store i32 %6915, ptr %149, align 4, !tbaa !5
  %6916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6917 = call i32 @s2n_print_stacktrace(ptr noundef %6916)
  %6918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6919 = trunc i8 %6918 to i1
  br i1 %6919, label %6920, label %6942

6920:                                             ; preds = %6913
  %6921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6922 = call i32 @fileno(ptr noundef %6921) #12
  %6923 = call i32 @isatty(i32 noundef %6922) #12
  %6924 = icmp ne i32 %6923, 0
  br i1 %6924, label %6925, label %6942

6925:                                             ; preds = %6920
  %6926 = load i32, ptr %149, align 4, !tbaa !5
  %6927 = call ptr @__errno_location() #13
  store i32 %6926, ptr %6927, align 4, !tbaa !5
  %6928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6929 = load i32, ptr @test_count, align 4, !tbaa !5
  %6930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6931 = load i32, ptr %6930, align 4, !tbaa !5
  %6932 = call ptr @s2n_strerror(i32 noundef %6931, ptr noundef @.str.6)
  %6933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6934 = load i32, ptr %6933, align 4, !tbaa !5
  %6935 = call ptr @s2n_strerror_debug(i32 noundef %6934, ptr noundef @.str.6)
  %6936 = call ptr @__errno_location() #13
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  %6938 = call ptr @strerror(i32 noundef %6937) #12
  %6939 = call ptr @__errno_location() #13
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6928, ptr noundef @.str.4, i32 noundef %6929, ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 320, ptr noundef %6932, ptr noundef %6935, ptr noundef %6938, i32 noundef %6940) #12
  br label %6959

6942:                                             ; preds = %6920, %6913
  %6943 = load i32, ptr %149, align 4, !tbaa !5
  %6944 = call ptr @__errno_location() #13
  store i32 %6943, ptr %6944, align 4, !tbaa !5
  %6945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6946 = load i32, ptr @test_count, align 4, !tbaa !5
  %6947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6948 = load i32, ptr %6947, align 4, !tbaa !5
  %6949 = call ptr @s2n_strerror(i32 noundef %6948, ptr noundef @.str.6)
  %6950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6951 = load i32, ptr %6950, align 4, !tbaa !5
  %6952 = call ptr @s2n_strerror_debug(i32 noundef %6951, ptr noundef @.str.6)
  %6953 = call ptr @__errno_location() #13
  %6954 = load i32, ptr %6953, align 4, !tbaa !5
  %6955 = call ptr @strerror(i32 noundef %6954) #12
  %6956 = call ptr @__errno_location() #13
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6945, ptr noundef @.str.7, i32 noundef %6946, ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 320, ptr noundef %6949, ptr noundef %6952, ptr noundef %6955, i32 noundef %6957) #12
  br label %6959

6959:                                             ; preds = %6942, %6925
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #12
  br label %6960

6960:                                             ; preds = %6959
  br label %6961

6961:                                             ; preds = %6960
  call void @exit(i32 noundef 1) #14
  unreachable

6962:                                             ; No predecessors!
  br label %6963

6963:                                             ; preds = %6962
  br label %6964

6964:                                             ; preds = %6963, %6903
  br label %6965

6965:                                             ; preds = %6964, %6900
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #12
  br label %6966

6966:                                             ; preds = %6965
  br label %6967

6967:                                             ; preds = %6966
  br label %6968

6968:                                             ; preds = %6967
  %6969 = load i32, ptr @test_count, align 4, !tbaa !5
  %6970 = add nsw i32 %6969, 1
  store i32 %6970, ptr @test_count, align 4, !tbaa !5
  %6971 = load ptr, ptr %144, align 8, !tbaa !9
  %6972 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %6971, i8 noundef zeroext 34)
  %6973 = icmp eq i32 %6972, -1
  br i1 %6973, label %6974, label %7027

6974:                                             ; preds = %6968
  br label %6975

6975:                                             ; preds = %6974
  br label %6976

6976:                                             ; preds = %6975
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #12
  %6977 = call ptr @__errno_location() #13
  %6978 = load i32, ptr %6977, align 4, !tbaa !5
  store i32 %6978, ptr %150, align 4, !tbaa !5
  %6979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6980 = call i32 @s2n_print_stacktrace(ptr noundef %6979)
  %6981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6982 = trunc i8 %6981 to i1
  br i1 %6982, label %6983, label %7005

6983:                                             ; preds = %6976
  %6984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6985 = call i32 @fileno(ptr noundef %6984) #12
  %6986 = call i32 @isatty(i32 noundef %6985) #12
  %6987 = icmp ne i32 %6986, 0
  br i1 %6987, label %6988, label %7005

6988:                                             ; preds = %6983
  %6989 = load i32, ptr %150, align 4, !tbaa !5
  %6990 = call ptr @__errno_location() #13
  store i32 %6989, ptr %6990, align 4, !tbaa !5
  %6991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6992 = load i32, ptr @test_count, align 4, !tbaa !5
  %6993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6994 = load i32, ptr %6993, align 4, !tbaa !5
  %6995 = call ptr @s2n_strerror(i32 noundef %6994, ptr noundef @.str.6)
  %6996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6997 = load i32, ptr %6996, align 4, !tbaa !5
  %6998 = call ptr @s2n_strerror_debug(i32 noundef %6997, ptr noundef @.str.6)
  %6999 = call ptr @__errno_location() #13
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  %7001 = call ptr @strerror(i32 noundef %7000) #12
  %7002 = call ptr @__errno_location() #13
  %7003 = load i32, ptr %7002, align 4, !tbaa !5
  %7004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6991, ptr noundef @.str.4, i32 noundef %6992, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 321, ptr noundef %6995, ptr noundef %6998, ptr noundef %7001, i32 noundef %7003) #12
  br label %7022

7005:                                             ; preds = %6983, %6976
  %7006 = load i32, ptr %150, align 4, !tbaa !5
  %7007 = call ptr @__errno_location() #13
  store i32 %7006, ptr %7007, align 4, !tbaa !5
  %7008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7009 = load i32, ptr @test_count, align 4, !tbaa !5
  %7010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7011 = load i32, ptr %7010, align 4, !tbaa !5
  %7012 = call ptr @s2n_strerror(i32 noundef %7011, ptr noundef @.str.6)
  %7013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7014 = load i32, ptr %7013, align 4, !tbaa !5
  %7015 = call ptr @s2n_strerror_debug(i32 noundef %7014, ptr noundef @.str.6)
  %7016 = call ptr @__errno_location() #13
  %7017 = load i32, ptr %7016, align 4, !tbaa !5
  %7018 = call ptr @strerror(i32 noundef %7017) #12
  %7019 = call ptr @__errno_location() #13
  %7020 = load i32, ptr %7019, align 4, !tbaa !5
  %7021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7008, ptr noundef @.str.7, i32 noundef %7009, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 321, ptr noundef %7012, ptr noundef %7015, ptr noundef %7018, i32 noundef %7020) #12
  br label %7022

7022:                                             ; preds = %7005, %6988
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #12
  br label %7023

7023:                                             ; preds = %7022
  br label %7024

7024:                                             ; preds = %7023
  call void @exit(i32 noundef 1) #14
  unreachable

7025:                                             ; No predecessors!
  br label %7026

7026:                                             ; preds = %7025
  br label %7027

7027:                                             ; preds = %7026, %6968
  br label %7028

7028:                                             ; preds = %7027
  br label %7029

7029:                                             ; preds = %7028
  br label %7030

7030:                                             ; preds = %7029
  %7031 = load i32, ptr @test_count, align 4, !tbaa !5
  %7032 = add nsw i32 %7031, 1
  store i32 %7032, ptr @test_count, align 4, !tbaa !5
  %7033 = load ptr, ptr %144, align 8, !tbaa !9
  %7034 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %7033)
  %7035 = icmp eq i32 %7034, -1
  br i1 %7035, label %7036, label %7089

7036:                                             ; preds = %7030
  br label %7037

7037:                                             ; preds = %7036
  br label %7038

7038:                                             ; preds = %7037
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #12
  %7039 = call ptr @__errno_location() #13
  %7040 = load i32, ptr %7039, align 4, !tbaa !5
  store i32 %7040, ptr %151, align 4, !tbaa !5
  %7041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7042 = call i32 @s2n_print_stacktrace(ptr noundef %7041)
  %7043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7044 = trunc i8 %7043 to i1
  br i1 %7044, label %7045, label %7067

7045:                                             ; preds = %7038
  %7046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7047 = call i32 @fileno(ptr noundef %7046) #12
  %7048 = call i32 @isatty(i32 noundef %7047) #12
  %7049 = icmp ne i32 %7048, 0
  br i1 %7049, label %7050, label %7067

7050:                                             ; preds = %7045
  %7051 = load i32, ptr %151, align 4, !tbaa !5
  %7052 = call ptr @__errno_location() #13
  store i32 %7051, ptr %7052, align 4, !tbaa !5
  %7053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7054 = load i32, ptr @test_count, align 4, !tbaa !5
  %7055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7056 = load i32, ptr %7055, align 4, !tbaa !5
  %7057 = call ptr @s2n_strerror(i32 noundef %7056, ptr noundef @.str.6)
  %7058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7059 = load i32, ptr %7058, align 4, !tbaa !5
  %7060 = call ptr @s2n_strerror_debug(i32 noundef %7059, ptr noundef @.str.6)
  %7061 = call ptr @__errno_location() #13
  %7062 = load i32, ptr %7061, align 4, !tbaa !5
  %7063 = call ptr @strerror(i32 noundef %7062) #12
  %7064 = call ptr @__errno_location() #13
  %7065 = load i32, ptr %7064, align 4, !tbaa !5
  %7066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7053, ptr noundef @.str.4, i32 noundef %7054, ptr noundef @.str.43, ptr noundef @.str.3, i32 noundef 322, ptr noundef %7057, ptr noundef %7060, ptr noundef %7063, i32 noundef %7065) #12
  br label %7084

7067:                                             ; preds = %7045, %7038
  %7068 = load i32, ptr %151, align 4, !tbaa !5
  %7069 = call ptr @__errno_location() #13
  store i32 %7068, ptr %7069, align 4, !tbaa !5
  %7070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7071 = load i32, ptr @test_count, align 4, !tbaa !5
  %7072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7073 = load i32, ptr %7072, align 4, !tbaa !5
  %7074 = call ptr @s2n_strerror(i32 noundef %7073, ptr noundef @.str.6)
  %7075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7076 = load i32, ptr %7075, align 4, !tbaa !5
  %7077 = call ptr @s2n_strerror_debug(i32 noundef %7076, ptr noundef @.str.6)
  %7078 = call ptr @__errno_location() #13
  %7079 = load i32, ptr %7078, align 4, !tbaa !5
  %7080 = call ptr @strerror(i32 noundef %7079) #12
  %7081 = call ptr @__errno_location() #13
  %7082 = load i32, ptr %7081, align 4, !tbaa !5
  %7083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7070, ptr noundef @.str.7, i32 noundef %7071, ptr noundef @.str.43, ptr noundef @.str.3, i32 noundef 322, ptr noundef %7074, ptr noundef %7077, ptr noundef %7080, i32 noundef %7082) #12
  br label %7084

7084:                                             ; preds = %7067, %7050
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #12
  br label %7085

7085:                                             ; preds = %7084
  br label %7086

7086:                                             ; preds = %7085
  call void @exit(i32 noundef 1) #14
  unreachable

7087:                                             ; No predecessors!
  br label %7088

7088:                                             ; preds = %7087
  br label %7089

7089:                                             ; preds = %7088, %7030
  br label %7090

7090:                                             ; preds = %7089
  br label %7091

7091:                                             ; preds = %7090
  %7092 = load ptr, ptr %144, align 8, !tbaa !9
  %7093 = getelementptr inbounds %struct.s2n_connection, ptr %7092, i32 0, i32 31
  %7094 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7093, i32 0, i32 1
  %7095 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7094, i32 0, i32 0
  store ptr null, ptr %7095, align 8, !tbaa !54
  %7096 = load ptr, ptr %144, align 8, !tbaa !9
  %7097 = getelementptr inbounds %struct.s2n_connection, ptr %7096, i32 0, i32 31
  %7098 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7097, i32 0, i32 4
  %7099 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %7098, i32 0, i32 0
  store ptr null, ptr %7099, align 8, !tbaa !59
  br label %7100

7100:                                             ; preds = %7091
  br label %7101

7101:                                             ; preds = %7100
  br label %7102

7102:                                             ; preds = %7101
  %7103 = load i32, ptr @test_count, align 4, !tbaa !5
  %7104 = add nsw i32 %7103, 1
  store i32 %7104, ptr @test_count, align 4, !tbaa !5
  %7105 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %7106 = load ptr, ptr %144, align 8, !tbaa !9
  %7107 = call i32 %7105(ptr noundef %7106, ptr noundef %145)
  %7108 = icmp eq i32 %7107, -1
  br i1 %7108, label %7162, label %7109

7109:                                             ; preds = %7102
  br label %7110

7110:                                             ; preds = %7109
  br label %7111

7111:                                             ; preds = %7110
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #12
  %7112 = call ptr @__errno_location() #13
  %7113 = load i32, ptr %7112, align 4, !tbaa !5
  store i32 %7113, ptr %152, align 4, !tbaa !5
  %7114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7115 = call i32 @s2n_print_stacktrace(ptr noundef %7114)
  %7116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7117 = trunc i8 %7116 to i1
  br i1 %7117, label %7118, label %7140

7118:                                             ; preds = %7111
  %7119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7120 = call i32 @fileno(ptr noundef %7119) #12
  %7121 = call i32 @isatty(i32 noundef %7120) #12
  %7122 = icmp ne i32 %7121, 0
  br i1 %7122, label %7123, label %7140

7123:                                             ; preds = %7118
  %7124 = load i32, ptr %152, align 4, !tbaa !5
  %7125 = call ptr @__errno_location() #13
  store i32 %7124, ptr %7125, align 4, !tbaa !5
  %7126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7127 = load i32, ptr @test_count, align 4, !tbaa !5
  %7128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  %7130 = call ptr @s2n_strerror(i32 noundef %7129, ptr noundef @.str.6)
  %7131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call ptr @s2n_strerror_debug(i32 noundef %7132, ptr noundef @.str.6)
  %7134 = call ptr @__errno_location() #13
  %7135 = load i32, ptr %7134, align 4, !tbaa !5
  %7136 = call ptr @strerror(i32 noundef %7135) #12
  %7137 = call ptr @__errno_location() #13
  %7138 = load i32, ptr %7137, align 4, !tbaa !5
  %7139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7126, ptr noundef @.str.4, i32 noundef %7127, ptr noundef @.str.68, ptr noundef @.str.3, i32 noundef 327, ptr noundef %7130, ptr noundef %7133, ptr noundef %7136, i32 noundef %7138) #12
  br label %7157

7140:                                             ; preds = %7118, %7111
  %7141 = load i32, ptr %152, align 4, !tbaa !5
  %7142 = call ptr @__errno_location() #13
  store i32 %7141, ptr %7142, align 4, !tbaa !5
  %7143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7144 = load i32, ptr @test_count, align 4, !tbaa !5
  %7145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7146 = load i32, ptr %7145, align 4, !tbaa !5
  %7147 = call ptr @s2n_strerror(i32 noundef %7146, ptr noundef @.str.6)
  %7148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call ptr @s2n_strerror_debug(i32 noundef %7149, ptr noundef @.str.6)
  %7151 = call ptr @__errno_location() #13
  %7152 = load i32, ptr %7151, align 4, !tbaa !5
  %7153 = call ptr @strerror(i32 noundef %7152) #12
  %7154 = call ptr @__errno_location() #13
  %7155 = load i32, ptr %7154, align 4, !tbaa !5
  %7156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7143, ptr noundef @.str.7, i32 noundef %7144, ptr noundef @.str.68, ptr noundef @.str.3, i32 noundef 327, ptr noundef %7147, ptr noundef %7150, ptr noundef %7153, i32 noundef %7155) #12
  br label %7157

7157:                                             ; preds = %7140, %7123
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #12
  br label %7158

7158:                                             ; preds = %7157
  br label %7159

7159:                                             ; preds = %7158
  call void @exit(i32 noundef 1) #14
  unreachable

7160:                                             ; No predecessors!
  br label %7161

7161:                                             ; preds = %7160
  br label %7162

7162:                                             ; preds = %7161, %7102
  br label %7163

7163:                                             ; preds = %7162
  br label %7164

7164:                                             ; preds = %7163
  br label %7165

7165:                                             ; preds = %7164
  %7166 = load i32, ptr @test_count, align 4, !tbaa !5
  %7167 = add nsw i32 %7166, 1
  store i32 %7167, ptr @test_count, align 4, !tbaa !5
  %7168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7169 = load i32, ptr %7168, align 4, !tbaa !5
  %7170 = icmp eq i32 %7169, 335544385
  br i1 %7170, label %7224, label %7171

7171:                                             ; preds = %7165
  br label %7172

7172:                                             ; preds = %7171
  br label %7173

7173:                                             ; preds = %7172
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #12
  %7174 = call ptr @__errno_location() #13
  %7175 = load i32, ptr %7174, align 4, !tbaa !5
  store i32 %7175, ptr %153, align 4, !tbaa !5
  %7176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7177 = call i32 @s2n_print_stacktrace(ptr noundef %7176)
  %7178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7179 = trunc i8 %7178 to i1
  br i1 %7179, label %7180, label %7202

7180:                                             ; preds = %7173
  %7181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7182 = call i32 @fileno(ptr noundef %7181) #12
  %7183 = call i32 @isatty(i32 noundef %7182) #12
  %7184 = icmp ne i32 %7183, 0
  br i1 %7184, label %7185, label %7202

7185:                                             ; preds = %7180
  %7186 = load i32, ptr %153, align 4, !tbaa !5
  %7187 = call ptr @__errno_location() #13
  store i32 %7186, ptr %7187, align 4, !tbaa !5
  %7188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7189 = load i32, ptr @test_count, align 4, !tbaa !5
  %7190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7191 = load i32, ptr %7190, align 4, !tbaa !5
  %7192 = call ptr @s2n_strerror(i32 noundef %7191, ptr noundef @.str.6)
  %7193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  %7195 = call ptr @s2n_strerror_debug(i32 noundef %7194, ptr noundef @.str.6)
  %7196 = call ptr @__errno_location() #13
  %7197 = load i32, ptr %7196, align 4, !tbaa !5
  %7198 = call ptr @strerror(i32 noundef %7197) #12
  %7199 = call ptr @__errno_location() #13
  %7200 = load i32, ptr %7199, align 4, !tbaa !5
  %7201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7188, ptr noundef @.str.4, i32 noundef %7189, ptr noundef @.str.69, ptr noundef @.str.3, i32 noundef 327, ptr noundef %7192, ptr noundef %7195, ptr noundef %7198, i32 noundef %7200) #12
  br label %7219

7202:                                             ; preds = %7180, %7173
  %7203 = load i32, ptr %153, align 4, !tbaa !5
  %7204 = call ptr @__errno_location() #13
  store i32 %7203, ptr %7204, align 4, !tbaa !5
  %7205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7206 = load i32, ptr @test_count, align 4, !tbaa !5
  %7207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7208 = load i32, ptr %7207, align 4, !tbaa !5
  %7209 = call ptr @s2n_strerror(i32 noundef %7208, ptr noundef @.str.6)
  %7210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7211 = load i32, ptr %7210, align 4, !tbaa !5
  %7212 = call ptr @s2n_strerror_debug(i32 noundef %7211, ptr noundef @.str.6)
  %7213 = call ptr @__errno_location() #13
  %7214 = load i32, ptr %7213, align 4, !tbaa !5
  %7215 = call ptr @strerror(i32 noundef %7214) #12
  %7216 = call ptr @__errno_location() #13
  %7217 = load i32, ptr %7216, align 4, !tbaa !5
  %7218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7205, ptr noundef @.str.7, i32 noundef %7206, ptr noundef @.str.69, ptr noundef @.str.3, i32 noundef 327, ptr noundef %7209, ptr noundef %7212, ptr noundef %7215, i32 noundef %7217) #12
  br label %7219

7219:                                             ; preds = %7202, %7185
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #12
  br label %7220

7220:                                             ; preds = %7219
  br label %7221

7221:                                             ; preds = %7220
  call void @exit(i32 noundef 1) #14
  unreachable

7222:                                             ; No predecessors!
  br label %7223

7223:                                             ; preds = %7222
  br label %7224

7224:                                             ; preds = %7223, %7165
  br label %7225

7225:                                             ; preds = %7224
  br label %7226

7226:                                             ; preds = %7225
  br label %7227

7227:                                             ; preds = %7226
  %7228 = load i32, ptr @test_count, align 4, !tbaa !5
  %7229 = add nsw i32 %7228, 1
  store i32 %7229, ptr @test_count, align 4, !tbaa !5
  %7230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7231 = load i32, ptr %7230, align 4, !tbaa !5
  %7232 = call ptr @s2n_strerror_debug(i32 noundef %7231, ptr noundef @.str.6)
  %7233 = icmp eq ptr %7232, null
  br i1 %7233, label %7234, label %7287

7234:                                             ; preds = %7227
  br label %7235

7235:                                             ; preds = %7234
  br label %7236

7236:                                             ; preds = %7235
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #12
  %7237 = call ptr @__errno_location() #13
  %7238 = load i32, ptr %7237, align 4, !tbaa !5
  store i32 %7238, ptr %154, align 4, !tbaa !5
  %7239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7240 = call i32 @s2n_print_stacktrace(ptr noundef %7239)
  %7241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7242 = trunc i8 %7241 to i1
  br i1 %7242, label %7243, label %7265

7243:                                             ; preds = %7236
  %7244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7245 = call i32 @fileno(ptr noundef %7244) #12
  %7246 = call i32 @isatty(i32 noundef %7245) #12
  %7247 = icmp ne i32 %7246, 0
  br i1 %7247, label %7248, label %7265

7248:                                             ; preds = %7243
  %7249 = load i32, ptr %154, align 4, !tbaa !5
  %7250 = call ptr @__errno_location() #13
  store i32 %7249, ptr %7250, align 4, !tbaa !5
  %7251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7252 = load i32, ptr @test_count, align 4, !tbaa !5
  %7253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7254 = load i32, ptr %7253, align 4, !tbaa !5
  %7255 = call ptr @s2n_strerror(i32 noundef %7254, ptr noundef @.str.6)
  %7256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7257 = load i32, ptr %7256, align 4, !tbaa !5
  %7258 = call ptr @s2n_strerror_debug(i32 noundef %7257, ptr noundef @.str.6)
  %7259 = call ptr @__errno_location() #13
  %7260 = load i32, ptr %7259, align 4, !tbaa !5
  %7261 = call ptr @strerror(i32 noundef %7260) #12
  %7262 = call ptr @__errno_location() #13
  %7263 = load i32, ptr %7262, align 4, !tbaa !5
  %7264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7251, ptr noundef @.str.4, i32 noundef %7252, ptr noundef @.str.70, ptr noundef @.str.3, i32 noundef 327, ptr noundef %7255, ptr noundef %7258, ptr noundef %7261, i32 noundef %7263) #12
  br label %7282

7265:                                             ; preds = %7243, %7236
  %7266 = load i32, ptr %154, align 4, !tbaa !5
  %7267 = call ptr @__errno_location() #13
  store i32 %7266, ptr %7267, align 4, !tbaa !5
  %7268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7269 = load i32, ptr @test_count, align 4, !tbaa !5
  %7270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call ptr @s2n_strerror(i32 noundef %7271, ptr noundef @.str.6)
  %7273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call ptr @s2n_strerror_debug(i32 noundef %7274, ptr noundef @.str.6)
  %7276 = call ptr @__errno_location() #13
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  %7278 = call ptr @strerror(i32 noundef %7277) #12
  %7279 = call ptr @__errno_location() #13
  %7280 = load i32, ptr %7279, align 4, !tbaa !5
  %7281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7268, ptr noundef @.str.7, i32 noundef %7269, ptr noundef @.str.70, ptr noundef @.str.3, i32 noundef 327, ptr noundef %7272, ptr noundef %7275, ptr noundef %7278, i32 noundef %7280) #12
  br label %7282

7282:                                             ; preds = %7265, %7248
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #12
  br label %7283

7283:                                             ; preds = %7282
  br label %7284

7284:                                             ; preds = %7283
  call void @exit(i32 noundef 1) #14
  unreachable

7285:                                             ; No predecessors!
  br label %7286

7286:                                             ; preds = %7285
  br label %7287

7287:                                             ; preds = %7286, %7227
  br label %7288

7288:                                             ; preds = %7287
  br label %7289

7289:                                             ; preds = %7288
  br label %7290

7290:                                             ; preds = %7289
  br label %7291

7291:                                             ; preds = %7290
  br label %7292

7292:                                             ; preds = %7291
  %7293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7293, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7294 = call ptr @__errno_location() #13
  store i32 0, ptr %7294, align 4, !tbaa !5
  br label %7295

7295:                                             ; preds = %7292
  br label %7296

7296:                                             ; preds = %7295
  br label %7297

7297:                                             ; preds = %7296
  br label %7298

7298:                                             ; preds = %7297
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #12
  store ptr null, ptr %155, align 8, !tbaa !9
  br label %7299

7299:                                             ; preds = %7298
  %7300 = load i32, ptr @test_count, align 4, !tbaa !5
  %7301 = add nsw i32 %7300, 1
  store i32 %7301, ptr @test_count, align 4, !tbaa !5
  %7302 = load ptr, ptr %144, align 8, !tbaa !9
  %7303 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %7302, ptr noundef %155)
  %7304 = icmp eq i32 %7303, -1
  br i1 %7304, label %7305, label %7358

7305:                                             ; preds = %7299
  br label %7306

7306:                                             ; preds = %7305
  br label %7307

7307:                                             ; preds = %7306
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #12
  %7308 = call ptr @__errno_location() #13
  %7309 = load i32, ptr %7308, align 4, !tbaa !5
  store i32 %7309, ptr %156, align 4, !tbaa !5
  %7310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7311 = call i32 @s2n_print_stacktrace(ptr noundef %7310)
  %7312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7313 = trunc i8 %7312 to i1
  br i1 %7313, label %7314, label %7336

7314:                                             ; preds = %7307
  %7315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7316 = call i32 @fileno(ptr noundef %7315) #12
  %7317 = call i32 @isatty(i32 noundef %7316) #12
  %7318 = icmp ne i32 %7317, 0
  br i1 %7318, label %7319, label %7336

7319:                                             ; preds = %7314
  %7320 = load i32, ptr %156, align 4, !tbaa !5
  %7321 = call ptr @__errno_location() #13
  store i32 %7320, ptr %7321, align 4, !tbaa !5
  %7322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7323 = load i32, ptr @test_count, align 4, !tbaa !5
  %7324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7325 = load i32, ptr %7324, align 4, !tbaa !5
  %7326 = call ptr @s2n_strerror(i32 noundef %7325, ptr noundef @.str.6)
  %7327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7328 = load i32, ptr %7327, align 4, !tbaa !5
  %7329 = call ptr @s2n_strerror_debug(i32 noundef %7328, ptr noundef @.str.6)
  %7330 = call ptr @__errno_location() #13
  %7331 = load i32, ptr %7330, align 4, !tbaa !5
  %7332 = call ptr @strerror(i32 noundef %7331) #12
  %7333 = call ptr @__errno_location() #13
  %7334 = load i32, ptr %7333, align 4, !tbaa !5
  %7335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7322, ptr noundef @.str.4, i32 noundef %7323, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 330, ptr noundef %7326, ptr noundef %7329, ptr noundef %7332, i32 noundef %7334) #12
  br label %7353

7336:                                             ; preds = %7314, %7307
  %7337 = load i32, ptr %156, align 4, !tbaa !5
  %7338 = call ptr @__errno_location() #13
  store i32 %7337, ptr %7338, align 4, !tbaa !5
  %7339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7340 = load i32, ptr @test_count, align 4, !tbaa !5
  %7341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7342 = load i32, ptr %7341, align 4, !tbaa !5
  %7343 = call ptr @s2n_strerror(i32 noundef %7342, ptr noundef @.str.6)
  %7344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7345 = load i32, ptr %7344, align 4, !tbaa !5
  %7346 = call ptr @s2n_strerror_debug(i32 noundef %7345, ptr noundef @.str.6)
  %7347 = call ptr @__errno_location() #13
  %7348 = load i32, ptr %7347, align 4, !tbaa !5
  %7349 = call ptr @strerror(i32 noundef %7348) #12
  %7350 = call ptr @__errno_location() #13
  %7351 = load i32, ptr %7350, align 4, !tbaa !5
  %7352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7339, ptr noundef @.str.7, i32 noundef %7340, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 330, ptr noundef %7343, ptr noundef %7346, ptr noundef %7349, i32 noundef %7351) #12
  br label %7353

7353:                                             ; preds = %7336, %7319
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #12
  br label %7354

7354:                                             ; preds = %7353
  br label %7355

7355:                                             ; preds = %7354
  call void @exit(i32 noundef 1) #14
  unreachable

7356:                                             ; No predecessors!
  br label %7357

7357:                                             ; preds = %7356
  br label %7358

7358:                                             ; preds = %7357, %7299
  br label %7359

7359:                                             ; preds = %7358
  br label %7360

7360:                                             ; preds = %7359
  br label %7361

7361:                                             ; preds = %7360
  %7362 = load i32, ptr @test_count, align 4, !tbaa !5
  %7363 = add nsw i32 %7362, 1
  store i32 %7363, ptr @test_count, align 4, !tbaa !5
  %7364 = load ptr, ptr %155, align 8, !tbaa !9
  %7365 = icmp eq ptr %7364, null
  br i1 %7365, label %7366, label %7419

7366:                                             ; preds = %7361
  br label %7367

7367:                                             ; preds = %7366
  br label %7368

7368:                                             ; preds = %7367
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #12
  %7369 = call ptr @__errno_location() #13
  %7370 = load i32, ptr %7369, align 4, !tbaa !5
  store i32 %7370, ptr %157, align 4, !tbaa !5
  %7371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7372 = call i32 @s2n_print_stacktrace(ptr noundef %7371)
  %7373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7374 = trunc i8 %7373 to i1
  br i1 %7374, label %7375, label %7397

7375:                                             ; preds = %7368
  %7376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7377 = call i32 @fileno(ptr noundef %7376) #12
  %7378 = call i32 @isatty(i32 noundef %7377) #12
  %7379 = icmp ne i32 %7378, 0
  br i1 %7379, label %7380, label %7397

7380:                                             ; preds = %7375
  %7381 = load i32, ptr %157, align 4, !tbaa !5
  %7382 = call ptr @__errno_location() #13
  store i32 %7381, ptr %7382, align 4, !tbaa !5
  %7383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7384 = load i32, ptr @test_count, align 4, !tbaa !5
  %7385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7386 = load i32, ptr %7385, align 4, !tbaa !5
  %7387 = call ptr @s2n_strerror(i32 noundef %7386, ptr noundef @.str.6)
  %7388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7389 = load i32, ptr %7388, align 4, !tbaa !5
  %7390 = call ptr @s2n_strerror_debug(i32 noundef %7389, ptr noundef @.str.6)
  %7391 = call ptr @__errno_location() #13
  %7392 = load i32, ptr %7391, align 4, !tbaa !5
  %7393 = call ptr @strerror(i32 noundef %7392) #12
  %7394 = call ptr @__errno_location() #13
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  %7396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7383, ptr noundef @.str.4, i32 noundef %7384, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 331, ptr noundef %7387, ptr noundef %7390, ptr noundef %7393, i32 noundef %7395) #12
  br label %7414

7397:                                             ; preds = %7375, %7368
  %7398 = load i32, ptr %157, align 4, !tbaa !5
  %7399 = call ptr @__errno_location() #13
  store i32 %7398, ptr %7399, align 4, !tbaa !5
  %7400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7401 = load i32, ptr @test_count, align 4, !tbaa !5
  %7402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7403 = load i32, ptr %7402, align 4, !tbaa !5
  %7404 = call ptr @s2n_strerror(i32 noundef %7403, ptr noundef @.str.6)
  %7405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7406 = load i32, ptr %7405, align 4, !tbaa !5
  %7407 = call ptr @s2n_strerror_debug(i32 noundef %7406, ptr noundef @.str.6)
  %7408 = call ptr @__errno_location() #13
  %7409 = load i32, ptr %7408, align 4, !tbaa !5
  %7410 = call ptr @strerror(i32 noundef %7409) #12
  %7411 = call ptr @__errno_location() #13
  %7412 = load i32, ptr %7411, align 4, !tbaa !5
  %7413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7400, ptr noundef @.str.7, i32 noundef %7401, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 331, ptr noundef %7404, ptr noundef %7407, ptr noundef %7410, i32 noundef %7412) #12
  br label %7414

7414:                                             ; preds = %7397, %7380
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #12
  br label %7415

7415:                                             ; preds = %7414
  br label %7416

7416:                                             ; preds = %7415
  call void @exit(i32 noundef 1) #14
  unreachable

7417:                                             ; No predecessors!
  br label %7418

7418:                                             ; preds = %7417
  br label %7419

7419:                                             ; preds = %7418, %7361
  br label %7420

7420:                                             ; preds = %7419
  br label %7421

7421:                                             ; preds = %7420
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #12
  %7422 = load ptr, ptr %144, align 8, !tbaa !9
  %7423 = getelementptr inbounds %struct.s2n_connection, ptr %7422, i32 0, i32 31
  %7424 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7423, i32 0, i32 3
  store ptr %7424, ptr %158, align 8, !tbaa !9
  br label %7425

7425:                                             ; preds = %7421
  %7426 = load i32, ptr @test_count, align 4, !tbaa !5
  %7427 = add nsw i32 %7426, 1
  store i32 %7427, ptr @test_count, align 4, !tbaa !5
  %7428 = load ptr, ptr %158, align 8, !tbaa !9
  %7429 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7428, i32 0, i32 0
  %7430 = load ptr, ptr %7429, align 8, !tbaa !22
  %7431 = icmp eq ptr %7430, null
  br i1 %7431, label %7485, label %7432

7432:                                             ; preds = %7425
  br label %7433

7433:                                             ; preds = %7432
  br label %7434

7434:                                             ; preds = %7433
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #12
  %7435 = call ptr @__errno_location() #13
  %7436 = load i32, ptr %7435, align 4, !tbaa !5
  store i32 %7436, ptr %159, align 4, !tbaa !5
  %7437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7438 = call i32 @s2n_print_stacktrace(ptr noundef %7437)
  %7439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7440 = trunc i8 %7439 to i1
  br i1 %7440, label %7441, label %7463

7441:                                             ; preds = %7434
  %7442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7443 = call i32 @fileno(ptr noundef %7442) #12
  %7444 = call i32 @isatty(i32 noundef %7443) #12
  %7445 = icmp ne i32 %7444, 0
  br i1 %7445, label %7446, label %7463

7446:                                             ; preds = %7441
  %7447 = load i32, ptr %159, align 4, !tbaa !5
  %7448 = call ptr @__errno_location() #13
  store i32 %7447, ptr %7448, align 4, !tbaa !5
  %7449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7450 = load i32, ptr @test_count, align 4, !tbaa !5
  %7451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7452 = load i32, ptr %7451, align 4, !tbaa !5
  %7453 = call ptr @s2n_strerror(i32 noundef %7452, ptr noundef @.str.6)
  %7454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7455 = load i32, ptr %7454, align 4, !tbaa !5
  %7456 = call ptr @s2n_strerror_debug(i32 noundef %7455, ptr noundef @.str.6)
  %7457 = call ptr @__errno_location() #13
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  %7459 = call ptr @strerror(i32 noundef %7458) #12
  %7460 = call ptr @__errno_location() #13
  %7461 = load i32, ptr %7460, align 4, !tbaa !5
  %7462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7449, ptr noundef @.str.4, i32 noundef %7450, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 334, ptr noundef %7453, ptr noundef %7456, ptr noundef %7459, i32 noundef %7461) #12
  br label %7480

7463:                                             ; preds = %7441, %7434
  %7464 = load i32, ptr %159, align 4, !tbaa !5
  %7465 = call ptr @__errno_location() #13
  store i32 %7464, ptr %7465, align 4, !tbaa !5
  %7466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7467 = load i32, ptr @test_count, align 4, !tbaa !5
  %7468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7469 = load i32, ptr %7468, align 4, !tbaa !5
  %7470 = call ptr @s2n_strerror(i32 noundef %7469, ptr noundef @.str.6)
  %7471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7472 = load i32, ptr %7471, align 4, !tbaa !5
  %7473 = call ptr @s2n_strerror_debug(i32 noundef %7472, ptr noundef @.str.6)
  %7474 = call ptr @__errno_location() #13
  %7475 = load i32, ptr %7474, align 4, !tbaa !5
  %7476 = call ptr @strerror(i32 noundef %7475) #12
  %7477 = call ptr @__errno_location() #13
  %7478 = load i32, ptr %7477, align 4, !tbaa !5
  %7479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7466, ptr noundef @.str.7, i32 noundef %7467, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 334, ptr noundef %7470, ptr noundef %7473, ptr noundef %7476, i32 noundef %7478) #12
  br label %7480

7480:                                             ; preds = %7463, %7446
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #12
  br label %7481

7481:                                             ; preds = %7480
  br label %7482

7482:                                             ; preds = %7481
  call void @exit(i32 noundef 1) #14
  unreachable

7483:                                             ; No predecessors!
  br label %7484

7484:                                             ; preds = %7483
  br label %7485

7485:                                             ; preds = %7484, %7425
  br label %7486

7486:                                             ; preds = %7485
  br label %7487

7487:                                             ; preds = %7486
  br label %7488

7488:                                             ; preds = %7487
  %7489 = load i32, ptr @test_count, align 4, !tbaa !5
  %7490 = add nsw i32 %7489, 1
  store i32 %7490, ptr @test_count, align 4, !tbaa !5
  %7491 = load ptr, ptr %158, align 8, !tbaa !9
  %7492 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7491, i32 0, i32 1
  %7493 = load ptr, ptr %7492, align 8, !tbaa !26
  %7494 = icmp eq ptr %7493, null
  br i1 %7494, label %7548, label %7495

7495:                                             ; preds = %7488
  br label %7496

7496:                                             ; preds = %7495
  br label %7497

7497:                                             ; preds = %7496
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #12
  %7498 = call ptr @__errno_location() #13
  %7499 = load i32, ptr %7498, align 4, !tbaa !5
  store i32 %7499, ptr %160, align 4, !tbaa !5
  %7500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7501 = call i32 @s2n_print_stacktrace(ptr noundef %7500)
  %7502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7503 = trunc i8 %7502 to i1
  br i1 %7503, label %7504, label %7526

7504:                                             ; preds = %7497
  %7505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7506 = call i32 @fileno(ptr noundef %7505) #12
  %7507 = call i32 @isatty(i32 noundef %7506) #12
  %7508 = icmp ne i32 %7507, 0
  br i1 %7508, label %7509, label %7526

7509:                                             ; preds = %7504
  %7510 = load i32, ptr %160, align 4, !tbaa !5
  %7511 = call ptr @__errno_location() #13
  store i32 %7510, ptr %7511, align 4, !tbaa !5
  %7512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7513 = load i32, ptr @test_count, align 4, !tbaa !5
  %7514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7515 = load i32, ptr %7514, align 4, !tbaa !5
  %7516 = call ptr @s2n_strerror(i32 noundef %7515, ptr noundef @.str.6)
  %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_debug(i32 noundef %7518, ptr noundef @.str.6)
  %7520 = call ptr @__errno_location() #13
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call ptr @strerror(i32 noundef %7521) #12
  %7523 = call ptr @__errno_location() #13
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7512, ptr noundef @.str.4, i32 noundef %7513, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 335, ptr noundef %7516, ptr noundef %7519, ptr noundef %7522, i32 noundef %7524) #12
  br label %7543

7526:                                             ; preds = %7504, %7497
  %7527 = load i32, ptr %160, align 4, !tbaa !5
  %7528 = call ptr @__errno_location() #13
  store i32 %7527, ptr %7528, align 4, !tbaa !5
  %7529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7530 = load i32, ptr @test_count, align 4, !tbaa !5
  %7531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7532 = load i32, ptr %7531, align 4, !tbaa !5
  %7533 = call ptr @s2n_strerror(i32 noundef %7532, ptr noundef @.str.6)
  %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_debug(i32 noundef %7535, ptr noundef @.str.6)
  %7537 = call ptr @__errno_location() #13
  %7538 = load i32, ptr %7537, align 4, !tbaa !5
  %7539 = call ptr @strerror(i32 noundef %7538) #12
  %7540 = call ptr @__errno_location() #13
  %7541 = load i32, ptr %7540, align 4, !tbaa !5
  %7542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7529, ptr noundef @.str.7, i32 noundef %7530, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 335, ptr noundef %7533, ptr noundef %7536, ptr noundef %7539, i32 noundef %7541) #12
  br label %7543

7543:                                             ; preds = %7526, %7509
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #12
  br label %7544

7544:                                             ; preds = %7543
  br label %7545

7545:                                             ; preds = %7544
  call void @exit(i32 noundef 1) #14
  unreachable

7546:                                             ; No predecessors!
  br label %7547

7547:                                             ; preds = %7546
  br label %7548

7548:                                             ; preds = %7547, %7488
  br label %7549

7549:                                             ; preds = %7548
  br label %7550

7550:                                             ; preds = %7549
  br label %7551

7551:                                             ; preds = %7550
  %7552 = load i32, ptr @test_count, align 4, !tbaa !5
  %7553 = add nsw i32 %7552, 1
  store i32 %7553, ptr @test_count, align 4, !tbaa !5
  %7554 = call i32 @s2n_stuffer_free(ptr noundef %145)
  %7555 = icmp eq i32 %7554, -1
  br i1 %7555, label %7556, label %7609

7556:                                             ; preds = %7551
  br label %7557

7557:                                             ; preds = %7556
  br label %7558

7558:                                             ; preds = %7557
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #12
  %7559 = call ptr @__errno_location() #13
  %7560 = load i32, ptr %7559, align 4, !tbaa !5
  store i32 %7560, ptr %161, align 4, !tbaa !5
  %7561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7562 = call i32 @s2n_print_stacktrace(ptr noundef %7561)
  %7563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7564 = trunc i8 %7563 to i1
  br i1 %7564, label %7565, label %7587

7565:                                             ; preds = %7558
  %7566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7567 = call i32 @fileno(ptr noundef %7566) #12
  %7568 = call i32 @isatty(i32 noundef %7567) #12
  %7569 = icmp ne i32 %7568, 0
  br i1 %7569, label %7570, label %7587

7570:                                             ; preds = %7565
  %7571 = load i32, ptr %161, align 4, !tbaa !5
  %7572 = call ptr @__errno_location() #13
  store i32 %7571, ptr %7572, align 4, !tbaa !5
  %7573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7574 = load i32, ptr @test_count, align 4, !tbaa !5
  %7575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7576 = load i32, ptr %7575, align 4, !tbaa !5
  %7577 = call ptr @s2n_strerror(i32 noundef %7576, ptr noundef @.str.6)
  %7578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7579 = load i32, ptr %7578, align 4, !tbaa !5
  %7580 = call ptr @s2n_strerror_debug(i32 noundef %7579, ptr noundef @.str.6)
  %7581 = call ptr @__errno_location() #13
  %7582 = load i32, ptr %7581, align 4, !tbaa !5
  %7583 = call ptr @strerror(i32 noundef %7582) #12
  %7584 = call ptr @__errno_location() #13
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  %7586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7573, ptr noundef @.str.4, i32 noundef %7574, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 337, ptr noundef %7577, ptr noundef %7580, ptr noundef %7583, i32 noundef %7585) #12
  br label %7604

7587:                                             ; preds = %7565, %7558
  %7588 = load i32, ptr %161, align 4, !tbaa !5
  %7589 = call ptr @__errno_location() #13
  store i32 %7588, ptr %7589, align 4, !tbaa !5
  %7590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7591 = load i32, ptr @test_count, align 4, !tbaa !5
  %7592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7593 = load i32, ptr %7592, align 4, !tbaa !5
  %7594 = call ptr @s2n_strerror(i32 noundef %7593, ptr noundef @.str.6)
  %7595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7596 = load i32, ptr %7595, align 4, !tbaa !5
  %7597 = call ptr @s2n_strerror_debug(i32 noundef %7596, ptr noundef @.str.6)
  %7598 = call ptr @__errno_location() #13
  %7599 = load i32, ptr %7598, align 4, !tbaa !5
  %7600 = call ptr @strerror(i32 noundef %7599) #12
  %7601 = call ptr @__errno_location() #13
  %7602 = load i32, ptr %7601, align 4, !tbaa !5
  %7603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7590, ptr noundef @.str.7, i32 noundef %7591, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 337, ptr noundef %7594, ptr noundef %7597, ptr noundef %7600, i32 noundef %7602) #12
  br label %7604

7604:                                             ; preds = %7587, %7570
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #12
  br label %7605

7605:                                             ; preds = %7604
  br label %7606

7606:                                             ; preds = %7605
  call void @exit(i32 noundef 1) #14
  unreachable

7607:                                             ; No predecessors!
  br label %7608

7608:                                             ; preds = %7607
  br label %7609

7609:                                             ; preds = %7608, %7551
  br label %7610

7610:                                             ; preds = %7609
  br label %7611

7611:                                             ; preds = %7610
  br label %7612

7612:                                             ; preds = %7611
  %7613 = load i32, ptr @test_count, align 4, !tbaa !5
  %7614 = add nsw i32 %7613, 1
  store i32 %7614, ptr @test_count, align 4, !tbaa !5
  %7615 = load ptr, ptr %144, align 8, !tbaa !9
  %7616 = call i32 @s2n_connection_free(ptr noundef %7615)
  %7617 = icmp eq i32 %7616, -1
  br i1 %7617, label %7618, label %7671

7618:                                             ; preds = %7612
  br label %7619

7619:                                             ; preds = %7618
  br label %7620

7620:                                             ; preds = %7619
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #12
  %7621 = call ptr @__errno_location() #13
  %7622 = load i32, ptr %7621, align 4, !tbaa !5
  store i32 %7622, ptr %162, align 4, !tbaa !5
  %7623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7624 = call i32 @s2n_print_stacktrace(ptr noundef %7623)
  %7625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7626 = trunc i8 %7625 to i1
  br i1 %7626, label %7627, label %7649

7627:                                             ; preds = %7620
  %7628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7629 = call i32 @fileno(ptr noundef %7628) #12
  %7630 = call i32 @isatty(i32 noundef %7629) #12
  %7631 = icmp ne i32 %7630, 0
  br i1 %7631, label %7632, label %7649

7632:                                             ; preds = %7627
  %7633 = load i32, ptr %162, align 4, !tbaa !5
  %7634 = call ptr @__errno_location() #13
  store i32 %7633, ptr %7634, align 4, !tbaa !5
  %7635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7636 = load i32, ptr @test_count, align 4, !tbaa !5
  %7637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7638 = load i32, ptr %7637, align 4, !tbaa !5
  %7639 = call ptr @s2n_strerror(i32 noundef %7638, ptr noundef @.str.6)
  %7640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7641 = load i32, ptr %7640, align 4, !tbaa !5
  %7642 = call ptr @s2n_strerror_debug(i32 noundef %7641, ptr noundef @.str.6)
  %7643 = call ptr @__errno_location() #13
  %7644 = load i32, ptr %7643, align 4, !tbaa !5
  %7645 = call ptr @strerror(i32 noundef %7644) #12
  %7646 = call ptr @__errno_location() #13
  %7647 = load i32, ptr %7646, align 4, !tbaa !5
  %7648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7635, ptr noundef @.str.4, i32 noundef %7636, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 338, ptr noundef %7639, ptr noundef %7642, ptr noundef %7645, i32 noundef %7647) #12
  br label %7666

7649:                                             ; preds = %7627, %7620
  %7650 = load i32, ptr %162, align 4, !tbaa !5
  %7651 = call ptr @__errno_location() #13
  store i32 %7650, ptr %7651, align 4, !tbaa !5
  %7652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7653 = load i32, ptr @test_count, align 4, !tbaa !5
  %7654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  %7656 = call ptr @s2n_strerror(i32 noundef %7655, ptr noundef @.str.6)
  %7657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7658 = load i32, ptr %7657, align 4, !tbaa !5
  %7659 = call ptr @s2n_strerror_debug(i32 noundef %7658, ptr noundef @.str.6)
  %7660 = call ptr @__errno_location() #13
  %7661 = load i32, ptr %7660, align 4, !tbaa !5
  %7662 = call ptr @strerror(i32 noundef %7661) #12
  %7663 = call ptr @__errno_location() #13
  %7664 = load i32, ptr %7663, align 4, !tbaa !5
  %7665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7652, ptr noundef @.str.7, i32 noundef %7653, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 338, ptr noundef %7656, ptr noundef %7659, ptr noundef %7662, i32 noundef %7664) #12
  br label %7666

7666:                                             ; preds = %7649, %7632
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #12
  br label %7667

7667:                                             ; preds = %7666
  br label %7668

7668:                                             ; preds = %7667
  call void @exit(i32 noundef 1) #14
  unreachable

7669:                                             ; No predecessors!
  br label %7670

7670:                                             ; preds = %7669
  br label %7671

7671:                                             ; preds = %7670, %7612
  br label %7672

7672:                                             ; preds = %7671
  br label %7673

7673:                                             ; preds = %7672
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %145) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #12
  %7674 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7674, ptr %163, align 8, !tbaa !9
  br label %7675

7675:                                             ; preds = %7673
  %7676 = load i32, ptr @test_count, align 4, !tbaa !5
  %7677 = add nsw i32 %7676, 1
  store i32 %7677, ptr @test_count, align 4, !tbaa !5
  %7678 = load ptr, ptr %163, align 8, !tbaa !9
  %7679 = icmp eq ptr %7678, null
  br i1 %7679, label %7680, label %7733

7680:                                             ; preds = %7675
  br label %7681

7681:                                             ; preds = %7680
  br label %7682

7682:                                             ; preds = %7681
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #12
  %7683 = call ptr @__errno_location() #13
  %7684 = load i32, ptr %7683, align 4, !tbaa !5
  store i32 %7684, ptr %164, align 4, !tbaa !5
  %7685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7686 = call i32 @s2n_print_stacktrace(ptr noundef %7685)
  %7687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7688 = trunc i8 %7687 to i1
  br i1 %7688, label %7689, label %7711

7689:                                             ; preds = %7682
  %7690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7691 = call i32 @fileno(ptr noundef %7690) #12
  %7692 = call i32 @isatty(i32 noundef %7691) #12
  %7693 = icmp ne i32 %7692, 0
  br i1 %7693, label %7694, label %7711

7694:                                             ; preds = %7689
  %7695 = load i32, ptr %164, align 4, !tbaa !5
  %7696 = call ptr @__errno_location() #13
  store i32 %7695, ptr %7696, align 4, !tbaa !5
  %7697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7698 = load i32, ptr @test_count, align 4, !tbaa !5
  %7699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7700 = load i32, ptr %7699, align 4, !tbaa !5
  %7701 = call ptr @s2n_strerror(i32 noundef %7700, ptr noundef @.str.6)
  %7702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7703 = load i32, ptr %7702, align 4, !tbaa !5
  %7704 = call ptr @s2n_strerror_debug(i32 noundef %7703, ptr noundef @.str.6)
  %7705 = call ptr @__errno_location() #13
  %7706 = load i32, ptr %7705, align 4, !tbaa !5
  %7707 = call ptr @strerror(i32 noundef %7706) #12
  %7708 = call ptr @__errno_location() #13
  %7709 = load i32, ptr %7708, align 4, !tbaa !5
  %7710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7697, ptr noundef @.str.4, i32 noundef %7698, ptr noundef @.str.73, ptr noundef @.str.3, i32 noundef 344, ptr noundef %7701, ptr noundef %7704, ptr noundef %7707, i32 noundef %7709) #12
  br label %7728

7711:                                             ; preds = %7689, %7682
  %7712 = load i32, ptr %164, align 4, !tbaa !5
  %7713 = call ptr @__errno_location() #13
  store i32 %7712, ptr %7713, align 4, !tbaa !5
  %7714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7715 = load i32, ptr @test_count, align 4, !tbaa !5
  %7716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  %7718 = call ptr @s2n_strerror(i32 noundef %7717, ptr noundef @.str.6)
  %7719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call ptr @s2n_strerror_debug(i32 noundef %7720, ptr noundef @.str.6)
  %7722 = call ptr @__errno_location() #13
  %7723 = load i32, ptr %7722, align 4, !tbaa !5
  %7724 = call ptr @strerror(i32 noundef %7723) #12
  %7725 = call ptr @__errno_location() #13
  %7726 = load i32, ptr %7725, align 4, !tbaa !5
  %7727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7714, ptr noundef @.str.7, i32 noundef %7715, ptr noundef @.str.73, ptr noundef @.str.3, i32 noundef 344, ptr noundef %7718, ptr noundef %7721, ptr noundef %7724, i32 noundef %7726) #12
  br label %7728

7728:                                             ; preds = %7711, %7694
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #12
  br label %7729

7729:                                             ; preds = %7728
  br label %7730

7730:                                             ; preds = %7729
  call void @exit(i32 noundef 1) #14
  unreachable

7731:                                             ; No predecessors!
  br label %7732

7732:                                             ; preds = %7731
  br label %7733

7733:                                             ; preds = %7732, %7675
  br label %7734

7734:                                             ; preds = %7733
  br label %7735

7735:                                             ; preds = %7734
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #12
  store ptr null, ptr %165, align 8, !tbaa !9
  br label %7736

7736:                                             ; preds = %7735
  %7737 = load i32, ptr @test_count, align 4, !tbaa !5
  %7738 = add nsw i32 %7737, 1
  store i32 %7738, ptr @test_count, align 4, !tbaa !5
  %7739 = load ptr, ptr %163, align 8, !tbaa !9
  %7740 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %7739, ptr noundef %165)
  %7741 = icmp eq i32 %7740, -1
  br i1 %7741, label %7742, label %7795

7742:                                             ; preds = %7736
  br label %7743

7743:                                             ; preds = %7742
  br label %7744

7744:                                             ; preds = %7743
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #12
  %7745 = call ptr @__errno_location() #13
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  store i32 %7746, ptr %166, align 4, !tbaa !5
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = call i32 @s2n_print_stacktrace(ptr noundef %7747)
  %7749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7750 = trunc i8 %7749 to i1
  br i1 %7750, label %7751, label %7773

7751:                                             ; preds = %7744
  %7752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7753 = call i32 @fileno(ptr noundef %7752) #12
  %7754 = call i32 @isatty(i32 noundef %7753) #12
  %7755 = icmp ne i32 %7754, 0
  br i1 %7755, label %7756, label %7773

7756:                                             ; preds = %7751
  %7757 = load i32, ptr %166, align 4, !tbaa !5
  %7758 = call ptr @__errno_location() #13
  store i32 %7757, ptr %7758, align 4, !tbaa !5
  %7759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7760 = load i32, ptr @test_count, align 4, !tbaa !5
  %7761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7762 = load i32, ptr %7761, align 4, !tbaa !5
  %7763 = call ptr @s2n_strerror(i32 noundef %7762, ptr noundef @.str.6)
  %7764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call ptr @s2n_strerror_debug(i32 noundef %7765, ptr noundef @.str.6)
  %7767 = call ptr @__errno_location() #13
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  %7769 = call ptr @strerror(i32 noundef %7768) #12
  %7770 = call ptr @__errno_location() #13
  %7771 = load i32, ptr %7770, align 4, !tbaa !5
  %7772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7759, ptr noundef @.str.4, i32 noundef %7760, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 347, ptr noundef %7763, ptr noundef %7766, ptr noundef %7769, i32 noundef %7771) #12
  br label %7790

7773:                                             ; preds = %7751, %7744
  %7774 = load i32, ptr %166, align 4, !tbaa !5
  %7775 = call ptr @__errno_location() #13
  store i32 %7774, ptr %7775, align 4, !tbaa !5
  %7776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7777 = load i32, ptr @test_count, align 4, !tbaa !5
  %7778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7779 = load i32, ptr %7778, align 4, !tbaa !5
  %7780 = call ptr @s2n_strerror(i32 noundef %7779, ptr noundef @.str.6)
  %7781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call ptr @s2n_strerror_debug(i32 noundef %7782, ptr noundef @.str.6)
  %7784 = call ptr @__errno_location() #13
  %7785 = load i32, ptr %7784, align 4, !tbaa !5
  %7786 = call ptr @strerror(i32 noundef %7785) #12
  %7787 = call ptr @__errno_location() #13
  %7788 = load i32, ptr %7787, align 4, !tbaa !5
  %7789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7776, ptr noundef @.str.7, i32 noundef %7777, ptr noundef @.str.21, ptr noundef @.str.3, i32 noundef 347, ptr noundef %7780, ptr noundef %7783, ptr noundef %7786, i32 noundef %7788) #12
  br label %7790

7790:                                             ; preds = %7773, %7756
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #12
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

7792:                                             ; preds = %7791
  call void @exit(i32 noundef 1) #14
  unreachable

7793:                                             ; No predecessors!
  br label %7794

7794:                                             ; preds = %7793
  br label %7795

7795:                                             ; preds = %7794, %7736
  br label %7796

7796:                                             ; preds = %7795
  br label %7797

7797:                                             ; preds = %7796
  br label %7798

7798:                                             ; preds = %7797
  %7799 = load i32, ptr @test_count, align 4, !tbaa !5
  %7800 = add nsw i32 %7799, 1
  store i32 %7800, ptr @test_count, align 4, !tbaa !5
  %7801 = load ptr, ptr %165, align 8, !tbaa !9
  %7802 = icmp eq ptr %7801, null
  br i1 %7802, label %7803, label %7856

7803:                                             ; preds = %7798
  br label %7804

7804:                                             ; preds = %7803
  br label %7805

7805:                                             ; preds = %7804
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #12
  %7806 = call ptr @__errno_location() #13
  %7807 = load i32, ptr %7806, align 4, !tbaa !5
  store i32 %7807, ptr %167, align 4, !tbaa !5
  %7808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7809 = call i32 @s2n_print_stacktrace(ptr noundef %7808)
  %7810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7811 = trunc i8 %7810 to i1
  br i1 %7811, label %7812, label %7834

7812:                                             ; preds = %7805
  %7813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7814 = call i32 @fileno(ptr noundef %7813) #12
  %7815 = call i32 @isatty(i32 noundef %7814) #12
  %7816 = icmp ne i32 %7815, 0
  br i1 %7816, label %7817, label %7834

7817:                                             ; preds = %7812
  %7818 = load i32, ptr %167, align 4, !tbaa !5
  %7819 = call ptr @__errno_location() #13
  store i32 %7818, ptr %7819, align 4, !tbaa !5
  %7820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7821 = load i32, ptr @test_count, align 4, !tbaa !5
  %7822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7823 = load i32, ptr %7822, align 4, !tbaa !5
  %7824 = call ptr @s2n_strerror(i32 noundef %7823, ptr noundef @.str.6)
  %7825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  %7827 = call ptr @s2n_strerror_debug(i32 noundef %7826, ptr noundef @.str.6)
  %7828 = call ptr @__errno_location() #13
  %7829 = load i32, ptr %7828, align 4, !tbaa !5
  %7830 = call ptr @strerror(i32 noundef %7829) #12
  %7831 = call ptr @__errno_location() #13
  %7832 = load i32, ptr %7831, align 4, !tbaa !5
  %7833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7820, ptr noundef @.str.4, i32 noundef %7821, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 348, ptr noundef %7824, ptr noundef %7827, ptr noundef %7830, i32 noundef %7832) #12
  br label %7851

7834:                                             ; preds = %7812, %7805
  %7835 = load i32, ptr %167, align 4, !tbaa !5
  %7836 = call ptr @__errno_location() #13
  store i32 %7835, ptr %7836, align 4, !tbaa !5
  %7837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7838 = load i32, ptr @test_count, align 4, !tbaa !5
  %7839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7840 = load i32, ptr %7839, align 4, !tbaa !5
  %7841 = call ptr @s2n_strerror(i32 noundef %7840, ptr noundef @.str.6)
  %7842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7843 = load i32, ptr %7842, align 4, !tbaa !5
  %7844 = call ptr @s2n_strerror_debug(i32 noundef %7843, ptr noundef @.str.6)
  %7845 = call ptr @__errno_location() #13
  %7846 = load i32, ptr %7845, align 4, !tbaa !5
  %7847 = call ptr @strerror(i32 noundef %7846) #12
  %7848 = call ptr @__errno_location() #13
  %7849 = load i32, ptr %7848, align 4, !tbaa !5
  %7850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7837, ptr noundef @.str.7, i32 noundef %7838, ptr noundef @.str.22, ptr noundef @.str.3, i32 noundef 348, ptr noundef %7841, ptr noundef %7844, ptr noundef %7847, i32 noundef %7849) #12
  br label %7851

7851:                                             ; preds = %7834, %7817
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #12
  br label %7852

7852:                                             ; preds = %7851
  br label %7853

7853:                                             ; preds = %7852
  call void @exit(i32 noundef 1) #14
  unreachable

7854:                                             ; No predecessors!
  br label %7855

7855:                                             ; preds = %7854
  br label %7856

7856:                                             ; preds = %7855, %7798
  br label %7857

7857:                                             ; preds = %7856
  br label %7858

7858:                                             ; preds = %7857
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #12
  %7859 = load ptr, ptr %165, align 8, !tbaa !9
  %7860 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %7859, i32 0, i32 1
  %7861 = load ptr, ptr %7860, align 8, !tbaa !24
  %7862 = getelementptr inbounds ptr, ptr %7861, i64 0
  %7863 = load ptr, ptr %7862, align 8, !tbaa !9
  store ptr %7863, ptr %168, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %169) #12
  call void @llvm.memset.p0.i64(ptr align 8 %169, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %170) #12
  call void @llvm.memset.p0.i64(ptr align 8 %170, i8 0, i64 40, i1 false)
  br label %7864

7864:                                             ; preds = %7858
  %7865 = load i32, ptr @test_count, align 4, !tbaa !5
  %7866 = add nsw i32 %7865, 1
  store i32 %7866, ptr @test_count, align 4, !tbaa !5
  %7867 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %169, i32 noundef 0)
  %7868 = icmp eq i32 %7867, -1
  br i1 %7868, label %7869, label %7922

7869:                                             ; preds = %7864
  br label %7870

7870:                                             ; preds = %7869
  br label %7871

7871:                                             ; preds = %7870
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #12
  %7872 = call ptr @__errno_location() #13
  %7873 = load i32, ptr %7872, align 4, !tbaa !5
  store i32 %7873, ptr %171, align 4, !tbaa !5
  %7874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7875 = call i32 @s2n_print_stacktrace(ptr noundef %7874)
  %7876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7877 = trunc i8 %7876 to i1
  br i1 %7877, label %7878, label %7900

7878:                                             ; preds = %7871
  %7879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7880 = call i32 @fileno(ptr noundef %7879) #12
  %7881 = call i32 @isatty(i32 noundef %7880) #12
  %7882 = icmp ne i32 %7881, 0
  br i1 %7882, label %7883, label %7900

7883:                                             ; preds = %7878
  %7884 = load i32, ptr %171, align 4, !tbaa !5
  %7885 = call ptr @__errno_location() #13
  store i32 %7884, ptr %7885, align 4, !tbaa !5
  %7886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7887 = load i32, ptr @test_count, align 4, !tbaa !5
  %7888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7889 = load i32, ptr %7888, align 4, !tbaa !5
  %7890 = call ptr @s2n_strerror(i32 noundef %7889, ptr noundef @.str.6)
  %7891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7892 = load i32, ptr %7891, align 4, !tbaa !5
  %7893 = call ptr @s2n_strerror_debug(i32 noundef %7892, ptr noundef @.str.6)
  %7894 = call ptr @__errno_location() #13
  %7895 = load i32, ptr %7894, align 4, !tbaa !5
  %7896 = call ptr @strerror(i32 noundef %7895) #12
  %7897 = call ptr @__errno_location() #13
  %7898 = load i32, ptr %7897, align 4, !tbaa !5
  %7899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7886, ptr noundef @.str.4, i32 noundef %7887, ptr noundef @.str.74, ptr noundef @.str.3, i32 noundef 353, ptr noundef %7890, ptr noundef %7893, ptr noundef %7896, i32 noundef %7898) #12
  br label %7917

7900:                                             ; preds = %7878, %7871
  %7901 = load i32, ptr %171, align 4, !tbaa !5
  %7902 = call ptr @__errno_location() #13
  store i32 %7901, ptr %7902, align 4, !tbaa !5
  %7903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7904 = load i32, ptr @test_count, align 4, !tbaa !5
  %7905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7906 = load i32, ptr %7905, align 4, !tbaa !5
  %7907 = call ptr @s2n_strerror(i32 noundef %7906, ptr noundef @.str.6)
  %7908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7909 = load i32, ptr %7908, align 4, !tbaa !5
  %7910 = call ptr @s2n_strerror_debug(i32 noundef %7909, ptr noundef @.str.6)
  %7911 = call ptr @__errno_location() #13
  %7912 = load i32, ptr %7911, align 4, !tbaa !5
  %7913 = call ptr @strerror(i32 noundef %7912) #12
  %7914 = call ptr @__errno_location() #13
  %7915 = load i32, ptr %7914, align 4, !tbaa !5
  %7916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7903, ptr noundef @.str.7, i32 noundef %7904, ptr noundef @.str.74, ptr noundef @.str.3, i32 noundef 353, ptr noundef %7907, ptr noundef %7910, ptr noundef %7913, i32 noundef %7915) #12
  br label %7917

7917:                                             ; preds = %7900, %7883
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #12
  br label %7918

7918:                                             ; preds = %7917
  br label %7919

7919:                                             ; preds = %7918
  call void @exit(i32 noundef 1) #14
  unreachable

7920:                                             ; No predecessors!
  br label %7921

7921:                                             ; preds = %7920
  br label %7922

7922:                                             ; preds = %7921, %7864
  br label %7923

7923:                                             ; preds = %7922
  br label %7924

7924:                                             ; preds = %7923
  br label %7925

7925:                                             ; preds = %7924
  %7926 = load i32, ptr @test_count, align 4, !tbaa !5
  %7927 = add nsw i32 %7926, 1
  store i32 %7927, ptr @test_count, align 4, !tbaa !5
  %7928 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %170, i32 noundef 0)
  %7929 = icmp eq i32 %7928, -1
  br i1 %7929, label %7930, label %7983

7930:                                             ; preds = %7925
  br label %7931

7931:                                             ; preds = %7930
  br label %7932

7932:                                             ; preds = %7931
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #12
  %7933 = call ptr @__errno_location() #13
  %7934 = load i32, ptr %7933, align 4, !tbaa !5
  store i32 %7934, ptr %172, align 4, !tbaa !5
  %7935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7936 = call i32 @s2n_print_stacktrace(ptr noundef %7935)
  %7937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7938 = trunc i8 %7937 to i1
  br i1 %7938, label %7939, label %7961

7939:                                             ; preds = %7932
  %7940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7941 = call i32 @fileno(ptr noundef %7940) #12
  %7942 = call i32 @isatty(i32 noundef %7941) #12
  %7943 = icmp ne i32 %7942, 0
  br i1 %7943, label %7944, label %7961

7944:                                             ; preds = %7939
  %7945 = load i32, ptr %172, align 4, !tbaa !5
  %7946 = call ptr @__errno_location() #13
  store i32 %7945, ptr %7946, align 4, !tbaa !5
  %7947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7948 = load i32, ptr @test_count, align 4, !tbaa !5
  %7949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @s2n_strerror(i32 noundef %7950, ptr noundef @.str.6)
  %7952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call ptr @s2n_strerror_debug(i32 noundef %7953, ptr noundef @.str.6)
  %7955 = call ptr @__errno_location() #13
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call ptr @strerror(i32 noundef %7956) #12
  %7958 = call ptr @__errno_location() #13
  %7959 = load i32, ptr %7958, align 4, !tbaa !5
  %7960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7947, ptr noundef @.str.4, i32 noundef %7948, ptr noundef @.str.75, ptr noundef @.str.3, i32 noundef 354, ptr noundef %7951, ptr noundef %7954, ptr noundef %7957, i32 noundef %7959) #12
  br label %7978

7961:                                             ; preds = %7939, %7932
  %7962 = load i32, ptr %172, align 4, !tbaa !5
  %7963 = call ptr @__errno_location() #13
  store i32 %7962, ptr %7963, align 4, !tbaa !5
  %7964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7965 = load i32, ptr @test_count, align 4, !tbaa !5
  %7966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7967 = load i32, ptr %7966, align 4, !tbaa !5
  %7968 = call ptr @s2n_strerror(i32 noundef %7967, ptr noundef @.str.6)
  %7969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7970 = load i32, ptr %7969, align 4, !tbaa !5
  %7971 = call ptr @s2n_strerror_debug(i32 noundef %7970, ptr noundef @.str.6)
  %7972 = call ptr @__errno_location() #13
  %7973 = load i32, ptr %7972, align 4, !tbaa !5
  %7974 = call ptr @strerror(i32 noundef %7973) #12
  %7975 = call ptr @__errno_location() #13
  %7976 = load i32, ptr %7975, align 4, !tbaa !5
  %7977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7964, ptr noundef @.str.7, i32 noundef %7965, ptr noundef @.str.75, ptr noundef @.str.3, i32 noundef 354, ptr noundef %7968, ptr noundef %7971, ptr noundef %7974, i32 noundef %7976) #12
  br label %7978

7978:                                             ; preds = %7961, %7944
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #12
  br label %7979

7979:                                             ; preds = %7978
  br label %7980

7980:                                             ; preds = %7979
  call void @exit(i32 noundef 1) #14
  unreachable

7981:                                             ; No predecessors!
  br label %7982

7982:                                             ; preds = %7981
  br label %7983

7983:                                             ; preds = %7982, %7925
  br label %7984

7984:                                             ; preds = %7983
  br label %7985

7985:                                             ; preds = %7984
  br label %7986

7986:                                             ; preds = %7985
  %7987 = load i32, ptr @test_count, align 4, !tbaa !5
  %7988 = add nsw i32 %7987, 1
  store i32 %7988, ptr @test_count, align 4, !tbaa !5
  %7989 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %7990 = load ptr, ptr %163, align 8, !tbaa !9
  %7991 = call i32 %7989(ptr noundef %7990, ptr noundef %169)
  %7992 = icmp eq i32 %7991, -1
  br i1 %7992, label %7993, label %8046

7993:                                             ; preds = %7986
  br label %7994

7994:                                             ; preds = %7993
  br label %7995

7995:                                             ; preds = %7994
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #12
  %7996 = call ptr @__errno_location() #13
  %7997 = load i32, ptr %7996, align 4, !tbaa !5
  store i32 %7997, ptr %173, align 4, !tbaa !5
  %7998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7999 = call i32 @s2n_print_stacktrace(ptr noundef %7998)
  %8000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8001 = trunc i8 %8000 to i1
  br i1 %8001, label %8002, label %8024

8002:                                             ; preds = %7995
  %8003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8004 = call i32 @fileno(ptr noundef %8003) #12
  %8005 = call i32 @isatty(i32 noundef %8004) #12
  %8006 = icmp ne i32 %8005, 0
  br i1 %8006, label %8007, label %8024

8007:                                             ; preds = %8002
  %8008 = load i32, ptr %173, align 4, !tbaa !5
  %8009 = call ptr @__errno_location() #13
  store i32 %8008, ptr %8009, align 4, !tbaa !5
  %8010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8011 = load i32, ptr @test_count, align 4, !tbaa !5
  %8012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8013 = load i32, ptr %8012, align 4, !tbaa !5
  %8014 = call ptr @s2n_strerror(i32 noundef %8013, ptr noundef @.str.6)
  %8015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8016 = load i32, ptr %8015, align 4, !tbaa !5
  %8017 = call ptr @s2n_strerror_debug(i32 noundef %8016, ptr noundef @.str.6)
  %8018 = call ptr @__errno_location() #13
  %8019 = load i32, ptr %8018, align 4, !tbaa !5
  %8020 = call ptr @strerror(i32 noundef %8019) #12
  %8021 = call ptr @__errno_location() #13
  %8022 = load i32, ptr %8021, align 4, !tbaa !5
  %8023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8010, ptr noundef @.str.4, i32 noundef %8011, ptr noundef @.str.76, ptr noundef @.str.3, i32 noundef 356, ptr noundef %8014, ptr noundef %8017, ptr noundef %8020, i32 noundef %8022) #12
  br label %8041

8024:                                             ; preds = %8002, %7995
  %8025 = load i32, ptr %173, align 4, !tbaa !5
  %8026 = call ptr @__errno_location() #13
  store i32 %8025, ptr %8026, align 4, !tbaa !5
  %8027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8028 = load i32, ptr @test_count, align 4, !tbaa !5
  %8029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8030 = load i32, ptr %8029, align 4, !tbaa !5
  %8031 = call ptr @s2n_strerror(i32 noundef %8030, ptr noundef @.str.6)
  %8032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8033 = load i32, ptr %8032, align 4, !tbaa !5
  %8034 = call ptr @s2n_strerror_debug(i32 noundef %8033, ptr noundef @.str.6)
  %8035 = call ptr @__errno_location() #13
  %8036 = load i32, ptr %8035, align 4, !tbaa !5
  %8037 = call ptr @strerror(i32 noundef %8036) #12
  %8038 = call ptr @__errno_location() #13
  %8039 = load i32, ptr %8038, align 4, !tbaa !5
  %8040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8027, ptr noundef @.str.7, i32 noundef %8028, ptr noundef @.str.76, ptr noundef @.str.3, i32 noundef 356, ptr noundef %8031, ptr noundef %8034, ptr noundef %8037, i32 noundef %8039) #12
  br label %8041

8041:                                             ; preds = %8024, %8007
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #12
  br label %8042

8042:                                             ; preds = %8041
  br label %8043

8043:                                             ; preds = %8042
  call void @exit(i32 noundef 1) #14
  unreachable

8044:                                             ; No predecessors!
  br label %8045

8045:                                             ; preds = %8044
  br label %8046

8046:                                             ; preds = %8045, %7986
  br label %8047

8047:                                             ; preds = %8046
  br label %8048

8048:                                             ; preds = %8047
  br label %8049

8049:                                             ; preds = %8048
  %8050 = load i32, ptr @test_count, align 4, !tbaa !5
  %8051 = add nsw i32 %8050, 1
  store i32 %8051, ptr @test_count, align 4, !tbaa !5
  %8052 = load ptr, ptr %163, align 8, !tbaa !9
  %8053 = getelementptr inbounds %struct.s2n_connection, ptr %8052, i32 0, i32 31
  %8054 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8053, i32 0, i32 3
  %8055 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8054, i32 0, i32 0
  %8056 = load ptr, ptr %8055, align 8, !tbaa !60
  %8057 = load ptr, ptr %168, align 8, !tbaa !9
  %8058 = icmp eq ptr %8056, %8057
  br i1 %8058, label %8112, label %8059

8059:                                             ; preds = %8049
  br label %8060

8060:                                             ; preds = %8059
  br label %8061

8061:                                             ; preds = %8060
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #12
  %8062 = call ptr @__errno_location() #13
  %8063 = load i32, ptr %8062, align 4, !tbaa !5
  store i32 %8063, ptr %174, align 4, !tbaa !5
  %8064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8065 = call i32 @s2n_print_stacktrace(ptr noundef %8064)
  %8066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8067 = trunc i8 %8066 to i1
  br i1 %8067, label %8068, label %8090

8068:                                             ; preds = %8061
  %8069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8070 = call i32 @fileno(ptr noundef %8069) #12
  %8071 = call i32 @isatty(i32 noundef %8070) #12
  %8072 = icmp ne i32 %8071, 0
  br i1 %8072, label %8073, label %8090

8073:                                             ; preds = %8068
  %8074 = load i32, ptr %174, align 4, !tbaa !5
  %8075 = call ptr @__errno_location() #13
  store i32 %8074, ptr %8075, align 4, !tbaa !5
  %8076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8077 = load i32, ptr @test_count, align 4, !tbaa !5
  %8078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8079 = load i32, ptr %8078, align 4, !tbaa !5
  %8080 = call ptr @s2n_strerror(i32 noundef %8079, ptr noundef @.str.6)
  %8081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8082 = load i32, ptr %8081, align 4, !tbaa !5
  %8083 = call ptr @s2n_strerror_debug(i32 noundef %8082, ptr noundef @.str.6)
  %8084 = call ptr @__errno_location() #13
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  %8086 = call ptr @strerror(i32 noundef %8085) #12
  %8087 = call ptr @__errno_location() #13
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  %8089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8076, ptr noundef @.str.4, i32 noundef %8077, ptr noundef @.str.77, ptr noundef @.str.3, i32 noundef 357, ptr noundef %8080, ptr noundef %8083, ptr noundef %8086, i32 noundef %8088) #12
  br label %8107

8090:                                             ; preds = %8068, %8061
  %8091 = load i32, ptr %174, align 4, !tbaa !5
  %8092 = call ptr @__errno_location() #13
  store i32 %8091, ptr %8092, align 4, !tbaa !5
  %8093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8094 = load i32, ptr @test_count, align 4, !tbaa !5
  %8095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8096 = load i32, ptr %8095, align 4, !tbaa !5
  %8097 = call ptr @s2n_strerror(i32 noundef %8096, ptr noundef @.str.6)
  %8098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8099 = load i32, ptr %8098, align 4, !tbaa !5
  %8100 = call ptr @s2n_strerror_debug(i32 noundef %8099, ptr noundef @.str.6)
  %8101 = call ptr @__errno_location() #13
  %8102 = load i32, ptr %8101, align 4, !tbaa !5
  %8103 = call ptr @strerror(i32 noundef %8102) #12
  %8104 = call ptr @__errno_location() #13
  %8105 = load i32, ptr %8104, align 4, !tbaa !5
  %8106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8093, ptr noundef @.str.7, i32 noundef %8094, ptr noundef @.str.77, ptr noundef @.str.3, i32 noundef 357, ptr noundef %8097, ptr noundef %8100, ptr noundef %8103, i32 noundef %8105) #12
  br label %8107

8107:                                             ; preds = %8090, %8073
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #12
  br label %8108

8108:                                             ; preds = %8107
  br label %8109

8109:                                             ; preds = %8108
  call void @exit(i32 noundef 1) #14
  unreachable

8110:                                             ; No predecessors!
  br label %8111

8111:                                             ; preds = %8110
  br label %8112

8112:                                             ; preds = %8111, %8049
  br label %8113

8113:                                             ; preds = %8112
  br label %8114

8114:                                             ; preds = %8113
  br label %8115

8115:                                             ; preds = %8114
  %8116 = load i32, ptr @test_count, align 4, !tbaa !5
  %8117 = add nsw i32 %8116, 1
  store i32 %8117, ptr @test_count, align 4, !tbaa !5
  %8118 = load ptr, ptr %163, align 8, !tbaa !9
  %8119 = getelementptr inbounds %struct.s2n_connection, ptr %8118, i32 0, i32 31
  %8120 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8119, i32 0, i32 3
  %8121 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8120, i32 0, i32 1
  %8122 = load ptr, ptr %8121, align 8, !tbaa !61
  %8123 = icmp eq ptr %8122, null
  br i1 %8123, label %8124, label %8177

8124:                                             ; preds = %8115
  br label %8125

8125:                                             ; preds = %8124
  br label %8126

8126:                                             ; preds = %8125
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #12
  %8127 = call ptr @__errno_location() #13
  %8128 = load i32, ptr %8127, align 4, !tbaa !5
  store i32 %8128, ptr %175, align 4, !tbaa !5
  %8129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8130 = call i32 @s2n_print_stacktrace(ptr noundef %8129)
  %8131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8132 = trunc i8 %8131 to i1
  br i1 %8132, label %8133, label %8155

8133:                                             ; preds = %8126
  %8134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8135 = call i32 @fileno(ptr noundef %8134) #12
  %8136 = call i32 @isatty(i32 noundef %8135) #12
  %8137 = icmp ne i32 %8136, 0
  br i1 %8137, label %8138, label %8155

8138:                                             ; preds = %8133
  %8139 = load i32, ptr %175, align 4, !tbaa !5
  %8140 = call ptr @__errno_location() #13
  store i32 %8139, ptr %8140, align 4, !tbaa !5
  %8141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8142 = load i32, ptr @test_count, align 4, !tbaa !5
  %8143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8144 = load i32, ptr %8143, align 4, !tbaa !5
  %8145 = call ptr @s2n_strerror(i32 noundef %8144, ptr noundef @.str.6)
  %8146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8147 = load i32, ptr %8146, align 4, !tbaa !5
  %8148 = call ptr @s2n_strerror_debug(i32 noundef %8147, ptr noundef @.str.6)
  %8149 = call ptr @__errno_location() #13
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  %8151 = call ptr @strerror(i32 noundef %8150) #12
  %8152 = call ptr @__errno_location() #13
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  %8154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8141, ptr noundef @.str.4, i32 noundef %8142, ptr noundef @.str.78, ptr noundef @.str.3, i32 noundef 358, ptr noundef %8145, ptr noundef %8148, ptr noundef %8151, i32 noundef %8153) #12
  br label %8172

8155:                                             ; preds = %8133, %8126
  %8156 = load i32, ptr %175, align 4, !tbaa !5
  %8157 = call ptr @__errno_location() #13
  store i32 %8156, ptr %8157, align 4, !tbaa !5
  %8158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8159 = load i32, ptr @test_count, align 4, !tbaa !5
  %8160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8161 = load i32, ptr %8160, align 4, !tbaa !5
  %8162 = call ptr @s2n_strerror(i32 noundef %8161, ptr noundef @.str.6)
  %8163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8164 = load i32, ptr %8163, align 4, !tbaa !5
  %8165 = call ptr @s2n_strerror_debug(i32 noundef %8164, ptr noundef @.str.6)
  %8166 = call ptr @__errno_location() #13
  %8167 = load i32, ptr %8166, align 4, !tbaa !5
  %8168 = call ptr @strerror(i32 noundef %8167) #12
  %8169 = call ptr @__errno_location() #13
  %8170 = load i32, ptr %8169, align 4, !tbaa !5
  %8171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8158, ptr noundef @.str.7, i32 noundef %8159, ptr noundef @.str.78, ptr noundef @.str.3, i32 noundef 358, ptr noundef %8162, ptr noundef %8165, ptr noundef %8168, i32 noundef %8170) #12
  br label %8172

8172:                                             ; preds = %8155, %8138
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #12
  br label %8173

8173:                                             ; preds = %8172
  br label %8174

8174:                                             ; preds = %8173
  call void @exit(i32 noundef 1) #14
  unreachable

8175:                                             ; No predecessors!
  br label %8176

8176:                                             ; preds = %8175
  br label %8177

8177:                                             ; preds = %8176, %8115
  br label %8178

8178:                                             ; preds = %8177
  br label %8179

8179:                                             ; preds = %8178
  br label %8180

8180:                                             ; preds = %8179
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #12
  store i32 32, ptr %176, align 4, !tbaa !5
  %8181 = load i32, ptr %176, align 4, !tbaa !5
  %8182 = icmp ne i32 %8181, 0
  br i1 %8182, label %8183, label %8245

8183:                                             ; preds = %8180
  %8184 = load ptr, ptr %163, align 8, !tbaa !9
  %8185 = getelementptr inbounds %struct.s2n_connection, ptr %8184, i32 0, i32 32
  %8186 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %8185, i32 0, i32 13
  %8187 = getelementptr inbounds [32 x i8], ptr %8186, i64 0, i64 0
  %8188 = load i32, ptr %176, align 4, !tbaa !5
  %8189 = sext i32 %8188 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %8187, ptr align 16 @hello_retry_req_random, i64 %8189, i1 false)
  %8190 = icmp eq ptr %8187, null
  br i1 %8190, label %8191, label %8244

8191:                                             ; preds = %8183
  br label %8192

8192:                                             ; preds = %8191
  br label %8193

8193:                                             ; preds = %8192
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #12
  %8194 = call ptr @__errno_location() #13
  %8195 = load i32, ptr %8194, align 4, !tbaa !5
  store i32 %8195, ptr %177, align 4, !tbaa !5
  %8196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8197 = call i32 @s2n_print_stacktrace(ptr noundef %8196)
  %8198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8199 = trunc i8 %8198 to i1
  br i1 %8199, label %8200, label %8222

8200:                                             ; preds = %8193
  %8201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8202 = call i32 @fileno(ptr noundef %8201) #12
  %8203 = call i32 @isatty(i32 noundef %8202) #12
  %8204 = icmp ne i32 %8203, 0
  br i1 %8204, label %8205, label %8222

8205:                                             ; preds = %8200
  %8206 = load i32, ptr %177, align 4, !tbaa !5
  %8207 = call ptr @__errno_location() #13
  store i32 %8206, ptr %8207, align 4, !tbaa !5
  %8208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8209 = load i32, ptr @test_count, align 4, !tbaa !5
  %8210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8211 = load i32, ptr %8210, align 4, !tbaa !5
  %8212 = call ptr @s2n_strerror(i32 noundef %8211, ptr noundef @.str.6)
  %8213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call ptr @s2n_strerror_debug(i32 noundef %8214, ptr noundef @.str.6)
  %8216 = call ptr @__errno_location() #13
  %8217 = load i32, ptr %8216, align 4, !tbaa !5
  %8218 = call ptr @strerror(i32 noundef %8217) #12
  %8219 = call ptr @__errno_location() #13
  %8220 = load i32, ptr %8219, align 4, !tbaa !5
  %8221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8208, ptr noundef @.str.4, i32 noundef %8209, ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 361, ptr noundef %8212, ptr noundef %8215, ptr noundef %8218, i32 noundef %8220) #12
  br label %8239

8222:                                             ; preds = %8200, %8193
  %8223 = load i32, ptr %177, align 4, !tbaa !5
  %8224 = call ptr @__errno_location() #13
  store i32 %8223, ptr %8224, align 4, !tbaa !5
  %8225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8226 = load i32, ptr @test_count, align 4, !tbaa !5
  %8227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8228 = load i32, ptr %8227, align 4, !tbaa !5
  %8229 = call ptr @s2n_strerror(i32 noundef %8228, ptr noundef @.str.6)
  %8230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8231 = load i32, ptr %8230, align 4, !tbaa !5
  %8232 = call ptr @s2n_strerror_debug(i32 noundef %8231, ptr noundef @.str.6)
  %8233 = call ptr @__errno_location() #13
  %8234 = load i32, ptr %8233, align 4, !tbaa !5
  %8235 = call ptr @strerror(i32 noundef %8234) #12
  %8236 = call ptr @__errno_location() #13
  %8237 = load i32, ptr %8236, align 4, !tbaa !5
  %8238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8225, ptr noundef @.str.7, i32 noundef %8226, ptr noundef @.str.41, ptr noundef @.str.3, i32 noundef 361, ptr noundef %8229, ptr noundef %8232, ptr noundef %8235, i32 noundef %8237) #12
  br label %8239

8239:                                             ; preds = %8222, %8205
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #12
  br label %8240

8240:                                             ; preds = %8239
  br label %8241

8241:                                             ; preds = %8240
  call void @exit(i32 noundef 1) #14
  unreachable

8242:                                             ; No predecessors!
  br label %8243

8243:                                             ; preds = %8242
  br label %8244

8244:                                             ; preds = %8243, %8183
  br label %8245

8245:                                             ; preds = %8244, %8180
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #12
  br label %8246

8246:                                             ; preds = %8245
  br label %8247

8247:                                             ; preds = %8246
  br label %8248

8248:                                             ; preds = %8247
  %8249 = load i32, ptr @test_count, align 4, !tbaa !5
  %8250 = add nsw i32 %8249, 1
  store i32 %8250, ptr @test_count, align 4, !tbaa !5
  %8251 = load ptr, ptr %163, align 8, !tbaa !9
  %8252 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %8251, i8 noundef zeroext 34)
  %8253 = icmp eq i32 %8252, -1
  br i1 %8253, label %8254, label %8307

8254:                                             ; preds = %8248
  br label %8255

8255:                                             ; preds = %8254
  br label %8256

8256:                                             ; preds = %8255
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #12
  %8257 = call ptr @__errno_location() #13
  %8258 = load i32, ptr %8257, align 4, !tbaa !5
  store i32 %8258, ptr %178, align 4, !tbaa !5
  %8259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8260 = call i32 @s2n_print_stacktrace(ptr noundef %8259)
  %8261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8262 = trunc i8 %8261 to i1
  br i1 %8262, label %8263, label %8285

8263:                                             ; preds = %8256
  %8264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8265 = call i32 @fileno(ptr noundef %8264) #12
  %8266 = call i32 @isatty(i32 noundef %8265) #12
  %8267 = icmp ne i32 %8266, 0
  br i1 %8267, label %8268, label %8285

8268:                                             ; preds = %8263
  %8269 = load i32, ptr %178, align 4, !tbaa !5
  %8270 = call ptr @__errno_location() #13
  store i32 %8269, ptr %8270, align 4, !tbaa !5
  %8271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8272 = load i32, ptr @test_count, align 4, !tbaa !5
  %8273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8274 = load i32, ptr %8273, align 4, !tbaa !5
  %8275 = call ptr @s2n_strerror(i32 noundef %8274, ptr noundef @.str.6)
  %8276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8277 = load i32, ptr %8276, align 4, !tbaa !5
  %8278 = call ptr @s2n_strerror_debug(i32 noundef %8277, ptr noundef @.str.6)
  %8279 = call ptr @__errno_location() #13
  %8280 = load i32, ptr %8279, align 4, !tbaa !5
  %8281 = call ptr @strerror(i32 noundef %8280) #12
  %8282 = call ptr @__errno_location() #13
  %8283 = load i32, ptr %8282, align 4, !tbaa !5
  %8284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8271, ptr noundef @.str.4, i32 noundef %8272, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 362, ptr noundef %8275, ptr noundef %8278, ptr noundef %8281, i32 noundef %8283) #12
  br label %8302

8285:                                             ; preds = %8263, %8256
  %8286 = load i32, ptr %178, align 4, !tbaa !5
  %8287 = call ptr @__errno_location() #13
  store i32 %8286, ptr %8287, align 4, !tbaa !5
  %8288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8289 = load i32, ptr @test_count, align 4, !tbaa !5
  %8290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8291 = load i32, ptr %8290, align 4, !tbaa !5
  %8292 = call ptr @s2n_strerror(i32 noundef %8291, ptr noundef @.str.6)
  %8293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8294 = load i32, ptr %8293, align 4, !tbaa !5
  %8295 = call ptr @s2n_strerror_debug(i32 noundef %8294, ptr noundef @.str.6)
  %8296 = call ptr @__errno_location() #13
  %8297 = load i32, ptr %8296, align 4, !tbaa !5
  %8298 = call ptr @strerror(i32 noundef %8297) #12
  %8299 = call ptr @__errno_location() #13
  %8300 = load i32, ptr %8299, align 4, !tbaa !5
  %8301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8288, ptr noundef @.str.7, i32 noundef %8289, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 362, ptr noundef %8292, ptr noundef %8295, ptr noundef %8298, i32 noundef %8300) #12
  br label %8302

8302:                                             ; preds = %8285, %8268
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #12
  br label %8303

8303:                                             ; preds = %8302
  br label %8304

8304:                                             ; preds = %8303
  call void @exit(i32 noundef 1) #14
  unreachable

8305:                                             ; No predecessors!
  br label %8306

8306:                                             ; preds = %8305
  br label %8307

8307:                                             ; preds = %8306, %8248
  br label %8308

8308:                                             ; preds = %8307
  br label %8309

8309:                                             ; preds = %8308
  br label %8310

8310:                                             ; preds = %8309
  %8311 = load i32, ptr @test_count, align 4, !tbaa !5
  %8312 = add nsw i32 %8311, 1
  store i32 %8312, ptr @test_count, align 4, !tbaa !5
  %8313 = load ptr, ptr %163, align 8, !tbaa !9
  %8314 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %8313)
  %8315 = icmp eq i32 %8314, -1
  br i1 %8315, label %8316, label %8369

8316:                                             ; preds = %8310
  br label %8317

8317:                                             ; preds = %8316
  br label %8318

8318:                                             ; preds = %8317
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #12
  %8319 = call ptr @__errno_location() #13
  %8320 = load i32, ptr %8319, align 4, !tbaa !5
  store i32 %8320, ptr %179, align 4, !tbaa !5
  %8321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8322 = call i32 @s2n_print_stacktrace(ptr noundef %8321)
  %8323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8324 = trunc i8 %8323 to i1
  br i1 %8324, label %8325, label %8347

8325:                                             ; preds = %8318
  %8326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8327 = call i32 @fileno(ptr noundef %8326) #12
  %8328 = call i32 @isatty(i32 noundef %8327) #12
  %8329 = icmp ne i32 %8328, 0
  br i1 %8329, label %8330, label %8347

8330:                                             ; preds = %8325
  %8331 = load i32, ptr %179, align 4, !tbaa !5
  %8332 = call ptr @__errno_location() #13
  store i32 %8331, ptr %8332, align 4, !tbaa !5
  %8333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8334 = load i32, ptr @test_count, align 4, !tbaa !5
  %8335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8336 = load i32, ptr %8335, align 4, !tbaa !5
  %8337 = call ptr @s2n_strerror(i32 noundef %8336, ptr noundef @.str.6)
  %8338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8339 = load i32, ptr %8338, align 4, !tbaa !5
  %8340 = call ptr @s2n_strerror_debug(i32 noundef %8339, ptr noundef @.str.6)
  %8341 = call ptr @__errno_location() #13
  %8342 = load i32, ptr %8341, align 4, !tbaa !5
  %8343 = call ptr @strerror(i32 noundef %8342) #12
  %8344 = call ptr @__errno_location() #13
  %8345 = load i32, ptr %8344, align 4, !tbaa !5
  %8346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8333, ptr noundef @.str.4, i32 noundef %8334, ptr noundef @.str.43, ptr noundef @.str.3, i32 noundef 363, ptr noundef %8337, ptr noundef %8340, ptr noundef %8343, i32 noundef %8345) #12
  br label %8364

8347:                                             ; preds = %8325, %8318
  %8348 = load i32, ptr %179, align 4, !tbaa !5
  %8349 = call ptr @__errno_location() #13
  store i32 %8348, ptr %8349, align 4, !tbaa !5
  %8350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8351 = load i32, ptr @test_count, align 4, !tbaa !5
  %8352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8353 = load i32, ptr %8352, align 4, !tbaa !5
  %8354 = call ptr @s2n_strerror(i32 noundef %8353, ptr noundef @.str.6)
  %8355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8356 = load i32, ptr %8355, align 4, !tbaa !5
  %8357 = call ptr @s2n_strerror_debug(i32 noundef %8356, ptr noundef @.str.6)
  %8358 = call ptr @__errno_location() #13
  %8359 = load i32, ptr %8358, align 4, !tbaa !5
  %8360 = call ptr @strerror(i32 noundef %8359) #12
  %8361 = call ptr @__errno_location() #13
  %8362 = load i32, ptr %8361, align 4, !tbaa !5
  %8363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8350, ptr noundef @.str.7, i32 noundef %8351, ptr noundef @.str.43, ptr noundef @.str.3, i32 noundef 363, ptr noundef %8354, ptr noundef %8357, ptr noundef %8360, i32 noundef %8362) #12
  br label %8364

8364:                                             ; preds = %8347, %8330
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #12
  br label %8365

8365:                                             ; preds = %8364
  br label %8366

8366:                                             ; preds = %8365
  call void @exit(i32 noundef 1) #14
  unreachable

8367:                                             ; No predecessors!
  br label %8368

8368:                                             ; preds = %8367
  br label %8369

8369:                                             ; preds = %8368, %8310
  br label %8370

8370:                                             ; preds = %8369
  br label %8371

8371:                                             ; preds = %8370
  %8372 = load ptr, ptr %163, align 8, !tbaa !9
  %8373 = getelementptr inbounds %struct.s2n_connection, ptr %8372, i32 0, i32 89
  store i32 4, ptr %8373, align 8, !tbaa !62
  %8374 = load ptr, ptr %168, align 8, !tbaa !9
  %8375 = load ptr, ptr %163, align 8, !tbaa !9
  %8376 = getelementptr inbounds %struct.s2n_connection, ptr %8375, i32 0, i32 31
  %8377 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8376, i32 0, i32 1
  %8378 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8377, i32 0, i32 0
  store ptr %8374, ptr %8378, align 8, !tbaa !54
  br label %8379

8379:                                             ; preds = %8371
  br label %8380

8380:                                             ; preds = %8379
  br label %8381

8381:                                             ; preds = %8380
  %8382 = load i32, ptr @test_count, align 4, !tbaa !5
  %8383 = add nsw i32 %8382, 1
  store i32 %8383, ptr @test_count, align 4, !tbaa !5
  %8384 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %8385 = load ptr, ptr %163, align 8, !tbaa !9
  %8386 = call i32 %8384(ptr noundef %8385, ptr noundef %170)
  %8387 = icmp eq i32 %8386, -1
  br i1 %8387, label %8441, label %8388

8388:                                             ; preds = %8381
  br label %8389

8389:                                             ; preds = %8388
  br label %8390

8390:                                             ; preds = %8389
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #12
  %8391 = call ptr @__errno_location() #13
  %8392 = load i32, ptr %8391, align 4, !tbaa !5
  store i32 %8392, ptr %180, 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) #12
  %8400 = call i32 @isatty(i32 noundef %8399) #12
  %8401 = icmp ne i32 %8400, 0
  br i1 %8401, label %8402, label %8419

8402:                                             ; preds = %8397
  %8403 = load i32, ptr %180, align 4, !tbaa !5
  %8404 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %8413 = call ptr @__errno_location() #13
  %8414 = load i32, ptr %8413, align 4, !tbaa !5
  %8415 = call ptr @strerror(i32 noundef %8414) #12
  %8416 = call ptr @__errno_location() #13
  %8417 = load i32, ptr %8416, align 4, !tbaa !5
  %8418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8405, ptr noundef @.str.4, i32 noundef %8406, ptr noundef @.str.79, ptr noundef @.str.3, i32 noundef 368, ptr noundef %8409, ptr noundef %8412, ptr noundef %8415, i32 noundef %8417) #12
  br label %8436

8419:                                             ; preds = %8397, %8390
  %8420 = load i32, ptr %180, align 4, !tbaa !5
  %8421 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %8430 = call ptr @__errno_location() #13
  %8431 = load i32, ptr %8430, align 4, !tbaa !5
  %8432 = call ptr @strerror(i32 noundef %8431) #12
  %8433 = call ptr @__errno_location() #13
  %8434 = load i32, ptr %8433, align 4, !tbaa !5
  %8435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8422, ptr noundef @.str.7, i32 noundef %8423, ptr noundef @.str.79, ptr noundef @.str.3, i32 noundef 368, ptr noundef %8426, ptr noundef %8429, ptr noundef %8432, i32 noundef %8434) #12
  br label %8436

8436:                                             ; preds = %8419, %8402
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #12
  br label %8437

8437:                                             ; preds = %8436
  br label %8438

8438:                                             ; preds = %8437
  call void @exit(i32 noundef 1) #14
  unreachable

8439:                                             ; No predecessors!
  br label %8440

8440:                                             ; preds = %8439
  br label %8441

8441:                                             ; preds = %8440, %8381
  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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8448 = load i32, ptr %8447, align 4, !tbaa !5
  %8449 = icmp eq i32 %8448, 335544385
  br i1 %8449, label %8503, label %8450

8450:                                             ; preds = %8444
  br label %8451

8451:                                             ; preds = %8450
  br label %8452

8452:                                             ; preds = %8451
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #12
  %8453 = call ptr @__errno_location() #13
  %8454 = load i32, ptr %8453, align 4, !tbaa !5
  store i32 %8454, ptr %181, 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) #12
  %8462 = call i32 @isatty(i32 noundef %8461) #12
  %8463 = icmp ne i32 %8462, 0
  br i1 %8463, label %8464, label %8481

8464:                                             ; preds = %8459
  %8465 = load i32, ptr %181, align 4, !tbaa !5
  %8466 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %8475 = call ptr @__errno_location() #13
  %8476 = load i32, ptr %8475, align 4, !tbaa !5
  %8477 = call ptr @strerror(i32 noundef %8476) #12
  %8478 = call ptr @__errno_location() #13
  %8479 = load i32, ptr %8478, align 4, !tbaa !5
  %8480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8467, ptr noundef @.str.4, i32 noundef %8468, ptr noundef @.str.69, ptr noundef @.str.3, i32 noundef 368, ptr noundef %8471, ptr noundef %8474, ptr noundef %8477, i32 noundef %8479) #12
  br label %8498

8481:                                             ; preds = %8459, %8452
  %8482 = load i32, ptr %181, align 4, !tbaa !5
  %8483 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %8492 = call ptr @__errno_location() #13
  %8493 = load i32, ptr %8492, align 4, !tbaa !5
  %8494 = call ptr @strerror(i32 noundef %8493) #12
  %8495 = call ptr @__errno_location() #13
  %8496 = load i32, ptr %8495, align 4, !tbaa !5
  %8497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8484, ptr noundef @.str.7, i32 noundef %8485, ptr noundef @.str.69, ptr noundef @.str.3, i32 noundef 368, ptr noundef %8488, ptr noundef %8491, ptr noundef %8494, i32 noundef %8496) #12
  br label %8498

8498:                                             ; preds = %8481, %8464
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #12
  br label %8499

8499:                                             ; preds = %8498
  br label %8500

8500:                                             ; preds = %8499
  call void @exit(i32 noundef 1) #14
  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 align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8510 = load i32, ptr %8509, align 4, !tbaa !5
  %8511 = call ptr @s2n_strerror_debug(i32 noundef %8510, ptr noundef @.str.6)
  %8512 = icmp eq ptr %8511, null
  br i1 %8512, label %8513, label %8566

8513:                                             ; preds = %8506
  br label %8514

8514:                                             ; preds = %8513
  br label %8515

8515:                                             ; preds = %8514
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #12
  %8516 = call ptr @__errno_location() #13
  %8517 = load i32, ptr %8516, align 4, !tbaa !5
  store i32 %8517, ptr %182, align 4, !tbaa !5
  %8518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8519 = call i32 @s2n_print_stacktrace(ptr noundef %8518)
  %8520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8521 = trunc i8 %8520 to i1
  br i1 %8521, label %8522, label %8544

8522:                                             ; preds = %8515
  %8523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8524 = call i32 @fileno(ptr noundef %8523) #12
  %8525 = call i32 @isatty(i32 noundef %8524) #12
  %8526 = icmp ne i32 %8525, 0
  br i1 %8526, label %8527, label %8544

8527:                                             ; preds = %8522
  %8528 = load i32, ptr %182, align 4, !tbaa !5
  %8529 = call ptr @__errno_location() #13
  store i32 %8528, ptr %8529, align 4, !tbaa !5
  %8530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8531 = load i32, ptr @test_count, align 4, !tbaa !5
  %8532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8533 = load i32, ptr %8532, align 4, !tbaa !5
  %8534 = call ptr @s2n_strerror(i32 noundef %8533, ptr noundef @.str.6)
  %8535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8536 = load i32, ptr %8535, align 4, !tbaa !5
  %8537 = call ptr @s2n_strerror_debug(i32 noundef %8536, ptr noundef @.str.6)
  %8538 = call ptr @__errno_location() #13
  %8539 = load i32, ptr %8538, align 4, !tbaa !5
  %8540 = call ptr @strerror(i32 noundef %8539) #12
  %8541 = call ptr @__errno_location() #13
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8530, ptr noundef @.str.4, i32 noundef %8531, ptr noundef @.str.70, ptr noundef @.str.3, i32 noundef 368, ptr noundef %8534, ptr noundef %8537, ptr noundef %8540, i32 noundef %8542) #12
  br label %8561

8544:                                             ; preds = %8522, %8515
  %8545 = load i32, ptr %182, align 4, !tbaa !5
  %8546 = call ptr @__errno_location() #13
  store i32 %8545, ptr %8546, align 4, !tbaa !5
  %8547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8548 = load i32, ptr @test_count, align 4, !tbaa !5
  %8549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8550 = load i32, ptr %8549, align 4, !tbaa !5
  %8551 = call ptr @s2n_strerror(i32 noundef %8550, ptr noundef @.str.6)
  %8552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8553 = load i32, ptr %8552, align 4, !tbaa !5
  %8554 = call ptr @s2n_strerror_debug(i32 noundef %8553, ptr noundef @.str.6)
  %8555 = call ptr @__errno_location() #13
  %8556 = load i32, ptr %8555, align 4, !tbaa !5
  %8557 = call ptr @strerror(i32 noundef %8556) #12
  %8558 = call ptr @__errno_location() #13
  %8559 = load i32, ptr %8558, align 4, !tbaa !5
  %8560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8547, ptr noundef @.str.7, i32 noundef %8548, ptr noundef @.str.70, ptr noundef @.str.3, i32 noundef 368, ptr noundef %8551, ptr noundef %8554, ptr noundef %8557, i32 noundef %8559) #12
  br label %8561

8561:                                             ; preds = %8544, %8527
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #12
  br label %8562

8562:                                             ; preds = %8561
  br label %8563

8563:                                             ; preds = %8562
  call void @exit(i32 noundef 1) #14
  unreachable

8564:                                             ; No predecessors!
  br label %8565

8565:                                             ; preds = %8564
  br label %8566

8566:                                             ; preds = %8565, %8506
  br label %8567

8567:                                             ; preds = %8566
  br label %8568

8568:                                             ; preds = %8567
  br label %8569

8569:                                             ; preds = %8568
  br label %8570

8570:                                             ; preds = %8569
  br label %8571

8571:                                             ; preds = %8570
  %8572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8572, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8573 = call ptr @__errno_location() #13
  store i32 0, ptr %8573, align 4, !tbaa !5
  br label %8574

8574:                                             ; preds = %8571
  br label %8575

8575:                                             ; preds = %8574
  br label %8576

8576:                                             ; preds = %8575
  br label %8577

8577:                                             ; preds = %8576
  br label %8578

8578:                                             ; preds = %8577
  %8579 = load i32, ptr @test_count, align 4, !tbaa !5
  %8580 = add nsw i32 %8579, 1
  store i32 %8580, ptr @test_count, align 4, !tbaa !5
  %8581 = call i32 @s2n_stuffer_free(ptr noundef %169)
  %8582 = icmp eq i32 %8581, -1
  br i1 %8582, label %8583, label %8636

8583:                                             ; preds = %8578
  br label %8584

8584:                                             ; preds = %8583
  br label %8585

8585:                                             ; preds = %8584
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #12
  %8586 = call ptr @__errno_location() #13
  %8587 = load i32, ptr %8586, align 4, !tbaa !5
  store i32 %8587, ptr %183, align 4, !tbaa !5
  %8588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8589 = call i32 @s2n_print_stacktrace(ptr noundef %8588)
  %8590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8591 = trunc i8 %8590 to i1
  br i1 %8591, label %8592, label %8614

8592:                                             ; preds = %8585
  %8593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8594 = call i32 @fileno(ptr noundef %8593) #12
  %8595 = call i32 @isatty(i32 noundef %8594) #12
  %8596 = icmp ne i32 %8595, 0
  br i1 %8596, label %8597, label %8614

8597:                                             ; preds = %8592
  %8598 = load i32, ptr %183, align 4, !tbaa !5
  %8599 = call ptr @__errno_location() #13
  store i32 %8598, ptr %8599, align 4, !tbaa !5
  %8600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8601 = load i32, ptr @test_count, align 4, !tbaa !5
  %8602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8603 = load i32, ptr %8602, align 4, !tbaa !5
  %8604 = call ptr @s2n_strerror(i32 noundef %8603, ptr noundef @.str.6)
  %8605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8606 = load i32, ptr %8605, align 4, !tbaa !5
  %8607 = call ptr @s2n_strerror_debug(i32 noundef %8606, ptr noundef @.str.6)
  %8608 = call ptr @__errno_location() #13
  %8609 = load i32, ptr %8608, align 4, !tbaa !5
  %8610 = call ptr @strerror(i32 noundef %8609) #12
  %8611 = call ptr @__errno_location() #13
  %8612 = load i32, ptr %8611, align 4, !tbaa !5
  %8613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8600, ptr noundef @.str.4, i32 noundef %8601, ptr noundef @.str.80, ptr noundef @.str.3, i32 noundef 370, ptr noundef %8604, ptr noundef %8607, ptr noundef %8610, i32 noundef %8612) #12
  br label %8631

8614:                                             ; preds = %8592, %8585
  %8615 = load i32, ptr %183, align 4, !tbaa !5
  %8616 = call ptr @__errno_location() #13
  store i32 %8615, ptr %8616, align 4, !tbaa !5
  %8617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8618 = load i32, ptr @test_count, align 4, !tbaa !5
  %8619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8620 = load i32, ptr %8619, align 4, !tbaa !5
  %8621 = call ptr @s2n_strerror(i32 noundef %8620, ptr noundef @.str.6)
  %8622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8623 = load i32, ptr %8622, align 4, !tbaa !5
  %8624 = call ptr @s2n_strerror_debug(i32 noundef %8623, ptr noundef @.str.6)
  %8625 = call ptr @__errno_location() #13
  %8626 = load i32, ptr %8625, align 4, !tbaa !5
  %8627 = call ptr @strerror(i32 noundef %8626) #12
  %8628 = call ptr @__errno_location() #13
  %8629 = load i32, ptr %8628, align 4, !tbaa !5
  %8630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8617, ptr noundef @.str.7, i32 noundef %8618, ptr noundef @.str.80, ptr noundef @.str.3, i32 noundef 370, ptr noundef %8621, ptr noundef %8624, ptr noundef %8627, i32 noundef %8629) #12
  br label %8631

8631:                                             ; preds = %8614, %8597
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #12
  br label %8632

8632:                                             ; preds = %8631
  br label %8633

8633:                                             ; preds = %8632
  call void @exit(i32 noundef 1) #14
  unreachable

8634:                                             ; No predecessors!
  br label %8635

8635:                                             ; preds = %8634
  br label %8636

8636:                                             ; preds = %8635, %8578
  br label %8637

8637:                                             ; preds = %8636
  br label %8638

8638:                                             ; preds = %8637
  br label %8639

8639:                                             ; preds = %8638
  %8640 = load i32, ptr @test_count, align 4, !tbaa !5
  %8641 = add nsw i32 %8640, 1
  store i32 %8641, ptr @test_count, align 4, !tbaa !5
  %8642 = call i32 @s2n_stuffer_free(ptr noundef %170)
  %8643 = icmp eq i32 %8642, -1
  br i1 %8643, label %8644, label %8697

8644:                                             ; preds = %8639
  br label %8645

8645:                                             ; preds = %8644
  br label %8646

8646:                                             ; preds = %8645
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #12
  %8647 = call ptr @__errno_location() #13
  %8648 = load i32, ptr %8647, align 4, !tbaa !5
  store i32 %8648, ptr %184, align 4, !tbaa !5
  %8649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8650 = call i32 @s2n_print_stacktrace(ptr noundef %8649)
  %8651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8652 = trunc i8 %8651 to i1
  br i1 %8652, label %8653, label %8675

8653:                                             ; preds = %8646
  %8654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8655 = call i32 @fileno(ptr noundef %8654) #12
  %8656 = call i32 @isatty(i32 noundef %8655) #12
  %8657 = icmp ne i32 %8656, 0
  br i1 %8657, label %8658, label %8675

8658:                                             ; preds = %8653
  %8659 = load i32, ptr %184, align 4, !tbaa !5
  %8660 = call ptr @__errno_location() #13
  store i32 %8659, ptr %8660, align 4, !tbaa !5
  %8661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8662 = load i32, ptr @test_count, align 4, !tbaa !5
  %8663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call ptr @s2n_strerror(i32 noundef %8664, ptr noundef @.str.6)
  %8666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8667 = load i32, ptr %8666, align 4, !tbaa !5
  %8668 = call ptr @s2n_strerror_debug(i32 noundef %8667, ptr noundef @.str.6)
  %8669 = call ptr @__errno_location() #13
  %8670 = load i32, ptr %8669, align 4, !tbaa !5
  %8671 = call ptr @strerror(i32 noundef %8670) #12
  %8672 = call ptr @__errno_location() #13
  %8673 = load i32, ptr %8672, align 4, !tbaa !5
  %8674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8661, ptr noundef @.str.4, i32 noundef %8662, ptr noundef @.str.81, ptr noundef @.str.3, i32 noundef 371, ptr noundef %8665, ptr noundef %8668, ptr noundef %8671, i32 noundef %8673) #12
  br label %8692

8675:                                             ; preds = %8653, %8646
  %8676 = load i32, ptr %184, align 4, !tbaa !5
  %8677 = call ptr @__errno_location() #13
  store i32 %8676, ptr %8677, align 4, !tbaa !5
  %8678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8679 = load i32, ptr @test_count, align 4, !tbaa !5
  %8680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8681 = load i32, ptr %8680, align 4, !tbaa !5
  %8682 = call ptr @s2n_strerror(i32 noundef %8681, ptr noundef @.str.6)
  %8683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8684 = load i32, ptr %8683, align 4, !tbaa !5
  %8685 = call ptr @s2n_strerror_debug(i32 noundef %8684, ptr noundef @.str.6)
  %8686 = call ptr @__errno_location() #13
  %8687 = load i32, ptr %8686, align 4, !tbaa !5
  %8688 = call ptr @strerror(i32 noundef %8687) #12
  %8689 = call ptr @__errno_location() #13
  %8690 = load i32, ptr %8689, align 4, !tbaa !5
  %8691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8678, ptr noundef @.str.7, i32 noundef %8679, ptr noundef @.str.81, ptr noundef @.str.3, i32 noundef 371, ptr noundef %8682, ptr noundef %8685, ptr noundef %8688, i32 noundef %8690) #12
  br label %8692

8692:                                             ; preds = %8675, %8658
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #12
  br label %8693

8693:                                             ; preds = %8692
  br label %8694

8694:                                             ; preds = %8693
  call void @exit(i32 noundef 1) #14
  unreachable

8695:                                             ; No predecessors!
  br label %8696

8696:                                             ; preds = %8695
  br label %8697

8697:                                             ; preds = %8696, %8639
  br label %8698

8698:                                             ; preds = %8697
  br label %8699

8699:                                             ; preds = %8698
  br label %8700

8700:                                             ; preds = %8699
  %8701 = load i32, ptr @test_count, align 4, !tbaa !5
  %8702 = add nsw i32 %8701, 1
  store i32 %8702, ptr @test_count, align 4, !tbaa !5
  %8703 = load ptr, ptr %163, align 8, !tbaa !9
  %8704 = call i32 @s2n_connection_free(ptr noundef %8703)
  %8705 = icmp eq i32 %8704, -1
  br i1 %8705, label %8706, label %8759

8706:                                             ; preds = %8700
  br label %8707

8707:                                             ; preds = %8706
  br label %8708

8708:                                             ; preds = %8707
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #12
  %8709 = call ptr @__errno_location() #13
  %8710 = load i32, ptr %8709, align 4, !tbaa !5
  store i32 %8710, ptr %185, align 4, !tbaa !5
  %8711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8712 = call i32 @s2n_print_stacktrace(ptr noundef %8711)
  %8713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8714 = trunc i8 %8713 to i1
  br i1 %8714, label %8715, label %8737

8715:                                             ; preds = %8708
  %8716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8717 = call i32 @fileno(ptr noundef %8716) #12
  %8718 = call i32 @isatty(i32 noundef %8717) #12
  %8719 = icmp ne i32 %8718, 0
  br i1 %8719, label %8720, label %8737

8720:                                             ; preds = %8715
  %8721 = load i32, ptr %185, align 4, !tbaa !5
  %8722 = call ptr @__errno_location() #13
  store i32 %8721, ptr %8722, align 4, !tbaa !5
  %8723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8724 = load i32, ptr @test_count, align 4, !tbaa !5
  %8725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8726 = load i32, ptr %8725, align 4, !tbaa !5
  %8727 = call ptr @s2n_strerror(i32 noundef %8726, ptr noundef @.str.6)
  %8728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8729 = load i32, ptr %8728, align 4, !tbaa !5
  %8730 = call ptr @s2n_strerror_debug(i32 noundef %8729, ptr noundef @.str.6)
  %8731 = call ptr @__errno_location() #13
  %8732 = load i32, ptr %8731, align 4, !tbaa !5
  %8733 = call ptr @strerror(i32 noundef %8732) #12
  %8734 = call ptr @__errno_location() #13
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8723, ptr noundef @.str.4, i32 noundef %8724, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 372, ptr noundef %8727, ptr noundef %8730, ptr noundef %8733, i32 noundef %8735) #12
  br label %8754

8737:                                             ; preds = %8715, %8708
  %8738 = load i32, ptr %185, align 4, !tbaa !5
  %8739 = call ptr @__errno_location() #13
  store i32 %8738, ptr %8739, align 4, !tbaa !5
  %8740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8741 = load i32, ptr @test_count, align 4, !tbaa !5
  %8742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8743 = load i32, ptr %8742, align 4, !tbaa !5
  %8744 = call ptr @s2n_strerror(i32 noundef %8743, ptr noundef @.str.6)
  %8745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8746 = load i32, ptr %8745, align 4, !tbaa !5
  %8747 = call ptr @s2n_strerror_debug(i32 noundef %8746, ptr noundef @.str.6)
  %8748 = call ptr @__errno_location() #13
  %8749 = load i32, ptr %8748, align 4, !tbaa !5
  %8750 = call ptr @strerror(i32 noundef %8749) #12
  %8751 = call ptr @__errno_location() #13
  %8752 = load i32, ptr %8751, align 4, !tbaa !5
  %8753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8740, ptr noundef @.str.7, i32 noundef %8741, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 372, ptr noundef %8744, ptr noundef %8747, ptr noundef %8750, i32 noundef %8752) #12
  br label %8754

8754:                                             ; preds = %8737, %8720
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #12
  br label %8755

8755:                                             ; preds = %8754
  br label %8756

8756:                                             ; preds = %8755
  call void @exit(i32 noundef 1) #14
  unreachable

8757:                                             ; No predecessors!
  br label %8758

8758:                                             ; preds = %8757
  br label %8759

8759:                                             ; preds = %8758, %8700
  br label %8760

8760:                                             ; preds = %8759
  br label %8761

8761:                                             ; preds = %8760
  call void @llvm.lifetime.end.p0(i64 40, ptr %170) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %169) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #12
  store ptr null, ptr %186, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #12
  store ptr null, ptr %187, align 8, !tbaa !9
  br label %8762

8762:                                             ; preds = %8761
  %8763 = load i32, ptr @test_count, align 4, !tbaa !5
  %8764 = add nsw i32 %8763, 1
  store i32 %8764, ptr @test_count, align 4, !tbaa !5
  %8765 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8765, ptr %186, align 8, !tbaa !9
  %8766 = icmp eq ptr %8765, null
  br i1 %8766, label %8767, label %8820

8767:                                             ; preds = %8762
  br label %8768

8768:                                             ; preds = %8767
  br label %8769

8769:                                             ; preds = %8768
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #12
  %8770 = call ptr @__errno_location() #13
  %8771 = load i32, ptr %8770, align 4, !tbaa !5
  store i32 %8771, ptr %188, align 4, !tbaa !5
  %8772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8773 = call i32 @s2n_print_stacktrace(ptr noundef %8772)
  %8774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8775 = trunc i8 %8774 to i1
  br i1 %8775, label %8776, label %8798

8776:                                             ; preds = %8769
  %8777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8778 = call i32 @fileno(ptr noundef %8777) #12
  %8779 = call i32 @isatty(i32 noundef %8778) #12
  %8780 = icmp ne i32 %8779, 0
  br i1 %8780, label %8781, label %8798

8781:                                             ; preds = %8776
  %8782 = load i32, ptr %188, align 4, !tbaa !5
  %8783 = call ptr @__errno_location() #13
  store i32 %8782, ptr %8783, align 4, !tbaa !5
  %8784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8785 = load i32, ptr @test_count, align 4, !tbaa !5
  %8786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8787 = load i32, ptr %8786, align 4, !tbaa !5
  %8788 = call ptr @s2n_strerror(i32 noundef %8787, ptr noundef @.str.6)
  %8789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8790 = load i32, ptr %8789, align 4, !tbaa !5
  %8791 = call ptr @s2n_strerror_debug(i32 noundef %8790, ptr noundef @.str.6)
  %8792 = call ptr @__errno_location() #13
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  %8794 = call ptr @strerror(i32 noundef %8793) #12
  %8795 = call ptr @__errno_location() #13
  %8796 = load i32, ptr %8795, align 4, !tbaa !5
  %8797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8784, ptr noundef @.str.4, i32 noundef %8785, ptr noundef @.str.49, ptr noundef @.str.3, i32 noundef 382, ptr noundef %8788, ptr noundef %8791, ptr noundef %8794, i32 noundef %8796) #12
  br label %8815

8798:                                             ; preds = %8776, %8769
  %8799 = load i32, ptr %188, align 4, !tbaa !5
  %8800 = call ptr @__errno_location() #13
  store i32 %8799, ptr %8800, align 4, !tbaa !5
  %8801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8802 = load i32, ptr @test_count, align 4, !tbaa !5
  %8803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8804 = load i32, ptr %8803, align 4, !tbaa !5
  %8805 = call ptr @s2n_strerror(i32 noundef %8804, ptr noundef @.str.6)
  %8806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8807 = load i32, ptr %8806, align 4, !tbaa !5
  %8808 = call ptr @s2n_strerror_debug(i32 noundef %8807, ptr noundef @.str.6)
  %8809 = call ptr @__errno_location() #13
  %8810 = load i32, ptr %8809, align 4, !tbaa !5
  %8811 = call ptr @strerror(i32 noundef %8810) #12
  %8812 = call ptr @__errno_location() #13
  %8813 = load i32, ptr %8812, align 4, !tbaa !5
  %8814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8801, ptr noundef @.str.7, i32 noundef %8802, ptr noundef @.str.49, ptr noundef @.str.3, i32 noundef 382, ptr noundef %8805, ptr noundef %8808, ptr noundef %8811, i32 noundef %8813) #12
  br label %8815

8815:                                             ; preds = %8798, %8781
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #12
  br label %8816

8816:                                             ; preds = %8815
  br label %8817

8817:                                             ; preds = %8816
  call void @exit(i32 noundef 1) #14
  unreachable

8818:                                             ; No predecessors!
  br label %8819

8819:                                             ; preds = %8818
  br label %8820

8820:                                             ; preds = %8819, %8762
  br label %8821

8821:                                             ; preds = %8820
  br label %8822

8822:                                             ; preds = %8821
  br label %8823

8823:                                             ; preds = %8822
  %8824 = load i32, ptr @test_count, align 4, !tbaa !5
  %8825 = add nsw i32 %8824, 1
  store i32 %8825, ptr @test_count, align 4, !tbaa !5
  %8826 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8826, ptr %187, align 8, !tbaa !9
  %8827 = icmp eq ptr %8826, null
  br i1 %8827, label %8828, label %8881

8828:                                             ; preds = %8823
  br label %8829

8829:                                             ; preds = %8828
  br label %8830

8830:                                             ; preds = %8829
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #12
  %8831 = call ptr @__errno_location() #13
  %8832 = load i32, ptr %8831, align 4, !tbaa !5
  store i32 %8832, ptr %189, align 4, !tbaa !5
  %8833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8834 = call i32 @s2n_print_stacktrace(ptr noundef %8833)
  %8835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8836 = trunc i8 %8835 to i1
  br i1 %8836, label %8837, label %8859

8837:                                             ; preds = %8830
  %8838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8839 = call i32 @fileno(ptr noundef %8838) #12
  %8840 = call i32 @isatty(i32 noundef %8839) #12
  %8841 = icmp ne i32 %8840, 0
  br i1 %8841, label %8842, label %8859

8842:                                             ; preds = %8837
  %8843 = load i32, ptr %189, align 4, !tbaa !5
  %8844 = call ptr @__errno_location() #13
  store i32 %8843, ptr %8844, align 4, !tbaa !5
  %8845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8846 = load i32, ptr @test_count, align 4, !tbaa !5
  %8847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8848 = load i32, ptr %8847, align 4, !tbaa !5
  %8849 = call ptr @s2n_strerror(i32 noundef %8848, ptr noundef @.str.6)
  %8850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  %8852 = call ptr @s2n_strerror_debug(i32 noundef %8851, ptr noundef @.str.6)
  %8853 = call ptr @__errno_location() #13
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call ptr @strerror(i32 noundef %8854) #12
  %8856 = call ptr @__errno_location() #13
  %8857 = load i32, ptr %8856, align 4, !tbaa !5
  %8858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8845, ptr noundef @.str.4, i32 noundef %8846, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 383, ptr noundef %8849, ptr noundef %8852, ptr noundef %8855, i32 noundef %8857) #12
  br label %8876

8859:                                             ; preds = %8837, %8830
  %8860 = load i32, ptr %189, align 4, !tbaa !5
  %8861 = call ptr @__errno_location() #13
  store i32 %8860, ptr %8861, align 4, !tbaa !5
  %8862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8863 = load i32, ptr @test_count, align 4, !tbaa !5
  %8864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8865 = load i32, ptr %8864, align 4, !tbaa !5
  %8866 = call ptr @s2n_strerror(i32 noundef %8865, ptr noundef @.str.6)
  %8867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8868 = load i32, ptr %8867, align 4, !tbaa !5
  %8869 = call ptr @s2n_strerror_debug(i32 noundef %8868, ptr noundef @.str.6)
  %8870 = call ptr @__errno_location() #13
  %8871 = load i32, ptr %8870, align 4, !tbaa !5
  %8872 = call ptr @strerror(i32 noundef %8871) #12
  %8873 = call ptr @__errno_location() #13
  %8874 = load i32, ptr %8873, align 4, !tbaa !5
  %8875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8862, ptr noundef @.str.7, i32 noundef %8863, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 383, ptr noundef %8866, ptr noundef %8869, ptr noundef %8872, i32 noundef %8874) #12
  br label %8876

8876:                                             ; preds = %8859, %8842
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #12
  br label %8877

8877:                                             ; preds = %8876
  br label %8878

8878:                                             ; preds = %8877
  call void @exit(i32 noundef 1) #14
  unreachable

8879:                                             ; No predecessors!
  br label %8880

8880:                                             ; preds = %8879
  br label %8881

8881:                                             ; preds = %8880, %8823
  br label %8882

8882:                                             ; preds = %8881
  br label %8883

8883:                                             ; preds = %8882
  br label %8884

8884:                                             ; preds = %8883
  %8885 = load i32, ptr @test_count, align 4, !tbaa !5
  %8886 = add nsw i32 %8885, 1
  store i32 %8886, ptr @test_count, align 4, !tbaa !5
  %8887 = load ptr, ptr %187, align 8, !tbaa !9
  %8888 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %8887)
  %8889 = getelementptr inbounds %struct.s2n_result, ptr %190, i32 0, i32 0
  store i32 %8888, ptr %8889, align 4
  %8890 = getelementptr inbounds %struct.s2n_result, ptr %190, i32 0, i32 0
  %8891 = load i32, ptr %8890, align 4
  %8892 = call zeroext i1 @s2n_result_is_ok(i32 %8891)
  br i1 %8892, label %8946, label %8893

8893:                                             ; preds = %8884
  br label %8894

8894:                                             ; preds = %8893
  br label %8895

8895:                                             ; preds = %8894
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #12
  %8896 = call ptr @__errno_location() #13
  %8897 = load i32, ptr %8896, align 4, !tbaa !5
  store i32 %8897, ptr %191, align 4, !tbaa !5
  %8898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8899 = call i32 @s2n_print_stacktrace(ptr noundef %8898)
  %8900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8901 = trunc i8 %8900 to i1
  br i1 %8901, label %8902, label %8924

8902:                                             ; preds = %8895
  %8903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8904 = call i32 @fileno(ptr noundef %8903) #12
  %8905 = call i32 @isatty(i32 noundef %8904) #12
  %8906 = icmp ne i32 %8905, 0
  br i1 %8906, label %8907, label %8924

8907:                                             ; preds = %8902
  %8908 = load i32, ptr %191, align 4, !tbaa !5
  %8909 = call ptr @__errno_location() #13
  store i32 %8908, ptr %8909, align 4, !tbaa !5
  %8910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8911 = load i32, ptr @test_count, align 4, !tbaa !5
  %8912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8913 = load i32, ptr %8912, align 4, !tbaa !5
  %8914 = call ptr @s2n_strerror(i32 noundef %8913, ptr noundef @.str.6)
  %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_debug(i32 noundef %8916, ptr noundef @.str.6)
  %8918 = call ptr @__errno_location() #13
  %8919 = load i32, ptr %8918, align 4, !tbaa !5
  %8920 = call ptr @strerror(i32 noundef %8919) #12
  %8921 = call ptr @__errno_location() #13
  %8922 = load i32, ptr %8921, align 4, !tbaa !5
  %8923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8910, ptr noundef @.str.4, i32 noundef %8911, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 384, ptr noundef %8914, ptr noundef %8917, ptr noundef %8920, i32 noundef %8922) #12
  br label %8941

8924:                                             ; preds = %8902, %8895
  %8925 = load i32, ptr %191, align 4, !tbaa !5
  %8926 = call ptr @__errno_location() #13
  store i32 %8925, ptr %8926, align 4, !tbaa !5
  %8927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8928 = load i32, ptr @test_count, align 4, !tbaa !5
  %8929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8930 = load i32, ptr %8929, align 4, !tbaa !5
  %8931 = call ptr @s2n_strerror(i32 noundef %8930, ptr noundef @.str.6)
  %8932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8933 = load i32, ptr %8932, align 4, !tbaa !5
  %8934 = call ptr @s2n_strerror_debug(i32 noundef %8933, ptr noundef @.str.6)
  %8935 = call ptr @__errno_location() #13
  %8936 = load i32, ptr %8935, align 4, !tbaa !5
  %8937 = call ptr @strerror(i32 noundef %8936) #12
  %8938 = call ptr @__errno_location() #13
  %8939 = load i32, ptr %8938, align 4, !tbaa !5
  %8940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8927, ptr noundef @.str.7, i32 noundef %8928, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 384, ptr noundef %8931, ptr noundef %8934, ptr noundef %8937, i32 noundef %8939) #12
  br label %8941

8941:                                             ; preds = %8924, %8907
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #12
  br label %8942

8942:                                             ; preds = %8941
  br label %8943

8943:                                             ; preds = %8942
  call void @exit(i32 noundef 1) #14
  unreachable

8944:                                             ; No predecessors!
  br label %8945

8945:                                             ; preds = %8944
  br label %8946

8946:                                             ; preds = %8945, %8884
  br label %8947

8947:                                             ; preds = %8946
  br label %8948

8948:                                             ; preds = %8947
  call void @llvm.lifetime.start.p0(i64 40, ptr %192) #12
  br label %8949

8949:                                             ; preds = %8948
  %8950 = load i32, ptr @test_count, align 4, !tbaa !5
  %8951 = add nsw i32 %8950, 1
  store i32 %8951, ptr @test_count, align 4, !tbaa !5
  %8952 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %192, i32 noundef 0)
  %8953 = icmp eq i32 %8952, -1
  br i1 %8953, label %8954, label %9007

8954:                                             ; preds = %8949
  br label %8955

8955:                                             ; preds = %8954
  br label %8956

8956:                                             ; preds = %8955
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #12
  %8957 = call ptr @__errno_location() #13
  %8958 = load i32, ptr %8957, align 4, !tbaa !5
  store i32 %8958, ptr %193, align 4, !tbaa !5
  %8959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8960 = call i32 @s2n_print_stacktrace(ptr noundef %8959)
  %8961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8962 = trunc i8 %8961 to i1
  br i1 %8962, label %8963, label %8985

8963:                                             ; preds = %8956
  %8964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8965 = call i32 @fileno(ptr noundef %8964) #12
  %8966 = call i32 @isatty(i32 noundef %8965) #12
  %8967 = icmp ne i32 %8966, 0
  br i1 %8967, label %8968, label %8985

8968:                                             ; preds = %8963
  %8969 = load i32, ptr %193, align 4, !tbaa !5
  %8970 = call ptr @__errno_location() #13
  store i32 %8969, ptr %8970, align 4, !tbaa !5
  %8971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8972 = load i32, ptr @test_count, align 4, !tbaa !5
  %8973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8974 = load i32, ptr %8973, align 4, !tbaa !5
  %8975 = call ptr @s2n_strerror(i32 noundef %8974, ptr noundef @.str.6)
  %8976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8977 = load i32, ptr %8976, align 4, !tbaa !5
  %8978 = call ptr @s2n_strerror_debug(i32 noundef %8977, ptr noundef @.str.6)
  %8979 = call ptr @__errno_location() #13
  %8980 = load i32, ptr %8979, align 4, !tbaa !5
  %8981 = call ptr @strerror(i32 noundef %8980) #12
  %8982 = call ptr @__errno_location() #13
  %8983 = load i32, ptr %8982, align 4, !tbaa !5
  %8984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8971, ptr noundef @.str.4, i32 noundef %8972, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 387, ptr noundef %8975, ptr noundef %8978, ptr noundef %8981, i32 noundef %8983) #12
  br label %9002

8985:                                             ; preds = %8963, %8956
  %8986 = load i32, ptr %193, align 4, !tbaa !5
  %8987 = call ptr @__errno_location() #13
  store i32 %8986, ptr %8987, align 4, !tbaa !5
  %8988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8989 = load i32, ptr @test_count, align 4, !tbaa !5
  %8990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8991 = load i32, ptr %8990, align 4, !tbaa !5
  %8992 = call ptr @s2n_strerror(i32 noundef %8991, ptr noundef @.str.6)
  %8993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8994 = load i32, ptr %8993, align 4, !tbaa !5
  %8995 = call ptr @s2n_strerror_debug(i32 noundef %8994, ptr noundef @.str.6)
  %8996 = call ptr @__errno_location() #13
  %8997 = load i32, ptr %8996, align 4, !tbaa !5
  %8998 = call ptr @strerror(i32 noundef %8997) #12
  %8999 = call ptr @__errno_location() #13
  %9000 = load i32, ptr %8999, align 4, !tbaa !5
  %9001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8988, ptr noundef @.str.7, i32 noundef %8989, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 387, ptr noundef %8992, ptr noundef %8995, ptr noundef %8998, i32 noundef %9000) #12
  br label %9002

9002:                                             ; preds = %8985, %8968
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #12
  br label %9003

9003:                                             ; preds = %9002
  br label %9004

9004:                                             ; preds = %9003
  call void @exit(i32 noundef 1) #14
  unreachable

9005:                                             ; No predecessors!
  br label %9006

9006:                                             ; preds = %9005
  br label %9007

9007:                                             ; preds = %9006, %8949
  br label %9008

9008:                                             ; preds = %9007
  br label %9009

9009:                                             ; preds = %9008
  br label %9010

9010:                                             ; preds = %9009
  %9011 = load i32, ptr @test_count, align 4, !tbaa !5
  %9012 = add nsw i32 %9011, 1
  store i32 %9012, ptr @test_count, align 4, !tbaa !5
  %9013 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %9014 = load ptr, ptr %186, align 8, !tbaa !9
  %9015 = call i32 %9013(ptr noundef %9014, ptr noundef %192)
  %9016 = icmp eq i32 %9015, -1
  br i1 %9016, label %9017, label %9070

9017:                                             ; preds = %9010
  br label %9018

9018:                                             ; preds = %9017
  br label %9019

9019:                                             ; preds = %9018
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #12
  %9020 = call ptr @__errno_location() #13
  %9021 = load i32, ptr %9020, align 4, !tbaa !5
  store i32 %9021, ptr %194, align 4, !tbaa !5
  %9022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9023 = call i32 @s2n_print_stacktrace(ptr noundef %9022)
  %9024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9025 = trunc i8 %9024 to i1
  br i1 %9025, label %9026, label %9048

9026:                                             ; preds = %9019
  %9027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9028 = call i32 @fileno(ptr noundef %9027) #12
  %9029 = call i32 @isatty(i32 noundef %9028) #12
  %9030 = icmp ne i32 %9029, 0
  br i1 %9030, label %9031, label %9048

9031:                                             ; preds = %9026
  %9032 = load i32, ptr %194, align 4, !tbaa !5
  %9033 = call ptr @__errno_location() #13
  store i32 %9032, ptr %9033, align 4, !tbaa !5
  %9034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9035 = load i32, ptr @test_count, align 4, !tbaa !5
  %9036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9037 = load i32, ptr %9036, align 4, !tbaa !5
  %9038 = call ptr @s2n_strerror(i32 noundef %9037, ptr noundef @.str.6)
  %9039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9040 = load i32, ptr %9039, align 4, !tbaa !5
  %9041 = call ptr @s2n_strerror_debug(i32 noundef %9040, ptr noundef @.str.6)
  %9042 = call ptr @__errno_location() #13
  %9043 = load i32, ptr %9042, align 4, !tbaa !5
  %9044 = call ptr @strerror(i32 noundef %9043) #12
  %9045 = call ptr @__errno_location() #13
  %9046 = load i32, ptr %9045, align 4, !tbaa !5
  %9047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9034, ptr noundef @.str.4, i32 noundef %9035, ptr noundef @.str.56, ptr noundef @.str.3, i32 noundef 389, ptr noundef %9038, ptr noundef %9041, ptr noundef %9044, i32 noundef %9046) #12
  br label %9065

9048:                                             ; preds = %9026, %9019
  %9049 = load i32, ptr %194, align 4, !tbaa !5
  %9050 = call ptr @__errno_location() #13
  store i32 %9049, ptr %9050, align 4, !tbaa !5
  %9051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9052 = load i32, ptr @test_count, align 4, !tbaa !5
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror(i32 noundef %9054, ptr noundef @.str.6)
  %9056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @s2n_strerror_debug(i32 noundef %9057, ptr noundef @.str.6)
  %9059 = call ptr @__errno_location() #13
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call ptr @strerror(i32 noundef %9060) #12
  %9062 = call ptr @__errno_location() #13
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9051, ptr noundef @.str.7, i32 noundef %9052, ptr noundef @.str.56, ptr noundef @.str.3, i32 noundef 389, ptr noundef %9055, ptr noundef %9058, ptr noundef %9061, i32 noundef %9063) #12
  br label %9065

9065:                                             ; preds = %9048, %9031
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #12
  br label %9066

9066:                                             ; preds = %9065
  br label %9067

9067:                                             ; preds = %9066
  call void @exit(i32 noundef 1) #14
  unreachable

9068:                                             ; No predecessors!
  br label %9069

9069:                                             ; preds = %9068
  br label %9070

9070:                                             ; preds = %9069, %9010
  br label %9071

9071:                                             ; preds = %9070
  br label %9072

9072:                                             ; preds = %9071
  call void @llvm.lifetime.start.p0(i64 2, ptr %195) #12
  %9073 = getelementptr inbounds %struct.s2n_stuffer, ptr %192, i32 0, i32 2
  %9074 = load i32, ptr %9073, align 4, !tbaa !18
  %9075 = getelementptr inbounds %struct.s2n_stuffer, ptr %192, i32 0, i32 1
  %9076 = load i32, ptr %9075, align 8, !tbaa !21
  %9077 = sub i32 %9074, %9076
  %9078 = trunc i32 %9077 to i16
  store i16 %9078, ptr %195, align 2, !tbaa !27
  br label %9079

9079:                                             ; preds = %9072
  %9080 = load i32, ptr @test_count, align 4, !tbaa !5
  %9081 = add nsw i32 %9080, 1
  store i32 %9081, ptr @test_count, align 4, !tbaa !5
  %9082 = call i32 (...) @s2n_enable_tls13_in_test()
  %9083 = icmp eq i32 %9082, -1
  br i1 %9083, label %9084, label %9137

9084:                                             ; preds = %9079
  br label %9085

9085:                                             ; preds = %9084
  br label %9086

9086:                                             ; preds = %9085
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #12
  %9087 = call ptr @__errno_location() #13
  %9088 = load i32, ptr %9087, align 4, !tbaa !5
  store i32 %9088, ptr %196, align 4, !tbaa !5
  %9089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9090 = call i32 @s2n_print_stacktrace(ptr noundef %9089)
  %9091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9092 = trunc i8 %9091 to i1
  br i1 %9092, label %9093, label %9115

9093:                                             ; preds = %9086
  %9094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9095 = call i32 @fileno(ptr noundef %9094) #12
  %9096 = call i32 @isatty(i32 noundef %9095) #12
  %9097 = icmp ne i32 %9096, 0
  br i1 %9097, label %9098, label %9115

9098:                                             ; preds = %9093
  %9099 = load i32, ptr %196, align 4, !tbaa !5
  %9100 = call ptr @__errno_location() #13
  store i32 %9099, ptr %9100, align 4, !tbaa !5
  %9101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9102 = load i32, ptr @test_count, align 4, !tbaa !5
  %9103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9104 = load i32, ptr %9103, align 4, !tbaa !5
  %9105 = call ptr @s2n_strerror(i32 noundef %9104, ptr noundef @.str.6)
  %9106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9107 = load i32, ptr %9106, align 4, !tbaa !5
  %9108 = call ptr @s2n_strerror_debug(i32 noundef %9107, ptr noundef @.str.6)
  %9109 = call ptr @__errno_location() #13
  %9110 = load i32, ptr %9109, align 4, !tbaa !5
  %9111 = call ptr @strerror(i32 noundef %9110) #12
  %9112 = call ptr @__errno_location() #13
  %9113 = load i32, ptr %9112, align 4, !tbaa !5
  %9114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9101, ptr noundef @.str.4, i32 noundef %9102, ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 392, ptr noundef %9105, ptr noundef %9108, ptr noundef %9111, i32 noundef %9113) #12
  br label %9132

9115:                                             ; preds = %9093, %9086
  %9116 = load i32, ptr %196, align 4, !tbaa !5
  %9117 = call ptr @__errno_location() #13
  store i32 %9116, ptr %9117, align 4, !tbaa !5
  %9118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9119 = load i32, ptr @test_count, align 4, !tbaa !5
  %9120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9121 = load i32, ptr %9120, align 4, !tbaa !5
  %9122 = call ptr @s2n_strerror(i32 noundef %9121, ptr noundef @.str.6)
  %9123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9124 = load i32, ptr %9123, align 4, !tbaa !5
  %9125 = call ptr @s2n_strerror_debug(i32 noundef %9124, ptr noundef @.str.6)
  %9126 = call ptr @__errno_location() #13
  %9127 = load i32, ptr %9126, align 4, !tbaa !5
  %9128 = call ptr @strerror(i32 noundef %9127) #12
  %9129 = call ptr @__errno_location() #13
  %9130 = load i32, ptr %9129, align 4, !tbaa !5
  %9131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9118, ptr noundef @.str.7, i32 noundef %9119, ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 392, ptr noundef %9122, ptr noundef %9125, ptr noundef %9128, i32 noundef %9130) #12
  br label %9132

9132:                                             ; preds = %9115, %9098
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #12
  br label %9133

9133:                                             ; preds = %9132
  br label %9134

9134:                                             ; preds = %9133
  call void @exit(i32 noundef 1) #14
  unreachable

9135:                                             ; No predecessors!
  br label %9136

9136:                                             ; preds = %9135
  br label %9137

9137:                                             ; preds = %9136, %9079
  br label %9138

9138:                                             ; preds = %9137
  br label %9139

9139:                                             ; preds = %9138
  %9140 = load ptr, ptr %187, align 8, !tbaa !9
  %9141 = getelementptr inbounds %struct.s2n_connection, ptr %9140, i32 0, i32 23
  store i8 33, ptr %9141, align 4, !tbaa !63
  br label %9142

9142:                                             ; preds = %9139
  %9143 = load i32, ptr @test_count, align 4, !tbaa !5
  %9144 = add nsw i32 %9143, 1
  store i32 %9144, ptr @test_count, align 4, !tbaa !5
  %9145 = load ptr, ptr %187, align 8, !tbaa !9
  %9146 = call i32 @s2n_extension_recv(ptr noundef @s2n_client_key_share_extension, ptr noundef %9145, ptr noundef %192)
  %9147 = icmp eq i32 %9146, -1
  br i1 %9147, label %9148, label %9201

9148:                                             ; preds = %9142
  br label %9149

9149:                                             ; preds = %9148
  br label %9150

9150:                                             ; preds = %9149
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #12
  %9151 = call ptr @__errno_location() #13
  %9152 = load i32, ptr %9151, align 4, !tbaa !5
  store i32 %9152, ptr %197, align 4, !tbaa !5
  %9153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9154 = call i32 @s2n_print_stacktrace(ptr noundef %9153)
  %9155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9156 = trunc i8 %9155 to i1
  br i1 %9156, label %9157, label %9179

9157:                                             ; preds = %9150
  %9158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9159 = call i32 @fileno(ptr noundef %9158) #12
  %9160 = call i32 @isatty(i32 noundef %9159) #12
  %9161 = icmp ne i32 %9160, 0
  br i1 %9161, label %9162, label %9179

9162:                                             ; preds = %9157
  %9163 = load i32, ptr %197, align 4, !tbaa !5
  %9164 = call ptr @__errno_location() #13
  store i32 %9163, ptr %9164, align 4, !tbaa !5
  %9165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9166 = load i32, ptr @test_count, align 4, !tbaa !5
  %9167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9168 = load i32, ptr %9167, align 4, !tbaa !5
  %9169 = call ptr @s2n_strerror(i32 noundef %9168, ptr noundef @.str.6)
  %9170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9171 = load i32, ptr %9170, align 4, !tbaa !5
  %9172 = call ptr @s2n_strerror_debug(i32 noundef %9171, ptr noundef @.str.6)
  %9173 = call ptr @__errno_location() #13
  %9174 = load i32, ptr %9173, align 4, !tbaa !5
  %9175 = call ptr @strerror(i32 noundef %9174) #12
  %9176 = call ptr @__errno_location() #13
  %9177 = load i32, ptr %9176, align 4, !tbaa !5
  %9178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9165, ptr noundef @.str.4, i32 noundef %9166, ptr noundef @.str.82, ptr noundef @.str.3, i32 noundef 394, ptr noundef %9169, ptr noundef %9172, ptr noundef %9175, i32 noundef %9177) #12
  br label %9196

9179:                                             ; preds = %9157, %9150
  %9180 = load i32, ptr %197, align 4, !tbaa !5
  %9181 = call ptr @__errno_location() #13
  store i32 %9180, ptr %9181, align 4, !tbaa !5
  %9182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9183 = load i32, ptr @test_count, align 4, !tbaa !5
  %9184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9185 = load i32, ptr %9184, align 4, !tbaa !5
  %9186 = call ptr @s2n_strerror(i32 noundef %9185, ptr noundef @.str.6)
  %9187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9188 = load i32, ptr %9187, align 4, !tbaa !5
  %9189 = call ptr @s2n_strerror_debug(i32 noundef %9188, ptr noundef @.str.6)
  %9190 = call ptr @__errno_location() #13
  %9191 = load i32, ptr %9190, align 4, !tbaa !5
  %9192 = call ptr @strerror(i32 noundef %9191) #12
  %9193 = call ptr @__errno_location() #13
  %9194 = load i32, ptr %9193, align 4, !tbaa !5
  %9195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9182, ptr noundef @.str.7, i32 noundef %9183, ptr noundef @.str.82, ptr noundef @.str.3, i32 noundef 394, ptr noundef %9186, ptr noundef %9189, ptr noundef %9192, i32 noundef %9194) #12
  br label %9196

9196:                                             ; preds = %9179, %9162
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #12
  br label %9197

9197:                                             ; preds = %9196
  br label %9198

9198:                                             ; preds = %9197
  call void @exit(i32 noundef 1) #14
  unreachable

9199:                                             ; No predecessors!
  br label %9200

9200:                                             ; preds = %9199
  br label %9201

9201:                                             ; preds = %9200, %9142
  br label %9202

9202:                                             ; preds = %9201
  br label %9203

9203:                                             ; preds = %9202
  br label %9204

9204:                                             ; preds = %9203
  %9205 = load i32, ptr @test_count, align 4, !tbaa !5
  %9206 = add nsw i32 %9205, 1
  store i32 %9206, ptr @test_count, align 4, !tbaa !5
  %9207 = getelementptr inbounds %struct.s2n_stuffer, ptr %192, i32 0, i32 2
  %9208 = load i32, ptr %9207, align 4, !tbaa !18
  %9209 = getelementptr inbounds %struct.s2n_stuffer, ptr %192, i32 0, i32 1
  %9210 = load i32, ptr %9209, align 8, !tbaa !21
  %9211 = sub i32 %9208, %9210
  %9212 = load i16, ptr %195, align 2, !tbaa !27
  %9213 = zext i16 %9212 to i32
  %9214 = icmp eq i32 %9211, %9213
  br i1 %9214, label %9268, label %9215

9215:                                             ; preds = %9204
  br label %9216

9216:                                             ; preds = %9215
  br label %9217

9217:                                             ; preds = %9216
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #12
  %9218 = call ptr @__errno_location() #13
  %9219 = load i32, ptr %9218, align 4, !tbaa !5
  store i32 %9219, ptr %198, align 4, !tbaa !5
  %9220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9221 = call i32 @s2n_print_stacktrace(ptr noundef %9220)
  %9222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9223 = trunc i8 %9222 to i1
  br i1 %9223, label %9224, label %9246

9224:                                             ; preds = %9217
  %9225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9226 = call i32 @fileno(ptr noundef %9225) #12
  %9227 = call i32 @isatty(i32 noundef %9226) #12
  %9228 = icmp ne i32 %9227, 0
  br i1 %9228, label %9229, label %9246

9229:                                             ; preds = %9224
  %9230 = load i32, ptr %198, align 4, !tbaa !5
  %9231 = call ptr @__errno_location() #13
  store i32 %9230, ptr %9231, align 4, !tbaa !5
  %9232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9233 = load i32, ptr @test_count, align 4, !tbaa !5
  %9234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9235 = load i32, ptr %9234, align 4, !tbaa !5
  %9236 = call ptr @s2n_strerror(i32 noundef %9235, ptr noundef @.str.6)
  %9237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9238 = load i32, ptr %9237, align 4, !tbaa !5
  %9239 = call ptr @s2n_strerror_debug(i32 noundef %9238, ptr noundef @.str.6)
  %9240 = call ptr @__errno_location() #13
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call ptr @strerror(i32 noundef %9241) #12
  %9243 = call ptr @__errno_location() #13
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9232, ptr noundef @.str.4, i32 noundef %9233, ptr noundef @.str.83, ptr noundef @.str.3, i32 noundef 395, ptr noundef %9236, ptr noundef %9239, ptr noundef %9242, i32 noundef %9244) #12
  br label %9263

9246:                                             ; preds = %9224, %9217
  %9247 = load i32, ptr %198, align 4, !tbaa !5
  %9248 = call ptr @__errno_location() #13
  store i32 %9247, ptr %9248, align 4, !tbaa !5
  %9249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9250 = load i32, ptr @test_count, align 4, !tbaa !5
  %9251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9252 = load i32, ptr %9251, align 4, !tbaa !5
  %9253 = call ptr @s2n_strerror(i32 noundef %9252, ptr noundef @.str.6)
  %9254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9255 = load i32, ptr %9254, align 4, !tbaa !5
  %9256 = call ptr @s2n_strerror_debug(i32 noundef %9255, ptr noundef @.str.6)
  %9257 = call ptr @__errno_location() #13
  %9258 = load i32, ptr %9257, align 4, !tbaa !5
  %9259 = call ptr @strerror(i32 noundef %9258) #12
  %9260 = call ptr @__errno_location() #13
  %9261 = load i32, ptr %9260, align 4, !tbaa !5
  %9262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9249, ptr noundef @.str.7, i32 noundef %9250, ptr noundef @.str.83, ptr noundef @.str.3, i32 noundef 395, ptr noundef %9253, ptr noundef %9256, ptr noundef %9259, i32 noundef %9261) #12
  br label %9263

9263:                                             ; preds = %9246, %9229
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #12
  br label %9264

9264:                                             ; preds = %9263
  br label %9265

9265:                                             ; preds = %9264
  call void @exit(i32 noundef 1) #14
  unreachable

9266:                                             ; No predecessors!
  br label %9267

9267:                                             ; preds = %9266
  br label %9268

9268:                                             ; preds = %9267, %9204
  br label %9269

9269:                                             ; preds = %9268
  br label %9270

9270:                                             ; preds = %9269
  br label %9271

9271:                                             ; preds = %9270
  %9272 = load i32, ptr @test_count, align 4, !tbaa !5
  %9273 = add nsw i32 %9272, 1
  store i32 %9273, ptr @test_count, align 4, !tbaa !5
  %9274 = call i32 (...) @s2n_enable_tls13_in_test()
  %9275 = icmp eq i32 %9274, -1
  br i1 %9275, label %9276, label %9329

9276:                                             ; preds = %9271
  br label %9277

9277:                                             ; preds = %9276
  br label %9278

9278:                                             ; preds = %9277
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #12
  %9279 = call ptr @__errno_location() #13
  %9280 = load i32, ptr %9279, align 4, !tbaa !5
  store i32 %9280, ptr %199, align 4, !tbaa !5
  %9281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9282 = call i32 @s2n_print_stacktrace(ptr noundef %9281)
  %9283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9284 = trunc i8 %9283 to i1
  br i1 %9284, label %9285, label %9307

9285:                                             ; preds = %9278
  %9286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9287 = call i32 @fileno(ptr noundef %9286) #12
  %9288 = call i32 @isatty(i32 noundef %9287) #12
  %9289 = icmp ne i32 %9288, 0
  br i1 %9289, label %9290, label %9307

9290:                                             ; preds = %9285
  %9291 = load i32, ptr %199, align 4, !tbaa !5
  %9292 = call ptr @__errno_location() #13
  store i32 %9291, ptr %9292, align 4, !tbaa !5
  %9293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9294 = load i32, ptr @test_count, align 4, !tbaa !5
  %9295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9296 = load i32, ptr %9295, align 4, !tbaa !5
  %9297 = call ptr @s2n_strerror(i32 noundef %9296, ptr noundef @.str.6)
  %9298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9299 = load i32, ptr %9298, align 4, !tbaa !5
  %9300 = call ptr @s2n_strerror_debug(i32 noundef %9299, ptr noundef @.str.6)
  %9301 = call ptr @__errno_location() #13
  %9302 = load i32, ptr %9301, align 4, !tbaa !5
  %9303 = call ptr @strerror(i32 noundef %9302) #12
  %9304 = call ptr @__errno_location() #13
  %9305 = load i32, ptr %9304, align 4, !tbaa !5
  %9306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9293, ptr noundef @.str.4, i32 noundef %9294, ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 397, ptr noundef %9297, ptr noundef %9300, ptr noundef %9303, i32 noundef %9305) #12
  br label %9324

9307:                                             ; preds = %9285, %9278
  %9308 = load i32, ptr %199, align 4, !tbaa !5
  %9309 = call ptr @__errno_location() #13
  store i32 %9308, ptr %9309, align 4, !tbaa !5
  %9310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9311 = load i32, ptr @test_count, align 4, !tbaa !5
  %9312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9313 = load i32, ptr %9312, align 4, !tbaa !5
  %9314 = call ptr @s2n_strerror(i32 noundef %9313, ptr noundef @.str.6)
  %9315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9316 = load i32, ptr %9315, align 4, !tbaa !5
  %9317 = call ptr @s2n_strerror_debug(i32 noundef %9316, ptr noundef @.str.6)
  %9318 = call ptr @__errno_location() #13
  %9319 = load i32, ptr %9318, align 4, !tbaa !5
  %9320 = call ptr @strerror(i32 noundef %9319) #12
  %9321 = call ptr @__errno_location() #13
  %9322 = load i32, ptr %9321, align 4, !tbaa !5
  %9323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9310, ptr noundef @.str.7, i32 noundef %9311, ptr noundef @.str.10, ptr noundef @.str.3, i32 noundef 397, ptr noundef %9314, ptr noundef %9317, ptr noundef %9320, i32 noundef %9322) #12
  br label %9324

9324:                                             ; preds = %9307, %9290
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #12
  br label %9325

9325:                                             ; preds = %9324
  br label %9326

9326:                                             ; preds = %9325
  call void @exit(i32 noundef 1) #14
  unreachable

9327:                                             ; No predecessors!
  br label %9328

9328:                                             ; preds = %9327
  br label %9329

9329:                                             ; preds = %9328, %9271
  br label %9330

9330:                                             ; preds = %9329
  br label %9331

9331:                                             ; preds = %9330
  %9332 = load ptr, ptr %187, align 8, !tbaa !9
  %9333 = getelementptr inbounds %struct.s2n_connection, ptr %9332, i32 0, i32 23
  store i8 34, ptr %9333, align 4, !tbaa !63
  br label %9334

9334:                                             ; preds = %9331
  %9335 = load i32, ptr @test_count, align 4, !tbaa !5
  %9336 = add nsw i32 %9335, 1
  store i32 %9336, ptr @test_count, align 4, !tbaa !5
  %9337 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %9338 = load ptr, ptr %187, align 8, !tbaa !9
  %9339 = call i32 %9337(ptr noundef %9338, ptr noundef %192)
  %9340 = icmp eq i32 %9339, -1
  br i1 %9340, label %9341, label %9394

9341:                                             ; preds = %9334
  br label %9342

9342:                                             ; preds = %9341
  br label %9343

9343:                                             ; preds = %9342
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #12
  %9344 = call ptr @__errno_location() #13
  %9345 = load i32, ptr %9344, align 4, !tbaa !5
  store i32 %9345, ptr %200, align 4, !tbaa !5
  %9346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9347 = call i32 @s2n_print_stacktrace(ptr noundef %9346)
  %9348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9349 = trunc i8 %9348 to i1
  br i1 %9349, label %9350, label %9372

9350:                                             ; preds = %9343
  %9351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9352 = call i32 @fileno(ptr noundef %9351) #12
  %9353 = call i32 @isatty(i32 noundef %9352) #12
  %9354 = icmp ne i32 %9353, 0
  br i1 %9354, label %9355, label %9372

9355:                                             ; preds = %9350
  %9356 = load i32, ptr %200, align 4, !tbaa !5
  %9357 = call ptr @__errno_location() #13
  store i32 %9356, ptr %9357, align 4, !tbaa !5
  %9358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9359 = load i32, ptr @test_count, align 4, !tbaa !5
  %9360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9361 = load i32, ptr %9360, align 4, !tbaa !5
  %9362 = call ptr @s2n_strerror(i32 noundef %9361, ptr noundef @.str.6)
  %9363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9364 = load i32, ptr %9363, align 4, !tbaa !5
  %9365 = call ptr @s2n_strerror_debug(i32 noundef %9364, ptr noundef @.str.6)
  %9366 = call ptr @__errno_location() #13
  %9367 = load i32, ptr %9366, align 4, !tbaa !5
  %9368 = call ptr @strerror(i32 noundef %9367) #12
  %9369 = call ptr @__errno_location() #13
  %9370 = load i32, ptr %9369, align 4, !tbaa !5
  %9371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9358, ptr noundef @.str.4, i32 noundef %9359, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 399, ptr noundef %9362, ptr noundef %9365, ptr noundef %9368, i32 noundef %9370) #12
  br label %9389

9372:                                             ; preds = %9350, %9343
  %9373 = load i32, ptr %200, align 4, !tbaa !5
  %9374 = call ptr @__errno_location() #13
  store i32 %9373, ptr %9374, align 4, !tbaa !5
  %9375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9376 = load i32, ptr @test_count, align 4, !tbaa !5
  %9377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9378 = load i32, ptr %9377, align 4, !tbaa !5
  %9379 = call ptr @s2n_strerror(i32 noundef %9378, ptr noundef @.str.6)
  %9380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9381 = load i32, ptr %9380, align 4, !tbaa !5
  %9382 = call ptr @s2n_strerror_debug(i32 noundef %9381, ptr noundef @.str.6)
  %9383 = call ptr @__errno_location() #13
  %9384 = load i32, ptr %9383, align 4, !tbaa !5
  %9385 = call ptr @strerror(i32 noundef %9384) #12
  %9386 = call ptr @__errno_location() #13
  %9387 = load i32, ptr %9386, align 4, !tbaa !5
  %9388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9375, ptr noundef @.str.7, i32 noundef %9376, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 399, ptr noundef %9379, ptr noundef %9382, ptr noundef %9385, i32 noundef %9387) #12
  br label %9389

9389:                                             ; preds = %9372, %9355
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #12
  br label %9390

9390:                                             ; preds = %9389
  br label %9391

9391:                                             ; preds = %9390
  call void @exit(i32 noundef 1) #14
  unreachable

9392:                                             ; No predecessors!
  br label %9393

9393:                                             ; preds = %9392
  br label %9394

9394:                                             ; preds = %9393, %9334
  br label %9395

9395:                                             ; preds = %9394
  br label %9396

9396:                                             ; preds = %9395
  br label %9397

9397:                                             ; preds = %9396
  %9398 = load i32, ptr @test_count, align 4, !tbaa !5
  %9399 = add nsw i32 %9398, 1
  store i32 %9399, ptr @test_count, align 4, !tbaa !5
  %9400 = getelementptr inbounds %struct.s2n_stuffer, ptr %192, i32 0, i32 2
  %9401 = load i32, ptr %9400, align 4, !tbaa !18
  %9402 = getelementptr inbounds %struct.s2n_stuffer, ptr %192, i32 0, i32 1
  %9403 = load i32, ptr %9402, align 8, !tbaa !21
  %9404 = sub i32 %9401, %9403
  %9405 = icmp eq i32 %9404, 0
  br i1 %9405, label %9459, label %9406

9406:                                             ; preds = %9397
  br label %9407

9407:                                             ; preds = %9406
  br label %9408

9408:                                             ; preds = %9407
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #12
  %9409 = call ptr @__errno_location() #13
  %9410 = load i32, ptr %9409, align 4, !tbaa !5
  store i32 %9410, ptr %201, align 4, !tbaa !5
  %9411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9412 = call i32 @s2n_print_stacktrace(ptr noundef %9411)
  %9413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9414 = trunc i8 %9413 to i1
  br i1 %9414, label %9415, label %9437

9415:                                             ; preds = %9408
  %9416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9417 = call i32 @fileno(ptr noundef %9416) #12
  %9418 = call i32 @isatty(i32 noundef %9417) #12
  %9419 = icmp ne i32 %9418, 0
  br i1 %9419, label %9420, label %9437

9420:                                             ; preds = %9415
  %9421 = load i32, ptr %201, align 4, !tbaa !5
  %9422 = call ptr @__errno_location() #13
  store i32 %9421, ptr %9422, align 4, !tbaa !5
  %9423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9424 = load i32, ptr @test_count, align 4, !tbaa !5
  %9425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9426 = load i32, ptr %9425, align 4, !tbaa !5
  %9427 = call ptr @s2n_strerror(i32 noundef %9426, ptr noundef @.str.6)
  %9428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9429 = load i32, ptr %9428, align 4, !tbaa !5
  %9430 = call ptr @s2n_strerror_debug(i32 noundef %9429, ptr noundef @.str.6)
  %9431 = call ptr @__errno_location() #13
  %9432 = load i32, ptr %9431, align 4, !tbaa !5
  %9433 = call ptr @strerror(i32 noundef %9432) #12
  %9434 = call ptr @__errno_location() #13
  %9435 = load i32, ptr %9434, align 4, !tbaa !5
  %9436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9423, ptr noundef @.str.4, i32 noundef %9424, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 400, ptr noundef %9427, ptr noundef %9430, ptr noundef %9433, i32 noundef %9435) #12
  br label %9454

9437:                                             ; preds = %9415, %9408
  %9438 = load i32, ptr %201, align 4, !tbaa !5
  %9439 = call ptr @__errno_location() #13
  store i32 %9438, ptr %9439, align 4, !tbaa !5
  %9440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9441 = load i32, ptr @test_count, align 4, !tbaa !5
  %9442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9443 = load i32, ptr %9442, align 4, !tbaa !5
  %9444 = call ptr @s2n_strerror(i32 noundef %9443, ptr noundef @.str.6)
  %9445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9446 = load i32, ptr %9445, align 4, !tbaa !5
  %9447 = call ptr @s2n_strerror_debug(i32 noundef %9446, ptr noundef @.str.6)
  %9448 = call ptr @__errno_location() #13
  %9449 = load i32, ptr %9448, align 4, !tbaa !5
  %9450 = call ptr @strerror(i32 noundef %9449) #12
  %9451 = call ptr @__errno_location() #13
  %9452 = load i32, ptr %9451, align 4, !tbaa !5
  %9453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9440, ptr noundef @.str.7, i32 noundef %9441, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 400, ptr noundef %9444, ptr noundef %9447, ptr noundef %9450, i32 noundef %9452) #12
  br label %9454

9454:                                             ; preds = %9437, %9420
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #12
  br label %9455

9455:                                             ; preds = %9454
  br label %9456

9456:                                             ; preds = %9455
  call void @exit(i32 noundef 1) #14
  unreachable

9457:                                             ; No predecessors!
  br label %9458

9458:                                             ; preds = %9457
  br label %9459

9459:                                             ; preds = %9458, %9397
  br label %9460

9460:                                             ; preds = %9459
  br label %9461

9461:                                             ; preds = %9460
  br label %9462

9462:                                             ; preds = %9461
  %9463 = load i32, ptr @test_count, align 4, !tbaa !5
  %9464 = add nsw i32 %9463, 1
  store i32 %9464, ptr @test_count, align 4, !tbaa !5
  %9465 = load ptr, ptr %186, align 8, !tbaa !9
  %9466 = call i32 @s2n_connection_free(ptr noundef %9465)
  %9467 = icmp eq i32 %9466, -1
  br i1 %9467, label %9468, label %9521

9468:                                             ; preds = %9462
  br label %9469

9469:                                             ; preds = %9468
  br label %9470

9470:                                             ; preds = %9469
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #12
  %9471 = call ptr @__errno_location() #13
  %9472 = load i32, ptr %9471, align 4, !tbaa !5
  store i32 %9472, ptr %202, align 4, !tbaa !5
  %9473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9474 = call i32 @s2n_print_stacktrace(ptr noundef %9473)
  %9475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9476 = trunc i8 %9475 to i1
  br i1 %9476, label %9477, label %9499

9477:                                             ; preds = %9470
  %9478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9479 = call i32 @fileno(ptr noundef %9478) #12
  %9480 = call i32 @isatty(i32 noundef %9479) #12
  %9481 = icmp ne i32 %9480, 0
  br i1 %9481, label %9482, label %9499

9482:                                             ; preds = %9477
  %9483 = load i32, ptr %202, align 4, !tbaa !5
  %9484 = call ptr @__errno_location() #13
  store i32 %9483, ptr %9484, align 4, !tbaa !5
  %9485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9486 = load i32, ptr @test_count, align 4, !tbaa !5
  %9487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9488 = load i32, ptr %9487, align 4, !tbaa !5
  %9489 = call ptr @s2n_strerror(i32 noundef %9488, ptr noundef @.str.6)
  %9490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9491 = load i32, ptr %9490, align 4, !tbaa !5
  %9492 = call ptr @s2n_strerror_debug(i32 noundef %9491, ptr noundef @.str.6)
  %9493 = call ptr @__errno_location() #13
  %9494 = load i32, ptr %9493, align 4, !tbaa !5
  %9495 = call ptr @strerror(i32 noundef %9494) #12
  %9496 = call ptr @__errno_location() #13
  %9497 = load i32, ptr %9496, align 4, !tbaa !5
  %9498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9485, ptr noundef @.str.4, i32 noundef %9486, ptr noundef @.str.66, ptr noundef @.str.3, i32 noundef 402, ptr noundef %9489, ptr noundef %9492, ptr noundef %9495, i32 noundef %9497) #12
  br label %9516

9499:                                             ; preds = %9477, %9470
  %9500 = load i32, ptr %202, align 4, !tbaa !5
  %9501 = call ptr @__errno_location() #13
  store i32 %9500, ptr %9501, align 4, !tbaa !5
  %9502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9503 = load i32, ptr @test_count, align 4, !tbaa !5
  %9504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9505 = load i32, ptr %9504, align 4, !tbaa !5
  %9506 = call ptr @s2n_strerror(i32 noundef %9505, ptr noundef @.str.6)
  %9507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9508 = load i32, ptr %9507, align 4, !tbaa !5
  %9509 = call ptr @s2n_strerror_debug(i32 noundef %9508, ptr noundef @.str.6)
  %9510 = call ptr @__errno_location() #13
  %9511 = load i32, ptr %9510, align 4, !tbaa !5
  %9512 = call ptr @strerror(i32 noundef %9511) #12
  %9513 = call ptr @__errno_location() #13
  %9514 = load i32, ptr %9513, align 4, !tbaa !5
  %9515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9502, ptr noundef @.str.7, i32 noundef %9503, ptr noundef @.str.66, ptr noundef @.str.3, i32 noundef 402, ptr noundef %9506, ptr noundef %9509, ptr noundef %9512, i32 noundef %9514) #12
  br label %9516

9516:                                             ; preds = %9499, %9482
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #12
  br label %9517

9517:                                             ; preds = %9516
  br label %9518

9518:                                             ; preds = %9517
  call void @exit(i32 noundef 1) #14
  unreachable

9519:                                             ; No predecessors!
  br label %9520

9520:                                             ; preds = %9519
  br label %9521

9521:                                             ; preds = %9520, %9462
  br label %9522

9522:                                             ; preds = %9521
  br label %9523

9523:                                             ; preds = %9522
  br label %9524

9524:                                             ; preds = %9523
  %9525 = load i32, ptr @test_count, align 4, !tbaa !5
  %9526 = add nsw i32 %9525, 1
  store i32 %9526, ptr @test_count, align 4, !tbaa !5
  %9527 = load ptr, ptr %187, align 8, !tbaa !9
  %9528 = call i32 @s2n_connection_free(ptr noundef %9527)
  %9529 = icmp eq i32 %9528, -1
  br i1 %9529, label %9530, label %9583

9530:                                             ; preds = %9524
  br label %9531

9531:                                             ; preds = %9530
  br label %9532

9532:                                             ; preds = %9531
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #12
  %9533 = call ptr @__errno_location() #13
  %9534 = load i32, ptr %9533, align 4, !tbaa !5
  store i32 %9534, ptr %203, align 4, !tbaa !5
  %9535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9536 = call i32 @s2n_print_stacktrace(ptr noundef %9535)
  %9537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9538 = trunc i8 %9537 to i1
  br i1 %9538, label %9539, label %9561

9539:                                             ; preds = %9532
  %9540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9541 = call i32 @fileno(ptr noundef %9540) #12
  %9542 = call i32 @isatty(i32 noundef %9541) #12
  %9543 = icmp ne i32 %9542, 0
  br i1 %9543, label %9544, label %9561

9544:                                             ; preds = %9539
  %9545 = load i32, ptr %203, align 4, !tbaa !5
  %9546 = call ptr @__errno_location() #13
  store i32 %9545, ptr %9546, align 4, !tbaa !5
  %9547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9548 = load i32, ptr @test_count, align 4, !tbaa !5
  %9549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9550 = load i32, ptr %9549, align 4, !tbaa !5
  %9551 = call ptr @s2n_strerror(i32 noundef %9550, ptr noundef @.str.6)
  %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_debug(i32 noundef %9553, ptr noundef @.str.6)
  %9555 = call ptr @__errno_location() #13
  %9556 = load i32, ptr %9555, align 4, !tbaa !5
  %9557 = call ptr @strerror(i32 noundef %9556) #12
  %9558 = call ptr @__errno_location() #13
  %9559 = load i32, ptr %9558, align 4, !tbaa !5
  %9560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9547, ptr noundef @.str.4, i32 noundef %9548, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 403, ptr noundef %9551, ptr noundef %9554, ptr noundef %9557, i32 noundef %9559) #12
  br label %9578

9561:                                             ; preds = %9539, %9532
  %9562 = load i32, ptr %203, align 4, !tbaa !5
  %9563 = call ptr @__errno_location() #13
  store i32 %9562, ptr %9563, align 4, !tbaa !5
  %9564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9565 = load i32, ptr @test_count, align 4, !tbaa !5
  %9566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9567 = load i32, ptr %9566, align 4, !tbaa !5
  %9568 = call ptr @s2n_strerror(i32 noundef %9567, ptr noundef @.str.6)
  %9569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9570 = load i32, ptr %9569, align 4, !tbaa !5
  %9571 = call ptr @s2n_strerror_debug(i32 noundef %9570, ptr noundef @.str.6)
  %9572 = call ptr @__errno_location() #13
  %9573 = load i32, ptr %9572, align 4, !tbaa !5
  %9574 = call ptr @strerror(i32 noundef %9573) #12
  %9575 = call ptr @__errno_location() #13
  %9576 = load i32, ptr %9575, align 4, !tbaa !5
  %9577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9564, ptr noundef @.str.7, i32 noundef %9565, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 403, ptr noundef %9568, ptr noundef %9571, ptr noundef %9574, i32 noundef %9576) #12
  br label %9578

9578:                                             ; preds = %9561, %9544
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #12
  br label %9579

9579:                                             ; preds = %9578
  br label %9580

9580:                                             ; preds = %9579
  call void @exit(i32 noundef 1) #14
  unreachable

9581:                                             ; No predecessors!
  br label %9582

9582:                                             ; preds = %9581
  br label %9583

9583:                                             ; preds = %9582, %9524
  br label %9584

9584:                                             ; preds = %9583
  br label %9585

9585:                                             ; preds = %9584
  call void @llvm.lifetime.end.p0(i64 2, ptr %195) #12
  %9586 = call i32 @s2n_stuffer_free(ptr noundef %192)
  call void @llvm.lifetime.end.p0(i64 40, ptr %192) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %204) #12
  store ptr null, ptr %204, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %205) #12
  store ptr null, ptr %205, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %206) #12
  call void @llvm.memset.p0.i64(ptr align 8 %206, i8 0, i64 40, i1 false)
  br label %9587

9587:                                             ; preds = %9585
  %9588 = load i32, ptr @test_count, align 4, !tbaa !5
  %9589 = add nsw i32 %9588, 1
  store i32 %9589, ptr @test_count, align 4, !tbaa !5
  %9590 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9590, ptr %204, align 8, !tbaa !9
  %9591 = icmp eq ptr %9590, null
  br i1 %9591, label %9592, label %9645

9592:                                             ; preds = %9587
  br label %9593

9593:                                             ; preds = %9592
  br label %9594

9594:                                             ; preds = %9593
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #12
  %9595 = call ptr @__errno_location() #13
  %9596 = load i32, ptr %9595, align 4, !tbaa !5
  store i32 %9596, ptr %207, align 4, !tbaa !5
  %9597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9598 = call i32 @s2n_print_stacktrace(ptr noundef %9597)
  %9599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9600 = trunc i8 %9599 to i1
  br i1 %9600, label %9601, label %9623

9601:                                             ; preds = %9594
  %9602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9603 = call i32 @fileno(ptr noundef %9602) #12
  %9604 = call i32 @isatty(i32 noundef %9603) #12
  %9605 = icmp ne i32 %9604, 0
  br i1 %9605, label %9606, label %9623

9606:                                             ; preds = %9601
  %9607 = load i32, ptr %207, align 4, !tbaa !5
  %9608 = call ptr @__errno_location() #13
  store i32 %9607, ptr %9608, align 4, !tbaa !5
  %9609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9610 = load i32, ptr @test_count, align 4, !tbaa !5
  %9611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9612 = load i32, ptr %9611, align 4, !tbaa !5
  %9613 = call ptr @s2n_strerror(i32 noundef %9612, ptr noundef @.str.6)
  %9614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9615 = load i32, ptr %9614, align 4, !tbaa !5
  %9616 = call ptr @s2n_strerror_debug(i32 noundef %9615, ptr noundef @.str.6)
  %9617 = call ptr @__errno_location() #13
  %9618 = load i32, ptr %9617, align 4, !tbaa !5
  %9619 = call ptr @strerror(i32 noundef %9618) #12
  %9620 = call ptr @__errno_location() #13
  %9621 = load i32, ptr %9620, align 4, !tbaa !5
  %9622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9609, ptr noundef @.str.4, i32 noundef %9610, ptr noundef @.str.49, ptr noundef @.str.3, i32 noundef 412, ptr noundef %9613, ptr noundef %9616, ptr noundef %9619, i32 noundef %9621) #12
  br label %9640

9623:                                             ; preds = %9601, %9594
  %9624 = load i32, ptr %207, align 4, !tbaa !5
  %9625 = call ptr @__errno_location() #13
  store i32 %9624, ptr %9625, align 4, !tbaa !5
  %9626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9627 = load i32, ptr @test_count, align 4, !tbaa !5
  %9628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9629 = load i32, ptr %9628, align 4, !tbaa !5
  %9630 = call ptr @s2n_strerror(i32 noundef %9629, ptr noundef @.str.6)
  %9631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9632 = load i32, ptr %9631, align 4, !tbaa !5
  %9633 = call ptr @s2n_strerror_debug(i32 noundef %9632, ptr noundef @.str.6)
  %9634 = call ptr @__errno_location() #13
  %9635 = load i32, ptr %9634, align 4, !tbaa !5
  %9636 = call ptr @strerror(i32 noundef %9635) #12
  %9637 = call ptr @__errno_location() #13
  %9638 = load i32, ptr %9637, align 4, !tbaa !5
  %9639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9626, ptr noundef @.str.7, i32 noundef %9627, ptr noundef @.str.49, ptr noundef @.str.3, i32 noundef 412, ptr noundef %9630, ptr noundef %9633, ptr noundef %9636, i32 noundef %9638) #12
  br label %9640

9640:                                             ; preds = %9623, %9606
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #12
  br label %9641

9641:                                             ; preds = %9640
  br label %9642

9642:                                             ; preds = %9641
  call void @exit(i32 noundef 1) #14
  unreachable

9643:                                             ; No predecessors!
  br label %9644

9644:                                             ; preds = %9643
  br label %9645

9645:                                             ; preds = %9644, %9587
  br label %9646

9646:                                             ; preds = %9645
  br label %9647

9647:                                             ; preds = %9646
  br label %9648

9648:                                             ; preds = %9647
  %9649 = load i32, ptr @test_count, align 4, !tbaa !5
  %9650 = add nsw i32 %9649, 1
  store i32 %9650, ptr @test_count, align 4, !tbaa !5
  %9651 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9651, ptr %205, align 8, !tbaa !9
  %9652 = icmp eq ptr %9651, null
  br i1 %9652, label %9653, label %9706

9653:                                             ; preds = %9648
  br label %9654

9654:                                             ; preds = %9653
  br label %9655

9655:                                             ; preds = %9654
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #12
  %9656 = call ptr @__errno_location() #13
  %9657 = load i32, ptr %9656, align 4, !tbaa !5
  store i32 %9657, ptr %208, align 4, !tbaa !5
  %9658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9659 = call i32 @s2n_print_stacktrace(ptr noundef %9658)
  %9660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9661 = trunc i8 %9660 to i1
  br i1 %9661, label %9662, label %9684

9662:                                             ; preds = %9655
  %9663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9664 = call i32 @fileno(ptr noundef %9663) #12
  %9665 = call i32 @isatty(i32 noundef %9664) #12
  %9666 = icmp ne i32 %9665, 0
  br i1 %9666, label %9667, label %9684

9667:                                             ; preds = %9662
  %9668 = load i32, ptr %208, align 4, !tbaa !5
  %9669 = call ptr @__errno_location() #13
  store i32 %9668, ptr %9669, align 4, !tbaa !5
  %9670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9671 = load i32, ptr @test_count, align 4, !tbaa !5
  %9672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9673 = load i32, ptr %9672, align 4, !tbaa !5
  %9674 = call ptr @s2n_strerror(i32 noundef %9673, ptr noundef @.str.6)
  %9675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9676 = load i32, ptr %9675, align 4, !tbaa !5
  %9677 = call ptr @s2n_strerror_debug(i32 noundef %9676, ptr noundef @.str.6)
  %9678 = call ptr @__errno_location() #13
  %9679 = load i32, ptr %9678, align 4, !tbaa !5
  %9680 = call ptr @strerror(i32 noundef %9679) #12
  %9681 = call ptr @__errno_location() #13
  %9682 = load i32, ptr %9681, align 4, !tbaa !5
  %9683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9670, ptr noundef @.str.4, i32 noundef %9671, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 413, ptr noundef %9674, ptr noundef %9677, ptr noundef %9680, i32 noundef %9682) #12
  br label %9701

9684:                                             ; preds = %9662, %9655
  %9685 = load i32, ptr %208, align 4, !tbaa !5
  %9686 = call ptr @__errno_location() #13
  store i32 %9685, ptr %9686, align 4, !tbaa !5
  %9687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9688 = load i32, ptr @test_count, align 4, !tbaa !5
  %9689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9690 = load i32, ptr %9689, align 4, !tbaa !5
  %9691 = call ptr @s2n_strerror(i32 noundef %9690, ptr noundef @.str.6)
  %9692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9693 = load i32, ptr %9692, align 4, !tbaa !5
  %9694 = call ptr @s2n_strerror_debug(i32 noundef %9693, ptr noundef @.str.6)
  %9695 = call ptr @__errno_location() #13
  %9696 = load i32, ptr %9695, align 4, !tbaa !5
  %9697 = call ptr @strerror(i32 noundef %9696) #12
  %9698 = call ptr @__errno_location() #13
  %9699 = load i32, ptr %9698, align 4, !tbaa !5
  %9700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9687, ptr noundef @.str.7, i32 noundef %9688, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 413, ptr noundef %9691, ptr noundef %9694, ptr noundef %9697, i32 noundef %9699) #12
  br label %9701

9701:                                             ; preds = %9684, %9667
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #12
  br label %9702

9702:                                             ; preds = %9701
  br label %9703

9703:                                             ; preds = %9702
  call void @exit(i32 noundef 1) #14
  unreachable

9704:                                             ; No predecessors!
  br label %9705

9705:                                             ; preds = %9704
  br label %9706

9706:                                             ; preds = %9705, %9648
  br label %9707

9707:                                             ; preds = %9706
  br label %9708

9708:                                             ; preds = %9707
  %9709 = load ptr, ptr %205, align 8, !tbaa !9
  %9710 = getelementptr inbounds %struct.s2n_connection, ptr %9709, i32 0, i32 23
  store i8 34, ptr %9710, align 4, !tbaa !63
  br label %9711

9711:                                             ; preds = %9708
  %9712 = load i32, ptr @test_count, align 4, !tbaa !5
  %9713 = add nsw i32 %9712, 1
  store i32 %9713, ptr @test_count, align 4, !tbaa !5
  %9714 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %206, i32 noundef 0)
  %9715 = icmp eq i32 %9714, -1
  br i1 %9715, label %9716, label %9769

9716:                                             ; preds = %9711
  br label %9717

9717:                                             ; preds = %9716
  br label %9718

9718:                                             ; preds = %9717
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #12
  %9719 = call ptr @__errno_location() #13
  %9720 = load i32, ptr %9719, align 4, !tbaa !5
  store i32 %9720, ptr %209, align 4, !tbaa !5
  %9721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9722 = call i32 @s2n_print_stacktrace(ptr noundef %9721)
  %9723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9724 = trunc i8 %9723 to i1
  br i1 %9724, label %9725, label %9747

9725:                                             ; preds = %9718
  %9726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9727 = call i32 @fileno(ptr noundef %9726) #12
  %9728 = call i32 @isatty(i32 noundef %9727) #12
  %9729 = icmp ne i32 %9728, 0
  br i1 %9729, label %9730, label %9747

9730:                                             ; preds = %9725
  %9731 = load i32, ptr %209, align 4, !tbaa !5
  %9732 = call ptr @__errno_location() #13
  store i32 %9731, ptr %9732, align 4, !tbaa !5
  %9733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9734 = load i32, ptr @test_count, align 4, !tbaa !5
  %9735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9736 = load i32, ptr %9735, align 4, !tbaa !5
  %9737 = call ptr @s2n_strerror(i32 noundef %9736, ptr noundef @.str.6)
  %9738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9739 = load i32, ptr %9738, align 4, !tbaa !5
  %9740 = call ptr @s2n_strerror_debug(i32 noundef %9739, ptr noundef @.str.6)
  %9741 = call ptr @__errno_location() #13
  %9742 = load i32, ptr %9741, align 4, !tbaa !5
  %9743 = call ptr @strerror(i32 noundef %9742) #12
  %9744 = call ptr @__errno_location() #13
  %9745 = load i32, ptr %9744, align 4, !tbaa !5
  %9746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9733, ptr noundef @.str.4, i32 noundef %9734, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 415, ptr noundef %9737, ptr noundef %9740, ptr noundef %9743, i32 noundef %9745) #12
  br label %9764

9747:                                             ; preds = %9725, %9718
  %9748 = load i32, ptr %209, align 4, !tbaa !5
  %9749 = call ptr @__errno_location() #13
  store i32 %9748, ptr %9749, align 4, !tbaa !5
  %9750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9751 = load i32, ptr @test_count, align 4, !tbaa !5
  %9752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9753 = load i32, ptr %9752, align 4, !tbaa !5
  %9754 = call ptr @s2n_strerror(i32 noundef %9753, ptr noundef @.str.6)
  %9755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9756 = load i32, ptr %9755, align 4, !tbaa !5
  %9757 = call ptr @s2n_strerror_debug(i32 noundef %9756, ptr noundef @.str.6)
  %9758 = call ptr @__errno_location() #13
  %9759 = load i32, ptr %9758, align 4, !tbaa !5
  %9760 = call ptr @strerror(i32 noundef %9759) #12
  %9761 = call ptr @__errno_location() #13
  %9762 = load i32, ptr %9761, align 4, !tbaa !5
  %9763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9750, ptr noundef @.str.7, i32 noundef %9751, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 415, ptr noundef %9754, ptr noundef %9757, ptr noundef %9760, i32 noundef %9762) #12
  br label %9764

9764:                                             ; preds = %9747, %9730
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #12
  br label %9765

9765:                                             ; preds = %9764
  br label %9766

9766:                                             ; preds = %9765
  call void @exit(i32 noundef 1) #14
  unreachable

9767:                                             ; No predecessors!
  br label %9768

9768:                                             ; preds = %9767
  br label %9769

9769:                                             ; preds = %9768, %9711
  br label %9770

9770:                                             ; preds = %9769
  br label %9771

9771:                                             ; preds = %9770
  br label %9772

9772:                                             ; preds = %9771
  %9773 = load i32, ptr @test_count, align 4, !tbaa !5
  %9774 = add nsw i32 %9773, 1
  store i32 %9774, ptr @test_count, align 4, !tbaa !5
  %9775 = load ptr, ptr %205, align 8, !tbaa !9
  %9776 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %9775)
  %9777 = getelementptr inbounds %struct.s2n_result, ptr %210, i32 0, i32 0
  store i32 %9776, ptr %9777, align 4
  %9778 = getelementptr inbounds %struct.s2n_result, ptr %210, i32 0, i32 0
  %9779 = load i32, ptr %9778, align 4
  %9780 = call zeroext i1 @s2n_result_is_ok(i32 %9779)
  br i1 %9780, label %9834, label %9781

9781:                                             ; preds = %9772
  br label %9782

9782:                                             ; preds = %9781
  br label %9783

9783:                                             ; preds = %9782
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #12
  %9784 = call ptr @__errno_location() #13
  %9785 = load i32, ptr %9784, align 4, !tbaa !5
  store i32 %9785, ptr %211, align 4, !tbaa !5
  %9786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9787 = call i32 @s2n_print_stacktrace(ptr noundef %9786)
  %9788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9789 = trunc i8 %9788 to i1
  br i1 %9789, label %9790, label %9812

9790:                                             ; preds = %9783
  %9791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9792 = call i32 @fileno(ptr noundef %9791) #12
  %9793 = call i32 @isatty(i32 noundef %9792) #12
  %9794 = icmp ne i32 %9793, 0
  br i1 %9794, label %9795, label %9812

9795:                                             ; preds = %9790
  %9796 = load i32, ptr %211, align 4, !tbaa !5
  %9797 = call ptr @__errno_location() #13
  store i32 %9796, ptr %9797, align 4, !tbaa !5
  %9798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9799 = load i32, ptr @test_count, align 4, !tbaa !5
  %9800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9801 = load i32, ptr %9800, align 4, !tbaa !5
  %9802 = call ptr @s2n_strerror(i32 noundef %9801, ptr noundef @.str.6)
  %9803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9804 = load i32, ptr %9803, align 4, !tbaa !5
  %9805 = call ptr @s2n_strerror_debug(i32 noundef %9804, ptr noundef @.str.6)
  %9806 = call ptr @__errno_location() #13
  %9807 = load i32, ptr %9806, align 4, !tbaa !5
  %9808 = call ptr @strerror(i32 noundef %9807) #12
  %9809 = call ptr @__errno_location() #13
  %9810 = load i32, ptr %9809, align 4, !tbaa !5
  %9811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9798, ptr noundef @.str.4, i32 noundef %9799, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 416, ptr noundef %9802, ptr noundef %9805, ptr noundef %9808, i32 noundef %9810) #12
  br label %9829

9812:                                             ; preds = %9790, %9783
  %9813 = load i32, ptr %211, align 4, !tbaa !5
  %9814 = call ptr @__errno_location() #13
  store i32 %9813, ptr %9814, align 4, !tbaa !5
  %9815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9816 = load i32, ptr @test_count, align 4, !tbaa !5
  %9817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9818 = load i32, ptr %9817, align 4, !tbaa !5
  %9819 = call ptr @s2n_strerror(i32 noundef %9818, ptr noundef @.str.6)
  %9820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9821 = load i32, ptr %9820, align 4, !tbaa !5
  %9822 = call ptr @s2n_strerror_debug(i32 noundef %9821, ptr noundef @.str.6)
  %9823 = call ptr @__errno_location() #13
  %9824 = load i32, ptr %9823, align 4, !tbaa !5
  %9825 = call ptr @strerror(i32 noundef %9824) #12
  %9826 = call ptr @__errno_location() #13
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9815, ptr noundef @.str.7, i32 noundef %9816, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 416, ptr noundef %9819, ptr noundef %9822, ptr noundef %9825, i32 noundef %9827) #12
  br label %9829

9829:                                             ; preds = %9812, %9795
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #12
  br label %9830

9830:                                             ; preds = %9829
  br label %9831

9831:                                             ; preds = %9830
  call void @exit(i32 noundef 1) #14
  unreachable

9832:                                             ; No predecessors!
  br label %9833

9833:                                             ; preds = %9832
  br label %9834

9834:                                             ; preds = %9833, %9772
  br label %9835

9835:                                             ; preds = %9834
  br label %9836

9836:                                             ; preds = %9835
  br label %9837

9837:                                             ; preds = %9836
  %9838 = load i32, ptr @test_count, align 4, !tbaa !5
  %9839 = add nsw i32 %9838, 1
  store i32 %9839, ptr @test_count, align 4, !tbaa !5
  %9840 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !15
  %9841 = load ptr, ptr %204, align 8, !tbaa !9
  %9842 = call i32 %9840(ptr noundef %9841, ptr noundef %206)
  %9843 = icmp eq i32 %9842, -1
  br i1 %9843, label %9844, label %9897

9844:                                             ; preds = %9837
  br label %9845

9845:                                             ; preds = %9844
  br label %9846

9846:                                             ; preds = %9845
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #12
  %9847 = call ptr @__errno_location() #13
  %9848 = load i32, ptr %9847, align 4, !tbaa !5
  store i32 %9848, ptr %212, align 4, !tbaa !5
  %9849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9850 = call i32 @s2n_print_stacktrace(ptr noundef %9849)
  %9851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9852 = trunc i8 %9851 to i1
  br i1 %9852, label %9853, label %9875

9853:                                             ; preds = %9846
  %9854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9855 = call i32 @fileno(ptr noundef %9854) #12
  %9856 = call i32 @isatty(i32 noundef %9855) #12
  %9857 = icmp ne i32 %9856, 0
  br i1 %9857, label %9858, label %9875

9858:                                             ; preds = %9853
  %9859 = load i32, ptr %212, align 4, !tbaa !5
  %9860 = call ptr @__errno_location() #13
  store i32 %9859, ptr %9860, align 4, !tbaa !5
  %9861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9862 = load i32, ptr @test_count, align 4, !tbaa !5
  %9863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9864 = load i32, ptr %9863, align 4, !tbaa !5
  %9865 = call ptr @s2n_strerror(i32 noundef %9864, ptr noundef @.str.6)
  %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_debug(i32 noundef %9867, ptr noundef @.str.6)
  %9869 = call ptr @__errno_location() #13
  %9870 = load i32, ptr %9869, align 4, !tbaa !5
  %9871 = call ptr @strerror(i32 noundef %9870) #12
  %9872 = call ptr @__errno_location() #13
  %9873 = load i32, ptr %9872, align 4, !tbaa !5
  %9874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9861, ptr noundef @.str.4, i32 noundef %9862, ptr noundef @.str.56, ptr noundef @.str.3, i32 noundef 418, ptr noundef %9865, ptr noundef %9868, ptr noundef %9871, i32 noundef %9873) #12
  br label %9892

9875:                                             ; preds = %9853, %9846
  %9876 = load i32, ptr %212, align 4, !tbaa !5
  %9877 = call ptr @__errno_location() #13
  store i32 %9876, ptr %9877, align 4, !tbaa !5
  %9878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9879 = load i32, ptr @test_count, align 4, !tbaa !5
  %9880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9881 = load i32, ptr %9880, align 4, !tbaa !5
  %9882 = call ptr @s2n_strerror(i32 noundef %9881, ptr noundef @.str.6)
  %9883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9884 = load i32, ptr %9883, align 4, !tbaa !5
  %9885 = call ptr @s2n_strerror_debug(i32 noundef %9884, ptr noundef @.str.6)
  %9886 = call ptr @__errno_location() #13
  %9887 = load i32, ptr %9886, align 4, !tbaa !5
  %9888 = call ptr @strerror(i32 noundef %9887) #12
  %9889 = call ptr @__errno_location() #13
  %9890 = load i32, ptr %9889, align 4, !tbaa !5
  %9891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9878, ptr noundef @.str.7, i32 noundef %9879, ptr noundef @.str.56, ptr noundef @.str.3, i32 noundef 418, ptr noundef %9882, ptr noundef %9885, ptr noundef %9888, i32 noundef %9890) #12
  br label %9892

9892:                                             ; preds = %9875, %9858
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #12
  br label %9893

9893:                                             ; preds = %9892
  br label %9894

9894:                                             ; preds = %9893
  call void @exit(i32 noundef 1) #14
  unreachable

9895:                                             ; No predecessors!
  br label %9896

9896:                                             ; preds = %9895
  br label %9897

9897:                                             ; preds = %9896, %9837
  br label %9898

9898:                                             ; preds = %9897
  br label %9899

9899:                                             ; preds = %9898
  br label %9900

9900:                                             ; preds = %9899
  %9901 = load i32, ptr @test_count, align 4, !tbaa !5
  %9902 = add nsw i32 %9901, 1
  store i32 %9902, ptr @test_count, align 4, !tbaa !5
  %9903 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %9904 = load ptr, ptr %205, align 8, !tbaa !9
  %9905 = call i32 %9903(ptr noundef %9904, ptr noundef %206)
  %9906 = icmp eq i32 %9905, -1
  br i1 %9906, label %9907, label %9960

9907:                                             ; preds = %9900
  br label %9908

9908:                                             ; preds = %9907
  br label %9909

9909:                                             ; preds = %9908
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #12
  %9910 = call ptr @__errno_location() #13
  %9911 = load i32, ptr %9910, align 4, !tbaa !5
  store i32 %9911, ptr %213, align 4, !tbaa !5
  %9912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9913 = call i32 @s2n_print_stacktrace(ptr noundef %9912)
  %9914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9915 = trunc i8 %9914 to i1
  br i1 %9915, label %9916, label %9938

9916:                                             ; preds = %9909
  %9917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9918 = call i32 @fileno(ptr noundef %9917) #12
  %9919 = call i32 @isatty(i32 noundef %9918) #12
  %9920 = icmp ne i32 %9919, 0
  br i1 %9920, label %9921, label %9938

9921:                                             ; preds = %9916
  %9922 = load i32, ptr %213, align 4, !tbaa !5
  %9923 = call ptr @__errno_location() #13
  store i32 %9922, ptr %9923, align 4, !tbaa !5
  %9924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9925 = load i32, ptr @test_count, align 4, !tbaa !5
  %9926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9927 = load i32, ptr %9926, align 4, !tbaa !5
  %9928 = call ptr @s2n_strerror(i32 noundef %9927, ptr noundef @.str.6)
  %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_debug(i32 noundef %9930, ptr noundef @.str.6)
  %9932 = call ptr @__errno_location() #13
  %9933 = load i32, ptr %9932, align 4, !tbaa !5
  %9934 = call ptr @strerror(i32 noundef %9933) #12
  %9935 = call ptr @__errno_location() #13
  %9936 = load i32, ptr %9935, align 4, !tbaa !5
  %9937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9924, ptr noundef @.str.4, i32 noundef %9925, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 419, ptr noundef %9928, ptr noundef %9931, ptr noundef %9934, i32 noundef %9936) #12
  br label %9955

9938:                                             ; preds = %9916, %9909
  %9939 = load i32, ptr %213, align 4, !tbaa !5
  %9940 = call ptr @__errno_location() #13
  store i32 %9939, ptr %9940, align 4, !tbaa !5
  %9941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9942 = load i32, ptr @test_count, align 4, !tbaa !5
  %9943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9944 = load i32, ptr %9943, align 4, !tbaa !5
  %9945 = call ptr @s2n_strerror(i32 noundef %9944, ptr noundef @.str.6)
  %9946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9947 = load i32, ptr %9946, align 4, !tbaa !5
  %9948 = call ptr @s2n_strerror_debug(i32 noundef %9947, ptr noundef @.str.6)
  %9949 = call ptr @__errno_location() #13
  %9950 = load i32, ptr %9949, align 4, !tbaa !5
  %9951 = call ptr @strerror(i32 noundef %9950) #12
  %9952 = call ptr @__errno_location() #13
  %9953 = load i32, ptr %9952, align 4, !tbaa !5
  %9954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9941, ptr noundef @.str.7, i32 noundef %9942, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 419, ptr noundef %9945, ptr noundef %9948, ptr noundef %9951, i32 noundef %9953) #12
  br label %9955

9955:                                             ; preds = %9938, %9921
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #12
  br label %9956

9956:                                             ; preds = %9955
  br label %9957

9957:                                             ; preds = %9956
  call void @exit(i32 noundef 1) #14
  unreachable

9958:                                             ; No predecessors!
  br label %9959

9959:                                             ; preds = %9958
  br label %9960

9960:                                             ; preds = %9959, %9900
  br label %9961

9961:                                             ; preds = %9960
  br label %9962

9962:                                             ; preds = %9961
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #12
  store ptr null, ptr %214, align 8, !tbaa !9
  br label %9963

9963:                                             ; preds = %9962
  %9964 = load i32, ptr @test_count, align 4, !tbaa !5
  %9965 = add nsw i32 %9964, 1
  store i32 %9965, ptr @test_count, align 4, !tbaa !5
  %9966 = load ptr, ptr %205, align 8, !tbaa !9
  %9967 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %9966, ptr noundef %214)
  %9968 = icmp eq i32 %9967, -1
  br i1 %9968, label %9969, label %10022

9969:                                             ; preds = %9963
  br label %9970

9970:                                             ; preds = %9969
  br label %9971

9971:                                             ; preds = %9970
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #12
  %9972 = call ptr @__errno_location() #13
  %9973 = load i32, ptr %9972, align 4, !tbaa !5
  store i32 %9973, ptr %215, align 4, !tbaa !5
  %9974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9975 = call i32 @s2n_print_stacktrace(ptr noundef %9974)
  %9976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9977 = trunc i8 %9976 to i1
  br i1 %9977, label %9978, label %10000

9978:                                             ; preds = %9971
  %9979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9980 = call i32 @fileno(ptr noundef %9979) #12
  %9981 = call i32 @isatty(i32 noundef %9980) #12
  %9982 = icmp ne i32 %9981, 0
  br i1 %9982, label %9983, label %10000

9983:                                             ; preds = %9978
  %9984 = load i32, ptr %215, align 4, !tbaa !5
  %9985 = call ptr @__errno_location() #13
  store i32 %9984, ptr %9985, align 4, !tbaa !5
  %9986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9987 = load i32, ptr @test_count, align 4, !tbaa !5
  %9988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9989 = load i32, ptr %9988, align 4, !tbaa !5
  %9990 = call ptr @s2n_strerror(i32 noundef %9989, ptr noundef @.str.6)
  %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_debug(i32 noundef %9992, ptr noundef @.str.6)
  %9994 = call ptr @__errno_location() #13
  %9995 = load i32, ptr %9994, align 4, !tbaa !5
  %9996 = call ptr @strerror(i32 noundef %9995) #12
  %9997 = call ptr @__errno_location() #13
  %9998 = load i32, ptr %9997, align 4, !tbaa !5
  %9999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9986, ptr noundef @.str.4, i32 noundef %9987, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 422, ptr noundef %9990, ptr noundef %9993, ptr noundef %9996, i32 noundef %9998) #12
  br label %10017

10000:                                            ; preds = %9978, %9971
  %10001 = load i32, ptr %215, align 4, !tbaa !5
  %10002 = call ptr @__errno_location() #13
  store i32 %10001, ptr %10002, align 4, !tbaa !5
  %10003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10004 = load i32, ptr @test_count, align 4, !tbaa !5
  %10005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10006 = load i32, ptr %10005, align 4, !tbaa !5
  %10007 = call ptr @s2n_strerror(i32 noundef %10006, ptr noundef @.str.6)
  %10008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10009 = load i32, ptr %10008, align 4, !tbaa !5
  %10010 = call ptr @s2n_strerror_debug(i32 noundef %10009, ptr noundef @.str.6)
  %10011 = call ptr @__errno_location() #13
  %10012 = load i32, ptr %10011, align 4, !tbaa !5
  %10013 = call ptr @strerror(i32 noundef %10012) #12
  %10014 = call ptr @__errno_location() #13
  %10015 = load i32, ptr %10014, align 4, !tbaa !5
  %10016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10003, ptr noundef @.str.7, i32 noundef %10004, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 422, ptr noundef %10007, ptr noundef %10010, ptr noundef %10013, i32 noundef %10015) #12
  br label %10017

10017:                                            ; preds = %10000, %9983
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #12
  br label %10018

10018:                                            ; preds = %10017
  br label %10019

10019:                                            ; preds = %10018
  call void @exit(i32 noundef 1) #14
  unreachable

10020:                                            ; No predecessors!
  br label %10021

10021:                                            ; preds = %10020
  br label %10022

10022:                                            ; preds = %10021, %9963
  br label %10023

10023:                                            ; preds = %10022
  br label %10024

10024:                                            ; preds = %10023
  br label %10025

10025:                                            ; preds = %10024
  %10026 = load i32, ptr @test_count, align 4, !tbaa !5
  %10027 = add nsw i32 %10026, 1
  store i32 %10027, ptr @test_count, align 4, !tbaa !5
  %10028 = load ptr, ptr %214, align 8, !tbaa !9
  %10029 = icmp eq ptr %10028, null
  br i1 %10029, label %10030, label %10083

10030:                                            ; preds = %10025
  br label %10031

10031:                                            ; preds = %10030
  br label %10032

10032:                                            ; preds = %10031
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #12
  %10033 = call ptr @__errno_location() #13
  %10034 = load i32, ptr %10033, align 4, !tbaa !5
  store i32 %10034, ptr %216, align 4, !tbaa !5
  %10035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10036 = call i32 @s2n_print_stacktrace(ptr noundef %10035)
  %10037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10038 = trunc i8 %10037 to i1
  br i1 %10038, label %10039, label %10061

10039:                                            ; preds = %10032
  %10040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10041 = call i32 @fileno(ptr noundef %10040) #12
  %10042 = call i32 @isatty(i32 noundef %10041) #12
  %10043 = icmp ne i32 %10042, 0
  br i1 %10043, label %10044, label %10061

10044:                                            ; preds = %10039
  %10045 = load i32, ptr %216, align 4, !tbaa !5
  %10046 = call ptr @__errno_location() #13
  store i32 %10045, ptr %10046, align 4, !tbaa !5
  %10047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10048 = load i32, ptr @test_count, align 4, !tbaa !5
  %10049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10050 = load i32, ptr %10049, align 4, !tbaa !5
  %10051 = call ptr @s2n_strerror(i32 noundef %10050, ptr noundef @.str.6)
  %10052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10053 = load i32, ptr %10052, align 4, !tbaa !5
  %10054 = call ptr @s2n_strerror_debug(i32 noundef %10053, ptr noundef @.str.6)
  %10055 = call ptr @__errno_location() #13
  %10056 = load i32, ptr %10055, align 4, !tbaa !5
  %10057 = call ptr @strerror(i32 noundef %10056) #12
  %10058 = call ptr @__errno_location() #13
  %10059 = load i32, ptr %10058, align 4, !tbaa !5
  %10060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10047, ptr noundef @.str.4, i32 noundef %10048, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 423, ptr noundef %10051, ptr noundef %10054, ptr noundef %10057, i32 noundef %10059) #12
  br label %10078

10061:                                            ; preds = %10039, %10032
  %10062 = load i32, ptr %216, align 4, !tbaa !5
  %10063 = call ptr @__errno_location() #13
  store i32 %10062, ptr %10063, align 4, !tbaa !5
  %10064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10065 = load i32, ptr @test_count, align 4, !tbaa !5
  %10066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10067 = load i32, ptr %10066, align 4, !tbaa !5
  %10068 = call ptr @s2n_strerror(i32 noundef %10067, ptr noundef @.str.6)
  %10069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10070 = load i32, ptr %10069, align 4, !tbaa !5
  %10071 = call ptr @s2n_strerror_debug(i32 noundef %10070, ptr noundef @.str.6)
  %10072 = call ptr @__errno_location() #13
  %10073 = load i32, ptr %10072, align 4, !tbaa !5
  %10074 = call ptr @strerror(i32 noundef %10073) #12
  %10075 = call ptr @__errno_location() #13
  %10076 = load i32, ptr %10075, align 4, !tbaa !5
  %10077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10064, ptr noundef @.str.7, i32 noundef %10065, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 423, ptr noundef %10068, ptr noundef %10071, ptr noundef %10074, i32 noundef %10076) #12
  br label %10078

10078:                                            ; preds = %10061, %10044
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #12
  br label %10079

10079:                                            ; preds = %10078
  br label %10080

10080:                                            ; preds = %10079
  call void @exit(i32 noundef 1) #14
  unreachable

10081:                                            ; No predecessors!
  br label %10082

10082:                                            ; preds = %10081
  br label %10083

10083:                                            ; preds = %10082, %10025
  br label %10084

10084:                                            ; preds = %10083
  br label %10085

10085:                                            ; preds = %10084
  br label %10086

10086:                                            ; preds = %10085
  %10087 = load i32, ptr @test_count, align 4, !tbaa !5
  %10088 = add nsw i32 %10087, 1
  store i32 %10088, ptr @test_count, align 4, !tbaa !5
  %10089 = getelementptr inbounds %struct.s2n_stuffer, ptr %206, i32 0, i32 2
  %10090 = load i32, ptr %10089, align 4, !tbaa !18
  %10091 = getelementptr inbounds %struct.s2n_stuffer, ptr %206, i32 0, i32 1
  %10092 = load i32, ptr %10091, align 8, !tbaa !21
  %10093 = sub i32 %10090, %10092
  %10094 = icmp eq i32 %10093, 0
  br i1 %10094, label %10148, label %10095

10095:                                            ; preds = %10086
  br label %10096

10096:                                            ; preds = %10095
  br label %10097

10097:                                            ; preds = %10096
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #12
  %10098 = call ptr @__errno_location() #13
  %10099 = load i32, ptr %10098, align 4, !tbaa !5
  store i32 %10099, ptr %217, align 4, !tbaa !5
  %10100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10101 = call i32 @s2n_print_stacktrace(ptr noundef %10100)
  %10102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10103 = trunc i8 %10102 to i1
  br i1 %10103, label %10104, label %10126

10104:                                            ; preds = %10097
  %10105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10106 = call i32 @fileno(ptr noundef %10105) #12
  %10107 = call i32 @isatty(i32 noundef %10106) #12
  %10108 = icmp ne i32 %10107, 0
  br i1 %10108, label %10109, label %10126

10109:                                            ; preds = %10104
  %10110 = load i32, ptr %217, align 4, !tbaa !5
  %10111 = call ptr @__errno_location() #13
  store i32 %10110, ptr %10111, align 4, !tbaa !5
  %10112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10113 = load i32, ptr @test_count, align 4, !tbaa !5
  %10114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10115 = load i32, ptr %10114, align 4, !tbaa !5
  %10116 = call ptr @s2n_strerror(i32 noundef %10115, ptr noundef @.str.6)
  %10117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10118 = load i32, ptr %10117, align 4, !tbaa !5
  %10119 = call ptr @s2n_strerror_debug(i32 noundef %10118, ptr noundef @.str.6)
  %10120 = call ptr @__errno_location() #13
  %10121 = load i32, ptr %10120, align 4, !tbaa !5
  %10122 = call ptr @strerror(i32 noundef %10121) #12
  %10123 = call ptr @__errno_location() #13
  %10124 = load i32, ptr %10123, align 4, !tbaa !5
  %10125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10112, ptr noundef @.str.4, i32 noundef %10113, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 426, ptr noundef %10116, ptr noundef %10119, ptr noundef %10122, i32 noundef %10124) #12
  br label %10143

10126:                                            ; preds = %10104, %10097
  %10127 = load i32, ptr %217, align 4, !tbaa !5
  %10128 = call ptr @__errno_location() #13
  store i32 %10127, ptr %10128, align 4, !tbaa !5
  %10129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10130 = load i32, ptr @test_count, align 4, !tbaa !5
  %10131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10132 = load i32, ptr %10131, align 4, !tbaa !5
  %10133 = call ptr @s2n_strerror(i32 noundef %10132, ptr noundef @.str.6)
  %10134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10135 = load i32, ptr %10134, align 4, !tbaa !5
  %10136 = call ptr @s2n_strerror_debug(i32 noundef %10135, ptr noundef @.str.6)
  %10137 = call ptr @__errno_location() #13
  %10138 = load i32, ptr %10137, align 4, !tbaa !5
  %10139 = call ptr @strerror(i32 noundef %10138) #12
  %10140 = call ptr @__errno_location() #13
  %10141 = load i32, ptr %10140, align 4, !tbaa !5
  %10142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10129, ptr noundef @.str.7, i32 noundef %10130, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 426, ptr noundef %10133, ptr noundef %10136, ptr noundef %10139, i32 noundef %10141) #12
  br label %10143

10143:                                            ; preds = %10126, %10109
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #12
  br label %10144

10144:                                            ; preds = %10143
  br label %10145

10145:                                            ; preds = %10144
  call void @exit(i32 noundef 1) #14
  unreachable

10146:                                            ; No predecessors!
  br label %10147

10147:                                            ; preds = %10146
  br label %10148

10148:                                            ; preds = %10147, %10086
  br label %10149

10149:                                            ; preds = %10148
  br label %10150

10150:                                            ; preds = %10149
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #12
  %10151 = load ptr, ptr %205, align 8, !tbaa !9
  %10152 = getelementptr inbounds %struct.s2n_connection, ptr %10151, i32 0, i32 31
  %10153 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10152, i32 0, i32 3
  store ptr %10153, ptr %218, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %219) #12
  %10154 = load ptr, ptr %204, align 8, !tbaa !9
  %10155 = getelementptr inbounds %struct.s2n_connection, ptr %10154, i32 0, i32 31
  %10156 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10155, i32 0, i32 3
  store ptr %10156, ptr %219, align 8, !tbaa !9
  br label %10157

10157:                                            ; preds = %10150
  %10158 = load i32, ptr @test_count, align 4, !tbaa !5
  %10159 = add nsw i32 %10158, 1
  store i32 %10159, ptr @test_count, align 4, !tbaa !5
  %10160 = load ptr, ptr %218, align 8, !tbaa !9
  %10161 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10160, i32 0, i32 0
  %10162 = load ptr, ptr %10161, align 8, !tbaa !22
  %10163 = icmp eq ptr %10162, null
  br i1 %10163, label %10164, label %10217

10164:                                            ; preds = %10157
  br label %10165

10165:                                            ; preds = %10164
  br label %10166

10166:                                            ; preds = %10165
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #12
  %10167 = call ptr @__errno_location() #13
  %10168 = load i32, ptr %10167, align 4, !tbaa !5
  store i32 %10168, ptr %220, align 4, !tbaa !5
  %10169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10170 = call i32 @s2n_print_stacktrace(ptr noundef %10169)
  %10171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10172 = trunc i8 %10171 to i1
  br i1 %10172, label %10173, label %10195

10173:                                            ; preds = %10166
  %10174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10175 = call i32 @fileno(ptr noundef %10174) #12
  %10176 = call i32 @isatty(i32 noundef %10175) #12
  %10177 = icmp ne i32 %10176, 0
  br i1 %10177, label %10178, label %10195

10178:                                            ; preds = %10173
  %10179 = load i32, ptr %220, align 4, !tbaa !5
  %10180 = call ptr @__errno_location() #13
  store i32 %10179, ptr %10180, align 4, !tbaa !5
  %10181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10182 = load i32, ptr @test_count, align 4, !tbaa !5
  %10183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10184 = load i32, ptr %10183, align 4, !tbaa !5
  %10185 = call ptr @s2n_strerror(i32 noundef %10184, ptr noundef @.str.6)
  %10186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10187 = load i32, ptr %10186, align 4, !tbaa !5
  %10188 = call ptr @s2n_strerror_debug(i32 noundef %10187, ptr noundef @.str.6)
  %10189 = call ptr @__errno_location() #13
  %10190 = load i32, ptr %10189, align 4, !tbaa !5
  %10191 = call ptr @strerror(i32 noundef %10190) #12
  %10192 = call ptr @__errno_location() #13
  %10193 = load i32, ptr %10192, align 4, !tbaa !5
  %10194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10181, ptr noundef @.str.4, i32 noundef %10182, ptr noundef @.str.64, ptr noundef @.str.3, i32 noundef 431, ptr noundef %10185, ptr noundef %10188, ptr noundef %10191, i32 noundef %10193) #12
  br label %10212

10195:                                            ; preds = %10173, %10166
  %10196 = load i32, ptr %220, align 4, !tbaa !5
  %10197 = call ptr @__errno_location() #13
  store i32 %10196, ptr %10197, align 4, !tbaa !5
  %10198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10199 = load i32, ptr @test_count, align 4, !tbaa !5
  %10200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10201 = load i32, ptr %10200, align 4, !tbaa !5
  %10202 = call ptr @s2n_strerror(i32 noundef %10201, ptr noundef @.str.6)
  %10203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10204 = load i32, ptr %10203, align 4, !tbaa !5
  %10205 = call ptr @s2n_strerror_debug(i32 noundef %10204, ptr noundef @.str.6)
  %10206 = call ptr @__errno_location() #13
  %10207 = load i32, ptr %10206, align 4, !tbaa !5
  %10208 = call ptr @strerror(i32 noundef %10207) #12
  %10209 = call ptr @__errno_location() #13
  %10210 = load i32, ptr %10209, align 4, !tbaa !5
  %10211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10198, ptr noundef @.str.7, i32 noundef %10199, ptr noundef @.str.64, ptr noundef @.str.3, i32 noundef 431, ptr noundef %10202, ptr noundef %10205, ptr noundef %10208, i32 noundef %10210) #12
  br label %10212

10212:                                            ; preds = %10195, %10178
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #12
  br label %10213

10213:                                            ; preds = %10212
  br label %10214

10214:                                            ; preds = %10213
  call void @exit(i32 noundef 1) #14
  unreachable

10215:                                            ; No predecessors!
  br label %10216

10216:                                            ; preds = %10215
  br label %10217

10217:                                            ; preds = %10216, %10157
  br label %10218

10218:                                            ; preds = %10217
  br label %10219

10219:                                            ; preds = %10218
  br label %10220

10220:                                            ; preds = %10219
  %10221 = load i32, ptr @test_count, align 4, !tbaa !5
  %10222 = add nsw i32 %10221, 1
  store i32 %10222, ptr @test_count, align 4, !tbaa !5
  %10223 = load ptr, ptr %218, align 8, !tbaa !9
  %10224 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10223, i32 0, i32 1
  %10225 = load ptr, ptr %10224, align 8, !tbaa !26
  %10226 = icmp eq ptr %10225, null
  br i1 %10226, label %10227, label %10280

10227:                                            ; preds = %10220
  br label %10228

10228:                                            ; preds = %10227
  br label %10229

10229:                                            ; preds = %10228
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #12
  %10230 = call ptr @__errno_location() #13
  %10231 = load i32, ptr %10230, align 4, !tbaa !5
  store i32 %10231, ptr %221, align 4, !tbaa !5
  %10232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10233 = call i32 @s2n_print_stacktrace(ptr noundef %10232)
  %10234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10235 = trunc i8 %10234 to i1
  br i1 %10235, label %10236, label %10258

10236:                                            ; preds = %10229
  %10237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10238 = call i32 @fileno(ptr noundef %10237) #12
  %10239 = call i32 @isatty(i32 noundef %10238) #12
  %10240 = icmp ne i32 %10239, 0
  br i1 %10240, label %10241, label %10258

10241:                                            ; preds = %10236
  %10242 = load i32, ptr %221, align 4, !tbaa !5
  %10243 = call ptr @__errno_location() #13
  store i32 %10242, ptr %10243, align 4, !tbaa !5
  %10244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10245 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %10247, ptr noundef @.str.6)
  %10249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10250 = load i32, ptr %10249, align 4, !tbaa !5
  %10251 = call ptr @s2n_strerror_debug(i32 noundef %10250, ptr noundef @.str.6)
  %10252 = call ptr @__errno_location() #13
  %10253 = load i32, ptr %10252, align 4, !tbaa !5
  %10254 = call ptr @strerror(i32 noundef %10253) #12
  %10255 = call ptr @__errno_location() #13
  %10256 = load i32, ptr %10255, align 4, !tbaa !5
  %10257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10244, ptr noundef @.str.4, i32 noundef %10245, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 432, ptr noundef %10248, ptr noundef %10251, ptr noundef %10254, i32 noundef %10256) #12
  br label %10275

10258:                                            ; preds = %10236, %10229
  %10259 = load i32, ptr %221, align 4, !tbaa !5
  %10260 = call ptr @__errno_location() #13
  store i32 %10259, ptr %10260, align 4, !tbaa !5
  %10261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10262 = load i32, ptr @test_count, align 4, !tbaa !5
  %10263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10264 = load i32, ptr %10263, align 4, !tbaa !5
  %10265 = call ptr @s2n_strerror(i32 noundef %10264, ptr noundef @.str.6)
  %10266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10267 = load i32, ptr %10266, align 4, !tbaa !5
  %10268 = call ptr @s2n_strerror_debug(i32 noundef %10267, ptr noundef @.str.6)
  %10269 = call ptr @__errno_location() #13
  %10270 = load i32, ptr %10269, align 4, !tbaa !5
  %10271 = call ptr @strerror(i32 noundef %10270) #12
  %10272 = call ptr @__errno_location() #13
  %10273 = load i32, ptr %10272, align 4, !tbaa !5
  %10274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10261, ptr noundef @.str.7, i32 noundef %10262, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 432, ptr noundef %10265, ptr noundef %10268, ptr noundef %10271, i32 noundef %10273) #12
  br label %10275

10275:                                            ; preds = %10258, %10241
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #12
  br label %10276

10276:                                            ; preds = %10275
  br label %10277

10277:                                            ; preds = %10276
  call void @exit(i32 noundef 1) #14
  unreachable

10278:                                            ; No predecessors!
  br label %10279

10279:                                            ; preds = %10278
  br label %10280

10280:                                            ; preds = %10279, %10220
  br label %10281

10281:                                            ; preds = %10280
  br label %10282

10282:                                            ; preds = %10281
  br label %10283

10283:                                            ; preds = %10282
  %10284 = load i32, ptr @test_count, align 4, !tbaa !5
  %10285 = add nsw i32 %10284, 1
  store i32 %10285, ptr @test_count, align 4, !tbaa !5
  %10286 = load ptr, ptr %218, align 8, !tbaa !9
  %10287 = load ptr, ptr %219, align 8, !tbaa !9
  %10288 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %10286, ptr noundef %10287)
  %10289 = icmp ne i32 %10288, 0
  br i1 %10289, label %10343, label %10290

10290:                                            ; preds = %10283
  br label %10291

10291:                                            ; preds = %10290
  br label %10292

10292:                                            ; preds = %10291
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #12
  %10293 = call ptr @__errno_location() #13
  %10294 = load i32, ptr %10293, align 4, !tbaa !5
  store i32 %10294, ptr %222, align 4, !tbaa !5
  %10295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10296 = call i32 @s2n_print_stacktrace(ptr noundef %10295)
  %10297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10298 = trunc i8 %10297 to i1
  br i1 %10298, label %10299, label %10321

10299:                                            ; preds = %10292
  %10300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10301 = call i32 @fileno(ptr noundef %10300) #12
  %10302 = call i32 @isatty(i32 noundef %10301) #12
  %10303 = icmp ne i32 %10302, 0
  br i1 %10303, label %10304, label %10321

10304:                                            ; preds = %10299
  %10305 = load i32, ptr %222, align 4, !tbaa !5
  %10306 = call ptr @__errno_location() #13
  store i32 %10305, ptr %10306, align 4, !tbaa !5
  %10307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10308 = load i32, ptr @test_count, align 4, !tbaa !5
  %10309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10310 = load i32, ptr %10309, align 4, !tbaa !5
  %10311 = call ptr @s2n_strerror(i32 noundef %10310, ptr noundef @.str.6)
  %10312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10313 = load i32, ptr %10312, align 4, !tbaa !5
  %10314 = call ptr @s2n_strerror_debug(i32 noundef %10313, ptr noundef @.str.6)
  %10315 = call ptr @__errno_location() #13
  %10316 = load i32, ptr %10315, align 4, !tbaa !5
  %10317 = call ptr @strerror(i32 noundef %10316) #12
  %10318 = call ptr @__errno_location() #13
  %10319 = load i32, ptr %10318, align 4, !tbaa !5
  %10320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10307, ptr noundef @.str.4, i32 noundef %10308, ptr noundef @.str.86, ptr noundef @.str.3, i32 noundef 433, ptr noundef %10311, ptr noundef %10314, ptr noundef %10317, i32 noundef %10319) #12
  br label %10338

10321:                                            ; preds = %10299, %10292
  %10322 = load i32, ptr %222, align 4, !tbaa !5
  %10323 = call ptr @__errno_location() #13
  store i32 %10322, ptr %10323, align 4, !tbaa !5
  %10324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10325 = load i32, ptr @test_count, align 4, !tbaa !5
  %10326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10327 = load i32, ptr %10326, align 4, !tbaa !5
  %10328 = call ptr @s2n_strerror(i32 noundef %10327, ptr noundef @.str.6)
  %10329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10330 = load i32, ptr %10329, align 4, !tbaa !5
  %10331 = call ptr @s2n_strerror_debug(i32 noundef %10330, ptr noundef @.str.6)
  %10332 = call ptr @__errno_location() #13
  %10333 = load i32, ptr %10332, align 4, !tbaa !5
  %10334 = call ptr @strerror(i32 noundef %10333) #12
  %10335 = call ptr @__errno_location() #13
  %10336 = load i32, ptr %10335, align 4, !tbaa !5
  %10337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10324, ptr noundef @.str.7, i32 noundef %10325, ptr noundef @.str.86, ptr noundef @.str.3, i32 noundef 433, ptr noundef %10328, ptr noundef %10331, ptr noundef %10334, i32 noundef %10336) #12
  br label %10338

10338:                                            ; preds = %10321, %10304
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #12
  br label %10339

10339:                                            ; preds = %10338
  br label %10340

10340:                                            ; preds = %10339
  call void @exit(i32 noundef 1) #14
  unreachable

10341:                                            ; No predecessors!
  br label %10342

10342:                                            ; preds = %10341
  br label %10343

10343:                                            ; preds = %10342, %10283
  br label %10344

10344:                                            ; preds = %10343
  br label %10345

10345:                                            ; preds = %10344
  br label %10346

10346:                                            ; preds = %10345
  %10347 = load i32, ptr @test_count, align 4, !tbaa !5
  %10348 = add nsw i32 %10347, 1
  store i32 %10348, ptr @test_count, align 4, !tbaa !5
  %10349 = call i32 @s2n_stuffer_free(ptr noundef %206)
  %10350 = icmp eq i32 %10349, -1
  br i1 %10350, label %10351, label %10404

10351:                                            ; preds = %10346
  br label %10352

10352:                                            ; preds = %10351
  br label %10353

10353:                                            ; preds = %10352
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #12
  %10354 = call ptr @__errno_location() #13
  %10355 = load i32, ptr %10354, align 4, !tbaa !5
  store i32 %10355, ptr %223, align 4, !tbaa !5
  %10356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10357 = call i32 @s2n_print_stacktrace(ptr noundef %10356)
  %10358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10359 = trunc i8 %10358 to i1
  br i1 %10359, label %10360, label %10382

10360:                                            ; preds = %10353
  %10361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10362 = call i32 @fileno(ptr noundef %10361) #12
  %10363 = call i32 @isatty(i32 noundef %10362) #12
  %10364 = icmp ne i32 %10363, 0
  br i1 %10364, label %10365, label %10382

10365:                                            ; preds = %10360
  %10366 = load i32, ptr %223, align 4, !tbaa !5
  %10367 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %10376 = call ptr @__errno_location() #13
  %10377 = load i32, ptr %10376, align 4, !tbaa !5
  %10378 = call ptr @strerror(i32 noundef %10377) #12
  %10379 = call ptr @__errno_location() #13
  %10380 = load i32, ptr %10379, align 4, !tbaa !5
  %10381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10368, ptr noundef @.str.4, i32 noundef %10369, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 435, ptr noundef %10372, ptr noundef %10375, ptr noundef %10378, i32 noundef %10380) #12
  br label %10399

10382:                                            ; preds = %10360, %10353
  %10383 = load i32, ptr %223, align 4, !tbaa !5
  %10384 = call ptr @__errno_location() #13
  store i32 %10383, ptr %10384, align 4, !tbaa !5
  %10385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10386 = load i32, ptr @test_count, align 4, !tbaa !5
  %10387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10388 = load i32, ptr %10387, align 4, !tbaa !5
  %10389 = call ptr @s2n_strerror(i32 noundef %10388, ptr noundef @.str.6)
  %10390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10391 = load i32, ptr %10390, align 4, !tbaa !5
  %10392 = call ptr @s2n_strerror_debug(i32 noundef %10391, ptr noundef @.str.6)
  %10393 = call ptr @__errno_location() #13
  %10394 = load i32, ptr %10393, align 4, !tbaa !5
  %10395 = call ptr @strerror(i32 noundef %10394) #12
  %10396 = call ptr @__errno_location() #13
  %10397 = load i32, ptr %10396, align 4, !tbaa !5
  %10398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10385, ptr noundef @.str.7, i32 noundef %10386, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 435, ptr noundef %10389, ptr noundef %10392, ptr noundef %10395, i32 noundef %10397) #12
  br label %10399

10399:                                            ; preds = %10382, %10365
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #12
  br label %10400

10400:                                            ; preds = %10399
  br label %10401

10401:                                            ; preds = %10400
  call void @exit(i32 noundef 1) #14
  unreachable

10402:                                            ; No predecessors!
  br label %10403

10403:                                            ; preds = %10402
  br label %10404

10404:                                            ; preds = %10403, %10346
  br label %10405

10405:                                            ; preds = %10404
  br label %10406

10406:                                            ; preds = %10405
  br label %10407

10407:                                            ; preds = %10406
  %10408 = load i32, ptr @test_count, align 4, !tbaa !5
  %10409 = add nsw i32 %10408, 1
  store i32 %10409, ptr @test_count, align 4, !tbaa !5
  %10410 = load ptr, ptr %204, align 8, !tbaa !9
  %10411 = call i32 @s2n_connection_free(ptr noundef %10410)
  %10412 = icmp eq i32 %10411, -1
  br i1 %10412, label %10413, label %10466

10413:                                            ; preds = %10407
  br label %10414

10414:                                            ; preds = %10413
  br label %10415

10415:                                            ; preds = %10414
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #12
  %10416 = call ptr @__errno_location() #13
  %10417 = load i32, ptr %10416, align 4, !tbaa !5
  store i32 %10417, ptr %224, align 4, !tbaa !5
  %10418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10419 = call i32 @s2n_print_stacktrace(ptr noundef %10418)
  %10420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10421 = trunc i8 %10420 to i1
  br i1 %10421, label %10422, label %10444

10422:                                            ; preds = %10415
  %10423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10424 = call i32 @fileno(ptr noundef %10423) #12
  %10425 = call i32 @isatty(i32 noundef %10424) #12
  %10426 = icmp ne i32 %10425, 0
  br i1 %10426, label %10427, label %10444

10427:                                            ; preds = %10422
  %10428 = load i32, ptr %224, align 4, !tbaa !5
  %10429 = call ptr @__errno_location() #13
  store i32 %10428, ptr %10429, align 4, !tbaa !5
  %10430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10431 = load i32, ptr @test_count, align 4, !tbaa !5
  %10432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10433 = load i32, ptr %10432, align 4, !tbaa !5
  %10434 = call ptr @s2n_strerror(i32 noundef %10433, ptr noundef @.str.6)
  %10435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10436 = load i32, ptr %10435, align 4, !tbaa !5
  %10437 = call ptr @s2n_strerror_debug(i32 noundef %10436, ptr noundef @.str.6)
  %10438 = call ptr @__errno_location() #13
  %10439 = load i32, ptr %10438, align 4, !tbaa !5
  %10440 = call ptr @strerror(i32 noundef %10439) #12
  %10441 = call ptr @__errno_location() #13
  %10442 = load i32, ptr %10441, align 4, !tbaa !5
  %10443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10430, ptr noundef @.str.4, i32 noundef %10431, ptr noundef @.str.66, ptr noundef @.str.3, i32 noundef 436, ptr noundef %10434, ptr noundef %10437, ptr noundef %10440, i32 noundef %10442) #12
  br label %10461

10444:                                            ; preds = %10422, %10415
  %10445 = load i32, ptr %224, align 4, !tbaa !5
  %10446 = call ptr @__errno_location() #13
  store i32 %10445, ptr %10446, align 4, !tbaa !5
  %10447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10448 = load i32, ptr @test_count, align 4, !tbaa !5
  %10449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10450 = load i32, ptr %10449, align 4, !tbaa !5
  %10451 = call ptr @s2n_strerror(i32 noundef %10450, ptr noundef @.str.6)
  %10452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10453 = load i32, ptr %10452, align 4, !tbaa !5
  %10454 = call ptr @s2n_strerror_debug(i32 noundef %10453, ptr noundef @.str.6)
  %10455 = call ptr @__errno_location() #13
  %10456 = load i32, ptr %10455, align 4, !tbaa !5
  %10457 = call ptr @strerror(i32 noundef %10456) #12
  %10458 = call ptr @__errno_location() #13
  %10459 = load i32, ptr %10458, align 4, !tbaa !5
  %10460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10447, ptr noundef @.str.7, i32 noundef %10448, ptr noundef @.str.66, ptr noundef @.str.3, i32 noundef 436, ptr noundef %10451, ptr noundef %10454, ptr noundef %10457, i32 noundef %10459) #12
  br label %10461

10461:                                            ; preds = %10444, %10427
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #12
  br label %10462

10462:                                            ; preds = %10461
  br label %10463

10463:                                            ; preds = %10462
  call void @exit(i32 noundef 1) #14
  unreachable

10464:                                            ; No predecessors!
  br label %10465

10465:                                            ; preds = %10464
  br label %10466

10466:                                            ; preds = %10465, %10407
  br label %10467

10467:                                            ; preds = %10466
  br label %10468

10468:                                            ; preds = %10467
  br label %10469

10469:                                            ; preds = %10468
  %10470 = load i32, ptr @test_count, align 4, !tbaa !5
  %10471 = add nsw i32 %10470, 1
  store i32 %10471, ptr @test_count, align 4, !tbaa !5
  %10472 = load ptr, ptr %205, align 8, !tbaa !9
  %10473 = call i32 @s2n_connection_free(ptr noundef %10472)
  %10474 = icmp eq i32 %10473, -1
  br i1 %10474, label %10475, label %10528

10475:                                            ; preds = %10469
  br label %10476

10476:                                            ; preds = %10475
  br label %10477

10477:                                            ; preds = %10476
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #12
  %10478 = call ptr @__errno_location() #13
  %10479 = load i32, ptr %10478, align 4, !tbaa !5
  store i32 %10479, ptr %225, align 4, !tbaa !5
  %10480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10481 = call i32 @s2n_print_stacktrace(ptr noundef %10480)
  %10482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10483 = trunc i8 %10482 to i1
  br i1 %10483, label %10484, label %10506

10484:                                            ; preds = %10477
  %10485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10486 = call i32 @fileno(ptr noundef %10485) #12
  %10487 = call i32 @isatty(i32 noundef %10486) #12
  %10488 = icmp ne i32 %10487, 0
  br i1 %10488, label %10489, label %10506

10489:                                            ; preds = %10484
  %10490 = load i32, ptr %225, align 4, !tbaa !5
  %10491 = call ptr @__errno_location() #13
  store i32 %10490, ptr %10491, align 4, !tbaa !5
  %10492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10493 = load i32, ptr @test_count, align 4, !tbaa !5
  %10494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10495 = load i32, ptr %10494, align 4, !tbaa !5
  %10496 = call ptr @s2n_strerror(i32 noundef %10495, ptr noundef @.str.6)
  %10497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10498 = load i32, ptr %10497, align 4, !tbaa !5
  %10499 = call ptr @s2n_strerror_debug(i32 noundef %10498, ptr noundef @.str.6)
  %10500 = call ptr @__errno_location() #13
  %10501 = load i32, ptr %10500, align 4, !tbaa !5
  %10502 = call ptr @strerror(i32 noundef %10501) #12
  %10503 = call ptr @__errno_location() #13
  %10504 = load i32, ptr %10503, align 4, !tbaa !5
  %10505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10492, ptr noundef @.str.4, i32 noundef %10493, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 437, ptr noundef %10496, ptr noundef %10499, ptr noundef %10502, i32 noundef %10504) #12
  br label %10523

10506:                                            ; preds = %10484, %10477
  %10507 = load i32, ptr %225, align 4, !tbaa !5
  %10508 = call ptr @__errno_location() #13
  store i32 %10507, ptr %10508, align 4, !tbaa !5
  %10509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10510 = load i32, ptr @test_count, align 4, !tbaa !5
  %10511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10512 = load i32, ptr %10511, align 4, !tbaa !5
  %10513 = call ptr @s2n_strerror(i32 noundef %10512, ptr noundef @.str.6)
  %10514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10515 = load i32, ptr %10514, align 4, !tbaa !5
  %10516 = call ptr @s2n_strerror_debug(i32 noundef %10515, ptr noundef @.str.6)
  %10517 = call ptr @__errno_location() #13
  %10518 = load i32, ptr %10517, align 4, !tbaa !5
  %10519 = call ptr @strerror(i32 noundef %10518) #12
  %10520 = call ptr @__errno_location() #13
  %10521 = load i32, ptr %10520, align 4, !tbaa !5
  %10522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10509, ptr noundef @.str.7, i32 noundef %10510, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 437, ptr noundef %10513, ptr noundef %10516, ptr noundef %10519, i32 noundef %10521) #12
  br label %10523

10523:                                            ; preds = %10506, %10489
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #12
  br label %10524

10524:                                            ; preds = %10523
  br label %10525

10525:                                            ; preds = %10524
  call void @exit(i32 noundef 1) #14
  unreachable

10526:                                            ; No predecessors!
  br label %10527

10527:                                            ; preds = %10526
  br label %10528

10528:                                            ; preds = %10527, %10469
  br label %10529

10529:                                            ; preds = %10528
  br label %10530

10530:                                            ; preds = %10529
  call void @llvm.lifetime.end.p0(i64 8, ptr %219) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %206) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %205) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %204) #12
  call void @llvm.lifetime.start.p0(i64 2, ptr %226) #12
  call void @llvm.memset.p0.i64(ptr align 1 %226, i8 0, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %227) #12
  %10531 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10531, ptr %227, align 8, !tbaa !9
  br label %10532

10532:                                            ; preds = %10530
  %10533 = load i32, ptr @test_count, align 4, !tbaa !5
  %10534 = add nsw i32 %10533, 1
  store i32 %10534, ptr @test_count, align 4, !tbaa !5
  %10535 = load ptr, ptr %227, align 8, !tbaa !9
  %10536 = icmp eq ptr %10535, null
  br i1 %10536, label %10537, label %10590

10537:                                            ; preds = %10532
  br label %10538

10538:                                            ; preds = %10537
  br label %10539

10539:                                            ; preds = %10538
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #12
  %10540 = call ptr @__errno_location() #13
  %10541 = load i32, ptr %10540, align 4, !tbaa !5
  store i32 %10541, ptr %228, align 4, !tbaa !5
  %10542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10543 = call i32 @s2n_print_stacktrace(ptr noundef %10542)
  %10544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10545 = trunc i8 %10544 to i1
  br i1 %10545, label %10546, label %10568

10546:                                            ; preds = %10539
  %10547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10548 = call i32 @fileno(ptr noundef %10547) #12
  %10549 = call i32 @isatty(i32 noundef %10548) #12
  %10550 = icmp ne i32 %10549, 0
  br i1 %10550, label %10551, label %10568

10551:                                            ; preds = %10546
  %10552 = load i32, ptr %228, align 4, !tbaa !5
  %10553 = call ptr @__errno_location() #13
  store i32 %10552, ptr %10553, align 4, !tbaa !5
  %10554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10555 = load i32, ptr @test_count, align 4, !tbaa !5
  %10556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10557 = load i32, ptr %10556, align 4, !tbaa !5
  %10558 = call ptr @s2n_strerror(i32 noundef %10557, ptr noundef @.str.6)
  %10559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10560 = load i32, ptr %10559, align 4, !tbaa !5
  %10561 = call ptr @s2n_strerror_debug(i32 noundef %10560, ptr noundef @.str.6)
  %10562 = call ptr @__errno_location() #13
  %10563 = load i32, ptr %10562, align 4, !tbaa !5
  %10564 = call ptr @strerror(i32 noundef %10563) #12
  %10565 = call ptr @__errno_location() #13
  %10566 = load i32, ptr %10565, align 4, !tbaa !5
  %10567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10554, ptr noundef @.str.4, i32 noundef %10555, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 446, ptr noundef %10558, ptr noundef %10561, ptr noundef %10564, i32 noundef %10566) #12
  br label %10585

10568:                                            ; preds = %10546, %10539
  %10569 = load i32, ptr %228, align 4, !tbaa !5
  %10570 = call ptr @__errno_location() #13
  store i32 %10569, ptr %10570, align 4, !tbaa !5
  %10571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10572 = load i32, ptr @test_count, align 4, !tbaa !5
  %10573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10574 = load i32, ptr %10573, align 4, !tbaa !5
  %10575 = call ptr @s2n_strerror(i32 noundef %10574, ptr noundef @.str.6)
  %10576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10577 = load i32, ptr %10576, align 4, !tbaa !5
  %10578 = call ptr @s2n_strerror_debug(i32 noundef %10577, ptr noundef @.str.6)
  %10579 = call ptr @__errno_location() #13
  %10580 = load i32, ptr %10579, align 4, !tbaa !5
  %10581 = call ptr @strerror(i32 noundef %10580) #12
  %10582 = call ptr @__errno_location() #13
  %10583 = load i32, ptr %10582, align 4, !tbaa !5
  %10584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10571, ptr noundef @.str.7, i32 noundef %10572, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 446, ptr noundef %10575, ptr noundef %10578, ptr noundef %10581, i32 noundef %10583) #12
  br label %10585

10585:                                            ; preds = %10568, %10551
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #12
  br label %10586

10586:                                            ; preds = %10585
  br label %10587

10587:                                            ; preds = %10586
  call void @exit(i32 noundef 1) #14
  unreachable

10588:                                            ; No predecessors!
  br label %10589

10589:                                            ; preds = %10588
  br label %10590

10590:                                            ; preds = %10589, %10532
  br label %10591

10591:                                            ; preds = %10590
  br label %10592

10592:                                            ; preds = %10591
  %10593 = load ptr, ptr %227, align 8, !tbaa !9
  %10594 = getelementptr inbounds %struct.s2n_connection, ptr %10593, i32 0, i32 23
  store i8 34, ptr %10594, align 4, !tbaa !63
  br label %10595

10595:                                            ; preds = %10592
  %10596 = load i32, ptr @test_count, align 4, !tbaa !5
  %10597 = add nsw i32 %10596, 1
  store i32 %10597, ptr @test_count, align 4, !tbaa !5
  %10598 = load ptr, ptr %227, align 8, !tbaa !9
  %10599 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %10598)
  %10600 = getelementptr inbounds %struct.s2n_result, ptr %229, i32 0, i32 0
  store i32 %10599, ptr %10600, align 4
  %10601 = getelementptr inbounds %struct.s2n_result, ptr %229, i32 0, i32 0
  %10602 = load i32, ptr %10601, align 4
  %10603 = call zeroext i1 @s2n_result_is_ok(i32 %10602)
  br i1 %10603, label %10657, label %10604

10604:                                            ; preds = %10595
  br label %10605

10605:                                            ; preds = %10604
  br label %10606

10606:                                            ; preds = %10605
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #12
  %10607 = call ptr @__errno_location() #13
  %10608 = load i32, ptr %10607, align 4, !tbaa !5
  store i32 %10608, ptr %230, align 4, !tbaa !5
  %10609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10610 = call i32 @s2n_print_stacktrace(ptr noundef %10609)
  %10611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10612 = trunc i8 %10611 to i1
  br i1 %10612, label %10613, label %10635

10613:                                            ; preds = %10606
  %10614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10615 = call i32 @fileno(ptr noundef %10614) #12
  %10616 = call i32 @isatty(i32 noundef %10615) #12
  %10617 = icmp ne i32 %10616, 0
  br i1 %10617, label %10618, label %10635

10618:                                            ; preds = %10613
  %10619 = load i32, ptr %230, align 4, !tbaa !5
  %10620 = call ptr @__errno_location() #13
  store i32 %10619, ptr %10620, align 4, !tbaa !5
  %10621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10622 = load i32, ptr @test_count, align 4, !tbaa !5
  %10623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10624 = load i32, ptr %10623, align 4, !tbaa !5
  %10625 = call ptr @s2n_strerror(i32 noundef %10624, ptr noundef @.str.6)
  %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_debug(i32 noundef %10627, ptr noundef @.str.6)
  %10629 = call ptr @__errno_location() #13
  %10630 = load i32, ptr %10629, align 4, !tbaa !5
  %10631 = call ptr @strerror(i32 noundef %10630) #12
  %10632 = call ptr @__errno_location() #13
  %10633 = load i32, ptr %10632, align 4, !tbaa !5
  %10634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10621, ptr noundef @.str.4, i32 noundef %10622, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 448, ptr noundef %10625, ptr noundef %10628, ptr noundef %10631, i32 noundef %10633) #12
  br label %10652

10635:                                            ; preds = %10613, %10606
  %10636 = load i32, ptr %230, align 4, !tbaa !5
  %10637 = call ptr @__errno_location() #13
  store i32 %10636, ptr %10637, align 4, !tbaa !5
  %10638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10639 = load i32, ptr @test_count, align 4, !tbaa !5
  %10640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10641 = load i32, ptr %10640, align 4, !tbaa !5
  %10642 = call ptr @s2n_strerror(i32 noundef %10641, ptr noundef @.str.6)
  %10643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10644 = load i32, ptr %10643, align 4, !tbaa !5
  %10645 = call ptr @s2n_strerror_debug(i32 noundef %10644, ptr noundef @.str.6)
  %10646 = call ptr @__errno_location() #13
  %10647 = load i32, ptr %10646, align 4, !tbaa !5
  %10648 = call ptr @strerror(i32 noundef %10647) #12
  %10649 = call ptr @__errno_location() #13
  %10650 = load i32, ptr %10649, align 4, !tbaa !5
  %10651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10638, ptr noundef @.str.7, i32 noundef %10639, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 448, ptr noundef %10642, ptr noundef %10645, ptr noundef %10648, i32 noundef %10650) #12
  br label %10652

10652:                                            ; preds = %10635, %10618
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #12
  br label %10653

10653:                                            ; preds = %10652
  br label %10654

10654:                                            ; preds = %10653
  call void @exit(i32 noundef 1) #14
  unreachable

10655:                                            ; No predecessors!
  br label %10656

10656:                                            ; preds = %10655
  br label %10657

10657:                                            ; preds = %10656, %10595
  br label %10658

10658:                                            ; preds = %10657
  br label %10659

10659:                                            ; preds = %10658
  call void @llvm.lifetime.start.p0(i64 40, ptr %231) #12
  call void @llvm.memset.p0.i64(ptr align 8 %231, i8 0, i64 40, i1 false)
  br label %10660

10660:                                            ; preds = %10659
  %10661 = load i32, ptr @test_count, align 4, !tbaa !5
  %10662 = add nsw i32 %10661, 1
  store i32 %10662, ptr @test_count, align 4, !tbaa !5
  %10663 = call i32 @s2n_stuffer_alloc(ptr noundef %231, i32 noundef 2)
  %10664 = icmp eq i32 %10663, -1
  br i1 %10664, label %10665, label %10718

10665:                                            ; preds = %10660
  br label %10666

10666:                                            ; preds = %10665
  br label %10667

10667:                                            ; preds = %10666
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #12
  %10668 = call ptr @__errno_location() #13
  %10669 = load i32, ptr %10668, align 4, !tbaa !5
  store i32 %10669, ptr %232, align 4, !tbaa !5
  %10670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10671 = call i32 @s2n_print_stacktrace(ptr noundef %10670)
  %10672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10673 = trunc i8 %10672 to i1
  br i1 %10673, label %10674, label %10696

10674:                                            ; preds = %10667
  %10675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10676 = call i32 @fileno(ptr noundef %10675) #12
  %10677 = call i32 @isatty(i32 noundef %10676) #12
  %10678 = icmp ne i32 %10677, 0
  br i1 %10678, label %10679, label %10696

10679:                                            ; preds = %10674
  %10680 = load i32, ptr %232, align 4, !tbaa !5
  %10681 = call ptr @__errno_location() #13
  store i32 %10680, ptr %10681, align 4, !tbaa !5
  %10682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10683 = load i32, ptr @test_count, align 4, !tbaa !5
  %10684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10685 = load i32, ptr %10684, align 4, !tbaa !5
  %10686 = call ptr @s2n_strerror(i32 noundef %10685, ptr noundef @.str.6)
  %10687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10688 = load i32, ptr %10687, align 4, !tbaa !5
  %10689 = call ptr @s2n_strerror_debug(i32 noundef %10688, ptr noundef @.str.6)
  %10690 = call ptr @__errno_location() #13
  %10691 = load i32, ptr %10690, align 4, !tbaa !5
  %10692 = call ptr @strerror(i32 noundef %10691) #12
  %10693 = call ptr @__errno_location() #13
  %10694 = load i32, ptr %10693, align 4, !tbaa !5
  %10695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10682, ptr noundef @.str.4, i32 noundef %10683, ptr noundef @.str.88, ptr noundef @.str.3, i32 noundef 451, ptr noundef %10686, ptr noundef %10689, ptr noundef %10692, i32 noundef %10694) #12
  br label %10713

10696:                                            ; preds = %10674, %10667
  %10697 = load i32, ptr %232, align 4, !tbaa !5
  %10698 = call ptr @__errno_location() #13
  store i32 %10697, ptr %10698, align 4, !tbaa !5
  %10699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10700 = load i32, ptr @test_count, align 4, !tbaa !5
  %10701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10702 = load i32, ptr %10701, align 4, !tbaa !5
  %10703 = call ptr @s2n_strerror(i32 noundef %10702, ptr noundef @.str.6)
  %10704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10705 = load i32, ptr %10704, align 4, !tbaa !5
  %10706 = call ptr @s2n_strerror_debug(i32 noundef %10705, ptr noundef @.str.6)
  %10707 = call ptr @__errno_location() #13
  %10708 = load i32, ptr %10707, align 4, !tbaa !5
  %10709 = call ptr @strerror(i32 noundef %10708) #12
  %10710 = call ptr @__errno_location() #13
  %10711 = load i32, ptr %10710, align 4, !tbaa !5
  %10712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10699, ptr noundef @.str.7, i32 noundef %10700, ptr noundef @.str.88, ptr noundef @.str.3, i32 noundef 451, ptr noundef %10703, ptr noundef %10706, ptr noundef %10709, i32 noundef %10711) #12
  br label %10713

10713:                                            ; preds = %10696, %10679
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #12
  br label %10714

10714:                                            ; preds = %10713
  br label %10715

10715:                                            ; preds = %10714
  call void @exit(i32 noundef 1) #14
  unreachable

10716:                                            ; No predecessors!
  br label %10717

10717:                                            ; preds = %10716
  br label %10718

10718:                                            ; preds = %10717, %10660
  br label %10719

10719:                                            ; preds = %10718
  br label %10720

10720:                                            ; preds = %10719
  br label %10721

10721:                                            ; preds = %10720
  %10722 = load i32, ptr @test_count, align 4, !tbaa !5
  %10723 = add nsw i32 %10722, 1
  store i32 %10723, ptr @test_count, align 4, !tbaa !5
  %10724 = getelementptr inbounds [2 x i8], ptr %226, i64 0, i64 0
  %10725 = call i32 @s2n_stuffer_write_bytes(ptr noundef %231, ptr noundef %10724, i32 noundef 2)
  %10726 = icmp eq i32 %10725, -1
  br i1 %10726, label %10727, label %10780

10727:                                            ; preds = %10721
  br label %10728

10728:                                            ; preds = %10727
  br label %10729

10729:                                            ; preds = %10728
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #12
  %10730 = call ptr @__errno_location() #13
  %10731 = load i32, ptr %10730, align 4, !tbaa !5
  store i32 %10731, ptr %233, align 4, !tbaa !5
  %10732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10733 = call i32 @s2n_print_stacktrace(ptr noundef %10732)
  %10734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10735 = trunc i8 %10734 to i1
  br i1 %10735, label %10736, label %10758

10736:                                            ; preds = %10729
  %10737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10738 = call i32 @fileno(ptr noundef %10737) #12
  %10739 = call i32 @isatty(i32 noundef %10738) #12
  %10740 = icmp ne i32 %10739, 0
  br i1 %10740, label %10741, label %10758

10741:                                            ; preds = %10736
  %10742 = load i32, ptr %233, align 4, !tbaa !5
  %10743 = call ptr @__errno_location() #13
  store i32 %10742, ptr %10743, align 4, !tbaa !5
  %10744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10745 = load i32, ptr @test_count, align 4, !tbaa !5
  %10746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10747 = load i32, ptr %10746, align 4, !tbaa !5
  %10748 = call ptr @s2n_strerror(i32 noundef %10747, ptr noundef @.str.6)
  %10749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10750 = load i32, ptr %10749, align 4, !tbaa !5
  %10751 = call ptr @s2n_strerror_debug(i32 noundef %10750, ptr noundef @.str.6)
  %10752 = call ptr @__errno_location() #13
  %10753 = load i32, ptr %10752, align 4, !tbaa !5
  %10754 = call ptr @strerror(i32 noundef %10753) #12
  %10755 = call ptr @__errno_location() #13
  %10756 = load i32, ptr %10755, align 4, !tbaa !5
  %10757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10744, ptr noundef @.str.4, i32 noundef %10745, ptr noundef @.str.89, ptr noundef @.str.3, i32 noundef 452, ptr noundef %10748, ptr noundef %10751, ptr noundef %10754, i32 noundef %10756) #12
  br label %10775

10758:                                            ; preds = %10736, %10729
  %10759 = load i32, ptr %233, align 4, !tbaa !5
  %10760 = call ptr @__errno_location() #13
  store i32 %10759, ptr %10760, align 4, !tbaa !5
  %10761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10762 = load i32, ptr @test_count, align 4, !tbaa !5
  %10763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10764 = load i32, ptr %10763, align 4, !tbaa !5
  %10765 = call ptr @s2n_strerror(i32 noundef %10764, ptr noundef @.str.6)
  %10766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10767 = load i32, ptr %10766, align 4, !tbaa !5
  %10768 = call ptr @s2n_strerror_debug(i32 noundef %10767, ptr noundef @.str.6)
  %10769 = call ptr @__errno_location() #13
  %10770 = load i32, ptr %10769, align 4, !tbaa !5
  %10771 = call ptr @strerror(i32 noundef %10770) #12
  %10772 = call ptr @__errno_location() #13
  %10773 = load i32, ptr %10772, align 4, !tbaa !5
  %10774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10761, ptr noundef @.str.7, i32 noundef %10762, ptr noundef @.str.89, ptr noundef @.str.3, i32 noundef 452, ptr noundef %10765, ptr noundef %10768, ptr noundef %10771, i32 noundef %10773) #12
  br label %10775

10775:                                            ; preds = %10758, %10741
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #12
  br label %10776

10776:                                            ; preds = %10775
  br label %10777

10777:                                            ; preds = %10776
  call void @exit(i32 noundef 1) #14
  unreachable

10778:                                            ; No predecessors!
  br label %10779

10779:                                            ; preds = %10778
  br label %10780

10780:                                            ; preds = %10779, %10721
  br label %10781

10781:                                            ; preds = %10780
  br label %10782

10782:                                            ; preds = %10781
  br label %10783

10783:                                            ; preds = %10782
  %10784 = load i32, ptr @test_count, align 4, !tbaa !5
  %10785 = add nsw i32 %10784, 1
  store i32 %10785, ptr @test_count, align 4, !tbaa !5
  %10786 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %10787 = load ptr, ptr %227, align 8, !tbaa !9
  %10788 = call i32 %10786(ptr noundef %10787, ptr noundef %231)
  %10789 = icmp eq i32 %10788, -1
  br i1 %10789, label %10790, label %10843

10790:                                            ; preds = %10783
  br label %10791

10791:                                            ; preds = %10790
  br label %10792

10792:                                            ; preds = %10791
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #12
  %10793 = call ptr @__errno_location() #13
  %10794 = load i32, ptr %10793, align 4, !tbaa !5
  store i32 %10794, ptr %234, align 4, !tbaa !5
  %10795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10796 = call i32 @s2n_print_stacktrace(ptr noundef %10795)
  %10797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10798 = trunc i8 %10797 to i1
  br i1 %10798, label %10799, label %10821

10799:                                            ; preds = %10792
  %10800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10801 = call i32 @fileno(ptr noundef %10800) #12
  %10802 = call i32 @isatty(i32 noundef %10801) #12
  %10803 = icmp ne i32 %10802, 0
  br i1 %10803, label %10804, label %10821

10804:                                            ; preds = %10799
  %10805 = load i32, ptr %234, align 4, !tbaa !5
  %10806 = call ptr @__errno_location() #13
  store i32 %10805, ptr %10806, align 4, !tbaa !5
  %10807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10808 = load i32, ptr @test_count, align 4, !tbaa !5
  %10809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10810 = load i32, ptr %10809, align 4, !tbaa !5
  %10811 = call ptr @s2n_strerror(i32 noundef %10810, ptr noundef @.str.6)
  %10812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10813 = load i32, ptr %10812, align 4, !tbaa !5
  %10814 = call ptr @s2n_strerror_debug(i32 noundef %10813, ptr noundef @.str.6)
  %10815 = call ptr @__errno_location() #13
  %10816 = load i32, ptr %10815, align 4, !tbaa !5
  %10817 = call ptr @strerror(i32 noundef %10816) #12
  %10818 = call ptr @__errno_location() #13
  %10819 = load i32, ptr %10818, align 4, !tbaa !5
  %10820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10807, ptr noundef @.str.4, i32 noundef %10808, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 454, ptr noundef %10811, ptr noundef %10814, ptr noundef %10817, i32 noundef %10819) #12
  br label %10838

10821:                                            ; preds = %10799, %10792
  %10822 = load i32, ptr %234, align 4, !tbaa !5
  %10823 = call ptr @__errno_location() #13
  store i32 %10822, ptr %10823, align 4, !tbaa !5
  %10824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10825 = load i32, ptr @test_count, align 4, !tbaa !5
  %10826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10827 = load i32, ptr %10826, align 4, !tbaa !5
  %10828 = call ptr @s2n_strerror(i32 noundef %10827, ptr noundef @.str.6)
  %10829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10830 = load i32, ptr %10829, align 4, !tbaa !5
  %10831 = call ptr @s2n_strerror_debug(i32 noundef %10830, ptr noundef @.str.6)
  %10832 = call ptr @__errno_location() #13
  %10833 = load i32, ptr %10832, align 4, !tbaa !5
  %10834 = call ptr @strerror(i32 noundef %10833) #12
  %10835 = call ptr @__errno_location() #13
  %10836 = load i32, ptr %10835, align 4, !tbaa !5
  %10837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10824, ptr noundef @.str.7, i32 noundef %10825, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 454, ptr noundef %10828, ptr noundef %10831, ptr noundef %10834, i32 noundef %10836) #12
  br label %10838

10838:                                            ; preds = %10821, %10804
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #12
  br label %10839

10839:                                            ; preds = %10838
  br label %10840

10840:                                            ; preds = %10839
  call void @exit(i32 noundef 1) #14
  unreachable

10841:                                            ; No predecessors!
  br label %10842

10842:                                            ; preds = %10841
  br label %10843

10843:                                            ; preds = %10842, %10783
  br label %10844

10844:                                            ; preds = %10843
  br label %10845

10845:                                            ; preds = %10844
  br label %10846

10846:                                            ; preds = %10845
  %10847 = load i32, ptr @test_count, align 4, !tbaa !5
  %10848 = add nsw i32 %10847, 1
  store i32 %10848, ptr @test_count, align 4, !tbaa !5
  %10849 = getelementptr inbounds %struct.s2n_stuffer, ptr %231, i32 0, i32 2
  %10850 = load i32, ptr %10849, align 4, !tbaa !18
  %10851 = getelementptr inbounds %struct.s2n_stuffer, ptr %231, i32 0, i32 1
  %10852 = load i32, ptr %10851, align 8, !tbaa !21
  %10853 = sub i32 %10850, %10852
  %10854 = icmp eq i32 %10853, 0
  br i1 %10854, label %10908, label %10855

10855:                                            ; preds = %10846
  br label %10856

10856:                                            ; preds = %10855
  br label %10857

10857:                                            ; preds = %10856
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #12
  %10858 = call ptr @__errno_location() #13
  %10859 = load i32, ptr %10858, align 4, !tbaa !5
  store i32 %10859, ptr %235, align 4, !tbaa !5
  %10860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10861 = call i32 @s2n_print_stacktrace(ptr noundef %10860)
  %10862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10863 = trunc i8 %10862 to i1
  br i1 %10863, label %10864, label %10886

10864:                                            ; preds = %10857
  %10865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10866 = call i32 @fileno(ptr noundef %10865) #12
  %10867 = call i32 @isatty(i32 noundef %10866) #12
  %10868 = icmp ne i32 %10867, 0
  br i1 %10868, label %10869, label %10886

10869:                                            ; preds = %10864
  %10870 = load i32, ptr %235, align 4, !tbaa !5
  %10871 = call ptr @__errno_location() #13
  store i32 %10870, ptr %10871, align 4, !tbaa !5
  %10872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10873 = load i32, ptr @test_count, align 4, !tbaa !5
  %10874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10875 = load i32, ptr %10874, align 4, !tbaa !5
  %10876 = call ptr @s2n_strerror(i32 noundef %10875, ptr noundef @.str.6)
  %10877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10878 = load i32, ptr %10877, align 4, !tbaa !5
  %10879 = call ptr @s2n_strerror_debug(i32 noundef %10878, ptr noundef @.str.6)
  %10880 = call ptr @__errno_location() #13
  %10881 = load i32, ptr %10880, align 4, !tbaa !5
  %10882 = call ptr @strerror(i32 noundef %10881) #12
  %10883 = call ptr @__errno_location() #13
  %10884 = load i32, ptr %10883, align 4, !tbaa !5
  %10885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10872, ptr noundef @.str.4, i32 noundef %10873, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 455, ptr noundef %10876, ptr noundef %10879, ptr noundef %10882, i32 noundef %10884) #12
  br label %10903

10886:                                            ; preds = %10864, %10857
  %10887 = load i32, ptr %235, align 4, !tbaa !5
  %10888 = call ptr @__errno_location() #13
  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.6)
  %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.6)
  %10897 = call ptr @__errno_location() #13
  %10898 = load i32, ptr %10897, align 4, !tbaa !5
  %10899 = call ptr @strerror(i32 noundef %10898) #12
  %10900 = call ptr @__errno_location() #13
  %10901 = load i32, ptr %10900, align 4, !tbaa !5
  %10902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10889, ptr noundef @.str.7, i32 noundef %10890, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 455, ptr noundef %10893, ptr noundef %10896, ptr noundef %10899, i32 noundef %10901) #12
  br label %10903

10903:                                            ; preds = %10886, %10869
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #12
  br label %10904

10904:                                            ; preds = %10903
  br label %10905

10905:                                            ; preds = %10904
  call void @exit(i32 noundef 1) #14
  unreachable

10906:                                            ; No predecessors!
  br label %10907

10907:                                            ; preds = %10906
  br label %10908

10908:                                            ; preds = %10907, %10846
  br label %10909

10909:                                            ; preds = %10908
  br label %10910

10910:                                            ; preds = %10909
  br label %10911

10911:                                            ; preds = %10910
  %10912 = load i32, ptr @test_count, align 4, !tbaa !5
  %10913 = add nsw i32 %10912, 1
  store i32 %10913, ptr @test_count, align 4, !tbaa !5
  %10914 = load ptr, ptr %227, align 8, !tbaa !9
  %10915 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %10914, i32 noundef 16)
  br i1 %10915, label %10969, label %10916

10916:                                            ; preds = %10911
  br label %10917

10917:                                            ; preds = %10916
  br label %10918

10918:                                            ; preds = %10917
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #12
  %10919 = call ptr @__errno_location() #13
  %10920 = load i32, ptr %10919, align 4, !tbaa !5
  store i32 %10920, ptr %236, align 4, !tbaa !5
  %10921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10922 = call i32 @s2n_print_stacktrace(ptr noundef %10921)
  %10923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10924 = trunc i8 %10923 to i1
  br i1 %10924, label %10925, label %10947

10925:                                            ; preds = %10918
  %10926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10927 = call i32 @fileno(ptr noundef %10926) #12
  %10928 = call i32 @isatty(i32 noundef %10927) #12
  %10929 = icmp ne i32 %10928, 0
  br i1 %10929, label %10930, label %10947

10930:                                            ; preds = %10925
  %10931 = load i32, ptr %236, align 4, !tbaa !5
  %10932 = call ptr @__errno_location() #13
  store i32 %10931, ptr %10932, align 4, !tbaa !5
  %10933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10934 = load i32, ptr @test_count, align 4, !tbaa !5
  %10935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10936 = load i32, ptr %10935, align 4, !tbaa !5
  %10937 = call ptr @s2n_strerror(i32 noundef %10936, ptr noundef @.str.6)
  %10938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10939 = load i32, ptr %10938, align 4, !tbaa !5
  %10940 = call ptr @s2n_strerror_debug(i32 noundef %10939, ptr noundef @.str.6)
  %10941 = call ptr @__errno_location() #13
  %10942 = load i32, ptr %10941, align 4, !tbaa !5
  %10943 = call ptr @strerror(i32 noundef %10942) #12
  %10944 = call ptr @__errno_location() #13
  %10945 = load i32, ptr %10944, align 4, !tbaa !5
  %10946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10933, ptr noundef @.str.4, i32 noundef %10934, ptr noundef @.str.90, ptr noundef @.str.3, i32 noundef 458, ptr noundef %10937, ptr noundef %10940, ptr noundef %10943, i32 noundef %10945) #12
  br label %10964

10947:                                            ; preds = %10925, %10918
  %10948 = load i32, ptr %236, align 4, !tbaa !5
  %10949 = call ptr @__errno_location() #13
  store i32 %10948, ptr %10949, align 4, !tbaa !5
  %10950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10951 = load i32, ptr @test_count, align 4, !tbaa !5
  %10952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10953 = load i32, ptr %10952, align 4, !tbaa !5
  %10954 = call ptr @s2n_strerror(i32 noundef %10953, ptr noundef @.str.6)
  %10955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10956 = load i32, ptr %10955, align 4, !tbaa !5
  %10957 = call ptr @s2n_strerror_debug(i32 noundef %10956, ptr noundef @.str.6)
  %10958 = call ptr @__errno_location() #13
  %10959 = load i32, ptr %10958, align 4, !tbaa !5
  %10960 = call ptr @strerror(i32 noundef %10959) #12
  %10961 = call ptr @__errno_location() #13
  %10962 = load i32, ptr %10961, align 4, !tbaa !5
  %10963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10950, ptr noundef @.str.7, i32 noundef %10951, ptr noundef @.str.90, ptr noundef @.str.3, i32 noundef 458, ptr noundef %10954, ptr noundef %10957, ptr noundef %10960, i32 noundef %10962) #12
  br label %10964

10964:                                            ; preds = %10947, %10930
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #12
  br label %10965

10965:                                            ; preds = %10964
  br label %10966

10966:                                            ; preds = %10965
  call void @exit(i32 noundef 1) #14
  unreachable

10967:                                            ; No predecessors!
  br label %10968

10968:                                            ; preds = %10967
  br label %10969

10969:                                            ; preds = %10968, %10911
  br label %10970

10970:                                            ; preds = %10969
  br label %10971

10971:                                            ; preds = %10970
  br label %10972

10972:                                            ; preds = %10971
  %10973 = load i32, ptr @test_count, align 4, !tbaa !5
  %10974 = add nsw i32 %10973, 1
  store i32 %10974, ptr @test_count, align 4, !tbaa !5
  %10975 = call i32 @s2n_stuffer_free(ptr noundef %231)
  %10976 = icmp eq i32 %10975, -1
  br i1 %10976, label %10977, label %11030

10977:                                            ; preds = %10972
  br label %10978

10978:                                            ; preds = %10977
  br label %10979

10979:                                            ; preds = %10978
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #12
  %10980 = call ptr @__errno_location() #13
  %10981 = load i32, ptr %10980, align 4, !tbaa !5
  store i32 %10981, ptr %237, align 4, !tbaa !5
  %10982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10983 = call i32 @s2n_print_stacktrace(ptr noundef %10982)
  %10984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10985 = trunc i8 %10984 to i1
  br i1 %10985, label %10986, label %11008

10986:                                            ; preds = %10979
  %10987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10988 = call i32 @fileno(ptr noundef %10987) #12
  %10989 = call i32 @isatty(i32 noundef %10988) #12
  %10990 = icmp ne i32 %10989, 0
  br i1 %10990, label %10991, label %11008

10991:                                            ; preds = %10986
  %10992 = load i32, ptr %237, align 4, !tbaa !5
  %10993 = call ptr @__errno_location() #13
  store i32 %10992, ptr %10993, align 4, !tbaa !5
  %10994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10995 = load i32, ptr @test_count, align 4, !tbaa !5
  %10996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10997 = load i32, ptr %10996, align 4, !tbaa !5
  %10998 = call ptr @s2n_strerror(i32 noundef %10997, ptr noundef @.str.6)
  %10999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11000 = load i32, ptr %10999, align 4, !tbaa !5
  %11001 = call ptr @s2n_strerror_debug(i32 noundef %11000, ptr noundef @.str.6)
  %11002 = call ptr @__errno_location() #13
  %11003 = load i32, ptr %11002, align 4, !tbaa !5
  %11004 = call ptr @strerror(i32 noundef %11003) #12
  %11005 = call ptr @__errno_location() #13
  %11006 = load i32, ptr %11005, align 4, !tbaa !5
  %11007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10994, ptr noundef @.str.4, i32 noundef %10995, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 460, ptr noundef %10998, ptr noundef %11001, ptr noundef %11004, i32 noundef %11006) #12
  br label %11025

11008:                                            ; preds = %10986, %10979
  %11009 = load i32, ptr %237, align 4, !tbaa !5
  %11010 = call ptr @__errno_location() #13
  store i32 %11009, ptr %11010, align 4, !tbaa !5
  %11011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11012 = load i32, ptr @test_count, align 4, !tbaa !5
  %11013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11014 = load i32, ptr %11013, align 4, !tbaa !5
  %11015 = call ptr @s2n_strerror(i32 noundef %11014, ptr noundef @.str.6)
  %11016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11017 = load i32, ptr %11016, align 4, !tbaa !5
  %11018 = call ptr @s2n_strerror_debug(i32 noundef %11017, ptr noundef @.str.6)
  %11019 = call ptr @__errno_location() #13
  %11020 = load i32, ptr %11019, align 4, !tbaa !5
  %11021 = call ptr @strerror(i32 noundef %11020) #12
  %11022 = call ptr @__errno_location() #13
  %11023 = load i32, ptr %11022, align 4, !tbaa !5
  %11024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11011, ptr noundef @.str.7, i32 noundef %11012, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 460, ptr noundef %11015, ptr noundef %11018, ptr noundef %11021, i32 noundef %11023) #12
  br label %11025

11025:                                            ; preds = %11008, %10991
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #12
  br label %11026

11026:                                            ; preds = %11025
  br label %11027

11027:                                            ; preds = %11026
  call void @exit(i32 noundef 1) #14
  unreachable

11028:                                            ; No predecessors!
  br label %11029

11029:                                            ; preds = %11028
  br label %11030

11030:                                            ; preds = %11029, %10972
  br label %11031

11031:                                            ; preds = %11030
  br label %11032

11032:                                            ; preds = %11031
  br label %11033

11033:                                            ; preds = %11032
  %11034 = load i32, ptr @test_count, align 4, !tbaa !5
  %11035 = add nsw i32 %11034, 1
  store i32 %11035, ptr @test_count, align 4, !tbaa !5
  %11036 = load ptr, ptr %227, align 8, !tbaa !9
  %11037 = call i32 @s2n_connection_free(ptr noundef %11036)
  %11038 = icmp eq i32 %11037, -1
  br i1 %11038, label %11039, label %11092

11039:                                            ; preds = %11033
  br label %11040

11040:                                            ; preds = %11039
  br label %11041

11041:                                            ; preds = %11040
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #12
  %11042 = call ptr @__errno_location() #13
  %11043 = load i32, ptr %11042, align 4, !tbaa !5
  store i32 %11043, ptr %238, align 4, !tbaa !5
  %11044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11045 = call i32 @s2n_print_stacktrace(ptr noundef %11044)
  %11046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11047 = trunc i8 %11046 to i1
  br i1 %11047, label %11048, label %11070

11048:                                            ; preds = %11041
  %11049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11050 = call i32 @fileno(ptr noundef %11049) #12
  %11051 = call i32 @isatty(i32 noundef %11050) #12
  %11052 = icmp ne i32 %11051, 0
  br i1 %11052, label %11053, label %11070

11053:                                            ; preds = %11048
  %11054 = load i32, ptr %238, align 4, !tbaa !5
  %11055 = call ptr @__errno_location() #13
  store i32 %11054, ptr %11055, align 4, !tbaa !5
  %11056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11057 = load i32, ptr @test_count, align 4, !tbaa !5
  %11058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11059 = load i32, ptr %11058, align 4, !tbaa !5
  %11060 = call ptr @s2n_strerror(i32 noundef %11059, ptr noundef @.str.6)
  %11061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11062 = load i32, ptr %11061, align 4, !tbaa !5
  %11063 = call ptr @s2n_strerror_debug(i32 noundef %11062, ptr noundef @.str.6)
  %11064 = call ptr @__errno_location() #13
  %11065 = load i32, ptr %11064, align 4, !tbaa !5
  %11066 = call ptr @strerror(i32 noundef %11065) #12
  %11067 = call ptr @__errno_location() #13
  %11068 = load i32, ptr %11067, align 4, !tbaa !5
  %11069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11056, ptr noundef @.str.4, i32 noundef %11057, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 461, ptr noundef %11060, ptr noundef %11063, ptr noundef %11066, i32 noundef %11068) #12
  br label %11087

11070:                                            ; preds = %11048, %11041
  %11071 = load i32, ptr %238, align 4, !tbaa !5
  %11072 = call ptr @__errno_location() #13
  store i32 %11071, ptr %11072, align 4, !tbaa !5
  %11073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11074 = load i32, ptr @test_count, align 4, !tbaa !5
  %11075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11076 = load i32, ptr %11075, align 4, !tbaa !5
  %11077 = call ptr @s2n_strerror(i32 noundef %11076, ptr noundef @.str.6)
  %11078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11079 = load i32, ptr %11078, align 4, !tbaa !5
  %11080 = call ptr @s2n_strerror_debug(i32 noundef %11079, ptr noundef @.str.6)
  %11081 = call ptr @__errno_location() #13
  %11082 = load i32, ptr %11081, align 4, !tbaa !5
  %11083 = call ptr @strerror(i32 noundef %11082) #12
  %11084 = call ptr @__errno_location() #13
  %11085 = load i32, ptr %11084, align 4, !tbaa !5
  %11086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11073, ptr noundef @.str.7, i32 noundef %11074, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 461, ptr noundef %11077, ptr noundef %11080, ptr noundef %11083, i32 noundef %11085) #12
  br label %11087

11087:                                            ; preds = %11070, %11053
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #12
  br label %11088

11088:                                            ; preds = %11087
  br label %11089

11089:                                            ; preds = %11088
  call void @exit(i32 noundef 1) #14
  unreachable

11090:                                            ; No predecessors!
  br label %11091

11091:                                            ; preds = %11090
  br label %11092

11092:                                            ; preds = %11091, %11033
  br label %11093

11093:                                            ; preds = %11092
  br label %11094

11094:                                            ; preds = %11093
  call void @llvm.lifetime.end.p0(i64 40, ptr %231) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr %226) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #12
  %11095 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11095, ptr %239, align 8, !tbaa !9
  br label %11096

11096:                                            ; preds = %11094
  %11097 = load i32, ptr @test_count, align 4, !tbaa !5
  %11098 = add nsw i32 %11097, 1
  store i32 %11098, ptr @test_count, align 4, !tbaa !5
  %11099 = load ptr, ptr %239, align 8, !tbaa !9
  %11100 = icmp eq ptr %11099, null
  br i1 %11100, label %11101, label %11154

11101:                                            ; preds = %11096
  br label %11102

11102:                                            ; preds = %11101
  br label %11103

11103:                                            ; preds = %11102
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #12
  %11104 = call ptr @__errno_location() #13
  %11105 = load i32, ptr %11104, align 4, !tbaa !5
  store i32 %11105, ptr %240, align 4, !tbaa !5
  %11106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11107 = call i32 @s2n_print_stacktrace(ptr noundef %11106)
  %11108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11109 = trunc i8 %11108 to i1
  br i1 %11109, label %11110, label %11132

11110:                                            ; preds = %11103
  %11111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11112 = call i32 @fileno(ptr noundef %11111) #12
  %11113 = call i32 @isatty(i32 noundef %11112) #12
  %11114 = icmp ne i32 %11113, 0
  br i1 %11114, label %11115, label %11132

11115:                                            ; preds = %11110
  %11116 = load i32, ptr %240, align 4, !tbaa !5
  %11117 = call ptr @__errno_location() #13
  store i32 %11116, ptr %11117, align 4, !tbaa !5
  %11118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11119 = load i32, ptr @test_count, align 4, !tbaa !5
  %11120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11121 = load i32, ptr %11120, align 4, !tbaa !5
  %11122 = call ptr @s2n_strerror(i32 noundef %11121, ptr noundef @.str.6)
  %11123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11124 = load i32, ptr %11123, align 4, !tbaa !5
  %11125 = call ptr @s2n_strerror_debug(i32 noundef %11124, ptr noundef @.str.6)
  %11126 = call ptr @__errno_location() #13
  %11127 = load i32, ptr %11126, align 4, !tbaa !5
  %11128 = call ptr @strerror(i32 noundef %11127) #12
  %11129 = call ptr @__errno_location() #13
  %11130 = load i32, ptr %11129, align 4, !tbaa !5
  %11131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11118, ptr noundef @.str.4, i32 noundef %11119, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 468, ptr noundef %11122, ptr noundef %11125, ptr noundef %11128, i32 noundef %11130) #12
  br label %11149

11132:                                            ; preds = %11110, %11103
  %11133 = load i32, ptr %240, align 4, !tbaa !5
  %11134 = call ptr @__errno_location() #13
  store i32 %11133, ptr %11134, align 4, !tbaa !5
  %11135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11136 = load i32, ptr @test_count, align 4, !tbaa !5
  %11137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11138 = load i32, ptr %11137, align 4, !tbaa !5
  %11139 = call ptr @s2n_strerror(i32 noundef %11138, ptr noundef @.str.6)
  %11140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11141 = load i32, ptr %11140, align 4, !tbaa !5
  %11142 = call ptr @s2n_strerror_debug(i32 noundef %11141, ptr noundef @.str.6)
  %11143 = call ptr @__errno_location() #13
  %11144 = load i32, ptr %11143, align 4, !tbaa !5
  %11145 = call ptr @strerror(i32 noundef %11144) #12
  %11146 = call ptr @__errno_location() #13
  %11147 = load i32, ptr %11146, align 4, !tbaa !5
  %11148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11135, ptr noundef @.str.7, i32 noundef %11136, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 468, ptr noundef %11139, ptr noundef %11142, ptr noundef %11145, i32 noundef %11147) #12
  br label %11149

11149:                                            ; preds = %11132, %11115
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #12
  br label %11150

11150:                                            ; preds = %11149
  br label %11151

11151:                                            ; preds = %11150
  call void @exit(i32 noundef 1) #14
  unreachable

11152:                                            ; No predecessors!
  br label %11153

11153:                                            ; preds = %11152
  br label %11154

11154:                                            ; preds = %11153, %11096
  br label %11155

11155:                                            ; preds = %11154
  br label %11156

11156:                                            ; preds = %11155
  %11157 = load ptr, ptr %239, align 8, !tbaa !9
  %11158 = getelementptr inbounds %struct.s2n_connection, ptr %11157, i32 0, i32 23
  store i8 34, ptr %11158, align 4, !tbaa !63
  br label %11159

11159:                                            ; preds = %11156
  %11160 = load i32, ptr @test_count, align 4, !tbaa !5
  %11161 = add nsw i32 %11160, 1
  store i32 %11161, ptr @test_count, align 4, !tbaa !5
  %11162 = load ptr, ptr %239, align 8, !tbaa !9
  %11163 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %11162)
  %11164 = getelementptr inbounds %struct.s2n_result, ptr %241, i32 0, i32 0
  store i32 %11163, ptr %11164, align 4
  %11165 = getelementptr inbounds %struct.s2n_result, ptr %241, i32 0, i32 0
  %11166 = load i32, ptr %11165, align 4
  %11167 = call zeroext i1 @s2n_result_is_ok(i32 %11166)
  br i1 %11167, label %11221, label %11168

11168:                                            ; preds = %11159
  br label %11169

11169:                                            ; preds = %11168
  br label %11170

11170:                                            ; preds = %11169
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #12
  %11171 = call ptr @__errno_location() #13
  %11172 = load i32, ptr %11171, align 4, !tbaa !5
  store i32 %11172, ptr %242, align 4, !tbaa !5
  %11173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11174 = call i32 @s2n_print_stacktrace(ptr noundef %11173)
  %11175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11176 = trunc i8 %11175 to i1
  br i1 %11176, label %11177, label %11199

11177:                                            ; preds = %11170
  %11178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11179 = call i32 @fileno(ptr noundef %11178) #12
  %11180 = call i32 @isatty(i32 noundef %11179) #12
  %11181 = icmp ne i32 %11180, 0
  br i1 %11181, label %11182, label %11199

11182:                                            ; preds = %11177
  %11183 = load i32, ptr %242, align 4, !tbaa !5
  %11184 = call ptr @__errno_location() #13
  store i32 %11183, ptr %11184, align 4, !tbaa !5
  %11185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11186 = load i32, ptr @test_count, align 4, !tbaa !5
  %11187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11188 = load i32, ptr %11187, align 4, !tbaa !5
  %11189 = call ptr @s2n_strerror(i32 noundef %11188, ptr noundef @.str.6)
  %11190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11191 = load i32, ptr %11190, align 4, !tbaa !5
  %11192 = call ptr @s2n_strerror_debug(i32 noundef %11191, ptr noundef @.str.6)
  %11193 = call ptr @__errno_location() #13
  %11194 = load i32, ptr %11193, align 4, !tbaa !5
  %11195 = call ptr @strerror(i32 noundef %11194) #12
  %11196 = call ptr @__errno_location() #13
  %11197 = load i32, ptr %11196, align 4, !tbaa !5
  %11198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11185, ptr noundef @.str.4, i32 noundef %11186, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 470, ptr noundef %11189, ptr noundef %11192, ptr noundef %11195, i32 noundef %11197) #12
  br label %11216

11199:                                            ; preds = %11177, %11170
  %11200 = load i32, ptr %242, align 4, !tbaa !5
  %11201 = call ptr @__errno_location() #13
  store i32 %11200, ptr %11201, align 4, !tbaa !5
  %11202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11203 = load i32, ptr @test_count, align 4, !tbaa !5
  %11204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11205 = load i32, ptr %11204, align 4, !tbaa !5
  %11206 = call ptr @s2n_strerror(i32 noundef %11205, ptr noundef @.str.6)
  %11207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11208 = load i32, ptr %11207, align 4, !tbaa !5
  %11209 = call ptr @s2n_strerror_debug(i32 noundef %11208, ptr noundef @.str.6)
  %11210 = call ptr @__errno_location() #13
  %11211 = load i32, ptr %11210, align 4, !tbaa !5
  %11212 = call ptr @strerror(i32 noundef %11211) #12
  %11213 = call ptr @__errno_location() #13
  %11214 = load i32, ptr %11213, align 4, !tbaa !5
  %11215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11202, ptr noundef @.str.7, i32 noundef %11203, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 470, ptr noundef %11206, ptr noundef %11209, ptr noundef %11212, i32 noundef %11214) #12
  br label %11216

11216:                                            ; preds = %11199, %11182
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #12
  br label %11217

11217:                                            ; preds = %11216
  br label %11218

11218:                                            ; preds = %11217
  call void @exit(i32 noundef 1) #14
  unreachable

11219:                                            ; No predecessors!
  br label %11220

11220:                                            ; preds = %11219
  br label %11221

11221:                                            ; preds = %11220, %11159
  br label %11222

11222:                                            ; preds = %11221
  br label %11223

11223:                                            ; preds = %11222
  call void @llvm.lifetime.start.p0(i64 8, ptr %243) #12
  store ptr null, ptr %243, align 8, !tbaa !9
  br label %11224

11224:                                            ; preds = %11223
  %11225 = load i32, ptr @test_count, align 4, !tbaa !5
  %11226 = add nsw i32 %11225, 1
  store i32 %11226, ptr @test_count, align 4, !tbaa !5
  %11227 = load ptr, ptr %239, align 8, !tbaa !9
  %11228 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %11227, ptr noundef %243)
  %11229 = icmp eq i32 %11228, -1
  br i1 %11229, label %11230, label %11283

11230:                                            ; preds = %11224
  br label %11231

11231:                                            ; preds = %11230
  br label %11232

11232:                                            ; preds = %11231
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #12
  %11233 = call ptr @__errno_location() #13
  %11234 = load i32, ptr %11233, align 4, !tbaa !5
  store i32 %11234, ptr %244, align 4, !tbaa !5
  %11235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11236 = call i32 @s2n_print_stacktrace(ptr noundef %11235)
  %11237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11238 = trunc i8 %11237 to i1
  br i1 %11238, label %11239, label %11261

11239:                                            ; preds = %11232
  %11240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11241 = call i32 @fileno(ptr noundef %11240) #12
  %11242 = call i32 @isatty(i32 noundef %11241) #12
  %11243 = icmp ne i32 %11242, 0
  br i1 %11243, label %11244, label %11261

11244:                                            ; preds = %11239
  %11245 = load i32, ptr %244, align 4, !tbaa !5
  %11246 = call ptr @__errno_location() #13
  store i32 %11245, ptr %11246, align 4, !tbaa !5
  %11247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11248 = load i32, ptr @test_count, align 4, !tbaa !5
  %11249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11250 = load i32, ptr %11249, align 4, !tbaa !5
  %11251 = call ptr @s2n_strerror(i32 noundef %11250, ptr noundef @.str.6)
  %11252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11253 = load i32, ptr %11252, align 4, !tbaa !5
  %11254 = call ptr @s2n_strerror_debug(i32 noundef %11253, ptr noundef @.str.6)
  %11255 = call ptr @__errno_location() #13
  %11256 = load i32, ptr %11255, align 4, !tbaa !5
  %11257 = call ptr @strerror(i32 noundef %11256) #12
  %11258 = call ptr @__errno_location() #13
  %11259 = load i32, ptr %11258, align 4, !tbaa !5
  %11260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11247, ptr noundef @.str.4, i32 noundef %11248, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 473, ptr noundef %11251, ptr noundef %11254, ptr noundef %11257, i32 noundef %11259) #12
  br label %11278

11261:                                            ; preds = %11239, %11232
  %11262 = load i32, ptr %244, align 4, !tbaa !5
  %11263 = call ptr @__errno_location() #13
  store i32 %11262, ptr %11263, align 4, !tbaa !5
  %11264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11265 = load i32, ptr @test_count, align 4, !tbaa !5
  %11266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11267 = load i32, ptr %11266, align 4, !tbaa !5
  %11268 = call ptr @s2n_strerror(i32 noundef %11267, ptr noundef @.str.6)
  %11269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11270 = load i32, ptr %11269, align 4, !tbaa !5
  %11271 = call ptr @s2n_strerror_debug(i32 noundef %11270, ptr noundef @.str.6)
  %11272 = call ptr @__errno_location() #13
  %11273 = load i32, ptr %11272, align 4, !tbaa !5
  %11274 = call ptr @strerror(i32 noundef %11273) #12
  %11275 = call ptr @__errno_location() #13
  %11276 = load i32, ptr %11275, align 4, !tbaa !5
  %11277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11264, ptr noundef @.str.7, i32 noundef %11265, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 473, ptr noundef %11268, ptr noundef %11271, ptr noundef %11274, i32 noundef %11276) #12
  br label %11278

11278:                                            ; preds = %11261, %11244
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #12
  br label %11279

11279:                                            ; preds = %11278
  br label %11280

11280:                                            ; preds = %11279
  call void @exit(i32 noundef 1) #14
  unreachable

11281:                                            ; No predecessors!
  br label %11282

11282:                                            ; preds = %11281
  br label %11283

11283:                                            ; preds = %11282, %11224
  br label %11284

11284:                                            ; preds = %11283
  br label %11285

11285:                                            ; preds = %11284
  br label %11286

11286:                                            ; preds = %11285
  %11287 = load i32, ptr @test_count, align 4, !tbaa !5
  %11288 = add nsw i32 %11287, 1
  store i32 %11288, ptr @test_count, align 4, !tbaa !5
  %11289 = load ptr, ptr %243, align 8, !tbaa !9
  %11290 = icmp eq ptr %11289, null
  br i1 %11290, label %11291, label %11344

11291:                                            ; preds = %11286
  br label %11292

11292:                                            ; preds = %11291
  br label %11293

11293:                                            ; preds = %11292
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #12
  %11294 = call ptr @__errno_location() #13
  %11295 = load i32, ptr %11294, align 4, !tbaa !5
  store i32 %11295, ptr %245, align 4, !tbaa !5
  %11296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11297 = call i32 @s2n_print_stacktrace(ptr noundef %11296)
  %11298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11299 = trunc i8 %11298 to i1
  br i1 %11299, label %11300, label %11322

11300:                                            ; preds = %11293
  %11301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11302 = call i32 @fileno(ptr noundef %11301) #12
  %11303 = call i32 @isatty(i32 noundef %11302) #12
  %11304 = icmp ne i32 %11303, 0
  br i1 %11304, label %11305, label %11322

11305:                                            ; preds = %11300
  %11306 = load i32, ptr %245, align 4, !tbaa !5
  %11307 = call ptr @__errno_location() #13
  store i32 %11306, ptr %11307, align 4, !tbaa !5
  %11308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11309 = load i32, ptr @test_count, align 4, !tbaa !5
  %11310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11311 = load i32, ptr %11310, align 4, !tbaa !5
  %11312 = call ptr @s2n_strerror(i32 noundef %11311, ptr noundef @.str.6)
  %11313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11314 = load i32, ptr %11313, align 4, !tbaa !5
  %11315 = call ptr @s2n_strerror_debug(i32 noundef %11314, ptr noundef @.str.6)
  %11316 = call ptr @__errno_location() #13
  %11317 = load i32, ptr %11316, align 4, !tbaa !5
  %11318 = call ptr @strerror(i32 noundef %11317) #12
  %11319 = call ptr @__errno_location() #13
  %11320 = load i32, ptr %11319, align 4, !tbaa !5
  %11321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11308, ptr noundef @.str.4, i32 noundef %11309, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 474, ptr noundef %11312, ptr noundef %11315, ptr noundef %11318, i32 noundef %11320) #12
  br label %11339

11322:                                            ; preds = %11300, %11293
  %11323 = load i32, ptr %245, align 4, !tbaa !5
  %11324 = call ptr @__errno_location() #13
  store i32 %11323, ptr %11324, align 4, !tbaa !5
  %11325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11326 = load i32, ptr @test_count, align 4, !tbaa !5
  %11327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11328 = load i32, ptr %11327, align 4, !tbaa !5
  %11329 = call ptr @s2n_strerror(i32 noundef %11328, ptr noundef @.str.6)
  %11330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11331 = load i32, ptr %11330, align 4, !tbaa !5
  %11332 = call ptr @s2n_strerror_debug(i32 noundef %11331, ptr noundef @.str.6)
  %11333 = call ptr @__errno_location() #13
  %11334 = load i32, ptr %11333, align 4, !tbaa !5
  %11335 = call ptr @strerror(i32 noundef %11334) #12
  %11336 = call ptr @__errno_location() #13
  %11337 = load i32, ptr %11336, align 4, !tbaa !5
  %11338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11325, ptr noundef @.str.7, i32 noundef %11326, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 474, ptr noundef %11329, ptr noundef %11332, ptr noundef %11335, i32 noundef %11337) #12
  br label %11339

11339:                                            ; preds = %11322, %11305
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #12
  br label %11340

11340:                                            ; preds = %11339
  br label %11341

11341:                                            ; preds = %11340
  call void @exit(i32 noundef 1) #14
  unreachable

11342:                                            ; No predecessors!
  br label %11343

11343:                                            ; preds = %11342
  br label %11344

11344:                                            ; preds = %11343, %11286
  br label %11345

11345:                                            ; preds = %11344
  br label %11346

11346:                                            ; preds = %11345
  br label %11347

11347:                                            ; preds = %11346
  %11348 = load i32, ptr @test_count, align 4, !tbaa !5
  %11349 = add nsw i32 %11348, 1
  store i32 %11349, ptr @test_count, align 4, !tbaa !5
  %11350 = load ptr, ptr %243, align 8, !tbaa !9
  %11351 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %11350, i32 0, i32 0
  %11352 = load i8, ptr %11351, align 8, !tbaa !64
  %11353 = zext i8 %11352 to i32
  %11354 = icmp sge i32 %11353, 2
  br i1 %11354, label %11408, label %11355

11355:                                            ; preds = %11347
  br label %11356

11356:                                            ; preds = %11355
  br label %11357

11357:                                            ; preds = %11356
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #12
  %11358 = call ptr @__errno_location() #13
  %11359 = load i32, ptr %11358, align 4, !tbaa !5
  store i32 %11359, ptr %246, align 4, !tbaa !5
  %11360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11361 = call i32 @s2n_print_stacktrace(ptr noundef %11360)
  %11362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11363 = trunc i8 %11362 to i1
  br i1 %11363, label %11364, label %11386

11364:                                            ; preds = %11357
  %11365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11366 = call i32 @fileno(ptr noundef %11365) #12
  %11367 = call i32 @isatty(i32 noundef %11366) #12
  %11368 = icmp ne i32 %11367, 0
  br i1 %11368, label %11369, label %11386

11369:                                            ; preds = %11364
  %11370 = load i32, ptr %246, align 4, !tbaa !5
  %11371 = call ptr @__errno_location() #13
  store i32 %11370, ptr %11371, align 4, !tbaa !5
  %11372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11373 = load i32, ptr @test_count, align 4, !tbaa !5
  %11374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11375 = load i32, ptr %11374, align 4, !tbaa !5
  %11376 = call ptr @s2n_strerror(i32 noundef %11375, ptr noundef @.str.6)
  %11377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11378 = load i32, ptr %11377, align 4, !tbaa !5
  %11379 = call ptr @s2n_strerror_debug(i32 noundef %11378, ptr noundef @.str.6)
  %11380 = call ptr @__errno_location() #13
  %11381 = load i32, ptr %11380, align 4, !tbaa !5
  %11382 = call ptr @strerror(i32 noundef %11381) #12
  %11383 = call ptr @__errno_location() #13
  %11384 = load i32, ptr %11383, align 4, !tbaa !5
  %11385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11372, ptr noundef @.str.4, i32 noundef %11373, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 475, ptr noundef %11376, ptr noundef %11379, ptr noundef %11382, i32 noundef %11384) #12
  br label %11403

11386:                                            ; preds = %11364, %11357
  %11387 = load i32, ptr %246, align 4, !tbaa !5
  %11388 = call ptr @__errno_location() #13
  store i32 %11387, ptr %11388, align 4, !tbaa !5
  %11389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11390 = load i32, ptr @test_count, align 4, !tbaa !5
  %11391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11392 = load i32, ptr %11391, align 4, !tbaa !5
  %11393 = call ptr @s2n_strerror(i32 noundef %11392, ptr noundef @.str.6)
  %11394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11395 = load i32, ptr %11394, align 4, !tbaa !5
  %11396 = call ptr @s2n_strerror_debug(i32 noundef %11395, ptr noundef @.str.6)
  %11397 = call ptr @__errno_location() #13
  %11398 = load i32, ptr %11397, align 4, !tbaa !5
  %11399 = call ptr @strerror(i32 noundef %11398) #12
  %11400 = call ptr @__errno_location() #13
  %11401 = load i32, ptr %11400, align 4, !tbaa !5
  %11402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11389, ptr noundef @.str.7, i32 noundef %11390, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 475, ptr noundef %11393, ptr noundef %11396, ptr noundef %11399, i32 noundef %11401) #12
  br label %11403

11403:                                            ; preds = %11386, %11369
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #12
  br label %11404

11404:                                            ; preds = %11403
  br label %11405

11405:                                            ; preds = %11404
  call void @exit(i32 noundef 1) #14
  unreachable

11406:                                            ; No predecessors!
  br label %11407

11407:                                            ; preds = %11406
  br label %11408

11408:                                            ; preds = %11407, %11347
  br label %11409

11409:                                            ; preds = %11408
  br label %11410

11410:                                            ; preds = %11409
  call void @llvm.lifetime.start.p0(i64 16, ptr %247) #12
  %11411 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %247, i32 0, i32 0
  %11412 = load ptr, ptr %243, align 8, !tbaa !9
  %11413 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %11412, i32 0, i32 1
  %11414 = load ptr, ptr %11413, align 8, !tbaa !24
  %11415 = getelementptr inbounds ptr, ptr %11414, i64 1
  %11416 = load ptr, ptr %11415, align 8, !tbaa !9
  store ptr %11416, ptr %11411, align 8, !tbaa !22
  %11417 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %247, i32 0, i32 1
  store ptr null, ptr %11417, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr %248) #12
  call void @llvm.memset.p0.i64(ptr align 8 %248, i8 0, i64 40, i1 false)
  br label %11418

11418:                                            ; preds = %11410
  %11419 = load i32, ptr @test_count, align 4, !tbaa !5
  %11420 = add nsw i32 %11419, 1
  store i32 %11420, ptr @test_count, align 4, !tbaa !5
  %11421 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %248, i32 noundef 0)
  %11422 = icmp eq i32 %11421, -1
  br i1 %11422, label %11423, label %11476

11423:                                            ; preds = %11418
  br label %11424

11424:                                            ; preds = %11423
  br label %11425

11425:                                            ; preds = %11424
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #12
  %11426 = call ptr @__errno_location() #13
  %11427 = load i32, ptr %11426, align 4, !tbaa !5
  store i32 %11427, ptr %249, align 4, !tbaa !5
  %11428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11429 = call i32 @s2n_print_stacktrace(ptr noundef %11428)
  %11430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11431 = trunc i8 %11430 to i1
  br i1 %11431, label %11432, label %11454

11432:                                            ; preds = %11425
  %11433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11434 = call i32 @fileno(ptr noundef %11433) #12
  %11435 = call i32 @isatty(i32 noundef %11434) #12
  %11436 = icmp ne i32 %11435, 0
  br i1 %11436, label %11437, label %11454

11437:                                            ; preds = %11432
  %11438 = load i32, ptr %249, align 4, !tbaa !5
  %11439 = call ptr @__errno_location() #13
  store i32 %11438, ptr %11439, align 4, !tbaa !5
  %11440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11441 = load i32, ptr @test_count, align 4, !tbaa !5
  %11442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11443 = load i32, ptr %11442, align 4, !tbaa !5
  %11444 = call ptr @s2n_strerror(i32 noundef %11443, ptr noundef @.str.6)
  %11445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11446 = load i32, ptr %11445, align 4, !tbaa !5
  %11447 = call ptr @s2n_strerror_debug(i32 noundef %11446, ptr noundef @.str.6)
  %11448 = call ptr @__errno_location() #13
  %11449 = load i32, ptr %11448, align 4, !tbaa !5
  %11450 = call ptr @strerror(i32 noundef %11449) #12
  %11451 = call ptr @__errno_location() #13
  %11452 = load i32, ptr %11451, align 4, !tbaa !5
  %11453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11440, ptr noundef @.str.4, i32 noundef %11441, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 480, ptr noundef %11444, ptr noundef %11447, ptr noundef %11450, i32 noundef %11452) #12
  br label %11471

11454:                                            ; preds = %11432, %11425
  %11455 = load i32, ptr %249, align 4, !tbaa !5
  %11456 = call ptr @__errno_location() #13
  store i32 %11455, ptr %11456, align 4, !tbaa !5
  %11457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11458 = load i32, ptr @test_count, align 4, !tbaa !5
  %11459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11460 = load i32, ptr %11459, align 4, !tbaa !5
  %11461 = call ptr @s2n_strerror(i32 noundef %11460, ptr noundef @.str.6)
  %11462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11463 = load i32, ptr %11462, align 4, !tbaa !5
  %11464 = call ptr @s2n_strerror_debug(i32 noundef %11463, ptr noundef @.str.6)
  %11465 = call ptr @__errno_location() #13
  %11466 = load i32, ptr %11465, align 4, !tbaa !5
  %11467 = call ptr @strerror(i32 noundef %11466) #12
  %11468 = call ptr @__errno_location() #13
  %11469 = load i32, ptr %11468, align 4, !tbaa !5
  %11470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11457, ptr noundef @.str.7, i32 noundef %11458, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 480, ptr noundef %11461, ptr noundef %11464, ptr noundef %11467, i32 noundef %11469) #12
  br label %11471

11471:                                            ; preds = %11454, %11437
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #12
  br label %11472

11472:                                            ; preds = %11471
  br label %11473

11473:                                            ; preds = %11472
  call void @exit(i32 noundef 1) #14
  unreachable

11474:                                            ; No predecessors!
  br label %11475

11475:                                            ; preds = %11474
  br label %11476

11476:                                            ; preds = %11475, %11418
  br label %11477

11477:                                            ; preds = %11476
  br label %11478

11478:                                            ; preds = %11477
  call void @llvm.lifetime.start.p0(i64 16, ptr %250) #12
  call void @llvm.memset.p0.i64(ptr align 8 %250, i8 0, i64 16, i1 false)
  br label %11479

11479:                                            ; preds = %11478
  %11480 = load i32, ptr @test_count, align 4, !tbaa !5
  %11481 = add nsw i32 %11480, 1
  store i32 %11481, ptr @test_count, align 4, !tbaa !5
  %11482 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %248, ptr noundef %250)
  %11483 = icmp eq i32 %11482, -1
  br i1 %11483, label %11484, label %11537

11484:                                            ; preds = %11479
  br label %11485

11485:                                            ; preds = %11484
  br label %11486

11486:                                            ; preds = %11485
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #12
  %11487 = call ptr @__errno_location() #13
  %11488 = load i32, ptr %11487, align 4, !tbaa !5
  store i32 %11488, ptr %251, align 4, !tbaa !5
  %11489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11490 = call i32 @s2n_print_stacktrace(ptr noundef %11489)
  %11491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11492 = trunc i8 %11491 to i1
  br i1 %11492, label %11493, label %11515

11493:                                            ; preds = %11486
  %11494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11495 = call i32 @fileno(ptr noundef %11494) #12
  %11496 = call i32 @isatty(i32 noundef %11495) #12
  %11497 = icmp ne i32 %11496, 0
  br i1 %11497, label %11498, label %11515

11498:                                            ; preds = %11493
  %11499 = load i32, ptr %251, align 4, !tbaa !5
  %11500 = call ptr @__errno_location() #13
  store i32 %11499, ptr %11500, align 4, !tbaa !5
  %11501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11502 = load i32, ptr @test_count, align 4, !tbaa !5
  %11503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11504 = load i32, ptr %11503, align 4, !tbaa !5
  %11505 = call ptr @s2n_strerror(i32 noundef %11504, ptr noundef @.str.6)
  %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_debug(i32 noundef %11507, ptr noundef @.str.6)
  %11509 = call ptr @__errno_location() #13
  %11510 = load i32, ptr %11509, align 4, !tbaa !5
  %11511 = call ptr @strerror(i32 noundef %11510) #12
  %11512 = call ptr @__errno_location() #13
  %11513 = load i32, ptr %11512, align 4, !tbaa !5
  %11514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11501, ptr noundef @.str.4, i32 noundef %11502, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 483, ptr noundef %11505, ptr noundef %11508, ptr noundef %11511, i32 noundef %11513) #12
  br label %11532

11515:                                            ; preds = %11493, %11486
  %11516 = load i32, ptr %251, align 4, !tbaa !5
  %11517 = call ptr @__errno_location() #13
  store i32 %11516, ptr %11517, align 4, !tbaa !5
  %11518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11519 = load i32, ptr @test_count, align 4, !tbaa !5
  %11520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11521 = load i32, ptr %11520, align 4, !tbaa !5
  %11522 = call ptr @s2n_strerror(i32 noundef %11521, ptr noundef @.str.6)
  %11523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11524 = load i32, ptr %11523, align 4, !tbaa !5
  %11525 = call ptr @s2n_strerror_debug(i32 noundef %11524, ptr noundef @.str.6)
  %11526 = call ptr @__errno_location() #13
  %11527 = load i32, ptr %11526, align 4, !tbaa !5
  %11528 = call ptr @strerror(i32 noundef %11527) #12
  %11529 = call ptr @__errno_location() #13
  %11530 = load i32, ptr %11529, align 4, !tbaa !5
  %11531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11518, ptr noundef @.str.7, i32 noundef %11519, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 483, ptr noundef %11522, ptr noundef %11525, ptr noundef %11528, i32 noundef %11530) #12
  br label %11532

11532:                                            ; preds = %11515, %11498
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #12
  br label %11533

11533:                                            ; preds = %11532
  br label %11534

11534:                                            ; preds = %11533
  call void @exit(i32 noundef 1) #14
  unreachable

11535:                                            ; No predecessors!
  br label %11536

11536:                                            ; preds = %11535
  br label %11537

11537:                                            ; preds = %11536, %11479
  br label %11538

11538:                                            ; preds = %11537
  br label %11539

11539:                                            ; preds = %11538
  br label %11540

11540:                                            ; preds = %11539
  %11541 = load i32, ptr @test_count, align 4, !tbaa !5
  %11542 = add nsw i32 %11541, 1
  store i32 %11542, ptr @test_count, align 4, !tbaa !5
  %11543 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %247, ptr noundef %248)
  %11544 = icmp eq i32 %11543, -1
  br i1 %11544, label %11545, label %11598

11545:                                            ; preds = %11540
  br label %11546

11546:                                            ; preds = %11545
  br label %11547

11547:                                            ; preds = %11546
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #12
  %11548 = call ptr @__errno_location() #13
  %11549 = load i32, ptr %11548, align 4, !tbaa !5
  store i32 %11549, ptr %252, align 4, !tbaa !5
  %11550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11551 = call i32 @s2n_print_stacktrace(ptr noundef %11550)
  %11552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11553 = trunc i8 %11552 to i1
  br i1 %11553, label %11554, label %11576

11554:                                            ; preds = %11547
  %11555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11556 = call i32 @fileno(ptr noundef %11555) #12
  %11557 = call i32 @isatty(i32 noundef %11556) #12
  %11558 = icmp ne i32 %11557, 0
  br i1 %11558, label %11559, label %11576

11559:                                            ; preds = %11554
  %11560 = load i32, ptr %252, align 4, !tbaa !5
  %11561 = call ptr @__errno_location() #13
  store i32 %11560, ptr %11561, align 4, !tbaa !5
  %11562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11563 = load i32, ptr @test_count, align 4, !tbaa !5
  %11564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11565 = load i32, ptr %11564, align 4, !tbaa !5
  %11566 = call ptr @s2n_strerror(i32 noundef %11565, ptr noundef @.str.6)
  %11567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11568 = load i32, ptr %11567, align 4, !tbaa !5
  %11569 = call ptr @s2n_strerror_debug(i32 noundef %11568, ptr noundef @.str.6)
  %11570 = call ptr @__errno_location() #13
  %11571 = load i32, ptr %11570, align 4, !tbaa !5
  %11572 = call ptr @strerror(i32 noundef %11571) #12
  %11573 = call ptr @__errno_location() #13
  %11574 = load i32, ptr %11573, align 4, !tbaa !5
  %11575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11562, ptr noundef @.str.4, i32 noundef %11563, ptr noundef @.str.93, ptr noundef @.str.3, i32 noundef 484, ptr noundef %11566, ptr noundef %11569, ptr noundef %11572, i32 noundef %11574) #12
  br label %11593

11576:                                            ; preds = %11554, %11547
  %11577 = load i32, ptr %252, align 4, !tbaa !5
  %11578 = call ptr @__errno_location() #13
  store i32 %11577, ptr %11578, align 4, !tbaa !5
  %11579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11580 = load i32, ptr @test_count, align 4, !tbaa !5
  %11581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11582 = load i32, ptr %11581, align 4, !tbaa !5
  %11583 = call ptr @s2n_strerror(i32 noundef %11582, ptr noundef @.str.6)
  %11584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11585 = load i32, ptr %11584, align 4, !tbaa !5
  %11586 = call ptr @s2n_strerror_debug(i32 noundef %11585, ptr noundef @.str.6)
  %11587 = call ptr @__errno_location() #13
  %11588 = load i32, ptr %11587, align 4, !tbaa !5
  %11589 = call ptr @strerror(i32 noundef %11588) #12
  %11590 = call ptr @__errno_location() #13
  %11591 = load i32, ptr %11590, align 4, !tbaa !5
  %11592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11579, ptr noundef @.str.7, i32 noundef %11580, ptr noundef @.str.93, ptr noundef @.str.3, i32 noundef 484, ptr noundef %11583, ptr noundef %11586, ptr noundef %11589, i32 noundef %11591) #12
  br label %11593

11593:                                            ; preds = %11576, %11559
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #12
  br label %11594

11594:                                            ; preds = %11593
  br label %11595

11595:                                            ; preds = %11594
  call void @exit(i32 noundef 1) #14
  unreachable

11596:                                            ; No predecessors!
  br label %11597

11597:                                            ; preds = %11596
  br label %11598

11598:                                            ; preds = %11597, %11540
  br label %11599

11599:                                            ; preds = %11598
  br label %11600

11600:                                            ; preds = %11599
  br label %11601

11601:                                            ; preds = %11600
  %11602 = load i32, ptr @test_count, align 4, !tbaa !5
  %11603 = add nsw i32 %11602, 1
  store i32 %11603, ptr @test_count, align 4, !tbaa !5
  %11604 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %250)
  %11605 = icmp eq i32 %11604, -1
  br i1 %11605, label %11606, label %11659

11606:                                            ; preds = %11601
  br label %11607

11607:                                            ; preds = %11606
  br label %11608

11608:                                            ; preds = %11607
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #12
  %11609 = call ptr @__errno_location() #13
  %11610 = load i32, ptr %11609, align 4, !tbaa !5
  store i32 %11610, ptr %253, align 4, !tbaa !5
  %11611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11612 = call i32 @s2n_print_stacktrace(ptr noundef %11611)
  %11613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11614 = trunc i8 %11613 to i1
  br i1 %11614, label %11615, label %11637

11615:                                            ; preds = %11608
  %11616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11617 = call i32 @fileno(ptr noundef %11616) #12
  %11618 = call i32 @isatty(i32 noundef %11617) #12
  %11619 = icmp ne i32 %11618, 0
  br i1 %11619, label %11620, label %11637

11620:                                            ; preds = %11615
  %11621 = load i32, ptr %253, align 4, !tbaa !5
  %11622 = call ptr @__errno_location() #13
  store i32 %11621, ptr %11622, align 4, !tbaa !5
  %11623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11624 = load i32, ptr @test_count, align 4, !tbaa !5
  %11625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11626 = load i32, ptr %11625, align 4, !tbaa !5
  %11627 = call ptr @s2n_strerror(i32 noundef %11626, ptr noundef @.str.6)
  %11628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11629 = load i32, ptr %11628, align 4, !tbaa !5
  %11630 = call ptr @s2n_strerror_debug(i32 noundef %11629, ptr noundef @.str.6)
  %11631 = call ptr @__errno_location() #13
  %11632 = load i32, ptr %11631, align 4, !tbaa !5
  %11633 = call ptr @strerror(i32 noundef %11632) #12
  %11634 = call ptr @__errno_location() #13
  %11635 = load i32, ptr %11634, align 4, !tbaa !5
  %11636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11623, ptr noundef @.str.4, i32 noundef %11624, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 485, ptr noundef %11627, ptr noundef %11630, ptr noundef %11633, i32 noundef %11635) #12
  br label %11654

11637:                                            ; preds = %11615, %11608
  %11638 = load i32, ptr %253, align 4, !tbaa !5
  %11639 = call ptr @__errno_location() #13
  store i32 %11638, ptr %11639, align 4, !tbaa !5
  %11640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11641 = load i32, ptr @test_count, align 4, !tbaa !5
  %11642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11643 = load i32, ptr %11642, align 4, !tbaa !5
  %11644 = call ptr @s2n_strerror(i32 noundef %11643, ptr noundef @.str.6)
  %11645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11646 = load i32, ptr %11645, align 4, !tbaa !5
  %11647 = call ptr @s2n_strerror_debug(i32 noundef %11646, ptr noundef @.str.6)
  %11648 = call ptr @__errno_location() #13
  %11649 = load i32, ptr %11648, align 4, !tbaa !5
  %11650 = call ptr @strerror(i32 noundef %11649) #12
  %11651 = call ptr @__errno_location() #13
  %11652 = load i32, ptr %11651, align 4, !tbaa !5
  %11653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11640, ptr noundef @.str.7, i32 noundef %11641, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 485, ptr noundef %11644, ptr noundef %11647, ptr noundef %11650, i32 noundef %11652) #12
  br label %11654

11654:                                            ; preds = %11637, %11620
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #12
  br label %11655

11655:                                            ; preds = %11654
  br label %11656

11656:                                            ; preds = %11655
  call void @exit(i32 noundef 1) #14
  unreachable

11657:                                            ; No predecessors!
  br label %11658

11658:                                            ; preds = %11657
  br label %11659

11659:                                            ; preds = %11658, %11601
  br label %11660

11660:                                            ; preds = %11659
  br label %11661

11661:                                            ; preds = %11660
  br label %11662

11662:                                            ; preds = %11661
  %11663 = load i32, ptr @test_count, align 4, !tbaa !5
  %11664 = add nsw i32 %11663, 1
  store i32 %11664, ptr @test_count, align 4, !tbaa !5
  %11665 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %11666 = load ptr, ptr %239, align 8, !tbaa !9
  %11667 = call i32 %11665(ptr noundef %11666, ptr noundef %248)
  %11668 = icmp eq i32 %11667, -1
  br i1 %11668, label %11669, label %11722

11669:                                            ; preds = %11662
  br label %11670

11670:                                            ; preds = %11669
  br label %11671

11671:                                            ; preds = %11670
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #12
  %11672 = call ptr @__errno_location() #13
  %11673 = load i32, ptr %11672, align 4, !tbaa !5
  store i32 %11673, ptr %254, align 4, !tbaa !5
  %11674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11675 = call i32 @s2n_print_stacktrace(ptr noundef %11674)
  %11676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11677 = trunc i8 %11676 to i1
  br i1 %11677, label %11678, label %11700

11678:                                            ; preds = %11671
  %11679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11680 = call i32 @fileno(ptr noundef %11679) #12
  %11681 = call i32 @isatty(i32 noundef %11680) #12
  %11682 = icmp ne i32 %11681, 0
  br i1 %11682, label %11683, label %11700

11683:                                            ; preds = %11678
  %11684 = load i32, ptr %254, align 4, !tbaa !5
  %11685 = call ptr @__errno_location() #13
  store i32 %11684, ptr %11685, align 4, !tbaa !5
  %11686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11687 = load i32, ptr @test_count, align 4, !tbaa !5
  %11688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11689 = load i32, ptr %11688, align 4, !tbaa !5
  %11690 = call ptr @s2n_strerror(i32 noundef %11689, ptr noundef @.str.6)
  %11691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11692 = load i32, ptr %11691, align 4, !tbaa !5
  %11693 = call ptr @s2n_strerror_debug(i32 noundef %11692, ptr noundef @.str.6)
  %11694 = call ptr @__errno_location() #13
  %11695 = load i32, ptr %11694, align 4, !tbaa !5
  %11696 = call ptr @strerror(i32 noundef %11695) #12
  %11697 = call ptr @__errno_location() #13
  %11698 = load i32, ptr %11697, align 4, !tbaa !5
  %11699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11686, ptr noundef @.str.4, i32 noundef %11687, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 487, ptr noundef %11690, ptr noundef %11693, ptr noundef %11696, i32 noundef %11698) #12
  br label %11717

11700:                                            ; preds = %11678, %11671
  %11701 = load i32, ptr %254, align 4, !tbaa !5
  %11702 = call ptr @__errno_location() #13
  store i32 %11701, ptr %11702, align 4, !tbaa !5
  %11703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11704 = load i32, ptr @test_count, align 4, !tbaa !5
  %11705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11706 = load i32, ptr %11705, align 4, !tbaa !5
  %11707 = call ptr @s2n_strerror(i32 noundef %11706, ptr noundef @.str.6)
  %11708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11709 = load i32, ptr %11708, align 4, !tbaa !5
  %11710 = call ptr @s2n_strerror_debug(i32 noundef %11709, ptr noundef @.str.6)
  %11711 = call ptr @__errno_location() #13
  %11712 = load i32, ptr %11711, align 4, !tbaa !5
  %11713 = call ptr @strerror(i32 noundef %11712) #12
  %11714 = call ptr @__errno_location() #13
  %11715 = load i32, ptr %11714, align 4, !tbaa !5
  %11716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11703, ptr noundef @.str.7, i32 noundef %11704, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 487, ptr noundef %11707, ptr noundef %11710, ptr noundef %11713, i32 noundef %11715) #12
  br label %11717

11717:                                            ; preds = %11700, %11683
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #12
  br label %11718

11718:                                            ; preds = %11717
  br label %11719

11719:                                            ; preds = %11718
  call void @exit(i32 noundef 1) #14
  unreachable

11720:                                            ; No predecessors!
  br label %11721

11721:                                            ; preds = %11720
  br label %11722

11722:                                            ; preds = %11721, %11662
  br label %11723

11723:                                            ; preds = %11722
  br label %11724

11724:                                            ; preds = %11723
  br label %11725

11725:                                            ; preds = %11724
  %11726 = load i32, ptr @test_count, align 4, !tbaa !5
  %11727 = add nsw i32 %11726, 1
  store i32 %11727, ptr @test_count, align 4, !tbaa !5
  %11728 = getelementptr inbounds %struct.s2n_stuffer, ptr %248, i32 0, i32 2
  %11729 = load i32, ptr %11728, align 4, !tbaa !18
  %11730 = getelementptr inbounds %struct.s2n_stuffer, ptr %248, i32 0, i32 1
  %11731 = load i32, ptr %11730, align 8, !tbaa !21
  %11732 = sub i32 %11729, %11731
  %11733 = icmp eq i32 %11732, 0
  br i1 %11733, label %11787, label %11734

11734:                                            ; preds = %11725
  br label %11735

11735:                                            ; preds = %11734
  br label %11736

11736:                                            ; preds = %11735
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #12
  %11737 = call ptr @__errno_location() #13
  %11738 = load i32, ptr %11737, align 4, !tbaa !5
  store i32 %11738, ptr %255, align 4, !tbaa !5
  %11739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11740 = call i32 @s2n_print_stacktrace(ptr noundef %11739)
  %11741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11742 = trunc i8 %11741 to i1
  br i1 %11742, label %11743, label %11765

11743:                                            ; preds = %11736
  %11744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11745 = call i32 @fileno(ptr noundef %11744) #12
  %11746 = call i32 @isatty(i32 noundef %11745) #12
  %11747 = icmp ne i32 %11746, 0
  br i1 %11747, label %11748, label %11765

11748:                                            ; preds = %11743
  %11749 = load i32, ptr %255, align 4, !tbaa !5
  %11750 = call ptr @__errno_location() #13
  store i32 %11749, ptr %11750, align 4, !tbaa !5
  %11751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11752 = load i32, ptr @test_count, align 4, !tbaa !5
  %11753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11754 = load i32, ptr %11753, align 4, !tbaa !5
  %11755 = call ptr @s2n_strerror(i32 noundef %11754, ptr noundef @.str.6)
  %11756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11757 = load i32, ptr %11756, align 4, !tbaa !5
  %11758 = call ptr @s2n_strerror_debug(i32 noundef %11757, ptr noundef @.str.6)
  %11759 = call ptr @__errno_location() #13
  %11760 = load i32, ptr %11759, align 4, !tbaa !5
  %11761 = call ptr @strerror(i32 noundef %11760) #12
  %11762 = call ptr @__errno_location() #13
  %11763 = load i32, ptr %11762, align 4, !tbaa !5
  %11764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11751, ptr noundef @.str.4, i32 noundef %11752, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 488, ptr noundef %11755, ptr noundef %11758, ptr noundef %11761, i32 noundef %11763) #12
  br label %11782

11765:                                            ; preds = %11743, %11736
  %11766 = load i32, ptr %255, align 4, !tbaa !5
  %11767 = call ptr @__errno_location() #13
  store i32 %11766, ptr %11767, align 4, !tbaa !5
  %11768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11769 = load i32, ptr @test_count, align 4, !tbaa !5
  %11770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11771 = load i32, ptr %11770, align 4, !tbaa !5
  %11772 = call ptr @s2n_strerror(i32 noundef %11771, ptr noundef @.str.6)
  %11773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11774 = load i32, ptr %11773, align 4, !tbaa !5
  %11775 = call ptr @s2n_strerror_debug(i32 noundef %11774, ptr noundef @.str.6)
  %11776 = call ptr @__errno_location() #13
  %11777 = load i32, ptr %11776, align 4, !tbaa !5
  %11778 = call ptr @strerror(i32 noundef %11777) #12
  %11779 = call ptr @__errno_location() #13
  %11780 = load i32, ptr %11779, align 4, !tbaa !5
  %11781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11768, ptr noundef @.str.7, i32 noundef %11769, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 488, ptr noundef %11772, ptr noundef %11775, ptr noundef %11778, i32 noundef %11780) #12
  br label %11782

11782:                                            ; preds = %11765, %11748
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #12
  br label %11783

11783:                                            ; preds = %11782
  br label %11784

11784:                                            ; preds = %11783
  call void @exit(i32 noundef 1) #14
  unreachable

11785:                                            ; No predecessors!
  br label %11786

11786:                                            ; preds = %11785
  br label %11787

11787:                                            ; preds = %11786, %11725
  br label %11788

11788:                                            ; preds = %11787
  br label %11789

11789:                                            ; preds = %11788
  br label %11790

11790:                                            ; preds = %11789
  %11791 = load i32, ptr @test_count, align 4, !tbaa !5
  %11792 = add nsw i32 %11791, 1
  store i32 %11792, ptr @test_count, align 4, !tbaa !5
  %11793 = load ptr, ptr %239, align 8, !tbaa !9
  %11794 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %11793, i32 noundef 16)
  br i1 %11794, label %11795, label %11848

11795:                                            ; preds = %11790
  br label %11796

11796:                                            ; preds = %11795
  br label %11797

11797:                                            ; preds = %11796
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #12
  %11798 = call ptr @__errno_location() #13
  %11799 = load i32, ptr %11798, align 4, !tbaa !5
  store i32 %11799, ptr %256, align 4, !tbaa !5
  %11800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11801 = call i32 @s2n_print_stacktrace(ptr noundef %11800)
  %11802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11803 = trunc i8 %11802 to i1
  br i1 %11803, label %11804, label %11826

11804:                                            ; preds = %11797
  %11805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11806 = call i32 @fileno(ptr noundef %11805) #12
  %11807 = call i32 @isatty(i32 noundef %11806) #12
  %11808 = icmp ne i32 %11807, 0
  br i1 %11808, label %11809, label %11826

11809:                                            ; preds = %11804
  %11810 = load i32, ptr %256, align 4, !tbaa !5
  %11811 = call ptr @__errno_location() #13
  store i32 %11810, ptr %11811, align 4, !tbaa !5
  %11812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11813 = load i32, ptr @test_count, align 4, !tbaa !5
  %11814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11815 = load i32, ptr %11814, align 4, !tbaa !5
  %11816 = call ptr @s2n_strerror(i32 noundef %11815, ptr noundef @.str.6)
  %11817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11818 = load i32, ptr %11817, align 4, !tbaa !5
  %11819 = call ptr @s2n_strerror_debug(i32 noundef %11818, ptr noundef @.str.6)
  %11820 = call ptr @__errno_location() #13
  %11821 = load i32, ptr %11820, align 4, !tbaa !5
  %11822 = call ptr @strerror(i32 noundef %11821) #12
  %11823 = call ptr @__errno_location() #13
  %11824 = load i32, ptr %11823, align 4, !tbaa !5
  %11825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11812, ptr noundef @.str.4, i32 noundef %11813, ptr noundef @.str.95, ptr noundef @.str.3, i32 noundef 491, ptr noundef %11816, ptr noundef %11819, ptr noundef %11822, i32 noundef %11824) #12
  br label %11843

11826:                                            ; preds = %11804, %11797
  %11827 = load i32, ptr %256, align 4, !tbaa !5
  %11828 = call ptr @__errno_location() #13
  store i32 %11827, ptr %11828, align 4, !tbaa !5
  %11829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11830 = load i32, ptr @test_count, align 4, !tbaa !5
  %11831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11832 = load i32, ptr %11831, align 4, !tbaa !5
  %11833 = call ptr @s2n_strerror(i32 noundef %11832, ptr noundef @.str.6)
  %11834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11835 = load i32, ptr %11834, align 4, !tbaa !5
  %11836 = call ptr @s2n_strerror_debug(i32 noundef %11835, ptr noundef @.str.6)
  %11837 = call ptr @__errno_location() #13
  %11838 = load i32, ptr %11837, align 4, !tbaa !5
  %11839 = call ptr @strerror(i32 noundef %11838) #12
  %11840 = call ptr @__errno_location() #13
  %11841 = load i32, ptr %11840, align 4, !tbaa !5
  %11842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11829, ptr noundef @.str.7, i32 noundef %11830, ptr noundef @.str.95, ptr noundef @.str.3, i32 noundef 491, ptr noundef %11833, ptr noundef %11836, ptr noundef %11839, i32 noundef %11841) #12
  br label %11843

11843:                                            ; preds = %11826, %11809
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #12
  br label %11844

11844:                                            ; preds = %11843
  br label %11845

11845:                                            ; preds = %11844
  call void @exit(i32 noundef 1) #14
  unreachable

11846:                                            ; No predecessors!
  br label %11847

11847:                                            ; preds = %11846
  br label %11848

11848:                                            ; preds = %11847, %11790
  br label %11849

11849:                                            ; preds = %11848
  br label %11850

11850:                                            ; preds = %11849
  call void @llvm.lifetime.start.p0(i64 8, ptr %257) #12
  %11851 = load ptr, ptr %239, align 8, !tbaa !9
  %11852 = getelementptr inbounds %struct.s2n_connection, ptr %11851, i32 0, i32 31
  %11853 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11852, i32 0, i32 3
  store ptr %11853, ptr %257, align 8, !tbaa !9
  br label %11854

11854:                                            ; preds = %11850
  %11855 = load i32, ptr @test_count, align 4, !tbaa !5
  %11856 = add nsw i32 %11855, 1
  store i32 %11856, ptr @test_count, align 4, !tbaa !5
  %11857 = load ptr, ptr %257, align 8, !tbaa !9
  %11858 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11857, i32 0, i32 0
  %11859 = load ptr, ptr %11858, align 8, !tbaa !22
  %11860 = icmp eq ptr %11859, null
  br i1 %11860, label %11861, label %11914

11861:                                            ; preds = %11854
  br label %11862

11862:                                            ; preds = %11861
  br label %11863

11863:                                            ; preds = %11862
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #12
  %11864 = call ptr @__errno_location() #13
  %11865 = load i32, ptr %11864, align 4, !tbaa !5
  store i32 %11865, ptr %258, align 4, !tbaa !5
  %11866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11867 = call i32 @s2n_print_stacktrace(ptr noundef %11866)
  %11868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11869 = trunc i8 %11868 to i1
  br i1 %11869, label %11870, label %11892

11870:                                            ; preds = %11863
  %11871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11872 = call i32 @fileno(ptr noundef %11871) #12
  %11873 = call i32 @isatty(i32 noundef %11872) #12
  %11874 = icmp ne i32 %11873, 0
  br i1 %11874, label %11875, label %11892

11875:                                            ; preds = %11870
  %11876 = load i32, ptr %258, align 4, !tbaa !5
  %11877 = call ptr @__errno_location() #13
  store i32 %11876, ptr %11877, align 4, !tbaa !5
  %11878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11879 = load i32, ptr @test_count, align 4, !tbaa !5
  %11880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11881 = load i32, ptr %11880, align 4, !tbaa !5
  %11882 = call ptr @s2n_strerror(i32 noundef %11881, ptr noundef @.str.6)
  %11883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11884 = load i32, ptr %11883, align 4, !tbaa !5
  %11885 = call ptr @s2n_strerror_debug(i32 noundef %11884, ptr noundef @.str.6)
  %11886 = call ptr @__errno_location() #13
  %11887 = load i32, ptr %11886, align 4, !tbaa !5
  %11888 = call ptr @strerror(i32 noundef %11887) #12
  %11889 = call ptr @__errno_location() #13
  %11890 = load i32, ptr %11889, align 4, !tbaa !5
  %11891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11878, ptr noundef @.str.4, i32 noundef %11879, ptr noundef @.str.64, ptr noundef @.str.3, i32 noundef 495, ptr noundef %11882, ptr noundef %11885, ptr noundef %11888, i32 noundef %11890) #12
  br label %11909

11892:                                            ; preds = %11870, %11863
  %11893 = load i32, ptr %258, align 4, !tbaa !5
  %11894 = call ptr @__errno_location() #13
  store i32 %11893, ptr %11894, align 4, !tbaa !5
  %11895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11896 = load i32, ptr @test_count, align 4, !tbaa !5
  %11897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11898 = load i32, ptr %11897, align 4, !tbaa !5
  %11899 = call ptr @s2n_strerror(i32 noundef %11898, ptr noundef @.str.6)
  %11900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11901 = load i32, ptr %11900, align 4, !tbaa !5
  %11902 = call ptr @s2n_strerror_debug(i32 noundef %11901, ptr noundef @.str.6)
  %11903 = call ptr @__errno_location() #13
  %11904 = load i32, ptr %11903, align 4, !tbaa !5
  %11905 = call ptr @strerror(i32 noundef %11904) #12
  %11906 = call ptr @__errno_location() #13
  %11907 = load i32, ptr %11906, align 4, !tbaa !5
  %11908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11895, ptr noundef @.str.7, i32 noundef %11896, ptr noundef @.str.64, ptr noundef @.str.3, i32 noundef 495, ptr noundef %11899, ptr noundef %11902, ptr noundef %11905, i32 noundef %11907) #12
  br label %11909

11909:                                            ; preds = %11892, %11875
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #12
  br label %11910

11910:                                            ; preds = %11909
  br label %11911

11911:                                            ; preds = %11910
  call void @exit(i32 noundef 1) #14
  unreachable

11912:                                            ; No predecessors!
  br label %11913

11913:                                            ; preds = %11912
  br label %11914

11914:                                            ; preds = %11913, %11854
  br label %11915

11915:                                            ; preds = %11914
  br label %11916

11916:                                            ; preds = %11915
  br label %11917

11917:                                            ; preds = %11916
  %11918 = load i32, ptr @test_count, align 4, !tbaa !5
  %11919 = add nsw i32 %11918, 1
  store i32 %11919, ptr @test_count, align 4, !tbaa !5
  %11920 = load ptr, ptr %257, align 8, !tbaa !9
  %11921 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11920, i32 0, i32 1
  %11922 = load ptr, ptr %11921, align 8, !tbaa !26
  %11923 = icmp eq ptr %11922, null
  br i1 %11923, label %11924, label %11977

11924:                                            ; preds = %11917
  br label %11925

11925:                                            ; preds = %11924
  br label %11926

11926:                                            ; preds = %11925
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #12
  %11927 = call ptr @__errno_location() #13
  %11928 = load i32, ptr %11927, align 4, !tbaa !5
  store i32 %11928, ptr %259, align 4, !tbaa !5
  %11929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11930 = call i32 @s2n_print_stacktrace(ptr noundef %11929)
  %11931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11932 = trunc i8 %11931 to i1
  br i1 %11932, label %11933, label %11955

11933:                                            ; preds = %11926
  %11934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11935 = call i32 @fileno(ptr noundef %11934) #12
  %11936 = call i32 @isatty(i32 noundef %11935) #12
  %11937 = icmp ne i32 %11936, 0
  br i1 %11937, label %11938, label %11955

11938:                                            ; preds = %11933
  %11939 = load i32, ptr %259, align 4, !tbaa !5
  %11940 = call ptr @__errno_location() #13
  store i32 %11939, ptr %11940, align 4, !tbaa !5
  %11941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11942 = load i32, ptr @test_count, align 4, !tbaa !5
  %11943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11944 = load i32, ptr %11943, align 4, !tbaa !5
  %11945 = call ptr @s2n_strerror(i32 noundef %11944, ptr noundef @.str.6)
  %11946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11947 = load i32, ptr %11946, align 4, !tbaa !5
  %11948 = call ptr @s2n_strerror_debug(i32 noundef %11947, ptr noundef @.str.6)
  %11949 = call ptr @__errno_location() #13
  %11950 = load i32, ptr %11949, align 4, !tbaa !5
  %11951 = call ptr @strerror(i32 noundef %11950) #12
  %11952 = call ptr @__errno_location() #13
  %11953 = load i32, ptr %11952, align 4, !tbaa !5
  %11954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11941, ptr noundef @.str.4, i32 noundef %11942, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 496, ptr noundef %11945, ptr noundef %11948, ptr noundef %11951, i32 noundef %11953) #12
  br label %11972

11955:                                            ; preds = %11933, %11926
  %11956 = load i32, ptr %259, align 4, !tbaa !5
  %11957 = call ptr @__errno_location() #13
  store i32 %11956, ptr %11957, align 4, !tbaa !5
  %11958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11959 = load i32, ptr @test_count, align 4, !tbaa !5
  %11960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11961 = load i32, ptr %11960, align 4, !tbaa !5
  %11962 = call ptr @s2n_strerror(i32 noundef %11961, ptr noundef @.str.6)
  %11963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11964 = load i32, ptr %11963, align 4, !tbaa !5
  %11965 = call ptr @s2n_strerror_debug(i32 noundef %11964, ptr noundef @.str.6)
  %11966 = call ptr @__errno_location() #13
  %11967 = load i32, ptr %11966, align 4, !tbaa !5
  %11968 = call ptr @strerror(i32 noundef %11967) #12
  %11969 = call ptr @__errno_location() #13
  %11970 = load i32, ptr %11969, align 4, !tbaa !5
  %11971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11958, ptr noundef @.str.7, i32 noundef %11959, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 496, ptr noundef %11962, ptr noundef %11965, ptr noundef %11968, i32 noundef %11970) #12
  br label %11972

11972:                                            ; preds = %11955, %11938
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #12
  br label %11973

11973:                                            ; preds = %11972
  br label %11974

11974:                                            ; preds = %11973
  call void @exit(i32 noundef 1) #14
  unreachable

11975:                                            ; No predecessors!
  br label %11976

11976:                                            ; preds = %11975
  br label %11977

11977:                                            ; preds = %11976, %11917
  br label %11978

11978:                                            ; preds = %11977
  br label %11979

11979:                                            ; preds = %11978
  br label %11980

11980:                                            ; preds = %11979
  %11981 = load i32, ptr @test_count, align 4, !tbaa !5
  %11982 = add nsw i32 %11981, 1
  store i32 %11982, ptr @test_count, align 4, !tbaa !5
  %11983 = load ptr, ptr %257, align 8, !tbaa !9
  %11984 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %11983, ptr noundef %247)
  %11985 = icmp ne i32 %11984, 0
  br i1 %11985, label %12039, label %11986

11986:                                            ; preds = %11980
  br label %11987

11987:                                            ; preds = %11986
  br label %11988

11988:                                            ; preds = %11987
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #12
  %11989 = call ptr @__errno_location() #13
  %11990 = load i32, ptr %11989, align 4, !tbaa !5
  store i32 %11990, ptr %260, align 4, !tbaa !5
  %11991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11992 = call i32 @s2n_print_stacktrace(ptr noundef %11991)
  %11993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11994 = trunc i8 %11993 to i1
  br i1 %11994, label %11995, label %12017

11995:                                            ; preds = %11988
  %11996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11997 = call i32 @fileno(ptr noundef %11996) #12
  %11998 = call i32 @isatty(i32 noundef %11997) #12
  %11999 = icmp ne i32 %11998, 0
  br i1 %11999, label %12000, label %12017

12000:                                            ; preds = %11995
  %12001 = load i32, ptr %260, align 4, !tbaa !5
  %12002 = call ptr @__errno_location() #13
  store i32 %12001, ptr %12002, align 4, !tbaa !5
  %12003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12004 = load i32, ptr @test_count, align 4, !tbaa !5
  %12005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12006 = load i32, ptr %12005, align 4, !tbaa !5
  %12007 = call ptr @s2n_strerror(i32 noundef %12006, ptr noundef @.str.6)
  %12008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12009 = load i32, ptr %12008, align 4, !tbaa !5
  %12010 = call ptr @s2n_strerror_debug(i32 noundef %12009, ptr noundef @.str.6)
  %12011 = call ptr @__errno_location() #13
  %12012 = load i32, ptr %12011, align 4, !tbaa !5
  %12013 = call ptr @strerror(i32 noundef %12012) #12
  %12014 = call ptr @__errno_location() #13
  %12015 = load i32, ptr %12014, align 4, !tbaa !5
  %12016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12003, ptr noundef @.str.4, i32 noundef %12004, ptr noundef @.str.96, ptr noundef @.str.3, i32 noundef 497, ptr noundef %12007, ptr noundef %12010, ptr noundef %12013, i32 noundef %12015) #12
  br label %12034

12017:                                            ; preds = %11995, %11988
  %12018 = load i32, ptr %260, align 4, !tbaa !5
  %12019 = call ptr @__errno_location() #13
  store i32 %12018, ptr %12019, align 4, !tbaa !5
  %12020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12021 = load i32, ptr @test_count, align 4, !tbaa !5
  %12022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12023 = load i32, ptr %12022, align 4, !tbaa !5
  %12024 = call ptr @s2n_strerror(i32 noundef %12023, ptr noundef @.str.6)
  %12025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12026 = load i32, ptr %12025, align 4, !tbaa !5
  %12027 = call ptr @s2n_strerror_debug(i32 noundef %12026, ptr noundef @.str.6)
  %12028 = call ptr @__errno_location() #13
  %12029 = load i32, ptr %12028, align 4, !tbaa !5
  %12030 = call ptr @strerror(i32 noundef %12029) #12
  %12031 = call ptr @__errno_location() #13
  %12032 = load i32, ptr %12031, align 4, !tbaa !5
  %12033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12020, ptr noundef @.str.7, i32 noundef %12021, ptr noundef @.str.96, ptr noundef @.str.3, i32 noundef 497, ptr noundef %12024, ptr noundef %12027, ptr noundef %12030, i32 noundef %12032) #12
  br label %12034

12034:                                            ; preds = %12017, %12000
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #12
  br label %12035

12035:                                            ; preds = %12034
  br label %12036

12036:                                            ; preds = %12035
  call void @exit(i32 noundef 1) #14
  unreachable

12037:                                            ; No predecessors!
  br label %12038

12038:                                            ; preds = %12037
  br label %12039

12039:                                            ; preds = %12038, %11980
  br label %12040

12040:                                            ; preds = %12039
  br label %12041

12041:                                            ; preds = %12040
  br label %12042

12042:                                            ; preds = %12041
  %12043 = load i32, ptr @test_count, align 4, !tbaa !5
  %12044 = add nsw i32 %12043, 1
  store i32 %12044, ptr @test_count, align 4, !tbaa !5
  %12045 = call i32 @s2n_ecc_evp_params_free(ptr noundef %247)
  %12046 = icmp eq i32 %12045, -1
  br i1 %12046, label %12047, label %12100

12047:                                            ; preds = %12042
  br label %12048

12048:                                            ; preds = %12047
  br label %12049

12049:                                            ; preds = %12048
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #12
  %12050 = call ptr @__errno_location() #13
  %12051 = load i32, ptr %12050, align 4, !tbaa !5
  store i32 %12051, ptr %261, align 4, !tbaa !5
  %12052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12053 = call i32 @s2n_print_stacktrace(ptr noundef %12052)
  %12054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12055 = trunc i8 %12054 to i1
  br i1 %12055, label %12056, label %12078

12056:                                            ; preds = %12049
  %12057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12058 = call i32 @fileno(ptr noundef %12057) #12
  %12059 = call i32 @isatty(i32 noundef %12058) #12
  %12060 = icmp ne i32 %12059, 0
  br i1 %12060, label %12061, label %12078

12061:                                            ; preds = %12056
  %12062 = load i32, ptr %261, align 4, !tbaa !5
  %12063 = call ptr @__errno_location() #13
  store i32 %12062, ptr %12063, align 4, !tbaa !5
  %12064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12065 = load i32, ptr @test_count, align 4, !tbaa !5
  %12066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12067 = load i32, ptr %12066, align 4, !tbaa !5
  %12068 = call ptr @s2n_strerror(i32 noundef %12067, ptr noundef @.str.6)
  %12069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12070 = load i32, ptr %12069, align 4, !tbaa !5
  %12071 = call ptr @s2n_strerror_debug(i32 noundef %12070, ptr noundef @.str.6)
  %12072 = call ptr @__errno_location() #13
  %12073 = load i32, ptr %12072, align 4, !tbaa !5
  %12074 = call ptr @strerror(i32 noundef %12073) #12
  %12075 = call ptr @__errno_location() #13
  %12076 = load i32, ptr %12075, align 4, !tbaa !5
  %12077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12064, ptr noundef @.str.4, i32 noundef %12065, ptr noundef @.str.97, ptr noundef @.str.3, i32 noundef 499, ptr noundef %12068, ptr noundef %12071, ptr noundef %12074, i32 noundef %12076) #12
  br label %12095

12078:                                            ; preds = %12056, %12049
  %12079 = load i32, ptr %261, align 4, !tbaa !5
  %12080 = call ptr @__errno_location() #13
  store i32 %12079, ptr %12080, align 4, !tbaa !5
  %12081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12082 = load i32, ptr @test_count, align 4, !tbaa !5
  %12083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12084 = load i32, ptr %12083, align 4, !tbaa !5
  %12085 = call ptr @s2n_strerror(i32 noundef %12084, ptr noundef @.str.6)
  %12086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12087 = load i32, ptr %12086, align 4, !tbaa !5
  %12088 = call ptr @s2n_strerror_debug(i32 noundef %12087, ptr noundef @.str.6)
  %12089 = call ptr @__errno_location() #13
  %12090 = load i32, ptr %12089, align 4, !tbaa !5
  %12091 = call ptr @strerror(i32 noundef %12090) #12
  %12092 = call ptr @__errno_location() #13
  %12093 = load i32, ptr %12092, align 4, !tbaa !5
  %12094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12081, ptr noundef @.str.7, i32 noundef %12082, ptr noundef @.str.97, ptr noundef @.str.3, i32 noundef 499, ptr noundef %12085, ptr noundef %12088, ptr noundef %12091, i32 noundef %12093) #12
  br label %12095

12095:                                            ; preds = %12078, %12061
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #12
  br label %12096

12096:                                            ; preds = %12095
  br label %12097

12097:                                            ; preds = %12096
  call void @exit(i32 noundef 1) #14
  unreachable

12098:                                            ; No predecessors!
  br label %12099

12099:                                            ; preds = %12098
  br label %12100

12100:                                            ; preds = %12099, %12042
  br label %12101

12101:                                            ; preds = %12100
  br label %12102

12102:                                            ; preds = %12101
  br label %12103

12103:                                            ; preds = %12102
  %12104 = load i32, ptr @test_count, align 4, !tbaa !5
  %12105 = add nsw i32 %12104, 1
  store i32 %12105, ptr @test_count, align 4, !tbaa !5
  %12106 = call i32 @s2n_stuffer_free(ptr noundef %248)
  %12107 = icmp eq i32 %12106, -1
  br i1 %12107, label %12108, label %12161

12108:                                            ; preds = %12103
  br label %12109

12109:                                            ; preds = %12108
  br label %12110

12110:                                            ; preds = %12109
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #12
  %12111 = call ptr @__errno_location() #13
  %12112 = load i32, ptr %12111, align 4, !tbaa !5
  store i32 %12112, ptr %262, align 4, !tbaa !5
  %12113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12114 = call i32 @s2n_print_stacktrace(ptr noundef %12113)
  %12115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12116 = trunc i8 %12115 to i1
  br i1 %12116, label %12117, label %12139

12117:                                            ; preds = %12110
  %12118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12119 = call i32 @fileno(ptr noundef %12118) #12
  %12120 = call i32 @isatty(i32 noundef %12119) #12
  %12121 = icmp ne i32 %12120, 0
  br i1 %12121, label %12122, label %12139

12122:                                            ; preds = %12117
  %12123 = load i32, ptr %262, align 4, !tbaa !5
  %12124 = call ptr @__errno_location() #13
  store i32 %12123, ptr %12124, align 4, !tbaa !5
  %12125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12126 = load i32, ptr @test_count, align 4, !tbaa !5
  %12127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12128 = load i32, ptr %12127, align 4, !tbaa !5
  %12129 = call ptr @s2n_strerror(i32 noundef %12128, ptr noundef @.str.6)
  %12130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12131 = load i32, ptr %12130, align 4, !tbaa !5
  %12132 = call ptr @s2n_strerror_debug(i32 noundef %12131, ptr noundef @.str.6)
  %12133 = call ptr @__errno_location() #13
  %12134 = load i32, ptr %12133, align 4, !tbaa !5
  %12135 = call ptr @strerror(i32 noundef %12134) #12
  %12136 = call ptr @__errno_location() #13
  %12137 = load i32, ptr %12136, align 4, !tbaa !5
  %12138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12125, ptr noundef @.str.4, i32 noundef %12126, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 500, ptr noundef %12129, ptr noundef %12132, ptr noundef %12135, i32 noundef %12137) #12
  br label %12156

12139:                                            ; preds = %12117, %12110
  %12140 = load i32, ptr %262, align 4, !tbaa !5
  %12141 = call ptr @__errno_location() #13
  store i32 %12140, ptr %12141, align 4, !tbaa !5
  %12142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12143 = load i32, ptr @test_count, align 4, !tbaa !5
  %12144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12145 = load i32, ptr %12144, align 4, !tbaa !5
  %12146 = call ptr @s2n_strerror(i32 noundef %12145, ptr noundef @.str.6)
  %12147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12148 = load i32, ptr %12147, align 4, !tbaa !5
  %12149 = call ptr @s2n_strerror_debug(i32 noundef %12148, ptr noundef @.str.6)
  %12150 = call ptr @__errno_location() #13
  %12151 = load i32, ptr %12150, align 4, !tbaa !5
  %12152 = call ptr @strerror(i32 noundef %12151) #12
  %12153 = call ptr @__errno_location() #13
  %12154 = load i32, ptr %12153, align 4, !tbaa !5
  %12155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12142, ptr noundef @.str.7, i32 noundef %12143, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 500, ptr noundef %12146, ptr noundef %12149, ptr noundef %12152, i32 noundef %12154) #12
  br label %12156

12156:                                            ; preds = %12139, %12122
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #12
  br label %12157

12157:                                            ; preds = %12156
  br label %12158

12158:                                            ; preds = %12157
  call void @exit(i32 noundef 1) #14
  unreachable

12159:                                            ; No predecessors!
  br label %12160

12160:                                            ; preds = %12159
  br label %12161

12161:                                            ; preds = %12160, %12103
  br label %12162

12162:                                            ; preds = %12161
  br label %12163

12163:                                            ; preds = %12162
  br label %12164

12164:                                            ; preds = %12163
  %12165 = load i32, ptr @test_count, align 4, !tbaa !5
  %12166 = add nsw i32 %12165, 1
  store i32 %12166, ptr @test_count, align 4, !tbaa !5
  %12167 = load ptr, ptr %239, align 8, !tbaa !9
  %12168 = call i32 @s2n_connection_free(ptr noundef %12167)
  %12169 = icmp eq i32 %12168, -1
  br i1 %12169, label %12170, label %12223

12170:                                            ; preds = %12164
  br label %12171

12171:                                            ; preds = %12170
  br label %12172

12172:                                            ; preds = %12171
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #12
  %12173 = call ptr @__errno_location() #13
  %12174 = load i32, ptr %12173, align 4, !tbaa !5
  store i32 %12174, ptr %263, align 4, !tbaa !5
  %12175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12176 = call i32 @s2n_print_stacktrace(ptr noundef %12175)
  %12177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12178 = trunc i8 %12177 to i1
  br i1 %12178, label %12179, label %12201

12179:                                            ; preds = %12172
  %12180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12181 = call i32 @fileno(ptr noundef %12180) #12
  %12182 = call i32 @isatty(i32 noundef %12181) #12
  %12183 = icmp ne i32 %12182, 0
  br i1 %12183, label %12184, label %12201

12184:                                            ; preds = %12179
  %12185 = load i32, ptr %263, align 4, !tbaa !5
  %12186 = call ptr @__errno_location() #13
  store i32 %12185, ptr %12186, align 4, !tbaa !5
  %12187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12188 = load i32, ptr @test_count, align 4, !tbaa !5
  %12189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12190 = load i32, ptr %12189, align 4, !tbaa !5
  %12191 = call ptr @s2n_strerror(i32 noundef %12190, ptr noundef @.str.6)
  %12192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12193 = load i32, ptr %12192, align 4, !tbaa !5
  %12194 = call ptr @s2n_strerror_debug(i32 noundef %12193, ptr noundef @.str.6)
  %12195 = call ptr @__errno_location() #13
  %12196 = load i32, ptr %12195, align 4, !tbaa !5
  %12197 = call ptr @strerror(i32 noundef %12196) #12
  %12198 = call ptr @__errno_location() #13
  %12199 = load i32, ptr %12198, align 4, !tbaa !5
  %12200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12187, ptr noundef @.str.4, i32 noundef %12188, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 501, ptr noundef %12191, ptr noundef %12194, ptr noundef %12197, i32 noundef %12199) #12
  br label %12218

12201:                                            ; preds = %12179, %12172
  %12202 = load i32, ptr %263, align 4, !tbaa !5
  %12203 = call ptr @__errno_location() #13
  store i32 %12202, ptr %12203, align 4, !tbaa !5
  %12204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12205 = load i32, ptr @test_count, align 4, !tbaa !5
  %12206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12207 = load i32, ptr %12206, align 4, !tbaa !5
  %12208 = call ptr @s2n_strerror(i32 noundef %12207, ptr noundef @.str.6)
  %12209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12210 = load i32, ptr %12209, align 4, !tbaa !5
  %12211 = call ptr @s2n_strerror_debug(i32 noundef %12210, ptr noundef @.str.6)
  %12212 = call ptr @__errno_location() #13
  %12213 = load i32, ptr %12212, align 4, !tbaa !5
  %12214 = call ptr @strerror(i32 noundef %12213) #12
  %12215 = call ptr @__errno_location() #13
  %12216 = load i32, ptr %12215, align 4, !tbaa !5
  %12217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12204, ptr noundef @.str.7, i32 noundef %12205, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 501, ptr noundef %12208, ptr noundef %12211, ptr noundef %12214, i32 noundef %12216) #12
  br label %12218

12218:                                            ; preds = %12201, %12184
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #12
  br label %12219

12219:                                            ; preds = %12218
  br label %12220

12220:                                            ; preds = %12219
  call void @exit(i32 noundef 1) #14
  unreachable

12221:                                            ; No predecessors!
  br label %12222

12222:                                            ; preds = %12221
  br label %12223

12223:                                            ; preds = %12222, %12164
  br label %12224

12224:                                            ; preds = %12223
  br label %12225

12225:                                            ; preds = %12224
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %250) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %248) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %247) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %264) #12
  %12226 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12226, ptr %264, align 8, !tbaa !9
  br label %12227

12227:                                            ; preds = %12225
  %12228 = load i32, ptr @test_count, align 4, !tbaa !5
  %12229 = add nsw i32 %12228, 1
  store i32 %12229, ptr @test_count, align 4, !tbaa !5
  %12230 = load ptr, ptr %264, align 8, !tbaa !9
  %12231 = icmp eq ptr %12230, null
  br i1 %12231, label %12232, label %12285

12232:                                            ; preds = %12227
  br label %12233

12233:                                            ; preds = %12232
  br label %12234

12234:                                            ; preds = %12233
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #12
  %12235 = call ptr @__errno_location() #13
  %12236 = load i32, ptr %12235, align 4, !tbaa !5
  store i32 %12236, ptr %265, align 4, !tbaa !5
  %12237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12238 = call i32 @s2n_print_stacktrace(ptr noundef %12237)
  %12239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12240 = trunc i8 %12239 to i1
  br i1 %12240, label %12241, label %12263

12241:                                            ; preds = %12234
  %12242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12243 = call i32 @fileno(ptr noundef %12242) #12
  %12244 = call i32 @isatty(i32 noundef %12243) #12
  %12245 = icmp ne i32 %12244, 0
  br i1 %12245, label %12246, label %12263

12246:                                            ; preds = %12241
  %12247 = load i32, ptr %265, align 4, !tbaa !5
  %12248 = call ptr @__errno_location() #13
  store i32 %12247, ptr %12248, align 4, !tbaa !5
  %12249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12250 = load i32, ptr @test_count, align 4, !tbaa !5
  %12251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12252 = load i32, ptr %12251, align 4, !tbaa !5
  %12253 = call ptr @s2n_strerror(i32 noundef %12252, ptr noundef @.str.6)
  %12254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12255 = load i32, ptr %12254, align 4, !tbaa !5
  %12256 = call ptr @s2n_strerror_debug(i32 noundef %12255, ptr noundef @.str.6)
  %12257 = call ptr @__errno_location() #13
  %12258 = load i32, ptr %12257, align 4, !tbaa !5
  %12259 = call ptr @strerror(i32 noundef %12258) #12
  %12260 = call ptr @__errno_location() #13
  %12261 = load i32, ptr %12260, align 4, !tbaa !5
  %12262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12249, ptr noundef @.str.4, i32 noundef %12250, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 507, ptr noundef %12253, ptr noundef %12256, ptr noundef %12259, i32 noundef %12261) #12
  br label %12280

12263:                                            ; preds = %12241, %12234
  %12264 = load i32, ptr %265, align 4, !tbaa !5
  %12265 = call ptr @__errno_location() #13
  store i32 %12264, ptr %12265, align 4, !tbaa !5
  %12266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12267 = load i32, ptr @test_count, align 4, !tbaa !5
  %12268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12269 = load i32, ptr %12268, align 4, !tbaa !5
  %12270 = call ptr @s2n_strerror(i32 noundef %12269, ptr noundef @.str.6)
  %12271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12272 = load i32, ptr %12271, align 4, !tbaa !5
  %12273 = call ptr @s2n_strerror_debug(i32 noundef %12272, ptr noundef @.str.6)
  %12274 = call ptr @__errno_location() #13
  %12275 = load i32, ptr %12274, align 4, !tbaa !5
  %12276 = call ptr @strerror(i32 noundef %12275) #12
  %12277 = call ptr @__errno_location() #13
  %12278 = load i32, ptr %12277, align 4, !tbaa !5
  %12279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12266, ptr noundef @.str.7, i32 noundef %12267, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 507, ptr noundef %12270, ptr noundef %12273, ptr noundef %12276, i32 noundef %12278) #12
  br label %12280

12280:                                            ; preds = %12263, %12246
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #12
  br label %12281

12281:                                            ; preds = %12280
  br label %12282

12282:                                            ; preds = %12281
  call void @exit(i32 noundef 1) #14
  unreachable

12283:                                            ; No predecessors!
  br label %12284

12284:                                            ; preds = %12283
  br label %12285

12285:                                            ; preds = %12284, %12227
  br label %12286

12286:                                            ; preds = %12285
  br label %12287

12287:                                            ; preds = %12286
  %12288 = load ptr, ptr %264, align 8, !tbaa !9
  %12289 = getelementptr inbounds %struct.s2n_connection, ptr %12288, i32 0, i32 23
  store i8 34, ptr %12289, align 4, !tbaa !63
  br label %12290

12290:                                            ; preds = %12287
  %12291 = load i32, ptr @test_count, align 4, !tbaa !5
  %12292 = add nsw i32 %12291, 1
  store i32 %12292, ptr @test_count, align 4, !tbaa !5
  %12293 = load ptr, ptr %264, align 8, !tbaa !9
  %12294 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %12293)
  %12295 = getelementptr inbounds %struct.s2n_result, ptr %266, i32 0, i32 0
  store i32 %12294, ptr %12295, align 4
  %12296 = getelementptr inbounds %struct.s2n_result, ptr %266, i32 0, i32 0
  %12297 = load i32, ptr %12296, align 4
  %12298 = call zeroext i1 @s2n_result_is_ok(i32 %12297)
  br i1 %12298, label %12352, label %12299

12299:                                            ; preds = %12290
  br label %12300

12300:                                            ; preds = %12299
  br label %12301

12301:                                            ; preds = %12300
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #12
  %12302 = call ptr @__errno_location() #13
  %12303 = load i32, ptr %12302, align 4, !tbaa !5
  store i32 %12303, ptr %267, align 4, !tbaa !5
  %12304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12305 = call i32 @s2n_print_stacktrace(ptr noundef %12304)
  %12306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12307 = trunc i8 %12306 to i1
  br i1 %12307, label %12308, label %12330

12308:                                            ; preds = %12301
  %12309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12310 = call i32 @fileno(ptr noundef %12309) #12
  %12311 = call i32 @isatty(i32 noundef %12310) #12
  %12312 = icmp ne i32 %12311, 0
  br i1 %12312, label %12313, label %12330

12313:                                            ; preds = %12308
  %12314 = load i32, ptr %267, align 4, !tbaa !5
  %12315 = call ptr @__errno_location() #13
  store i32 %12314, ptr %12315, align 4, !tbaa !5
  %12316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12317 = load i32, ptr @test_count, align 4, !tbaa !5
  %12318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12319 = load i32, ptr %12318, align 4, !tbaa !5
  %12320 = call ptr @s2n_strerror(i32 noundef %12319, ptr noundef @.str.6)
  %12321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12322 = load i32, ptr %12321, align 4, !tbaa !5
  %12323 = call ptr @s2n_strerror_debug(i32 noundef %12322, ptr noundef @.str.6)
  %12324 = call ptr @__errno_location() #13
  %12325 = load i32, ptr %12324, align 4, !tbaa !5
  %12326 = call ptr @strerror(i32 noundef %12325) #12
  %12327 = call ptr @__errno_location() #13
  %12328 = load i32, ptr %12327, align 4, !tbaa !5
  %12329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12316, ptr noundef @.str.4, i32 noundef %12317, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 509, ptr noundef %12320, ptr noundef %12323, ptr noundef %12326, i32 noundef %12328) #12
  br label %12347

12330:                                            ; preds = %12308, %12301
  %12331 = load i32, ptr %267, align 4, !tbaa !5
  %12332 = call ptr @__errno_location() #13
  store i32 %12331, ptr %12332, align 4, !tbaa !5
  %12333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12334 = load i32, ptr @test_count, align 4, !tbaa !5
  %12335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12336 = load i32, ptr %12335, align 4, !tbaa !5
  %12337 = call ptr @s2n_strerror(i32 noundef %12336, ptr noundef @.str.6)
  %12338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12339 = load i32, ptr %12338, align 4, !tbaa !5
  %12340 = call ptr @s2n_strerror_debug(i32 noundef %12339, ptr noundef @.str.6)
  %12341 = call ptr @__errno_location() #13
  %12342 = load i32, ptr %12341, align 4, !tbaa !5
  %12343 = call ptr @strerror(i32 noundef %12342) #12
  %12344 = call ptr @__errno_location() #13
  %12345 = load i32, ptr %12344, align 4, !tbaa !5
  %12346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12333, ptr noundef @.str.7, i32 noundef %12334, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 509, ptr noundef %12337, ptr noundef %12340, ptr noundef %12343, i32 noundef %12345) #12
  br label %12347

12347:                                            ; preds = %12330, %12313
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #12
  br label %12348

12348:                                            ; preds = %12347
  br label %12349

12349:                                            ; preds = %12348
  call void @exit(i32 noundef 1) #14
  unreachable

12350:                                            ; No predecessors!
  br label %12351

12351:                                            ; preds = %12350
  br label %12352

12352:                                            ; preds = %12351, %12290
  br label %12353

12353:                                            ; preds = %12352
  br label %12354

12354:                                            ; preds = %12353
  call void @llvm.lifetime.start.p0(i64 8, ptr %268) #12
  store ptr null, ptr %268, align 8, !tbaa !9
  br label %12355

12355:                                            ; preds = %12354
  %12356 = load i32, ptr @test_count, align 4, !tbaa !5
  %12357 = add nsw i32 %12356, 1
  store i32 %12357, ptr @test_count, align 4, !tbaa !5
  %12358 = load ptr, ptr %264, align 8, !tbaa !9
  %12359 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %12358, ptr noundef %268)
  %12360 = icmp eq i32 %12359, -1
  br i1 %12360, label %12361, label %12414

12361:                                            ; preds = %12355
  br label %12362

12362:                                            ; preds = %12361
  br label %12363

12363:                                            ; preds = %12362
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #12
  %12364 = call ptr @__errno_location() #13
  %12365 = load i32, ptr %12364, align 4, !tbaa !5
  store i32 %12365, ptr %269, align 4, !tbaa !5
  %12366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12367 = call i32 @s2n_print_stacktrace(ptr noundef %12366)
  %12368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12369 = trunc i8 %12368 to i1
  br i1 %12369, label %12370, label %12392

12370:                                            ; preds = %12363
  %12371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12372 = call i32 @fileno(ptr noundef %12371) #12
  %12373 = call i32 @isatty(i32 noundef %12372) #12
  %12374 = icmp ne i32 %12373, 0
  br i1 %12374, label %12375, label %12392

12375:                                            ; preds = %12370
  %12376 = load i32, ptr %269, align 4, !tbaa !5
  %12377 = call ptr @__errno_location() #13
  store i32 %12376, ptr %12377, align 4, !tbaa !5
  %12378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12379 = load i32, ptr @test_count, align 4, !tbaa !5
  %12380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12381 = load i32, ptr %12380, align 4, !tbaa !5
  %12382 = call ptr @s2n_strerror(i32 noundef %12381, ptr noundef @.str.6)
  %12383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12384 = load i32, ptr %12383, align 4, !tbaa !5
  %12385 = call ptr @s2n_strerror_debug(i32 noundef %12384, ptr noundef @.str.6)
  %12386 = call ptr @__errno_location() #13
  %12387 = load i32, ptr %12386, align 4, !tbaa !5
  %12388 = call ptr @strerror(i32 noundef %12387) #12
  %12389 = call ptr @__errno_location() #13
  %12390 = load i32, ptr %12389, align 4, !tbaa !5
  %12391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12378, ptr noundef @.str.4, i32 noundef %12379, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 512, ptr noundef %12382, ptr noundef %12385, ptr noundef %12388, i32 noundef %12390) #12
  br label %12409

12392:                                            ; preds = %12370, %12363
  %12393 = load i32, ptr %269, align 4, !tbaa !5
  %12394 = call ptr @__errno_location() #13
  store i32 %12393, ptr %12394, align 4, !tbaa !5
  %12395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12396 = load i32, ptr @test_count, align 4, !tbaa !5
  %12397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12398 = load i32, ptr %12397, align 4, !tbaa !5
  %12399 = call ptr @s2n_strerror(i32 noundef %12398, ptr noundef @.str.6)
  %12400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12401 = load i32, ptr %12400, align 4, !tbaa !5
  %12402 = call ptr @s2n_strerror_debug(i32 noundef %12401, ptr noundef @.str.6)
  %12403 = call ptr @__errno_location() #13
  %12404 = load i32, ptr %12403, align 4, !tbaa !5
  %12405 = call ptr @strerror(i32 noundef %12404) #12
  %12406 = call ptr @__errno_location() #13
  %12407 = load i32, ptr %12406, align 4, !tbaa !5
  %12408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12395, ptr noundef @.str.7, i32 noundef %12396, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 512, ptr noundef %12399, ptr noundef %12402, ptr noundef %12405, i32 noundef %12407) #12
  br label %12409

12409:                                            ; preds = %12392, %12375
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #12
  br label %12410

12410:                                            ; preds = %12409
  br label %12411

12411:                                            ; preds = %12410
  call void @exit(i32 noundef 1) #14
  unreachable

12412:                                            ; No predecessors!
  br label %12413

12413:                                            ; preds = %12412
  br label %12414

12414:                                            ; preds = %12413, %12355
  br label %12415

12415:                                            ; preds = %12414
  br label %12416

12416:                                            ; preds = %12415
  br label %12417

12417:                                            ; preds = %12416
  %12418 = load i32, ptr @test_count, align 4, !tbaa !5
  %12419 = add nsw i32 %12418, 1
  store i32 %12419, ptr @test_count, align 4, !tbaa !5
  %12420 = load ptr, ptr %268, align 8, !tbaa !9
  %12421 = icmp eq ptr %12420, null
  br i1 %12421, label %12422, label %12475

12422:                                            ; preds = %12417
  br label %12423

12423:                                            ; preds = %12422
  br label %12424

12424:                                            ; preds = %12423
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #12
  %12425 = call ptr @__errno_location() #13
  %12426 = load i32, ptr %12425, align 4, !tbaa !5
  store i32 %12426, ptr %270, align 4, !tbaa !5
  %12427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12428 = call i32 @s2n_print_stacktrace(ptr noundef %12427)
  %12429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12430 = trunc i8 %12429 to i1
  br i1 %12430, label %12431, label %12453

12431:                                            ; preds = %12424
  %12432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12433 = call i32 @fileno(ptr noundef %12432) #12
  %12434 = call i32 @isatty(i32 noundef %12433) #12
  %12435 = icmp ne i32 %12434, 0
  br i1 %12435, label %12436, label %12453

12436:                                            ; preds = %12431
  %12437 = load i32, ptr %270, align 4, !tbaa !5
  %12438 = call ptr @__errno_location() #13
  store i32 %12437, ptr %12438, align 4, !tbaa !5
  %12439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12440 = load i32, ptr @test_count, align 4, !tbaa !5
  %12441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12442 = load i32, ptr %12441, align 4, !tbaa !5
  %12443 = call ptr @s2n_strerror(i32 noundef %12442, ptr noundef @.str.6)
  %12444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12445 = load i32, ptr %12444, align 4, !tbaa !5
  %12446 = call ptr @s2n_strerror_debug(i32 noundef %12445, ptr noundef @.str.6)
  %12447 = call ptr @__errno_location() #13
  %12448 = load i32, ptr %12447, align 4, !tbaa !5
  %12449 = call ptr @strerror(i32 noundef %12448) #12
  %12450 = call ptr @__errno_location() #13
  %12451 = load i32, ptr %12450, align 4, !tbaa !5
  %12452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12439, ptr noundef @.str.4, i32 noundef %12440, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 513, ptr noundef %12443, ptr noundef %12446, ptr noundef %12449, i32 noundef %12451) #12
  br label %12470

12453:                                            ; preds = %12431, %12424
  %12454 = load i32, ptr %270, align 4, !tbaa !5
  %12455 = call ptr @__errno_location() #13
  store i32 %12454, ptr %12455, align 4, !tbaa !5
  %12456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12457 = load i32, ptr @test_count, align 4, !tbaa !5
  %12458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12459 = load i32, ptr %12458, align 4, !tbaa !5
  %12460 = call ptr @s2n_strerror(i32 noundef %12459, ptr noundef @.str.6)
  %12461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12462 = load i32, ptr %12461, align 4, !tbaa !5
  %12463 = call ptr @s2n_strerror_debug(i32 noundef %12462, ptr noundef @.str.6)
  %12464 = call ptr @__errno_location() #13
  %12465 = load i32, ptr %12464, align 4, !tbaa !5
  %12466 = call ptr @strerror(i32 noundef %12465) #12
  %12467 = call ptr @__errno_location() #13
  %12468 = load i32, ptr %12467, align 4, !tbaa !5
  %12469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12456, ptr noundef @.str.7, i32 noundef %12457, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 513, ptr noundef %12460, ptr noundef %12463, ptr noundef %12466, i32 noundef %12468) #12
  br label %12470

12470:                                            ; preds = %12453, %12436
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #12
  br label %12471

12471:                                            ; preds = %12470
  br label %12472

12472:                                            ; preds = %12471
  call void @exit(i32 noundef 1) #14
  unreachable

12473:                                            ; No predecessors!
  br label %12474

12474:                                            ; preds = %12473
  br label %12475

12475:                                            ; preds = %12474, %12417
  br label %12476

12476:                                            ; preds = %12475
  br label %12477

12477:                                            ; preds = %12476
  br label %12478

12478:                                            ; preds = %12477
  %12479 = load i32, ptr @test_count, align 4, !tbaa !5
  %12480 = add nsw i32 %12479, 1
  store i32 %12480, ptr @test_count, align 4, !tbaa !5
  %12481 = load ptr, ptr %268, align 8, !tbaa !9
  %12482 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %12481, i32 0, i32 0
  %12483 = load i8, ptr %12482, align 8, !tbaa !64
  %12484 = zext i8 %12483 to i32
  %12485 = icmp sge i32 %12484, 2
  br i1 %12485, label %12539, label %12486

12486:                                            ; preds = %12478
  br label %12487

12487:                                            ; preds = %12486
  br label %12488

12488:                                            ; preds = %12487
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #12
  %12489 = call ptr @__errno_location() #13
  %12490 = load i32, ptr %12489, align 4, !tbaa !5
  store i32 %12490, ptr %271, align 4, !tbaa !5
  %12491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12492 = call i32 @s2n_print_stacktrace(ptr noundef %12491)
  %12493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12494 = trunc i8 %12493 to i1
  br i1 %12494, label %12495, label %12517

12495:                                            ; preds = %12488
  %12496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12497 = call i32 @fileno(ptr noundef %12496) #12
  %12498 = call i32 @isatty(i32 noundef %12497) #12
  %12499 = icmp ne i32 %12498, 0
  br i1 %12499, label %12500, label %12517

12500:                                            ; preds = %12495
  %12501 = load i32, ptr %271, align 4, !tbaa !5
  %12502 = call ptr @__errno_location() #13
  store i32 %12501, ptr %12502, align 4, !tbaa !5
  %12503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12504 = load i32, ptr @test_count, align 4, !tbaa !5
  %12505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12506 = load i32, ptr %12505, align 4, !tbaa !5
  %12507 = call ptr @s2n_strerror(i32 noundef %12506, ptr noundef @.str.6)
  %12508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12509 = load i32, ptr %12508, align 4, !tbaa !5
  %12510 = call ptr @s2n_strerror_debug(i32 noundef %12509, ptr noundef @.str.6)
  %12511 = call ptr @__errno_location() #13
  %12512 = load i32, ptr %12511, align 4, !tbaa !5
  %12513 = call ptr @strerror(i32 noundef %12512) #12
  %12514 = call ptr @__errno_location() #13
  %12515 = load i32, ptr %12514, align 4, !tbaa !5
  %12516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12503, ptr noundef @.str.4, i32 noundef %12504, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 514, ptr noundef %12507, ptr noundef %12510, ptr noundef %12513, i32 noundef %12515) #12
  br label %12534

12517:                                            ; preds = %12495, %12488
  %12518 = load i32, ptr %271, align 4, !tbaa !5
  %12519 = call ptr @__errno_location() #13
  store i32 %12518, ptr %12519, align 4, !tbaa !5
  %12520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12521 = load i32, ptr @test_count, align 4, !tbaa !5
  %12522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12523 = load i32, ptr %12522, align 4, !tbaa !5
  %12524 = call ptr @s2n_strerror(i32 noundef %12523, ptr noundef @.str.6)
  %12525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12526 = load i32, ptr %12525, align 4, !tbaa !5
  %12527 = call ptr @s2n_strerror_debug(i32 noundef %12526, ptr noundef @.str.6)
  %12528 = call ptr @__errno_location() #13
  %12529 = load i32, ptr %12528, align 4, !tbaa !5
  %12530 = call ptr @strerror(i32 noundef %12529) #12
  %12531 = call ptr @__errno_location() #13
  %12532 = load i32, ptr %12531, align 4, !tbaa !5
  %12533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12520, ptr noundef @.str.7, i32 noundef %12521, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 514, ptr noundef %12524, ptr noundef %12527, ptr noundef %12530, i32 noundef %12532) #12
  br label %12534

12534:                                            ; preds = %12517, %12500
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #12
  br label %12535

12535:                                            ; preds = %12534
  br label %12536

12536:                                            ; preds = %12535
  call void @exit(i32 noundef 1) #14
  unreachable

12537:                                            ; No predecessors!
  br label %12538

12538:                                            ; preds = %12537
  br label %12539

12539:                                            ; preds = %12538, %12478
  br label %12540

12540:                                            ; preds = %12539
  br label %12541

12541:                                            ; preds = %12540
  call void @llvm.lifetime.start.p0(i64 32, ptr %272) #12
  %12542 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %272, i32 0, i32 0
  %12543 = load ptr, ptr %268, align 8, !tbaa !9
  %12544 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %12543, i32 0, i32 1
  %12545 = load ptr, ptr %12544, align 8, !tbaa !24
  %12546 = getelementptr inbounds ptr, ptr %12545, i64 0
  %12547 = load ptr, ptr %12546, align 8, !tbaa !9
  store ptr %12547, ptr %12542, align 16, !tbaa !22
  %12548 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %272, i32 0, i32 1
  store ptr null, ptr %12548, align 8, !tbaa !26
  %12549 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %272, i64 1
  %12550 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12549, i32 0, i32 0
  %12551 = load ptr, ptr %268, align 8, !tbaa !9
  %12552 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %12551, i32 0, i32 1
  %12553 = load ptr, ptr %12552, align 8, !tbaa !24
  %12554 = getelementptr inbounds ptr, ptr %12553, i64 1
  %12555 = load ptr, ptr %12554, align 8, !tbaa !9
  store ptr %12555, ptr %12550, align 16, !tbaa !22
  %12556 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12549, i32 0, i32 1
  store ptr null, ptr %12556, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr %273) #12
  call void @llvm.memset.p0.i64(ptr align 8 %273, i8 0, i64 40, i1 false)
  br label %12557

12557:                                            ; preds = %12541
  %12558 = load i32, ptr @test_count, align 4, !tbaa !5
  %12559 = add nsw i32 %12558, 1
  store i32 %12559, ptr @test_count, align 4, !tbaa !5
  %12560 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %273, i32 noundef 0)
  %12561 = icmp eq i32 %12560, -1
  br i1 %12561, label %12562, label %12615

12562:                                            ; preds = %12557
  br label %12563

12563:                                            ; preds = %12562
  br label %12564

12564:                                            ; preds = %12563
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #12
  %12565 = call ptr @__errno_location() #13
  %12566 = load i32, ptr %12565, align 4, !tbaa !5
  store i32 %12566, ptr %274, align 4, !tbaa !5
  %12567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12568 = call i32 @s2n_print_stacktrace(ptr noundef %12567)
  %12569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12570 = trunc i8 %12569 to i1
  br i1 %12570, label %12571, label %12593

12571:                                            ; preds = %12564
  %12572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12573 = call i32 @fileno(ptr noundef %12572) #12
  %12574 = call i32 @isatty(i32 noundef %12573) #12
  %12575 = icmp ne i32 %12574, 0
  br i1 %12575, label %12576, label %12593

12576:                                            ; preds = %12571
  %12577 = load i32, ptr %274, align 4, !tbaa !5
  %12578 = call ptr @__errno_location() #13
  store i32 %12577, ptr %12578, align 4, !tbaa !5
  %12579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12580 = load i32, ptr @test_count, align 4, !tbaa !5
  %12581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12582 = load i32, ptr %12581, align 4, !tbaa !5
  %12583 = call ptr @s2n_strerror(i32 noundef %12582, ptr noundef @.str.6)
  %12584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12585 = load i32, ptr %12584, align 4, !tbaa !5
  %12586 = call ptr @s2n_strerror_debug(i32 noundef %12585, ptr noundef @.str.6)
  %12587 = call ptr @__errno_location() #13
  %12588 = load i32, ptr %12587, align 4, !tbaa !5
  %12589 = call ptr @strerror(i32 noundef %12588) #12
  %12590 = call ptr @__errno_location() #13
  %12591 = load i32, ptr %12590, align 4, !tbaa !5
  %12592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12579, ptr noundef @.str.4, i32 noundef %12580, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 522, ptr noundef %12583, ptr noundef %12586, ptr noundef %12589, i32 noundef %12591) #12
  br label %12610

12593:                                            ; preds = %12571, %12564
  %12594 = load i32, ptr %274, align 4, !tbaa !5
  %12595 = call ptr @__errno_location() #13
  store i32 %12594, ptr %12595, align 4, !tbaa !5
  %12596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12597 = load i32, ptr @test_count, align 4, !tbaa !5
  %12598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12599 = load i32, ptr %12598, align 4, !tbaa !5
  %12600 = call ptr @s2n_strerror(i32 noundef %12599, ptr noundef @.str.6)
  %12601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12602 = load i32, ptr %12601, align 4, !tbaa !5
  %12603 = call ptr @s2n_strerror_debug(i32 noundef %12602, ptr noundef @.str.6)
  %12604 = call ptr @__errno_location() #13
  %12605 = load i32, ptr %12604, align 4, !tbaa !5
  %12606 = call ptr @strerror(i32 noundef %12605) #12
  %12607 = call ptr @__errno_location() #13
  %12608 = load i32, ptr %12607, align 4, !tbaa !5
  %12609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12596, ptr noundef @.str.7, i32 noundef %12597, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 522, ptr noundef %12600, ptr noundef %12603, ptr noundef %12606, i32 noundef %12608) #12
  br label %12610

12610:                                            ; preds = %12593, %12576
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #12
  br label %12611

12611:                                            ; preds = %12610
  br label %12612

12612:                                            ; preds = %12611
  call void @exit(i32 noundef 1) #14
  unreachable

12613:                                            ; No predecessors!
  br label %12614

12614:                                            ; preds = %12613
  br label %12615

12615:                                            ; preds = %12614, %12557
  br label %12616

12616:                                            ; preds = %12615
  br label %12617

12617:                                            ; preds = %12616
  call void @llvm.lifetime.start.p0(i64 16, ptr %275) #12
  call void @llvm.memset.p0.i64(ptr align 8 %275, i8 0, i64 16, i1 false)
  br label %12618

12618:                                            ; preds = %12617
  %12619 = load i32, ptr @test_count, align 4, !tbaa !5
  %12620 = add nsw i32 %12619, 1
  store i32 %12620, ptr @test_count, align 4, !tbaa !5
  %12621 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %273, ptr noundef %275)
  %12622 = icmp eq i32 %12621, -1
  br i1 %12622, label %12623, label %12676

12623:                                            ; preds = %12618
  br label %12624

12624:                                            ; preds = %12623
  br label %12625

12625:                                            ; preds = %12624
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #12
  %12626 = call ptr @__errno_location() #13
  %12627 = load i32, ptr %12626, align 4, !tbaa !5
  store i32 %12627, ptr %276, align 4, !tbaa !5
  %12628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12629 = call i32 @s2n_print_stacktrace(ptr noundef %12628)
  %12630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12631 = trunc i8 %12630 to i1
  br i1 %12631, label %12632, label %12654

12632:                                            ; preds = %12625
  %12633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12634 = call i32 @fileno(ptr noundef %12633) #12
  %12635 = call i32 @isatty(i32 noundef %12634) #12
  %12636 = icmp ne i32 %12635, 0
  br i1 %12636, label %12637, label %12654

12637:                                            ; preds = %12632
  %12638 = load i32, ptr %276, align 4, !tbaa !5
  %12639 = call ptr @__errno_location() #13
  store i32 %12638, ptr %12639, align 4, !tbaa !5
  %12640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12641 = load i32, ptr @test_count, align 4, !tbaa !5
  %12642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12643 = load i32, ptr %12642, align 4, !tbaa !5
  %12644 = call ptr @s2n_strerror(i32 noundef %12643, ptr noundef @.str.6)
  %12645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12646 = load i32, ptr %12645, align 4, !tbaa !5
  %12647 = call ptr @s2n_strerror_debug(i32 noundef %12646, ptr noundef @.str.6)
  %12648 = call ptr @__errno_location() #13
  %12649 = load i32, ptr %12648, align 4, !tbaa !5
  %12650 = call ptr @strerror(i32 noundef %12649) #12
  %12651 = call ptr @__errno_location() #13
  %12652 = load i32, ptr %12651, align 4, !tbaa !5
  %12653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12640, ptr noundef @.str.4, i32 noundef %12641, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 525, ptr noundef %12644, ptr noundef %12647, ptr noundef %12650, i32 noundef %12652) #12
  br label %12671

12654:                                            ; preds = %12632, %12625
  %12655 = load i32, ptr %276, align 4, !tbaa !5
  %12656 = call ptr @__errno_location() #13
  store i32 %12655, ptr %12656, align 4, !tbaa !5
  %12657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12658 = load i32, ptr @test_count, align 4, !tbaa !5
  %12659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12660 = load i32, ptr %12659, align 4, !tbaa !5
  %12661 = call ptr @s2n_strerror(i32 noundef %12660, ptr noundef @.str.6)
  %12662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12663 = load i32, ptr %12662, align 4, !tbaa !5
  %12664 = call ptr @s2n_strerror_debug(i32 noundef %12663, ptr noundef @.str.6)
  %12665 = call ptr @__errno_location() #13
  %12666 = load i32, ptr %12665, align 4, !tbaa !5
  %12667 = call ptr @strerror(i32 noundef %12666) #12
  %12668 = call ptr @__errno_location() #13
  %12669 = load i32, ptr %12668, align 4, !tbaa !5
  %12670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12657, ptr noundef @.str.7, i32 noundef %12658, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 525, ptr noundef %12661, ptr noundef %12664, ptr noundef %12667, i32 noundef %12669) #12
  br label %12671

12671:                                            ; preds = %12654, %12637
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #12
  br label %12672

12672:                                            ; preds = %12671
  br label %12673

12673:                                            ; preds = %12672
  call void @exit(i32 noundef 1) #14
  unreachable

12674:                                            ; No predecessors!
  br label %12675

12675:                                            ; preds = %12674
  br label %12676

12676:                                            ; preds = %12675, %12618
  br label %12677

12677:                                            ; preds = %12676
  br label %12678

12678:                                            ; preds = %12677
  br label %12679

12679:                                            ; preds = %12678
  %12680 = load i32, ptr @test_count, align 4, !tbaa !5
  %12681 = add nsw i32 %12680, 1
  store i32 %12681, ptr @test_count, align 4, !tbaa !5
  %12682 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %272, i64 0, i64 0
  %12683 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %12682, ptr noundef %273)
  %12684 = icmp eq i32 %12683, -1
  br i1 %12684, label %12685, label %12738

12685:                                            ; preds = %12679
  br label %12686

12686:                                            ; preds = %12685
  br label %12687

12687:                                            ; preds = %12686
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #12
  %12688 = call ptr @__errno_location() #13
  %12689 = load i32, ptr %12688, align 4, !tbaa !5
  store i32 %12689, ptr %277, align 4, !tbaa !5
  %12690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12691 = call i32 @s2n_print_stacktrace(ptr noundef %12690)
  %12692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12693 = trunc i8 %12692 to i1
  br i1 %12693, label %12694, label %12716

12694:                                            ; preds = %12687
  %12695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12696 = call i32 @fileno(ptr noundef %12695) #12
  %12697 = call i32 @isatty(i32 noundef %12696) #12
  %12698 = icmp ne i32 %12697, 0
  br i1 %12698, label %12699, label %12716

12699:                                            ; preds = %12694
  %12700 = load i32, ptr %277, align 4, !tbaa !5
  %12701 = call ptr @__errno_location() #13
  store i32 %12700, ptr %12701, align 4, !tbaa !5
  %12702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12703 = load i32, ptr @test_count, align 4, !tbaa !5
  %12704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12705 = load i32, ptr %12704, align 4, !tbaa !5
  %12706 = call ptr @s2n_strerror(i32 noundef %12705, ptr noundef @.str.6)
  %12707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12708 = load i32, ptr %12707, align 4, !tbaa !5
  %12709 = call ptr @s2n_strerror_debug(i32 noundef %12708, ptr noundef @.str.6)
  %12710 = call ptr @__errno_location() #13
  %12711 = load i32, ptr %12710, align 4, !tbaa !5
  %12712 = call ptr @strerror(i32 noundef %12711) #12
  %12713 = call ptr @__errno_location() #13
  %12714 = load i32, ptr %12713, align 4, !tbaa !5
  %12715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12702, ptr noundef @.str.4, i32 noundef %12703, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 526, ptr noundef %12706, ptr noundef %12709, ptr noundef %12712, i32 noundef %12714) #12
  br label %12733

12716:                                            ; preds = %12694, %12687
  %12717 = load i32, ptr %277, align 4, !tbaa !5
  %12718 = call ptr @__errno_location() #13
  store i32 %12717, ptr %12718, align 4, !tbaa !5
  %12719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12720 = load i32, ptr @test_count, align 4, !tbaa !5
  %12721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12722 = load i32, ptr %12721, align 4, !tbaa !5
  %12723 = call ptr @s2n_strerror(i32 noundef %12722, ptr noundef @.str.6)
  %12724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12725 = load i32, ptr %12724, align 4, !tbaa !5
  %12726 = call ptr @s2n_strerror_debug(i32 noundef %12725, ptr noundef @.str.6)
  %12727 = call ptr @__errno_location() #13
  %12728 = load i32, ptr %12727, align 4, !tbaa !5
  %12729 = call ptr @strerror(i32 noundef %12728) #12
  %12730 = call ptr @__errno_location() #13
  %12731 = load i32, ptr %12730, align 4, !tbaa !5
  %12732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12719, ptr noundef @.str.7, i32 noundef %12720, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 526, ptr noundef %12723, ptr noundef %12726, ptr noundef %12729, i32 noundef %12731) #12
  br label %12733

12733:                                            ; preds = %12716, %12699
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #12
  br label %12734

12734:                                            ; preds = %12733
  br label %12735

12735:                                            ; preds = %12734
  call void @exit(i32 noundef 1) #14
  unreachable

12736:                                            ; No predecessors!
  br label %12737

12737:                                            ; preds = %12736
  br label %12738

12738:                                            ; preds = %12737, %12679
  br label %12739

12739:                                            ; preds = %12738
  br label %12740

12740:                                            ; preds = %12739
  br label %12741

12741:                                            ; preds = %12740
  %12742 = load i32, ptr @test_count, align 4, !tbaa !5
  %12743 = add nsw i32 %12742, 1
  store i32 %12743, ptr @test_count, align 4, !tbaa !5
  %12744 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %272, i64 0, i64 1
  %12745 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %12744, ptr noundef %273)
  %12746 = icmp eq i32 %12745, -1
  br i1 %12746, label %12747, label %12800

12747:                                            ; preds = %12741
  br label %12748

12748:                                            ; preds = %12747
  br label %12749

12749:                                            ; preds = %12748
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #12
  %12750 = call ptr @__errno_location() #13
  %12751 = load i32, ptr %12750, align 4, !tbaa !5
  store i32 %12751, ptr %278, align 4, !tbaa !5
  %12752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12753 = call i32 @s2n_print_stacktrace(ptr noundef %12752)
  %12754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12755 = trunc i8 %12754 to i1
  br i1 %12755, label %12756, label %12778

12756:                                            ; preds = %12749
  %12757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12758 = call i32 @fileno(ptr noundef %12757) #12
  %12759 = call i32 @isatty(i32 noundef %12758) #12
  %12760 = icmp ne i32 %12759, 0
  br i1 %12760, label %12761, label %12778

12761:                                            ; preds = %12756
  %12762 = load i32, ptr %278, align 4, !tbaa !5
  %12763 = call ptr @__errno_location() #13
  store i32 %12762, ptr %12763, align 4, !tbaa !5
  %12764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12765 = load i32, ptr @test_count, align 4, !tbaa !5
  %12766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12767 = load i32, ptr %12766, align 4, !tbaa !5
  %12768 = call ptr @s2n_strerror(i32 noundef %12767, ptr noundef @.str.6)
  %12769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12770 = load i32, ptr %12769, align 4, !tbaa !5
  %12771 = call ptr @s2n_strerror_debug(i32 noundef %12770, ptr noundef @.str.6)
  %12772 = call ptr @__errno_location() #13
  %12773 = load i32, ptr %12772, align 4, !tbaa !5
  %12774 = call ptr @strerror(i32 noundef %12773) #12
  %12775 = call ptr @__errno_location() #13
  %12776 = load i32, ptr %12775, align 4, !tbaa !5
  %12777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12764, ptr noundef @.str.4, i32 noundef %12765, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 527, ptr noundef %12768, ptr noundef %12771, ptr noundef %12774, i32 noundef %12776) #12
  br label %12795

12778:                                            ; preds = %12756, %12749
  %12779 = load i32, ptr %278, align 4, !tbaa !5
  %12780 = call ptr @__errno_location() #13
  store i32 %12779, ptr %12780, align 4, !tbaa !5
  %12781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12782 = load i32, ptr @test_count, align 4, !tbaa !5
  %12783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12784 = load i32, ptr %12783, align 4, !tbaa !5
  %12785 = call ptr @s2n_strerror(i32 noundef %12784, ptr noundef @.str.6)
  %12786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12787 = load i32, ptr %12786, align 4, !tbaa !5
  %12788 = call ptr @s2n_strerror_debug(i32 noundef %12787, ptr noundef @.str.6)
  %12789 = call ptr @__errno_location() #13
  %12790 = load i32, ptr %12789, align 4, !tbaa !5
  %12791 = call ptr @strerror(i32 noundef %12790) #12
  %12792 = call ptr @__errno_location() #13
  %12793 = load i32, ptr %12792, align 4, !tbaa !5
  %12794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12781, ptr noundef @.str.7, i32 noundef %12782, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 527, ptr noundef %12785, ptr noundef %12788, ptr noundef %12791, i32 noundef %12793) #12
  br label %12795

12795:                                            ; preds = %12778, %12761
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #12
  br label %12796

12796:                                            ; preds = %12795
  br label %12797

12797:                                            ; preds = %12796
  call void @exit(i32 noundef 1) #14
  unreachable

12798:                                            ; No predecessors!
  br label %12799

12799:                                            ; preds = %12798
  br label %12800

12800:                                            ; preds = %12799, %12741
  br label %12801

12801:                                            ; preds = %12800
  br label %12802

12802:                                            ; preds = %12801
  br label %12803

12803:                                            ; preds = %12802
  %12804 = load i32, ptr @test_count, align 4, !tbaa !5
  %12805 = add nsw i32 %12804, 1
  store i32 %12805, ptr @test_count, align 4, !tbaa !5
  %12806 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %275)
  %12807 = icmp eq i32 %12806, -1
  br i1 %12807, label %12808, label %12861

12808:                                            ; preds = %12803
  br label %12809

12809:                                            ; preds = %12808
  br label %12810

12810:                                            ; preds = %12809
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #12
  %12811 = call ptr @__errno_location() #13
  %12812 = load i32, ptr %12811, align 4, !tbaa !5
  store i32 %12812, ptr %279, align 4, !tbaa !5
  %12813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12814 = call i32 @s2n_print_stacktrace(ptr noundef %12813)
  %12815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12816 = trunc i8 %12815 to i1
  br i1 %12816, label %12817, label %12839

12817:                                            ; preds = %12810
  %12818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12819 = call i32 @fileno(ptr noundef %12818) #12
  %12820 = call i32 @isatty(i32 noundef %12819) #12
  %12821 = icmp ne i32 %12820, 0
  br i1 %12821, label %12822, label %12839

12822:                                            ; preds = %12817
  %12823 = load i32, ptr %279, align 4, !tbaa !5
  %12824 = call ptr @__errno_location() #13
  store i32 %12823, ptr %12824, align 4, !tbaa !5
  %12825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12826 = load i32, ptr @test_count, align 4, !tbaa !5
  %12827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12828 = load i32, ptr %12827, align 4, !tbaa !5
  %12829 = call ptr @s2n_strerror(i32 noundef %12828, ptr noundef @.str.6)
  %12830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12831 = load i32, ptr %12830, align 4, !tbaa !5
  %12832 = call ptr @s2n_strerror_debug(i32 noundef %12831, ptr noundef @.str.6)
  %12833 = call ptr @__errno_location() #13
  %12834 = load i32, ptr %12833, align 4, !tbaa !5
  %12835 = call ptr @strerror(i32 noundef %12834) #12
  %12836 = call ptr @__errno_location() #13
  %12837 = load i32, ptr %12836, align 4, !tbaa !5
  %12838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12825, ptr noundef @.str.4, i32 noundef %12826, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 528, ptr noundef %12829, ptr noundef %12832, ptr noundef %12835, i32 noundef %12837) #12
  br label %12856

12839:                                            ; preds = %12817, %12810
  %12840 = load i32, ptr %279, align 4, !tbaa !5
  %12841 = call ptr @__errno_location() #13
  store i32 %12840, ptr %12841, align 4, !tbaa !5
  %12842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12843 = load i32, ptr @test_count, align 4, !tbaa !5
  %12844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12845 = load i32, ptr %12844, align 4, !tbaa !5
  %12846 = call ptr @s2n_strerror(i32 noundef %12845, ptr noundef @.str.6)
  %12847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12848 = load i32, ptr %12847, align 4, !tbaa !5
  %12849 = call ptr @s2n_strerror_debug(i32 noundef %12848, ptr noundef @.str.6)
  %12850 = call ptr @__errno_location() #13
  %12851 = load i32, ptr %12850, align 4, !tbaa !5
  %12852 = call ptr @strerror(i32 noundef %12851) #12
  %12853 = call ptr @__errno_location() #13
  %12854 = load i32, ptr %12853, align 4, !tbaa !5
  %12855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12842, ptr noundef @.str.7, i32 noundef %12843, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 528, ptr noundef %12846, ptr noundef %12849, ptr noundef %12852, i32 noundef %12854) #12
  br label %12856

12856:                                            ; preds = %12839, %12822
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #12
  br label %12857

12857:                                            ; preds = %12856
  br label %12858

12858:                                            ; preds = %12857
  call void @exit(i32 noundef 1) #14
  unreachable

12859:                                            ; No predecessors!
  br label %12860

12860:                                            ; preds = %12859
  br label %12861

12861:                                            ; preds = %12860, %12803
  br label %12862

12862:                                            ; preds = %12861
  br label %12863

12863:                                            ; preds = %12862
  br label %12864

12864:                                            ; preds = %12863
  %12865 = load i32, ptr @test_count, align 4, !tbaa !5
  %12866 = add nsw i32 %12865, 1
  store i32 %12866, ptr @test_count, align 4, !tbaa !5
  %12867 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %12868 = load ptr, ptr %264, align 8, !tbaa !9
  %12869 = call i32 %12867(ptr noundef %12868, ptr noundef %273)
  %12870 = icmp eq i32 %12869, -1
  br i1 %12870, label %12871, label %12924

12871:                                            ; preds = %12864
  br label %12872

12872:                                            ; preds = %12871
  br label %12873

12873:                                            ; preds = %12872
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #12
  %12874 = call ptr @__errno_location() #13
  %12875 = load i32, ptr %12874, align 4, !tbaa !5
  store i32 %12875, ptr %280, align 4, !tbaa !5
  %12876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12877 = call i32 @s2n_print_stacktrace(ptr noundef %12876)
  %12878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12879 = trunc i8 %12878 to i1
  br i1 %12879, label %12880, label %12902

12880:                                            ; preds = %12873
  %12881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12882 = call i32 @fileno(ptr noundef %12881) #12
  %12883 = call i32 @isatty(i32 noundef %12882) #12
  %12884 = icmp ne i32 %12883, 0
  br i1 %12884, label %12885, label %12902

12885:                                            ; preds = %12880
  %12886 = load i32, ptr %280, align 4, !tbaa !5
  %12887 = call ptr @__errno_location() #13
  store i32 %12886, ptr %12887, align 4, !tbaa !5
  %12888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12889 = load i32, ptr @test_count, align 4, !tbaa !5
  %12890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12891 = load i32, ptr %12890, align 4, !tbaa !5
  %12892 = call ptr @s2n_strerror(i32 noundef %12891, ptr noundef @.str.6)
  %12893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12894 = load i32, ptr %12893, align 4, !tbaa !5
  %12895 = call ptr @s2n_strerror_debug(i32 noundef %12894, ptr noundef @.str.6)
  %12896 = call ptr @__errno_location() #13
  %12897 = load i32, ptr %12896, align 4, !tbaa !5
  %12898 = call ptr @strerror(i32 noundef %12897) #12
  %12899 = call ptr @__errno_location() #13
  %12900 = load i32, ptr %12899, align 4, !tbaa !5
  %12901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12888, ptr noundef @.str.4, i32 noundef %12889, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 530, ptr noundef %12892, ptr noundef %12895, ptr noundef %12898, i32 noundef %12900) #12
  br label %12919

12902:                                            ; preds = %12880, %12873
  %12903 = load i32, ptr %280, align 4, !tbaa !5
  %12904 = call ptr @__errno_location() #13
  store i32 %12903, ptr %12904, align 4, !tbaa !5
  %12905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12906 = load i32, ptr @test_count, align 4, !tbaa !5
  %12907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12908 = load i32, ptr %12907, align 4, !tbaa !5
  %12909 = call ptr @s2n_strerror(i32 noundef %12908, ptr noundef @.str.6)
  %12910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12911 = load i32, ptr %12910, align 4, !tbaa !5
  %12912 = call ptr @s2n_strerror_debug(i32 noundef %12911, ptr noundef @.str.6)
  %12913 = call ptr @__errno_location() #13
  %12914 = load i32, ptr %12913, align 4, !tbaa !5
  %12915 = call ptr @strerror(i32 noundef %12914) #12
  %12916 = call ptr @__errno_location() #13
  %12917 = load i32, ptr %12916, align 4, !tbaa !5
  %12918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12905, ptr noundef @.str.7, i32 noundef %12906, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 530, ptr noundef %12909, ptr noundef %12912, ptr noundef %12915, i32 noundef %12917) #12
  br label %12919

12919:                                            ; preds = %12902, %12885
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #12
  br label %12920

12920:                                            ; preds = %12919
  br label %12921

12921:                                            ; preds = %12920
  call void @exit(i32 noundef 1) #14
  unreachable

12922:                                            ; No predecessors!
  br label %12923

12923:                                            ; preds = %12922
  br label %12924

12924:                                            ; preds = %12923, %12864
  br label %12925

12925:                                            ; preds = %12924
  br label %12926

12926:                                            ; preds = %12925
  br label %12927

12927:                                            ; preds = %12926
  %12928 = load i32, ptr @test_count, align 4, !tbaa !5
  %12929 = add nsw i32 %12928, 1
  store i32 %12929, ptr @test_count, align 4, !tbaa !5
  %12930 = getelementptr inbounds %struct.s2n_stuffer, ptr %273, i32 0, i32 2
  %12931 = load i32, ptr %12930, align 4, !tbaa !18
  %12932 = getelementptr inbounds %struct.s2n_stuffer, ptr %273, i32 0, i32 1
  %12933 = load i32, ptr %12932, align 8, !tbaa !21
  %12934 = sub i32 %12931, %12933
  %12935 = icmp eq i32 %12934, 0
  br i1 %12935, label %12989, label %12936

12936:                                            ; preds = %12927
  br label %12937

12937:                                            ; preds = %12936
  br label %12938

12938:                                            ; preds = %12937
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #12
  %12939 = call ptr @__errno_location() #13
  %12940 = load i32, ptr %12939, align 4, !tbaa !5
  store i32 %12940, ptr %281, align 4, !tbaa !5
  %12941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12942 = call i32 @s2n_print_stacktrace(ptr noundef %12941)
  %12943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12944 = trunc i8 %12943 to i1
  br i1 %12944, label %12945, label %12967

12945:                                            ; preds = %12938
  %12946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12947 = call i32 @fileno(ptr noundef %12946) #12
  %12948 = call i32 @isatty(i32 noundef %12947) #12
  %12949 = icmp ne i32 %12948, 0
  br i1 %12949, label %12950, label %12967

12950:                                            ; preds = %12945
  %12951 = load i32, ptr %281, align 4, !tbaa !5
  %12952 = call ptr @__errno_location() #13
  store i32 %12951, ptr %12952, align 4, !tbaa !5
  %12953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12954 = load i32, ptr @test_count, align 4, !tbaa !5
  %12955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12956 = load i32, ptr %12955, align 4, !tbaa !5
  %12957 = call ptr @s2n_strerror(i32 noundef %12956, ptr noundef @.str.6)
  %12958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12959 = load i32, ptr %12958, align 4, !tbaa !5
  %12960 = call ptr @s2n_strerror_debug(i32 noundef %12959, ptr noundef @.str.6)
  %12961 = call ptr @__errno_location() #13
  %12962 = load i32, ptr %12961, align 4, !tbaa !5
  %12963 = call ptr @strerror(i32 noundef %12962) #12
  %12964 = call ptr @__errno_location() #13
  %12965 = load i32, ptr %12964, align 4, !tbaa !5
  %12966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12953, ptr noundef @.str.4, i32 noundef %12954, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 531, ptr noundef %12957, ptr noundef %12960, ptr noundef %12963, i32 noundef %12965) #12
  br label %12984

12967:                                            ; preds = %12945, %12938
  %12968 = load i32, ptr %281, align 4, !tbaa !5
  %12969 = call ptr @__errno_location() #13
  store i32 %12968, ptr %12969, align 4, !tbaa !5
  %12970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12971 = load i32, ptr @test_count, align 4, !tbaa !5
  %12972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12973 = load i32, ptr %12972, align 4, !tbaa !5
  %12974 = call ptr @s2n_strerror(i32 noundef %12973, ptr noundef @.str.6)
  %12975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12976 = load i32, ptr %12975, align 4, !tbaa !5
  %12977 = call ptr @s2n_strerror_debug(i32 noundef %12976, ptr noundef @.str.6)
  %12978 = call ptr @__errno_location() #13
  %12979 = load i32, ptr %12978, align 4, !tbaa !5
  %12980 = call ptr @strerror(i32 noundef %12979) #12
  %12981 = call ptr @__errno_location() #13
  %12982 = load i32, ptr %12981, align 4, !tbaa !5
  %12983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12970, ptr noundef @.str.7, i32 noundef %12971, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 531, ptr noundef %12974, ptr noundef %12977, ptr noundef %12980, i32 noundef %12982) #12
  br label %12984

12984:                                            ; preds = %12967, %12950
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #12
  br label %12985

12985:                                            ; preds = %12984
  br label %12986

12986:                                            ; preds = %12985
  call void @exit(i32 noundef 1) #14
  unreachable

12987:                                            ; No predecessors!
  br label %12988

12988:                                            ; preds = %12987
  br label %12989

12989:                                            ; preds = %12988, %12927
  br label %12990

12990:                                            ; preds = %12989
  br label %12991

12991:                                            ; preds = %12990
  br label %12992

12992:                                            ; preds = %12991
  %12993 = load i32, ptr @test_count, align 4, !tbaa !5
  %12994 = add nsw i32 %12993, 1
  store i32 %12994, ptr @test_count, align 4, !tbaa !5
  %12995 = load ptr, ptr %264, align 8, !tbaa !9
  %12996 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %12995, i32 noundef 16)
  br i1 %12996, label %12997, label %13050

12997:                                            ; preds = %12992
  br label %12998

12998:                                            ; preds = %12997
  br label %12999

12999:                                            ; preds = %12998
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #12
  %13000 = call ptr @__errno_location() #13
  %13001 = load i32, ptr %13000, align 4, !tbaa !5
  store i32 %13001, ptr %282, align 4, !tbaa !5
  %13002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13003 = call i32 @s2n_print_stacktrace(ptr noundef %13002)
  %13004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13005 = trunc i8 %13004 to i1
  br i1 %13005, label %13006, label %13028

13006:                                            ; preds = %12999
  %13007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13008 = call i32 @fileno(ptr noundef %13007) #12
  %13009 = call i32 @isatty(i32 noundef %13008) #12
  %13010 = icmp ne i32 %13009, 0
  br i1 %13010, label %13011, label %13028

13011:                                            ; preds = %13006
  %13012 = load i32, ptr %282, align 4, !tbaa !5
  %13013 = call ptr @__errno_location() #13
  store i32 %13012, ptr %13013, align 4, !tbaa !5
  %13014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13015 = load i32, ptr @test_count, align 4, !tbaa !5
  %13016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13017 = load i32, ptr %13016, align 4, !tbaa !5
  %13018 = call ptr @s2n_strerror(i32 noundef %13017, ptr noundef @.str.6)
  %13019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13020 = load i32, ptr %13019, align 4, !tbaa !5
  %13021 = call ptr @s2n_strerror_debug(i32 noundef %13020, ptr noundef @.str.6)
  %13022 = call ptr @__errno_location() #13
  %13023 = load i32, ptr %13022, align 4, !tbaa !5
  %13024 = call ptr @strerror(i32 noundef %13023) #12
  %13025 = call ptr @__errno_location() #13
  %13026 = load i32, ptr %13025, align 4, !tbaa !5
  %13027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13014, ptr noundef @.str.4, i32 noundef %13015, ptr noundef @.str.95, ptr noundef @.str.3, i32 noundef 534, ptr noundef %13018, ptr noundef %13021, ptr noundef %13024, i32 noundef %13026) #12
  br label %13045

13028:                                            ; preds = %13006, %12999
  %13029 = load i32, ptr %282, align 4, !tbaa !5
  %13030 = call ptr @__errno_location() #13
  store i32 %13029, ptr %13030, align 4, !tbaa !5
  %13031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13032 = load i32, ptr @test_count, align 4, !tbaa !5
  %13033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13034 = load i32, ptr %13033, align 4, !tbaa !5
  %13035 = call ptr @s2n_strerror(i32 noundef %13034, ptr noundef @.str.6)
  %13036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13037 = load i32, ptr %13036, align 4, !tbaa !5
  %13038 = call ptr @s2n_strerror_debug(i32 noundef %13037, ptr noundef @.str.6)
  %13039 = call ptr @__errno_location() #13
  %13040 = load i32, ptr %13039, align 4, !tbaa !5
  %13041 = call ptr @strerror(i32 noundef %13040) #12
  %13042 = call ptr @__errno_location() #13
  %13043 = load i32, ptr %13042, align 4, !tbaa !5
  %13044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13031, ptr noundef @.str.7, i32 noundef %13032, ptr noundef @.str.95, ptr noundef @.str.3, i32 noundef 534, ptr noundef %13035, ptr noundef %13038, ptr noundef %13041, i32 noundef %13043) #12
  br label %13045

13045:                                            ; preds = %13028, %13011
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #12
  br label %13046

13046:                                            ; preds = %13045
  br label %13047

13047:                                            ; preds = %13046
  call void @exit(i32 noundef 1) #14
  unreachable

13048:                                            ; No predecessors!
  br label %13049

13049:                                            ; preds = %13048
  br label %13050

13050:                                            ; preds = %13049, %12992
  br label %13051

13051:                                            ; preds = %13050
  br label %13052

13052:                                            ; preds = %13051
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #12
  %13053 = load ptr, ptr %264, align 8, !tbaa !9
  %13054 = getelementptr inbounds %struct.s2n_connection, ptr %13053, i32 0, i32 31
  %13055 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13054, i32 0, i32 3
  store ptr %13055, ptr %283, align 8, !tbaa !9
  br label %13056

13056:                                            ; preds = %13052
  %13057 = load i32, ptr @test_count, align 4, !tbaa !5
  %13058 = add nsw i32 %13057, 1
  store i32 %13058, ptr @test_count, align 4, !tbaa !5
  %13059 = load ptr, ptr %283, align 8, !tbaa !9
  %13060 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13059, i32 0, i32 0
  %13061 = load ptr, ptr %13060, align 8, !tbaa !22
  %13062 = icmp eq ptr %13061, null
  br i1 %13062, label %13063, label %13116

13063:                                            ; preds = %13056
  br label %13064

13064:                                            ; preds = %13063
  br label %13065

13065:                                            ; preds = %13064
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #12
  %13066 = call ptr @__errno_location() #13
  %13067 = load i32, ptr %13066, align 4, !tbaa !5
  store i32 %13067, ptr %284, align 4, !tbaa !5
  %13068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13069 = call i32 @s2n_print_stacktrace(ptr noundef %13068)
  %13070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13071 = trunc i8 %13070 to i1
  br i1 %13071, label %13072, label %13094

13072:                                            ; preds = %13065
  %13073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13074 = call i32 @fileno(ptr noundef %13073) #12
  %13075 = call i32 @isatty(i32 noundef %13074) #12
  %13076 = icmp ne i32 %13075, 0
  br i1 %13076, label %13077, label %13094

13077:                                            ; preds = %13072
  %13078 = load i32, ptr %284, align 4, !tbaa !5
  %13079 = call ptr @__errno_location() #13
  store i32 %13078, ptr %13079, align 4, !tbaa !5
  %13080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13081 = load i32, ptr @test_count, align 4, !tbaa !5
  %13082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13083 = load i32, ptr %13082, align 4, !tbaa !5
  %13084 = call ptr @s2n_strerror(i32 noundef %13083, ptr noundef @.str.6)
  %13085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13086 = load i32, ptr %13085, align 4, !tbaa !5
  %13087 = call ptr @s2n_strerror_debug(i32 noundef %13086, ptr noundef @.str.6)
  %13088 = call ptr @__errno_location() #13
  %13089 = load i32, ptr %13088, align 4, !tbaa !5
  %13090 = call ptr @strerror(i32 noundef %13089) #12
  %13091 = call ptr @__errno_location() #13
  %13092 = load i32, ptr %13091, align 4, !tbaa !5
  %13093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13080, ptr noundef @.str.4, i32 noundef %13081, ptr noundef @.str.64, ptr noundef @.str.3, i32 noundef 538, ptr noundef %13084, ptr noundef %13087, ptr noundef %13090, i32 noundef %13092) #12
  br label %13111

13094:                                            ; preds = %13072, %13065
  %13095 = load i32, ptr %284, align 4, !tbaa !5
  %13096 = call ptr @__errno_location() #13
  store i32 %13095, ptr %13096, align 4, !tbaa !5
  %13097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13098 = load i32, ptr @test_count, align 4, !tbaa !5
  %13099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13100 = load i32, ptr %13099, align 4, !tbaa !5
  %13101 = call ptr @s2n_strerror(i32 noundef %13100, ptr noundef @.str.6)
  %13102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13103 = load i32, ptr %13102, align 4, !tbaa !5
  %13104 = call ptr @s2n_strerror_debug(i32 noundef %13103, ptr noundef @.str.6)
  %13105 = call ptr @__errno_location() #13
  %13106 = load i32, ptr %13105, align 4, !tbaa !5
  %13107 = call ptr @strerror(i32 noundef %13106) #12
  %13108 = call ptr @__errno_location() #13
  %13109 = load i32, ptr %13108, align 4, !tbaa !5
  %13110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13097, ptr noundef @.str.7, i32 noundef %13098, ptr noundef @.str.64, ptr noundef @.str.3, i32 noundef 538, ptr noundef %13101, ptr noundef %13104, ptr noundef %13107, i32 noundef %13109) #12
  br label %13111

13111:                                            ; preds = %13094, %13077
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #12
  br label %13112

13112:                                            ; preds = %13111
  br label %13113

13113:                                            ; preds = %13112
  call void @exit(i32 noundef 1) #14
  unreachable

13114:                                            ; No predecessors!
  br label %13115

13115:                                            ; preds = %13114
  br label %13116

13116:                                            ; preds = %13115, %13056
  br label %13117

13117:                                            ; preds = %13116
  br label %13118

13118:                                            ; preds = %13117
  br label %13119

13119:                                            ; preds = %13118
  %13120 = load i32, ptr @test_count, align 4, !tbaa !5
  %13121 = add nsw i32 %13120, 1
  store i32 %13121, ptr @test_count, align 4, !tbaa !5
  %13122 = load ptr, ptr %283, align 8, !tbaa !9
  %13123 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13122, i32 0, i32 1
  %13124 = load ptr, ptr %13123, align 8, !tbaa !26
  %13125 = icmp eq ptr %13124, null
  br i1 %13125, label %13126, label %13179

13126:                                            ; preds = %13119
  br label %13127

13127:                                            ; preds = %13126
  br label %13128

13128:                                            ; preds = %13127
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #12
  %13129 = call ptr @__errno_location() #13
  %13130 = load i32, ptr %13129, align 4, !tbaa !5
  store i32 %13130, ptr %285, align 4, !tbaa !5
  %13131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13132 = call i32 @s2n_print_stacktrace(ptr noundef %13131)
  %13133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13134 = trunc i8 %13133 to i1
  br i1 %13134, label %13135, label %13157

13135:                                            ; preds = %13128
  %13136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13137 = call i32 @fileno(ptr noundef %13136) #12
  %13138 = call i32 @isatty(i32 noundef %13137) #12
  %13139 = icmp ne i32 %13138, 0
  br i1 %13139, label %13140, label %13157

13140:                                            ; preds = %13135
  %13141 = load i32, ptr %285, align 4, !tbaa !5
  %13142 = call ptr @__errno_location() #13
  store i32 %13141, ptr %13142, align 4, !tbaa !5
  %13143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13144 = load i32, ptr @test_count, align 4, !tbaa !5
  %13145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13146 = load i32, ptr %13145, align 4, !tbaa !5
  %13147 = call ptr @s2n_strerror(i32 noundef %13146, ptr noundef @.str.6)
  %13148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13149 = load i32, ptr %13148, align 4, !tbaa !5
  %13150 = call ptr @s2n_strerror_debug(i32 noundef %13149, ptr noundef @.str.6)
  %13151 = call ptr @__errno_location() #13
  %13152 = load i32, ptr %13151, align 4, !tbaa !5
  %13153 = call ptr @strerror(i32 noundef %13152) #12
  %13154 = call ptr @__errno_location() #13
  %13155 = load i32, ptr %13154, align 4, !tbaa !5
  %13156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13143, ptr noundef @.str.4, i32 noundef %13144, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 539, ptr noundef %13147, ptr noundef %13150, ptr noundef %13153, i32 noundef %13155) #12
  br label %13174

13157:                                            ; preds = %13135, %13128
  %13158 = load i32, ptr %285, align 4, !tbaa !5
  %13159 = call ptr @__errno_location() #13
  store i32 %13158, ptr %13159, align 4, !tbaa !5
  %13160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13161 = load i32, ptr @test_count, align 4, !tbaa !5
  %13162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13163 = load i32, ptr %13162, align 4, !tbaa !5
  %13164 = call ptr @s2n_strerror(i32 noundef %13163, ptr noundef @.str.6)
  %13165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13166 = load i32, ptr %13165, align 4, !tbaa !5
  %13167 = call ptr @s2n_strerror_debug(i32 noundef %13166, ptr noundef @.str.6)
  %13168 = call ptr @__errno_location() #13
  %13169 = load i32, ptr %13168, align 4, !tbaa !5
  %13170 = call ptr @strerror(i32 noundef %13169) #12
  %13171 = call ptr @__errno_location() #13
  %13172 = load i32, ptr %13171, align 4, !tbaa !5
  %13173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13160, ptr noundef @.str.7, i32 noundef %13161, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 539, ptr noundef %13164, ptr noundef %13167, ptr noundef %13170, i32 noundef %13172) #12
  br label %13174

13174:                                            ; preds = %13157, %13140
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #12
  br label %13175

13175:                                            ; preds = %13174
  br label %13176

13176:                                            ; preds = %13175
  call void @exit(i32 noundef 1) #14
  unreachable

13177:                                            ; No predecessors!
  br label %13178

13178:                                            ; preds = %13177
  br label %13179

13179:                                            ; preds = %13178, %13119
  br label %13180

13180:                                            ; preds = %13179
  br label %13181

13181:                                            ; preds = %13180
  br label %13182

13182:                                            ; preds = %13181
  %13183 = load i32, ptr @test_count, align 4, !tbaa !5
  %13184 = add nsw i32 %13183, 1
  store i32 %13184, ptr @test_count, align 4, !tbaa !5
  %13185 = load ptr, ptr %283, align 8, !tbaa !9
  %13186 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %272, i64 0, i64 0
  %13187 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %13185, ptr noundef %13186)
  %13188 = icmp ne i32 %13187, 0
  br i1 %13188, label %13242, label %13189

13189:                                            ; preds = %13182
  br label %13190

13190:                                            ; preds = %13189
  br label %13191

13191:                                            ; preds = %13190
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #12
  %13192 = call ptr @__errno_location() #13
  %13193 = load i32, ptr %13192, align 4, !tbaa !5
  store i32 %13193, ptr %286, align 4, !tbaa !5
  %13194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13195 = call i32 @s2n_print_stacktrace(ptr noundef %13194)
  %13196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13197 = trunc i8 %13196 to i1
  br i1 %13197, label %13198, label %13220

13198:                                            ; preds = %13191
  %13199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13200 = call i32 @fileno(ptr noundef %13199) #12
  %13201 = call i32 @isatty(i32 noundef %13200) #12
  %13202 = icmp ne i32 %13201, 0
  br i1 %13202, label %13203, label %13220

13203:                                            ; preds = %13198
  %13204 = load i32, ptr %286, align 4, !tbaa !5
  %13205 = call ptr @__errno_location() #13
  store i32 %13204, ptr %13205, align 4, !tbaa !5
  %13206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13207 = load i32, ptr @test_count, align 4, !tbaa !5
  %13208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13209 = load i32, ptr %13208, align 4, !tbaa !5
  %13210 = call ptr @s2n_strerror(i32 noundef %13209, ptr noundef @.str.6)
  %13211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13212 = load i32, ptr %13211, align 4, !tbaa !5
  %13213 = call ptr @s2n_strerror_debug(i32 noundef %13212, ptr noundef @.str.6)
  %13214 = call ptr @__errno_location() #13
  %13215 = load i32, ptr %13214, align 4, !tbaa !5
  %13216 = call ptr @strerror(i32 noundef %13215) #12
  %13217 = call ptr @__errno_location() #13
  %13218 = load i32, ptr %13217, align 4, !tbaa !5
  %13219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13206, ptr noundef @.str.4, i32 noundef %13207, ptr noundef @.str.100, ptr noundef @.str.3, i32 noundef 540, ptr noundef %13210, ptr noundef %13213, ptr noundef %13216, i32 noundef %13218) #12
  br label %13237

13220:                                            ; preds = %13198, %13191
  %13221 = load i32, ptr %286, align 4, !tbaa !5
  %13222 = call ptr @__errno_location() #13
  store i32 %13221, ptr %13222, align 4, !tbaa !5
  %13223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13224 = load i32, ptr @test_count, align 4, !tbaa !5
  %13225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13226 = load i32, ptr %13225, align 4, !tbaa !5
  %13227 = call ptr @s2n_strerror(i32 noundef %13226, ptr noundef @.str.6)
  %13228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13229 = load i32, ptr %13228, align 4, !tbaa !5
  %13230 = call ptr @s2n_strerror_debug(i32 noundef %13229, ptr noundef @.str.6)
  %13231 = call ptr @__errno_location() #13
  %13232 = load i32, ptr %13231, align 4, !tbaa !5
  %13233 = call ptr @strerror(i32 noundef %13232) #12
  %13234 = call ptr @__errno_location() #13
  %13235 = load i32, ptr %13234, align 4, !tbaa !5
  %13236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13223, ptr noundef @.str.7, i32 noundef %13224, ptr noundef @.str.100, ptr noundef @.str.3, i32 noundef 540, ptr noundef %13227, ptr noundef %13230, ptr noundef %13233, i32 noundef %13235) #12
  br label %13237

13237:                                            ; preds = %13220, %13203
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #12
  br label %13238

13238:                                            ; preds = %13237
  br label %13239

13239:                                            ; preds = %13238
  call void @exit(i32 noundef 1) #14
  unreachable

13240:                                            ; No predecessors!
  br label %13241

13241:                                            ; preds = %13240
  br label %13242

13242:                                            ; preds = %13241, %13182
  br label %13243

13243:                                            ; preds = %13242
  br label %13244

13244:                                            ; preds = %13243
  call void @llvm.lifetime.start.p0(i64 8, ptr %287) #12
  store i64 0, ptr %287, align 8, !tbaa !65
  br label %13245

13245:                                            ; preds = %13313, %13244
  %13246 = load i64, ptr %287, align 8, !tbaa !65
  %13247 = icmp ult i64 %13246, 2
  br i1 %13247, label %13249, label %13248

13248:                                            ; preds = %13245
  store i32 1214, ptr %126, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #12
  br label %13316

13249:                                            ; preds = %13245
  br label %13250

13250:                                            ; preds = %13249
  %13251 = load i32, ptr @test_count, align 4, !tbaa !5
  %13252 = add nsw i32 %13251, 1
  store i32 %13252, ptr @test_count, align 4, !tbaa !5
  %13253 = load i64, ptr %287, align 8, !tbaa !65
  %13254 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %272, i64 0, i64 %13253
  %13255 = call i32 @s2n_ecc_evp_params_free(ptr noundef %13254)
  %13256 = icmp eq i32 %13255, -1
  br i1 %13256, label %13257, label %13310

13257:                                            ; preds = %13250
  br label %13258

13258:                                            ; preds = %13257
  br label %13259

13259:                                            ; preds = %13258
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #12
  %13260 = call ptr @__errno_location() #13
  %13261 = load i32, ptr %13260, align 4, !tbaa !5
  store i32 %13261, ptr %288, align 4, !tbaa !5
  %13262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13263 = call i32 @s2n_print_stacktrace(ptr noundef %13262)
  %13264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13265 = trunc i8 %13264 to i1
  br i1 %13265, label %13266, label %13288

13266:                                            ; preds = %13259
  %13267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13268 = call i32 @fileno(ptr noundef %13267) #12
  %13269 = call i32 @isatty(i32 noundef %13268) #12
  %13270 = icmp ne i32 %13269, 0
  br i1 %13270, label %13271, label %13288

13271:                                            ; preds = %13266
  %13272 = load i32, ptr %288, align 4, !tbaa !5
  %13273 = call ptr @__errno_location() #13
  store i32 %13272, ptr %13273, align 4, !tbaa !5
  %13274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13275 = load i32, ptr @test_count, align 4, !tbaa !5
  %13276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13277 = load i32, ptr %13276, align 4, !tbaa !5
  %13278 = call ptr @s2n_strerror(i32 noundef %13277, ptr noundef @.str.6)
  %13279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13280 = load i32, ptr %13279, align 4, !tbaa !5
  %13281 = call ptr @s2n_strerror_debug(i32 noundef %13280, ptr noundef @.str.6)
  %13282 = call ptr @__errno_location() #13
  %13283 = load i32, ptr %13282, align 4, !tbaa !5
  %13284 = call ptr @strerror(i32 noundef %13283) #12
  %13285 = call ptr @__errno_location() #13
  %13286 = load i32, ptr %13285, align 4, !tbaa !5
  %13287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13274, ptr noundef @.str.4, i32 noundef %13275, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 543, ptr noundef %13278, ptr noundef %13281, ptr noundef %13284, i32 noundef %13286) #12
  br label %13305

13288:                                            ; preds = %13266, %13259
  %13289 = load i32, ptr %288, align 4, !tbaa !5
  %13290 = call ptr @__errno_location() #13
  store i32 %13289, ptr %13290, align 4, !tbaa !5
  %13291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13292 = load i32, ptr @test_count, align 4, !tbaa !5
  %13293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13294 = load i32, ptr %13293, align 4, !tbaa !5
  %13295 = call ptr @s2n_strerror(i32 noundef %13294, ptr noundef @.str.6)
  %13296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13297 = load i32, ptr %13296, align 4, !tbaa !5
  %13298 = call ptr @s2n_strerror_debug(i32 noundef %13297, ptr noundef @.str.6)
  %13299 = call ptr @__errno_location() #13
  %13300 = load i32, ptr %13299, align 4, !tbaa !5
  %13301 = call ptr @strerror(i32 noundef %13300) #12
  %13302 = call ptr @__errno_location() #13
  %13303 = load i32, ptr %13302, align 4, !tbaa !5
  %13304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13291, ptr noundef @.str.7, i32 noundef %13292, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 543, ptr noundef %13295, ptr noundef %13298, ptr noundef %13301, i32 noundef %13303) #12
  br label %13305

13305:                                            ; preds = %13288, %13271
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #12
  br label %13306

13306:                                            ; preds = %13305
  br label %13307

13307:                                            ; preds = %13306
  call void @exit(i32 noundef 1) #14
  unreachable

13308:                                            ; No predecessors!
  br label %13309

13309:                                            ; preds = %13308
  br label %13310

13310:                                            ; preds = %13309, %13250
  br label %13311

13311:                                            ; preds = %13310
  br label %13312

13312:                                            ; preds = %13311
  br label %13313

13313:                                            ; preds = %13312
  %13314 = load i64, ptr %287, align 8, !tbaa !65
  %13315 = add i64 %13314, 1
  store i64 %13315, ptr %287, align 8, !tbaa !65
  br label %13245, !llvm.loop !66

13316:                                            ; preds = %13248
  br label %13317

13317:                                            ; preds = %13316
  %13318 = load i32, ptr @test_count, align 4, !tbaa !5
  %13319 = add nsw i32 %13318, 1
  store i32 %13319, ptr @test_count, align 4, !tbaa !5
  %13320 = call i32 @s2n_stuffer_free(ptr noundef %273)
  %13321 = icmp eq i32 %13320, -1
  br i1 %13321, label %13322, label %13375

13322:                                            ; preds = %13317
  br label %13323

13323:                                            ; preds = %13322
  br label %13324

13324:                                            ; preds = %13323
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #12
  %13325 = call ptr @__errno_location() #13
  %13326 = load i32, ptr %13325, align 4, !tbaa !5
  store i32 %13326, ptr %289, align 4, !tbaa !5
  %13327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13328 = call i32 @s2n_print_stacktrace(ptr noundef %13327)
  %13329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13330 = trunc i8 %13329 to i1
  br i1 %13330, label %13331, label %13353

13331:                                            ; preds = %13324
  %13332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13333 = call i32 @fileno(ptr noundef %13332) #12
  %13334 = call i32 @isatty(i32 noundef %13333) #12
  %13335 = icmp ne i32 %13334, 0
  br i1 %13335, label %13336, label %13353

13336:                                            ; preds = %13331
  %13337 = load i32, ptr %289, align 4, !tbaa !5
  %13338 = call ptr @__errno_location() #13
  store i32 %13337, ptr %13338, align 4, !tbaa !5
  %13339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13340 = load i32, ptr @test_count, align 4, !tbaa !5
  %13341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13342 = load i32, ptr %13341, align 4, !tbaa !5
  %13343 = call ptr @s2n_strerror(i32 noundef %13342, ptr noundef @.str.6)
  %13344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13345 = load i32, ptr %13344, align 4, !tbaa !5
  %13346 = call ptr @s2n_strerror_debug(i32 noundef %13345, ptr noundef @.str.6)
  %13347 = call ptr @__errno_location() #13
  %13348 = load i32, ptr %13347, align 4, !tbaa !5
  %13349 = call ptr @strerror(i32 noundef %13348) #12
  %13350 = call ptr @__errno_location() #13
  %13351 = load i32, ptr %13350, align 4, !tbaa !5
  %13352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13339, ptr noundef @.str.4, i32 noundef %13340, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 545, ptr noundef %13343, ptr noundef %13346, ptr noundef %13349, i32 noundef %13351) #12
  br label %13370

13353:                                            ; preds = %13331, %13324
  %13354 = load i32, ptr %289, align 4, !tbaa !5
  %13355 = call ptr @__errno_location() #13
  store i32 %13354, ptr %13355, align 4, !tbaa !5
  %13356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13357 = load i32, ptr @test_count, align 4, !tbaa !5
  %13358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13359 = load i32, ptr %13358, align 4, !tbaa !5
  %13360 = call ptr @s2n_strerror(i32 noundef %13359, ptr noundef @.str.6)
  %13361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13362 = load i32, ptr %13361, align 4, !tbaa !5
  %13363 = call ptr @s2n_strerror_debug(i32 noundef %13362, ptr noundef @.str.6)
  %13364 = call ptr @__errno_location() #13
  %13365 = load i32, ptr %13364, align 4, !tbaa !5
  %13366 = call ptr @strerror(i32 noundef %13365) #12
  %13367 = call ptr @__errno_location() #13
  %13368 = load i32, ptr %13367, align 4, !tbaa !5
  %13369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13356, ptr noundef @.str.7, i32 noundef %13357, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 545, ptr noundef %13360, ptr noundef %13363, ptr noundef %13366, i32 noundef %13368) #12
  br label %13370

13370:                                            ; preds = %13353, %13336
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #12
  br label %13371

13371:                                            ; preds = %13370
  br label %13372

13372:                                            ; preds = %13371
  call void @exit(i32 noundef 1) #14
  unreachable

13373:                                            ; No predecessors!
  br label %13374

13374:                                            ; preds = %13373
  br label %13375

13375:                                            ; preds = %13374, %13317
  br label %13376

13376:                                            ; preds = %13375
  br label %13377

13377:                                            ; preds = %13376
  br label %13378

13378:                                            ; preds = %13377
  %13379 = load i32, ptr @test_count, align 4, !tbaa !5
  %13380 = add nsw i32 %13379, 1
  store i32 %13380, ptr @test_count, align 4, !tbaa !5
  %13381 = load ptr, ptr %264, align 8, !tbaa !9
  %13382 = call i32 @s2n_connection_free(ptr noundef %13381)
  %13383 = icmp eq i32 %13382, -1
  br i1 %13383, label %13384, label %13437

13384:                                            ; preds = %13378
  br label %13385

13385:                                            ; preds = %13384
  br label %13386

13386:                                            ; preds = %13385
  call void @llvm.lifetime.start.p0(i64 4, ptr %290) #12
  %13387 = call ptr @__errno_location() #13
  %13388 = load i32, ptr %13387, align 4, !tbaa !5
  store i32 %13388, ptr %290, align 4, !tbaa !5
  %13389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13390 = call i32 @s2n_print_stacktrace(ptr noundef %13389)
  %13391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13392 = trunc i8 %13391 to i1
  br i1 %13392, label %13393, label %13415

13393:                                            ; preds = %13386
  %13394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13395 = call i32 @fileno(ptr noundef %13394) #12
  %13396 = call i32 @isatty(i32 noundef %13395) #12
  %13397 = icmp ne i32 %13396, 0
  br i1 %13397, label %13398, label %13415

13398:                                            ; preds = %13393
  %13399 = load i32, ptr %290, align 4, !tbaa !5
  %13400 = call ptr @__errno_location() #13
  store i32 %13399, ptr %13400, align 4, !tbaa !5
  %13401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13402 = load i32, ptr @test_count, align 4, !tbaa !5
  %13403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13404 = load i32, ptr %13403, align 4, !tbaa !5
  %13405 = call ptr @s2n_strerror(i32 noundef %13404, ptr noundef @.str.6)
  %13406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13407 = load i32, ptr %13406, align 4, !tbaa !5
  %13408 = call ptr @s2n_strerror_debug(i32 noundef %13407, ptr noundef @.str.6)
  %13409 = call ptr @__errno_location() #13
  %13410 = load i32, ptr %13409, align 4, !tbaa !5
  %13411 = call ptr @strerror(i32 noundef %13410) #12
  %13412 = call ptr @__errno_location() #13
  %13413 = load i32, ptr %13412, align 4, !tbaa !5
  %13414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13401, ptr noundef @.str.4, i32 noundef %13402, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 546, ptr noundef %13405, ptr noundef %13408, ptr noundef %13411, i32 noundef %13413) #12
  br label %13432

13415:                                            ; preds = %13393, %13386
  %13416 = load i32, ptr %290, align 4, !tbaa !5
  %13417 = call ptr @__errno_location() #13
  store i32 %13416, ptr %13417, align 4, !tbaa !5
  %13418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13419 = load i32, ptr @test_count, align 4, !tbaa !5
  %13420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13421 = load i32, ptr %13420, align 4, !tbaa !5
  %13422 = call ptr @s2n_strerror(i32 noundef %13421, ptr noundef @.str.6)
  %13423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13424 = load i32, ptr %13423, align 4, !tbaa !5
  %13425 = call ptr @s2n_strerror_debug(i32 noundef %13424, ptr noundef @.str.6)
  %13426 = call ptr @__errno_location() #13
  %13427 = load i32, ptr %13426, align 4, !tbaa !5
  %13428 = call ptr @strerror(i32 noundef %13427) #12
  %13429 = call ptr @__errno_location() #13
  %13430 = load i32, ptr %13429, align 4, !tbaa !5
  %13431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13418, ptr noundef @.str.7, i32 noundef %13419, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 546, ptr noundef %13422, ptr noundef %13425, ptr noundef %13428, i32 noundef %13430) #12
  br label %13432

13432:                                            ; preds = %13415, %13398
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #12
  br label %13433

13433:                                            ; preds = %13432
  br label %13434

13434:                                            ; preds = %13433
  call void @exit(i32 noundef 1) #14
  unreachable

13435:                                            ; No predecessors!
  br label %13436

13436:                                            ; preds = %13435
  br label %13437

13437:                                            ; preds = %13436, %13378
  br label %13438

13438:                                            ; preds = %13437
  br label %13439

13439:                                            ; preds = %13438
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %275) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %273) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %268) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #12
  %13440 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %13440, ptr %291, align 8, !tbaa !9
  br label %13441

13441:                                            ; preds = %13439
  %13442 = load i32, ptr @test_count, align 4, !tbaa !5
  %13443 = add nsw i32 %13442, 1
  store i32 %13443, ptr @test_count, align 4, !tbaa !5
  %13444 = load ptr, ptr %291, align 8, !tbaa !9
  %13445 = icmp eq ptr %13444, null
  br i1 %13445, label %13446, label %13499

13446:                                            ; preds = %13441
  br label %13447

13447:                                            ; preds = %13446
  br label %13448

13448:                                            ; preds = %13447
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #12
  %13449 = call ptr @__errno_location() #13
  %13450 = load i32, ptr %13449, align 4, !tbaa !5
  store i32 %13450, ptr %292, align 4, !tbaa !5
  %13451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13452 = call i32 @s2n_print_stacktrace(ptr noundef %13451)
  %13453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13454 = trunc i8 %13453 to i1
  br i1 %13454, label %13455, label %13477

13455:                                            ; preds = %13448
  %13456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13457 = call i32 @fileno(ptr noundef %13456) #12
  %13458 = call i32 @isatty(i32 noundef %13457) #12
  %13459 = icmp ne i32 %13458, 0
  br i1 %13459, label %13460, label %13477

13460:                                            ; preds = %13455
  %13461 = load i32, ptr %292, align 4, !tbaa !5
  %13462 = call ptr @__errno_location() #13
  store i32 %13461, ptr %13462, align 4, !tbaa !5
  %13463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13464 = load i32, ptr @test_count, align 4, !tbaa !5
  %13465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13466 = load i32, ptr %13465, align 4, !tbaa !5
  %13467 = call ptr @s2n_strerror(i32 noundef %13466, ptr noundef @.str.6)
  %13468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13469 = load i32, ptr %13468, align 4, !tbaa !5
  %13470 = call ptr @s2n_strerror_debug(i32 noundef %13469, ptr noundef @.str.6)
  %13471 = call ptr @__errno_location() #13
  %13472 = load i32, ptr %13471, align 4, !tbaa !5
  %13473 = call ptr @strerror(i32 noundef %13472) #12
  %13474 = call ptr @__errno_location() #13
  %13475 = load i32, ptr %13474, align 4, !tbaa !5
  %13476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13463, ptr noundef @.str.4, i32 noundef %13464, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 553, ptr noundef %13467, ptr noundef %13470, ptr noundef %13473, i32 noundef %13475) #12
  br label %13494

13477:                                            ; preds = %13455, %13448
  %13478 = load i32, ptr %292, align 4, !tbaa !5
  %13479 = call ptr @__errno_location() #13
  store i32 %13478, ptr %13479, align 4, !tbaa !5
  %13480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13481 = load i32, ptr @test_count, align 4, !tbaa !5
  %13482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13483 = load i32, ptr %13482, align 4, !tbaa !5
  %13484 = call ptr @s2n_strerror(i32 noundef %13483, ptr noundef @.str.6)
  %13485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13486 = load i32, ptr %13485, align 4, !tbaa !5
  %13487 = call ptr @s2n_strerror_debug(i32 noundef %13486, ptr noundef @.str.6)
  %13488 = call ptr @__errno_location() #13
  %13489 = load i32, ptr %13488, align 4, !tbaa !5
  %13490 = call ptr @strerror(i32 noundef %13489) #12
  %13491 = call ptr @__errno_location() #13
  %13492 = load i32, ptr %13491, align 4, !tbaa !5
  %13493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13480, ptr noundef @.str.7, i32 noundef %13481, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 553, ptr noundef %13484, ptr noundef %13487, ptr noundef %13490, i32 noundef %13492) #12
  br label %13494

13494:                                            ; preds = %13477, %13460
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #12
  br label %13495

13495:                                            ; preds = %13494
  br label %13496

13496:                                            ; preds = %13495
  call void @exit(i32 noundef 1) #14
  unreachable

13497:                                            ; No predecessors!
  br label %13498

13498:                                            ; preds = %13497
  br label %13499

13499:                                            ; preds = %13498, %13441
  br label %13500

13500:                                            ; preds = %13499
  br label %13501

13501:                                            ; preds = %13500
  %13502 = load ptr, ptr %291, align 8, !tbaa !9
  %13503 = getelementptr inbounds %struct.s2n_connection, ptr %13502, i32 0, i32 23
  store i8 34, ptr %13503, align 4, !tbaa !63
  br label %13504

13504:                                            ; preds = %13501
  %13505 = load i32, ptr @test_count, align 4, !tbaa !5
  %13506 = add nsw i32 %13505, 1
  store i32 %13506, ptr @test_count, align 4, !tbaa !5
  %13507 = load ptr, ptr %291, align 8, !tbaa !9
  %13508 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %13507)
  %13509 = getelementptr inbounds %struct.s2n_result, ptr %293, i32 0, i32 0
  store i32 %13508, ptr %13509, align 4
  %13510 = getelementptr inbounds %struct.s2n_result, ptr %293, i32 0, i32 0
  %13511 = load i32, ptr %13510, align 4
  %13512 = call zeroext i1 @s2n_result_is_ok(i32 %13511)
  br i1 %13512, label %13566, label %13513

13513:                                            ; preds = %13504
  br label %13514

13514:                                            ; preds = %13513
  br label %13515

13515:                                            ; preds = %13514
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #12
  %13516 = call ptr @__errno_location() #13
  %13517 = load i32, ptr %13516, align 4, !tbaa !5
  store i32 %13517, ptr %294, align 4, !tbaa !5
  %13518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13519 = call i32 @s2n_print_stacktrace(ptr noundef %13518)
  %13520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13521 = trunc i8 %13520 to i1
  br i1 %13521, label %13522, label %13544

13522:                                            ; preds = %13515
  %13523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13524 = call i32 @fileno(ptr noundef %13523) #12
  %13525 = call i32 @isatty(i32 noundef %13524) #12
  %13526 = icmp ne i32 %13525, 0
  br i1 %13526, label %13527, label %13544

13527:                                            ; preds = %13522
  %13528 = load i32, ptr %294, align 4, !tbaa !5
  %13529 = call ptr @__errno_location() #13
  store i32 %13528, ptr %13529, align 4, !tbaa !5
  %13530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13531 = load i32, ptr @test_count, align 4, !tbaa !5
  %13532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13533 = load i32, ptr %13532, align 4, !tbaa !5
  %13534 = call ptr @s2n_strerror(i32 noundef %13533, ptr noundef @.str.6)
  %13535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13536 = load i32, ptr %13535, align 4, !tbaa !5
  %13537 = call ptr @s2n_strerror_debug(i32 noundef %13536, ptr noundef @.str.6)
  %13538 = call ptr @__errno_location() #13
  %13539 = load i32, ptr %13538, align 4, !tbaa !5
  %13540 = call ptr @strerror(i32 noundef %13539) #12
  %13541 = call ptr @__errno_location() #13
  %13542 = load i32, ptr %13541, align 4, !tbaa !5
  %13543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13530, ptr noundef @.str.4, i32 noundef %13531, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 555, ptr noundef %13534, ptr noundef %13537, ptr noundef %13540, i32 noundef %13542) #12
  br label %13561

13544:                                            ; preds = %13522, %13515
  %13545 = load i32, ptr %294, align 4, !tbaa !5
  %13546 = call ptr @__errno_location() #13
  store i32 %13545, ptr %13546, align 4, !tbaa !5
  %13547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13548 = load i32, ptr @test_count, align 4, !tbaa !5
  %13549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13550 = load i32, ptr %13549, align 4, !tbaa !5
  %13551 = call ptr @s2n_strerror(i32 noundef %13550, ptr noundef @.str.6)
  %13552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13553 = load i32, ptr %13552, align 4, !tbaa !5
  %13554 = call ptr @s2n_strerror_debug(i32 noundef %13553, ptr noundef @.str.6)
  %13555 = call ptr @__errno_location() #13
  %13556 = load i32, ptr %13555, align 4, !tbaa !5
  %13557 = call ptr @strerror(i32 noundef %13556) #12
  %13558 = call ptr @__errno_location() #13
  %13559 = load i32, ptr %13558, align 4, !tbaa !5
  %13560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13547, ptr noundef @.str.7, i32 noundef %13548, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 555, ptr noundef %13551, ptr noundef %13554, ptr noundef %13557, i32 noundef %13559) #12
  br label %13561

13561:                                            ; preds = %13544, %13527
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #12
  br label %13562

13562:                                            ; preds = %13561
  br label %13563

13563:                                            ; preds = %13562
  call void @exit(i32 noundef 1) #14
  unreachable

13564:                                            ; No predecessors!
  br label %13565

13565:                                            ; preds = %13564
  br label %13566

13566:                                            ; preds = %13565, %13504
  br label %13567

13567:                                            ; preds = %13566
  br label %13568

13568:                                            ; preds = %13567
  call void @llvm.lifetime.start.p0(i64 8, ptr %295) #12
  store ptr null, ptr %295, align 8, !tbaa !9
  br label %13569

13569:                                            ; preds = %13568
  %13570 = load i32, ptr @test_count, align 4, !tbaa !5
  %13571 = add nsw i32 %13570, 1
  store i32 %13571, ptr @test_count, align 4, !tbaa !5
  %13572 = load ptr, ptr %291, align 8, !tbaa !9
  %13573 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %13572, ptr noundef %295)
  %13574 = icmp eq i32 %13573, -1
  br i1 %13574, label %13575, label %13628

13575:                                            ; preds = %13569
  br label %13576

13576:                                            ; preds = %13575
  br label %13577

13577:                                            ; preds = %13576
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #12
  %13578 = call ptr @__errno_location() #13
  %13579 = load i32, ptr %13578, align 4, !tbaa !5
  store i32 %13579, ptr %296, align 4, !tbaa !5
  %13580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13581 = call i32 @s2n_print_stacktrace(ptr noundef %13580)
  %13582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13583 = trunc i8 %13582 to i1
  br i1 %13583, label %13584, label %13606

13584:                                            ; preds = %13577
  %13585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13586 = call i32 @fileno(ptr noundef %13585) #12
  %13587 = call i32 @isatty(i32 noundef %13586) #12
  %13588 = icmp ne i32 %13587, 0
  br i1 %13588, label %13589, label %13606

13589:                                            ; preds = %13584
  %13590 = load i32, ptr %296, align 4, !tbaa !5
  %13591 = call ptr @__errno_location() #13
  store i32 %13590, ptr %13591, align 4, !tbaa !5
  %13592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13593 = load i32, ptr @test_count, align 4, !tbaa !5
  %13594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13595 = load i32, ptr %13594, align 4, !tbaa !5
  %13596 = call ptr @s2n_strerror(i32 noundef %13595, ptr noundef @.str.6)
  %13597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13598 = load i32, ptr %13597, align 4, !tbaa !5
  %13599 = call ptr @s2n_strerror_debug(i32 noundef %13598, ptr noundef @.str.6)
  %13600 = call ptr @__errno_location() #13
  %13601 = load i32, ptr %13600, align 4, !tbaa !5
  %13602 = call ptr @strerror(i32 noundef %13601) #12
  %13603 = call ptr @__errno_location() #13
  %13604 = load i32, ptr %13603, align 4, !tbaa !5
  %13605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13592, ptr noundef @.str.4, i32 noundef %13593, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 558, ptr noundef %13596, ptr noundef %13599, ptr noundef %13602, i32 noundef %13604) #12
  br label %13623

13606:                                            ; preds = %13584, %13577
  %13607 = load i32, ptr %296, align 4, !tbaa !5
  %13608 = call ptr @__errno_location() #13
  store i32 %13607, ptr %13608, align 4, !tbaa !5
  %13609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13610 = load i32, ptr @test_count, align 4, !tbaa !5
  %13611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13612 = load i32, ptr %13611, align 4, !tbaa !5
  %13613 = call ptr @s2n_strerror(i32 noundef %13612, ptr noundef @.str.6)
  %13614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13615 = load i32, ptr %13614, align 4, !tbaa !5
  %13616 = call ptr @s2n_strerror_debug(i32 noundef %13615, ptr noundef @.str.6)
  %13617 = call ptr @__errno_location() #13
  %13618 = load i32, ptr %13617, align 4, !tbaa !5
  %13619 = call ptr @strerror(i32 noundef %13618) #12
  %13620 = call ptr @__errno_location() #13
  %13621 = load i32, ptr %13620, align 4, !tbaa !5
  %13622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13609, ptr noundef @.str.7, i32 noundef %13610, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 558, ptr noundef %13613, ptr noundef %13616, ptr noundef %13619, i32 noundef %13621) #12
  br label %13623

13623:                                            ; preds = %13606, %13589
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #12
  br label %13624

13624:                                            ; preds = %13623
  br label %13625

13625:                                            ; preds = %13624
  call void @exit(i32 noundef 1) #14
  unreachable

13626:                                            ; No predecessors!
  br label %13627

13627:                                            ; preds = %13626
  br label %13628

13628:                                            ; preds = %13627, %13569
  br label %13629

13629:                                            ; preds = %13628
  br label %13630

13630:                                            ; preds = %13629
  br label %13631

13631:                                            ; preds = %13630
  %13632 = load i32, ptr @test_count, align 4, !tbaa !5
  %13633 = add nsw i32 %13632, 1
  store i32 %13633, ptr @test_count, align 4, !tbaa !5
  %13634 = load ptr, ptr %295, align 8, !tbaa !9
  %13635 = icmp eq ptr %13634, null
  br i1 %13635, label %13636, label %13689

13636:                                            ; preds = %13631
  br label %13637

13637:                                            ; preds = %13636
  br label %13638

13638:                                            ; preds = %13637
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #12
  %13639 = call ptr @__errno_location() #13
  %13640 = load i32, ptr %13639, align 4, !tbaa !5
  store i32 %13640, ptr %297, align 4, !tbaa !5
  %13641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13642 = call i32 @s2n_print_stacktrace(ptr noundef %13641)
  %13643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13644 = trunc i8 %13643 to i1
  br i1 %13644, label %13645, label %13667

13645:                                            ; preds = %13638
  %13646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13647 = call i32 @fileno(ptr noundef %13646) #12
  %13648 = call i32 @isatty(i32 noundef %13647) #12
  %13649 = icmp ne i32 %13648, 0
  br i1 %13649, label %13650, label %13667

13650:                                            ; preds = %13645
  %13651 = load i32, ptr %297, align 4, !tbaa !5
  %13652 = call ptr @__errno_location() #13
  store i32 %13651, ptr %13652, align 4, !tbaa !5
  %13653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13654 = load i32, ptr @test_count, align 4, !tbaa !5
  %13655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13656 = load i32, ptr %13655, align 4, !tbaa !5
  %13657 = call ptr @s2n_strerror(i32 noundef %13656, ptr noundef @.str.6)
  %13658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13659 = load i32, ptr %13658, align 4, !tbaa !5
  %13660 = call ptr @s2n_strerror_debug(i32 noundef %13659, ptr noundef @.str.6)
  %13661 = call ptr @__errno_location() #13
  %13662 = load i32, ptr %13661, align 4, !tbaa !5
  %13663 = call ptr @strerror(i32 noundef %13662) #12
  %13664 = call ptr @__errno_location() #13
  %13665 = load i32, ptr %13664, align 4, !tbaa !5
  %13666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13653, ptr noundef @.str.4, i32 noundef %13654, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 559, ptr noundef %13657, ptr noundef %13660, ptr noundef %13663, i32 noundef %13665) #12
  br label %13684

13667:                                            ; preds = %13645, %13638
  %13668 = load i32, ptr %297, align 4, !tbaa !5
  %13669 = call ptr @__errno_location() #13
  store i32 %13668, ptr %13669, align 4, !tbaa !5
  %13670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13671 = load i32, ptr @test_count, align 4, !tbaa !5
  %13672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13673 = load i32, ptr %13672, align 4, !tbaa !5
  %13674 = call ptr @s2n_strerror(i32 noundef %13673, ptr noundef @.str.6)
  %13675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13676 = load i32, ptr %13675, align 4, !tbaa !5
  %13677 = call ptr @s2n_strerror_debug(i32 noundef %13676, ptr noundef @.str.6)
  %13678 = call ptr @__errno_location() #13
  %13679 = load i32, ptr %13678, align 4, !tbaa !5
  %13680 = call ptr @strerror(i32 noundef %13679) #12
  %13681 = call ptr @__errno_location() #13
  %13682 = load i32, ptr %13681, align 4, !tbaa !5
  %13683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13670, ptr noundef @.str.7, i32 noundef %13671, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 559, ptr noundef %13674, ptr noundef %13677, ptr noundef %13680, i32 noundef %13682) #12
  br label %13684

13684:                                            ; preds = %13667, %13650
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #12
  br label %13685

13685:                                            ; preds = %13684
  br label %13686

13686:                                            ; preds = %13685
  call void @exit(i32 noundef 1) #14
  unreachable

13687:                                            ; No predecessors!
  br label %13688

13688:                                            ; preds = %13687
  br label %13689

13689:                                            ; preds = %13688, %13631
  br label %13690

13690:                                            ; preds = %13689
  br label %13691

13691:                                            ; preds = %13690
  br label %13692

13692:                                            ; preds = %13691
  %13693 = load i32, ptr @test_count, align 4, !tbaa !5
  %13694 = add nsw i32 %13693, 1
  store i32 %13694, ptr @test_count, align 4, !tbaa !5
  %13695 = load ptr, ptr %295, align 8, !tbaa !9
  %13696 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %13695, i32 0, i32 0
  %13697 = load i8, ptr %13696, align 8, !tbaa !64
  %13698 = zext i8 %13697 to i32
  %13699 = icmp sge i32 %13698, 2
  br i1 %13699, label %13753, label %13700

13700:                                            ; preds = %13692
  br label %13701

13701:                                            ; preds = %13700
  br label %13702

13702:                                            ; preds = %13701
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #12
  %13703 = call ptr @__errno_location() #13
  %13704 = load i32, ptr %13703, align 4, !tbaa !5
  store i32 %13704, ptr %298, align 4, !tbaa !5
  %13705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13706 = call i32 @s2n_print_stacktrace(ptr noundef %13705)
  %13707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13708 = trunc i8 %13707 to i1
  br i1 %13708, label %13709, label %13731

13709:                                            ; preds = %13702
  %13710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13711 = call i32 @fileno(ptr noundef %13710) #12
  %13712 = call i32 @isatty(i32 noundef %13711) #12
  %13713 = icmp ne i32 %13712, 0
  br i1 %13713, label %13714, label %13731

13714:                                            ; preds = %13709
  %13715 = load i32, ptr %298, align 4, !tbaa !5
  %13716 = call ptr @__errno_location() #13
  store i32 %13715, ptr %13716, align 4, !tbaa !5
  %13717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13718 = load i32, ptr @test_count, align 4, !tbaa !5
  %13719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13720 = load i32, ptr %13719, align 4, !tbaa !5
  %13721 = call ptr @s2n_strerror(i32 noundef %13720, ptr noundef @.str.6)
  %13722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13723 = load i32, ptr %13722, align 4, !tbaa !5
  %13724 = call ptr @s2n_strerror_debug(i32 noundef %13723, ptr noundef @.str.6)
  %13725 = call ptr @__errno_location() #13
  %13726 = load i32, ptr %13725, align 4, !tbaa !5
  %13727 = call ptr @strerror(i32 noundef %13726) #12
  %13728 = call ptr @__errno_location() #13
  %13729 = load i32, ptr %13728, align 4, !tbaa !5
  %13730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13717, ptr noundef @.str.4, i32 noundef %13718, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 560, ptr noundef %13721, ptr noundef %13724, ptr noundef %13727, i32 noundef %13729) #12
  br label %13748

13731:                                            ; preds = %13709, %13702
  %13732 = load i32, ptr %298, align 4, !tbaa !5
  %13733 = call ptr @__errno_location() #13
  store i32 %13732, ptr %13733, align 4, !tbaa !5
  %13734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13735 = load i32, ptr @test_count, align 4, !tbaa !5
  %13736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13737 = load i32, ptr %13736, align 4, !tbaa !5
  %13738 = call ptr @s2n_strerror(i32 noundef %13737, ptr noundef @.str.6)
  %13739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13740 = load i32, ptr %13739, align 4, !tbaa !5
  %13741 = call ptr @s2n_strerror_debug(i32 noundef %13740, ptr noundef @.str.6)
  %13742 = call ptr @__errno_location() #13
  %13743 = load i32, ptr %13742, align 4, !tbaa !5
  %13744 = call ptr @strerror(i32 noundef %13743) #12
  %13745 = call ptr @__errno_location() #13
  %13746 = load i32, ptr %13745, align 4, !tbaa !5
  %13747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13734, ptr noundef @.str.7, i32 noundef %13735, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 560, ptr noundef %13738, ptr noundef %13741, ptr noundef %13744, i32 noundef %13746) #12
  br label %13748

13748:                                            ; preds = %13731, %13714
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #12
  br label %13749

13749:                                            ; preds = %13748
  br label %13750

13750:                                            ; preds = %13749
  call void @exit(i32 noundef 1) #14
  unreachable

13751:                                            ; No predecessors!
  br label %13752

13752:                                            ; preds = %13751
  br label %13753

13753:                                            ; preds = %13752, %13692
  br label %13754

13754:                                            ; preds = %13753
  br label %13755

13755:                                            ; preds = %13754
  call void @llvm.lifetime.start.p0(i64 32, ptr %299) #12
  %13756 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %299, i32 0, i32 0
  %13757 = load ptr, ptr %295, align 8, !tbaa !9
  %13758 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %13757, i32 0, i32 1
  %13759 = load ptr, ptr %13758, align 8, !tbaa !24
  %13760 = getelementptr inbounds ptr, ptr %13759, i64 0
  %13761 = load ptr, ptr %13760, align 8, !tbaa !9
  store ptr %13761, ptr %13756, align 16, !tbaa !22
  %13762 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %299, i32 0, i32 1
  store ptr null, ptr %13762, align 8, !tbaa !26
  %13763 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %299, i64 1
  %13764 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13763, i32 0, i32 0
  %13765 = load ptr, ptr %295, align 8, !tbaa !9
  %13766 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %13765, i32 0, i32 1
  %13767 = load ptr, ptr %13766, align 8, !tbaa !24
  %13768 = getelementptr inbounds ptr, ptr %13767, i64 1
  %13769 = load ptr, ptr %13768, align 8, !tbaa !9
  store ptr %13769, ptr %13764, align 16, !tbaa !22
  %13770 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13763, i32 0, i32 1
  store ptr null, ptr %13770, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr %300) #12
  call void @llvm.memset.p0.i64(ptr align 8 %300, i8 0, i64 40, i1 false)
  br label %13771

13771:                                            ; preds = %13755
  %13772 = load i32, ptr @test_count, align 4, !tbaa !5
  %13773 = add nsw i32 %13772, 1
  store i32 %13773, ptr @test_count, align 4, !tbaa !5
  %13774 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %300, i32 noundef 0)
  %13775 = icmp eq i32 %13774, -1
  br i1 %13775, label %13776, label %13829

13776:                                            ; preds = %13771
  br label %13777

13777:                                            ; preds = %13776
  br label %13778

13778:                                            ; preds = %13777
  call void @llvm.lifetime.start.p0(i64 4, ptr %301) #12
  %13779 = call ptr @__errno_location() #13
  %13780 = load i32, ptr %13779, align 4, !tbaa !5
  store i32 %13780, ptr %301, align 4, !tbaa !5
  %13781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13782 = call i32 @s2n_print_stacktrace(ptr noundef %13781)
  %13783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13784 = trunc i8 %13783 to i1
  br i1 %13784, label %13785, label %13807

13785:                                            ; preds = %13778
  %13786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13787 = call i32 @fileno(ptr noundef %13786) #12
  %13788 = call i32 @isatty(i32 noundef %13787) #12
  %13789 = icmp ne i32 %13788, 0
  br i1 %13789, label %13790, label %13807

13790:                                            ; preds = %13785
  %13791 = load i32, ptr %301, align 4, !tbaa !5
  %13792 = call ptr @__errno_location() #13
  store i32 %13791, ptr %13792, align 4, !tbaa !5
  %13793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13794 = load i32, ptr @test_count, align 4, !tbaa !5
  %13795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13796 = load i32, ptr %13795, align 4, !tbaa !5
  %13797 = call ptr @s2n_strerror(i32 noundef %13796, ptr noundef @.str.6)
  %13798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13799 = load i32, ptr %13798, align 4, !tbaa !5
  %13800 = call ptr @s2n_strerror_debug(i32 noundef %13799, ptr noundef @.str.6)
  %13801 = call ptr @__errno_location() #13
  %13802 = load i32, ptr %13801, align 4, !tbaa !5
  %13803 = call ptr @strerror(i32 noundef %13802) #12
  %13804 = call ptr @__errno_location() #13
  %13805 = load i32, ptr %13804, align 4, !tbaa !5
  %13806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13793, ptr noundef @.str.4, i32 noundef %13794, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 568, ptr noundef %13797, ptr noundef %13800, ptr noundef %13803, i32 noundef %13805) #12
  br label %13824

13807:                                            ; preds = %13785, %13778
  %13808 = load i32, ptr %301, align 4, !tbaa !5
  %13809 = call ptr @__errno_location() #13
  store i32 %13808, ptr %13809, align 4, !tbaa !5
  %13810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13811 = load i32, ptr @test_count, align 4, !tbaa !5
  %13812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13813 = load i32, ptr %13812, align 4, !tbaa !5
  %13814 = call ptr @s2n_strerror(i32 noundef %13813, ptr noundef @.str.6)
  %13815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13816 = load i32, ptr %13815, align 4, !tbaa !5
  %13817 = call ptr @s2n_strerror_debug(i32 noundef %13816, ptr noundef @.str.6)
  %13818 = call ptr @__errno_location() #13
  %13819 = load i32, ptr %13818, align 4, !tbaa !5
  %13820 = call ptr @strerror(i32 noundef %13819) #12
  %13821 = call ptr @__errno_location() #13
  %13822 = load i32, ptr %13821, align 4, !tbaa !5
  %13823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13810, ptr noundef @.str.7, i32 noundef %13811, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 568, ptr noundef %13814, ptr noundef %13817, ptr noundef %13820, i32 noundef %13822) #12
  br label %13824

13824:                                            ; preds = %13807, %13790
  call void @llvm.lifetime.end.p0(i64 4, ptr %301) #12
  br label %13825

13825:                                            ; preds = %13824
  br label %13826

13826:                                            ; preds = %13825
  call void @exit(i32 noundef 1) #14
  unreachable

13827:                                            ; No predecessors!
  br label %13828

13828:                                            ; preds = %13827
  br label %13829

13829:                                            ; preds = %13828, %13771
  br label %13830

13830:                                            ; preds = %13829
  br label %13831

13831:                                            ; preds = %13830
  call void @llvm.lifetime.start.p0(i64 16, ptr %302) #12
  call void @llvm.memset.p0.i64(ptr align 8 %302, i8 0, i64 16, i1 false)
  br label %13832

13832:                                            ; preds = %13831
  %13833 = load i32, ptr @test_count, align 4, !tbaa !5
  %13834 = add nsw i32 %13833, 1
  store i32 %13834, ptr @test_count, align 4, !tbaa !5
  %13835 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %300, ptr noundef %302)
  %13836 = icmp eq i32 %13835, -1
  br i1 %13836, label %13837, label %13890

13837:                                            ; preds = %13832
  br label %13838

13838:                                            ; preds = %13837
  br label %13839

13839:                                            ; preds = %13838
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #12
  %13840 = call ptr @__errno_location() #13
  %13841 = load i32, ptr %13840, align 4, !tbaa !5
  store i32 %13841, ptr %303, align 4, !tbaa !5
  %13842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13843 = call i32 @s2n_print_stacktrace(ptr noundef %13842)
  %13844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13845 = trunc i8 %13844 to i1
  br i1 %13845, label %13846, label %13868

13846:                                            ; preds = %13839
  %13847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13848 = call i32 @fileno(ptr noundef %13847) #12
  %13849 = call i32 @isatty(i32 noundef %13848) #12
  %13850 = icmp ne i32 %13849, 0
  br i1 %13850, label %13851, label %13868

13851:                                            ; preds = %13846
  %13852 = load i32, ptr %303, align 4, !tbaa !5
  %13853 = call ptr @__errno_location() #13
  store i32 %13852, ptr %13853, align 4, !tbaa !5
  %13854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13855 = load i32, ptr @test_count, align 4, !tbaa !5
  %13856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13857 = load i32, ptr %13856, align 4, !tbaa !5
  %13858 = call ptr @s2n_strerror(i32 noundef %13857, ptr noundef @.str.6)
  %13859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13860 = load i32, ptr %13859, align 4, !tbaa !5
  %13861 = call ptr @s2n_strerror_debug(i32 noundef %13860, ptr noundef @.str.6)
  %13862 = call ptr @__errno_location() #13
  %13863 = load i32, ptr %13862, align 4, !tbaa !5
  %13864 = call ptr @strerror(i32 noundef %13863) #12
  %13865 = call ptr @__errno_location() #13
  %13866 = load i32, ptr %13865, align 4, !tbaa !5
  %13867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13854, ptr noundef @.str.4, i32 noundef %13855, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 571, ptr noundef %13858, ptr noundef %13861, ptr noundef %13864, i32 noundef %13866) #12
  br label %13885

13868:                                            ; preds = %13846, %13839
  %13869 = load i32, ptr %303, align 4, !tbaa !5
  %13870 = call ptr @__errno_location() #13
  store i32 %13869, ptr %13870, align 4, !tbaa !5
  %13871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13872 = load i32, ptr @test_count, align 4, !tbaa !5
  %13873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13874 = load i32, ptr %13873, align 4, !tbaa !5
  %13875 = call ptr @s2n_strerror(i32 noundef %13874, ptr noundef @.str.6)
  %13876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13877 = load i32, ptr %13876, align 4, !tbaa !5
  %13878 = call ptr @s2n_strerror_debug(i32 noundef %13877, ptr noundef @.str.6)
  %13879 = call ptr @__errno_location() #13
  %13880 = load i32, ptr %13879, align 4, !tbaa !5
  %13881 = call ptr @strerror(i32 noundef %13880) #12
  %13882 = call ptr @__errno_location() #13
  %13883 = load i32, ptr %13882, align 4, !tbaa !5
  %13884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13871, ptr noundef @.str.7, i32 noundef %13872, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 571, ptr noundef %13875, ptr noundef %13878, ptr noundef %13881, i32 noundef %13883) #12
  br label %13885

13885:                                            ; preds = %13868, %13851
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #12
  br label %13886

13886:                                            ; preds = %13885
  br label %13887

13887:                                            ; preds = %13886
  call void @exit(i32 noundef 1) #14
  unreachable

13888:                                            ; No predecessors!
  br label %13889

13889:                                            ; preds = %13888
  br label %13890

13890:                                            ; preds = %13889, %13832
  br label %13891

13891:                                            ; preds = %13890
  br label %13892

13892:                                            ; preds = %13891
  br label %13893

13893:                                            ; preds = %13892
  %13894 = load i32, ptr @test_count, align 4, !tbaa !5
  %13895 = add nsw i32 %13894, 1
  store i32 %13895, ptr @test_count, align 4, !tbaa !5
  %13896 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %299, i64 0, i64 1
  %13897 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %13896, ptr noundef %300)
  %13898 = icmp eq i32 %13897, -1
  br i1 %13898, label %13899, label %13952

13899:                                            ; preds = %13893
  br label %13900

13900:                                            ; preds = %13899
  br label %13901

13901:                                            ; preds = %13900
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #12
  %13902 = call ptr @__errno_location() #13
  %13903 = load i32, ptr %13902, align 4, !tbaa !5
  store i32 %13903, ptr %304, align 4, !tbaa !5
  %13904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13905 = call i32 @s2n_print_stacktrace(ptr noundef %13904)
  %13906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13907 = trunc i8 %13906 to i1
  br i1 %13907, label %13908, label %13930

13908:                                            ; preds = %13901
  %13909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13910 = call i32 @fileno(ptr noundef %13909) #12
  %13911 = call i32 @isatty(i32 noundef %13910) #12
  %13912 = icmp ne i32 %13911, 0
  br i1 %13912, label %13913, label %13930

13913:                                            ; preds = %13908
  %13914 = load i32, ptr %304, align 4, !tbaa !5
  %13915 = call ptr @__errno_location() #13
  store i32 %13914, ptr %13915, align 4, !tbaa !5
  %13916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13917 = load i32, ptr @test_count, align 4, !tbaa !5
  %13918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13919 = load i32, ptr %13918, align 4, !tbaa !5
  %13920 = call ptr @s2n_strerror(i32 noundef %13919, ptr noundef @.str.6)
  %13921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13922 = load i32, ptr %13921, align 4, !tbaa !5
  %13923 = call ptr @s2n_strerror_debug(i32 noundef %13922, ptr noundef @.str.6)
  %13924 = call ptr @__errno_location() #13
  %13925 = load i32, ptr %13924, align 4, !tbaa !5
  %13926 = call ptr @strerror(i32 noundef %13925) #12
  %13927 = call ptr @__errno_location() #13
  %13928 = load i32, ptr %13927, align 4, !tbaa !5
  %13929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13916, ptr noundef @.str.4, i32 noundef %13917, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 572, ptr noundef %13920, ptr noundef %13923, ptr noundef %13926, i32 noundef %13928) #12
  br label %13947

13930:                                            ; preds = %13908, %13901
  %13931 = load i32, ptr %304, align 4, !tbaa !5
  %13932 = call ptr @__errno_location() #13
  store i32 %13931, ptr %13932, align 4, !tbaa !5
  %13933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13934 = load i32, ptr @test_count, align 4, !tbaa !5
  %13935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13936 = load i32, ptr %13935, align 4, !tbaa !5
  %13937 = call ptr @s2n_strerror(i32 noundef %13936, ptr noundef @.str.6)
  %13938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13939 = load i32, ptr %13938, align 4, !tbaa !5
  %13940 = call ptr @s2n_strerror_debug(i32 noundef %13939, ptr noundef @.str.6)
  %13941 = call ptr @__errno_location() #13
  %13942 = load i32, ptr %13941, align 4, !tbaa !5
  %13943 = call ptr @strerror(i32 noundef %13942) #12
  %13944 = call ptr @__errno_location() #13
  %13945 = load i32, ptr %13944, align 4, !tbaa !5
  %13946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13933, ptr noundef @.str.7, i32 noundef %13934, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 572, ptr noundef %13937, ptr noundef %13940, ptr noundef %13943, i32 noundef %13945) #12
  br label %13947

13947:                                            ; preds = %13930, %13913
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #12
  br label %13948

13948:                                            ; preds = %13947
  br label %13949

13949:                                            ; preds = %13948
  call void @exit(i32 noundef 1) #14
  unreachable

13950:                                            ; No predecessors!
  br label %13951

13951:                                            ; preds = %13950
  br label %13952

13952:                                            ; preds = %13951, %13893
  br label %13953

13953:                                            ; preds = %13952
  br label %13954

13954:                                            ; preds = %13953
  br label %13955

13955:                                            ; preds = %13954
  %13956 = load i32, ptr @test_count, align 4, !tbaa !5
  %13957 = add nsw i32 %13956, 1
  store i32 %13957, ptr @test_count, align 4, !tbaa !5
  %13958 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %299, i64 0, i64 1
  %13959 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %13958, ptr noundef %300)
  %13960 = icmp eq i32 %13959, -1
  br i1 %13960, label %13961, label %14014

13961:                                            ; preds = %13955
  br label %13962

13962:                                            ; preds = %13961
  br label %13963

13963:                                            ; preds = %13962
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #12
  %13964 = call ptr @__errno_location() #13
  %13965 = load i32, ptr %13964, align 4, !tbaa !5
  store i32 %13965, ptr %305, align 4, !tbaa !5
  %13966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13967 = call i32 @s2n_print_stacktrace(ptr noundef %13966)
  %13968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13969 = trunc i8 %13968 to i1
  br i1 %13969, label %13970, label %13992

13970:                                            ; preds = %13963
  %13971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13972 = call i32 @fileno(ptr noundef %13971) #12
  %13973 = call i32 @isatty(i32 noundef %13972) #12
  %13974 = icmp ne i32 %13973, 0
  br i1 %13974, label %13975, label %13992

13975:                                            ; preds = %13970
  %13976 = load i32, ptr %305, align 4, !tbaa !5
  %13977 = call ptr @__errno_location() #13
  store i32 %13976, ptr %13977, align 4, !tbaa !5
  %13978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13979 = load i32, ptr @test_count, align 4, !tbaa !5
  %13980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13981 = load i32, ptr %13980, align 4, !tbaa !5
  %13982 = call ptr @s2n_strerror(i32 noundef %13981, ptr noundef @.str.6)
  %13983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13984 = load i32, ptr %13983, align 4, !tbaa !5
  %13985 = call ptr @s2n_strerror_debug(i32 noundef %13984, ptr noundef @.str.6)
  %13986 = call ptr @__errno_location() #13
  %13987 = load i32, ptr %13986, align 4, !tbaa !5
  %13988 = call ptr @strerror(i32 noundef %13987) #12
  %13989 = call ptr @__errno_location() #13
  %13990 = load i32, ptr %13989, align 4, !tbaa !5
  %13991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13978, ptr noundef @.str.4, i32 noundef %13979, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 573, ptr noundef %13982, ptr noundef %13985, ptr noundef %13988, i32 noundef %13990) #12
  br label %14009

13992:                                            ; preds = %13970, %13963
  %13993 = load i32, ptr %305, align 4, !tbaa !5
  %13994 = call ptr @__errno_location() #13
  store i32 %13993, ptr %13994, align 4, !tbaa !5
  %13995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13996 = load i32, ptr @test_count, align 4, !tbaa !5
  %13997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13998 = load i32, ptr %13997, align 4, !tbaa !5
  %13999 = call ptr @s2n_strerror(i32 noundef %13998, ptr noundef @.str.6)
  %14000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14001 = load i32, ptr %14000, align 4, !tbaa !5
  %14002 = call ptr @s2n_strerror_debug(i32 noundef %14001, ptr noundef @.str.6)
  %14003 = call ptr @__errno_location() #13
  %14004 = load i32, ptr %14003, align 4, !tbaa !5
  %14005 = call ptr @strerror(i32 noundef %14004) #12
  %14006 = call ptr @__errno_location() #13
  %14007 = load i32, ptr %14006, align 4, !tbaa !5
  %14008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13995, ptr noundef @.str.7, i32 noundef %13996, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 573, ptr noundef %13999, ptr noundef %14002, ptr noundef %14005, i32 noundef %14007) #12
  br label %14009

14009:                                            ; preds = %13992, %13975
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #12
  br label %14010

14010:                                            ; preds = %14009
  br label %14011

14011:                                            ; preds = %14010
  call void @exit(i32 noundef 1) #14
  unreachable

14012:                                            ; No predecessors!
  br label %14013

14013:                                            ; preds = %14012
  br label %14014

14014:                                            ; preds = %14013, %13955
  br label %14015

14015:                                            ; preds = %14014
  br label %14016

14016:                                            ; preds = %14015
  br label %14017

14017:                                            ; preds = %14016
  %14018 = load i32, ptr @test_count, align 4, !tbaa !5
  %14019 = add nsw i32 %14018, 1
  store i32 %14019, ptr @test_count, align 4, !tbaa !5
  %14020 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %299, i64 0, i64 0
  %14021 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %14020, ptr noundef %300)
  %14022 = icmp eq i32 %14021, -1
  br i1 %14022, label %14023, label %14076

14023:                                            ; preds = %14017
  br label %14024

14024:                                            ; preds = %14023
  br label %14025

14025:                                            ; preds = %14024
  call void @llvm.lifetime.start.p0(i64 4, ptr %306) #12
  %14026 = call ptr @__errno_location() #13
  %14027 = load i32, ptr %14026, align 4, !tbaa !5
  store i32 %14027, ptr %306, align 4, !tbaa !5
  %14028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14029 = call i32 @s2n_print_stacktrace(ptr noundef %14028)
  %14030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14031 = trunc i8 %14030 to i1
  br i1 %14031, label %14032, label %14054

14032:                                            ; preds = %14025
  %14033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14034 = call i32 @fileno(ptr noundef %14033) #12
  %14035 = call i32 @isatty(i32 noundef %14034) #12
  %14036 = icmp ne i32 %14035, 0
  br i1 %14036, label %14037, label %14054

14037:                                            ; preds = %14032
  %14038 = load i32, ptr %306, align 4, !tbaa !5
  %14039 = call ptr @__errno_location() #13
  store i32 %14038, ptr %14039, align 4, !tbaa !5
  %14040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14041 = load i32, ptr @test_count, align 4, !tbaa !5
  %14042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14043 = load i32, ptr %14042, align 4, !tbaa !5
  %14044 = call ptr @s2n_strerror(i32 noundef %14043, ptr noundef @.str.6)
  %14045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14046 = load i32, ptr %14045, align 4, !tbaa !5
  %14047 = call ptr @s2n_strerror_debug(i32 noundef %14046, ptr noundef @.str.6)
  %14048 = call ptr @__errno_location() #13
  %14049 = load i32, ptr %14048, align 4, !tbaa !5
  %14050 = call ptr @strerror(i32 noundef %14049) #12
  %14051 = call ptr @__errno_location() #13
  %14052 = load i32, ptr %14051, align 4, !tbaa !5
  %14053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14040, ptr noundef @.str.4, i32 noundef %14041, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 574, ptr noundef %14044, ptr noundef %14047, ptr noundef %14050, i32 noundef %14052) #12
  br label %14071

14054:                                            ; preds = %14032, %14025
  %14055 = load i32, ptr %306, align 4, !tbaa !5
  %14056 = call ptr @__errno_location() #13
  store i32 %14055, ptr %14056, align 4, !tbaa !5
  %14057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14058 = load i32, ptr @test_count, align 4, !tbaa !5
  %14059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14060 = load i32, ptr %14059, align 4, !tbaa !5
  %14061 = call ptr @s2n_strerror(i32 noundef %14060, ptr noundef @.str.6)
  %14062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14063 = load i32, ptr %14062, align 4, !tbaa !5
  %14064 = call ptr @s2n_strerror_debug(i32 noundef %14063, ptr noundef @.str.6)
  %14065 = call ptr @__errno_location() #13
  %14066 = load i32, ptr %14065, align 4, !tbaa !5
  %14067 = call ptr @strerror(i32 noundef %14066) #12
  %14068 = call ptr @__errno_location() #13
  %14069 = load i32, ptr %14068, align 4, !tbaa !5
  %14070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14057, ptr noundef @.str.7, i32 noundef %14058, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 574, ptr noundef %14061, ptr noundef %14064, ptr noundef %14067, i32 noundef %14069) #12
  br label %14071

14071:                                            ; preds = %14054, %14037
  call void @llvm.lifetime.end.p0(i64 4, ptr %306) #12
  br label %14072

14072:                                            ; preds = %14071
  br label %14073

14073:                                            ; preds = %14072
  call void @exit(i32 noundef 1) #14
  unreachable

14074:                                            ; No predecessors!
  br label %14075

14075:                                            ; preds = %14074
  br label %14076

14076:                                            ; preds = %14075, %14017
  br label %14077

14077:                                            ; preds = %14076
  br label %14078

14078:                                            ; preds = %14077
  br label %14079

14079:                                            ; preds = %14078
  %14080 = load i32, ptr @test_count, align 4, !tbaa !5
  %14081 = add nsw i32 %14080, 1
  store i32 %14081, ptr @test_count, align 4, !tbaa !5
  %14082 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %302)
  %14083 = icmp eq i32 %14082, -1
  br i1 %14083, label %14084, label %14137

14084:                                            ; preds = %14079
  br label %14085

14085:                                            ; preds = %14084
  br label %14086

14086:                                            ; preds = %14085
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #12
  %14087 = call ptr @__errno_location() #13
  %14088 = load i32, ptr %14087, align 4, !tbaa !5
  store i32 %14088, ptr %307, align 4, !tbaa !5
  %14089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14090 = call i32 @s2n_print_stacktrace(ptr noundef %14089)
  %14091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14092 = trunc i8 %14091 to i1
  br i1 %14092, label %14093, label %14115

14093:                                            ; preds = %14086
  %14094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14095 = call i32 @fileno(ptr noundef %14094) #12
  %14096 = call i32 @isatty(i32 noundef %14095) #12
  %14097 = icmp ne i32 %14096, 0
  br i1 %14097, label %14098, label %14115

14098:                                            ; preds = %14093
  %14099 = load i32, ptr %307, align 4, !tbaa !5
  %14100 = call ptr @__errno_location() #13
  store i32 %14099, ptr %14100, align 4, !tbaa !5
  %14101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14102 = load i32, ptr @test_count, align 4, !tbaa !5
  %14103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14104 = load i32, ptr %14103, align 4, !tbaa !5
  %14105 = call ptr @s2n_strerror(i32 noundef %14104, ptr noundef @.str.6)
  %14106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14107 = load i32, ptr %14106, align 4, !tbaa !5
  %14108 = call ptr @s2n_strerror_debug(i32 noundef %14107, ptr noundef @.str.6)
  %14109 = call ptr @__errno_location() #13
  %14110 = load i32, ptr %14109, align 4, !tbaa !5
  %14111 = call ptr @strerror(i32 noundef %14110) #12
  %14112 = call ptr @__errno_location() #13
  %14113 = load i32, ptr %14112, align 4, !tbaa !5
  %14114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14101, ptr noundef @.str.4, i32 noundef %14102, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 575, ptr noundef %14105, ptr noundef %14108, ptr noundef %14111, i32 noundef %14113) #12
  br label %14132

14115:                                            ; preds = %14093, %14086
  %14116 = load i32, ptr %307, align 4, !tbaa !5
  %14117 = call ptr @__errno_location() #13
  store i32 %14116, ptr %14117, align 4, !tbaa !5
  %14118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14119 = load i32, ptr @test_count, align 4, !tbaa !5
  %14120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14121 = load i32, ptr %14120, align 4, !tbaa !5
  %14122 = call ptr @s2n_strerror(i32 noundef %14121, ptr noundef @.str.6)
  %14123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14124 = load i32, ptr %14123, align 4, !tbaa !5
  %14125 = call ptr @s2n_strerror_debug(i32 noundef %14124, ptr noundef @.str.6)
  %14126 = call ptr @__errno_location() #13
  %14127 = load i32, ptr %14126, align 4, !tbaa !5
  %14128 = call ptr @strerror(i32 noundef %14127) #12
  %14129 = call ptr @__errno_location() #13
  %14130 = load i32, ptr %14129, align 4, !tbaa !5
  %14131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14118, ptr noundef @.str.7, i32 noundef %14119, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 575, ptr noundef %14122, ptr noundef %14125, ptr noundef %14128, i32 noundef %14130) #12
  br label %14132

14132:                                            ; preds = %14115, %14098
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #12
  br label %14133

14133:                                            ; preds = %14132
  br label %14134

14134:                                            ; preds = %14133
  call void @exit(i32 noundef 1) #14
  unreachable

14135:                                            ; No predecessors!
  br label %14136

14136:                                            ; preds = %14135
  br label %14137

14137:                                            ; preds = %14136, %14079
  br label %14138

14138:                                            ; preds = %14137
  br label %14139

14139:                                            ; preds = %14138
  br label %14140

14140:                                            ; preds = %14139
  %14141 = load i32, ptr @test_count, align 4, !tbaa !5
  %14142 = add nsw i32 %14141, 1
  store i32 %14142, ptr @test_count, align 4, !tbaa !5
  %14143 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %14144 = load ptr, ptr %291, align 8, !tbaa !9
  %14145 = call i32 %14143(ptr noundef %14144, ptr noundef %300)
  %14146 = icmp eq i32 %14145, -1
  br i1 %14146, label %14147, label %14200

14147:                                            ; preds = %14140
  br label %14148

14148:                                            ; preds = %14147
  br label %14149

14149:                                            ; preds = %14148
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #12
  %14150 = call ptr @__errno_location() #13
  %14151 = load i32, ptr %14150, align 4, !tbaa !5
  store i32 %14151, ptr %308, align 4, !tbaa !5
  %14152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14153 = call i32 @s2n_print_stacktrace(ptr noundef %14152)
  %14154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14155 = trunc i8 %14154 to i1
  br i1 %14155, label %14156, label %14178

14156:                                            ; preds = %14149
  %14157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14158 = call i32 @fileno(ptr noundef %14157) #12
  %14159 = call i32 @isatty(i32 noundef %14158) #12
  %14160 = icmp ne i32 %14159, 0
  br i1 %14160, label %14161, label %14178

14161:                                            ; preds = %14156
  %14162 = load i32, ptr %308, align 4, !tbaa !5
  %14163 = call ptr @__errno_location() #13
  store i32 %14162, ptr %14163, align 4, !tbaa !5
  %14164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14165 = load i32, ptr @test_count, align 4, !tbaa !5
  %14166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14167 = load i32, ptr %14166, align 4, !tbaa !5
  %14168 = call ptr @s2n_strerror(i32 noundef %14167, ptr noundef @.str.6)
  %14169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14170 = load i32, ptr %14169, align 4, !tbaa !5
  %14171 = call ptr @s2n_strerror_debug(i32 noundef %14170, ptr noundef @.str.6)
  %14172 = call ptr @__errno_location() #13
  %14173 = load i32, ptr %14172, align 4, !tbaa !5
  %14174 = call ptr @strerror(i32 noundef %14173) #12
  %14175 = call ptr @__errno_location() #13
  %14176 = load i32, ptr %14175, align 4, !tbaa !5
  %14177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14164, ptr noundef @.str.4, i32 noundef %14165, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 577, ptr noundef %14168, ptr noundef %14171, ptr noundef %14174, i32 noundef %14176) #12
  br label %14195

14178:                                            ; preds = %14156, %14149
  %14179 = load i32, ptr %308, align 4, !tbaa !5
  %14180 = call ptr @__errno_location() #13
  store i32 %14179, ptr %14180, align 4, !tbaa !5
  %14181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14182 = load i32, ptr @test_count, align 4, !tbaa !5
  %14183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14184 = load i32, ptr %14183, align 4, !tbaa !5
  %14185 = call ptr @s2n_strerror(i32 noundef %14184, ptr noundef @.str.6)
  %14186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14187 = load i32, ptr %14186, align 4, !tbaa !5
  %14188 = call ptr @s2n_strerror_debug(i32 noundef %14187, ptr noundef @.str.6)
  %14189 = call ptr @__errno_location() #13
  %14190 = load i32, ptr %14189, align 4, !tbaa !5
  %14191 = call ptr @strerror(i32 noundef %14190) #12
  %14192 = call ptr @__errno_location() #13
  %14193 = load i32, ptr %14192, align 4, !tbaa !5
  %14194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14181, ptr noundef @.str.7, i32 noundef %14182, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 577, ptr noundef %14185, ptr noundef %14188, ptr noundef %14191, i32 noundef %14193) #12
  br label %14195

14195:                                            ; preds = %14178, %14161
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #12
  br label %14196

14196:                                            ; preds = %14195
  br label %14197

14197:                                            ; preds = %14196
  call void @exit(i32 noundef 1) #14
  unreachable

14198:                                            ; No predecessors!
  br label %14199

14199:                                            ; preds = %14198
  br label %14200

14200:                                            ; preds = %14199, %14140
  br label %14201

14201:                                            ; preds = %14200
  br label %14202

14202:                                            ; preds = %14201
  br label %14203

14203:                                            ; preds = %14202
  %14204 = load i32, ptr @test_count, align 4, !tbaa !5
  %14205 = add nsw i32 %14204, 1
  store i32 %14205, ptr @test_count, align 4, !tbaa !5
  %14206 = getelementptr inbounds %struct.s2n_stuffer, ptr %300, i32 0, i32 2
  %14207 = load i32, ptr %14206, align 4, !tbaa !18
  %14208 = getelementptr inbounds %struct.s2n_stuffer, ptr %300, i32 0, i32 1
  %14209 = load i32, ptr %14208, align 8, !tbaa !21
  %14210 = sub i32 %14207, %14209
  %14211 = icmp eq i32 %14210, 0
  br i1 %14211, label %14265, label %14212

14212:                                            ; preds = %14203
  br label %14213

14213:                                            ; preds = %14212
  br label %14214

14214:                                            ; preds = %14213
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #12
  %14215 = call ptr @__errno_location() #13
  %14216 = load i32, ptr %14215, align 4, !tbaa !5
  store i32 %14216, ptr %309, align 4, !tbaa !5
  %14217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14218 = call i32 @s2n_print_stacktrace(ptr noundef %14217)
  %14219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14220 = trunc i8 %14219 to i1
  br i1 %14220, label %14221, label %14243

14221:                                            ; preds = %14214
  %14222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14223 = call i32 @fileno(ptr noundef %14222) #12
  %14224 = call i32 @isatty(i32 noundef %14223) #12
  %14225 = icmp ne i32 %14224, 0
  br i1 %14225, label %14226, label %14243

14226:                                            ; preds = %14221
  %14227 = load i32, ptr %309, align 4, !tbaa !5
  %14228 = call ptr @__errno_location() #13
  store i32 %14227, ptr %14228, align 4, !tbaa !5
  %14229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14230 = load i32, ptr @test_count, align 4, !tbaa !5
  %14231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14232 = load i32, ptr %14231, align 4, !tbaa !5
  %14233 = call ptr @s2n_strerror(i32 noundef %14232, ptr noundef @.str.6)
  %14234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14235 = load i32, ptr %14234, align 4, !tbaa !5
  %14236 = call ptr @s2n_strerror_debug(i32 noundef %14235, ptr noundef @.str.6)
  %14237 = call ptr @__errno_location() #13
  %14238 = load i32, ptr %14237, align 4, !tbaa !5
  %14239 = call ptr @strerror(i32 noundef %14238) #12
  %14240 = call ptr @__errno_location() #13
  %14241 = load i32, ptr %14240, align 4, !tbaa !5
  %14242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14229, ptr noundef @.str.4, i32 noundef %14230, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 578, ptr noundef %14233, ptr noundef %14236, ptr noundef %14239, i32 noundef %14241) #12
  br label %14260

14243:                                            ; preds = %14221, %14214
  %14244 = load i32, ptr %309, align 4, !tbaa !5
  %14245 = call ptr @__errno_location() #13
  store i32 %14244, ptr %14245, align 4, !tbaa !5
  %14246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14247 = load i32, ptr @test_count, align 4, !tbaa !5
  %14248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14249 = load i32, ptr %14248, align 4, !tbaa !5
  %14250 = call ptr @s2n_strerror(i32 noundef %14249, ptr noundef @.str.6)
  %14251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14252 = load i32, ptr %14251, align 4, !tbaa !5
  %14253 = call ptr @s2n_strerror_debug(i32 noundef %14252, ptr noundef @.str.6)
  %14254 = call ptr @__errno_location() #13
  %14255 = load i32, ptr %14254, align 4, !tbaa !5
  %14256 = call ptr @strerror(i32 noundef %14255) #12
  %14257 = call ptr @__errno_location() #13
  %14258 = load i32, ptr %14257, align 4, !tbaa !5
  %14259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14246, ptr noundef @.str.7, i32 noundef %14247, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 578, ptr noundef %14250, ptr noundef %14253, ptr noundef %14256, i32 noundef %14258) #12
  br label %14260

14260:                                            ; preds = %14243, %14226
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #12
  br label %14261

14261:                                            ; preds = %14260
  br label %14262

14262:                                            ; preds = %14261
  call void @exit(i32 noundef 1) #14
  unreachable

14263:                                            ; No predecessors!
  br label %14264

14264:                                            ; preds = %14263
  br label %14265

14265:                                            ; preds = %14264, %14203
  br label %14266

14266:                                            ; preds = %14265
  br label %14267

14267:                                            ; preds = %14266
  br label %14268

14268:                                            ; preds = %14267
  %14269 = load i32, ptr @test_count, align 4, !tbaa !5
  %14270 = add nsw i32 %14269, 1
  store i32 %14270, ptr @test_count, align 4, !tbaa !5
  %14271 = load ptr, ptr %291, align 8, !tbaa !9
  %14272 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %14271, i32 noundef 16)
  br i1 %14272, label %14273, label %14326

14273:                                            ; preds = %14268
  br label %14274

14274:                                            ; preds = %14273
  br label %14275

14275:                                            ; preds = %14274
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #12
  %14276 = call ptr @__errno_location() #13
  %14277 = load i32, ptr %14276, align 4, !tbaa !5
  store i32 %14277, ptr %310, align 4, !tbaa !5
  %14278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14279 = call i32 @s2n_print_stacktrace(ptr noundef %14278)
  %14280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14281 = trunc i8 %14280 to i1
  br i1 %14281, label %14282, label %14304

14282:                                            ; preds = %14275
  %14283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14284 = call i32 @fileno(ptr noundef %14283) #12
  %14285 = call i32 @isatty(i32 noundef %14284) #12
  %14286 = icmp ne i32 %14285, 0
  br i1 %14286, label %14287, label %14304

14287:                                            ; preds = %14282
  %14288 = load i32, ptr %310, align 4, !tbaa !5
  %14289 = call ptr @__errno_location() #13
  store i32 %14288, ptr %14289, align 4, !tbaa !5
  %14290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14291 = load i32, ptr @test_count, align 4, !tbaa !5
  %14292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14293 = load i32, ptr %14292, align 4, !tbaa !5
  %14294 = call ptr @s2n_strerror(i32 noundef %14293, ptr noundef @.str.6)
  %14295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14296 = load i32, ptr %14295, align 4, !tbaa !5
  %14297 = call ptr @s2n_strerror_debug(i32 noundef %14296, ptr noundef @.str.6)
  %14298 = call ptr @__errno_location() #13
  %14299 = load i32, ptr %14298, align 4, !tbaa !5
  %14300 = call ptr @strerror(i32 noundef %14299) #12
  %14301 = call ptr @__errno_location() #13
  %14302 = load i32, ptr %14301, align 4, !tbaa !5
  %14303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14290, ptr noundef @.str.4, i32 noundef %14291, ptr noundef @.str.95, ptr noundef @.str.3, i32 noundef 581, ptr noundef %14294, ptr noundef %14297, ptr noundef %14300, i32 noundef %14302) #12
  br label %14321

14304:                                            ; preds = %14282, %14275
  %14305 = load i32, ptr %310, align 4, !tbaa !5
  %14306 = call ptr @__errno_location() #13
  store i32 %14305, ptr %14306, align 4, !tbaa !5
  %14307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14308 = load i32, ptr @test_count, align 4, !tbaa !5
  %14309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14310 = load i32, ptr %14309, align 4, !tbaa !5
  %14311 = call ptr @s2n_strerror(i32 noundef %14310, ptr noundef @.str.6)
  %14312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14313 = load i32, ptr %14312, align 4, !tbaa !5
  %14314 = call ptr @s2n_strerror_debug(i32 noundef %14313, ptr noundef @.str.6)
  %14315 = call ptr @__errno_location() #13
  %14316 = load i32, ptr %14315, align 4, !tbaa !5
  %14317 = call ptr @strerror(i32 noundef %14316) #12
  %14318 = call ptr @__errno_location() #13
  %14319 = load i32, ptr %14318, align 4, !tbaa !5
  %14320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14307, ptr noundef @.str.7, i32 noundef %14308, ptr noundef @.str.95, ptr noundef @.str.3, i32 noundef 581, ptr noundef %14311, ptr noundef %14314, ptr noundef %14317, i32 noundef %14319) #12
  br label %14321

14321:                                            ; preds = %14304, %14287
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #12
  br label %14322

14322:                                            ; preds = %14321
  br label %14323

14323:                                            ; preds = %14322
  call void @exit(i32 noundef 1) #14
  unreachable

14324:                                            ; No predecessors!
  br label %14325

14325:                                            ; preds = %14324
  br label %14326

14326:                                            ; preds = %14325, %14268
  br label %14327

14327:                                            ; preds = %14326
  br label %14328

14328:                                            ; preds = %14327
  call void @llvm.lifetime.start.p0(i64 8, ptr %311) #12
  %14329 = load ptr, ptr %291, align 8, !tbaa !9
  %14330 = getelementptr inbounds %struct.s2n_connection, ptr %14329, i32 0, i32 31
  %14331 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14330, i32 0, i32 3
  store ptr %14331, ptr %311, align 8, !tbaa !9
  br label %14332

14332:                                            ; preds = %14328
  %14333 = load i32, ptr @test_count, align 4, !tbaa !5
  %14334 = add nsw i32 %14333, 1
  store i32 %14334, ptr @test_count, align 4, !tbaa !5
  %14335 = load ptr, ptr %311, align 8, !tbaa !9
  %14336 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %14335, i32 0, i32 0
  %14337 = load ptr, ptr %14336, align 8, !tbaa !22
  %14338 = load ptr, ptr %295, align 8, !tbaa !9
  %14339 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %14338, i32 0, i32 1
  %14340 = load ptr, ptr %14339, align 8, !tbaa !24
  %14341 = getelementptr inbounds ptr, ptr %14340, i64 0
  %14342 = load ptr, ptr %14341, align 8, !tbaa !9
  %14343 = icmp eq ptr %14337, %14342
  br i1 %14343, label %14397, label %14344

14344:                                            ; preds = %14332
  br label %14345

14345:                                            ; preds = %14344
  br label %14346

14346:                                            ; preds = %14345
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #12
  %14347 = call ptr @__errno_location() #13
  %14348 = load i32, ptr %14347, align 4, !tbaa !5
  store i32 %14348, ptr %312, align 4, !tbaa !5
  %14349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14350 = call i32 @s2n_print_stacktrace(ptr noundef %14349)
  %14351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14352 = trunc i8 %14351 to i1
  br i1 %14352, label %14353, label %14375

14353:                                            ; preds = %14346
  %14354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14355 = call i32 @fileno(ptr noundef %14354) #12
  %14356 = call i32 @isatty(i32 noundef %14355) #12
  %14357 = icmp ne i32 %14356, 0
  br i1 %14357, label %14358, label %14375

14358:                                            ; preds = %14353
  %14359 = load i32, ptr %312, align 4, !tbaa !5
  %14360 = call ptr @__errno_location() #13
  store i32 %14359, ptr %14360, align 4, !tbaa !5
  %14361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14362 = load i32, ptr @test_count, align 4, !tbaa !5
  %14363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14364 = load i32, ptr %14363, align 4, !tbaa !5
  %14365 = call ptr @s2n_strerror(i32 noundef %14364, ptr noundef @.str.6)
  %14366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14367 = load i32, ptr %14366, align 4, !tbaa !5
  %14368 = call ptr @s2n_strerror_debug(i32 noundef %14367, ptr noundef @.str.6)
  %14369 = call ptr @__errno_location() #13
  %14370 = load i32, ptr %14369, align 4, !tbaa !5
  %14371 = call ptr @strerror(i32 noundef %14370) #12
  %14372 = call ptr @__errno_location() #13
  %14373 = load i32, ptr %14372, align 4, !tbaa !5
  %14374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14361, ptr noundef @.str.4, i32 noundef %14362, ptr noundef @.str.102, ptr noundef @.str.3, i32 noundef 585, ptr noundef %14365, ptr noundef %14368, ptr noundef %14371, i32 noundef %14373) #12
  br label %14392

14375:                                            ; preds = %14353, %14346
  %14376 = load i32, ptr %312, align 4, !tbaa !5
  %14377 = call ptr @__errno_location() #13
  store i32 %14376, ptr %14377, align 4, !tbaa !5
  %14378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14379 = load i32, ptr @test_count, align 4, !tbaa !5
  %14380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14381 = load i32, ptr %14380, align 4, !tbaa !5
  %14382 = call ptr @s2n_strerror(i32 noundef %14381, ptr noundef @.str.6)
  %14383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14384 = load i32, ptr %14383, align 4, !tbaa !5
  %14385 = call ptr @s2n_strerror_debug(i32 noundef %14384, ptr noundef @.str.6)
  %14386 = call ptr @__errno_location() #13
  %14387 = load i32, ptr %14386, align 4, !tbaa !5
  %14388 = call ptr @strerror(i32 noundef %14387) #12
  %14389 = call ptr @__errno_location() #13
  %14390 = load i32, ptr %14389, align 4, !tbaa !5
  %14391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14378, ptr noundef @.str.7, i32 noundef %14379, ptr noundef @.str.102, ptr noundef @.str.3, i32 noundef 585, ptr noundef %14382, ptr noundef %14385, ptr noundef %14388, i32 noundef %14390) #12
  br label %14392

14392:                                            ; preds = %14375, %14358
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #12
  br label %14393

14393:                                            ; preds = %14392
  br label %14394

14394:                                            ; preds = %14393
  call void @exit(i32 noundef 1) #14
  unreachable

14395:                                            ; No predecessors!
  br label %14396

14396:                                            ; preds = %14395
  br label %14397

14397:                                            ; preds = %14396, %14332
  br label %14398

14398:                                            ; preds = %14397
  br label %14399

14399:                                            ; preds = %14398
  br label %14400

14400:                                            ; preds = %14399
  %14401 = load i32, ptr @test_count, align 4, !tbaa !5
  %14402 = add nsw i32 %14401, 1
  store i32 %14402, ptr @test_count, align 4, !tbaa !5
  %14403 = load ptr, ptr %311, align 8, !tbaa !9
  %14404 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %14403, i32 0, i32 1
  %14405 = load ptr, ptr %14404, align 8, !tbaa !26
  %14406 = icmp eq ptr %14405, null
  br i1 %14406, label %14407, label %14460

14407:                                            ; preds = %14400
  br label %14408

14408:                                            ; preds = %14407
  br label %14409

14409:                                            ; preds = %14408
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #12
  %14410 = call ptr @__errno_location() #13
  %14411 = load i32, ptr %14410, align 4, !tbaa !5
  store i32 %14411, ptr %313, align 4, !tbaa !5
  %14412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14413 = call i32 @s2n_print_stacktrace(ptr noundef %14412)
  %14414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14415 = trunc i8 %14414 to i1
  br i1 %14415, label %14416, label %14438

14416:                                            ; preds = %14409
  %14417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14418 = call i32 @fileno(ptr noundef %14417) #12
  %14419 = call i32 @isatty(i32 noundef %14418) #12
  %14420 = icmp ne i32 %14419, 0
  br i1 %14420, label %14421, label %14438

14421:                                            ; preds = %14416
  %14422 = load i32, ptr %313, align 4, !tbaa !5
  %14423 = call ptr @__errno_location() #13
  store i32 %14422, ptr %14423, align 4, !tbaa !5
  %14424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14425 = load i32, ptr @test_count, align 4, !tbaa !5
  %14426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14427 = load i32, ptr %14426, align 4, !tbaa !5
  %14428 = call ptr @s2n_strerror(i32 noundef %14427, ptr noundef @.str.6)
  %14429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14430 = load i32, ptr %14429, align 4, !tbaa !5
  %14431 = call ptr @s2n_strerror_debug(i32 noundef %14430, ptr noundef @.str.6)
  %14432 = call ptr @__errno_location() #13
  %14433 = load i32, ptr %14432, align 4, !tbaa !5
  %14434 = call ptr @strerror(i32 noundef %14433) #12
  %14435 = call ptr @__errno_location() #13
  %14436 = load i32, ptr %14435, align 4, !tbaa !5
  %14437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14424, ptr noundef @.str.4, i32 noundef %14425, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 586, ptr noundef %14428, ptr noundef %14431, ptr noundef %14434, i32 noundef %14436) #12
  br label %14455

14438:                                            ; preds = %14416, %14409
  %14439 = load i32, ptr %313, align 4, !tbaa !5
  %14440 = call ptr @__errno_location() #13
  store i32 %14439, ptr %14440, align 4, !tbaa !5
  %14441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14442 = load i32, ptr @test_count, align 4, !tbaa !5
  %14443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14444 = load i32, ptr %14443, align 4, !tbaa !5
  %14445 = call ptr @s2n_strerror(i32 noundef %14444, ptr noundef @.str.6)
  %14446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14447 = load i32, ptr %14446, align 4, !tbaa !5
  %14448 = call ptr @s2n_strerror_debug(i32 noundef %14447, ptr noundef @.str.6)
  %14449 = call ptr @__errno_location() #13
  %14450 = load i32, ptr %14449, align 4, !tbaa !5
  %14451 = call ptr @strerror(i32 noundef %14450) #12
  %14452 = call ptr @__errno_location() #13
  %14453 = load i32, ptr %14452, align 4, !tbaa !5
  %14454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14441, ptr noundef @.str.7, i32 noundef %14442, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 586, ptr noundef %14445, ptr noundef %14448, ptr noundef %14451, i32 noundef %14453) #12
  br label %14455

14455:                                            ; preds = %14438, %14421
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #12
  br label %14456

14456:                                            ; preds = %14455
  br label %14457

14457:                                            ; preds = %14456
  call void @exit(i32 noundef 1) #14
  unreachable

14458:                                            ; No predecessors!
  br label %14459

14459:                                            ; preds = %14458
  br label %14460

14460:                                            ; preds = %14459, %14400
  br label %14461

14461:                                            ; preds = %14460
  br label %14462

14462:                                            ; preds = %14461
  br label %14463

14463:                                            ; preds = %14462
  %14464 = load i32, ptr @test_count, align 4, !tbaa !5
  %14465 = add nsw i32 %14464, 1
  store i32 %14465, ptr @test_count, align 4, !tbaa !5
  %14466 = load ptr, ptr %311, align 8, !tbaa !9
  %14467 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %299, i64 0, i64 0
  %14468 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %14466, ptr noundef %14467)
  %14469 = icmp ne i32 %14468, 0
  br i1 %14469, label %14523, label %14470

14470:                                            ; preds = %14463
  br label %14471

14471:                                            ; preds = %14470
  br label %14472

14472:                                            ; preds = %14471
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #12
  %14473 = call ptr @__errno_location() #13
  %14474 = load i32, ptr %14473, align 4, !tbaa !5
  store i32 %14474, ptr %314, align 4, !tbaa !5
  %14475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14476 = call i32 @s2n_print_stacktrace(ptr noundef %14475)
  %14477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14478 = trunc i8 %14477 to i1
  br i1 %14478, label %14479, label %14501

14479:                                            ; preds = %14472
  %14480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14481 = call i32 @fileno(ptr noundef %14480) #12
  %14482 = call i32 @isatty(i32 noundef %14481) #12
  %14483 = icmp ne i32 %14482, 0
  br i1 %14483, label %14484, label %14501

14484:                                            ; preds = %14479
  %14485 = load i32, ptr %314, align 4, !tbaa !5
  %14486 = call ptr @__errno_location() #13
  store i32 %14485, ptr %14486, align 4, !tbaa !5
  %14487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14488 = load i32, ptr @test_count, align 4, !tbaa !5
  %14489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14490 = load i32, ptr %14489, align 4, !tbaa !5
  %14491 = call ptr @s2n_strerror(i32 noundef %14490, ptr noundef @.str.6)
  %14492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14493 = load i32, ptr %14492, align 4, !tbaa !5
  %14494 = call ptr @s2n_strerror_debug(i32 noundef %14493, ptr noundef @.str.6)
  %14495 = call ptr @__errno_location() #13
  %14496 = load i32, ptr %14495, align 4, !tbaa !5
  %14497 = call ptr @strerror(i32 noundef %14496) #12
  %14498 = call ptr @__errno_location() #13
  %14499 = load i32, ptr %14498, align 4, !tbaa !5
  %14500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14487, ptr noundef @.str.4, i32 noundef %14488, ptr noundef @.str.100, ptr noundef @.str.3, i32 noundef 587, ptr noundef %14491, ptr noundef %14494, ptr noundef %14497, i32 noundef %14499) #12
  br label %14518

14501:                                            ; preds = %14479, %14472
  %14502 = load i32, ptr %314, align 4, !tbaa !5
  %14503 = call ptr @__errno_location() #13
  store i32 %14502, ptr %14503, align 4, !tbaa !5
  %14504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14505 = load i32, ptr @test_count, align 4, !tbaa !5
  %14506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14507 = load i32, ptr %14506, align 4, !tbaa !5
  %14508 = call ptr @s2n_strerror(i32 noundef %14507, ptr noundef @.str.6)
  %14509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14510 = load i32, ptr %14509, align 4, !tbaa !5
  %14511 = call ptr @s2n_strerror_debug(i32 noundef %14510, ptr noundef @.str.6)
  %14512 = call ptr @__errno_location() #13
  %14513 = load i32, ptr %14512, align 4, !tbaa !5
  %14514 = call ptr @strerror(i32 noundef %14513) #12
  %14515 = call ptr @__errno_location() #13
  %14516 = load i32, ptr %14515, align 4, !tbaa !5
  %14517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14504, ptr noundef @.str.7, i32 noundef %14505, ptr noundef @.str.100, ptr noundef @.str.3, i32 noundef 587, ptr noundef %14508, ptr noundef %14511, ptr noundef %14514, i32 noundef %14516) #12
  br label %14518

14518:                                            ; preds = %14501, %14484
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #12
  br label %14519

14519:                                            ; preds = %14518
  br label %14520

14520:                                            ; preds = %14519
  call void @exit(i32 noundef 1) #14
  unreachable

14521:                                            ; No predecessors!
  br label %14522

14522:                                            ; preds = %14521
  br label %14523

14523:                                            ; preds = %14522, %14463
  br label %14524

14524:                                            ; preds = %14523
  br label %14525

14525:                                            ; preds = %14524
  call void @llvm.lifetime.start.p0(i64 8, ptr %315) #12
  store i64 0, ptr %315, align 8, !tbaa !65
  br label %14526

14526:                                            ; preds = %14594, %14525
  %14527 = load i64, ptr %315, align 8, !tbaa !65
  %14528 = icmp ult i64 %14527, 2
  br i1 %14528, label %14530, label %14529

14529:                                            ; preds = %14526
  store i32 1337, ptr %126, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %315) #12
  br label %14597

14530:                                            ; preds = %14526
  br label %14531

14531:                                            ; preds = %14530
  %14532 = load i32, ptr @test_count, align 4, !tbaa !5
  %14533 = add nsw i32 %14532, 1
  store i32 %14533, ptr @test_count, align 4, !tbaa !5
  %14534 = load i64, ptr %315, align 8, !tbaa !65
  %14535 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %299, i64 0, i64 %14534
  %14536 = call i32 @s2n_ecc_evp_params_free(ptr noundef %14535)
  %14537 = icmp eq i32 %14536, -1
  br i1 %14537, label %14538, label %14591

14538:                                            ; preds = %14531
  br label %14539

14539:                                            ; preds = %14538
  br label %14540

14540:                                            ; preds = %14539
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #12
  %14541 = call ptr @__errno_location() #13
  %14542 = load i32, ptr %14541, align 4, !tbaa !5
  store i32 %14542, ptr %316, align 4, !tbaa !5
  %14543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14544 = call i32 @s2n_print_stacktrace(ptr noundef %14543)
  %14545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14546 = trunc i8 %14545 to i1
  br i1 %14546, label %14547, label %14569

14547:                                            ; preds = %14540
  %14548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14549 = call i32 @fileno(ptr noundef %14548) #12
  %14550 = call i32 @isatty(i32 noundef %14549) #12
  %14551 = icmp ne i32 %14550, 0
  br i1 %14551, label %14552, label %14569

14552:                                            ; preds = %14547
  %14553 = load i32, ptr %316, align 4, !tbaa !5
  %14554 = call ptr @__errno_location() #13
  store i32 %14553, ptr %14554, align 4, !tbaa !5
  %14555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14556 = load i32, ptr @test_count, align 4, !tbaa !5
  %14557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14558 = load i32, ptr %14557, align 4, !tbaa !5
  %14559 = call ptr @s2n_strerror(i32 noundef %14558, ptr noundef @.str.6)
  %14560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14561 = load i32, ptr %14560, align 4, !tbaa !5
  %14562 = call ptr @s2n_strerror_debug(i32 noundef %14561, ptr noundef @.str.6)
  %14563 = call ptr @__errno_location() #13
  %14564 = load i32, ptr %14563, align 4, !tbaa !5
  %14565 = call ptr @strerror(i32 noundef %14564) #12
  %14566 = call ptr @__errno_location() #13
  %14567 = load i32, ptr %14566, align 4, !tbaa !5
  %14568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14555, ptr noundef @.str.4, i32 noundef %14556, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 590, ptr noundef %14559, ptr noundef %14562, ptr noundef %14565, i32 noundef %14567) #12
  br label %14586

14569:                                            ; preds = %14547, %14540
  %14570 = load i32, ptr %316, align 4, !tbaa !5
  %14571 = call ptr @__errno_location() #13
  store i32 %14570, ptr %14571, align 4, !tbaa !5
  %14572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14573 = load i32, ptr @test_count, align 4, !tbaa !5
  %14574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14575 = load i32, ptr %14574, align 4, !tbaa !5
  %14576 = call ptr @s2n_strerror(i32 noundef %14575, ptr noundef @.str.6)
  %14577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14578 = load i32, ptr %14577, align 4, !tbaa !5
  %14579 = call ptr @s2n_strerror_debug(i32 noundef %14578, ptr noundef @.str.6)
  %14580 = call ptr @__errno_location() #13
  %14581 = load i32, ptr %14580, align 4, !tbaa !5
  %14582 = call ptr @strerror(i32 noundef %14581) #12
  %14583 = call ptr @__errno_location() #13
  %14584 = load i32, ptr %14583, align 4, !tbaa !5
  %14585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14572, ptr noundef @.str.7, i32 noundef %14573, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 590, ptr noundef %14576, ptr noundef %14579, ptr noundef %14582, i32 noundef %14584) #12
  br label %14586

14586:                                            ; preds = %14569, %14552
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #12
  br label %14587

14587:                                            ; preds = %14586
  br label %14588

14588:                                            ; preds = %14587
  call void @exit(i32 noundef 1) #14
  unreachable

14589:                                            ; No predecessors!
  br label %14590

14590:                                            ; preds = %14589
  br label %14591

14591:                                            ; preds = %14590, %14531
  br label %14592

14592:                                            ; preds = %14591
  br label %14593

14593:                                            ; preds = %14592
  br label %14594

14594:                                            ; preds = %14593
  %14595 = load i64, ptr %315, align 8, !tbaa !65
  %14596 = add i64 %14595, 1
  store i64 %14596, ptr %315, align 8, !tbaa !65
  br label %14526, !llvm.loop !68

14597:                                            ; preds = %14529
  br label %14598

14598:                                            ; preds = %14597
  %14599 = load i32, ptr @test_count, align 4, !tbaa !5
  %14600 = add nsw i32 %14599, 1
  store i32 %14600, ptr @test_count, align 4, !tbaa !5
  %14601 = call i32 @s2n_stuffer_free(ptr noundef %300)
  %14602 = icmp eq i32 %14601, -1
  br i1 %14602, label %14603, label %14656

14603:                                            ; preds = %14598
  br label %14604

14604:                                            ; preds = %14603
  br label %14605

14605:                                            ; preds = %14604
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #12
  %14606 = call ptr @__errno_location() #13
  %14607 = load i32, ptr %14606, align 4, !tbaa !5
  store i32 %14607, ptr %317, align 4, !tbaa !5
  %14608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14609 = call i32 @s2n_print_stacktrace(ptr noundef %14608)
  %14610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14611 = trunc i8 %14610 to i1
  br i1 %14611, label %14612, label %14634

14612:                                            ; preds = %14605
  %14613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14614 = call i32 @fileno(ptr noundef %14613) #12
  %14615 = call i32 @isatty(i32 noundef %14614) #12
  %14616 = icmp ne i32 %14615, 0
  br i1 %14616, label %14617, label %14634

14617:                                            ; preds = %14612
  %14618 = load i32, ptr %317, align 4, !tbaa !5
  %14619 = call ptr @__errno_location() #13
  store i32 %14618, ptr %14619, align 4, !tbaa !5
  %14620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14621 = load i32, ptr @test_count, align 4, !tbaa !5
  %14622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14623 = load i32, ptr %14622, align 4, !tbaa !5
  %14624 = call ptr @s2n_strerror(i32 noundef %14623, ptr noundef @.str.6)
  %14625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14626 = load i32, ptr %14625, align 4, !tbaa !5
  %14627 = call ptr @s2n_strerror_debug(i32 noundef %14626, ptr noundef @.str.6)
  %14628 = call ptr @__errno_location() #13
  %14629 = load i32, ptr %14628, align 4, !tbaa !5
  %14630 = call ptr @strerror(i32 noundef %14629) #12
  %14631 = call ptr @__errno_location() #13
  %14632 = load i32, ptr %14631, align 4, !tbaa !5
  %14633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14620, ptr noundef @.str.4, i32 noundef %14621, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 592, ptr noundef %14624, ptr noundef %14627, ptr noundef %14630, i32 noundef %14632) #12
  br label %14651

14634:                                            ; preds = %14612, %14605
  %14635 = load i32, ptr %317, align 4, !tbaa !5
  %14636 = call ptr @__errno_location() #13
  store i32 %14635, ptr %14636, align 4, !tbaa !5
  %14637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14638 = load i32, ptr @test_count, align 4, !tbaa !5
  %14639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14640 = load i32, ptr %14639, align 4, !tbaa !5
  %14641 = call ptr @s2n_strerror(i32 noundef %14640, ptr noundef @.str.6)
  %14642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14643 = load i32, ptr %14642, align 4, !tbaa !5
  %14644 = call ptr @s2n_strerror_debug(i32 noundef %14643, ptr noundef @.str.6)
  %14645 = call ptr @__errno_location() #13
  %14646 = load i32, ptr %14645, align 4, !tbaa !5
  %14647 = call ptr @strerror(i32 noundef %14646) #12
  %14648 = call ptr @__errno_location() #13
  %14649 = load i32, ptr %14648, align 4, !tbaa !5
  %14650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14637, ptr noundef @.str.7, i32 noundef %14638, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 592, ptr noundef %14641, ptr noundef %14644, ptr noundef %14647, i32 noundef %14649) #12
  br label %14651

14651:                                            ; preds = %14634, %14617
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #12
  br label %14652

14652:                                            ; preds = %14651
  br label %14653

14653:                                            ; preds = %14652
  call void @exit(i32 noundef 1) #14
  unreachable

14654:                                            ; No predecessors!
  br label %14655

14655:                                            ; preds = %14654
  br label %14656

14656:                                            ; preds = %14655, %14598
  br label %14657

14657:                                            ; preds = %14656
  br label %14658

14658:                                            ; preds = %14657
  br label %14659

14659:                                            ; preds = %14658
  %14660 = load i32, ptr @test_count, align 4, !tbaa !5
  %14661 = add nsw i32 %14660, 1
  store i32 %14661, ptr @test_count, align 4, !tbaa !5
  %14662 = load ptr, ptr %291, align 8, !tbaa !9
  %14663 = call i32 @s2n_connection_free(ptr noundef %14662)
  %14664 = icmp eq i32 %14663, -1
  br i1 %14664, label %14665, label %14718

14665:                                            ; preds = %14659
  br label %14666

14666:                                            ; preds = %14665
  br label %14667

14667:                                            ; preds = %14666
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #12
  %14668 = call ptr @__errno_location() #13
  %14669 = load i32, ptr %14668, align 4, !tbaa !5
  store i32 %14669, ptr %318, align 4, !tbaa !5
  %14670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14671 = call i32 @s2n_print_stacktrace(ptr noundef %14670)
  %14672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14673 = trunc i8 %14672 to i1
  br i1 %14673, label %14674, label %14696

14674:                                            ; preds = %14667
  %14675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14676 = call i32 @fileno(ptr noundef %14675) #12
  %14677 = call i32 @isatty(i32 noundef %14676) #12
  %14678 = icmp ne i32 %14677, 0
  br i1 %14678, label %14679, label %14696

14679:                                            ; preds = %14674
  %14680 = load i32, ptr %318, align 4, !tbaa !5
  %14681 = call ptr @__errno_location() #13
  store i32 %14680, ptr %14681, align 4, !tbaa !5
  %14682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14683 = load i32, ptr @test_count, align 4, !tbaa !5
  %14684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14685 = load i32, ptr %14684, align 4, !tbaa !5
  %14686 = call ptr @s2n_strerror(i32 noundef %14685, ptr noundef @.str.6)
  %14687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14688 = load i32, ptr %14687, align 4, !tbaa !5
  %14689 = call ptr @s2n_strerror_debug(i32 noundef %14688, ptr noundef @.str.6)
  %14690 = call ptr @__errno_location() #13
  %14691 = load i32, ptr %14690, align 4, !tbaa !5
  %14692 = call ptr @strerror(i32 noundef %14691) #12
  %14693 = call ptr @__errno_location() #13
  %14694 = load i32, ptr %14693, align 4, !tbaa !5
  %14695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14682, ptr noundef @.str.4, i32 noundef %14683, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 593, ptr noundef %14686, ptr noundef %14689, ptr noundef %14692, i32 noundef %14694) #12
  br label %14713

14696:                                            ; preds = %14674, %14667
  %14697 = load i32, ptr %318, align 4, !tbaa !5
  %14698 = call ptr @__errno_location() #13
  store i32 %14697, ptr %14698, align 4, !tbaa !5
  %14699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14700 = load i32, ptr @test_count, align 4, !tbaa !5
  %14701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14702 = load i32, ptr %14701, align 4, !tbaa !5
  %14703 = call ptr @s2n_strerror(i32 noundef %14702, ptr noundef @.str.6)
  %14704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14705 = load i32, ptr %14704, align 4, !tbaa !5
  %14706 = call ptr @s2n_strerror_debug(i32 noundef %14705, ptr noundef @.str.6)
  %14707 = call ptr @__errno_location() #13
  %14708 = load i32, ptr %14707, align 4, !tbaa !5
  %14709 = call ptr @strerror(i32 noundef %14708) #12
  %14710 = call ptr @__errno_location() #13
  %14711 = load i32, ptr %14710, align 4, !tbaa !5
  %14712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14699, ptr noundef @.str.7, i32 noundef %14700, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 593, ptr noundef %14703, ptr noundef %14706, ptr noundef %14709, i32 noundef %14711) #12
  br label %14713

14713:                                            ; preds = %14696, %14679
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #12
  br label %14714

14714:                                            ; preds = %14713
  br label %14715

14715:                                            ; preds = %14714
  call void @exit(i32 noundef 1) #14
  unreachable

14716:                                            ; No predecessors!
  br label %14717

14717:                                            ; preds = %14716
  br label %14718

14718:                                            ; preds = %14717, %14659
  br label %14719

14719:                                            ; preds = %14718
  br label %14720

14720:                                            ; preds = %14719
  call void @llvm.lifetime.end.p0(i64 8, ptr %311) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %302) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %300) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %319) #12
  %14721 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %14721, ptr %319, align 8, !tbaa !9
  br label %14722

14722:                                            ; preds = %14720
  %14723 = load i32, ptr @test_count, align 4, !tbaa !5
  %14724 = add nsw i32 %14723, 1
  store i32 %14724, ptr @test_count, align 4, !tbaa !5
  %14725 = load ptr, ptr %319, align 8, !tbaa !9
  %14726 = icmp eq ptr %14725, null
  br i1 %14726, label %14727, label %14780

14727:                                            ; preds = %14722
  br label %14728

14728:                                            ; preds = %14727
  br label %14729

14729:                                            ; preds = %14728
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #12
  %14730 = call ptr @__errno_location() #13
  %14731 = load i32, ptr %14730, align 4, !tbaa !5
  store i32 %14731, ptr %320, align 4, !tbaa !5
  %14732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14733 = call i32 @s2n_print_stacktrace(ptr noundef %14732)
  %14734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14735 = trunc i8 %14734 to i1
  br i1 %14735, label %14736, label %14758

14736:                                            ; preds = %14729
  %14737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14738 = call i32 @fileno(ptr noundef %14737) #12
  %14739 = call i32 @isatty(i32 noundef %14738) #12
  %14740 = icmp ne i32 %14739, 0
  br i1 %14740, label %14741, label %14758

14741:                                            ; preds = %14736
  %14742 = load i32, ptr %320, align 4, !tbaa !5
  %14743 = call ptr @__errno_location() #13
  store i32 %14742, ptr %14743, align 4, !tbaa !5
  %14744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14745 = load i32, ptr @test_count, align 4, !tbaa !5
  %14746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14747 = load i32, ptr %14746, align 4, !tbaa !5
  %14748 = call ptr @s2n_strerror(i32 noundef %14747, ptr noundef @.str.6)
  %14749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14750 = load i32, ptr %14749, align 4, !tbaa !5
  %14751 = call ptr @s2n_strerror_debug(i32 noundef %14750, ptr noundef @.str.6)
  %14752 = call ptr @__errno_location() #13
  %14753 = load i32, ptr %14752, align 4, !tbaa !5
  %14754 = call ptr @strerror(i32 noundef %14753) #12
  %14755 = call ptr @__errno_location() #13
  %14756 = load i32, ptr %14755, align 4, !tbaa !5
  %14757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14744, ptr noundef @.str.4, i32 noundef %14745, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 601, ptr noundef %14748, ptr noundef %14751, ptr noundef %14754, i32 noundef %14756) #12
  br label %14775

14758:                                            ; preds = %14736, %14729
  %14759 = load i32, ptr %320, align 4, !tbaa !5
  %14760 = call ptr @__errno_location() #13
  store i32 %14759, ptr %14760, align 4, !tbaa !5
  %14761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14762 = load i32, ptr @test_count, align 4, !tbaa !5
  %14763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14764 = load i32, ptr %14763, align 4, !tbaa !5
  %14765 = call ptr @s2n_strerror(i32 noundef %14764, ptr noundef @.str.6)
  %14766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14767 = load i32, ptr %14766, align 4, !tbaa !5
  %14768 = call ptr @s2n_strerror_debug(i32 noundef %14767, ptr noundef @.str.6)
  %14769 = call ptr @__errno_location() #13
  %14770 = load i32, ptr %14769, align 4, !tbaa !5
  %14771 = call ptr @strerror(i32 noundef %14770) #12
  %14772 = call ptr @__errno_location() #13
  %14773 = load i32, ptr %14772, align 4, !tbaa !5
  %14774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14761, ptr noundef @.str.7, i32 noundef %14762, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 601, ptr noundef %14765, ptr noundef %14768, ptr noundef %14771, i32 noundef %14773) #12
  br label %14775

14775:                                            ; preds = %14758, %14741
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #12
  br label %14776

14776:                                            ; preds = %14775
  br label %14777

14777:                                            ; preds = %14776
  call void @exit(i32 noundef 1) #14
  unreachable

14778:                                            ; No predecessors!
  br label %14779

14779:                                            ; preds = %14778
  br label %14780

14780:                                            ; preds = %14779, %14722
  br label %14781

14781:                                            ; preds = %14780
  br label %14782

14782:                                            ; preds = %14781
  %14783 = load ptr, ptr %319, align 8, !tbaa !9
  %14784 = getelementptr inbounds %struct.s2n_connection, ptr %14783, i32 0, i32 23
  store i8 34, ptr %14784, align 4, !tbaa !63
  br label %14785

14785:                                            ; preds = %14782
  %14786 = load i32, ptr @test_count, align 4, !tbaa !5
  %14787 = add nsw i32 %14786, 1
  store i32 %14787, ptr @test_count, align 4, !tbaa !5
  %14788 = load ptr, ptr %319, align 8, !tbaa !9
  %14789 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %14788)
  %14790 = getelementptr inbounds %struct.s2n_result, ptr %321, i32 0, i32 0
  store i32 %14789, ptr %14790, align 4
  %14791 = getelementptr inbounds %struct.s2n_result, ptr %321, i32 0, i32 0
  %14792 = load i32, ptr %14791, align 4
  %14793 = call zeroext i1 @s2n_result_is_ok(i32 %14792)
  br i1 %14793, label %14847, label %14794

14794:                                            ; preds = %14785
  br label %14795

14795:                                            ; preds = %14794
  br label %14796

14796:                                            ; preds = %14795
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #12
  %14797 = call ptr @__errno_location() #13
  %14798 = load i32, ptr %14797, align 4, !tbaa !5
  store i32 %14798, ptr %322, align 4, !tbaa !5
  %14799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14800 = call i32 @s2n_print_stacktrace(ptr noundef %14799)
  %14801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14802 = trunc i8 %14801 to i1
  br i1 %14802, label %14803, label %14825

14803:                                            ; preds = %14796
  %14804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14805 = call i32 @fileno(ptr noundef %14804) #12
  %14806 = call i32 @isatty(i32 noundef %14805) #12
  %14807 = icmp ne i32 %14806, 0
  br i1 %14807, label %14808, label %14825

14808:                                            ; preds = %14803
  %14809 = load i32, ptr %322, align 4, !tbaa !5
  %14810 = call ptr @__errno_location() #13
  store i32 %14809, ptr %14810, align 4, !tbaa !5
  %14811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14812 = load i32, ptr @test_count, align 4, !tbaa !5
  %14813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14814 = load i32, ptr %14813, align 4, !tbaa !5
  %14815 = call ptr @s2n_strerror(i32 noundef %14814, ptr noundef @.str.6)
  %14816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14817 = load i32, ptr %14816, align 4, !tbaa !5
  %14818 = call ptr @s2n_strerror_debug(i32 noundef %14817, ptr noundef @.str.6)
  %14819 = call ptr @__errno_location() #13
  %14820 = load i32, ptr %14819, align 4, !tbaa !5
  %14821 = call ptr @strerror(i32 noundef %14820) #12
  %14822 = call ptr @__errno_location() #13
  %14823 = load i32, ptr %14822, align 4, !tbaa !5
  %14824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14811, ptr noundef @.str.4, i32 noundef %14812, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 605, ptr noundef %14815, ptr noundef %14818, ptr noundef %14821, i32 noundef %14823) #12
  br label %14842

14825:                                            ; preds = %14803, %14796
  %14826 = load i32, ptr %322, align 4, !tbaa !5
  %14827 = call ptr @__errno_location() #13
  store i32 %14826, ptr %14827, align 4, !tbaa !5
  %14828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14829 = load i32, ptr @test_count, align 4, !tbaa !5
  %14830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14831 = load i32, ptr %14830, align 4, !tbaa !5
  %14832 = call ptr @s2n_strerror(i32 noundef %14831, ptr noundef @.str.6)
  %14833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14834 = load i32, ptr %14833, align 4, !tbaa !5
  %14835 = call ptr @s2n_strerror_debug(i32 noundef %14834, ptr noundef @.str.6)
  %14836 = call ptr @__errno_location() #13
  %14837 = load i32, ptr %14836, align 4, !tbaa !5
  %14838 = call ptr @strerror(i32 noundef %14837) #12
  %14839 = call ptr @__errno_location() #13
  %14840 = load i32, ptr %14839, align 4, !tbaa !5
  %14841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14828, ptr noundef @.str.7, i32 noundef %14829, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 605, ptr noundef %14832, ptr noundef %14835, ptr noundef %14838, i32 noundef %14840) #12
  br label %14842

14842:                                            ; preds = %14825, %14808
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #12
  br label %14843

14843:                                            ; preds = %14842
  br label %14844

14844:                                            ; preds = %14843
  call void @exit(i32 noundef 1) #14
  unreachable

14845:                                            ; No predecessors!
  br label %14846

14846:                                            ; preds = %14845
  br label %14847

14847:                                            ; preds = %14846, %14785
  br label %14848

14848:                                            ; preds = %14847
  br label %14849

14849:                                            ; preds = %14848
  %14850 = load ptr, ptr %319, align 8, !tbaa !9
  %14851 = getelementptr inbounds %struct.s2n_connection, ptr %14850, i32 0, i32 31
  %14852 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14851, i32 0, i32 2
  %14853 = getelementptr inbounds [4 x ptr], ptr %14852, i64 0, i64 0
  store ptr null, ptr %14853, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %323) #12
  store ptr null, ptr %323, align 8, !tbaa !9
  br label %14854

14854:                                            ; preds = %14849
  %14855 = load i32, ptr @test_count, align 4, !tbaa !5
  %14856 = add nsw i32 %14855, 1
  store i32 %14856, ptr @test_count, align 4, !tbaa !5
  %14857 = load ptr, ptr %319, align 8, !tbaa !9
  %14858 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %14857, ptr noundef %323)
  %14859 = icmp eq i32 %14858, -1
  br i1 %14859, label %14860, label %14913

14860:                                            ; preds = %14854
  br label %14861

14861:                                            ; preds = %14860
  br label %14862

14862:                                            ; preds = %14861
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #12
  %14863 = call ptr @__errno_location() #13
  %14864 = load i32, ptr %14863, align 4, !tbaa !5
  store i32 %14864, ptr %324, align 4, !tbaa !5
  %14865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14866 = call i32 @s2n_print_stacktrace(ptr noundef %14865)
  %14867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14868 = trunc i8 %14867 to i1
  br i1 %14868, label %14869, label %14891

14869:                                            ; preds = %14862
  %14870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14871 = call i32 @fileno(ptr noundef %14870) #12
  %14872 = call i32 @isatty(i32 noundef %14871) #12
  %14873 = icmp ne i32 %14872, 0
  br i1 %14873, label %14874, label %14891

14874:                                            ; preds = %14869
  %14875 = load i32, ptr %324, align 4, !tbaa !5
  %14876 = call ptr @__errno_location() #13
  store i32 %14875, ptr %14876, align 4, !tbaa !5
  %14877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14878 = load i32, ptr @test_count, align 4, !tbaa !5
  %14879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14880 = load i32, ptr %14879, align 4, !tbaa !5
  %14881 = call ptr @s2n_strerror(i32 noundef %14880, ptr noundef @.str.6)
  %14882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14883 = load i32, ptr %14882, align 4, !tbaa !5
  %14884 = call ptr @s2n_strerror_debug(i32 noundef %14883, ptr noundef @.str.6)
  %14885 = call ptr @__errno_location() #13
  %14886 = load i32, ptr %14885, align 4, !tbaa !5
  %14887 = call ptr @strerror(i32 noundef %14886) #12
  %14888 = call ptr @__errno_location() #13
  %14889 = load i32, ptr %14888, align 4, !tbaa !5
  %14890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14877, ptr noundef @.str.4, i32 noundef %14878, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 609, ptr noundef %14881, ptr noundef %14884, ptr noundef %14887, i32 noundef %14889) #12
  br label %14908

14891:                                            ; preds = %14869, %14862
  %14892 = load i32, ptr %324, align 4, !tbaa !5
  %14893 = call ptr @__errno_location() #13
  store i32 %14892, ptr %14893, align 4, !tbaa !5
  %14894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14895 = load i32, ptr @test_count, align 4, !tbaa !5
  %14896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14897 = load i32, ptr %14896, align 4, !tbaa !5
  %14898 = call ptr @s2n_strerror(i32 noundef %14897, ptr noundef @.str.6)
  %14899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14900 = load i32, ptr %14899, align 4, !tbaa !5
  %14901 = call ptr @s2n_strerror_debug(i32 noundef %14900, ptr noundef @.str.6)
  %14902 = call ptr @__errno_location() #13
  %14903 = load i32, ptr %14902, align 4, !tbaa !5
  %14904 = call ptr @strerror(i32 noundef %14903) #12
  %14905 = call ptr @__errno_location() #13
  %14906 = load i32, ptr %14905, align 4, !tbaa !5
  %14907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14894, ptr noundef @.str.7, i32 noundef %14895, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 609, ptr noundef %14898, ptr noundef %14901, ptr noundef %14904, i32 noundef %14906) #12
  br label %14908

14908:                                            ; preds = %14891, %14874
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #12
  br label %14909

14909:                                            ; preds = %14908
  br label %14910

14910:                                            ; preds = %14909
  call void @exit(i32 noundef 1) #14
  unreachable

14911:                                            ; No predecessors!
  br label %14912

14912:                                            ; preds = %14911
  br label %14913

14913:                                            ; preds = %14912, %14854
  br label %14914

14914:                                            ; preds = %14913
  br label %14915

14915:                                            ; preds = %14914
  br label %14916

14916:                                            ; preds = %14915
  %14917 = load i32, ptr @test_count, align 4, !tbaa !5
  %14918 = add nsw i32 %14917, 1
  store i32 %14918, ptr @test_count, align 4, !tbaa !5
  %14919 = load ptr, ptr %323, align 8, !tbaa !9
  %14920 = icmp eq ptr %14919, null
  br i1 %14920, label %14921, label %14974

14921:                                            ; preds = %14916
  br label %14922

14922:                                            ; preds = %14921
  br label %14923

14923:                                            ; preds = %14922
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #12
  %14924 = call ptr @__errno_location() #13
  %14925 = load i32, ptr %14924, align 4, !tbaa !5
  store i32 %14925, ptr %325, align 4, !tbaa !5
  %14926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14927 = call i32 @s2n_print_stacktrace(ptr noundef %14926)
  %14928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14929 = trunc i8 %14928 to i1
  br i1 %14929, label %14930, label %14952

14930:                                            ; preds = %14923
  %14931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14932 = call i32 @fileno(ptr noundef %14931) #12
  %14933 = call i32 @isatty(i32 noundef %14932) #12
  %14934 = icmp ne i32 %14933, 0
  br i1 %14934, label %14935, label %14952

14935:                                            ; preds = %14930
  %14936 = load i32, ptr %325, align 4, !tbaa !5
  %14937 = call ptr @__errno_location() #13
  store i32 %14936, ptr %14937, align 4, !tbaa !5
  %14938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14939 = load i32, ptr @test_count, align 4, !tbaa !5
  %14940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14941 = load i32, ptr %14940, align 4, !tbaa !5
  %14942 = call ptr @s2n_strerror(i32 noundef %14941, ptr noundef @.str.6)
  %14943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14944 = load i32, ptr %14943, align 4, !tbaa !5
  %14945 = call ptr @s2n_strerror_debug(i32 noundef %14944, ptr noundef @.str.6)
  %14946 = call ptr @__errno_location() #13
  %14947 = load i32, ptr %14946, align 4, !tbaa !5
  %14948 = call ptr @strerror(i32 noundef %14947) #12
  %14949 = call ptr @__errno_location() #13
  %14950 = load i32, ptr %14949, align 4, !tbaa !5
  %14951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14938, ptr noundef @.str.4, i32 noundef %14939, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 610, ptr noundef %14942, ptr noundef %14945, ptr noundef %14948, i32 noundef %14950) #12
  br label %14969

14952:                                            ; preds = %14930, %14923
  %14953 = load i32, ptr %325, align 4, !tbaa !5
  %14954 = call ptr @__errno_location() #13
  store i32 %14953, ptr %14954, align 4, !tbaa !5
  %14955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14956 = load i32, ptr @test_count, align 4, !tbaa !5
  %14957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14958 = load i32, ptr %14957, align 4, !tbaa !5
  %14959 = call ptr @s2n_strerror(i32 noundef %14958, ptr noundef @.str.6)
  %14960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14961 = load i32, ptr %14960, align 4, !tbaa !5
  %14962 = call ptr @s2n_strerror_debug(i32 noundef %14961, ptr noundef @.str.6)
  %14963 = call ptr @__errno_location() #13
  %14964 = load i32, ptr %14963, align 4, !tbaa !5
  %14965 = call ptr @strerror(i32 noundef %14964) #12
  %14966 = call ptr @__errno_location() #13
  %14967 = load i32, ptr %14966, align 4, !tbaa !5
  %14968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14955, ptr noundef @.str.7, i32 noundef %14956, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 610, ptr noundef %14959, ptr noundef %14962, ptr noundef %14965, i32 noundef %14967) #12
  br label %14969

14969:                                            ; preds = %14952, %14935
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #12
  br label %14970

14970:                                            ; preds = %14969
  br label %14971

14971:                                            ; preds = %14970
  call void @exit(i32 noundef 1) #14
  unreachable

14972:                                            ; No predecessors!
  br label %14973

14973:                                            ; preds = %14972
  br label %14974

14974:                                            ; preds = %14973, %14916
  br label %14975

14975:                                            ; preds = %14974
  br label %14976

14976:                                            ; preds = %14975
  br label %14977

14977:                                            ; preds = %14976
  %14978 = load i32, ptr @test_count, align 4, !tbaa !5
  %14979 = add nsw i32 %14978, 1
  store i32 %14979, ptr @test_count, align 4, !tbaa !5
  %14980 = load ptr, ptr %323, align 8, !tbaa !9
  %14981 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %14980, i32 0, i32 0
  %14982 = load i8, ptr %14981, align 8, !tbaa !64
  %14983 = zext i8 %14982 to i32
  %14984 = icmp sge i32 %14983, 2
  br i1 %14984, label %15038, label %14985

14985:                                            ; preds = %14977
  br label %14986

14986:                                            ; preds = %14985
  br label %14987

14987:                                            ; preds = %14986
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #12
  %14988 = call ptr @__errno_location() #13
  %14989 = load i32, ptr %14988, align 4, !tbaa !5
  store i32 %14989, ptr %326, align 4, !tbaa !5
  %14990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14991 = call i32 @s2n_print_stacktrace(ptr noundef %14990)
  %14992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14993 = trunc i8 %14992 to i1
  br i1 %14993, label %14994, label %15016

14994:                                            ; preds = %14987
  %14995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14996 = call i32 @fileno(ptr noundef %14995) #12
  %14997 = call i32 @isatty(i32 noundef %14996) #12
  %14998 = icmp ne i32 %14997, 0
  br i1 %14998, label %14999, label %15016

14999:                                            ; preds = %14994
  %15000 = load i32, ptr %326, align 4, !tbaa !5
  %15001 = call ptr @__errno_location() #13
  store i32 %15000, ptr %15001, align 4, !tbaa !5
  %15002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15003 = load i32, ptr @test_count, align 4, !tbaa !5
  %15004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15005 = load i32, ptr %15004, align 4, !tbaa !5
  %15006 = call ptr @s2n_strerror(i32 noundef %15005, ptr noundef @.str.6)
  %15007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15008 = load i32, ptr %15007, align 4, !tbaa !5
  %15009 = call ptr @s2n_strerror_debug(i32 noundef %15008, ptr noundef @.str.6)
  %15010 = call ptr @__errno_location() #13
  %15011 = load i32, ptr %15010, align 4, !tbaa !5
  %15012 = call ptr @strerror(i32 noundef %15011) #12
  %15013 = call ptr @__errno_location() #13
  %15014 = load i32, ptr %15013, align 4, !tbaa !5
  %15015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15002, ptr noundef @.str.4, i32 noundef %15003, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 611, ptr noundef %15006, ptr noundef %15009, ptr noundef %15012, i32 noundef %15014) #12
  br label %15033

15016:                                            ; preds = %14994, %14987
  %15017 = load i32, ptr %326, align 4, !tbaa !5
  %15018 = call ptr @__errno_location() #13
  store i32 %15017, ptr %15018, align 4, !tbaa !5
  %15019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15020 = load i32, ptr @test_count, align 4, !tbaa !5
  %15021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15022 = load i32, ptr %15021, align 4, !tbaa !5
  %15023 = call ptr @s2n_strerror(i32 noundef %15022, ptr noundef @.str.6)
  %15024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15025 = load i32, ptr %15024, align 4, !tbaa !5
  %15026 = call ptr @s2n_strerror_debug(i32 noundef %15025, ptr noundef @.str.6)
  %15027 = call ptr @__errno_location() #13
  %15028 = load i32, ptr %15027, align 4, !tbaa !5
  %15029 = call ptr @strerror(i32 noundef %15028) #12
  %15030 = call ptr @__errno_location() #13
  %15031 = load i32, ptr %15030, align 4, !tbaa !5
  %15032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15019, ptr noundef @.str.7, i32 noundef %15020, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 611, ptr noundef %15023, ptr noundef %15026, ptr noundef %15029, i32 noundef %15031) #12
  br label %15033

15033:                                            ; preds = %15016, %14999
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #12
  br label %15034

15034:                                            ; preds = %15033
  br label %15035

15035:                                            ; preds = %15034
  call void @exit(i32 noundef 1) #14
  unreachable

15036:                                            ; No predecessors!
  br label %15037

15037:                                            ; preds = %15036
  br label %15038

15038:                                            ; preds = %15037, %14977
  br label %15039

15039:                                            ; preds = %15038
  br label %15040

15040:                                            ; preds = %15039
  call void @llvm.lifetime.start.p0(i64 16, ptr %327) #12
  %15041 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %327, i32 0, i32 0
  %15042 = load ptr, ptr %323, align 8, !tbaa !9
  %15043 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %15042, i32 0, i32 1
  %15044 = load ptr, ptr %15043, align 8, !tbaa !24
  %15045 = getelementptr inbounds ptr, ptr %15044, i64 0
  %15046 = load ptr, ptr %15045, align 8, !tbaa !9
  store ptr %15046, ptr %15041, align 8, !tbaa !22
  %15047 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %327, i32 0, i32 1
  store ptr null, ptr %15047, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr %328) #12
  call void @llvm.memset.p0.i64(ptr align 8 %328, i8 0, i64 40, i1 false)
  br label %15048

15048:                                            ; preds = %15040
  %15049 = load i32, ptr @test_count, align 4, !tbaa !5
  %15050 = add nsw i32 %15049, 1
  store i32 %15050, ptr @test_count, align 4, !tbaa !5
  %15051 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %328, i32 noundef 0)
  %15052 = icmp eq i32 %15051, -1
  br i1 %15052, label %15053, label %15106

15053:                                            ; preds = %15048
  br label %15054

15054:                                            ; preds = %15053
  br label %15055

15055:                                            ; preds = %15054
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #12
  %15056 = call ptr @__errno_location() #13
  %15057 = load i32, ptr %15056, align 4, !tbaa !5
  store i32 %15057, ptr %329, align 4, !tbaa !5
  %15058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15059 = call i32 @s2n_print_stacktrace(ptr noundef %15058)
  %15060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15061 = trunc i8 %15060 to i1
  br i1 %15061, label %15062, label %15084

15062:                                            ; preds = %15055
  %15063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15064 = call i32 @fileno(ptr noundef %15063) #12
  %15065 = call i32 @isatty(i32 noundef %15064) #12
  %15066 = icmp ne i32 %15065, 0
  br i1 %15066, label %15067, label %15084

15067:                                            ; preds = %15062
  %15068 = load i32, ptr %329, align 4, !tbaa !5
  %15069 = call ptr @__errno_location() #13
  store i32 %15068, ptr %15069, align 4, !tbaa !5
  %15070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15071 = load i32, ptr @test_count, align 4, !tbaa !5
  %15072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15073 = load i32, ptr %15072, align 4, !tbaa !5
  %15074 = call ptr @s2n_strerror(i32 noundef %15073, ptr noundef @.str.6)
  %15075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15076 = load i32, ptr %15075, align 4, !tbaa !5
  %15077 = call ptr @s2n_strerror_debug(i32 noundef %15076, ptr noundef @.str.6)
  %15078 = call ptr @__errno_location() #13
  %15079 = load i32, ptr %15078, align 4, !tbaa !5
  %15080 = call ptr @strerror(i32 noundef %15079) #12
  %15081 = call ptr @__errno_location() #13
  %15082 = load i32, ptr %15081, align 4, !tbaa !5
  %15083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15070, ptr noundef @.str.4, i32 noundef %15071, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 616, ptr noundef %15074, ptr noundef %15077, ptr noundef %15080, i32 noundef %15082) #12
  br label %15101

15084:                                            ; preds = %15062, %15055
  %15085 = load i32, ptr %329, align 4, !tbaa !5
  %15086 = call ptr @__errno_location() #13
  store i32 %15085, ptr %15086, align 4, !tbaa !5
  %15087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15088 = load i32, ptr @test_count, align 4, !tbaa !5
  %15089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15090 = load i32, ptr %15089, align 4, !tbaa !5
  %15091 = call ptr @s2n_strerror(i32 noundef %15090, ptr noundef @.str.6)
  %15092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15093 = load i32, ptr %15092, align 4, !tbaa !5
  %15094 = call ptr @s2n_strerror_debug(i32 noundef %15093, ptr noundef @.str.6)
  %15095 = call ptr @__errno_location() #13
  %15096 = load i32, ptr %15095, align 4, !tbaa !5
  %15097 = call ptr @strerror(i32 noundef %15096) #12
  %15098 = call ptr @__errno_location() #13
  %15099 = load i32, ptr %15098, align 4, !tbaa !5
  %15100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15087, ptr noundef @.str.7, i32 noundef %15088, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 616, ptr noundef %15091, ptr noundef %15094, ptr noundef %15097, i32 noundef %15099) #12
  br label %15101

15101:                                            ; preds = %15084, %15067
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #12
  br label %15102

15102:                                            ; preds = %15101
  br label %15103

15103:                                            ; preds = %15102
  call void @exit(i32 noundef 1) #14
  unreachable

15104:                                            ; No predecessors!
  br label %15105

15105:                                            ; preds = %15104
  br label %15106

15106:                                            ; preds = %15105, %15048
  br label %15107

15107:                                            ; preds = %15106
  br label %15108

15108:                                            ; preds = %15107
  call void @llvm.lifetime.start.p0(i64 16, ptr %330) #12
  call void @llvm.memset.p0.i64(ptr align 8 %330, i8 0, i64 16, i1 false)
  br label %15109

15109:                                            ; preds = %15108
  %15110 = load i32, ptr @test_count, align 4, !tbaa !5
  %15111 = add nsw i32 %15110, 1
  store i32 %15111, ptr @test_count, align 4, !tbaa !5
  %15112 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %328, ptr noundef %330)
  %15113 = icmp eq i32 %15112, -1
  br i1 %15113, label %15114, label %15167

15114:                                            ; preds = %15109
  br label %15115

15115:                                            ; preds = %15114
  br label %15116

15116:                                            ; preds = %15115
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #12
  %15117 = call ptr @__errno_location() #13
  %15118 = load i32, ptr %15117, align 4, !tbaa !5
  store i32 %15118, ptr %331, align 4, !tbaa !5
  %15119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15120 = call i32 @s2n_print_stacktrace(ptr noundef %15119)
  %15121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15122 = trunc i8 %15121 to i1
  br i1 %15122, label %15123, label %15145

15123:                                            ; preds = %15116
  %15124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15125 = call i32 @fileno(ptr noundef %15124) #12
  %15126 = call i32 @isatty(i32 noundef %15125) #12
  %15127 = icmp ne i32 %15126, 0
  br i1 %15127, label %15128, label %15145

15128:                                            ; preds = %15123
  %15129 = load i32, ptr %331, align 4, !tbaa !5
  %15130 = call ptr @__errno_location() #13
  store i32 %15129, ptr %15130, align 4, !tbaa !5
  %15131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15132 = load i32, ptr @test_count, align 4, !tbaa !5
  %15133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15134 = load i32, ptr %15133, align 4, !tbaa !5
  %15135 = call ptr @s2n_strerror(i32 noundef %15134, ptr noundef @.str.6)
  %15136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15137 = load i32, ptr %15136, align 4, !tbaa !5
  %15138 = call ptr @s2n_strerror_debug(i32 noundef %15137, ptr noundef @.str.6)
  %15139 = call ptr @__errno_location() #13
  %15140 = load i32, ptr %15139, align 4, !tbaa !5
  %15141 = call ptr @strerror(i32 noundef %15140) #12
  %15142 = call ptr @__errno_location() #13
  %15143 = load i32, ptr %15142, align 4, !tbaa !5
  %15144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15131, ptr noundef @.str.4, i32 noundef %15132, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 619, ptr noundef %15135, ptr noundef %15138, ptr noundef %15141, i32 noundef %15143) #12
  br label %15162

15145:                                            ; preds = %15123, %15116
  %15146 = load i32, ptr %331, align 4, !tbaa !5
  %15147 = call ptr @__errno_location() #13
  store i32 %15146, ptr %15147, align 4, !tbaa !5
  %15148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15149 = load i32, ptr @test_count, align 4, !tbaa !5
  %15150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15151 = load i32, ptr %15150, align 4, !tbaa !5
  %15152 = call ptr @s2n_strerror(i32 noundef %15151, ptr noundef @.str.6)
  %15153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15154 = load i32, ptr %15153, align 4, !tbaa !5
  %15155 = call ptr @s2n_strerror_debug(i32 noundef %15154, ptr noundef @.str.6)
  %15156 = call ptr @__errno_location() #13
  %15157 = load i32, ptr %15156, align 4, !tbaa !5
  %15158 = call ptr @strerror(i32 noundef %15157) #12
  %15159 = call ptr @__errno_location() #13
  %15160 = load i32, ptr %15159, align 4, !tbaa !5
  %15161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15148, ptr noundef @.str.7, i32 noundef %15149, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 619, ptr noundef %15152, ptr noundef %15155, ptr noundef %15158, i32 noundef %15160) #12
  br label %15162

15162:                                            ; preds = %15145, %15128
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #12
  br label %15163

15163:                                            ; preds = %15162
  br label %15164

15164:                                            ; preds = %15163
  call void @exit(i32 noundef 1) #14
  unreachable

15165:                                            ; No predecessors!
  br label %15166

15166:                                            ; preds = %15165
  br label %15167

15167:                                            ; preds = %15166, %15109
  br label %15168

15168:                                            ; preds = %15167
  br label %15169

15169:                                            ; preds = %15168
  br label %15170

15170:                                            ; preds = %15169
  %15171 = load i32, ptr @test_count, align 4, !tbaa !5
  %15172 = add nsw i32 %15171, 1
  store i32 %15172, ptr @test_count, align 4, !tbaa !5
  %15173 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %327, ptr noundef %328)
  %15174 = icmp eq i32 %15173, -1
  br i1 %15174, label %15175, label %15228

15175:                                            ; preds = %15170
  br label %15176

15176:                                            ; preds = %15175
  br label %15177

15177:                                            ; preds = %15176
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #12
  %15178 = call ptr @__errno_location() #13
  %15179 = load i32, ptr %15178, align 4, !tbaa !5
  store i32 %15179, ptr %332, align 4, !tbaa !5
  %15180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15181 = call i32 @s2n_print_stacktrace(ptr noundef %15180)
  %15182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15183 = trunc i8 %15182 to i1
  br i1 %15183, label %15184, label %15206

15184:                                            ; preds = %15177
  %15185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15186 = call i32 @fileno(ptr noundef %15185) #12
  %15187 = call i32 @isatty(i32 noundef %15186) #12
  %15188 = icmp ne i32 %15187, 0
  br i1 %15188, label %15189, label %15206

15189:                                            ; preds = %15184
  %15190 = load i32, ptr %332, align 4, !tbaa !5
  %15191 = call ptr @__errno_location() #13
  store i32 %15190, ptr %15191, align 4, !tbaa !5
  %15192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15193 = load i32, ptr @test_count, align 4, !tbaa !5
  %15194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15195 = load i32, ptr %15194, align 4, !tbaa !5
  %15196 = call ptr @s2n_strerror(i32 noundef %15195, ptr noundef @.str.6)
  %15197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15198 = load i32, ptr %15197, align 4, !tbaa !5
  %15199 = call ptr @s2n_strerror_debug(i32 noundef %15198, ptr noundef @.str.6)
  %15200 = call ptr @__errno_location() #13
  %15201 = load i32, ptr %15200, align 4, !tbaa !5
  %15202 = call ptr @strerror(i32 noundef %15201) #12
  %15203 = call ptr @__errno_location() #13
  %15204 = load i32, ptr %15203, align 4, !tbaa !5
  %15205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15192, ptr noundef @.str.4, i32 noundef %15193, ptr noundef @.str.93, ptr noundef @.str.3, i32 noundef 620, ptr noundef %15196, ptr noundef %15199, ptr noundef %15202, i32 noundef %15204) #12
  br label %15223

15206:                                            ; preds = %15184, %15177
  %15207 = load i32, ptr %332, align 4, !tbaa !5
  %15208 = call ptr @__errno_location() #13
  store i32 %15207, ptr %15208, align 4, !tbaa !5
  %15209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15210 = load i32, ptr @test_count, align 4, !tbaa !5
  %15211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15212 = load i32, ptr %15211, align 4, !tbaa !5
  %15213 = call ptr @s2n_strerror(i32 noundef %15212, ptr noundef @.str.6)
  %15214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15215 = load i32, ptr %15214, align 4, !tbaa !5
  %15216 = call ptr @s2n_strerror_debug(i32 noundef %15215, ptr noundef @.str.6)
  %15217 = call ptr @__errno_location() #13
  %15218 = load i32, ptr %15217, align 4, !tbaa !5
  %15219 = call ptr @strerror(i32 noundef %15218) #12
  %15220 = call ptr @__errno_location() #13
  %15221 = load i32, ptr %15220, align 4, !tbaa !5
  %15222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15209, ptr noundef @.str.7, i32 noundef %15210, ptr noundef @.str.93, ptr noundef @.str.3, i32 noundef 620, ptr noundef %15213, ptr noundef %15216, ptr noundef %15219, i32 noundef %15221) #12
  br label %15223

15223:                                            ; preds = %15206, %15189
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #12
  br label %15224

15224:                                            ; preds = %15223
  br label %15225

15225:                                            ; preds = %15224
  call void @exit(i32 noundef 1) #14
  unreachable

15226:                                            ; No predecessors!
  br label %15227

15227:                                            ; preds = %15226
  br label %15228

15228:                                            ; preds = %15227, %15170
  br label %15229

15229:                                            ; preds = %15228
  br label %15230

15230:                                            ; preds = %15229
  br label %15231

15231:                                            ; preds = %15230
  %15232 = load i32, ptr @test_count, align 4, !tbaa !5
  %15233 = add nsw i32 %15232, 1
  store i32 %15233, ptr @test_count, align 4, !tbaa !5
  %15234 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %330)
  %15235 = icmp eq i32 %15234, -1
  br i1 %15235, label %15236, label %15289

15236:                                            ; preds = %15231
  br label %15237

15237:                                            ; preds = %15236
  br label %15238

15238:                                            ; preds = %15237
  call void @llvm.lifetime.start.p0(i64 4, ptr %333) #12
  %15239 = call ptr @__errno_location() #13
  %15240 = load i32, ptr %15239, align 4, !tbaa !5
  store i32 %15240, ptr %333, align 4, !tbaa !5
  %15241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15242 = call i32 @s2n_print_stacktrace(ptr noundef %15241)
  %15243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15244 = trunc i8 %15243 to i1
  br i1 %15244, label %15245, label %15267

15245:                                            ; preds = %15238
  %15246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15247 = call i32 @fileno(ptr noundef %15246) #12
  %15248 = call i32 @isatty(i32 noundef %15247) #12
  %15249 = icmp ne i32 %15248, 0
  br i1 %15249, label %15250, label %15267

15250:                                            ; preds = %15245
  %15251 = load i32, ptr %333, align 4, !tbaa !5
  %15252 = call ptr @__errno_location() #13
  store i32 %15251, ptr %15252, align 4, !tbaa !5
  %15253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15254 = load i32, ptr @test_count, align 4, !tbaa !5
  %15255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15256 = load i32, ptr %15255, align 4, !tbaa !5
  %15257 = call ptr @s2n_strerror(i32 noundef %15256, ptr noundef @.str.6)
  %15258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15259 = load i32, ptr %15258, align 4, !tbaa !5
  %15260 = call ptr @s2n_strerror_debug(i32 noundef %15259, ptr noundef @.str.6)
  %15261 = call ptr @__errno_location() #13
  %15262 = load i32, ptr %15261, align 4, !tbaa !5
  %15263 = call ptr @strerror(i32 noundef %15262) #12
  %15264 = call ptr @__errno_location() #13
  %15265 = load i32, ptr %15264, align 4, !tbaa !5
  %15266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15253, ptr noundef @.str.4, i32 noundef %15254, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 621, ptr noundef %15257, ptr noundef %15260, ptr noundef %15263, i32 noundef %15265) #12
  br label %15284

15267:                                            ; preds = %15245, %15238
  %15268 = load i32, ptr %333, align 4, !tbaa !5
  %15269 = call ptr @__errno_location() #13
  store i32 %15268, ptr %15269, align 4, !tbaa !5
  %15270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15271 = load i32, ptr @test_count, align 4, !tbaa !5
  %15272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15273 = load i32, ptr %15272, align 4, !tbaa !5
  %15274 = call ptr @s2n_strerror(i32 noundef %15273, ptr noundef @.str.6)
  %15275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15276 = load i32, ptr %15275, align 4, !tbaa !5
  %15277 = call ptr @s2n_strerror_debug(i32 noundef %15276, ptr noundef @.str.6)
  %15278 = call ptr @__errno_location() #13
  %15279 = load i32, ptr %15278, align 4, !tbaa !5
  %15280 = call ptr @strerror(i32 noundef %15279) #12
  %15281 = call ptr @__errno_location() #13
  %15282 = load i32, ptr %15281, align 4, !tbaa !5
  %15283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15270, ptr noundef @.str.7, i32 noundef %15271, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 621, ptr noundef %15274, ptr noundef %15277, ptr noundef %15280, i32 noundef %15282) #12
  br label %15284

15284:                                            ; preds = %15267, %15250
  call void @llvm.lifetime.end.p0(i64 4, ptr %333) #12
  br label %15285

15285:                                            ; preds = %15284
  br label %15286

15286:                                            ; preds = %15285
  call void @exit(i32 noundef 1) #14
  unreachable

15287:                                            ; No predecessors!
  br label %15288

15288:                                            ; preds = %15287
  br label %15289

15289:                                            ; preds = %15288, %15231
  br label %15290

15290:                                            ; preds = %15289
  br label %15291

15291:                                            ; preds = %15290
  br label %15292

15292:                                            ; preds = %15291
  %15293 = load i32, ptr @test_count, align 4, !tbaa !5
  %15294 = add nsw i32 %15293, 1
  store i32 %15294, ptr @test_count, align 4, !tbaa !5
  %15295 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %15296 = load ptr, ptr %319, align 8, !tbaa !9
  %15297 = call i32 %15295(ptr noundef %15296, ptr noundef %328)
  %15298 = icmp eq i32 %15297, -1
  br i1 %15298, label %15299, label %15352

15299:                                            ; preds = %15292
  br label %15300

15300:                                            ; preds = %15299
  br label %15301

15301:                                            ; preds = %15300
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #12
  %15302 = call ptr @__errno_location() #13
  %15303 = load i32, ptr %15302, align 4, !tbaa !5
  store i32 %15303, ptr %334, align 4, !tbaa !5
  %15304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15305 = call i32 @s2n_print_stacktrace(ptr noundef %15304)
  %15306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15307 = trunc i8 %15306 to i1
  br i1 %15307, label %15308, label %15330

15308:                                            ; preds = %15301
  %15309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15310 = call i32 @fileno(ptr noundef %15309) #12
  %15311 = call i32 @isatty(i32 noundef %15310) #12
  %15312 = icmp ne i32 %15311, 0
  br i1 %15312, label %15313, label %15330

15313:                                            ; preds = %15308
  %15314 = load i32, ptr %334, align 4, !tbaa !5
  %15315 = call ptr @__errno_location() #13
  store i32 %15314, ptr %15315, align 4, !tbaa !5
  %15316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15317 = load i32, ptr @test_count, align 4, !tbaa !5
  %15318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15319 = load i32, ptr %15318, align 4, !tbaa !5
  %15320 = call ptr @s2n_strerror(i32 noundef %15319, ptr noundef @.str.6)
  %15321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15322 = load i32, ptr %15321, align 4, !tbaa !5
  %15323 = call ptr @s2n_strerror_debug(i32 noundef %15322, ptr noundef @.str.6)
  %15324 = call ptr @__errno_location() #13
  %15325 = load i32, ptr %15324, align 4, !tbaa !5
  %15326 = call ptr @strerror(i32 noundef %15325) #12
  %15327 = call ptr @__errno_location() #13
  %15328 = load i32, ptr %15327, align 4, !tbaa !5
  %15329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15316, ptr noundef @.str.4, i32 noundef %15317, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 623, ptr noundef %15320, ptr noundef %15323, ptr noundef %15326, i32 noundef %15328) #12
  br label %15347

15330:                                            ; preds = %15308, %15301
  %15331 = load i32, ptr %334, align 4, !tbaa !5
  %15332 = call ptr @__errno_location() #13
  store i32 %15331, ptr %15332, align 4, !tbaa !5
  %15333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15334 = load i32, ptr @test_count, align 4, !tbaa !5
  %15335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15336 = load i32, ptr %15335, align 4, !tbaa !5
  %15337 = call ptr @s2n_strerror(i32 noundef %15336, ptr noundef @.str.6)
  %15338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15339 = load i32, ptr %15338, align 4, !tbaa !5
  %15340 = call ptr @s2n_strerror_debug(i32 noundef %15339, ptr noundef @.str.6)
  %15341 = call ptr @__errno_location() #13
  %15342 = load i32, ptr %15341, align 4, !tbaa !5
  %15343 = call ptr @strerror(i32 noundef %15342) #12
  %15344 = call ptr @__errno_location() #13
  %15345 = load i32, ptr %15344, align 4, !tbaa !5
  %15346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15333, ptr noundef @.str.7, i32 noundef %15334, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 623, ptr noundef %15337, ptr noundef %15340, ptr noundef %15343, i32 noundef %15345) #12
  br label %15347

15347:                                            ; preds = %15330, %15313
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #12
  br label %15348

15348:                                            ; preds = %15347
  br label %15349

15349:                                            ; preds = %15348
  call void @exit(i32 noundef 1) #14
  unreachable

15350:                                            ; No predecessors!
  br label %15351

15351:                                            ; preds = %15350
  br label %15352

15352:                                            ; preds = %15351, %15292
  br label %15353

15353:                                            ; preds = %15352
  br label %15354

15354:                                            ; preds = %15353
  br label %15355

15355:                                            ; preds = %15354
  %15356 = load i32, ptr @test_count, align 4, !tbaa !5
  %15357 = add nsw i32 %15356, 1
  store i32 %15357, ptr @test_count, align 4, !tbaa !5
  %15358 = getelementptr inbounds %struct.s2n_stuffer, ptr %328, i32 0, i32 2
  %15359 = load i32, ptr %15358, align 4, !tbaa !18
  %15360 = getelementptr inbounds %struct.s2n_stuffer, ptr %328, i32 0, i32 1
  %15361 = load i32, ptr %15360, align 8, !tbaa !21
  %15362 = sub i32 %15359, %15361
  %15363 = icmp eq i32 %15362, 0
  br i1 %15363, label %15417, label %15364

15364:                                            ; preds = %15355
  br label %15365

15365:                                            ; preds = %15364
  br label %15366

15366:                                            ; preds = %15365
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #12
  %15367 = call ptr @__errno_location() #13
  %15368 = load i32, ptr %15367, align 4, !tbaa !5
  store i32 %15368, ptr %335, align 4, !tbaa !5
  %15369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15370 = call i32 @s2n_print_stacktrace(ptr noundef %15369)
  %15371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15372 = trunc i8 %15371 to i1
  br i1 %15372, label %15373, label %15395

15373:                                            ; preds = %15366
  %15374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15375 = call i32 @fileno(ptr noundef %15374) #12
  %15376 = call i32 @isatty(i32 noundef %15375) #12
  %15377 = icmp ne i32 %15376, 0
  br i1 %15377, label %15378, label %15395

15378:                                            ; preds = %15373
  %15379 = load i32, ptr %335, align 4, !tbaa !5
  %15380 = call ptr @__errno_location() #13
  store i32 %15379, ptr %15380, align 4, !tbaa !5
  %15381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15382 = load i32, ptr @test_count, align 4, !tbaa !5
  %15383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15384 = load i32, ptr %15383, align 4, !tbaa !5
  %15385 = call ptr @s2n_strerror(i32 noundef %15384, ptr noundef @.str.6)
  %15386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15387 = load i32, ptr %15386, align 4, !tbaa !5
  %15388 = call ptr @s2n_strerror_debug(i32 noundef %15387, ptr noundef @.str.6)
  %15389 = call ptr @__errno_location() #13
  %15390 = load i32, ptr %15389, align 4, !tbaa !5
  %15391 = call ptr @strerror(i32 noundef %15390) #12
  %15392 = call ptr @__errno_location() #13
  %15393 = load i32, ptr %15392, align 4, !tbaa !5
  %15394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15381, ptr noundef @.str.4, i32 noundef %15382, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 624, ptr noundef %15385, ptr noundef %15388, ptr noundef %15391, i32 noundef %15393) #12
  br label %15412

15395:                                            ; preds = %15373, %15366
  %15396 = load i32, ptr %335, align 4, !tbaa !5
  %15397 = call ptr @__errno_location() #13
  store i32 %15396, ptr %15397, align 4, !tbaa !5
  %15398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15399 = load i32, ptr @test_count, align 4, !tbaa !5
  %15400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15401 = load i32, ptr %15400, align 4, !tbaa !5
  %15402 = call ptr @s2n_strerror(i32 noundef %15401, ptr noundef @.str.6)
  %15403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15404 = load i32, ptr %15403, align 4, !tbaa !5
  %15405 = call ptr @s2n_strerror_debug(i32 noundef %15404, ptr noundef @.str.6)
  %15406 = call ptr @__errno_location() #13
  %15407 = load i32, ptr %15406, align 4, !tbaa !5
  %15408 = call ptr @strerror(i32 noundef %15407) #12
  %15409 = call ptr @__errno_location() #13
  %15410 = load i32, ptr %15409, align 4, !tbaa !5
  %15411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15398, ptr noundef @.str.7, i32 noundef %15399, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 624, ptr noundef %15402, ptr noundef %15405, ptr noundef %15408, i32 noundef %15410) #12
  br label %15412

15412:                                            ; preds = %15395, %15378
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #12
  br label %15413

15413:                                            ; preds = %15412
  br label %15414

15414:                                            ; preds = %15413
  call void @exit(i32 noundef 1) #14
  unreachable

15415:                                            ; No predecessors!
  br label %15416

15416:                                            ; preds = %15415
  br label %15417

15417:                                            ; preds = %15416, %15355
  br label %15418

15418:                                            ; preds = %15417
  br label %15419

15419:                                            ; preds = %15418
  br label %15420

15420:                                            ; preds = %15419
  %15421 = load i32, ptr @test_count, align 4, !tbaa !5
  %15422 = add nsw i32 %15421, 1
  store i32 %15422, ptr @test_count, align 4, !tbaa !5
  %15423 = load ptr, ptr %319, align 8, !tbaa !9
  %15424 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %15423, i32 noundef 16)
  br i1 %15424, label %15478, label %15425

15425:                                            ; preds = %15420
  br label %15426

15426:                                            ; preds = %15425
  br label %15427

15427:                                            ; preds = %15426
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #12
  %15428 = call ptr @__errno_location() #13
  %15429 = load i32, ptr %15428, align 4, !tbaa !5
  store i32 %15429, ptr %336, align 4, !tbaa !5
  %15430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15431 = call i32 @s2n_print_stacktrace(ptr noundef %15430)
  %15432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15433 = trunc i8 %15432 to i1
  br i1 %15433, label %15434, label %15456

15434:                                            ; preds = %15427
  %15435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15436 = call i32 @fileno(ptr noundef %15435) #12
  %15437 = call i32 @isatty(i32 noundef %15436) #12
  %15438 = icmp ne i32 %15437, 0
  br i1 %15438, label %15439, label %15456

15439:                                            ; preds = %15434
  %15440 = load i32, ptr %336, align 4, !tbaa !5
  %15441 = call ptr @__errno_location() #13
  store i32 %15440, ptr %15441, align 4, !tbaa !5
  %15442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15443 = load i32, ptr @test_count, align 4, !tbaa !5
  %15444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15445 = load i32, ptr %15444, align 4, !tbaa !5
  %15446 = call ptr @s2n_strerror(i32 noundef %15445, ptr noundef @.str.6)
  %15447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15448 = load i32, ptr %15447, align 4, !tbaa !5
  %15449 = call ptr @s2n_strerror_debug(i32 noundef %15448, ptr noundef @.str.6)
  %15450 = call ptr @__errno_location() #13
  %15451 = load i32, ptr %15450, align 4, !tbaa !5
  %15452 = call ptr @strerror(i32 noundef %15451) #12
  %15453 = call ptr @__errno_location() #13
  %15454 = load i32, ptr %15453, align 4, !tbaa !5
  %15455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15442, ptr noundef @.str.4, i32 noundef %15443, ptr noundef @.str.90, ptr noundef @.str.3, i32 noundef 627, ptr noundef %15446, ptr noundef %15449, ptr noundef %15452, i32 noundef %15454) #12
  br label %15473

15456:                                            ; preds = %15434, %15427
  %15457 = load i32, ptr %336, align 4, !tbaa !5
  %15458 = call ptr @__errno_location() #13
  store i32 %15457, ptr %15458, align 4, !tbaa !5
  %15459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15460 = load i32, ptr @test_count, align 4, !tbaa !5
  %15461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15462 = load i32, ptr %15461, align 4, !tbaa !5
  %15463 = call ptr @s2n_strerror(i32 noundef %15462, ptr noundef @.str.6)
  %15464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15465 = load i32, ptr %15464, align 4, !tbaa !5
  %15466 = call ptr @s2n_strerror_debug(i32 noundef %15465, ptr noundef @.str.6)
  %15467 = call ptr @__errno_location() #13
  %15468 = load i32, ptr %15467, align 4, !tbaa !5
  %15469 = call ptr @strerror(i32 noundef %15468) #12
  %15470 = call ptr @__errno_location() #13
  %15471 = load i32, ptr %15470, align 4, !tbaa !5
  %15472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15459, ptr noundef @.str.7, i32 noundef %15460, ptr noundef @.str.90, ptr noundef @.str.3, i32 noundef 627, ptr noundef %15463, ptr noundef %15466, ptr noundef %15469, i32 noundef %15471) #12
  br label %15473

15473:                                            ; preds = %15456, %15439
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #12
  br label %15474

15474:                                            ; preds = %15473
  br label %15475

15475:                                            ; preds = %15474
  call void @exit(i32 noundef 1) #14
  unreachable

15476:                                            ; No predecessors!
  br label %15477

15477:                                            ; preds = %15476
  br label %15478

15478:                                            ; preds = %15477, %15420
  br label %15479

15479:                                            ; preds = %15478
  br label %15480

15480:                                            ; preds = %15479
  call void @llvm.lifetime.start.p0(i64 8, ptr %337) #12
  %15481 = load ptr, ptr %319, align 8, !tbaa !9
  %15482 = getelementptr inbounds %struct.s2n_connection, ptr %15481, i32 0, i32 31
  %15483 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15482, i32 0, i32 3
  store ptr %15483, ptr %337, align 8, !tbaa !9
  br label %15484

15484:                                            ; preds = %15480
  %15485 = load i32, ptr @test_count, align 4, !tbaa !5
  %15486 = add nsw i32 %15485, 1
  store i32 %15486, ptr @test_count, align 4, !tbaa !5
  %15487 = load ptr, ptr %337, align 8, !tbaa !9
  %15488 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %15487, i32 0, i32 0
  %15489 = load ptr, ptr %15488, align 8, !tbaa !22
  %15490 = icmp eq ptr %15489, null
  br i1 %15490, label %15544, label %15491

15491:                                            ; preds = %15484
  br label %15492

15492:                                            ; preds = %15491
  br label %15493

15493:                                            ; preds = %15492
  call void @llvm.lifetime.start.p0(i64 4, ptr %338) #12
  %15494 = call ptr @__errno_location() #13
  %15495 = load i32, ptr %15494, align 4, !tbaa !5
  store i32 %15495, ptr %338, align 4, !tbaa !5
  %15496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15497 = call i32 @s2n_print_stacktrace(ptr noundef %15496)
  %15498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15499 = trunc i8 %15498 to i1
  br i1 %15499, label %15500, label %15522

15500:                                            ; preds = %15493
  %15501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15502 = call i32 @fileno(ptr noundef %15501) #12
  %15503 = call i32 @isatty(i32 noundef %15502) #12
  %15504 = icmp ne i32 %15503, 0
  br i1 %15504, label %15505, label %15522

15505:                                            ; preds = %15500
  %15506 = load i32, ptr %338, align 4, !tbaa !5
  %15507 = call ptr @__errno_location() #13
  store i32 %15506, ptr %15507, align 4, !tbaa !5
  %15508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15509 = load i32, ptr @test_count, align 4, !tbaa !5
  %15510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15511 = load i32, ptr %15510, align 4, !tbaa !5
  %15512 = call ptr @s2n_strerror(i32 noundef %15511, ptr noundef @.str.6)
  %15513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15514 = load i32, ptr %15513, align 4, !tbaa !5
  %15515 = call ptr @s2n_strerror_debug(i32 noundef %15514, ptr noundef @.str.6)
  %15516 = call ptr @__errno_location() #13
  %15517 = load i32, ptr %15516, align 4, !tbaa !5
  %15518 = call ptr @strerror(i32 noundef %15517) #12
  %15519 = call ptr @__errno_location() #13
  %15520 = load i32, ptr %15519, align 4, !tbaa !5
  %15521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15508, ptr noundef @.str.4, i32 noundef %15509, ptr noundef @.str.103, ptr noundef @.str.3, i32 noundef 631, ptr noundef %15512, ptr noundef %15515, ptr noundef %15518, i32 noundef %15520) #12
  br label %15539

15522:                                            ; preds = %15500, %15493
  %15523 = load i32, ptr %338, align 4, !tbaa !5
  %15524 = call ptr @__errno_location() #13
  store i32 %15523, ptr %15524, align 4, !tbaa !5
  %15525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15526 = load i32, ptr @test_count, align 4, !tbaa !5
  %15527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15528 = load i32, ptr %15527, align 4, !tbaa !5
  %15529 = call ptr @s2n_strerror(i32 noundef %15528, ptr noundef @.str.6)
  %15530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15531 = load i32, ptr %15530, align 4, !tbaa !5
  %15532 = call ptr @s2n_strerror_debug(i32 noundef %15531, ptr noundef @.str.6)
  %15533 = call ptr @__errno_location() #13
  %15534 = load i32, ptr %15533, align 4, !tbaa !5
  %15535 = call ptr @strerror(i32 noundef %15534) #12
  %15536 = call ptr @__errno_location() #13
  %15537 = load i32, ptr %15536, align 4, !tbaa !5
  %15538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15525, ptr noundef @.str.7, i32 noundef %15526, ptr noundef @.str.103, ptr noundef @.str.3, i32 noundef 631, ptr noundef %15529, ptr noundef %15532, ptr noundef %15535, i32 noundef %15537) #12
  br label %15539

15539:                                            ; preds = %15522, %15505
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #12
  br label %15540

15540:                                            ; preds = %15539
  br label %15541

15541:                                            ; preds = %15540
  call void @exit(i32 noundef 1) #14
  unreachable

15542:                                            ; No predecessors!
  br label %15543

15543:                                            ; preds = %15542
  br label %15544

15544:                                            ; preds = %15543, %15484
  br label %15545

15545:                                            ; preds = %15544
  br label %15546

15546:                                            ; preds = %15545
  br label %15547

15547:                                            ; preds = %15546
  %15548 = load i32, ptr @test_count, align 4, !tbaa !5
  %15549 = add nsw i32 %15548, 1
  store i32 %15549, ptr @test_count, align 4, !tbaa !5
  %15550 = load ptr, ptr %337, align 8, !tbaa !9
  %15551 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %15550, i32 0, i32 1
  %15552 = load ptr, ptr %15551, align 8, !tbaa !26
  %15553 = icmp eq ptr %15552, null
  br i1 %15553, label %15607, label %15554

15554:                                            ; preds = %15547
  br label %15555

15555:                                            ; preds = %15554
  br label %15556

15556:                                            ; preds = %15555
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #12
  %15557 = call ptr @__errno_location() #13
  %15558 = load i32, ptr %15557, align 4, !tbaa !5
  store i32 %15558, ptr %339, align 4, !tbaa !5
  %15559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15560 = call i32 @s2n_print_stacktrace(ptr noundef %15559)
  %15561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15562 = trunc i8 %15561 to i1
  br i1 %15562, label %15563, label %15585

15563:                                            ; preds = %15556
  %15564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15565 = call i32 @fileno(ptr noundef %15564) #12
  %15566 = call i32 @isatty(i32 noundef %15565) #12
  %15567 = icmp ne i32 %15566, 0
  br i1 %15567, label %15568, label %15585

15568:                                            ; preds = %15563
  %15569 = load i32, ptr %339, align 4, !tbaa !5
  %15570 = call ptr @__errno_location() #13
  store i32 %15569, ptr %15570, align 4, !tbaa !5
  %15571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15572 = load i32, ptr @test_count, align 4, !tbaa !5
  %15573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15574 = load i32, ptr %15573, align 4, !tbaa !5
  %15575 = call ptr @s2n_strerror(i32 noundef %15574, ptr noundef @.str.6)
  %15576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15577 = load i32, ptr %15576, align 4, !tbaa !5
  %15578 = call ptr @s2n_strerror_debug(i32 noundef %15577, ptr noundef @.str.6)
  %15579 = call ptr @__errno_location() #13
  %15580 = load i32, ptr %15579, align 4, !tbaa !5
  %15581 = call ptr @strerror(i32 noundef %15580) #12
  %15582 = call ptr @__errno_location() #13
  %15583 = load i32, ptr %15582, align 4, !tbaa !5
  %15584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15571, ptr noundef @.str.4, i32 noundef %15572, ptr noundef @.str.104, ptr noundef @.str.3, i32 noundef 632, ptr noundef %15575, ptr noundef %15578, ptr noundef %15581, i32 noundef %15583) #12
  br label %15602

15585:                                            ; preds = %15563, %15556
  %15586 = load i32, ptr %339, align 4, !tbaa !5
  %15587 = call ptr @__errno_location() #13
  store i32 %15586, ptr %15587, align 4, !tbaa !5
  %15588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15589 = load i32, ptr @test_count, align 4, !tbaa !5
  %15590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15591 = load i32, ptr %15590, align 4, !tbaa !5
  %15592 = call ptr @s2n_strerror(i32 noundef %15591, ptr noundef @.str.6)
  %15593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15594 = load i32, ptr %15593, align 4, !tbaa !5
  %15595 = call ptr @s2n_strerror_debug(i32 noundef %15594, ptr noundef @.str.6)
  %15596 = call ptr @__errno_location() #13
  %15597 = load i32, ptr %15596, align 4, !tbaa !5
  %15598 = call ptr @strerror(i32 noundef %15597) #12
  %15599 = call ptr @__errno_location() #13
  %15600 = load i32, ptr %15599, align 4, !tbaa !5
  %15601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15588, ptr noundef @.str.7, i32 noundef %15589, ptr noundef @.str.104, ptr noundef @.str.3, i32 noundef 632, ptr noundef %15592, ptr noundef %15595, ptr noundef %15598, i32 noundef %15600) #12
  br label %15602

15602:                                            ; preds = %15585, %15568
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #12
  br label %15603

15603:                                            ; preds = %15602
  br label %15604

15604:                                            ; preds = %15603
  call void @exit(i32 noundef 1) #14
  unreachable

15605:                                            ; No predecessors!
  br label %15606

15606:                                            ; preds = %15605
  br label %15607

15607:                                            ; preds = %15606, %15547
  br label %15608

15608:                                            ; preds = %15607
  br label %15609

15609:                                            ; preds = %15608
  br label %15610

15610:                                            ; preds = %15609
  %15611 = load i32, ptr @test_count, align 4, !tbaa !5
  %15612 = add nsw i32 %15611, 1
  store i32 %15612, ptr @test_count, align 4, !tbaa !5
  %15613 = call i32 @s2n_ecc_evp_params_free(ptr noundef %327)
  %15614 = icmp eq i32 %15613, -1
  br i1 %15614, label %15615, label %15668

15615:                                            ; preds = %15610
  br label %15616

15616:                                            ; preds = %15615
  br label %15617

15617:                                            ; preds = %15616
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #12
  %15618 = call ptr @__errno_location() #13
  %15619 = load i32, ptr %15618, align 4, !tbaa !5
  store i32 %15619, ptr %340, align 4, !tbaa !5
  %15620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15621 = call i32 @s2n_print_stacktrace(ptr noundef %15620)
  %15622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15623 = trunc i8 %15622 to i1
  br i1 %15623, label %15624, label %15646

15624:                                            ; preds = %15617
  %15625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15626 = call i32 @fileno(ptr noundef %15625) #12
  %15627 = call i32 @isatty(i32 noundef %15626) #12
  %15628 = icmp ne i32 %15627, 0
  br i1 %15628, label %15629, label %15646

15629:                                            ; preds = %15624
  %15630 = load i32, ptr %340, align 4, !tbaa !5
  %15631 = call ptr @__errno_location() #13
  store i32 %15630, ptr %15631, align 4, !tbaa !5
  %15632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15633 = load i32, ptr @test_count, align 4, !tbaa !5
  %15634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15635 = load i32, ptr %15634, align 4, !tbaa !5
  %15636 = call ptr @s2n_strerror(i32 noundef %15635, ptr noundef @.str.6)
  %15637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15638 = load i32, ptr %15637, align 4, !tbaa !5
  %15639 = call ptr @s2n_strerror_debug(i32 noundef %15638, ptr noundef @.str.6)
  %15640 = call ptr @__errno_location() #13
  %15641 = load i32, ptr %15640, align 4, !tbaa !5
  %15642 = call ptr @strerror(i32 noundef %15641) #12
  %15643 = call ptr @__errno_location() #13
  %15644 = load i32, ptr %15643, align 4, !tbaa !5
  %15645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15632, ptr noundef @.str.4, i32 noundef %15633, ptr noundef @.str.97, ptr noundef @.str.3, i32 noundef 634, ptr noundef %15636, ptr noundef %15639, ptr noundef %15642, i32 noundef %15644) #12
  br label %15663

15646:                                            ; preds = %15624, %15617
  %15647 = load i32, ptr %340, align 4, !tbaa !5
  %15648 = call ptr @__errno_location() #13
  store i32 %15647, ptr %15648, align 4, !tbaa !5
  %15649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15650 = load i32, ptr @test_count, align 4, !tbaa !5
  %15651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15652 = load i32, ptr %15651, align 4, !tbaa !5
  %15653 = call ptr @s2n_strerror(i32 noundef %15652, ptr noundef @.str.6)
  %15654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15655 = load i32, ptr %15654, align 4, !tbaa !5
  %15656 = call ptr @s2n_strerror_debug(i32 noundef %15655, ptr noundef @.str.6)
  %15657 = call ptr @__errno_location() #13
  %15658 = load i32, ptr %15657, align 4, !tbaa !5
  %15659 = call ptr @strerror(i32 noundef %15658) #12
  %15660 = call ptr @__errno_location() #13
  %15661 = load i32, ptr %15660, align 4, !tbaa !5
  %15662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15649, ptr noundef @.str.7, i32 noundef %15650, ptr noundef @.str.97, ptr noundef @.str.3, i32 noundef 634, ptr noundef %15653, ptr noundef %15656, ptr noundef %15659, i32 noundef %15661) #12
  br label %15663

15663:                                            ; preds = %15646, %15629
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #12
  br label %15664

15664:                                            ; preds = %15663
  br label %15665

15665:                                            ; preds = %15664
  call void @exit(i32 noundef 1) #14
  unreachable

15666:                                            ; No predecessors!
  br label %15667

15667:                                            ; preds = %15666
  br label %15668

15668:                                            ; preds = %15667, %15610
  br label %15669

15669:                                            ; preds = %15668
  br label %15670

15670:                                            ; preds = %15669
  br label %15671

15671:                                            ; preds = %15670
  %15672 = load i32, ptr @test_count, align 4, !tbaa !5
  %15673 = add nsw i32 %15672, 1
  store i32 %15673, ptr @test_count, align 4, !tbaa !5
  %15674 = call i32 @s2n_stuffer_free(ptr noundef %328)
  %15675 = icmp eq i32 %15674, -1
  br i1 %15675, label %15676, label %15729

15676:                                            ; preds = %15671
  br label %15677

15677:                                            ; preds = %15676
  br label %15678

15678:                                            ; preds = %15677
  call void @llvm.lifetime.start.p0(i64 4, ptr %341) #12
  %15679 = call ptr @__errno_location() #13
  %15680 = load i32, ptr %15679, align 4, !tbaa !5
  store i32 %15680, ptr %341, align 4, !tbaa !5
  %15681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15682 = call i32 @s2n_print_stacktrace(ptr noundef %15681)
  %15683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15684 = trunc i8 %15683 to i1
  br i1 %15684, label %15685, label %15707

15685:                                            ; preds = %15678
  %15686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15687 = call i32 @fileno(ptr noundef %15686) #12
  %15688 = call i32 @isatty(i32 noundef %15687) #12
  %15689 = icmp ne i32 %15688, 0
  br i1 %15689, label %15690, label %15707

15690:                                            ; preds = %15685
  %15691 = load i32, ptr %341, align 4, !tbaa !5
  %15692 = call ptr @__errno_location() #13
  store i32 %15691, ptr %15692, align 4, !tbaa !5
  %15693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15694 = load i32, ptr @test_count, align 4, !tbaa !5
  %15695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15696 = load i32, ptr %15695, align 4, !tbaa !5
  %15697 = call ptr @s2n_strerror(i32 noundef %15696, ptr noundef @.str.6)
  %15698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15699 = load i32, ptr %15698, align 4, !tbaa !5
  %15700 = call ptr @s2n_strerror_debug(i32 noundef %15699, ptr noundef @.str.6)
  %15701 = call ptr @__errno_location() #13
  %15702 = load i32, ptr %15701, align 4, !tbaa !5
  %15703 = call ptr @strerror(i32 noundef %15702) #12
  %15704 = call ptr @__errno_location() #13
  %15705 = load i32, ptr %15704, align 4, !tbaa !5
  %15706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15693, ptr noundef @.str.4, i32 noundef %15694, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 635, ptr noundef %15697, ptr noundef %15700, ptr noundef %15703, i32 noundef %15705) #12
  br label %15724

15707:                                            ; preds = %15685, %15678
  %15708 = load i32, ptr %341, align 4, !tbaa !5
  %15709 = call ptr @__errno_location() #13
  store i32 %15708, ptr %15709, align 4, !tbaa !5
  %15710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15711 = load i32, ptr @test_count, align 4, !tbaa !5
  %15712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15713 = load i32, ptr %15712, align 4, !tbaa !5
  %15714 = call ptr @s2n_strerror(i32 noundef %15713, ptr noundef @.str.6)
  %15715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15716 = load i32, ptr %15715, align 4, !tbaa !5
  %15717 = call ptr @s2n_strerror_debug(i32 noundef %15716, ptr noundef @.str.6)
  %15718 = call ptr @__errno_location() #13
  %15719 = load i32, ptr %15718, align 4, !tbaa !5
  %15720 = call ptr @strerror(i32 noundef %15719) #12
  %15721 = call ptr @__errno_location() #13
  %15722 = load i32, ptr %15721, align 4, !tbaa !5
  %15723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15710, ptr noundef @.str.7, i32 noundef %15711, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 635, ptr noundef %15714, ptr noundef %15717, ptr noundef %15720, i32 noundef %15722) #12
  br label %15724

15724:                                            ; preds = %15707, %15690
  call void @llvm.lifetime.end.p0(i64 4, ptr %341) #12
  br label %15725

15725:                                            ; preds = %15724
  br label %15726

15726:                                            ; preds = %15725
  call void @exit(i32 noundef 1) #14
  unreachable

15727:                                            ; No predecessors!
  br label %15728

15728:                                            ; preds = %15727
  br label %15729

15729:                                            ; preds = %15728, %15671
  br label %15730

15730:                                            ; preds = %15729
  br label %15731

15731:                                            ; preds = %15730
  br label %15732

15732:                                            ; preds = %15731
  %15733 = load i32, ptr @test_count, align 4, !tbaa !5
  %15734 = add nsw i32 %15733, 1
  store i32 %15734, ptr @test_count, align 4, !tbaa !5
  %15735 = load ptr, ptr %319, align 8, !tbaa !9
  %15736 = call i32 @s2n_connection_free(ptr noundef %15735)
  %15737 = icmp eq i32 %15736, -1
  br i1 %15737, label %15738, label %15791

15738:                                            ; preds = %15732
  br label %15739

15739:                                            ; preds = %15738
  br label %15740

15740:                                            ; preds = %15739
  call void @llvm.lifetime.start.p0(i64 4, ptr %342) #12
  %15741 = call ptr @__errno_location() #13
  %15742 = load i32, ptr %15741, align 4, !tbaa !5
  store i32 %15742, ptr %342, align 4, !tbaa !5
  %15743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15744 = call i32 @s2n_print_stacktrace(ptr noundef %15743)
  %15745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15746 = trunc i8 %15745 to i1
  br i1 %15746, label %15747, label %15769

15747:                                            ; preds = %15740
  %15748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15749 = call i32 @fileno(ptr noundef %15748) #12
  %15750 = call i32 @isatty(i32 noundef %15749) #12
  %15751 = icmp ne i32 %15750, 0
  br i1 %15751, label %15752, label %15769

15752:                                            ; preds = %15747
  %15753 = load i32, ptr %342, align 4, !tbaa !5
  %15754 = call ptr @__errno_location() #13
  store i32 %15753, ptr %15754, align 4, !tbaa !5
  %15755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15756 = load i32, ptr @test_count, align 4, !tbaa !5
  %15757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15758 = load i32, ptr %15757, align 4, !tbaa !5
  %15759 = call ptr @s2n_strerror(i32 noundef %15758, ptr noundef @.str.6)
  %15760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15761 = load i32, ptr %15760, align 4, !tbaa !5
  %15762 = call ptr @s2n_strerror_debug(i32 noundef %15761, ptr noundef @.str.6)
  %15763 = call ptr @__errno_location() #13
  %15764 = load i32, ptr %15763, align 4, !tbaa !5
  %15765 = call ptr @strerror(i32 noundef %15764) #12
  %15766 = call ptr @__errno_location() #13
  %15767 = load i32, ptr %15766, align 4, !tbaa !5
  %15768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15755, ptr noundef @.str.4, i32 noundef %15756, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 636, ptr noundef %15759, ptr noundef %15762, ptr noundef %15765, i32 noundef %15767) #12
  br label %15786

15769:                                            ; preds = %15747, %15740
  %15770 = load i32, ptr %342, align 4, !tbaa !5
  %15771 = call ptr @__errno_location() #13
  store i32 %15770, ptr %15771, align 4, !tbaa !5
  %15772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15773 = load i32, ptr @test_count, align 4, !tbaa !5
  %15774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15775 = load i32, ptr %15774, align 4, !tbaa !5
  %15776 = call ptr @s2n_strerror(i32 noundef %15775, ptr noundef @.str.6)
  %15777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15778 = load i32, ptr %15777, align 4, !tbaa !5
  %15779 = call ptr @s2n_strerror_debug(i32 noundef %15778, ptr noundef @.str.6)
  %15780 = call ptr @__errno_location() #13
  %15781 = load i32, ptr %15780, align 4, !tbaa !5
  %15782 = call ptr @strerror(i32 noundef %15781) #12
  %15783 = call ptr @__errno_location() #13
  %15784 = load i32, ptr %15783, align 4, !tbaa !5
  %15785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15772, ptr noundef @.str.7, i32 noundef %15773, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 636, ptr noundef %15776, ptr noundef %15779, ptr noundef %15782, i32 noundef %15784) #12
  br label %15786

15786:                                            ; preds = %15769, %15752
  call void @llvm.lifetime.end.p0(i64 4, ptr %342) #12
  br label %15787

15787:                                            ; preds = %15786
  br label %15788

15788:                                            ; preds = %15787
  call void @exit(i32 noundef 1) #14
  unreachable

15789:                                            ; No predecessors!
  br label %15790

15790:                                            ; preds = %15789
  br label %15791

15791:                                            ; preds = %15790, %15732
  br label %15792

15792:                                            ; preds = %15791
  br label %15793

15793:                                            ; preds = %15792
  call void @llvm.lifetime.end.p0(i64 8, ptr %337) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %330) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %328) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %327) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %323) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %343) #12
  %15794 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %15794, ptr %343, align 8, !tbaa !9
  br label %15795

15795:                                            ; preds = %15793
  %15796 = load i32, ptr @test_count, align 4, !tbaa !5
  %15797 = add nsw i32 %15796, 1
  store i32 %15797, ptr @test_count, align 4, !tbaa !5
  %15798 = load ptr, ptr %343, align 8, !tbaa !9
  %15799 = icmp eq ptr %15798, null
  br i1 %15799, label %15800, label %15853

15800:                                            ; preds = %15795
  br label %15801

15801:                                            ; preds = %15800
  br label %15802

15802:                                            ; preds = %15801
  call void @llvm.lifetime.start.p0(i64 4, ptr %344) #12
  %15803 = call ptr @__errno_location() #13
  %15804 = load i32, ptr %15803, align 4, !tbaa !5
  store i32 %15804, ptr %344, align 4, !tbaa !5
  %15805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15806 = call i32 @s2n_print_stacktrace(ptr noundef %15805)
  %15807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15808 = trunc i8 %15807 to i1
  br i1 %15808, label %15809, label %15831

15809:                                            ; preds = %15802
  %15810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15811 = call i32 @fileno(ptr noundef %15810) #12
  %15812 = call i32 @isatty(i32 noundef %15811) #12
  %15813 = icmp ne i32 %15812, 0
  br i1 %15813, label %15814, label %15831

15814:                                            ; preds = %15809
  %15815 = load i32, ptr %344, align 4, !tbaa !5
  %15816 = call ptr @__errno_location() #13
  store i32 %15815, ptr %15816, align 4, !tbaa !5
  %15817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15818 = load i32, ptr @test_count, align 4, !tbaa !5
  %15819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15820 = load i32, ptr %15819, align 4, !tbaa !5
  %15821 = call ptr @s2n_strerror(i32 noundef %15820, ptr noundef @.str.6)
  %15822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15823 = load i32, ptr %15822, align 4, !tbaa !5
  %15824 = call ptr @s2n_strerror_debug(i32 noundef %15823, ptr noundef @.str.6)
  %15825 = call ptr @__errno_location() #13
  %15826 = load i32, ptr %15825, align 4, !tbaa !5
  %15827 = call ptr @strerror(i32 noundef %15826) #12
  %15828 = call ptr @__errno_location() #13
  %15829 = load i32, ptr %15828, align 4, !tbaa !5
  %15830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15817, ptr noundef @.str.4, i32 noundef %15818, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 644, ptr noundef %15821, ptr noundef %15824, ptr noundef %15827, i32 noundef %15829) #12
  br label %15848

15831:                                            ; preds = %15809, %15802
  %15832 = load i32, ptr %344, align 4, !tbaa !5
  %15833 = call ptr @__errno_location() #13
  store i32 %15832, ptr %15833, align 4, !tbaa !5
  %15834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15835 = load i32, ptr @test_count, align 4, !tbaa !5
  %15836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15837 = load i32, ptr %15836, align 4, !tbaa !5
  %15838 = call ptr @s2n_strerror(i32 noundef %15837, ptr noundef @.str.6)
  %15839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15840 = load i32, ptr %15839, align 4, !tbaa !5
  %15841 = call ptr @s2n_strerror_debug(i32 noundef %15840, ptr noundef @.str.6)
  %15842 = call ptr @__errno_location() #13
  %15843 = load i32, ptr %15842, align 4, !tbaa !5
  %15844 = call ptr @strerror(i32 noundef %15843) #12
  %15845 = call ptr @__errno_location() #13
  %15846 = load i32, ptr %15845, align 4, !tbaa !5
  %15847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15834, ptr noundef @.str.7, i32 noundef %15835, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 644, ptr noundef %15838, ptr noundef %15841, ptr noundef %15844, i32 noundef %15846) #12
  br label %15848

15848:                                            ; preds = %15831, %15814
  call void @llvm.lifetime.end.p0(i64 4, ptr %344) #12
  br label %15849

15849:                                            ; preds = %15848
  br label %15850

15850:                                            ; preds = %15849
  call void @exit(i32 noundef 1) #14
  unreachable

15851:                                            ; No predecessors!
  br label %15852

15852:                                            ; preds = %15851
  br label %15853

15853:                                            ; preds = %15852, %15795
  br label %15854

15854:                                            ; preds = %15853
  br label %15855

15855:                                            ; preds = %15854
  %15856 = load ptr, ptr %343, align 8, !tbaa !9
  %15857 = getelementptr inbounds %struct.s2n_connection, ptr %15856, i32 0, i32 23
  store i8 34, ptr %15857, align 4, !tbaa !63
  br label %15858

15858:                                            ; preds = %15855
  %15859 = load i32, ptr @test_count, align 4, !tbaa !5
  %15860 = add nsw i32 %15859, 1
  store i32 %15860, ptr @test_count, align 4, !tbaa !5
  %15861 = load ptr, ptr %343, align 8, !tbaa !9
  %15862 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %15861)
  %15863 = getelementptr inbounds %struct.s2n_result, ptr %345, i32 0, i32 0
  store i32 %15862, ptr %15863, align 4
  %15864 = getelementptr inbounds %struct.s2n_result, ptr %345, i32 0, i32 0
  %15865 = load i32, ptr %15864, align 4
  %15866 = call zeroext i1 @s2n_result_is_ok(i32 %15865)
  br i1 %15866, label %15920, label %15867

15867:                                            ; preds = %15858
  br label %15868

15868:                                            ; preds = %15867
  br label %15869

15869:                                            ; preds = %15868
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #12
  %15870 = call ptr @__errno_location() #13
  %15871 = load i32, ptr %15870, align 4, !tbaa !5
  store i32 %15871, ptr %346, align 4, !tbaa !5
  %15872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15873 = call i32 @s2n_print_stacktrace(ptr noundef %15872)
  %15874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15875 = trunc i8 %15874 to i1
  br i1 %15875, label %15876, label %15898

15876:                                            ; preds = %15869
  %15877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15878 = call i32 @fileno(ptr noundef %15877) #12
  %15879 = call i32 @isatty(i32 noundef %15878) #12
  %15880 = icmp ne i32 %15879, 0
  br i1 %15880, label %15881, label %15898

15881:                                            ; preds = %15876
  %15882 = load i32, ptr %346, align 4, !tbaa !5
  %15883 = call ptr @__errno_location() #13
  store i32 %15882, ptr %15883, align 4, !tbaa !5
  %15884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15885 = load i32, ptr @test_count, align 4, !tbaa !5
  %15886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15887 = load i32, ptr %15886, align 4, !tbaa !5
  %15888 = call ptr @s2n_strerror(i32 noundef %15887, ptr noundef @.str.6)
  %15889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15890 = load i32, ptr %15889, align 4, !tbaa !5
  %15891 = call ptr @s2n_strerror_debug(i32 noundef %15890, ptr noundef @.str.6)
  %15892 = call ptr @__errno_location() #13
  %15893 = load i32, ptr %15892, align 4, !tbaa !5
  %15894 = call ptr @strerror(i32 noundef %15893) #12
  %15895 = call ptr @__errno_location() #13
  %15896 = load i32, ptr %15895, align 4, !tbaa !5
  %15897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15884, ptr noundef @.str.4, i32 noundef %15885, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 648, ptr noundef %15888, ptr noundef %15891, ptr noundef %15894, i32 noundef %15896) #12
  br label %15915

15898:                                            ; preds = %15876, %15869
  %15899 = load i32, ptr %346, align 4, !tbaa !5
  %15900 = call ptr @__errno_location() #13
  store i32 %15899, ptr %15900, align 4, !tbaa !5
  %15901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15902 = load i32, ptr @test_count, align 4, !tbaa !5
  %15903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15904 = load i32, ptr %15903, align 4, !tbaa !5
  %15905 = call ptr @s2n_strerror(i32 noundef %15904, ptr noundef @.str.6)
  %15906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15907 = load i32, ptr %15906, align 4, !tbaa !5
  %15908 = call ptr @s2n_strerror_debug(i32 noundef %15907, ptr noundef @.str.6)
  %15909 = call ptr @__errno_location() #13
  %15910 = load i32, ptr %15909, align 4, !tbaa !5
  %15911 = call ptr @strerror(i32 noundef %15910) #12
  %15912 = call ptr @__errno_location() #13
  %15913 = load i32, ptr %15912, align 4, !tbaa !5
  %15914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15901, ptr noundef @.str.7, i32 noundef %15902, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 648, ptr noundef %15905, ptr noundef %15908, ptr noundef %15911, i32 noundef %15913) #12
  br label %15915

15915:                                            ; preds = %15898, %15881
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #12
  br label %15916

15916:                                            ; preds = %15915
  br label %15917

15917:                                            ; preds = %15916
  call void @exit(i32 noundef 1) #14
  unreachable

15918:                                            ; No predecessors!
  br label %15919

15919:                                            ; preds = %15918
  br label %15920

15920:                                            ; preds = %15919, %15858
  br label %15921

15921:                                            ; preds = %15920
  br label %15922

15922:                                            ; preds = %15921
  %15923 = load ptr, ptr %343, align 8, !tbaa !9
  %15924 = getelementptr inbounds %struct.s2n_connection, ptr %15923, i32 0, i32 31
  %15925 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15924, i32 0, i32 2
  %15926 = getelementptr inbounds [4 x ptr], ptr %15925, i64 0, i64 0
  store ptr null, ptr %15926, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %347) #12
  store ptr null, ptr %347, align 8, !tbaa !9
  br label %15927

15927:                                            ; preds = %15922
  %15928 = load i32, ptr @test_count, align 4, !tbaa !5
  %15929 = add nsw i32 %15928, 1
  store i32 %15929, ptr @test_count, align 4, !tbaa !5
  %15930 = load ptr, ptr %343, align 8, !tbaa !9
  %15931 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %15930, ptr noundef %347)
  %15932 = icmp eq i32 %15931, -1
  br i1 %15932, label %15933, label %15986

15933:                                            ; preds = %15927
  br label %15934

15934:                                            ; preds = %15933
  br label %15935

15935:                                            ; preds = %15934
  call void @llvm.lifetime.start.p0(i64 4, ptr %348) #12
  %15936 = call ptr @__errno_location() #13
  %15937 = load i32, ptr %15936, align 4, !tbaa !5
  store i32 %15937, ptr %348, align 4, !tbaa !5
  %15938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15939 = call i32 @s2n_print_stacktrace(ptr noundef %15938)
  %15940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15941 = trunc i8 %15940 to i1
  br i1 %15941, label %15942, label %15964

15942:                                            ; preds = %15935
  %15943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15944 = call i32 @fileno(ptr noundef %15943) #12
  %15945 = call i32 @isatty(i32 noundef %15944) #12
  %15946 = icmp ne i32 %15945, 0
  br i1 %15946, label %15947, label %15964

15947:                                            ; preds = %15942
  %15948 = load i32, ptr %348, align 4, !tbaa !5
  %15949 = call ptr @__errno_location() #13
  store i32 %15948, ptr %15949, align 4, !tbaa !5
  %15950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15951 = load i32, ptr @test_count, align 4, !tbaa !5
  %15952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15953 = load i32, ptr %15952, align 4, !tbaa !5
  %15954 = call ptr @s2n_strerror(i32 noundef %15953, ptr noundef @.str.6)
  %15955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15956 = load i32, ptr %15955, align 4, !tbaa !5
  %15957 = call ptr @s2n_strerror_debug(i32 noundef %15956, ptr noundef @.str.6)
  %15958 = call ptr @__errno_location() #13
  %15959 = load i32, ptr %15958, align 4, !tbaa !5
  %15960 = call ptr @strerror(i32 noundef %15959) #12
  %15961 = call ptr @__errno_location() #13
  %15962 = load i32, ptr %15961, align 4, !tbaa !5
  %15963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15950, ptr noundef @.str.4, i32 noundef %15951, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 652, ptr noundef %15954, ptr noundef %15957, ptr noundef %15960, i32 noundef %15962) #12
  br label %15981

15964:                                            ; preds = %15942, %15935
  %15965 = load i32, ptr %348, align 4, !tbaa !5
  %15966 = call ptr @__errno_location() #13
  store i32 %15965, ptr %15966, align 4, !tbaa !5
  %15967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15968 = load i32, ptr @test_count, align 4, !tbaa !5
  %15969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15970 = load i32, ptr %15969, align 4, !tbaa !5
  %15971 = call ptr @s2n_strerror(i32 noundef %15970, ptr noundef @.str.6)
  %15972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15973 = load i32, ptr %15972, align 4, !tbaa !5
  %15974 = call ptr @s2n_strerror_debug(i32 noundef %15973, ptr noundef @.str.6)
  %15975 = call ptr @__errno_location() #13
  %15976 = load i32, ptr %15975, align 4, !tbaa !5
  %15977 = call ptr @strerror(i32 noundef %15976) #12
  %15978 = call ptr @__errno_location() #13
  %15979 = load i32, ptr %15978, align 4, !tbaa !5
  %15980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15967, ptr noundef @.str.7, i32 noundef %15968, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 652, ptr noundef %15971, ptr noundef %15974, ptr noundef %15977, i32 noundef %15979) #12
  br label %15981

15981:                                            ; preds = %15964, %15947
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #12
  br label %15982

15982:                                            ; preds = %15981
  br label %15983

15983:                                            ; preds = %15982
  call void @exit(i32 noundef 1) #14
  unreachable

15984:                                            ; No predecessors!
  br label %15985

15985:                                            ; preds = %15984
  br label %15986

15986:                                            ; preds = %15985, %15927
  br label %15987

15987:                                            ; preds = %15986
  br label %15988

15988:                                            ; preds = %15987
  br label %15989

15989:                                            ; preds = %15988
  %15990 = load i32, ptr @test_count, align 4, !tbaa !5
  %15991 = add nsw i32 %15990, 1
  store i32 %15991, ptr @test_count, align 4, !tbaa !5
  %15992 = load ptr, ptr %347, align 8, !tbaa !9
  %15993 = icmp eq ptr %15992, null
  br i1 %15993, label %15994, label %16047

15994:                                            ; preds = %15989
  br label %15995

15995:                                            ; preds = %15994
  br label %15996

15996:                                            ; preds = %15995
  call void @llvm.lifetime.start.p0(i64 4, ptr %349) #12
  %15997 = call ptr @__errno_location() #13
  %15998 = load i32, ptr %15997, align 4, !tbaa !5
  store i32 %15998, ptr %349, align 4, !tbaa !5
  %15999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16000 = call i32 @s2n_print_stacktrace(ptr noundef %15999)
  %16001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16002 = trunc i8 %16001 to i1
  br i1 %16002, label %16003, label %16025

16003:                                            ; preds = %15996
  %16004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16005 = call i32 @fileno(ptr noundef %16004) #12
  %16006 = call i32 @isatty(i32 noundef %16005) #12
  %16007 = icmp ne i32 %16006, 0
  br i1 %16007, label %16008, label %16025

16008:                                            ; preds = %16003
  %16009 = load i32, ptr %349, align 4, !tbaa !5
  %16010 = call ptr @__errno_location() #13
  store i32 %16009, ptr %16010, align 4, !tbaa !5
  %16011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16012 = load i32, ptr @test_count, align 4, !tbaa !5
  %16013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16014 = load i32, ptr %16013, align 4, !tbaa !5
  %16015 = call ptr @s2n_strerror(i32 noundef %16014, ptr noundef @.str.6)
  %16016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16017 = load i32, ptr %16016, align 4, !tbaa !5
  %16018 = call ptr @s2n_strerror_debug(i32 noundef %16017, ptr noundef @.str.6)
  %16019 = call ptr @__errno_location() #13
  %16020 = load i32, ptr %16019, align 4, !tbaa !5
  %16021 = call ptr @strerror(i32 noundef %16020) #12
  %16022 = call ptr @__errno_location() #13
  %16023 = load i32, ptr %16022, align 4, !tbaa !5
  %16024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16011, ptr noundef @.str.4, i32 noundef %16012, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 653, ptr noundef %16015, ptr noundef %16018, ptr noundef %16021, i32 noundef %16023) #12
  br label %16042

16025:                                            ; preds = %16003, %15996
  %16026 = load i32, ptr %349, align 4, !tbaa !5
  %16027 = call ptr @__errno_location() #13
  store i32 %16026, ptr %16027, align 4, !tbaa !5
  %16028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16029 = load i32, ptr @test_count, align 4, !tbaa !5
  %16030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16031 = load i32, ptr %16030, align 4, !tbaa !5
  %16032 = call ptr @s2n_strerror(i32 noundef %16031, ptr noundef @.str.6)
  %16033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16034 = load i32, ptr %16033, align 4, !tbaa !5
  %16035 = call ptr @s2n_strerror_debug(i32 noundef %16034, ptr noundef @.str.6)
  %16036 = call ptr @__errno_location() #13
  %16037 = load i32, ptr %16036, align 4, !tbaa !5
  %16038 = call ptr @strerror(i32 noundef %16037) #12
  %16039 = call ptr @__errno_location() #13
  %16040 = load i32, ptr %16039, align 4, !tbaa !5
  %16041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16028, ptr noundef @.str.7, i32 noundef %16029, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 653, ptr noundef %16032, ptr noundef %16035, ptr noundef %16038, i32 noundef %16040) #12
  br label %16042

16042:                                            ; preds = %16025, %16008
  call void @llvm.lifetime.end.p0(i64 4, ptr %349) #12
  br label %16043

16043:                                            ; preds = %16042
  br label %16044

16044:                                            ; preds = %16043
  call void @exit(i32 noundef 1) #14
  unreachable

16045:                                            ; No predecessors!
  br label %16046

16046:                                            ; preds = %16045
  br label %16047

16047:                                            ; preds = %16046, %15989
  br label %16048

16048:                                            ; preds = %16047
  br label %16049

16049:                                            ; preds = %16048
  br label %16050

16050:                                            ; preds = %16049
  %16051 = load i32, ptr @test_count, align 4, !tbaa !5
  %16052 = add nsw i32 %16051, 1
  store i32 %16052, ptr @test_count, align 4, !tbaa !5
  %16053 = load ptr, ptr %347, align 8, !tbaa !9
  %16054 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %16053, i32 0, i32 0
  %16055 = load i8, ptr %16054, align 8, !tbaa !64
  %16056 = zext i8 %16055 to i32
  %16057 = icmp sge i32 %16056, 2
  br i1 %16057, label %16111, label %16058

16058:                                            ; preds = %16050
  br label %16059

16059:                                            ; preds = %16058
  br label %16060

16060:                                            ; preds = %16059
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #12
  %16061 = call ptr @__errno_location() #13
  %16062 = load i32, ptr %16061, align 4, !tbaa !5
  store i32 %16062, ptr %350, align 4, !tbaa !5
  %16063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16064 = call i32 @s2n_print_stacktrace(ptr noundef %16063)
  %16065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16066 = trunc i8 %16065 to i1
  br i1 %16066, label %16067, label %16089

16067:                                            ; preds = %16060
  %16068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16069 = call i32 @fileno(ptr noundef %16068) #12
  %16070 = call i32 @isatty(i32 noundef %16069) #12
  %16071 = icmp ne i32 %16070, 0
  br i1 %16071, label %16072, label %16089

16072:                                            ; preds = %16067
  %16073 = load i32, ptr %350, align 4, !tbaa !5
  %16074 = call ptr @__errno_location() #13
  store i32 %16073, ptr %16074, align 4, !tbaa !5
  %16075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16076 = load i32, ptr @test_count, align 4, !tbaa !5
  %16077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16078 = load i32, ptr %16077, align 4, !tbaa !5
  %16079 = call ptr @s2n_strerror(i32 noundef %16078, ptr noundef @.str.6)
  %16080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16081 = load i32, ptr %16080, align 4, !tbaa !5
  %16082 = call ptr @s2n_strerror_debug(i32 noundef %16081, ptr noundef @.str.6)
  %16083 = call ptr @__errno_location() #13
  %16084 = load i32, ptr %16083, align 4, !tbaa !5
  %16085 = call ptr @strerror(i32 noundef %16084) #12
  %16086 = call ptr @__errno_location() #13
  %16087 = load i32, ptr %16086, align 4, !tbaa !5
  %16088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16075, ptr noundef @.str.4, i32 noundef %16076, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 654, ptr noundef %16079, ptr noundef %16082, ptr noundef %16085, i32 noundef %16087) #12
  br label %16106

16089:                                            ; preds = %16067, %16060
  %16090 = load i32, ptr %350, align 4, !tbaa !5
  %16091 = call ptr @__errno_location() #13
  store i32 %16090, ptr %16091, align 4, !tbaa !5
  %16092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16093 = load i32, ptr @test_count, align 4, !tbaa !5
  %16094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16095 = load i32, ptr %16094, align 4, !tbaa !5
  %16096 = call ptr @s2n_strerror(i32 noundef %16095, ptr noundef @.str.6)
  %16097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16098 = load i32, ptr %16097, align 4, !tbaa !5
  %16099 = call ptr @s2n_strerror_debug(i32 noundef %16098, ptr noundef @.str.6)
  %16100 = call ptr @__errno_location() #13
  %16101 = load i32, ptr %16100, align 4, !tbaa !5
  %16102 = call ptr @strerror(i32 noundef %16101) #12
  %16103 = call ptr @__errno_location() #13
  %16104 = load i32, ptr %16103, align 4, !tbaa !5
  %16105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16092, ptr noundef @.str.7, i32 noundef %16093, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 654, ptr noundef %16096, ptr noundef %16099, ptr noundef %16102, i32 noundef %16104) #12
  br label %16106

16106:                                            ; preds = %16089, %16072
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #12
  br label %16107

16107:                                            ; preds = %16106
  br label %16108

16108:                                            ; preds = %16107
  call void @exit(i32 noundef 1) #14
  unreachable

16109:                                            ; No predecessors!
  br label %16110

16110:                                            ; preds = %16109
  br label %16111

16111:                                            ; preds = %16110, %16050
  br label %16112

16112:                                            ; preds = %16111
  br label %16113

16113:                                            ; preds = %16112
  call void @llvm.lifetime.start.p0(i64 32, ptr %351) #12
  %16114 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %351, i32 0, i32 0
  %16115 = load ptr, ptr %347, align 8, !tbaa !9
  %16116 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %16115, i32 0, i32 1
  %16117 = load ptr, ptr %16116, align 8, !tbaa !24
  %16118 = getelementptr inbounds ptr, ptr %16117, i64 0
  %16119 = load ptr, ptr %16118, align 8, !tbaa !9
  store ptr %16119, ptr %16114, align 16, !tbaa !22
  %16120 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %351, i32 0, i32 1
  store ptr null, ptr %16120, align 8, !tbaa !26
  %16121 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %351, i64 1
  %16122 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %16121, i32 0, i32 0
  %16123 = load ptr, ptr %347, align 8, !tbaa !9
  %16124 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %16123, i32 0, i32 1
  %16125 = load ptr, ptr %16124, align 8, !tbaa !24
  %16126 = getelementptr inbounds ptr, ptr %16125, i64 1
  %16127 = load ptr, ptr %16126, align 8, !tbaa !9
  store ptr %16127, ptr %16122, align 16, !tbaa !22
  %16128 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %16121, i32 0, i32 1
  store ptr null, ptr %16128, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr %352) #12
  call void @llvm.memset.p0.i64(ptr align 8 %352, i8 0, i64 40, i1 false)
  br label %16129

16129:                                            ; preds = %16113
  %16130 = load i32, ptr @test_count, align 4, !tbaa !5
  %16131 = add nsw i32 %16130, 1
  store i32 %16131, ptr @test_count, align 4, !tbaa !5
  %16132 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %352, i32 noundef 0)
  %16133 = icmp eq i32 %16132, -1
  br i1 %16133, label %16134, label %16187

16134:                                            ; preds = %16129
  br label %16135

16135:                                            ; preds = %16134
  br label %16136

16136:                                            ; preds = %16135
  call void @llvm.lifetime.start.p0(i64 4, ptr %353) #12
  %16137 = call ptr @__errno_location() #13
  %16138 = load i32, ptr %16137, align 4, !tbaa !5
  store i32 %16138, ptr %353, align 4, !tbaa !5
  %16139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16140 = call i32 @s2n_print_stacktrace(ptr noundef %16139)
  %16141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16142 = trunc i8 %16141 to i1
  br i1 %16142, label %16143, label %16165

16143:                                            ; preds = %16136
  %16144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16145 = call i32 @fileno(ptr noundef %16144) #12
  %16146 = call i32 @isatty(i32 noundef %16145) #12
  %16147 = icmp ne i32 %16146, 0
  br i1 %16147, label %16148, label %16165

16148:                                            ; preds = %16143
  %16149 = load i32, ptr %353, align 4, !tbaa !5
  %16150 = call ptr @__errno_location() #13
  store i32 %16149, ptr %16150, align 4, !tbaa !5
  %16151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16152 = load i32, ptr @test_count, align 4, !tbaa !5
  %16153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16154 = load i32, ptr %16153, align 4, !tbaa !5
  %16155 = call ptr @s2n_strerror(i32 noundef %16154, ptr noundef @.str.6)
  %16156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16157 = load i32, ptr %16156, align 4, !tbaa !5
  %16158 = call ptr @s2n_strerror_debug(i32 noundef %16157, ptr noundef @.str.6)
  %16159 = call ptr @__errno_location() #13
  %16160 = load i32, ptr %16159, align 4, !tbaa !5
  %16161 = call ptr @strerror(i32 noundef %16160) #12
  %16162 = call ptr @__errno_location() #13
  %16163 = load i32, ptr %16162, align 4, !tbaa !5
  %16164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16151, ptr noundef @.str.4, i32 noundef %16152, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 662, ptr noundef %16155, ptr noundef %16158, ptr noundef %16161, i32 noundef %16163) #12
  br label %16182

16165:                                            ; preds = %16143, %16136
  %16166 = load i32, ptr %353, align 4, !tbaa !5
  %16167 = call ptr @__errno_location() #13
  store i32 %16166, ptr %16167, align 4, !tbaa !5
  %16168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16169 = load i32, ptr @test_count, align 4, !tbaa !5
  %16170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16171 = load i32, ptr %16170, align 4, !tbaa !5
  %16172 = call ptr @s2n_strerror(i32 noundef %16171, ptr noundef @.str.6)
  %16173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16174 = load i32, ptr %16173, align 4, !tbaa !5
  %16175 = call ptr @s2n_strerror_debug(i32 noundef %16174, ptr noundef @.str.6)
  %16176 = call ptr @__errno_location() #13
  %16177 = load i32, ptr %16176, align 4, !tbaa !5
  %16178 = call ptr @strerror(i32 noundef %16177) #12
  %16179 = call ptr @__errno_location() #13
  %16180 = load i32, ptr %16179, align 4, !tbaa !5
  %16181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16168, ptr noundef @.str.7, i32 noundef %16169, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 662, ptr noundef %16172, ptr noundef %16175, ptr noundef %16178, i32 noundef %16180) #12
  br label %16182

16182:                                            ; preds = %16165, %16148
  call void @llvm.lifetime.end.p0(i64 4, ptr %353) #12
  br label %16183

16183:                                            ; preds = %16182
  br label %16184

16184:                                            ; preds = %16183
  call void @exit(i32 noundef 1) #14
  unreachable

16185:                                            ; No predecessors!
  br label %16186

16186:                                            ; preds = %16185
  br label %16187

16187:                                            ; preds = %16186, %16129
  br label %16188

16188:                                            ; preds = %16187
  br label %16189

16189:                                            ; preds = %16188
  call void @llvm.lifetime.start.p0(i64 16, ptr %354) #12
  call void @llvm.memset.p0.i64(ptr align 8 %354, i8 0, i64 16, i1 false)
  br label %16190

16190:                                            ; preds = %16189
  %16191 = load i32, ptr @test_count, align 4, !tbaa !5
  %16192 = add nsw i32 %16191, 1
  store i32 %16192, ptr @test_count, align 4, !tbaa !5
  %16193 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %352, ptr noundef %354)
  %16194 = icmp eq i32 %16193, -1
  br i1 %16194, label %16195, label %16248

16195:                                            ; preds = %16190
  br label %16196

16196:                                            ; preds = %16195
  br label %16197

16197:                                            ; preds = %16196
  call void @llvm.lifetime.start.p0(i64 4, ptr %355) #12
  %16198 = call ptr @__errno_location() #13
  %16199 = load i32, ptr %16198, align 4, !tbaa !5
  store i32 %16199, ptr %355, align 4, !tbaa !5
  %16200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16201 = call i32 @s2n_print_stacktrace(ptr noundef %16200)
  %16202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16203 = trunc i8 %16202 to i1
  br i1 %16203, label %16204, label %16226

16204:                                            ; preds = %16197
  %16205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16206 = call i32 @fileno(ptr noundef %16205) #12
  %16207 = call i32 @isatty(i32 noundef %16206) #12
  %16208 = icmp ne i32 %16207, 0
  br i1 %16208, label %16209, label %16226

16209:                                            ; preds = %16204
  %16210 = load i32, ptr %355, align 4, !tbaa !5
  %16211 = call ptr @__errno_location() #13
  store i32 %16210, ptr %16211, align 4, !tbaa !5
  %16212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16213 = load i32, ptr @test_count, align 4, !tbaa !5
  %16214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16215 = load i32, ptr %16214, align 4, !tbaa !5
  %16216 = call ptr @s2n_strerror(i32 noundef %16215, ptr noundef @.str.6)
  %16217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16218 = load i32, ptr %16217, align 4, !tbaa !5
  %16219 = call ptr @s2n_strerror_debug(i32 noundef %16218, ptr noundef @.str.6)
  %16220 = call ptr @__errno_location() #13
  %16221 = load i32, ptr %16220, align 4, !tbaa !5
  %16222 = call ptr @strerror(i32 noundef %16221) #12
  %16223 = call ptr @__errno_location() #13
  %16224 = load i32, ptr %16223, align 4, !tbaa !5
  %16225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16212, ptr noundef @.str.4, i32 noundef %16213, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 665, ptr noundef %16216, ptr noundef %16219, ptr noundef %16222, i32 noundef %16224) #12
  br label %16243

16226:                                            ; preds = %16204, %16197
  %16227 = load i32, ptr %355, align 4, !tbaa !5
  %16228 = call ptr @__errno_location() #13
  store i32 %16227, ptr %16228, align 4, !tbaa !5
  %16229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16230 = load i32, ptr @test_count, align 4, !tbaa !5
  %16231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16232 = load i32, ptr %16231, align 4, !tbaa !5
  %16233 = call ptr @s2n_strerror(i32 noundef %16232, ptr noundef @.str.6)
  %16234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16235 = load i32, ptr %16234, align 4, !tbaa !5
  %16236 = call ptr @s2n_strerror_debug(i32 noundef %16235, ptr noundef @.str.6)
  %16237 = call ptr @__errno_location() #13
  %16238 = load i32, ptr %16237, align 4, !tbaa !5
  %16239 = call ptr @strerror(i32 noundef %16238) #12
  %16240 = call ptr @__errno_location() #13
  %16241 = load i32, ptr %16240, align 4, !tbaa !5
  %16242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16229, ptr noundef @.str.7, i32 noundef %16230, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 665, ptr noundef %16233, ptr noundef %16236, ptr noundef %16239, i32 noundef %16241) #12
  br label %16243

16243:                                            ; preds = %16226, %16209
  call void @llvm.lifetime.end.p0(i64 4, ptr %355) #12
  br label %16244

16244:                                            ; preds = %16243
  br label %16245

16245:                                            ; preds = %16244
  call void @exit(i32 noundef 1) #14
  unreachable

16246:                                            ; No predecessors!
  br label %16247

16247:                                            ; preds = %16246
  br label %16248

16248:                                            ; preds = %16247, %16190
  br label %16249

16249:                                            ; preds = %16248
  br label %16250

16250:                                            ; preds = %16249
  br label %16251

16251:                                            ; preds = %16250
  %16252 = load i32, ptr @test_count, align 4, !tbaa !5
  %16253 = add nsw i32 %16252, 1
  store i32 %16253, ptr @test_count, align 4, !tbaa !5
  %16254 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %351, i64 0, i64 0
  %16255 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %16254, ptr noundef %352)
  %16256 = icmp eq i32 %16255, -1
  br i1 %16256, label %16257, label %16310

16257:                                            ; preds = %16251
  br label %16258

16258:                                            ; preds = %16257
  br label %16259

16259:                                            ; preds = %16258
  call void @llvm.lifetime.start.p0(i64 4, ptr %356) #12
  %16260 = call ptr @__errno_location() #13
  %16261 = load i32, ptr %16260, align 4, !tbaa !5
  store i32 %16261, ptr %356, align 4, !tbaa !5
  %16262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16263 = call i32 @s2n_print_stacktrace(ptr noundef %16262)
  %16264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16265 = trunc i8 %16264 to i1
  br i1 %16265, label %16266, label %16288

16266:                                            ; preds = %16259
  %16267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16268 = call i32 @fileno(ptr noundef %16267) #12
  %16269 = call i32 @isatty(i32 noundef %16268) #12
  %16270 = icmp ne i32 %16269, 0
  br i1 %16270, label %16271, label %16288

16271:                                            ; preds = %16266
  %16272 = load i32, ptr %356, align 4, !tbaa !5
  %16273 = call ptr @__errno_location() #13
  store i32 %16272, ptr %16273, align 4, !tbaa !5
  %16274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16275 = load i32, ptr @test_count, align 4, !tbaa !5
  %16276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16277 = load i32, ptr %16276, align 4, !tbaa !5
  %16278 = call ptr @s2n_strerror(i32 noundef %16277, ptr noundef @.str.6)
  %16279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16280 = load i32, ptr %16279, align 4, !tbaa !5
  %16281 = call ptr @s2n_strerror_debug(i32 noundef %16280, ptr noundef @.str.6)
  %16282 = call ptr @__errno_location() #13
  %16283 = load i32, ptr %16282, align 4, !tbaa !5
  %16284 = call ptr @strerror(i32 noundef %16283) #12
  %16285 = call ptr @__errno_location() #13
  %16286 = load i32, ptr %16285, align 4, !tbaa !5
  %16287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16274, ptr noundef @.str.4, i32 noundef %16275, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 666, ptr noundef %16278, ptr noundef %16281, ptr noundef %16284, i32 noundef %16286) #12
  br label %16305

16288:                                            ; preds = %16266, %16259
  %16289 = load i32, ptr %356, align 4, !tbaa !5
  %16290 = call ptr @__errno_location() #13
  store i32 %16289, ptr %16290, align 4, !tbaa !5
  %16291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16292 = load i32, ptr @test_count, align 4, !tbaa !5
  %16293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16294 = load i32, ptr %16293, align 4, !tbaa !5
  %16295 = call ptr @s2n_strerror(i32 noundef %16294, ptr noundef @.str.6)
  %16296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16297 = load i32, ptr %16296, align 4, !tbaa !5
  %16298 = call ptr @s2n_strerror_debug(i32 noundef %16297, ptr noundef @.str.6)
  %16299 = call ptr @__errno_location() #13
  %16300 = load i32, ptr %16299, align 4, !tbaa !5
  %16301 = call ptr @strerror(i32 noundef %16300) #12
  %16302 = call ptr @__errno_location() #13
  %16303 = load i32, ptr %16302, align 4, !tbaa !5
  %16304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16291, ptr noundef @.str.7, i32 noundef %16292, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 666, ptr noundef %16295, ptr noundef %16298, ptr noundef %16301, i32 noundef %16303) #12
  br label %16305

16305:                                            ; preds = %16288, %16271
  call void @llvm.lifetime.end.p0(i64 4, ptr %356) #12
  br label %16306

16306:                                            ; preds = %16305
  br label %16307

16307:                                            ; preds = %16306
  call void @exit(i32 noundef 1) #14
  unreachable

16308:                                            ; No predecessors!
  br label %16309

16309:                                            ; preds = %16308
  br label %16310

16310:                                            ; preds = %16309, %16251
  br label %16311

16311:                                            ; preds = %16310
  br label %16312

16312:                                            ; preds = %16311
  br label %16313

16313:                                            ; preds = %16312
  %16314 = load i32, ptr @test_count, align 4, !tbaa !5
  %16315 = add nsw i32 %16314, 1
  store i32 %16315, ptr @test_count, align 4, !tbaa !5
  %16316 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %351, i64 0, i64 1
  %16317 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %16316, ptr noundef %352)
  %16318 = icmp eq i32 %16317, -1
  br i1 %16318, label %16319, label %16372

16319:                                            ; preds = %16313
  br label %16320

16320:                                            ; preds = %16319
  br label %16321

16321:                                            ; preds = %16320
  call void @llvm.lifetime.start.p0(i64 4, ptr %357) #12
  %16322 = call ptr @__errno_location() #13
  %16323 = load i32, ptr %16322, align 4, !tbaa !5
  store i32 %16323, ptr %357, align 4, !tbaa !5
  %16324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16325 = call i32 @s2n_print_stacktrace(ptr noundef %16324)
  %16326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16327 = trunc i8 %16326 to i1
  br i1 %16327, label %16328, label %16350

16328:                                            ; preds = %16321
  %16329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16330 = call i32 @fileno(ptr noundef %16329) #12
  %16331 = call i32 @isatty(i32 noundef %16330) #12
  %16332 = icmp ne i32 %16331, 0
  br i1 %16332, label %16333, label %16350

16333:                                            ; preds = %16328
  %16334 = load i32, ptr %357, align 4, !tbaa !5
  %16335 = call ptr @__errno_location() #13
  store i32 %16334, ptr %16335, align 4, !tbaa !5
  %16336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16337 = load i32, ptr @test_count, align 4, !tbaa !5
  %16338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16339 = load i32, ptr %16338, align 4, !tbaa !5
  %16340 = call ptr @s2n_strerror(i32 noundef %16339, ptr noundef @.str.6)
  %16341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16342 = load i32, ptr %16341, align 4, !tbaa !5
  %16343 = call ptr @s2n_strerror_debug(i32 noundef %16342, ptr noundef @.str.6)
  %16344 = call ptr @__errno_location() #13
  %16345 = load i32, ptr %16344, align 4, !tbaa !5
  %16346 = call ptr @strerror(i32 noundef %16345) #12
  %16347 = call ptr @__errno_location() #13
  %16348 = load i32, ptr %16347, align 4, !tbaa !5
  %16349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16336, ptr noundef @.str.4, i32 noundef %16337, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 667, ptr noundef %16340, ptr noundef %16343, ptr noundef %16346, i32 noundef %16348) #12
  br label %16367

16350:                                            ; preds = %16328, %16321
  %16351 = load i32, ptr %357, align 4, !tbaa !5
  %16352 = call ptr @__errno_location() #13
  store i32 %16351, ptr %16352, align 4, !tbaa !5
  %16353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16354 = load i32, ptr @test_count, align 4, !tbaa !5
  %16355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16356 = load i32, ptr %16355, align 4, !tbaa !5
  %16357 = call ptr @s2n_strerror(i32 noundef %16356, ptr noundef @.str.6)
  %16358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16359 = load i32, ptr %16358, align 4, !tbaa !5
  %16360 = call ptr @s2n_strerror_debug(i32 noundef %16359, ptr noundef @.str.6)
  %16361 = call ptr @__errno_location() #13
  %16362 = load i32, ptr %16361, align 4, !tbaa !5
  %16363 = call ptr @strerror(i32 noundef %16362) #12
  %16364 = call ptr @__errno_location() #13
  %16365 = load i32, ptr %16364, align 4, !tbaa !5
  %16366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16353, ptr noundef @.str.7, i32 noundef %16354, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 667, ptr noundef %16357, ptr noundef %16360, ptr noundef %16363, i32 noundef %16365) #12
  br label %16367

16367:                                            ; preds = %16350, %16333
  call void @llvm.lifetime.end.p0(i64 4, ptr %357) #12
  br label %16368

16368:                                            ; preds = %16367
  br label %16369

16369:                                            ; preds = %16368
  call void @exit(i32 noundef 1) #14
  unreachable

16370:                                            ; No predecessors!
  br label %16371

16371:                                            ; preds = %16370
  br label %16372

16372:                                            ; preds = %16371, %16313
  br label %16373

16373:                                            ; preds = %16372
  br label %16374

16374:                                            ; preds = %16373
  br label %16375

16375:                                            ; preds = %16374
  %16376 = load i32, ptr @test_count, align 4, !tbaa !5
  %16377 = add nsw i32 %16376, 1
  store i32 %16377, ptr @test_count, align 4, !tbaa !5
  %16378 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %354)
  %16379 = icmp eq i32 %16378, -1
  br i1 %16379, label %16380, label %16433

16380:                                            ; preds = %16375
  br label %16381

16381:                                            ; preds = %16380
  br label %16382

16382:                                            ; preds = %16381
  call void @llvm.lifetime.start.p0(i64 4, ptr %358) #12
  %16383 = call ptr @__errno_location() #13
  %16384 = load i32, ptr %16383, align 4, !tbaa !5
  store i32 %16384, ptr %358, align 4, !tbaa !5
  %16385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16386 = call i32 @s2n_print_stacktrace(ptr noundef %16385)
  %16387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16388 = trunc i8 %16387 to i1
  br i1 %16388, label %16389, label %16411

16389:                                            ; preds = %16382
  %16390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16391 = call i32 @fileno(ptr noundef %16390) #12
  %16392 = call i32 @isatty(i32 noundef %16391) #12
  %16393 = icmp ne i32 %16392, 0
  br i1 %16393, label %16394, label %16411

16394:                                            ; preds = %16389
  %16395 = load i32, ptr %358, align 4, !tbaa !5
  %16396 = call ptr @__errno_location() #13
  store i32 %16395, ptr %16396, align 4, !tbaa !5
  %16397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16398 = load i32, ptr @test_count, align 4, !tbaa !5
  %16399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16400 = load i32, ptr %16399, align 4, !tbaa !5
  %16401 = call ptr @s2n_strerror(i32 noundef %16400, ptr noundef @.str.6)
  %16402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16403 = load i32, ptr %16402, align 4, !tbaa !5
  %16404 = call ptr @s2n_strerror_debug(i32 noundef %16403, ptr noundef @.str.6)
  %16405 = call ptr @__errno_location() #13
  %16406 = load i32, ptr %16405, align 4, !tbaa !5
  %16407 = call ptr @strerror(i32 noundef %16406) #12
  %16408 = call ptr @__errno_location() #13
  %16409 = load i32, ptr %16408, align 4, !tbaa !5
  %16410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16397, ptr noundef @.str.4, i32 noundef %16398, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 668, ptr noundef %16401, ptr noundef %16404, ptr noundef %16407, i32 noundef %16409) #12
  br label %16428

16411:                                            ; preds = %16389, %16382
  %16412 = load i32, ptr %358, align 4, !tbaa !5
  %16413 = call ptr @__errno_location() #13
  store i32 %16412, ptr %16413, align 4, !tbaa !5
  %16414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16415 = load i32, ptr @test_count, align 4, !tbaa !5
  %16416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16417 = load i32, ptr %16416, align 4, !tbaa !5
  %16418 = call ptr @s2n_strerror(i32 noundef %16417, ptr noundef @.str.6)
  %16419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16420 = load i32, ptr %16419, align 4, !tbaa !5
  %16421 = call ptr @s2n_strerror_debug(i32 noundef %16420, ptr noundef @.str.6)
  %16422 = call ptr @__errno_location() #13
  %16423 = load i32, ptr %16422, align 4, !tbaa !5
  %16424 = call ptr @strerror(i32 noundef %16423) #12
  %16425 = call ptr @__errno_location() #13
  %16426 = load i32, ptr %16425, align 4, !tbaa !5
  %16427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16414, ptr noundef @.str.7, i32 noundef %16415, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 668, ptr noundef %16418, ptr noundef %16421, ptr noundef %16424, i32 noundef %16426) #12
  br label %16428

16428:                                            ; preds = %16411, %16394
  call void @llvm.lifetime.end.p0(i64 4, ptr %358) #12
  br label %16429

16429:                                            ; preds = %16428
  br label %16430

16430:                                            ; preds = %16429
  call void @exit(i32 noundef 1) #14
  unreachable

16431:                                            ; No predecessors!
  br label %16432

16432:                                            ; preds = %16431
  br label %16433

16433:                                            ; preds = %16432, %16375
  br label %16434

16434:                                            ; preds = %16433
  br label %16435

16435:                                            ; preds = %16434
  br label %16436

16436:                                            ; preds = %16435
  %16437 = load i32, ptr @test_count, align 4, !tbaa !5
  %16438 = add nsw i32 %16437, 1
  store i32 %16438, ptr @test_count, align 4, !tbaa !5
  %16439 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %16440 = load ptr, ptr %343, align 8, !tbaa !9
  %16441 = call i32 %16439(ptr noundef %16440, ptr noundef %352)
  %16442 = icmp eq i32 %16441, -1
  br i1 %16442, label %16443, label %16496

16443:                                            ; preds = %16436
  br label %16444

16444:                                            ; preds = %16443
  br label %16445

16445:                                            ; preds = %16444
  call void @llvm.lifetime.start.p0(i64 4, ptr %359) #12
  %16446 = call ptr @__errno_location() #13
  %16447 = load i32, ptr %16446, align 4, !tbaa !5
  store i32 %16447, ptr %359, align 4, !tbaa !5
  %16448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16449 = call i32 @s2n_print_stacktrace(ptr noundef %16448)
  %16450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16451 = trunc i8 %16450 to i1
  br i1 %16451, label %16452, label %16474

16452:                                            ; preds = %16445
  %16453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16454 = call i32 @fileno(ptr noundef %16453) #12
  %16455 = call i32 @isatty(i32 noundef %16454) #12
  %16456 = icmp ne i32 %16455, 0
  br i1 %16456, label %16457, label %16474

16457:                                            ; preds = %16452
  %16458 = load i32, ptr %359, align 4, !tbaa !5
  %16459 = call ptr @__errno_location() #13
  store i32 %16458, ptr %16459, align 4, !tbaa !5
  %16460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16461 = load i32, ptr @test_count, align 4, !tbaa !5
  %16462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16463 = load i32, ptr %16462, align 4, !tbaa !5
  %16464 = call ptr @s2n_strerror(i32 noundef %16463, ptr noundef @.str.6)
  %16465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16466 = load i32, ptr %16465, align 4, !tbaa !5
  %16467 = call ptr @s2n_strerror_debug(i32 noundef %16466, ptr noundef @.str.6)
  %16468 = call ptr @__errno_location() #13
  %16469 = load i32, ptr %16468, align 4, !tbaa !5
  %16470 = call ptr @strerror(i32 noundef %16469) #12
  %16471 = call ptr @__errno_location() #13
  %16472 = load i32, ptr %16471, align 4, !tbaa !5
  %16473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16460, ptr noundef @.str.4, i32 noundef %16461, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 670, ptr noundef %16464, ptr noundef %16467, ptr noundef %16470, i32 noundef %16472) #12
  br label %16491

16474:                                            ; preds = %16452, %16445
  %16475 = load i32, ptr %359, align 4, !tbaa !5
  %16476 = call ptr @__errno_location() #13
  store i32 %16475, ptr %16476, align 4, !tbaa !5
  %16477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16478 = load i32, ptr @test_count, align 4, !tbaa !5
  %16479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16480 = load i32, ptr %16479, align 4, !tbaa !5
  %16481 = call ptr @s2n_strerror(i32 noundef %16480, ptr noundef @.str.6)
  %16482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16483 = load i32, ptr %16482, align 4, !tbaa !5
  %16484 = call ptr @s2n_strerror_debug(i32 noundef %16483, ptr noundef @.str.6)
  %16485 = call ptr @__errno_location() #13
  %16486 = load i32, ptr %16485, align 4, !tbaa !5
  %16487 = call ptr @strerror(i32 noundef %16486) #12
  %16488 = call ptr @__errno_location() #13
  %16489 = load i32, ptr %16488, align 4, !tbaa !5
  %16490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16477, ptr noundef @.str.7, i32 noundef %16478, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 670, ptr noundef %16481, ptr noundef %16484, ptr noundef %16487, i32 noundef %16489) #12
  br label %16491

16491:                                            ; preds = %16474, %16457
  call void @llvm.lifetime.end.p0(i64 4, ptr %359) #12
  br label %16492

16492:                                            ; preds = %16491
  br label %16493

16493:                                            ; preds = %16492
  call void @exit(i32 noundef 1) #14
  unreachable

16494:                                            ; No predecessors!
  br label %16495

16495:                                            ; preds = %16494
  br label %16496

16496:                                            ; preds = %16495, %16436
  br label %16497

16497:                                            ; preds = %16496
  br label %16498

16498:                                            ; preds = %16497
  br label %16499

16499:                                            ; preds = %16498
  %16500 = load i32, ptr @test_count, align 4, !tbaa !5
  %16501 = add nsw i32 %16500, 1
  store i32 %16501, ptr @test_count, align 4, !tbaa !5
  %16502 = getelementptr inbounds %struct.s2n_stuffer, ptr %352, i32 0, i32 2
  %16503 = load i32, ptr %16502, align 4, !tbaa !18
  %16504 = getelementptr inbounds %struct.s2n_stuffer, ptr %352, i32 0, i32 1
  %16505 = load i32, ptr %16504, align 8, !tbaa !21
  %16506 = sub i32 %16503, %16505
  %16507 = icmp eq i32 %16506, 0
  br i1 %16507, label %16561, label %16508

16508:                                            ; preds = %16499
  br label %16509

16509:                                            ; preds = %16508
  br label %16510

16510:                                            ; preds = %16509
  call void @llvm.lifetime.start.p0(i64 4, ptr %360) #12
  %16511 = call ptr @__errno_location() #13
  %16512 = load i32, ptr %16511, align 4, !tbaa !5
  store i32 %16512, ptr %360, align 4, !tbaa !5
  %16513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16514 = call i32 @s2n_print_stacktrace(ptr noundef %16513)
  %16515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16516 = trunc i8 %16515 to i1
  br i1 %16516, label %16517, label %16539

16517:                                            ; preds = %16510
  %16518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16519 = call i32 @fileno(ptr noundef %16518) #12
  %16520 = call i32 @isatty(i32 noundef %16519) #12
  %16521 = icmp ne i32 %16520, 0
  br i1 %16521, label %16522, label %16539

16522:                                            ; preds = %16517
  %16523 = load i32, ptr %360, align 4, !tbaa !5
  %16524 = call ptr @__errno_location() #13
  store i32 %16523, ptr %16524, align 4, !tbaa !5
  %16525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16526 = load i32, ptr @test_count, align 4, !tbaa !5
  %16527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16528 = load i32, ptr %16527, align 4, !tbaa !5
  %16529 = call ptr @s2n_strerror(i32 noundef %16528, ptr noundef @.str.6)
  %16530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16531 = load i32, ptr %16530, align 4, !tbaa !5
  %16532 = call ptr @s2n_strerror_debug(i32 noundef %16531, ptr noundef @.str.6)
  %16533 = call ptr @__errno_location() #13
  %16534 = load i32, ptr %16533, align 4, !tbaa !5
  %16535 = call ptr @strerror(i32 noundef %16534) #12
  %16536 = call ptr @__errno_location() #13
  %16537 = load i32, ptr %16536, align 4, !tbaa !5
  %16538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16525, ptr noundef @.str.4, i32 noundef %16526, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 671, ptr noundef %16529, ptr noundef %16532, ptr noundef %16535, i32 noundef %16537) #12
  br label %16556

16539:                                            ; preds = %16517, %16510
  %16540 = load i32, ptr %360, align 4, !tbaa !5
  %16541 = call ptr @__errno_location() #13
  store i32 %16540, ptr %16541, align 4, !tbaa !5
  %16542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16543 = load i32, ptr @test_count, align 4, !tbaa !5
  %16544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16545 = load i32, ptr %16544, align 4, !tbaa !5
  %16546 = call ptr @s2n_strerror(i32 noundef %16545, ptr noundef @.str.6)
  %16547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16548 = load i32, ptr %16547, align 4, !tbaa !5
  %16549 = call ptr @s2n_strerror_debug(i32 noundef %16548, ptr noundef @.str.6)
  %16550 = call ptr @__errno_location() #13
  %16551 = load i32, ptr %16550, align 4, !tbaa !5
  %16552 = call ptr @strerror(i32 noundef %16551) #12
  %16553 = call ptr @__errno_location() #13
  %16554 = load i32, ptr %16553, align 4, !tbaa !5
  %16555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16542, ptr noundef @.str.7, i32 noundef %16543, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 671, ptr noundef %16546, ptr noundef %16549, ptr noundef %16552, i32 noundef %16554) #12
  br label %16556

16556:                                            ; preds = %16539, %16522
  call void @llvm.lifetime.end.p0(i64 4, ptr %360) #12
  br label %16557

16557:                                            ; preds = %16556
  br label %16558

16558:                                            ; preds = %16557
  call void @exit(i32 noundef 1) #14
  unreachable

16559:                                            ; No predecessors!
  br label %16560

16560:                                            ; preds = %16559
  br label %16561

16561:                                            ; preds = %16560, %16499
  br label %16562

16562:                                            ; preds = %16561
  br label %16563

16563:                                            ; preds = %16562
  br label %16564

16564:                                            ; preds = %16563
  %16565 = load i32, ptr @test_count, align 4, !tbaa !5
  %16566 = add nsw i32 %16565, 1
  store i32 %16566, ptr @test_count, align 4, !tbaa !5
  %16567 = load ptr, ptr %343, align 8, !tbaa !9
  %16568 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %16567, i32 noundef 16)
  br i1 %16568, label %16569, label %16622

16569:                                            ; preds = %16564
  br label %16570

16570:                                            ; preds = %16569
  br label %16571

16571:                                            ; preds = %16570
  call void @llvm.lifetime.start.p0(i64 4, ptr %361) #12
  %16572 = call ptr @__errno_location() #13
  %16573 = load i32, ptr %16572, align 4, !tbaa !5
  store i32 %16573, ptr %361, align 4, !tbaa !5
  %16574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16575 = call i32 @s2n_print_stacktrace(ptr noundef %16574)
  %16576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16577 = trunc i8 %16576 to i1
  br i1 %16577, label %16578, label %16600

16578:                                            ; preds = %16571
  %16579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16580 = call i32 @fileno(ptr noundef %16579) #12
  %16581 = call i32 @isatty(i32 noundef %16580) #12
  %16582 = icmp ne i32 %16581, 0
  br i1 %16582, label %16583, label %16600

16583:                                            ; preds = %16578
  %16584 = load i32, ptr %361, align 4, !tbaa !5
  %16585 = call ptr @__errno_location() #13
  store i32 %16584, ptr %16585, align 4, !tbaa !5
  %16586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16587 = load i32, ptr @test_count, align 4, !tbaa !5
  %16588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16589 = load i32, ptr %16588, align 4, !tbaa !5
  %16590 = call ptr @s2n_strerror(i32 noundef %16589, ptr noundef @.str.6)
  %16591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16592 = load i32, ptr %16591, align 4, !tbaa !5
  %16593 = call ptr @s2n_strerror_debug(i32 noundef %16592, ptr noundef @.str.6)
  %16594 = call ptr @__errno_location() #13
  %16595 = load i32, ptr %16594, align 4, !tbaa !5
  %16596 = call ptr @strerror(i32 noundef %16595) #12
  %16597 = call ptr @__errno_location() #13
  %16598 = load i32, ptr %16597, align 4, !tbaa !5
  %16599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16586, ptr noundef @.str.4, i32 noundef %16587, ptr noundef @.str.95, ptr noundef @.str.3, i32 noundef 674, ptr noundef %16590, ptr noundef %16593, ptr noundef %16596, i32 noundef %16598) #12
  br label %16617

16600:                                            ; preds = %16578, %16571
  %16601 = load i32, ptr %361, align 4, !tbaa !5
  %16602 = call ptr @__errno_location() #13
  store i32 %16601, ptr %16602, align 4, !tbaa !5
  %16603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16604 = load i32, ptr @test_count, align 4, !tbaa !5
  %16605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16606 = load i32, ptr %16605, align 4, !tbaa !5
  %16607 = call ptr @s2n_strerror(i32 noundef %16606, ptr noundef @.str.6)
  %16608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16609 = load i32, ptr %16608, align 4, !tbaa !5
  %16610 = call ptr @s2n_strerror_debug(i32 noundef %16609, ptr noundef @.str.6)
  %16611 = call ptr @__errno_location() #13
  %16612 = load i32, ptr %16611, align 4, !tbaa !5
  %16613 = call ptr @strerror(i32 noundef %16612) #12
  %16614 = call ptr @__errno_location() #13
  %16615 = load i32, ptr %16614, align 4, !tbaa !5
  %16616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16603, ptr noundef @.str.7, i32 noundef %16604, ptr noundef @.str.95, ptr noundef @.str.3, i32 noundef 674, ptr noundef %16607, ptr noundef %16610, ptr noundef %16613, i32 noundef %16615) #12
  br label %16617

16617:                                            ; preds = %16600, %16583
  call void @llvm.lifetime.end.p0(i64 4, ptr %361) #12
  br label %16618

16618:                                            ; preds = %16617
  br label %16619

16619:                                            ; preds = %16618
  call void @exit(i32 noundef 1) #14
  unreachable

16620:                                            ; No predecessors!
  br label %16621

16621:                                            ; preds = %16620
  br label %16622

16622:                                            ; preds = %16621, %16564
  br label %16623

16623:                                            ; preds = %16622
  br label %16624

16624:                                            ; preds = %16623
  call void @llvm.lifetime.start.p0(i64 8, ptr %362) #12
  %16625 = load ptr, ptr %343, align 8, !tbaa !9
  %16626 = getelementptr inbounds %struct.s2n_connection, ptr %16625, i32 0, i32 31
  %16627 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16626, i32 0, i32 3
  store ptr %16627, ptr %362, align 8, !tbaa !9
  br label %16628

16628:                                            ; preds = %16624
  %16629 = load i32, ptr @test_count, align 4, !tbaa !5
  %16630 = add nsw i32 %16629, 1
  store i32 %16630, ptr @test_count, align 4, !tbaa !5
  %16631 = load ptr, ptr %362, align 8, !tbaa !9
  %16632 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %16631, i32 0, i32 0
  %16633 = load ptr, ptr %16632, align 8, !tbaa !22
  %16634 = load ptr, ptr %347, align 8, !tbaa !9
  %16635 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %16634, i32 0, i32 1
  %16636 = load ptr, ptr %16635, align 8, !tbaa !24
  %16637 = getelementptr inbounds ptr, ptr %16636, i64 1
  %16638 = load ptr, ptr %16637, align 8, !tbaa !9
  %16639 = icmp eq ptr %16633, %16638
  br i1 %16639, label %16693, label %16640

16640:                                            ; preds = %16628
  br label %16641

16641:                                            ; preds = %16640
  br label %16642

16642:                                            ; preds = %16641
  call void @llvm.lifetime.start.p0(i64 4, ptr %363) #12
  %16643 = call ptr @__errno_location() #13
  %16644 = load i32, ptr %16643, align 4, !tbaa !5
  store i32 %16644, ptr %363, align 4, !tbaa !5
  %16645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16646 = call i32 @s2n_print_stacktrace(ptr noundef %16645)
  %16647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16648 = trunc i8 %16647 to i1
  br i1 %16648, label %16649, label %16671

16649:                                            ; preds = %16642
  %16650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16651 = call i32 @fileno(ptr noundef %16650) #12
  %16652 = call i32 @isatty(i32 noundef %16651) #12
  %16653 = icmp ne i32 %16652, 0
  br i1 %16653, label %16654, label %16671

16654:                                            ; preds = %16649
  %16655 = load i32, ptr %363, align 4, !tbaa !5
  %16656 = call ptr @__errno_location() #13
  store i32 %16655, ptr %16656, align 4, !tbaa !5
  %16657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16658 = load i32, ptr @test_count, align 4, !tbaa !5
  %16659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16660 = load i32, ptr %16659, align 4, !tbaa !5
  %16661 = call ptr @s2n_strerror(i32 noundef %16660, ptr noundef @.str.6)
  %16662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16663 = load i32, ptr %16662, align 4, !tbaa !5
  %16664 = call ptr @s2n_strerror_debug(i32 noundef %16663, ptr noundef @.str.6)
  %16665 = call ptr @__errno_location() #13
  %16666 = load i32, ptr %16665, align 4, !tbaa !5
  %16667 = call ptr @strerror(i32 noundef %16666) #12
  %16668 = call ptr @__errno_location() #13
  %16669 = load i32, ptr %16668, align 4, !tbaa !5
  %16670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16657, ptr noundef @.str.4, i32 noundef %16658, ptr noundef @.str.105, ptr noundef @.str.3, i32 noundef 678, ptr noundef %16661, ptr noundef %16664, ptr noundef %16667, i32 noundef %16669) #12
  br label %16688

16671:                                            ; preds = %16649, %16642
  %16672 = load i32, ptr %363, align 4, !tbaa !5
  %16673 = call ptr @__errno_location() #13
  store i32 %16672, ptr %16673, align 4, !tbaa !5
  %16674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16675 = load i32, ptr @test_count, align 4, !tbaa !5
  %16676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16677 = load i32, ptr %16676, align 4, !tbaa !5
  %16678 = call ptr @s2n_strerror(i32 noundef %16677, ptr noundef @.str.6)
  %16679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16680 = load i32, ptr %16679, align 4, !tbaa !5
  %16681 = call ptr @s2n_strerror_debug(i32 noundef %16680, ptr noundef @.str.6)
  %16682 = call ptr @__errno_location() #13
  %16683 = load i32, ptr %16682, align 4, !tbaa !5
  %16684 = call ptr @strerror(i32 noundef %16683) #12
  %16685 = call ptr @__errno_location() #13
  %16686 = load i32, ptr %16685, align 4, !tbaa !5
  %16687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16674, ptr noundef @.str.7, i32 noundef %16675, ptr noundef @.str.105, ptr noundef @.str.3, i32 noundef 678, ptr noundef %16678, ptr noundef %16681, ptr noundef %16684, i32 noundef %16686) #12
  br label %16688

16688:                                            ; preds = %16671, %16654
  call void @llvm.lifetime.end.p0(i64 4, ptr %363) #12
  br label %16689

16689:                                            ; preds = %16688
  br label %16690

16690:                                            ; preds = %16689
  call void @exit(i32 noundef 1) #14
  unreachable

16691:                                            ; No predecessors!
  br label %16692

16692:                                            ; preds = %16691
  br label %16693

16693:                                            ; preds = %16692, %16628
  br label %16694

16694:                                            ; preds = %16693
  br label %16695

16695:                                            ; preds = %16694
  br label %16696

16696:                                            ; preds = %16695
  %16697 = load i32, ptr @test_count, align 4, !tbaa !5
  %16698 = add nsw i32 %16697, 1
  store i32 %16698, ptr @test_count, align 4, !tbaa !5
  %16699 = load ptr, ptr %362, align 8, !tbaa !9
  %16700 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %16699, i32 0, i32 1
  %16701 = load ptr, ptr %16700, align 8, !tbaa !26
  %16702 = icmp eq ptr %16701, null
  br i1 %16702, label %16703, label %16756

16703:                                            ; preds = %16696
  br label %16704

16704:                                            ; preds = %16703
  br label %16705

16705:                                            ; preds = %16704
  call void @llvm.lifetime.start.p0(i64 4, ptr %364) #12
  %16706 = call ptr @__errno_location() #13
  %16707 = load i32, ptr %16706, align 4, !tbaa !5
  store i32 %16707, ptr %364, align 4, !tbaa !5
  %16708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16709 = call i32 @s2n_print_stacktrace(ptr noundef %16708)
  %16710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16711 = trunc i8 %16710 to i1
  br i1 %16711, label %16712, label %16734

16712:                                            ; preds = %16705
  %16713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16714 = call i32 @fileno(ptr noundef %16713) #12
  %16715 = call i32 @isatty(i32 noundef %16714) #12
  %16716 = icmp ne i32 %16715, 0
  br i1 %16716, label %16717, label %16734

16717:                                            ; preds = %16712
  %16718 = load i32, ptr %364, align 4, !tbaa !5
  %16719 = call ptr @__errno_location() #13
  store i32 %16718, ptr %16719, align 4, !tbaa !5
  %16720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16721 = load i32, ptr @test_count, align 4, !tbaa !5
  %16722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16723 = load i32, ptr %16722, align 4, !tbaa !5
  %16724 = call ptr @s2n_strerror(i32 noundef %16723, ptr noundef @.str.6)
  %16725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16726 = load i32, ptr %16725, align 4, !tbaa !5
  %16727 = call ptr @s2n_strerror_debug(i32 noundef %16726, ptr noundef @.str.6)
  %16728 = call ptr @__errno_location() #13
  %16729 = load i32, ptr %16728, align 4, !tbaa !5
  %16730 = call ptr @strerror(i32 noundef %16729) #12
  %16731 = call ptr @__errno_location() #13
  %16732 = load i32, ptr %16731, align 4, !tbaa !5
  %16733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16720, ptr noundef @.str.4, i32 noundef %16721, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 679, ptr noundef %16724, ptr noundef %16727, ptr noundef %16730, i32 noundef %16732) #12
  br label %16751

16734:                                            ; preds = %16712, %16705
  %16735 = load i32, ptr %364, align 4, !tbaa !5
  %16736 = call ptr @__errno_location() #13
  store i32 %16735, ptr %16736, align 4, !tbaa !5
  %16737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16738 = load i32, ptr @test_count, align 4, !tbaa !5
  %16739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16740 = load i32, ptr %16739, align 4, !tbaa !5
  %16741 = call ptr @s2n_strerror(i32 noundef %16740, ptr noundef @.str.6)
  %16742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16743 = load i32, ptr %16742, align 4, !tbaa !5
  %16744 = call ptr @s2n_strerror_debug(i32 noundef %16743, ptr noundef @.str.6)
  %16745 = call ptr @__errno_location() #13
  %16746 = load i32, ptr %16745, align 4, !tbaa !5
  %16747 = call ptr @strerror(i32 noundef %16746) #12
  %16748 = call ptr @__errno_location() #13
  %16749 = load i32, ptr %16748, align 4, !tbaa !5
  %16750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16737, ptr noundef @.str.7, i32 noundef %16738, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 679, ptr noundef %16741, ptr noundef %16744, ptr noundef %16747, i32 noundef %16749) #12
  br label %16751

16751:                                            ; preds = %16734, %16717
  call void @llvm.lifetime.end.p0(i64 4, ptr %364) #12
  br label %16752

16752:                                            ; preds = %16751
  br label %16753

16753:                                            ; preds = %16752
  call void @exit(i32 noundef 1) #14
  unreachable

16754:                                            ; No predecessors!
  br label %16755

16755:                                            ; preds = %16754
  br label %16756

16756:                                            ; preds = %16755, %16696
  br label %16757

16757:                                            ; preds = %16756
  br label %16758

16758:                                            ; preds = %16757
  br label %16759

16759:                                            ; preds = %16758
  %16760 = load i32, ptr @test_count, align 4, !tbaa !5
  %16761 = add nsw i32 %16760, 1
  store i32 %16761, ptr @test_count, align 4, !tbaa !5
  %16762 = load ptr, ptr %362, align 8, !tbaa !9
  %16763 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %351, i64 0, i64 1
  %16764 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %16762, ptr noundef %16763)
  %16765 = icmp ne i32 %16764, 0
  br i1 %16765, label %16819, label %16766

16766:                                            ; preds = %16759
  br label %16767

16767:                                            ; preds = %16766
  br label %16768

16768:                                            ; preds = %16767
  call void @llvm.lifetime.start.p0(i64 4, ptr %365) #12
  %16769 = call ptr @__errno_location() #13
  %16770 = load i32, ptr %16769, align 4, !tbaa !5
  store i32 %16770, ptr %365, align 4, !tbaa !5
  %16771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16772 = call i32 @s2n_print_stacktrace(ptr noundef %16771)
  %16773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16774 = trunc i8 %16773 to i1
  br i1 %16774, label %16775, label %16797

16775:                                            ; preds = %16768
  %16776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16777 = call i32 @fileno(ptr noundef %16776) #12
  %16778 = call i32 @isatty(i32 noundef %16777) #12
  %16779 = icmp ne i32 %16778, 0
  br i1 %16779, label %16780, label %16797

16780:                                            ; preds = %16775
  %16781 = load i32, ptr %365, align 4, !tbaa !5
  %16782 = call ptr @__errno_location() #13
  store i32 %16781, ptr %16782, align 4, !tbaa !5
  %16783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16784 = load i32, ptr @test_count, align 4, !tbaa !5
  %16785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16786 = load i32, ptr %16785, align 4, !tbaa !5
  %16787 = call ptr @s2n_strerror(i32 noundef %16786, ptr noundef @.str.6)
  %16788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16789 = load i32, ptr %16788, align 4, !tbaa !5
  %16790 = call ptr @s2n_strerror_debug(i32 noundef %16789, ptr noundef @.str.6)
  %16791 = call ptr @__errno_location() #13
  %16792 = load i32, ptr %16791, align 4, !tbaa !5
  %16793 = call ptr @strerror(i32 noundef %16792) #12
  %16794 = call ptr @__errno_location() #13
  %16795 = load i32, ptr %16794, align 4, !tbaa !5
  %16796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16783, ptr noundef @.str.4, i32 noundef %16784, ptr noundef @.str.106, ptr noundef @.str.3, i32 noundef 680, ptr noundef %16787, ptr noundef %16790, ptr noundef %16793, i32 noundef %16795) #12
  br label %16814

16797:                                            ; preds = %16775, %16768
  %16798 = load i32, ptr %365, align 4, !tbaa !5
  %16799 = call ptr @__errno_location() #13
  store i32 %16798, ptr %16799, align 4, !tbaa !5
  %16800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16801 = load i32, ptr @test_count, align 4, !tbaa !5
  %16802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16803 = load i32, ptr %16802, align 4, !tbaa !5
  %16804 = call ptr @s2n_strerror(i32 noundef %16803, ptr noundef @.str.6)
  %16805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16806 = load i32, ptr %16805, align 4, !tbaa !5
  %16807 = call ptr @s2n_strerror_debug(i32 noundef %16806, ptr noundef @.str.6)
  %16808 = call ptr @__errno_location() #13
  %16809 = load i32, ptr %16808, align 4, !tbaa !5
  %16810 = call ptr @strerror(i32 noundef %16809) #12
  %16811 = call ptr @__errno_location() #13
  %16812 = load i32, ptr %16811, align 4, !tbaa !5
  %16813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16800, ptr noundef @.str.7, i32 noundef %16801, ptr noundef @.str.106, ptr noundef @.str.3, i32 noundef 680, ptr noundef %16804, ptr noundef %16807, ptr noundef %16810, i32 noundef %16812) #12
  br label %16814

16814:                                            ; preds = %16797, %16780
  call void @llvm.lifetime.end.p0(i64 4, ptr %365) #12
  br label %16815

16815:                                            ; preds = %16814
  br label %16816

16816:                                            ; preds = %16815
  call void @exit(i32 noundef 1) #14
  unreachable

16817:                                            ; No predecessors!
  br label %16818

16818:                                            ; preds = %16817
  br label %16819

16819:                                            ; preds = %16818, %16759
  br label %16820

16820:                                            ; preds = %16819
  br label %16821

16821:                                            ; preds = %16820
  call void @llvm.lifetime.start.p0(i64 8, ptr %366) #12
  store i64 0, ptr %366, align 8, !tbaa !65
  br label %16822

16822:                                            ; preds = %16890, %16821
  %16823 = load i64, ptr %366, align 8, !tbaa !65
  %16824 = icmp ult i64 %16823, 2
  br i1 %16824, label %16826, label %16825

16825:                                            ; preds = %16822
  store i32 1556, ptr %126, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %366) #12
  br label %16893

16826:                                            ; preds = %16822
  br label %16827

16827:                                            ; preds = %16826
  %16828 = load i32, ptr @test_count, align 4, !tbaa !5
  %16829 = add nsw i32 %16828, 1
  store i32 %16829, ptr @test_count, align 4, !tbaa !5
  %16830 = load i64, ptr %366, align 8, !tbaa !65
  %16831 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %351, i64 0, i64 %16830
  %16832 = call i32 @s2n_ecc_evp_params_free(ptr noundef %16831)
  %16833 = icmp eq i32 %16832, -1
  br i1 %16833, label %16834, label %16887

16834:                                            ; preds = %16827
  br label %16835

16835:                                            ; preds = %16834
  br label %16836

16836:                                            ; preds = %16835
  call void @llvm.lifetime.start.p0(i64 4, ptr %367) #12
  %16837 = call ptr @__errno_location() #13
  %16838 = load i32, ptr %16837, align 4, !tbaa !5
  store i32 %16838, ptr %367, align 4, !tbaa !5
  %16839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16840 = call i32 @s2n_print_stacktrace(ptr noundef %16839)
  %16841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16842 = trunc i8 %16841 to i1
  br i1 %16842, label %16843, label %16865

16843:                                            ; preds = %16836
  %16844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16845 = call i32 @fileno(ptr noundef %16844) #12
  %16846 = call i32 @isatty(i32 noundef %16845) #12
  %16847 = icmp ne i32 %16846, 0
  br i1 %16847, label %16848, label %16865

16848:                                            ; preds = %16843
  %16849 = load i32, ptr %367, align 4, !tbaa !5
  %16850 = call ptr @__errno_location() #13
  store i32 %16849, ptr %16850, align 4, !tbaa !5
  %16851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16852 = load i32, ptr @test_count, align 4, !tbaa !5
  %16853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16854 = load i32, ptr %16853, align 4, !tbaa !5
  %16855 = call ptr @s2n_strerror(i32 noundef %16854, ptr noundef @.str.6)
  %16856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16857 = load i32, ptr %16856, align 4, !tbaa !5
  %16858 = call ptr @s2n_strerror_debug(i32 noundef %16857, ptr noundef @.str.6)
  %16859 = call ptr @__errno_location() #13
  %16860 = load i32, ptr %16859, align 4, !tbaa !5
  %16861 = call ptr @strerror(i32 noundef %16860) #12
  %16862 = call ptr @__errno_location() #13
  %16863 = load i32, ptr %16862, align 4, !tbaa !5
  %16864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16851, ptr noundef @.str.4, i32 noundef %16852, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 683, ptr noundef %16855, ptr noundef %16858, ptr noundef %16861, i32 noundef %16863) #12
  br label %16882

16865:                                            ; preds = %16843, %16836
  %16866 = load i32, ptr %367, align 4, !tbaa !5
  %16867 = call ptr @__errno_location() #13
  store i32 %16866, ptr %16867, align 4, !tbaa !5
  %16868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16869 = load i32, ptr @test_count, align 4, !tbaa !5
  %16870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16871 = load i32, ptr %16870, align 4, !tbaa !5
  %16872 = call ptr @s2n_strerror(i32 noundef %16871, ptr noundef @.str.6)
  %16873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16874 = load i32, ptr %16873, align 4, !tbaa !5
  %16875 = call ptr @s2n_strerror_debug(i32 noundef %16874, ptr noundef @.str.6)
  %16876 = call ptr @__errno_location() #13
  %16877 = load i32, ptr %16876, align 4, !tbaa !5
  %16878 = call ptr @strerror(i32 noundef %16877) #12
  %16879 = call ptr @__errno_location() #13
  %16880 = load i32, ptr %16879, align 4, !tbaa !5
  %16881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16868, ptr noundef @.str.7, i32 noundef %16869, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 683, ptr noundef %16872, ptr noundef %16875, ptr noundef %16878, i32 noundef %16880) #12
  br label %16882

16882:                                            ; preds = %16865, %16848
  call void @llvm.lifetime.end.p0(i64 4, ptr %367) #12
  br label %16883

16883:                                            ; preds = %16882
  br label %16884

16884:                                            ; preds = %16883
  call void @exit(i32 noundef 1) #14
  unreachable

16885:                                            ; No predecessors!
  br label %16886

16886:                                            ; preds = %16885
  br label %16887

16887:                                            ; preds = %16886, %16827
  br label %16888

16888:                                            ; preds = %16887
  br label %16889

16889:                                            ; preds = %16888
  br label %16890

16890:                                            ; preds = %16889
  %16891 = load i64, ptr %366, align 8, !tbaa !65
  %16892 = add i64 %16891, 1
  store i64 %16892, ptr %366, align 8, !tbaa !65
  br label %16822, !llvm.loop !69

16893:                                            ; preds = %16825
  br label %16894

16894:                                            ; preds = %16893
  %16895 = load i32, ptr @test_count, align 4, !tbaa !5
  %16896 = add nsw i32 %16895, 1
  store i32 %16896, ptr @test_count, align 4, !tbaa !5
  %16897 = call i32 @s2n_stuffer_free(ptr noundef %352)
  %16898 = icmp eq i32 %16897, -1
  br i1 %16898, label %16899, label %16952

16899:                                            ; preds = %16894
  br label %16900

16900:                                            ; preds = %16899
  br label %16901

16901:                                            ; preds = %16900
  call void @llvm.lifetime.start.p0(i64 4, ptr %368) #12
  %16902 = call ptr @__errno_location() #13
  %16903 = load i32, ptr %16902, align 4, !tbaa !5
  store i32 %16903, ptr %368, align 4, !tbaa !5
  %16904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16905 = call i32 @s2n_print_stacktrace(ptr noundef %16904)
  %16906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16907 = trunc i8 %16906 to i1
  br i1 %16907, label %16908, label %16930

16908:                                            ; preds = %16901
  %16909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16910 = call i32 @fileno(ptr noundef %16909) #12
  %16911 = call i32 @isatty(i32 noundef %16910) #12
  %16912 = icmp ne i32 %16911, 0
  br i1 %16912, label %16913, label %16930

16913:                                            ; preds = %16908
  %16914 = load i32, ptr %368, align 4, !tbaa !5
  %16915 = call ptr @__errno_location() #13
  store i32 %16914, ptr %16915, align 4, !tbaa !5
  %16916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16917 = load i32, ptr @test_count, align 4, !tbaa !5
  %16918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16919 = load i32, ptr %16918, align 4, !tbaa !5
  %16920 = call ptr @s2n_strerror(i32 noundef %16919, ptr noundef @.str.6)
  %16921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16922 = load i32, ptr %16921, align 4, !tbaa !5
  %16923 = call ptr @s2n_strerror_debug(i32 noundef %16922, ptr noundef @.str.6)
  %16924 = call ptr @__errno_location() #13
  %16925 = load i32, ptr %16924, align 4, !tbaa !5
  %16926 = call ptr @strerror(i32 noundef %16925) #12
  %16927 = call ptr @__errno_location() #13
  %16928 = load i32, ptr %16927, align 4, !tbaa !5
  %16929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16916, ptr noundef @.str.4, i32 noundef %16917, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 685, ptr noundef %16920, ptr noundef %16923, ptr noundef %16926, i32 noundef %16928) #12
  br label %16947

16930:                                            ; preds = %16908, %16901
  %16931 = load i32, ptr %368, align 4, !tbaa !5
  %16932 = call ptr @__errno_location() #13
  store i32 %16931, ptr %16932, align 4, !tbaa !5
  %16933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16934 = load i32, ptr @test_count, align 4, !tbaa !5
  %16935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16936 = load i32, ptr %16935, align 4, !tbaa !5
  %16937 = call ptr @s2n_strerror(i32 noundef %16936, ptr noundef @.str.6)
  %16938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16939 = load i32, ptr %16938, align 4, !tbaa !5
  %16940 = call ptr @s2n_strerror_debug(i32 noundef %16939, ptr noundef @.str.6)
  %16941 = call ptr @__errno_location() #13
  %16942 = load i32, ptr %16941, align 4, !tbaa !5
  %16943 = call ptr @strerror(i32 noundef %16942) #12
  %16944 = call ptr @__errno_location() #13
  %16945 = load i32, ptr %16944, align 4, !tbaa !5
  %16946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16933, ptr noundef @.str.7, i32 noundef %16934, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 685, ptr noundef %16937, ptr noundef %16940, ptr noundef %16943, i32 noundef %16945) #12
  br label %16947

16947:                                            ; preds = %16930, %16913
  call void @llvm.lifetime.end.p0(i64 4, ptr %368) #12
  br label %16948

16948:                                            ; preds = %16947
  br label %16949

16949:                                            ; preds = %16948
  call void @exit(i32 noundef 1) #14
  unreachable

16950:                                            ; No predecessors!
  br label %16951

16951:                                            ; preds = %16950
  br label %16952

16952:                                            ; preds = %16951, %16894
  br label %16953

16953:                                            ; preds = %16952
  br label %16954

16954:                                            ; preds = %16953
  br label %16955

16955:                                            ; preds = %16954
  %16956 = load i32, ptr @test_count, align 4, !tbaa !5
  %16957 = add nsw i32 %16956, 1
  store i32 %16957, ptr @test_count, align 4, !tbaa !5
  %16958 = load ptr, ptr %343, align 8, !tbaa !9
  %16959 = call i32 @s2n_connection_free(ptr noundef %16958)
  %16960 = icmp eq i32 %16959, -1
  br i1 %16960, label %16961, label %17014

16961:                                            ; preds = %16955
  br label %16962

16962:                                            ; preds = %16961
  br label %16963

16963:                                            ; preds = %16962
  call void @llvm.lifetime.start.p0(i64 4, ptr %369) #12
  %16964 = call ptr @__errno_location() #13
  %16965 = load i32, ptr %16964, align 4, !tbaa !5
  store i32 %16965, ptr %369, align 4, !tbaa !5
  %16966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16967 = call i32 @s2n_print_stacktrace(ptr noundef %16966)
  %16968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16969 = trunc i8 %16968 to i1
  br i1 %16969, label %16970, label %16992

16970:                                            ; preds = %16963
  %16971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16972 = call i32 @fileno(ptr noundef %16971) #12
  %16973 = call i32 @isatty(i32 noundef %16972) #12
  %16974 = icmp ne i32 %16973, 0
  br i1 %16974, label %16975, label %16992

16975:                                            ; preds = %16970
  %16976 = load i32, ptr %369, align 4, !tbaa !5
  %16977 = call ptr @__errno_location() #13
  store i32 %16976, ptr %16977, align 4, !tbaa !5
  %16978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16979 = load i32, ptr @test_count, align 4, !tbaa !5
  %16980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16981 = load i32, ptr %16980, align 4, !tbaa !5
  %16982 = call ptr @s2n_strerror(i32 noundef %16981, ptr noundef @.str.6)
  %16983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16984 = load i32, ptr %16983, align 4, !tbaa !5
  %16985 = call ptr @s2n_strerror_debug(i32 noundef %16984, ptr noundef @.str.6)
  %16986 = call ptr @__errno_location() #13
  %16987 = load i32, ptr %16986, align 4, !tbaa !5
  %16988 = call ptr @strerror(i32 noundef %16987) #12
  %16989 = call ptr @__errno_location() #13
  %16990 = load i32, ptr %16989, align 4, !tbaa !5
  %16991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16978, ptr noundef @.str.4, i32 noundef %16979, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 686, ptr noundef %16982, ptr noundef %16985, ptr noundef %16988, i32 noundef %16990) #12
  br label %17009

16992:                                            ; preds = %16970, %16963
  %16993 = load i32, ptr %369, align 4, !tbaa !5
  %16994 = call ptr @__errno_location() #13
  store i32 %16993, ptr %16994, align 4, !tbaa !5
  %16995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16996 = load i32, ptr @test_count, align 4, !tbaa !5
  %16997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16998 = load i32, ptr %16997, align 4, !tbaa !5
  %16999 = call ptr @s2n_strerror(i32 noundef %16998, ptr noundef @.str.6)
  %17000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17001 = load i32, ptr %17000, align 4, !tbaa !5
  %17002 = call ptr @s2n_strerror_debug(i32 noundef %17001, ptr noundef @.str.6)
  %17003 = call ptr @__errno_location() #13
  %17004 = load i32, ptr %17003, align 4, !tbaa !5
  %17005 = call ptr @strerror(i32 noundef %17004) #12
  %17006 = call ptr @__errno_location() #13
  %17007 = load i32, ptr %17006, align 4, !tbaa !5
  %17008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16995, ptr noundef @.str.7, i32 noundef %16996, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 686, ptr noundef %16999, ptr noundef %17002, ptr noundef %17005, i32 noundef %17007) #12
  br label %17009

17009:                                            ; preds = %16992, %16975
  call void @llvm.lifetime.end.p0(i64 4, ptr %369) #12
  br label %17010

17010:                                            ; preds = %17009
  br label %17011

17011:                                            ; preds = %17010
  call void @exit(i32 noundef 1) #14
  unreachable

17012:                                            ; No predecessors!
  br label %17013

17013:                                            ; preds = %17012
  br label %17014

17014:                                            ; preds = %17013, %16955
  br label %17015

17015:                                            ; preds = %17014
  br label %17016

17016:                                            ; preds = %17015
  call void @llvm.lifetime.end.p0(i64 8, ptr %362) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %354) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %352) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %351) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %343) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %370) #12
  store ptr null, ptr %370, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %371) #12
  call void @llvm.memset.p0.i64(ptr align 8 %371, i8 0, i64 40, i1 false)
  br label %17017

17017:                                            ; preds = %17016
  %17018 = load i32, ptr @test_count, align 4, !tbaa !5
  %17019 = add nsw i32 %17018, 1
  store i32 %17019, ptr @test_count, align 4, !tbaa !5
  %17020 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %17020, ptr %370, align 8, !tbaa !9
  %17021 = icmp eq ptr %17020, null
  br i1 %17021, label %17022, label %17075

17022:                                            ; preds = %17017
  br label %17023

17023:                                            ; preds = %17022
  br label %17024

17024:                                            ; preds = %17023
  call void @llvm.lifetime.start.p0(i64 4, ptr %372) #12
  %17025 = call ptr @__errno_location() #13
  %17026 = load i32, ptr %17025, align 4, !tbaa !5
  store i32 %17026, ptr %372, align 4, !tbaa !5
  %17027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17028 = call i32 @s2n_print_stacktrace(ptr noundef %17027)
  %17029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17030 = trunc i8 %17029 to i1
  br i1 %17030, label %17031, label %17053

17031:                                            ; preds = %17024
  %17032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17033 = call i32 @fileno(ptr noundef %17032) #12
  %17034 = call i32 @isatty(i32 noundef %17033) #12
  %17035 = icmp ne i32 %17034, 0
  br i1 %17035, label %17036, label %17053

17036:                                            ; preds = %17031
  %17037 = load i32, ptr %372, align 4, !tbaa !5
  %17038 = call ptr @__errno_location() #13
  store i32 %17037, ptr %17038, align 4, !tbaa !5
  %17039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17040 = load i32, ptr @test_count, align 4, !tbaa !5
  %17041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17042 = load i32, ptr %17041, align 4, !tbaa !5
  %17043 = call ptr @s2n_strerror(i32 noundef %17042, ptr noundef @.str.6)
  %17044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17045 = load i32, ptr %17044, align 4, !tbaa !5
  %17046 = call ptr @s2n_strerror_debug(i32 noundef %17045, ptr noundef @.str.6)
  %17047 = call ptr @__errno_location() #13
  %17048 = load i32, ptr %17047, align 4, !tbaa !5
  %17049 = call ptr @strerror(i32 noundef %17048) #12
  %17050 = call ptr @__errno_location() #13
  %17051 = load i32, ptr %17050, align 4, !tbaa !5
  %17052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17039, ptr noundef @.str.4, i32 noundef %17040, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 694, ptr noundef %17043, ptr noundef %17046, ptr noundef %17049, i32 noundef %17051) #12
  br label %17070

17053:                                            ; preds = %17031, %17024
  %17054 = load i32, ptr %372, align 4, !tbaa !5
  %17055 = call ptr @__errno_location() #13
  store i32 %17054, ptr %17055, align 4, !tbaa !5
  %17056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17057 = load i32, ptr @test_count, align 4, !tbaa !5
  %17058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17059 = load i32, ptr %17058, align 4, !tbaa !5
  %17060 = call ptr @s2n_strerror(i32 noundef %17059, ptr noundef @.str.6)
  %17061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17062 = load i32, ptr %17061, align 4, !tbaa !5
  %17063 = call ptr @s2n_strerror_debug(i32 noundef %17062, ptr noundef @.str.6)
  %17064 = call ptr @__errno_location() #13
  %17065 = load i32, ptr %17064, align 4, !tbaa !5
  %17066 = call ptr @strerror(i32 noundef %17065) #12
  %17067 = call ptr @__errno_location() #13
  %17068 = load i32, ptr %17067, align 4, !tbaa !5
  %17069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17056, ptr noundef @.str.7, i32 noundef %17057, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 694, ptr noundef %17060, ptr noundef %17063, ptr noundef %17066, i32 noundef %17068) #12
  br label %17070

17070:                                            ; preds = %17053, %17036
  call void @llvm.lifetime.end.p0(i64 4, ptr %372) #12
  br label %17071

17071:                                            ; preds = %17070
  br label %17072

17072:                                            ; preds = %17071
  call void @exit(i32 noundef 1) #14
  unreachable

17073:                                            ; No predecessors!
  br label %17074

17074:                                            ; preds = %17073
  br label %17075

17075:                                            ; preds = %17074, %17017
  br label %17076

17076:                                            ; preds = %17075
  br label %17077

17077:                                            ; preds = %17076
  %17078 = load ptr, ptr %370, align 8, !tbaa !9
  %17079 = getelementptr inbounds %struct.s2n_connection, ptr %17078, i32 0, i32 23
  store i8 34, ptr %17079, align 4, !tbaa !63
  br label %17080

17080:                                            ; preds = %17077
  %17081 = load i32, ptr @test_count, align 4, !tbaa !5
  %17082 = add nsw i32 %17081, 1
  store i32 %17082, ptr @test_count, align 4, !tbaa !5
  %17083 = load ptr, ptr %370, align 8, !tbaa !9
  %17084 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %17083)
  %17085 = getelementptr inbounds %struct.s2n_result, ptr %373, i32 0, i32 0
  store i32 %17084, ptr %17085, align 4
  %17086 = getelementptr inbounds %struct.s2n_result, ptr %373, i32 0, i32 0
  %17087 = load i32, ptr %17086, align 4
  %17088 = call zeroext i1 @s2n_result_is_ok(i32 %17087)
  br i1 %17088, label %17142, label %17089

17089:                                            ; preds = %17080
  br label %17090

17090:                                            ; preds = %17089
  br label %17091

17091:                                            ; preds = %17090
  call void @llvm.lifetime.start.p0(i64 4, ptr %374) #12
  %17092 = call ptr @__errno_location() #13
  %17093 = load i32, ptr %17092, align 4, !tbaa !5
  store i32 %17093, ptr %374, align 4, !tbaa !5
  %17094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17095 = call i32 @s2n_print_stacktrace(ptr noundef %17094)
  %17096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17097 = trunc i8 %17096 to i1
  br i1 %17097, label %17098, label %17120

17098:                                            ; preds = %17091
  %17099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17100 = call i32 @fileno(ptr noundef %17099) #12
  %17101 = call i32 @isatty(i32 noundef %17100) #12
  %17102 = icmp ne i32 %17101, 0
  br i1 %17102, label %17103, label %17120

17103:                                            ; preds = %17098
  %17104 = load i32, ptr %374, align 4, !tbaa !5
  %17105 = call ptr @__errno_location() #13
  store i32 %17104, ptr %17105, align 4, !tbaa !5
  %17106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17107 = load i32, ptr @test_count, align 4, !tbaa !5
  %17108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17109 = load i32, ptr %17108, align 4, !tbaa !5
  %17110 = call ptr @s2n_strerror(i32 noundef %17109, ptr noundef @.str.6)
  %17111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17112 = load i32, ptr %17111, align 4, !tbaa !5
  %17113 = call ptr @s2n_strerror_debug(i32 noundef %17112, ptr noundef @.str.6)
  %17114 = call ptr @__errno_location() #13
  %17115 = load i32, ptr %17114, align 4, !tbaa !5
  %17116 = call ptr @strerror(i32 noundef %17115) #12
  %17117 = call ptr @__errno_location() #13
  %17118 = load i32, ptr %17117, align 4, !tbaa !5
  %17119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17106, ptr noundef @.str.4, i32 noundef %17107, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 696, ptr noundef %17110, ptr noundef %17113, ptr noundef %17116, i32 noundef %17118) #12
  br label %17137

17120:                                            ; preds = %17098, %17091
  %17121 = load i32, ptr %374, align 4, !tbaa !5
  %17122 = call ptr @__errno_location() #13
  store i32 %17121, ptr %17122, align 4, !tbaa !5
  %17123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17124 = load i32, ptr @test_count, align 4, !tbaa !5
  %17125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17126 = load i32, ptr %17125, align 4, !tbaa !5
  %17127 = call ptr @s2n_strerror(i32 noundef %17126, ptr noundef @.str.6)
  %17128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17129 = load i32, ptr %17128, align 4, !tbaa !5
  %17130 = call ptr @s2n_strerror_debug(i32 noundef %17129, ptr noundef @.str.6)
  %17131 = call ptr @__errno_location() #13
  %17132 = load i32, ptr %17131, align 4, !tbaa !5
  %17133 = call ptr @strerror(i32 noundef %17132) #12
  %17134 = call ptr @__errno_location() #13
  %17135 = load i32, ptr %17134, align 4, !tbaa !5
  %17136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17123, ptr noundef @.str.7, i32 noundef %17124, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 696, ptr noundef %17127, ptr noundef %17130, ptr noundef %17133, i32 noundef %17135) #12
  br label %17137

17137:                                            ; preds = %17120, %17103
  call void @llvm.lifetime.end.p0(i64 4, ptr %374) #12
  br label %17138

17138:                                            ; preds = %17137
  br label %17139

17139:                                            ; preds = %17138
  call void @exit(i32 noundef 1) #14
  unreachable

17140:                                            ; No predecessors!
  br label %17141

17141:                                            ; preds = %17140
  br label %17142

17142:                                            ; preds = %17141, %17080
  br label %17143

17143:                                            ; preds = %17142
  br label %17144

17144:                                            ; preds = %17143
  br label %17145

17145:                                            ; preds = %17144
  %17146 = load i32, ptr @test_count, align 4, !tbaa !5
  %17147 = add nsw i32 %17146, 1
  store i32 %17147, ptr @test_count, align 4, !tbaa !5
  %17148 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %371, i32 noundef 0)
  %17149 = icmp eq i32 %17148, -1
  br i1 %17149, label %17150, label %17203

17150:                                            ; preds = %17145
  br label %17151

17151:                                            ; preds = %17150
  br label %17152

17152:                                            ; preds = %17151
  call void @llvm.lifetime.start.p0(i64 4, ptr %375) #12
  %17153 = call ptr @__errno_location() #13
  %17154 = load i32, ptr %17153, align 4, !tbaa !5
  store i32 %17154, ptr %375, align 4, !tbaa !5
  %17155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17156 = call i32 @s2n_print_stacktrace(ptr noundef %17155)
  %17157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17158 = trunc i8 %17157 to i1
  br i1 %17158, label %17159, label %17181

17159:                                            ; preds = %17152
  %17160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17161 = call i32 @fileno(ptr noundef %17160) #12
  %17162 = call i32 @isatty(i32 noundef %17161) #12
  %17163 = icmp ne i32 %17162, 0
  br i1 %17163, label %17164, label %17181

17164:                                            ; preds = %17159
  %17165 = load i32, ptr %375, align 4, !tbaa !5
  %17166 = call ptr @__errno_location() #13
  store i32 %17165, ptr %17166, align 4, !tbaa !5
  %17167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17168 = load i32, ptr @test_count, align 4, !tbaa !5
  %17169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17170 = load i32, ptr %17169, align 4, !tbaa !5
  %17171 = call ptr @s2n_strerror(i32 noundef %17170, ptr noundef @.str.6)
  %17172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17173 = load i32, ptr %17172, align 4, !tbaa !5
  %17174 = call ptr @s2n_strerror_debug(i32 noundef %17173, ptr noundef @.str.6)
  %17175 = call ptr @__errno_location() #13
  %17176 = load i32, ptr %17175, align 4, !tbaa !5
  %17177 = call ptr @strerror(i32 noundef %17176) #12
  %17178 = call ptr @__errno_location() #13
  %17179 = load i32, ptr %17178, align 4, !tbaa !5
  %17180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17167, ptr noundef @.str.4, i32 noundef %17168, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 697, ptr noundef %17171, ptr noundef %17174, ptr noundef %17177, i32 noundef %17179) #12
  br label %17198

17181:                                            ; preds = %17159, %17152
  %17182 = load i32, ptr %375, align 4, !tbaa !5
  %17183 = call ptr @__errno_location() #13
  store i32 %17182, ptr %17183, align 4, !tbaa !5
  %17184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17185 = load i32, ptr @test_count, align 4, !tbaa !5
  %17186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17187 = load i32, ptr %17186, align 4, !tbaa !5
  %17188 = call ptr @s2n_strerror(i32 noundef %17187, ptr noundef @.str.6)
  %17189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17190 = load i32, ptr %17189, align 4, !tbaa !5
  %17191 = call ptr @s2n_strerror_debug(i32 noundef %17190, ptr noundef @.str.6)
  %17192 = call ptr @__errno_location() #13
  %17193 = load i32, ptr %17192, align 4, !tbaa !5
  %17194 = call ptr @strerror(i32 noundef %17193) #12
  %17195 = call ptr @__errno_location() #13
  %17196 = load i32, ptr %17195, align 4, !tbaa !5
  %17197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17184, ptr noundef @.str.7, i32 noundef %17185, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 697, ptr noundef %17188, ptr noundef %17191, ptr noundef %17194, i32 noundef %17196) #12
  br label %17198

17198:                                            ; preds = %17181, %17164
  call void @llvm.lifetime.end.p0(i64 4, ptr %375) #12
  br label %17199

17199:                                            ; preds = %17198
  br label %17200

17200:                                            ; preds = %17199
  call void @exit(i32 noundef 1) #14
  unreachable

17201:                                            ; No predecessors!
  br label %17202

17202:                                            ; preds = %17201
  br label %17203

17203:                                            ; preds = %17202, %17145
  br label %17204

17204:                                            ; preds = %17203
  br label %17205

17205:                                            ; preds = %17204
  call void @llvm.lifetime.start.p0(i64 8, ptr %376) #12
  store ptr null, ptr %376, align 8, !tbaa !9
  br label %17206

17206:                                            ; preds = %17205
  %17207 = load i32, ptr @test_count, align 4, !tbaa !5
  %17208 = add nsw i32 %17207, 1
  store i32 %17208, ptr @test_count, align 4, !tbaa !5
  %17209 = load ptr, ptr %370, align 8, !tbaa !9
  %17210 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %17209, ptr noundef %376)
  %17211 = icmp eq i32 %17210, -1
  br i1 %17211, label %17212, label %17265

17212:                                            ; preds = %17206
  br label %17213

17213:                                            ; preds = %17212
  br label %17214

17214:                                            ; preds = %17213
  call void @llvm.lifetime.start.p0(i64 4, ptr %377) #12
  %17215 = call ptr @__errno_location() #13
  %17216 = load i32, ptr %17215, align 4, !tbaa !5
  store i32 %17216, ptr %377, align 4, !tbaa !5
  %17217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17218 = call i32 @s2n_print_stacktrace(ptr noundef %17217)
  %17219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17220 = trunc i8 %17219 to i1
  br i1 %17220, label %17221, label %17243

17221:                                            ; preds = %17214
  %17222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17223 = call i32 @fileno(ptr noundef %17222) #12
  %17224 = call i32 @isatty(i32 noundef %17223) #12
  %17225 = icmp ne i32 %17224, 0
  br i1 %17225, label %17226, label %17243

17226:                                            ; preds = %17221
  %17227 = load i32, ptr %377, align 4, !tbaa !5
  %17228 = call ptr @__errno_location() #13
  store i32 %17227, ptr %17228, align 4, !tbaa !5
  %17229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17230 = load i32, ptr @test_count, align 4, !tbaa !5
  %17231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17232 = load i32, ptr %17231, align 4, !tbaa !5
  %17233 = call ptr @s2n_strerror(i32 noundef %17232, ptr noundef @.str.6)
  %17234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17235 = load i32, ptr %17234, align 4, !tbaa !5
  %17236 = call ptr @s2n_strerror_debug(i32 noundef %17235, ptr noundef @.str.6)
  %17237 = call ptr @__errno_location() #13
  %17238 = load i32, ptr %17237, align 4, !tbaa !5
  %17239 = call ptr @strerror(i32 noundef %17238) #12
  %17240 = call ptr @__errno_location() #13
  %17241 = load i32, ptr %17240, align 4, !tbaa !5
  %17242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17229, ptr noundef @.str.4, i32 noundef %17230, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 700, ptr noundef %17233, ptr noundef %17236, ptr noundef %17239, i32 noundef %17241) #12
  br label %17260

17243:                                            ; preds = %17221, %17214
  %17244 = load i32, ptr %377, align 4, !tbaa !5
  %17245 = call ptr @__errno_location() #13
  store i32 %17244, ptr %17245, align 4, !tbaa !5
  %17246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17247 = load i32, ptr @test_count, align 4, !tbaa !5
  %17248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17249 = load i32, ptr %17248, align 4, !tbaa !5
  %17250 = call ptr @s2n_strerror(i32 noundef %17249, ptr noundef @.str.6)
  %17251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17252 = load i32, ptr %17251, align 4, !tbaa !5
  %17253 = call ptr @s2n_strerror_debug(i32 noundef %17252, ptr noundef @.str.6)
  %17254 = call ptr @__errno_location() #13
  %17255 = load i32, ptr %17254, align 4, !tbaa !5
  %17256 = call ptr @strerror(i32 noundef %17255) #12
  %17257 = call ptr @__errno_location() #13
  %17258 = load i32, ptr %17257, align 4, !tbaa !5
  %17259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17246, ptr noundef @.str.7, i32 noundef %17247, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 700, ptr noundef %17250, ptr noundef %17253, ptr noundef %17256, i32 noundef %17258) #12
  br label %17260

17260:                                            ; preds = %17243, %17226
  call void @llvm.lifetime.end.p0(i64 4, ptr %377) #12
  br label %17261

17261:                                            ; preds = %17260
  br label %17262

17262:                                            ; preds = %17261
  call void @exit(i32 noundef 1) #14
  unreachable

17263:                                            ; No predecessors!
  br label %17264

17264:                                            ; preds = %17263
  br label %17265

17265:                                            ; preds = %17264, %17206
  br label %17266

17266:                                            ; preds = %17265
  br label %17267

17267:                                            ; preds = %17266
  br label %17268

17268:                                            ; preds = %17267
  %17269 = load i32, ptr @test_count, align 4, !tbaa !5
  %17270 = add nsw i32 %17269, 1
  store i32 %17270, ptr @test_count, align 4, !tbaa !5
  %17271 = load ptr, ptr %376, align 8, !tbaa !9
  %17272 = icmp eq ptr %17271, null
  br i1 %17272, label %17273, label %17326

17273:                                            ; preds = %17268
  br label %17274

17274:                                            ; preds = %17273
  br label %17275

17275:                                            ; preds = %17274
  call void @llvm.lifetime.start.p0(i64 4, ptr %378) #12
  %17276 = call ptr @__errno_location() #13
  %17277 = load i32, ptr %17276, align 4, !tbaa !5
  store i32 %17277, ptr %378, align 4, !tbaa !5
  %17278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17279 = call i32 @s2n_print_stacktrace(ptr noundef %17278)
  %17280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17281 = trunc i8 %17280 to i1
  br i1 %17281, label %17282, label %17304

17282:                                            ; preds = %17275
  %17283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17284 = call i32 @fileno(ptr noundef %17283) #12
  %17285 = call i32 @isatty(i32 noundef %17284) #12
  %17286 = icmp ne i32 %17285, 0
  br i1 %17286, label %17287, label %17304

17287:                                            ; preds = %17282
  %17288 = load i32, ptr %378, align 4, !tbaa !5
  %17289 = call ptr @__errno_location() #13
  store i32 %17288, ptr %17289, align 4, !tbaa !5
  %17290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17291 = load i32, ptr @test_count, align 4, !tbaa !5
  %17292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17293 = load i32, ptr %17292, align 4, !tbaa !5
  %17294 = call ptr @s2n_strerror(i32 noundef %17293, ptr noundef @.str.6)
  %17295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17296 = load i32, ptr %17295, align 4, !tbaa !5
  %17297 = call ptr @s2n_strerror_debug(i32 noundef %17296, ptr noundef @.str.6)
  %17298 = call ptr @__errno_location() #13
  %17299 = load i32, ptr %17298, align 4, !tbaa !5
  %17300 = call ptr @strerror(i32 noundef %17299) #12
  %17301 = call ptr @__errno_location() #13
  %17302 = load i32, ptr %17301, align 4, !tbaa !5
  %17303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17290, ptr noundef @.str.4, i32 noundef %17291, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 701, ptr noundef %17294, ptr noundef %17297, ptr noundef %17300, i32 noundef %17302) #12
  br label %17321

17304:                                            ; preds = %17282, %17275
  %17305 = load i32, ptr %378, align 4, !tbaa !5
  %17306 = call ptr @__errno_location() #13
  store i32 %17305, ptr %17306, align 4, !tbaa !5
  %17307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17308 = load i32, ptr @test_count, align 4, !tbaa !5
  %17309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17310 = load i32, ptr %17309, align 4, !tbaa !5
  %17311 = call ptr @s2n_strerror(i32 noundef %17310, ptr noundef @.str.6)
  %17312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17313 = load i32, ptr %17312, align 4, !tbaa !5
  %17314 = call ptr @s2n_strerror_debug(i32 noundef %17313, ptr noundef @.str.6)
  %17315 = call ptr @__errno_location() #13
  %17316 = load i32, ptr %17315, align 4, !tbaa !5
  %17317 = call ptr @strerror(i32 noundef %17316) #12
  %17318 = call ptr @__errno_location() #13
  %17319 = load i32, ptr %17318, align 4, !tbaa !5
  %17320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17307, ptr noundef @.str.7, i32 noundef %17308, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 701, ptr noundef %17311, ptr noundef %17314, ptr noundef %17317, i32 noundef %17319) #12
  br label %17321

17321:                                            ; preds = %17304, %17287
  call void @llvm.lifetime.end.p0(i64 4, ptr %378) #12
  br label %17322

17322:                                            ; preds = %17321
  br label %17323

17323:                                            ; preds = %17322
  call void @exit(i32 noundef 1) #14
  unreachable

17324:                                            ; No predecessors!
  br label %17325

17325:                                            ; preds = %17324
  br label %17326

17326:                                            ; preds = %17325, %17268
  br label %17327

17327:                                            ; preds = %17326
  br label %17328

17328:                                            ; preds = %17327
  br label %17329

17329:                                            ; preds = %17328
  %17330 = load i32, ptr @test_count, align 4, !tbaa !5
  %17331 = add nsw i32 %17330, 1
  store i32 %17331, ptr @test_count, align 4, !tbaa !5
  %17332 = load ptr, ptr %376, align 8, !tbaa !9
  %17333 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %17332, i32 0, i32 1
  %17334 = load ptr, ptr %17333, align 8, !tbaa !24
  %17335 = getelementptr inbounds ptr, ptr %17334, i64 0
  %17336 = load ptr, ptr %17335, align 8, !tbaa !9
  %17337 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %17336, i32 0, i32 3
  %17338 = load i8, ptr %17337, align 8, !tbaa !30
  %17339 = zext i8 %17338 to i32
  %17340 = mul nsw i32 %17339, 10
  %17341 = trunc i32 %17340 to i16
  %17342 = call i32 @s2n_stuffer_write_uint16(ptr noundef %371, i16 noundef zeroext %17341)
  %17343 = icmp eq i32 %17342, -1
  br i1 %17343, label %17344, label %17397

17344:                                            ; preds = %17329
  br label %17345

17345:                                            ; preds = %17344
  br label %17346

17346:                                            ; preds = %17345
  call void @llvm.lifetime.start.p0(i64 4, ptr %379) #12
  %17347 = call ptr @__errno_location() #13
  %17348 = load i32, ptr %17347, align 4, !tbaa !5
  store i32 %17348, ptr %379, align 4, !tbaa !5
  %17349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17350 = call i32 @s2n_print_stacktrace(ptr noundef %17349)
  %17351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17352 = trunc i8 %17351 to i1
  br i1 %17352, label %17353, label %17375

17353:                                            ; preds = %17346
  %17354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17355 = call i32 @fileno(ptr noundef %17354) #12
  %17356 = call i32 @isatty(i32 noundef %17355) #12
  %17357 = icmp ne i32 %17356, 0
  br i1 %17357, label %17358, label %17375

17358:                                            ; preds = %17353
  %17359 = load i32, ptr %379, align 4, !tbaa !5
  %17360 = call ptr @__errno_location() #13
  store i32 %17359, ptr %17360, align 4, !tbaa !5
  %17361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17362 = load i32, ptr @test_count, align 4, !tbaa !5
  %17363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17364 = load i32, ptr %17363, align 4, !tbaa !5
  %17365 = call ptr @s2n_strerror(i32 noundef %17364, ptr noundef @.str.6)
  %17366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17367 = load i32, ptr %17366, align 4, !tbaa !5
  %17368 = call ptr @s2n_strerror_debug(i32 noundef %17367, ptr noundef @.str.6)
  %17369 = call ptr @__errno_location() #13
  %17370 = load i32, ptr %17369, align 4, !tbaa !5
  %17371 = call ptr @strerror(i32 noundef %17370) #12
  %17372 = call ptr @__errno_location() #13
  %17373 = load i32, ptr %17372, align 4, !tbaa !5
  %17374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17361, ptr noundef @.str.4, i32 noundef %17362, ptr noundef @.str.110, ptr noundef @.str.3, i32 noundef 703, ptr noundef %17365, ptr noundef %17368, ptr noundef %17371, i32 noundef %17373) #12
  br label %17392

17375:                                            ; preds = %17353, %17346
  %17376 = load i32, ptr %379, align 4, !tbaa !5
  %17377 = call ptr @__errno_location() #13
  store i32 %17376, ptr %17377, align 4, !tbaa !5
  %17378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17379 = load i32, ptr @test_count, align 4, !tbaa !5
  %17380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17381 = load i32, ptr %17380, align 4, !tbaa !5
  %17382 = call ptr @s2n_strerror(i32 noundef %17381, ptr noundef @.str.6)
  %17383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17384 = load i32, ptr %17383, align 4, !tbaa !5
  %17385 = call ptr @s2n_strerror_debug(i32 noundef %17384, ptr noundef @.str.6)
  %17386 = call ptr @__errno_location() #13
  %17387 = load i32, ptr %17386, align 4, !tbaa !5
  %17388 = call ptr @strerror(i32 noundef %17387) #12
  %17389 = call ptr @__errno_location() #13
  %17390 = load i32, ptr %17389, align 4, !tbaa !5
  %17391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17378, ptr noundef @.str.7, i32 noundef %17379, ptr noundef @.str.110, ptr noundef @.str.3, i32 noundef 703, ptr noundef %17382, ptr noundef %17385, ptr noundef %17388, i32 noundef %17390) #12
  br label %17392

17392:                                            ; preds = %17375, %17358
  call void @llvm.lifetime.end.p0(i64 4, ptr %379) #12
  br label %17393

17393:                                            ; preds = %17392
  br label %17394

17394:                                            ; preds = %17393
  call void @exit(i32 noundef 1) #14
  unreachable

17395:                                            ; No predecessors!
  br label %17396

17396:                                            ; preds = %17395
  br label %17397

17397:                                            ; preds = %17396, %17329
  br label %17398

17398:                                            ; preds = %17397
  br label %17399

17399:                                            ; preds = %17398
  br label %17400

17400:                                            ; preds = %17399
  %17401 = load i32, ptr @test_count, align 4, !tbaa !5
  %17402 = add nsw i32 %17401, 1
  store i32 %17402, ptr @test_count, align 4, !tbaa !5
  %17403 = load ptr, ptr %376, align 8, !tbaa !9
  %17404 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %17403, i32 0, i32 1
  %17405 = load ptr, ptr %17404, align 8, !tbaa !24
  %17406 = getelementptr inbounds ptr, ptr %17405, i64 0
  %17407 = load ptr, ptr %17406, align 8, !tbaa !9
  %17408 = call i32 @s2n_write_named_curve(ptr noundef %371, ptr noundef %17407)
  %17409 = icmp eq i32 %17408, -1
  br i1 %17409, label %17410, label %17463

17410:                                            ; preds = %17400
  br label %17411

17411:                                            ; preds = %17410
  br label %17412

17412:                                            ; preds = %17411
  call void @llvm.lifetime.start.p0(i64 4, ptr %380) #12
  %17413 = call ptr @__errno_location() #13
  %17414 = load i32, ptr %17413, align 4, !tbaa !5
  store i32 %17414, ptr %380, align 4, !tbaa !5
  %17415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17416 = call i32 @s2n_print_stacktrace(ptr noundef %17415)
  %17417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17418 = trunc i8 %17417 to i1
  br i1 %17418, label %17419, label %17441

17419:                                            ; preds = %17412
  %17420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17421 = call i32 @fileno(ptr noundef %17420) #12
  %17422 = call i32 @isatty(i32 noundef %17421) #12
  %17423 = icmp ne i32 %17422, 0
  br i1 %17423, label %17424, label %17441

17424:                                            ; preds = %17419
  %17425 = load i32, ptr %380, align 4, !tbaa !5
  %17426 = call ptr @__errno_location() #13
  store i32 %17425, ptr %17426, align 4, !tbaa !5
  %17427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17428 = load i32, ptr @test_count, align 4, !tbaa !5
  %17429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17430 = load i32, ptr %17429, align 4, !tbaa !5
  %17431 = call ptr @s2n_strerror(i32 noundef %17430, ptr noundef @.str.6)
  %17432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17433 = load i32, ptr %17432, align 4, !tbaa !5
  %17434 = call ptr @s2n_strerror_debug(i32 noundef %17433, ptr noundef @.str.6)
  %17435 = call ptr @__errno_location() #13
  %17436 = load i32, ptr %17435, align 4, !tbaa !5
  %17437 = call ptr @strerror(i32 noundef %17436) #12
  %17438 = call ptr @__errno_location() #13
  %17439 = load i32, ptr %17438, align 4, !tbaa !5
  %17440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17427, ptr noundef @.str.4, i32 noundef %17428, ptr noundef @.str.111, ptr noundef @.str.3, i32 noundef 704, ptr noundef %17431, ptr noundef %17434, ptr noundef %17437, i32 noundef %17439) #12
  br label %17458

17441:                                            ; preds = %17419, %17412
  %17442 = load i32, ptr %380, align 4, !tbaa !5
  %17443 = call ptr @__errno_location() #13
  store i32 %17442, ptr %17443, align 4, !tbaa !5
  %17444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17445 = load i32, ptr @test_count, align 4, !tbaa !5
  %17446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17447 = load i32, ptr %17446, align 4, !tbaa !5
  %17448 = call ptr @s2n_strerror(i32 noundef %17447, ptr noundef @.str.6)
  %17449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17450 = load i32, ptr %17449, align 4, !tbaa !5
  %17451 = call ptr @s2n_strerror_debug(i32 noundef %17450, ptr noundef @.str.6)
  %17452 = call ptr @__errno_location() #13
  %17453 = load i32, ptr %17452, align 4, !tbaa !5
  %17454 = call ptr @strerror(i32 noundef %17453) #12
  %17455 = call ptr @__errno_location() #13
  %17456 = load i32, ptr %17455, align 4, !tbaa !5
  %17457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17444, ptr noundef @.str.7, i32 noundef %17445, ptr noundef @.str.111, ptr noundef @.str.3, i32 noundef 704, ptr noundef %17448, ptr noundef %17451, ptr noundef %17454, i32 noundef %17456) #12
  br label %17458

17458:                                            ; preds = %17441, %17424
  call void @llvm.lifetime.end.p0(i64 4, ptr %380) #12
  br label %17459

17459:                                            ; preds = %17458
  br label %17460

17460:                                            ; preds = %17459
  call void @exit(i32 noundef 1) #14
  unreachable

17461:                                            ; No predecessors!
  br label %17462

17462:                                            ; preds = %17461
  br label %17463

17463:                                            ; preds = %17462, %17400
  br label %17464

17464:                                            ; preds = %17463
  br label %17465

17465:                                            ; preds = %17464
  br label %17466

17466:                                            ; preds = %17465
  br label %17467

17467:                                            ; preds = %17466
  %17468 = load i32, ptr @test_count, align 4, !tbaa !5
  %17469 = add nsw i32 %17468, 1
  store i32 %17469, ptr @test_count, align 4, !tbaa !5
  %17470 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %17471 = load ptr, ptr %370, align 8, !tbaa !9
  %17472 = call i32 %17470(ptr noundef %17471, ptr noundef %371)
  %17473 = icmp eq i32 %17472, -1
  br i1 %17473, label %17527, label %17474

17474:                                            ; preds = %17467
  br label %17475

17475:                                            ; preds = %17474
  br label %17476

17476:                                            ; preds = %17475
  call void @llvm.lifetime.start.p0(i64 4, ptr %381) #12
  %17477 = call ptr @__errno_location() #13
  %17478 = load i32, ptr %17477, align 4, !tbaa !5
  store i32 %17478, ptr %381, align 4, !tbaa !5
  %17479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17480 = call i32 @s2n_print_stacktrace(ptr noundef %17479)
  %17481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17482 = trunc i8 %17481 to i1
  br i1 %17482, label %17483, label %17505

17483:                                            ; preds = %17476
  %17484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17485 = call i32 @fileno(ptr noundef %17484) #12
  %17486 = call i32 @isatty(i32 noundef %17485) #12
  %17487 = icmp ne i32 %17486, 0
  br i1 %17487, label %17488, label %17505

17488:                                            ; preds = %17483
  %17489 = load i32, ptr %381, align 4, !tbaa !5
  %17490 = call ptr @__errno_location() #13
  store i32 %17489, ptr %17490, align 4, !tbaa !5
  %17491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17492 = load i32, ptr @test_count, align 4, !tbaa !5
  %17493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17494 = load i32, ptr %17493, align 4, !tbaa !5
  %17495 = call ptr @s2n_strerror(i32 noundef %17494, ptr noundef @.str.6)
  %17496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17497 = load i32, ptr %17496, align 4, !tbaa !5
  %17498 = call ptr @s2n_strerror_debug(i32 noundef %17497, ptr noundef @.str.6)
  %17499 = call ptr @__errno_location() #13
  %17500 = load i32, ptr %17499, align 4, !tbaa !5
  %17501 = call ptr @strerror(i32 noundef %17500) #12
  %17502 = call ptr @__errno_location() #13
  %17503 = load i32, ptr %17502, align 4, !tbaa !5
  %17504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17491, ptr noundef @.str.4, i32 noundef %17492, ptr noundef @.str.112, ptr noundef @.str.3, i32 noundef 706, ptr noundef %17495, ptr noundef %17498, ptr noundef %17501, i32 noundef %17503) #12
  br label %17522

17505:                                            ; preds = %17483, %17476
  %17506 = load i32, ptr %381, align 4, !tbaa !5
  %17507 = call ptr @__errno_location() #13
  store i32 %17506, ptr %17507, align 4, !tbaa !5
  %17508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17509 = load i32, ptr @test_count, align 4, !tbaa !5
  %17510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17511 = load i32, ptr %17510, align 4, !tbaa !5
  %17512 = call ptr @s2n_strerror(i32 noundef %17511, ptr noundef @.str.6)
  %17513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17514 = load i32, ptr %17513, align 4, !tbaa !5
  %17515 = call ptr @s2n_strerror_debug(i32 noundef %17514, ptr noundef @.str.6)
  %17516 = call ptr @__errno_location() #13
  %17517 = load i32, ptr %17516, align 4, !tbaa !5
  %17518 = call ptr @strerror(i32 noundef %17517) #12
  %17519 = call ptr @__errno_location() #13
  %17520 = load i32, ptr %17519, align 4, !tbaa !5
  %17521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17508, ptr noundef @.str.7, i32 noundef %17509, ptr noundef @.str.112, ptr noundef @.str.3, i32 noundef 706, ptr noundef %17512, ptr noundef %17515, ptr noundef %17518, i32 noundef %17520) #12
  br label %17522

17522:                                            ; preds = %17505, %17488
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #12
  br label %17523

17523:                                            ; preds = %17522
  br label %17524

17524:                                            ; preds = %17523
  call void @exit(i32 noundef 1) #14
  unreachable

17525:                                            ; No predecessors!
  br label %17526

17526:                                            ; preds = %17525
  br label %17527

17527:                                            ; preds = %17526, %17467
  br label %17528

17528:                                            ; preds = %17527
  br label %17529

17529:                                            ; preds = %17528
  br label %17530

17530:                                            ; preds = %17529
  %17531 = load i32, ptr @test_count, align 4, !tbaa !5
  %17532 = add nsw i32 %17531, 1
  store i32 %17532, ptr @test_count, align 4, !tbaa !5
  %17533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17534 = load i32, ptr %17533, align 4, !tbaa !5
  %17535 = icmp eq i32 %17534, 0
  br i1 %17535, label %17536, label %17589

17536:                                            ; preds = %17530
  br label %17537

17537:                                            ; preds = %17536
  br label %17538

17538:                                            ; preds = %17537
  call void @llvm.lifetime.start.p0(i64 4, ptr %382) #12
  %17539 = call ptr @__errno_location() #13
  %17540 = load i32, ptr %17539, align 4, !tbaa !5
  store i32 %17540, ptr %382, align 4, !tbaa !5
  %17541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17542 = call i32 @s2n_print_stacktrace(ptr noundef %17541)
  %17543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17544 = trunc i8 %17543 to i1
  br i1 %17544, label %17545, label %17567

17545:                                            ; preds = %17538
  %17546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17547 = call i32 @fileno(ptr noundef %17546) #12
  %17548 = call i32 @isatty(i32 noundef %17547) #12
  %17549 = icmp ne i32 %17548, 0
  br i1 %17549, label %17550, label %17567

17550:                                            ; preds = %17545
  %17551 = load i32, ptr %382, align 4, !tbaa !5
  %17552 = call ptr @__errno_location() #13
  store i32 %17551, ptr %17552, align 4, !tbaa !5
  %17553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17554 = load i32, ptr @test_count, align 4, !tbaa !5
  %17555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17556 = load i32, ptr %17555, align 4, !tbaa !5
  %17557 = call ptr @s2n_strerror(i32 noundef %17556, ptr noundef @.str.6)
  %17558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17559 = load i32, ptr %17558, align 4, !tbaa !5
  %17560 = call ptr @s2n_strerror_debug(i32 noundef %17559, ptr noundef @.str.6)
  %17561 = call ptr @__errno_location() #13
  %17562 = load i32, ptr %17561, align 4, !tbaa !5
  %17563 = call ptr @strerror(i32 noundef %17562) #12
  %17564 = call ptr @__errno_location() #13
  %17565 = load i32, ptr %17564, align 4, !tbaa !5
  %17566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17553, ptr noundef @.str.4, i32 noundef %17554, ptr noundef @.str.113, ptr noundef @.str.3, i32 noundef 706, ptr noundef %17557, ptr noundef %17560, ptr noundef %17563, i32 noundef %17565) #12
  br label %17584

17567:                                            ; preds = %17545, %17538
  %17568 = load i32, ptr %382, align 4, !tbaa !5
  %17569 = call ptr @__errno_location() #13
  store i32 %17568, ptr %17569, align 4, !tbaa !5
  %17570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17571 = load i32, ptr @test_count, align 4, !tbaa !5
  %17572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17573 = load i32, ptr %17572, align 4, !tbaa !5
  %17574 = call ptr @s2n_strerror(i32 noundef %17573, ptr noundef @.str.6)
  %17575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17576 = load i32, ptr %17575, align 4, !tbaa !5
  %17577 = call ptr @s2n_strerror_debug(i32 noundef %17576, ptr noundef @.str.6)
  %17578 = call ptr @__errno_location() #13
  %17579 = load i32, ptr %17578, align 4, !tbaa !5
  %17580 = call ptr @strerror(i32 noundef %17579) #12
  %17581 = call ptr @__errno_location() #13
  %17582 = load i32, ptr %17581, align 4, !tbaa !5
  %17583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17570, ptr noundef @.str.7, i32 noundef %17571, ptr noundef @.str.113, ptr noundef @.str.3, i32 noundef 706, ptr noundef %17574, ptr noundef %17577, ptr noundef %17580, i32 noundef %17582) #12
  br label %17584

17584:                                            ; preds = %17567, %17550
  call void @llvm.lifetime.end.p0(i64 4, ptr %382) #12
  br label %17585

17585:                                            ; preds = %17584
  br label %17586

17586:                                            ; preds = %17585
  call void @exit(i32 noundef 1) #14
  unreachable

17587:                                            ; No predecessors!
  br label %17588

17588:                                            ; preds = %17587
  br label %17589

17589:                                            ; preds = %17588, %17530
  br label %17590

17590:                                            ; preds = %17589
  br label %17591

17591:                                            ; preds = %17590
  br label %17592

17592:                                            ; preds = %17591
  %17593 = load i32, ptr @test_count, align 4, !tbaa !5
  %17594 = add nsw i32 %17593, 1
  store i32 %17594, ptr @test_count, align 4, !tbaa !5
  %17595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17596 = load i32, ptr %17595, align 4, !tbaa !5
  %17597 = call ptr @s2n_strerror_debug(i32 noundef %17596, ptr noundef @.str.6)
  %17598 = icmp eq ptr %17597, null
  br i1 %17598, label %17599, label %17652

17599:                                            ; preds = %17592
  br label %17600

17600:                                            ; preds = %17599
  br label %17601

17601:                                            ; preds = %17600
  call void @llvm.lifetime.start.p0(i64 4, ptr %383) #12
  %17602 = call ptr @__errno_location() #13
  %17603 = load i32, ptr %17602, align 4, !tbaa !5
  store i32 %17603, ptr %383, align 4, !tbaa !5
  %17604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17605 = call i32 @s2n_print_stacktrace(ptr noundef %17604)
  %17606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17607 = trunc i8 %17606 to i1
  br i1 %17607, label %17608, label %17630

17608:                                            ; preds = %17601
  %17609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17610 = call i32 @fileno(ptr noundef %17609) #12
  %17611 = call i32 @isatty(i32 noundef %17610) #12
  %17612 = icmp ne i32 %17611, 0
  br i1 %17612, label %17613, label %17630

17613:                                            ; preds = %17608
  %17614 = load i32, ptr %383, align 4, !tbaa !5
  %17615 = call ptr @__errno_location() #13
  store i32 %17614, ptr %17615, align 4, !tbaa !5
  %17616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17617 = load i32, ptr @test_count, align 4, !tbaa !5
  %17618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17619 = load i32, ptr %17618, align 4, !tbaa !5
  %17620 = call ptr @s2n_strerror(i32 noundef %17619, ptr noundef @.str.6)
  %17621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17622 = load i32, ptr %17621, align 4, !tbaa !5
  %17623 = call ptr @s2n_strerror_debug(i32 noundef %17622, ptr noundef @.str.6)
  %17624 = call ptr @__errno_location() #13
  %17625 = load i32, ptr %17624, align 4, !tbaa !5
  %17626 = call ptr @strerror(i32 noundef %17625) #12
  %17627 = call ptr @__errno_location() #13
  %17628 = load i32, ptr %17627, align 4, !tbaa !5
  %17629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17616, ptr noundef @.str.4, i32 noundef %17617, ptr noundef @.str.70, ptr noundef @.str.3, i32 noundef 706, ptr noundef %17620, ptr noundef %17623, ptr noundef %17626, i32 noundef %17628) #12
  br label %17647

17630:                                            ; preds = %17608, %17601
  %17631 = load i32, ptr %383, align 4, !tbaa !5
  %17632 = call ptr @__errno_location() #13
  store i32 %17631, ptr %17632, align 4, !tbaa !5
  %17633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17634 = load i32, ptr @test_count, align 4, !tbaa !5
  %17635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17636 = load i32, ptr %17635, align 4, !tbaa !5
  %17637 = call ptr @s2n_strerror(i32 noundef %17636, ptr noundef @.str.6)
  %17638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17639 = load i32, ptr %17638, align 4, !tbaa !5
  %17640 = call ptr @s2n_strerror_debug(i32 noundef %17639, ptr noundef @.str.6)
  %17641 = call ptr @__errno_location() #13
  %17642 = load i32, ptr %17641, align 4, !tbaa !5
  %17643 = call ptr @strerror(i32 noundef %17642) #12
  %17644 = call ptr @__errno_location() #13
  %17645 = load i32, ptr %17644, align 4, !tbaa !5
  %17646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17633, ptr noundef @.str.7, i32 noundef %17634, ptr noundef @.str.70, ptr noundef @.str.3, i32 noundef 706, ptr noundef %17637, ptr noundef %17640, ptr noundef %17643, i32 noundef %17645) #12
  br label %17647

17647:                                            ; preds = %17630, %17613
  call void @llvm.lifetime.end.p0(i64 4, ptr %383) #12
  br label %17648

17648:                                            ; preds = %17647
  br label %17649

17649:                                            ; preds = %17648
  call void @exit(i32 noundef 1) #14
  unreachable

17650:                                            ; No predecessors!
  br label %17651

17651:                                            ; preds = %17650
  br label %17652

17652:                                            ; preds = %17651, %17592
  br label %17653

17653:                                            ; preds = %17652
  br label %17654

17654:                                            ; preds = %17653
  br label %17655

17655:                                            ; preds = %17654
  %17656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %17656, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %17657 = call ptr @__errno_location() #13
  store i32 0, ptr %17657, align 4, !tbaa !5
  br label %17658

17658:                                            ; preds = %17655
  br label %17659

17659:                                            ; preds = %17658
  br label %17660

17660:                                            ; preds = %17659
  br label %17661

17661:                                            ; preds = %17660
  br label %17662

17662:                                            ; preds = %17661
  %17663 = load i32, ptr @test_count, align 4, !tbaa !5
  %17664 = add nsw i32 %17663, 1
  store i32 %17664, ptr @test_count, align 4, !tbaa !5
  %17665 = call i32 @s2n_stuffer_free(ptr noundef %371)
  %17666 = icmp eq i32 %17665, -1
  br i1 %17666, label %17667, label %17720

17667:                                            ; preds = %17662
  br label %17668

17668:                                            ; preds = %17667
  br label %17669

17669:                                            ; preds = %17668
  call void @llvm.lifetime.start.p0(i64 4, ptr %384) #12
  %17670 = call ptr @__errno_location() #13
  %17671 = load i32, ptr %17670, align 4, !tbaa !5
  store i32 %17671, ptr %384, align 4, !tbaa !5
  %17672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17673 = call i32 @s2n_print_stacktrace(ptr noundef %17672)
  %17674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17675 = trunc i8 %17674 to i1
  br i1 %17675, label %17676, label %17698

17676:                                            ; preds = %17669
  %17677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17678 = call i32 @fileno(ptr noundef %17677) #12
  %17679 = call i32 @isatty(i32 noundef %17678) #12
  %17680 = icmp ne i32 %17679, 0
  br i1 %17680, label %17681, label %17698

17681:                                            ; preds = %17676
  %17682 = load i32, ptr %384, align 4, !tbaa !5
  %17683 = call ptr @__errno_location() #13
  store i32 %17682, ptr %17683, align 4, !tbaa !5
  %17684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17685 = load i32, ptr @test_count, align 4, !tbaa !5
  %17686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17687 = load i32, ptr %17686, align 4, !tbaa !5
  %17688 = call ptr @s2n_strerror(i32 noundef %17687, ptr noundef @.str.6)
  %17689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17690 = load i32, ptr %17689, align 4, !tbaa !5
  %17691 = call ptr @s2n_strerror_debug(i32 noundef %17690, ptr noundef @.str.6)
  %17692 = call ptr @__errno_location() #13
  %17693 = load i32, ptr %17692, align 4, !tbaa !5
  %17694 = call ptr @strerror(i32 noundef %17693) #12
  %17695 = call ptr @__errno_location() #13
  %17696 = load i32, ptr %17695, align 4, !tbaa !5
  %17697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17684, ptr noundef @.str.4, i32 noundef %17685, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 708, ptr noundef %17688, ptr noundef %17691, ptr noundef %17694, i32 noundef %17696) #12
  br label %17715

17698:                                            ; preds = %17676, %17669
  %17699 = load i32, ptr %384, align 4, !tbaa !5
  %17700 = call ptr @__errno_location() #13
  store i32 %17699, ptr %17700, align 4, !tbaa !5
  %17701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17702 = load i32, ptr @test_count, align 4, !tbaa !5
  %17703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17704 = load i32, ptr %17703, align 4, !tbaa !5
  %17705 = call ptr @s2n_strerror(i32 noundef %17704, ptr noundef @.str.6)
  %17706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17707 = load i32, ptr %17706, align 4, !tbaa !5
  %17708 = call ptr @s2n_strerror_debug(i32 noundef %17707, ptr noundef @.str.6)
  %17709 = call ptr @__errno_location() #13
  %17710 = load i32, ptr %17709, align 4, !tbaa !5
  %17711 = call ptr @strerror(i32 noundef %17710) #12
  %17712 = call ptr @__errno_location() #13
  %17713 = load i32, ptr %17712, align 4, !tbaa !5
  %17714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17701, ptr noundef @.str.7, i32 noundef %17702, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 708, ptr noundef %17705, ptr noundef %17708, ptr noundef %17711, i32 noundef %17713) #12
  br label %17715

17715:                                            ; preds = %17698, %17681
  call void @llvm.lifetime.end.p0(i64 4, ptr %384) #12
  br label %17716

17716:                                            ; preds = %17715
  br label %17717

17717:                                            ; preds = %17716
  call void @exit(i32 noundef 1) #14
  unreachable

17718:                                            ; No predecessors!
  br label %17719

17719:                                            ; preds = %17718
  br label %17720

17720:                                            ; preds = %17719, %17662
  br label %17721

17721:                                            ; preds = %17720
  br label %17722

17722:                                            ; preds = %17721
  br label %17723

17723:                                            ; preds = %17722
  %17724 = load i32, ptr @test_count, align 4, !tbaa !5
  %17725 = add nsw i32 %17724, 1
  store i32 %17725, ptr @test_count, align 4, !tbaa !5
  %17726 = load ptr, ptr %370, align 8, !tbaa !9
  %17727 = call i32 @s2n_connection_free(ptr noundef %17726)
  %17728 = icmp eq i32 %17727, -1
  br i1 %17728, label %17729, label %17782

17729:                                            ; preds = %17723
  br label %17730

17730:                                            ; preds = %17729
  br label %17731

17731:                                            ; preds = %17730
  call void @llvm.lifetime.start.p0(i64 4, ptr %385) #12
  %17732 = call ptr @__errno_location() #13
  %17733 = load i32, ptr %17732, align 4, !tbaa !5
  store i32 %17733, ptr %385, align 4, !tbaa !5
  %17734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17735 = call i32 @s2n_print_stacktrace(ptr noundef %17734)
  %17736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17737 = trunc i8 %17736 to i1
  br i1 %17737, label %17738, label %17760

17738:                                            ; preds = %17731
  %17739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17740 = call i32 @fileno(ptr noundef %17739) #12
  %17741 = call i32 @isatty(i32 noundef %17740) #12
  %17742 = icmp ne i32 %17741, 0
  br i1 %17742, label %17743, label %17760

17743:                                            ; preds = %17738
  %17744 = load i32, ptr %385, align 4, !tbaa !5
  %17745 = call ptr @__errno_location() #13
  store i32 %17744, ptr %17745, align 4, !tbaa !5
  %17746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17747 = load i32, ptr @test_count, align 4, !tbaa !5
  %17748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17749 = load i32, ptr %17748, align 4, !tbaa !5
  %17750 = call ptr @s2n_strerror(i32 noundef %17749, ptr noundef @.str.6)
  %17751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17752 = load i32, ptr %17751, align 4, !tbaa !5
  %17753 = call ptr @s2n_strerror_debug(i32 noundef %17752, ptr noundef @.str.6)
  %17754 = call ptr @__errno_location() #13
  %17755 = load i32, ptr %17754, align 4, !tbaa !5
  %17756 = call ptr @strerror(i32 noundef %17755) #12
  %17757 = call ptr @__errno_location() #13
  %17758 = load i32, ptr %17757, align 4, !tbaa !5
  %17759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17746, ptr noundef @.str.4, i32 noundef %17747, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 709, ptr noundef %17750, ptr noundef %17753, ptr noundef %17756, i32 noundef %17758) #12
  br label %17777

17760:                                            ; preds = %17738, %17731
  %17761 = load i32, ptr %385, align 4, !tbaa !5
  %17762 = call ptr @__errno_location() #13
  store i32 %17761, ptr %17762, align 4, !tbaa !5
  %17763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17764 = load i32, ptr @test_count, align 4, !tbaa !5
  %17765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17766 = load i32, ptr %17765, align 4, !tbaa !5
  %17767 = call ptr @s2n_strerror(i32 noundef %17766, ptr noundef @.str.6)
  %17768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17769 = load i32, ptr %17768, align 4, !tbaa !5
  %17770 = call ptr @s2n_strerror_debug(i32 noundef %17769, ptr noundef @.str.6)
  %17771 = call ptr @__errno_location() #13
  %17772 = load i32, ptr %17771, align 4, !tbaa !5
  %17773 = call ptr @strerror(i32 noundef %17772) #12
  %17774 = call ptr @__errno_location() #13
  %17775 = load i32, ptr %17774, align 4, !tbaa !5
  %17776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17763, ptr noundef @.str.7, i32 noundef %17764, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 709, ptr noundef %17767, ptr noundef %17770, ptr noundef %17773, i32 noundef %17775) #12
  br label %17777

17777:                                            ; preds = %17760, %17743
  call void @llvm.lifetime.end.p0(i64 4, ptr %385) #12
  br label %17778

17778:                                            ; preds = %17777
  br label %17779

17779:                                            ; preds = %17778
  call void @exit(i32 noundef 1) #14
  unreachable

17780:                                            ; No predecessors!
  br label %17781

17781:                                            ; preds = %17780
  br label %17782

17782:                                            ; preds = %17781, %17723
  br label %17783

17783:                                            ; preds = %17782
  br label %17784

17784:                                            ; preds = %17783
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %371) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %370) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %386) #12
  store ptr null, ptr %386, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %387) #12
  call void @llvm.memset.p0.i64(ptr align 8 %387, i8 0, i64 40, i1 false)
  br label %17785

17785:                                            ; preds = %17784
  %17786 = load i32, ptr @test_count, align 4, !tbaa !5
  %17787 = add nsw i32 %17786, 1
  store i32 %17787, ptr @test_count, align 4, !tbaa !5
  %17788 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %17788, ptr %386, align 8, !tbaa !9
  %17789 = icmp eq ptr %17788, null
  br i1 %17789, label %17790, label %17843

17790:                                            ; preds = %17785
  br label %17791

17791:                                            ; preds = %17790
  br label %17792

17792:                                            ; preds = %17791
  call void @llvm.lifetime.start.p0(i64 4, ptr %388) #12
  %17793 = call ptr @__errno_location() #13
  %17794 = load i32, ptr %17793, align 4, !tbaa !5
  store i32 %17794, ptr %388, align 4, !tbaa !5
  %17795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17796 = call i32 @s2n_print_stacktrace(ptr noundef %17795)
  %17797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17798 = trunc i8 %17797 to i1
  br i1 %17798, label %17799, label %17821

17799:                                            ; preds = %17792
  %17800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17801 = call i32 @fileno(ptr noundef %17800) #12
  %17802 = call i32 @isatty(i32 noundef %17801) #12
  %17803 = icmp ne i32 %17802, 0
  br i1 %17803, label %17804, label %17821

17804:                                            ; preds = %17799
  %17805 = load i32, ptr %388, align 4, !tbaa !5
  %17806 = call ptr @__errno_location() #13
  store i32 %17805, ptr %17806, align 4, !tbaa !5
  %17807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17808 = load i32, ptr @test_count, align 4, !tbaa !5
  %17809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17810 = load i32, ptr %17809, align 4, !tbaa !5
  %17811 = call ptr @s2n_strerror(i32 noundef %17810, ptr noundef @.str.6)
  %17812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17813 = load i32, ptr %17812, align 4, !tbaa !5
  %17814 = call ptr @s2n_strerror_debug(i32 noundef %17813, ptr noundef @.str.6)
  %17815 = call ptr @__errno_location() #13
  %17816 = load i32, ptr %17815, align 4, !tbaa !5
  %17817 = call ptr @strerror(i32 noundef %17816) #12
  %17818 = call ptr @__errno_location() #13
  %17819 = load i32, ptr %17818, align 4, !tbaa !5
  %17820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17807, ptr noundef @.str.4, i32 noundef %17808, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 716, ptr noundef %17811, ptr noundef %17814, ptr noundef %17817, i32 noundef %17819) #12
  br label %17838

17821:                                            ; preds = %17799, %17792
  %17822 = load i32, ptr %388, align 4, !tbaa !5
  %17823 = call ptr @__errno_location() #13
  store i32 %17822, ptr %17823, align 4, !tbaa !5
  %17824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17825 = load i32, ptr @test_count, align 4, !tbaa !5
  %17826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17827 = load i32, ptr %17826, align 4, !tbaa !5
  %17828 = call ptr @s2n_strerror(i32 noundef %17827, ptr noundef @.str.6)
  %17829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17830 = load i32, ptr %17829, align 4, !tbaa !5
  %17831 = call ptr @s2n_strerror_debug(i32 noundef %17830, ptr noundef @.str.6)
  %17832 = call ptr @__errno_location() #13
  %17833 = load i32, ptr %17832, align 4, !tbaa !5
  %17834 = call ptr @strerror(i32 noundef %17833) #12
  %17835 = call ptr @__errno_location() #13
  %17836 = load i32, ptr %17835, align 4, !tbaa !5
  %17837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17824, ptr noundef @.str.7, i32 noundef %17825, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 716, ptr noundef %17828, ptr noundef %17831, ptr noundef %17834, i32 noundef %17836) #12
  br label %17838

17838:                                            ; preds = %17821, %17804
  call void @llvm.lifetime.end.p0(i64 4, ptr %388) #12
  br label %17839

17839:                                            ; preds = %17838
  br label %17840

17840:                                            ; preds = %17839
  call void @exit(i32 noundef 1) #14
  unreachable

17841:                                            ; No predecessors!
  br label %17842

17842:                                            ; preds = %17841
  br label %17843

17843:                                            ; preds = %17842, %17785
  br label %17844

17844:                                            ; preds = %17843
  br label %17845

17845:                                            ; preds = %17844
  %17846 = load ptr, ptr %386, align 8, !tbaa !9
  %17847 = getelementptr inbounds %struct.s2n_connection, ptr %17846, i32 0, i32 23
  store i8 34, ptr %17847, align 4, !tbaa !63
  br label %17848

17848:                                            ; preds = %17845
  %17849 = load i32, ptr @test_count, align 4, !tbaa !5
  %17850 = add nsw i32 %17849, 1
  store i32 %17850, ptr @test_count, align 4, !tbaa !5
  %17851 = load ptr, ptr %386, align 8, !tbaa !9
  %17852 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %17851)
  %17853 = getelementptr inbounds %struct.s2n_result, ptr %389, i32 0, i32 0
  store i32 %17852, ptr %17853, align 4
  %17854 = getelementptr inbounds %struct.s2n_result, ptr %389, i32 0, i32 0
  %17855 = load i32, ptr %17854, align 4
  %17856 = call zeroext i1 @s2n_result_is_ok(i32 %17855)
  br i1 %17856, label %17910, label %17857

17857:                                            ; preds = %17848
  br label %17858

17858:                                            ; preds = %17857
  br label %17859

17859:                                            ; preds = %17858
  call void @llvm.lifetime.start.p0(i64 4, ptr %390) #12
  %17860 = call ptr @__errno_location() #13
  %17861 = load i32, ptr %17860, align 4, !tbaa !5
  store i32 %17861, ptr %390, align 4, !tbaa !5
  %17862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17863 = call i32 @s2n_print_stacktrace(ptr noundef %17862)
  %17864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17865 = trunc i8 %17864 to i1
  br i1 %17865, label %17866, label %17888

17866:                                            ; preds = %17859
  %17867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17868 = call i32 @fileno(ptr noundef %17867) #12
  %17869 = call i32 @isatty(i32 noundef %17868) #12
  %17870 = icmp ne i32 %17869, 0
  br i1 %17870, label %17871, label %17888

17871:                                            ; preds = %17866
  %17872 = load i32, ptr %390, align 4, !tbaa !5
  %17873 = call ptr @__errno_location() #13
  store i32 %17872, ptr %17873, align 4, !tbaa !5
  %17874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17875 = load i32, ptr @test_count, align 4, !tbaa !5
  %17876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17877 = load i32, ptr %17876, align 4, !tbaa !5
  %17878 = call ptr @s2n_strerror(i32 noundef %17877, ptr noundef @.str.6)
  %17879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17880 = load i32, ptr %17879, align 4, !tbaa !5
  %17881 = call ptr @s2n_strerror_debug(i32 noundef %17880, ptr noundef @.str.6)
  %17882 = call ptr @__errno_location() #13
  %17883 = load i32, ptr %17882, align 4, !tbaa !5
  %17884 = call ptr @strerror(i32 noundef %17883) #12
  %17885 = call ptr @__errno_location() #13
  %17886 = load i32, ptr %17885, align 4, !tbaa !5
  %17887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17874, ptr noundef @.str.4, i32 noundef %17875, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 718, ptr noundef %17878, ptr noundef %17881, ptr noundef %17884, i32 noundef %17886) #12
  br label %17905

17888:                                            ; preds = %17866, %17859
  %17889 = load i32, ptr %390, align 4, !tbaa !5
  %17890 = call ptr @__errno_location() #13
  store i32 %17889, ptr %17890, align 4, !tbaa !5
  %17891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17892 = load i32, ptr @test_count, align 4, !tbaa !5
  %17893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17894 = load i32, ptr %17893, align 4, !tbaa !5
  %17895 = call ptr @s2n_strerror(i32 noundef %17894, ptr noundef @.str.6)
  %17896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17897 = load i32, ptr %17896, align 4, !tbaa !5
  %17898 = call ptr @s2n_strerror_debug(i32 noundef %17897, ptr noundef @.str.6)
  %17899 = call ptr @__errno_location() #13
  %17900 = load i32, ptr %17899, align 4, !tbaa !5
  %17901 = call ptr @strerror(i32 noundef %17900) #12
  %17902 = call ptr @__errno_location() #13
  %17903 = load i32, ptr %17902, align 4, !tbaa !5
  %17904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17891, ptr noundef @.str.7, i32 noundef %17892, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 718, ptr noundef %17895, ptr noundef %17898, ptr noundef %17901, i32 noundef %17903) #12
  br label %17905

17905:                                            ; preds = %17888, %17871
  call void @llvm.lifetime.end.p0(i64 4, ptr %390) #12
  br label %17906

17906:                                            ; preds = %17905
  br label %17907

17907:                                            ; preds = %17906
  call void @exit(i32 noundef 1) #14
  unreachable

17908:                                            ; No predecessors!
  br label %17909

17909:                                            ; preds = %17908
  br label %17910

17910:                                            ; preds = %17909, %17848
  br label %17911

17911:                                            ; preds = %17910
  br label %17912

17912:                                            ; preds = %17911
  br label %17913

17913:                                            ; preds = %17912
  %17914 = load i32, ptr @test_count, align 4, !tbaa !5
  %17915 = add nsw i32 %17914, 1
  store i32 %17915, ptr @test_count, align 4, !tbaa !5
  %17916 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %387, i32 noundef 0)
  %17917 = icmp eq i32 %17916, -1
  br i1 %17917, label %17918, label %17971

17918:                                            ; preds = %17913
  br label %17919

17919:                                            ; preds = %17918
  br label %17920

17920:                                            ; preds = %17919
  call void @llvm.lifetime.start.p0(i64 4, ptr %391) #12
  %17921 = call ptr @__errno_location() #13
  %17922 = load i32, ptr %17921, align 4, !tbaa !5
  store i32 %17922, ptr %391, align 4, !tbaa !5
  %17923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17924 = call i32 @s2n_print_stacktrace(ptr noundef %17923)
  %17925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17926 = trunc i8 %17925 to i1
  br i1 %17926, label %17927, label %17949

17927:                                            ; preds = %17920
  %17928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17929 = call i32 @fileno(ptr noundef %17928) #12
  %17930 = call i32 @isatty(i32 noundef %17929) #12
  %17931 = icmp ne i32 %17930, 0
  br i1 %17931, label %17932, label %17949

17932:                                            ; preds = %17927
  %17933 = load i32, ptr %391, align 4, !tbaa !5
  %17934 = call ptr @__errno_location() #13
  store i32 %17933, ptr %17934, align 4, !tbaa !5
  %17935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17936 = load i32, ptr @test_count, align 4, !tbaa !5
  %17937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17938 = load i32, ptr %17937, align 4, !tbaa !5
  %17939 = call ptr @s2n_strerror(i32 noundef %17938, ptr noundef @.str.6)
  %17940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17941 = load i32, ptr %17940, align 4, !tbaa !5
  %17942 = call ptr @s2n_strerror_debug(i32 noundef %17941, ptr noundef @.str.6)
  %17943 = call ptr @__errno_location() #13
  %17944 = load i32, ptr %17943, align 4, !tbaa !5
  %17945 = call ptr @strerror(i32 noundef %17944) #12
  %17946 = call ptr @__errno_location() #13
  %17947 = load i32, ptr %17946, align 4, !tbaa !5
  %17948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17935, ptr noundef @.str.4, i32 noundef %17936, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 719, ptr noundef %17939, ptr noundef %17942, ptr noundef %17945, i32 noundef %17947) #12
  br label %17966

17949:                                            ; preds = %17927, %17920
  %17950 = load i32, ptr %391, align 4, !tbaa !5
  %17951 = call ptr @__errno_location() #13
  store i32 %17950, ptr %17951, align 4, !tbaa !5
  %17952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17953 = load i32, ptr @test_count, align 4, !tbaa !5
  %17954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17955 = load i32, ptr %17954, align 4, !tbaa !5
  %17956 = call ptr @s2n_strerror(i32 noundef %17955, ptr noundef @.str.6)
  %17957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17958 = load i32, ptr %17957, align 4, !tbaa !5
  %17959 = call ptr @s2n_strerror_debug(i32 noundef %17958, ptr noundef @.str.6)
  %17960 = call ptr @__errno_location() #13
  %17961 = load i32, ptr %17960, align 4, !tbaa !5
  %17962 = call ptr @strerror(i32 noundef %17961) #12
  %17963 = call ptr @__errno_location() #13
  %17964 = load i32, ptr %17963, align 4, !tbaa !5
  %17965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17952, ptr noundef @.str.7, i32 noundef %17953, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 719, ptr noundef %17956, ptr noundef %17959, ptr noundef %17962, i32 noundef %17964) #12
  br label %17966

17966:                                            ; preds = %17949, %17932
  call void @llvm.lifetime.end.p0(i64 4, ptr %391) #12
  br label %17967

17967:                                            ; preds = %17966
  br label %17968

17968:                                            ; preds = %17967
  call void @exit(i32 noundef 1) #14
  unreachable

17969:                                            ; No predecessors!
  br label %17970

17970:                                            ; preds = %17969
  br label %17971

17971:                                            ; preds = %17970, %17913
  br label %17972

17972:                                            ; preds = %17971
  br label %17973

17973:                                            ; preds = %17972
  call void @llvm.lifetime.start.p0(i64 8, ptr %392) #12
  store ptr null, ptr %392, align 8, !tbaa !9
  br label %17974

17974:                                            ; preds = %17973
  %17975 = load i32, ptr @test_count, align 4, !tbaa !5
  %17976 = add nsw i32 %17975, 1
  store i32 %17976, ptr @test_count, align 4, !tbaa !5
  %17977 = load ptr, ptr %386, align 8, !tbaa !9
  %17978 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %17977, ptr noundef %392)
  %17979 = icmp eq i32 %17978, -1
  br i1 %17979, label %17980, label %18033

17980:                                            ; preds = %17974
  br label %17981

17981:                                            ; preds = %17980
  br label %17982

17982:                                            ; preds = %17981
  call void @llvm.lifetime.start.p0(i64 4, ptr %393) #12
  %17983 = call ptr @__errno_location() #13
  %17984 = load i32, ptr %17983, align 4, !tbaa !5
  store i32 %17984, ptr %393, align 4, !tbaa !5
  %17985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17986 = call i32 @s2n_print_stacktrace(ptr noundef %17985)
  %17987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17988 = trunc i8 %17987 to i1
  br i1 %17988, label %17989, label %18011

17989:                                            ; preds = %17982
  %17990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17991 = call i32 @fileno(ptr noundef %17990) #12
  %17992 = call i32 @isatty(i32 noundef %17991) #12
  %17993 = icmp ne i32 %17992, 0
  br i1 %17993, label %17994, label %18011

17994:                                            ; preds = %17989
  %17995 = load i32, ptr %393, align 4, !tbaa !5
  %17996 = call ptr @__errno_location() #13
  store i32 %17995, ptr %17996, align 4, !tbaa !5
  %17997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17998 = load i32, ptr @test_count, align 4, !tbaa !5
  %17999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18000 = load i32, ptr %17999, align 4, !tbaa !5
  %18001 = call ptr @s2n_strerror(i32 noundef %18000, ptr noundef @.str.6)
  %18002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18003 = load i32, ptr %18002, align 4, !tbaa !5
  %18004 = call ptr @s2n_strerror_debug(i32 noundef %18003, ptr noundef @.str.6)
  %18005 = call ptr @__errno_location() #13
  %18006 = load i32, ptr %18005, align 4, !tbaa !5
  %18007 = call ptr @strerror(i32 noundef %18006) #12
  %18008 = call ptr @__errno_location() #13
  %18009 = load i32, ptr %18008, align 4, !tbaa !5
  %18010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17997, ptr noundef @.str.4, i32 noundef %17998, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 722, ptr noundef %18001, ptr noundef %18004, ptr noundef %18007, i32 noundef %18009) #12
  br label %18028

18011:                                            ; preds = %17989, %17982
  %18012 = load i32, ptr %393, align 4, !tbaa !5
  %18013 = call ptr @__errno_location() #13
  store i32 %18012, ptr %18013, align 4, !tbaa !5
  %18014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18015 = load i32, ptr @test_count, align 4, !tbaa !5
  %18016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18017 = load i32, ptr %18016, align 4, !tbaa !5
  %18018 = call ptr @s2n_strerror(i32 noundef %18017, ptr noundef @.str.6)
  %18019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18020 = load i32, ptr %18019, align 4, !tbaa !5
  %18021 = call ptr @s2n_strerror_debug(i32 noundef %18020, ptr noundef @.str.6)
  %18022 = call ptr @__errno_location() #13
  %18023 = load i32, ptr %18022, align 4, !tbaa !5
  %18024 = call ptr @strerror(i32 noundef %18023) #12
  %18025 = call ptr @__errno_location() #13
  %18026 = load i32, ptr %18025, align 4, !tbaa !5
  %18027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18014, ptr noundef @.str.7, i32 noundef %18015, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 722, ptr noundef %18018, ptr noundef %18021, ptr noundef %18024, i32 noundef %18026) #12
  br label %18028

18028:                                            ; preds = %18011, %17994
  call void @llvm.lifetime.end.p0(i64 4, ptr %393) #12
  br label %18029

18029:                                            ; preds = %18028
  br label %18030

18030:                                            ; preds = %18029
  call void @exit(i32 noundef 1) #14
  unreachable

18031:                                            ; No predecessors!
  br label %18032

18032:                                            ; preds = %18031
  br label %18033

18033:                                            ; preds = %18032, %17974
  br label %18034

18034:                                            ; preds = %18033
  br label %18035

18035:                                            ; preds = %18034
  br label %18036

18036:                                            ; preds = %18035
  %18037 = load i32, ptr @test_count, align 4, !tbaa !5
  %18038 = add nsw i32 %18037, 1
  store i32 %18038, ptr @test_count, align 4, !tbaa !5
  %18039 = load ptr, ptr %392, align 8, !tbaa !9
  %18040 = icmp eq ptr %18039, null
  br i1 %18040, label %18041, label %18094

18041:                                            ; preds = %18036
  br label %18042

18042:                                            ; preds = %18041
  br label %18043

18043:                                            ; preds = %18042
  call void @llvm.lifetime.start.p0(i64 4, ptr %394) #12
  %18044 = call ptr @__errno_location() #13
  %18045 = load i32, ptr %18044, align 4, !tbaa !5
  store i32 %18045, ptr %394, align 4, !tbaa !5
  %18046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18047 = call i32 @s2n_print_stacktrace(ptr noundef %18046)
  %18048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18049 = trunc i8 %18048 to i1
  br i1 %18049, label %18050, label %18072

18050:                                            ; preds = %18043
  %18051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18052 = call i32 @fileno(ptr noundef %18051) #12
  %18053 = call i32 @isatty(i32 noundef %18052) #12
  %18054 = icmp ne i32 %18053, 0
  br i1 %18054, label %18055, label %18072

18055:                                            ; preds = %18050
  %18056 = load i32, ptr %394, align 4, !tbaa !5
  %18057 = call ptr @__errno_location() #13
  store i32 %18056, ptr %18057, align 4, !tbaa !5
  %18058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18059 = load i32, ptr @test_count, align 4, !tbaa !5
  %18060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18061 = load i32, ptr %18060, align 4, !tbaa !5
  %18062 = call ptr @s2n_strerror(i32 noundef %18061, ptr noundef @.str.6)
  %18063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18064 = load i32, ptr %18063, align 4, !tbaa !5
  %18065 = call ptr @s2n_strerror_debug(i32 noundef %18064, ptr noundef @.str.6)
  %18066 = call ptr @__errno_location() #13
  %18067 = load i32, ptr %18066, align 4, !tbaa !5
  %18068 = call ptr @strerror(i32 noundef %18067) #12
  %18069 = call ptr @__errno_location() #13
  %18070 = load i32, ptr %18069, align 4, !tbaa !5
  %18071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18058, ptr noundef @.str.4, i32 noundef %18059, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 723, ptr noundef %18062, ptr noundef %18065, ptr noundef %18068, i32 noundef %18070) #12
  br label %18089

18072:                                            ; preds = %18050, %18043
  %18073 = load i32, ptr %394, align 4, !tbaa !5
  %18074 = call ptr @__errno_location() #13
  store i32 %18073, ptr %18074, align 4, !tbaa !5
  %18075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18076 = load i32, ptr @test_count, align 4, !tbaa !5
  %18077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18078 = load i32, ptr %18077, align 4, !tbaa !5
  %18079 = call ptr @s2n_strerror(i32 noundef %18078, ptr noundef @.str.6)
  %18080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18081 = load i32, ptr %18080, align 4, !tbaa !5
  %18082 = call ptr @s2n_strerror_debug(i32 noundef %18081, ptr noundef @.str.6)
  %18083 = call ptr @__errno_location() #13
  %18084 = load i32, ptr %18083, align 4, !tbaa !5
  %18085 = call ptr @strerror(i32 noundef %18084) #12
  %18086 = call ptr @__errno_location() #13
  %18087 = load i32, ptr %18086, align 4, !tbaa !5
  %18088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18075, ptr noundef @.str.7, i32 noundef %18076, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 723, ptr noundef %18079, ptr noundef %18082, ptr noundef %18085, i32 noundef %18087) #12
  br label %18089

18089:                                            ; preds = %18072, %18055
  call void @llvm.lifetime.end.p0(i64 4, ptr %394) #12
  br label %18090

18090:                                            ; preds = %18089
  br label %18091

18091:                                            ; preds = %18090
  call void @exit(i32 noundef 1) #14
  unreachable

18092:                                            ; No predecessors!
  br label %18093

18093:                                            ; preds = %18092
  br label %18094

18094:                                            ; preds = %18093, %18036
  br label %18095

18095:                                            ; preds = %18094
  br label %18096

18096:                                            ; preds = %18095
  br label %18097

18097:                                            ; preds = %18096
  %18098 = load i32, ptr @test_count, align 4, !tbaa !5
  %18099 = add nsw i32 %18098, 1
  store i32 %18099, ptr @test_count, align 4, !tbaa !5
  %18100 = call i32 @s2n_stuffer_skip_write(ptr noundef %387, i32 noundef 2)
  %18101 = icmp eq i32 %18100, -1
  br i1 %18101, label %18102, label %18155

18102:                                            ; preds = %18097
  br label %18103

18103:                                            ; preds = %18102
  br label %18104

18104:                                            ; preds = %18103
  call void @llvm.lifetime.start.p0(i64 4, ptr %395) #12
  %18105 = call ptr @__errno_location() #13
  %18106 = load i32, ptr %18105, align 4, !tbaa !5
  store i32 %18106, ptr %395, align 4, !tbaa !5
  %18107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18108 = call i32 @s2n_print_stacktrace(ptr noundef %18107)
  %18109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18110 = trunc i8 %18109 to i1
  br i1 %18110, label %18111, label %18133

18111:                                            ; preds = %18104
  %18112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18113 = call i32 @fileno(ptr noundef %18112) #12
  %18114 = call i32 @isatty(i32 noundef %18113) #12
  %18115 = icmp ne i32 %18114, 0
  br i1 %18115, label %18116, label %18133

18116:                                            ; preds = %18111
  %18117 = load i32, ptr %395, align 4, !tbaa !5
  %18118 = call ptr @__errno_location() #13
  store i32 %18117, ptr %18118, align 4, !tbaa !5
  %18119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18120 = load i32, ptr @test_count, align 4, !tbaa !5
  %18121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18122 = load i32, ptr %18121, align 4, !tbaa !5
  %18123 = call ptr @s2n_strerror(i32 noundef %18122, ptr noundef @.str.6)
  %18124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18125 = load i32, ptr %18124, align 4, !tbaa !5
  %18126 = call ptr @s2n_strerror_debug(i32 noundef %18125, ptr noundef @.str.6)
  %18127 = call ptr @__errno_location() #13
  %18128 = load i32, ptr %18127, align 4, !tbaa !5
  %18129 = call ptr @strerror(i32 noundef %18128) #12
  %18130 = call ptr @__errno_location() #13
  %18131 = load i32, ptr %18130, align 4, !tbaa !5
  %18132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18119, ptr noundef @.str.4, i32 noundef %18120, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 726, ptr noundef %18123, ptr noundef %18126, ptr noundef %18129, i32 noundef %18131) #12
  br label %18150

18133:                                            ; preds = %18111, %18104
  %18134 = load i32, ptr %395, align 4, !tbaa !5
  %18135 = call ptr @__errno_location() #13
  store i32 %18134, ptr %18135, align 4, !tbaa !5
  %18136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18137 = load i32, ptr @test_count, align 4, !tbaa !5
  %18138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18139 = load i32, ptr %18138, align 4, !tbaa !5
  %18140 = call ptr @s2n_strerror(i32 noundef %18139, ptr noundef @.str.6)
  %18141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18142 = load i32, ptr %18141, align 4, !tbaa !5
  %18143 = call ptr @s2n_strerror_debug(i32 noundef %18142, ptr noundef @.str.6)
  %18144 = call ptr @__errno_location() #13
  %18145 = load i32, ptr %18144, align 4, !tbaa !5
  %18146 = call ptr @strerror(i32 noundef %18145) #12
  %18147 = call ptr @__errno_location() #13
  %18148 = load i32, ptr %18147, align 4, !tbaa !5
  %18149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18136, ptr noundef @.str.7, i32 noundef %18137, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 726, ptr noundef %18140, ptr noundef %18143, ptr noundef %18146, i32 noundef %18148) #12
  br label %18150

18150:                                            ; preds = %18133, %18116
  call void @llvm.lifetime.end.p0(i64 4, ptr %395) #12
  br label %18151

18151:                                            ; preds = %18150
  br label %18152

18152:                                            ; preds = %18151
  call void @exit(i32 noundef 1) #14
  unreachable

18153:                                            ; No predecessors!
  br label %18154

18154:                                            ; preds = %18153
  br label %18155

18155:                                            ; preds = %18154, %18097
  br label %18156

18156:                                            ; preds = %18155
  br label %18157

18157:                                            ; preds = %18156
  br label %18158

18158:                                            ; preds = %18157
  %18159 = load i32, ptr @test_count, align 4, !tbaa !5
  %18160 = add nsw i32 %18159, 1
  store i32 %18160, ptr @test_count, align 4, !tbaa !5
  %18161 = load ptr, ptr %392, align 8, !tbaa !9
  %18162 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %18161, i32 0, i32 1
  %18163 = load ptr, ptr %18162, align 8, !tbaa !24
  %18164 = getelementptr inbounds ptr, ptr %18163, i64 0
  %18165 = load ptr, ptr %18164, align 8, !tbaa !9
  %18166 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %18165, i32 0, i32 0
  %18167 = load i16, ptr %18166, align 8, !tbaa !28
  %18168 = load ptr, ptr %392, align 8, !tbaa !9
  %18169 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %18168, i32 0, i32 1
  %18170 = load ptr, ptr %18169, align 8, !tbaa !24
  %18171 = getelementptr inbounds ptr, ptr %18170, i64 0
  %18172 = load ptr, ptr %18171, align 8, !tbaa !9
  %18173 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %18172, i32 0, i32 3
  %18174 = load i8, ptr %18173, align 8, !tbaa !30
  %18175 = zext i8 %18174 to i32
  %18176 = mul nsw i32 %18175, 10
  %18177 = trunc i32 %18176 to i16
  %18178 = load ptr, ptr %392, align 8, !tbaa !9
  %18179 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %18178, i32 0, i32 1
  %18180 = load ptr, ptr %18179, align 8, !tbaa !24
  %18181 = getelementptr inbounds ptr, ptr %18180, i64 0
  %18182 = load ptr, ptr %18181, align 8, !tbaa !9
  %18183 = call i32 @s2n_write_key_share(ptr noundef %387, i16 noundef zeroext %18167, i16 noundef zeroext %18177, ptr noundef %18182)
  %18184 = icmp eq i32 %18183, -1
  br i1 %18184, label %18185, label %18238

18185:                                            ; preds = %18158
  br label %18186

18186:                                            ; preds = %18185
  br label %18187

18187:                                            ; preds = %18186
  call void @llvm.lifetime.start.p0(i64 4, ptr %396) #12
  %18188 = call ptr @__errno_location() #13
  %18189 = load i32, ptr %18188, align 4, !tbaa !5
  store i32 %18189, ptr %396, align 4, !tbaa !5
  %18190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18191 = call i32 @s2n_print_stacktrace(ptr noundef %18190)
  %18192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18193 = trunc i8 %18192 to i1
  br i1 %18193, label %18194, label %18216

18194:                                            ; preds = %18187
  %18195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18196 = call i32 @fileno(ptr noundef %18195) #12
  %18197 = call i32 @isatty(i32 noundef %18196) #12
  %18198 = icmp ne i32 %18197, 0
  br i1 %18198, label %18199, label %18216

18199:                                            ; preds = %18194
  %18200 = load i32, ptr %396, align 4, !tbaa !5
  %18201 = call ptr @__errno_location() #13
  store i32 %18200, ptr %18201, align 4, !tbaa !5
  %18202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18203 = load i32, ptr @test_count, align 4, !tbaa !5
  %18204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18205 = load i32, ptr %18204, align 4, !tbaa !5
  %18206 = call ptr @s2n_strerror(i32 noundef %18205, ptr noundef @.str.6)
  %18207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18208 = load i32, ptr %18207, align 4, !tbaa !5
  %18209 = call ptr @s2n_strerror_debug(i32 noundef %18208, ptr noundef @.str.6)
  %18210 = call ptr @__errno_location() #13
  %18211 = load i32, ptr %18210, align 4, !tbaa !5
  %18212 = call ptr @strerror(i32 noundef %18211) #12
  %18213 = call ptr @__errno_location() #13
  %18214 = load i32, ptr %18213, align 4, !tbaa !5
  %18215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18202, ptr noundef @.str.4, i32 noundef %18203, ptr noundef @.str.115, ptr noundef @.str.3, i32 noundef 728, ptr noundef %18206, ptr noundef %18209, ptr noundef %18212, i32 noundef %18214) #12
  br label %18233

18216:                                            ; preds = %18194, %18187
  %18217 = load i32, ptr %396, align 4, !tbaa !5
  %18218 = call ptr @__errno_location() #13
  store i32 %18217, ptr %18218, align 4, !tbaa !5
  %18219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18220 = load i32, ptr @test_count, align 4, !tbaa !5
  %18221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18222 = load i32, ptr %18221, align 4, !tbaa !5
  %18223 = call ptr @s2n_strerror(i32 noundef %18222, ptr noundef @.str.6)
  %18224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18225 = load i32, ptr %18224, align 4, !tbaa !5
  %18226 = call ptr @s2n_strerror_debug(i32 noundef %18225, ptr noundef @.str.6)
  %18227 = call ptr @__errno_location() #13
  %18228 = load i32, ptr %18227, align 4, !tbaa !5
  %18229 = call ptr @strerror(i32 noundef %18228) #12
  %18230 = call ptr @__errno_location() #13
  %18231 = load i32, ptr %18230, align 4, !tbaa !5
  %18232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18219, ptr noundef @.str.7, i32 noundef %18220, ptr noundef @.str.115, ptr noundef @.str.3, i32 noundef 728, ptr noundef %18223, ptr noundef %18226, ptr noundef %18229, i32 noundef %18231) #12
  br label %18233

18233:                                            ; preds = %18216, %18199
  call void @llvm.lifetime.end.p0(i64 4, ptr %396) #12
  br label %18234

18234:                                            ; preds = %18233
  br label %18235

18235:                                            ; preds = %18234
  call void @exit(i32 noundef 1) #14
  unreachable

18236:                                            ; No predecessors!
  br label %18237

18237:                                            ; preds = %18236
  br label %18238

18238:                                            ; preds = %18237, %18158
  br label %18239

18239:                                            ; preds = %18238
  br label %18240

18240:                                            ; preds = %18239
  br label %18241

18241:                                            ; preds = %18240
  %18242 = load i32, ptr @test_count, align 4, !tbaa !5
  %18243 = add nsw i32 %18242, 1
  store i32 %18243, ptr @test_count, align 4, !tbaa !5
  %18244 = call i32 @s2n_test_rewrite_length(ptr noundef %387)
  %18245 = icmp eq i32 %18244, -1
  br i1 %18245, label %18246, label %18299

18246:                                            ; preds = %18241
  br label %18247

18247:                                            ; preds = %18246
  br label %18248

18248:                                            ; preds = %18247
  call void @llvm.lifetime.start.p0(i64 4, ptr %397) #12
  %18249 = call ptr @__errno_location() #13
  %18250 = load i32, ptr %18249, align 4, !tbaa !5
  store i32 %18250, ptr %397, align 4, !tbaa !5
  %18251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18252 = call i32 @s2n_print_stacktrace(ptr noundef %18251)
  %18253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18254 = trunc i8 %18253 to i1
  br i1 %18254, label %18255, label %18277

18255:                                            ; preds = %18248
  %18256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18257 = call i32 @fileno(ptr noundef %18256) #12
  %18258 = call i32 @isatty(i32 noundef %18257) #12
  %18259 = icmp ne i32 %18258, 0
  br i1 %18259, label %18260, label %18277

18260:                                            ; preds = %18255
  %18261 = load i32, ptr %397, align 4, !tbaa !5
  %18262 = call ptr @__errno_location() #13
  store i32 %18261, ptr %18262, align 4, !tbaa !5
  %18263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18264 = load i32, ptr @test_count, align 4, !tbaa !5
  %18265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18266 = load i32, ptr %18265, align 4, !tbaa !5
  %18267 = call ptr @s2n_strerror(i32 noundef %18266, ptr noundef @.str.6)
  %18268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18269 = load i32, ptr %18268, align 4, !tbaa !5
  %18270 = call ptr @s2n_strerror_debug(i32 noundef %18269, ptr noundef @.str.6)
  %18271 = call ptr @__errno_location() #13
  %18272 = load i32, ptr %18271, align 4, !tbaa !5
  %18273 = call ptr @strerror(i32 noundef %18272) #12
  %18274 = call ptr @__errno_location() #13
  %18275 = load i32, ptr %18274, align 4, !tbaa !5
  %18276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18263, ptr noundef @.str.4, i32 noundef %18264, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 729, ptr noundef %18267, ptr noundef %18270, ptr noundef %18273, i32 noundef %18275) #12
  br label %18294

18277:                                            ; preds = %18255, %18248
  %18278 = load i32, ptr %397, align 4, !tbaa !5
  %18279 = call ptr @__errno_location() #13
  store i32 %18278, ptr %18279, align 4, !tbaa !5
  %18280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18281 = load i32, ptr @test_count, align 4, !tbaa !5
  %18282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18283 = load i32, ptr %18282, align 4, !tbaa !5
  %18284 = call ptr @s2n_strerror(i32 noundef %18283, ptr noundef @.str.6)
  %18285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18286 = load i32, ptr %18285, align 4, !tbaa !5
  %18287 = call ptr @s2n_strerror_debug(i32 noundef %18286, ptr noundef @.str.6)
  %18288 = call ptr @__errno_location() #13
  %18289 = load i32, ptr %18288, align 4, !tbaa !5
  %18290 = call ptr @strerror(i32 noundef %18289) #12
  %18291 = call ptr @__errno_location() #13
  %18292 = load i32, ptr %18291, align 4, !tbaa !5
  %18293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18280, ptr noundef @.str.7, i32 noundef %18281, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 729, ptr noundef %18284, ptr noundef %18287, ptr noundef %18290, i32 noundef %18292) #12
  br label %18294

18294:                                            ; preds = %18277, %18260
  call void @llvm.lifetime.end.p0(i64 4, ptr %397) #12
  br label %18295

18295:                                            ; preds = %18294
  br label %18296

18296:                                            ; preds = %18295
  call void @exit(i32 noundef 1) #14
  unreachable

18297:                                            ; No predecessors!
  br label %18298

18298:                                            ; preds = %18297
  br label %18299

18299:                                            ; preds = %18298, %18241
  br label %18300

18300:                                            ; preds = %18299
  br label %18301

18301:                                            ; preds = %18300
  br label %18302

18302:                                            ; preds = %18301
  br label %18303

18303:                                            ; preds = %18302
  %18304 = load i32, ptr @test_count, align 4, !tbaa !5
  %18305 = add nsw i32 %18304, 1
  store i32 %18305, ptr @test_count, align 4, !tbaa !5
  %18306 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %18307 = load ptr, ptr %386, align 8, !tbaa !9
  %18308 = call i32 %18306(ptr noundef %18307, ptr noundef %387)
  %18309 = icmp eq i32 %18308, -1
  br i1 %18309, label %18363, label %18310

18310:                                            ; preds = %18303
  br label %18311

18311:                                            ; preds = %18310
  br label %18312

18312:                                            ; preds = %18311
  call void @llvm.lifetime.start.p0(i64 4, ptr %398) #12
  %18313 = call ptr @__errno_location() #13
  %18314 = load i32, ptr %18313, align 4, !tbaa !5
  store i32 %18314, ptr %398, align 4, !tbaa !5
  %18315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18316 = call i32 @s2n_print_stacktrace(ptr noundef %18315)
  %18317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18318 = trunc i8 %18317 to i1
  br i1 %18318, label %18319, label %18341

18319:                                            ; preds = %18312
  %18320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18321 = call i32 @fileno(ptr noundef %18320) #12
  %18322 = call i32 @isatty(i32 noundef %18321) #12
  %18323 = icmp ne i32 %18322, 0
  br i1 %18323, label %18324, label %18341

18324:                                            ; preds = %18319
  %18325 = load i32, ptr %398, align 4, !tbaa !5
  %18326 = call ptr @__errno_location() #13
  store i32 %18325, ptr %18326, align 4, !tbaa !5
  %18327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18328 = load i32, ptr @test_count, align 4, !tbaa !5
  %18329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18330 = load i32, ptr %18329, align 4, !tbaa !5
  %18331 = call ptr @s2n_strerror(i32 noundef %18330, ptr noundef @.str.6)
  %18332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18333 = load i32, ptr %18332, align 4, !tbaa !5
  %18334 = call ptr @s2n_strerror_debug(i32 noundef %18333, ptr noundef @.str.6)
  %18335 = call ptr @__errno_location() #13
  %18336 = load i32, ptr %18335, align 4, !tbaa !5
  %18337 = call ptr @strerror(i32 noundef %18336) #12
  %18338 = call ptr @__errno_location() #13
  %18339 = load i32, ptr %18338, align 4, !tbaa !5
  %18340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18327, ptr noundef @.str.4, i32 noundef %18328, ptr noundef @.str.112, ptr noundef @.str.3, i32 noundef 731, ptr noundef %18331, ptr noundef %18334, ptr noundef %18337, i32 noundef %18339) #12
  br label %18358

18341:                                            ; preds = %18319, %18312
  %18342 = load i32, ptr %398, align 4, !tbaa !5
  %18343 = call ptr @__errno_location() #13
  store i32 %18342, ptr %18343, align 4, !tbaa !5
  %18344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18345 = load i32, ptr @test_count, align 4, !tbaa !5
  %18346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18347 = load i32, ptr %18346, align 4, !tbaa !5
  %18348 = call ptr @s2n_strerror(i32 noundef %18347, ptr noundef @.str.6)
  %18349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18350 = load i32, ptr %18349, align 4, !tbaa !5
  %18351 = call ptr @s2n_strerror_debug(i32 noundef %18350, ptr noundef @.str.6)
  %18352 = call ptr @__errno_location() #13
  %18353 = load i32, ptr %18352, align 4, !tbaa !5
  %18354 = call ptr @strerror(i32 noundef %18353) #12
  %18355 = call ptr @__errno_location() #13
  %18356 = load i32, ptr %18355, align 4, !tbaa !5
  %18357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18344, ptr noundef @.str.7, i32 noundef %18345, ptr noundef @.str.112, ptr noundef @.str.3, i32 noundef 731, ptr noundef %18348, ptr noundef %18351, ptr noundef %18354, i32 noundef %18356) #12
  br label %18358

18358:                                            ; preds = %18341, %18324
  call void @llvm.lifetime.end.p0(i64 4, ptr %398) #12
  br label %18359

18359:                                            ; preds = %18358
  br label %18360

18360:                                            ; preds = %18359
  call void @exit(i32 noundef 1) #14
  unreachable

18361:                                            ; No predecessors!
  br label %18362

18362:                                            ; preds = %18361
  br label %18363

18363:                                            ; preds = %18362, %18303
  br label %18364

18364:                                            ; preds = %18363
  br label %18365

18365:                                            ; preds = %18364
  br label %18366

18366:                                            ; preds = %18365
  %18367 = load i32, ptr @test_count, align 4, !tbaa !5
  %18368 = add nsw i32 %18367, 1
  store i32 %18368, ptr @test_count, align 4, !tbaa !5
  %18369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18370 = load i32, ptr %18369, align 4, !tbaa !5
  %18371 = icmp eq i32 %18370, 0
  br i1 %18371, label %18372, label %18425

18372:                                            ; preds = %18366
  br label %18373

18373:                                            ; preds = %18372
  br label %18374

18374:                                            ; preds = %18373
  call void @llvm.lifetime.start.p0(i64 4, ptr %399) #12
  %18375 = call ptr @__errno_location() #13
  %18376 = load i32, ptr %18375, align 4, !tbaa !5
  store i32 %18376, ptr %399, align 4, !tbaa !5
  %18377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18378 = call i32 @s2n_print_stacktrace(ptr noundef %18377)
  %18379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18380 = trunc i8 %18379 to i1
  br i1 %18380, label %18381, label %18403

18381:                                            ; preds = %18374
  %18382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18383 = call i32 @fileno(ptr noundef %18382) #12
  %18384 = call i32 @isatty(i32 noundef %18383) #12
  %18385 = icmp ne i32 %18384, 0
  br i1 %18385, label %18386, label %18403

18386:                                            ; preds = %18381
  %18387 = load i32, ptr %399, align 4, !tbaa !5
  %18388 = call ptr @__errno_location() #13
  store i32 %18387, ptr %18388, align 4, !tbaa !5
  %18389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18390 = load i32, ptr @test_count, align 4, !tbaa !5
  %18391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18392 = load i32, ptr %18391, align 4, !tbaa !5
  %18393 = call ptr @s2n_strerror(i32 noundef %18392, ptr noundef @.str.6)
  %18394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18395 = load i32, ptr %18394, align 4, !tbaa !5
  %18396 = call ptr @s2n_strerror_debug(i32 noundef %18395, ptr noundef @.str.6)
  %18397 = call ptr @__errno_location() #13
  %18398 = load i32, ptr %18397, align 4, !tbaa !5
  %18399 = call ptr @strerror(i32 noundef %18398) #12
  %18400 = call ptr @__errno_location() #13
  %18401 = load i32, ptr %18400, align 4, !tbaa !5
  %18402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18389, ptr noundef @.str.4, i32 noundef %18390, ptr noundef @.str.113, ptr noundef @.str.3, i32 noundef 731, ptr noundef %18393, ptr noundef %18396, ptr noundef %18399, i32 noundef %18401) #12
  br label %18420

18403:                                            ; preds = %18381, %18374
  %18404 = load i32, ptr %399, align 4, !tbaa !5
  %18405 = call ptr @__errno_location() #13
  store i32 %18404, ptr %18405, align 4, !tbaa !5
  %18406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18407 = load i32, ptr @test_count, align 4, !tbaa !5
  %18408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18409 = load i32, ptr %18408, align 4, !tbaa !5
  %18410 = call ptr @s2n_strerror(i32 noundef %18409, ptr noundef @.str.6)
  %18411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18412 = load i32, ptr %18411, align 4, !tbaa !5
  %18413 = call ptr @s2n_strerror_debug(i32 noundef %18412, ptr noundef @.str.6)
  %18414 = call ptr @__errno_location() #13
  %18415 = load i32, ptr %18414, align 4, !tbaa !5
  %18416 = call ptr @strerror(i32 noundef %18415) #12
  %18417 = call ptr @__errno_location() #13
  %18418 = load i32, ptr %18417, align 4, !tbaa !5
  %18419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18406, ptr noundef @.str.7, i32 noundef %18407, ptr noundef @.str.113, ptr noundef @.str.3, i32 noundef 731, ptr noundef %18410, ptr noundef %18413, ptr noundef %18416, i32 noundef %18418) #12
  br label %18420

18420:                                            ; preds = %18403, %18386
  call void @llvm.lifetime.end.p0(i64 4, ptr %399) #12
  br label %18421

18421:                                            ; preds = %18420
  br label %18422

18422:                                            ; preds = %18421
  call void @exit(i32 noundef 1) #14
  unreachable

18423:                                            ; No predecessors!
  br label %18424

18424:                                            ; preds = %18423
  br label %18425

18425:                                            ; preds = %18424, %18366
  br label %18426

18426:                                            ; preds = %18425
  br label %18427

18427:                                            ; preds = %18426
  br label %18428

18428:                                            ; preds = %18427
  %18429 = load i32, ptr @test_count, align 4, !tbaa !5
  %18430 = add nsw i32 %18429, 1
  store i32 %18430, ptr @test_count, align 4, !tbaa !5
  %18431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18432 = load i32, ptr %18431, align 4, !tbaa !5
  %18433 = call ptr @s2n_strerror_debug(i32 noundef %18432, ptr noundef @.str.6)
  %18434 = icmp eq ptr %18433, null
  br i1 %18434, label %18435, label %18488

18435:                                            ; preds = %18428
  br label %18436

18436:                                            ; preds = %18435
  br label %18437

18437:                                            ; preds = %18436
  call void @llvm.lifetime.start.p0(i64 4, ptr %400) #12
  %18438 = call ptr @__errno_location() #13
  %18439 = load i32, ptr %18438, align 4, !tbaa !5
  store i32 %18439, ptr %400, align 4, !tbaa !5
  %18440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18441 = call i32 @s2n_print_stacktrace(ptr noundef %18440)
  %18442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18443 = trunc i8 %18442 to i1
  br i1 %18443, label %18444, label %18466

18444:                                            ; preds = %18437
  %18445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18446 = call i32 @fileno(ptr noundef %18445) #12
  %18447 = call i32 @isatty(i32 noundef %18446) #12
  %18448 = icmp ne i32 %18447, 0
  br i1 %18448, label %18449, label %18466

18449:                                            ; preds = %18444
  %18450 = load i32, ptr %400, align 4, !tbaa !5
  %18451 = call ptr @__errno_location() #13
  store i32 %18450, ptr %18451, align 4, !tbaa !5
  %18452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18453 = load i32, ptr @test_count, align 4, !tbaa !5
  %18454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18455 = load i32, ptr %18454, align 4, !tbaa !5
  %18456 = call ptr @s2n_strerror(i32 noundef %18455, ptr noundef @.str.6)
  %18457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18458 = load i32, ptr %18457, align 4, !tbaa !5
  %18459 = call ptr @s2n_strerror_debug(i32 noundef %18458, ptr noundef @.str.6)
  %18460 = call ptr @__errno_location() #13
  %18461 = load i32, ptr %18460, align 4, !tbaa !5
  %18462 = call ptr @strerror(i32 noundef %18461) #12
  %18463 = call ptr @__errno_location() #13
  %18464 = load i32, ptr %18463, align 4, !tbaa !5
  %18465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18452, ptr noundef @.str.4, i32 noundef %18453, ptr noundef @.str.70, ptr noundef @.str.3, i32 noundef 731, ptr noundef %18456, ptr noundef %18459, ptr noundef %18462, i32 noundef %18464) #12
  br label %18483

18466:                                            ; preds = %18444, %18437
  %18467 = load i32, ptr %400, align 4, !tbaa !5
  %18468 = call ptr @__errno_location() #13
  store i32 %18467, ptr %18468, align 4, !tbaa !5
  %18469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18470 = load i32, ptr @test_count, align 4, !tbaa !5
  %18471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18472 = load i32, ptr %18471, align 4, !tbaa !5
  %18473 = call ptr @s2n_strerror(i32 noundef %18472, ptr noundef @.str.6)
  %18474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18475 = load i32, ptr %18474, align 4, !tbaa !5
  %18476 = call ptr @s2n_strerror_debug(i32 noundef %18475, ptr noundef @.str.6)
  %18477 = call ptr @__errno_location() #13
  %18478 = load i32, ptr %18477, align 4, !tbaa !5
  %18479 = call ptr @strerror(i32 noundef %18478) #12
  %18480 = call ptr @__errno_location() #13
  %18481 = load i32, ptr %18480, align 4, !tbaa !5
  %18482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18469, ptr noundef @.str.7, i32 noundef %18470, ptr noundef @.str.70, ptr noundef @.str.3, i32 noundef 731, ptr noundef %18473, ptr noundef %18476, ptr noundef %18479, i32 noundef %18481) #12
  br label %18483

18483:                                            ; preds = %18466, %18449
  call void @llvm.lifetime.end.p0(i64 4, ptr %400) #12
  br label %18484

18484:                                            ; preds = %18483
  br label %18485

18485:                                            ; preds = %18484
  call void @exit(i32 noundef 1) #14
  unreachable

18486:                                            ; No predecessors!
  br label %18487

18487:                                            ; preds = %18486
  br label %18488

18488:                                            ; preds = %18487, %18428
  br label %18489

18489:                                            ; preds = %18488
  br label %18490

18490:                                            ; preds = %18489
  br label %18491

18491:                                            ; preds = %18490
  %18492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %18492, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %18493 = call ptr @__errno_location() #13
  store i32 0, ptr %18493, align 4, !tbaa !5
  br label %18494

18494:                                            ; preds = %18491
  br label %18495

18495:                                            ; preds = %18494
  br label %18496

18496:                                            ; preds = %18495
  br label %18497

18497:                                            ; preds = %18496
  br label %18498

18498:                                            ; preds = %18497
  %18499 = load i32, ptr @test_count, align 4, !tbaa !5
  %18500 = add nsw i32 %18499, 1
  store i32 %18500, ptr @test_count, align 4, !tbaa !5
  %18501 = call i32 @s2n_stuffer_free(ptr noundef %387)
  %18502 = icmp eq i32 %18501, -1
  br i1 %18502, label %18503, label %18556

18503:                                            ; preds = %18498
  br label %18504

18504:                                            ; preds = %18503
  br label %18505

18505:                                            ; preds = %18504
  call void @llvm.lifetime.start.p0(i64 4, ptr %401) #12
  %18506 = call ptr @__errno_location() #13
  %18507 = load i32, ptr %18506, align 4, !tbaa !5
  store i32 %18507, ptr %401, align 4, !tbaa !5
  %18508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18509 = call i32 @s2n_print_stacktrace(ptr noundef %18508)
  %18510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18511 = trunc i8 %18510 to i1
  br i1 %18511, label %18512, label %18534

18512:                                            ; preds = %18505
  %18513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18514 = call i32 @fileno(ptr noundef %18513) #12
  %18515 = call i32 @isatty(i32 noundef %18514) #12
  %18516 = icmp ne i32 %18515, 0
  br i1 %18516, label %18517, label %18534

18517:                                            ; preds = %18512
  %18518 = load i32, ptr %401, align 4, !tbaa !5
  %18519 = call ptr @__errno_location() #13
  store i32 %18518, ptr %18519, align 4, !tbaa !5
  %18520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18521 = load i32, ptr @test_count, align 4, !tbaa !5
  %18522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18523 = load i32, ptr %18522, align 4, !tbaa !5
  %18524 = call ptr @s2n_strerror(i32 noundef %18523, ptr noundef @.str.6)
  %18525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18526 = load i32, ptr %18525, align 4, !tbaa !5
  %18527 = call ptr @s2n_strerror_debug(i32 noundef %18526, ptr noundef @.str.6)
  %18528 = call ptr @__errno_location() #13
  %18529 = load i32, ptr %18528, align 4, !tbaa !5
  %18530 = call ptr @strerror(i32 noundef %18529) #12
  %18531 = call ptr @__errno_location() #13
  %18532 = load i32, ptr %18531, align 4, !tbaa !5
  %18533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18520, ptr noundef @.str.4, i32 noundef %18521, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 733, ptr noundef %18524, ptr noundef %18527, ptr noundef %18530, i32 noundef %18532) #12
  br label %18551

18534:                                            ; preds = %18512, %18505
  %18535 = load i32, ptr %401, align 4, !tbaa !5
  %18536 = call ptr @__errno_location() #13
  store i32 %18535, ptr %18536, align 4, !tbaa !5
  %18537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18538 = load i32, ptr @test_count, align 4, !tbaa !5
  %18539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18540 = load i32, ptr %18539, align 4, !tbaa !5
  %18541 = call ptr @s2n_strerror(i32 noundef %18540, ptr noundef @.str.6)
  %18542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18543 = load i32, ptr %18542, align 4, !tbaa !5
  %18544 = call ptr @s2n_strerror_debug(i32 noundef %18543, ptr noundef @.str.6)
  %18545 = call ptr @__errno_location() #13
  %18546 = load i32, ptr %18545, align 4, !tbaa !5
  %18547 = call ptr @strerror(i32 noundef %18546) #12
  %18548 = call ptr @__errno_location() #13
  %18549 = load i32, ptr %18548, align 4, !tbaa !5
  %18550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18537, ptr noundef @.str.7, i32 noundef %18538, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 733, ptr noundef %18541, ptr noundef %18544, ptr noundef %18547, i32 noundef %18549) #12
  br label %18551

18551:                                            ; preds = %18534, %18517
  call void @llvm.lifetime.end.p0(i64 4, ptr %401) #12
  br label %18552

18552:                                            ; preds = %18551
  br label %18553

18553:                                            ; preds = %18552
  call void @exit(i32 noundef 1) #14
  unreachable

18554:                                            ; No predecessors!
  br label %18555

18555:                                            ; preds = %18554
  br label %18556

18556:                                            ; preds = %18555, %18498
  br label %18557

18557:                                            ; preds = %18556
  br label %18558

18558:                                            ; preds = %18557
  br label %18559

18559:                                            ; preds = %18558
  %18560 = load i32, ptr @test_count, align 4, !tbaa !5
  %18561 = add nsw i32 %18560, 1
  store i32 %18561, ptr @test_count, align 4, !tbaa !5
  %18562 = load ptr, ptr %386, align 8, !tbaa !9
  %18563 = call i32 @s2n_connection_free(ptr noundef %18562)
  %18564 = icmp eq i32 %18563, -1
  br i1 %18564, label %18565, label %18618

18565:                                            ; preds = %18559
  br label %18566

18566:                                            ; preds = %18565
  br label %18567

18567:                                            ; preds = %18566
  call void @llvm.lifetime.start.p0(i64 4, ptr %402) #12
  %18568 = call ptr @__errno_location() #13
  %18569 = load i32, ptr %18568, align 4, !tbaa !5
  store i32 %18569, ptr %402, align 4, !tbaa !5
  %18570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18571 = call i32 @s2n_print_stacktrace(ptr noundef %18570)
  %18572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18573 = trunc i8 %18572 to i1
  br i1 %18573, label %18574, label %18596

18574:                                            ; preds = %18567
  %18575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18576 = call i32 @fileno(ptr noundef %18575) #12
  %18577 = call i32 @isatty(i32 noundef %18576) #12
  %18578 = icmp ne i32 %18577, 0
  br i1 %18578, label %18579, label %18596

18579:                                            ; preds = %18574
  %18580 = load i32, ptr %402, align 4, !tbaa !5
  %18581 = call ptr @__errno_location() #13
  store i32 %18580, ptr %18581, align 4, !tbaa !5
  %18582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18583 = load i32, ptr @test_count, align 4, !tbaa !5
  %18584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18585 = load i32, ptr %18584, align 4, !tbaa !5
  %18586 = call ptr @s2n_strerror(i32 noundef %18585, ptr noundef @.str.6)
  %18587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18588 = load i32, ptr %18587, align 4, !tbaa !5
  %18589 = call ptr @s2n_strerror_debug(i32 noundef %18588, ptr noundef @.str.6)
  %18590 = call ptr @__errno_location() #13
  %18591 = load i32, ptr %18590, align 4, !tbaa !5
  %18592 = call ptr @strerror(i32 noundef %18591) #12
  %18593 = call ptr @__errno_location() #13
  %18594 = load i32, ptr %18593, align 4, !tbaa !5
  %18595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18582, ptr noundef @.str.4, i32 noundef %18583, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 734, ptr noundef %18586, ptr noundef %18589, ptr noundef %18592, i32 noundef %18594) #12
  br label %18613

18596:                                            ; preds = %18574, %18567
  %18597 = load i32, ptr %402, align 4, !tbaa !5
  %18598 = call ptr @__errno_location() #13
  store i32 %18597, ptr %18598, align 4, !tbaa !5
  %18599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18600 = load i32, ptr @test_count, align 4, !tbaa !5
  %18601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18602 = load i32, ptr %18601, align 4, !tbaa !5
  %18603 = call ptr @s2n_strerror(i32 noundef %18602, ptr noundef @.str.6)
  %18604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18605 = load i32, ptr %18604, align 4, !tbaa !5
  %18606 = call ptr @s2n_strerror_debug(i32 noundef %18605, ptr noundef @.str.6)
  %18607 = call ptr @__errno_location() #13
  %18608 = load i32, ptr %18607, align 4, !tbaa !5
  %18609 = call ptr @strerror(i32 noundef %18608) #12
  %18610 = call ptr @__errno_location() #13
  %18611 = load i32, ptr %18610, align 4, !tbaa !5
  %18612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18599, ptr noundef @.str.7, i32 noundef %18600, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 734, ptr noundef %18603, ptr noundef %18606, ptr noundef %18609, i32 noundef %18611) #12
  br label %18613

18613:                                            ; preds = %18596, %18579
  call void @llvm.lifetime.end.p0(i64 4, ptr %402) #12
  br label %18614

18614:                                            ; preds = %18613
  br label %18615

18615:                                            ; preds = %18614
  call void @exit(i32 noundef 1) #14
  unreachable

18616:                                            ; No predecessors!
  br label %18617

18617:                                            ; preds = %18616
  br label %18618

18618:                                            ; preds = %18617, %18559
  br label %18619

18619:                                            ; preds = %18618
  br label %18620

18620:                                            ; preds = %18619
  call void @llvm.lifetime.end.p0(i64 8, ptr %392) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %387) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %386) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %403) #12
  store ptr null, ptr %403, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %404) #12
  call void @llvm.memset.p0.i64(ptr align 8 %404, i8 0, i64 40, i1 false)
  br label %18621

18621:                                            ; preds = %18620
  %18622 = load i32, ptr @test_count, align 4, !tbaa !5
  %18623 = add nsw i32 %18622, 1
  store i32 %18623, ptr @test_count, align 4, !tbaa !5
  %18624 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %18624, ptr %403, align 8, !tbaa !9
  %18625 = icmp eq ptr %18624, null
  br i1 %18625, label %18626, label %18679

18626:                                            ; preds = %18621
  br label %18627

18627:                                            ; preds = %18626
  br label %18628

18628:                                            ; preds = %18627
  call void @llvm.lifetime.start.p0(i64 4, ptr %405) #12
  %18629 = call ptr @__errno_location() #13
  %18630 = load i32, ptr %18629, align 4, !tbaa !5
  store i32 %18630, ptr %405, align 4, !tbaa !5
  %18631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18632 = call i32 @s2n_print_stacktrace(ptr noundef %18631)
  %18633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18634 = trunc i8 %18633 to i1
  br i1 %18634, label %18635, label %18657

18635:                                            ; preds = %18628
  %18636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18637 = call i32 @fileno(ptr noundef %18636) #12
  %18638 = call i32 @isatty(i32 noundef %18637) #12
  %18639 = icmp ne i32 %18638, 0
  br i1 %18639, label %18640, label %18657

18640:                                            ; preds = %18635
  %18641 = load i32, ptr %405, align 4, !tbaa !5
  %18642 = call ptr @__errno_location() #13
  store i32 %18641, ptr %18642, align 4, !tbaa !5
  %18643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18644 = load i32, ptr @test_count, align 4, !tbaa !5
  %18645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18646 = load i32, ptr %18645, align 4, !tbaa !5
  %18647 = call ptr @s2n_strerror(i32 noundef %18646, ptr noundef @.str.6)
  %18648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18649 = load i32, ptr %18648, align 4, !tbaa !5
  %18650 = call ptr @s2n_strerror_debug(i32 noundef %18649, ptr noundef @.str.6)
  %18651 = call ptr @__errno_location() #13
  %18652 = load i32, ptr %18651, align 4, !tbaa !5
  %18653 = call ptr @strerror(i32 noundef %18652) #12
  %18654 = call ptr @__errno_location() #13
  %18655 = load i32, ptr %18654, align 4, !tbaa !5
  %18656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18643, ptr noundef @.str.4, i32 noundef %18644, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 741, ptr noundef %18647, ptr noundef %18650, ptr noundef %18653, i32 noundef %18655) #12
  br label %18674

18657:                                            ; preds = %18635, %18628
  %18658 = load i32, ptr %405, align 4, !tbaa !5
  %18659 = call ptr @__errno_location() #13
  store i32 %18658, ptr %18659, align 4, !tbaa !5
  %18660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18661 = load i32, ptr @test_count, align 4, !tbaa !5
  %18662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18663 = load i32, ptr %18662, align 4, !tbaa !5
  %18664 = call ptr @s2n_strerror(i32 noundef %18663, ptr noundef @.str.6)
  %18665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18666 = load i32, ptr %18665, align 4, !tbaa !5
  %18667 = call ptr @s2n_strerror_debug(i32 noundef %18666, ptr noundef @.str.6)
  %18668 = call ptr @__errno_location() #13
  %18669 = load i32, ptr %18668, align 4, !tbaa !5
  %18670 = call ptr @strerror(i32 noundef %18669) #12
  %18671 = call ptr @__errno_location() #13
  %18672 = load i32, ptr %18671, align 4, !tbaa !5
  %18673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18660, ptr noundef @.str.7, i32 noundef %18661, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 741, ptr noundef %18664, ptr noundef %18667, ptr noundef %18670, i32 noundef %18672) #12
  br label %18674

18674:                                            ; preds = %18657, %18640
  call void @llvm.lifetime.end.p0(i64 4, ptr %405) #12
  br label %18675

18675:                                            ; preds = %18674
  br label %18676

18676:                                            ; preds = %18675
  call void @exit(i32 noundef 1) #14
  unreachable

18677:                                            ; No predecessors!
  br label %18678

18678:                                            ; preds = %18677
  br label %18679

18679:                                            ; preds = %18678, %18621
  br label %18680

18680:                                            ; preds = %18679
  br label %18681

18681:                                            ; preds = %18680
  %18682 = load ptr, ptr %403, align 8, !tbaa !9
  %18683 = getelementptr inbounds %struct.s2n_connection, ptr %18682, i32 0, i32 23
  store i8 34, ptr %18683, align 4, !tbaa !63
  br label %18684

18684:                                            ; preds = %18681
  %18685 = load i32, ptr @test_count, align 4, !tbaa !5
  %18686 = add nsw i32 %18685, 1
  store i32 %18686, ptr @test_count, align 4, !tbaa !5
  %18687 = load ptr, ptr %403, align 8, !tbaa !9
  %18688 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %18687)
  %18689 = getelementptr inbounds %struct.s2n_result, ptr %406, i32 0, i32 0
  store i32 %18688, ptr %18689, align 4
  %18690 = getelementptr inbounds %struct.s2n_result, ptr %406, i32 0, i32 0
  %18691 = load i32, ptr %18690, align 4
  %18692 = call zeroext i1 @s2n_result_is_ok(i32 %18691)
  br i1 %18692, label %18746, label %18693

18693:                                            ; preds = %18684
  br label %18694

18694:                                            ; preds = %18693
  br label %18695

18695:                                            ; preds = %18694
  call void @llvm.lifetime.start.p0(i64 4, ptr %407) #12
  %18696 = call ptr @__errno_location() #13
  %18697 = load i32, ptr %18696, align 4, !tbaa !5
  store i32 %18697, ptr %407, align 4, !tbaa !5
  %18698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18699 = call i32 @s2n_print_stacktrace(ptr noundef %18698)
  %18700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18701 = trunc i8 %18700 to i1
  br i1 %18701, label %18702, label %18724

18702:                                            ; preds = %18695
  %18703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18704 = call i32 @fileno(ptr noundef %18703) #12
  %18705 = call i32 @isatty(i32 noundef %18704) #12
  %18706 = icmp ne i32 %18705, 0
  br i1 %18706, label %18707, label %18724

18707:                                            ; preds = %18702
  %18708 = load i32, ptr %407, align 4, !tbaa !5
  %18709 = call ptr @__errno_location() #13
  store i32 %18708, ptr %18709, align 4, !tbaa !5
  %18710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18711 = load i32, ptr @test_count, align 4, !tbaa !5
  %18712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18713 = load i32, ptr %18712, align 4, !tbaa !5
  %18714 = call ptr @s2n_strerror(i32 noundef %18713, ptr noundef @.str.6)
  %18715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18716 = load i32, ptr %18715, align 4, !tbaa !5
  %18717 = call ptr @s2n_strerror_debug(i32 noundef %18716, ptr noundef @.str.6)
  %18718 = call ptr @__errno_location() #13
  %18719 = load i32, ptr %18718, align 4, !tbaa !5
  %18720 = call ptr @strerror(i32 noundef %18719) #12
  %18721 = call ptr @__errno_location() #13
  %18722 = load i32, ptr %18721, align 4, !tbaa !5
  %18723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18710, ptr noundef @.str.4, i32 noundef %18711, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 743, ptr noundef %18714, ptr noundef %18717, ptr noundef %18720, i32 noundef %18722) #12
  br label %18741

18724:                                            ; preds = %18702, %18695
  %18725 = load i32, ptr %407, align 4, !tbaa !5
  %18726 = call ptr @__errno_location() #13
  store i32 %18725, ptr %18726, align 4, !tbaa !5
  %18727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18728 = load i32, ptr @test_count, align 4, !tbaa !5
  %18729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18730 = load i32, ptr %18729, align 4, !tbaa !5
  %18731 = call ptr @s2n_strerror(i32 noundef %18730, ptr noundef @.str.6)
  %18732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18733 = load i32, ptr %18732, align 4, !tbaa !5
  %18734 = call ptr @s2n_strerror_debug(i32 noundef %18733, ptr noundef @.str.6)
  %18735 = call ptr @__errno_location() #13
  %18736 = load i32, ptr %18735, align 4, !tbaa !5
  %18737 = call ptr @strerror(i32 noundef %18736) #12
  %18738 = call ptr @__errno_location() #13
  %18739 = load i32, ptr %18738, align 4, !tbaa !5
  %18740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18727, ptr noundef @.str.7, i32 noundef %18728, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 743, ptr noundef %18731, ptr noundef %18734, ptr noundef %18737, i32 noundef %18739) #12
  br label %18741

18741:                                            ; preds = %18724, %18707
  call void @llvm.lifetime.end.p0(i64 4, ptr %407) #12
  br label %18742

18742:                                            ; preds = %18741
  br label %18743

18743:                                            ; preds = %18742
  call void @exit(i32 noundef 1) #14
  unreachable

18744:                                            ; No predecessors!
  br label %18745

18745:                                            ; preds = %18744
  br label %18746

18746:                                            ; preds = %18745, %18684
  br label %18747

18747:                                            ; preds = %18746
  br label %18748

18748:                                            ; preds = %18747
  br label %18749

18749:                                            ; preds = %18748
  %18750 = load i32, ptr @test_count, align 4, !tbaa !5
  %18751 = add nsw i32 %18750, 1
  store i32 %18751, ptr @test_count, align 4, !tbaa !5
  %18752 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %404, i32 noundef 0)
  %18753 = icmp eq i32 %18752, -1
  br i1 %18753, label %18754, label %18807

18754:                                            ; preds = %18749
  br label %18755

18755:                                            ; preds = %18754
  br label %18756

18756:                                            ; preds = %18755
  call void @llvm.lifetime.start.p0(i64 4, ptr %408) #12
  %18757 = call ptr @__errno_location() #13
  %18758 = load i32, ptr %18757, align 4, !tbaa !5
  store i32 %18758, ptr %408, align 4, !tbaa !5
  %18759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18760 = call i32 @s2n_print_stacktrace(ptr noundef %18759)
  %18761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18762 = trunc i8 %18761 to i1
  br i1 %18762, label %18763, label %18785

18763:                                            ; preds = %18756
  %18764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18765 = call i32 @fileno(ptr noundef %18764) #12
  %18766 = call i32 @isatty(i32 noundef %18765) #12
  %18767 = icmp ne i32 %18766, 0
  br i1 %18767, label %18768, label %18785

18768:                                            ; preds = %18763
  %18769 = load i32, ptr %408, align 4, !tbaa !5
  %18770 = call ptr @__errno_location() #13
  store i32 %18769, ptr %18770, align 4, !tbaa !5
  %18771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18772 = load i32, ptr @test_count, align 4, !tbaa !5
  %18773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18774 = load i32, ptr %18773, align 4, !tbaa !5
  %18775 = call ptr @s2n_strerror(i32 noundef %18774, ptr noundef @.str.6)
  %18776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18777 = load i32, ptr %18776, align 4, !tbaa !5
  %18778 = call ptr @s2n_strerror_debug(i32 noundef %18777, ptr noundef @.str.6)
  %18779 = call ptr @__errno_location() #13
  %18780 = load i32, ptr %18779, align 4, !tbaa !5
  %18781 = call ptr @strerror(i32 noundef %18780) #12
  %18782 = call ptr @__errno_location() #13
  %18783 = load i32, ptr %18782, align 4, !tbaa !5
  %18784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18771, ptr noundef @.str.4, i32 noundef %18772, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 744, ptr noundef %18775, ptr noundef %18778, ptr noundef %18781, i32 noundef %18783) #12
  br label %18802

18785:                                            ; preds = %18763, %18756
  %18786 = load i32, ptr %408, align 4, !tbaa !5
  %18787 = call ptr @__errno_location() #13
  store i32 %18786, ptr %18787, align 4, !tbaa !5
  %18788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18789 = load i32, ptr @test_count, align 4, !tbaa !5
  %18790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18791 = load i32, ptr %18790, align 4, !tbaa !5
  %18792 = call ptr @s2n_strerror(i32 noundef %18791, ptr noundef @.str.6)
  %18793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18794 = load i32, ptr %18793, align 4, !tbaa !5
  %18795 = call ptr @s2n_strerror_debug(i32 noundef %18794, ptr noundef @.str.6)
  %18796 = call ptr @__errno_location() #13
  %18797 = load i32, ptr %18796, align 4, !tbaa !5
  %18798 = call ptr @strerror(i32 noundef %18797) #12
  %18799 = call ptr @__errno_location() #13
  %18800 = load i32, ptr %18799, align 4, !tbaa !5
  %18801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18788, ptr noundef @.str.7, i32 noundef %18789, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 744, ptr noundef %18792, ptr noundef %18795, ptr noundef %18798, i32 noundef %18800) #12
  br label %18802

18802:                                            ; preds = %18785, %18768
  call void @llvm.lifetime.end.p0(i64 4, ptr %408) #12
  br label %18803

18803:                                            ; preds = %18802
  br label %18804

18804:                                            ; preds = %18803
  call void @exit(i32 noundef 1) #14
  unreachable

18805:                                            ; No predecessors!
  br label %18806

18806:                                            ; preds = %18805
  br label %18807

18807:                                            ; preds = %18806, %18749
  br label %18808

18808:                                            ; preds = %18807
  br label %18809

18809:                                            ; preds = %18808
  call void @llvm.lifetime.start.p0(i64 8, ptr %409) #12
  store ptr null, ptr %409, align 8, !tbaa !9
  br label %18810

18810:                                            ; preds = %18809
  %18811 = load i32, ptr @test_count, align 4, !tbaa !5
  %18812 = add nsw i32 %18811, 1
  store i32 %18812, ptr @test_count, align 4, !tbaa !5
  %18813 = load ptr, ptr %403, align 8, !tbaa !9
  %18814 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %18813, ptr noundef %409)
  %18815 = icmp eq i32 %18814, -1
  br i1 %18815, label %18816, label %18869

18816:                                            ; preds = %18810
  br label %18817

18817:                                            ; preds = %18816
  br label %18818

18818:                                            ; preds = %18817
  call void @llvm.lifetime.start.p0(i64 4, ptr %410) #12
  %18819 = call ptr @__errno_location() #13
  %18820 = load i32, ptr %18819, align 4, !tbaa !5
  store i32 %18820, ptr %410, align 4, !tbaa !5
  %18821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18822 = call i32 @s2n_print_stacktrace(ptr noundef %18821)
  %18823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18824 = trunc i8 %18823 to i1
  br i1 %18824, label %18825, label %18847

18825:                                            ; preds = %18818
  %18826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18827 = call i32 @fileno(ptr noundef %18826) #12
  %18828 = call i32 @isatty(i32 noundef %18827) #12
  %18829 = icmp ne i32 %18828, 0
  br i1 %18829, label %18830, label %18847

18830:                                            ; preds = %18825
  %18831 = load i32, ptr %410, align 4, !tbaa !5
  %18832 = call ptr @__errno_location() #13
  store i32 %18831, ptr %18832, align 4, !tbaa !5
  %18833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18834 = load i32, ptr @test_count, align 4, !tbaa !5
  %18835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18836 = load i32, ptr %18835, align 4, !tbaa !5
  %18837 = call ptr @s2n_strerror(i32 noundef %18836, ptr noundef @.str.6)
  %18838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18839 = load i32, ptr %18838, align 4, !tbaa !5
  %18840 = call ptr @s2n_strerror_debug(i32 noundef %18839, ptr noundef @.str.6)
  %18841 = call ptr @__errno_location() #13
  %18842 = load i32, ptr %18841, align 4, !tbaa !5
  %18843 = call ptr @strerror(i32 noundef %18842) #12
  %18844 = call ptr @__errno_location() #13
  %18845 = load i32, ptr %18844, align 4, !tbaa !5
  %18846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18833, ptr noundef @.str.4, i32 noundef %18834, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 747, ptr noundef %18837, ptr noundef %18840, ptr noundef %18843, i32 noundef %18845) #12
  br label %18864

18847:                                            ; preds = %18825, %18818
  %18848 = load i32, ptr %410, align 4, !tbaa !5
  %18849 = call ptr @__errno_location() #13
  store i32 %18848, ptr %18849, align 4, !tbaa !5
  %18850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18851 = load i32, ptr @test_count, align 4, !tbaa !5
  %18852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18853 = load i32, ptr %18852, align 4, !tbaa !5
  %18854 = call ptr @s2n_strerror(i32 noundef %18853, ptr noundef @.str.6)
  %18855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18856 = load i32, ptr %18855, align 4, !tbaa !5
  %18857 = call ptr @s2n_strerror_debug(i32 noundef %18856, ptr noundef @.str.6)
  %18858 = call ptr @__errno_location() #13
  %18859 = load i32, ptr %18858, align 4, !tbaa !5
  %18860 = call ptr @strerror(i32 noundef %18859) #12
  %18861 = call ptr @__errno_location() #13
  %18862 = load i32, ptr %18861, align 4, !tbaa !5
  %18863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18850, ptr noundef @.str.7, i32 noundef %18851, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 747, ptr noundef %18854, ptr noundef %18857, ptr noundef %18860, i32 noundef %18862) #12
  br label %18864

18864:                                            ; preds = %18847, %18830
  call void @llvm.lifetime.end.p0(i64 4, ptr %410) #12
  br label %18865

18865:                                            ; preds = %18864
  br label %18866

18866:                                            ; preds = %18865
  call void @exit(i32 noundef 1) #14
  unreachable

18867:                                            ; No predecessors!
  br label %18868

18868:                                            ; preds = %18867
  br label %18869

18869:                                            ; preds = %18868, %18810
  br label %18870

18870:                                            ; preds = %18869
  br label %18871

18871:                                            ; preds = %18870
  br label %18872

18872:                                            ; preds = %18871
  %18873 = load i32, ptr @test_count, align 4, !tbaa !5
  %18874 = add nsw i32 %18873, 1
  store i32 %18874, ptr @test_count, align 4, !tbaa !5
  %18875 = load ptr, ptr %409, align 8, !tbaa !9
  %18876 = icmp eq ptr %18875, null
  br i1 %18876, label %18877, label %18930

18877:                                            ; preds = %18872
  br label %18878

18878:                                            ; preds = %18877
  br label %18879

18879:                                            ; preds = %18878
  call void @llvm.lifetime.start.p0(i64 4, ptr %411) #12
  %18880 = call ptr @__errno_location() #13
  %18881 = load i32, ptr %18880, align 4, !tbaa !5
  store i32 %18881, ptr %411, align 4, !tbaa !5
  %18882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18883 = call i32 @s2n_print_stacktrace(ptr noundef %18882)
  %18884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18885 = trunc i8 %18884 to i1
  br i1 %18885, label %18886, label %18908

18886:                                            ; preds = %18879
  %18887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18888 = call i32 @fileno(ptr noundef %18887) #12
  %18889 = call i32 @isatty(i32 noundef %18888) #12
  %18890 = icmp ne i32 %18889, 0
  br i1 %18890, label %18891, label %18908

18891:                                            ; preds = %18886
  %18892 = load i32, ptr %411, align 4, !tbaa !5
  %18893 = call ptr @__errno_location() #13
  store i32 %18892, ptr %18893, align 4, !tbaa !5
  %18894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18895 = load i32, ptr @test_count, align 4, !tbaa !5
  %18896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18897 = load i32, ptr %18896, align 4, !tbaa !5
  %18898 = call ptr @s2n_strerror(i32 noundef %18897, ptr noundef @.str.6)
  %18899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18900 = load i32, ptr %18899, align 4, !tbaa !5
  %18901 = call ptr @s2n_strerror_debug(i32 noundef %18900, ptr noundef @.str.6)
  %18902 = call ptr @__errno_location() #13
  %18903 = load i32, ptr %18902, align 4, !tbaa !5
  %18904 = call ptr @strerror(i32 noundef %18903) #12
  %18905 = call ptr @__errno_location() #13
  %18906 = load i32, ptr %18905, align 4, !tbaa !5
  %18907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18894, ptr noundef @.str.4, i32 noundef %18895, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 748, ptr noundef %18898, ptr noundef %18901, ptr noundef %18904, i32 noundef %18906) #12
  br label %18925

18908:                                            ; preds = %18886, %18879
  %18909 = load i32, ptr %411, align 4, !tbaa !5
  %18910 = call ptr @__errno_location() #13
  store i32 %18909, ptr %18910, align 4, !tbaa !5
  %18911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18912 = load i32, ptr @test_count, align 4, !tbaa !5
  %18913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18914 = load i32, ptr %18913, align 4, !tbaa !5
  %18915 = call ptr @s2n_strerror(i32 noundef %18914, ptr noundef @.str.6)
  %18916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18917 = load i32, ptr %18916, align 4, !tbaa !5
  %18918 = call ptr @s2n_strerror_debug(i32 noundef %18917, ptr noundef @.str.6)
  %18919 = call ptr @__errno_location() #13
  %18920 = load i32, ptr %18919, align 4, !tbaa !5
  %18921 = call ptr @strerror(i32 noundef %18920) #12
  %18922 = call ptr @__errno_location() #13
  %18923 = load i32, ptr %18922, align 4, !tbaa !5
  %18924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18911, ptr noundef @.str.7, i32 noundef %18912, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 748, ptr noundef %18915, ptr noundef %18918, ptr noundef %18921, i32 noundef %18923) #12
  br label %18925

18925:                                            ; preds = %18908, %18891
  call void @llvm.lifetime.end.p0(i64 4, ptr %411) #12
  br label %18926

18926:                                            ; preds = %18925
  br label %18927

18927:                                            ; preds = %18926
  call void @exit(i32 noundef 1) #14
  unreachable

18928:                                            ; No predecessors!
  br label %18929

18929:                                            ; preds = %18928
  br label %18930

18930:                                            ; preds = %18929, %18872
  br label %18931

18931:                                            ; preds = %18930
  br label %18932

18932:                                            ; preds = %18931
  br label %18933

18933:                                            ; preds = %18932
  %18934 = load i32, ptr @test_count, align 4, !tbaa !5
  %18935 = add nsw i32 %18934, 1
  store i32 %18935, ptr @test_count, align 4, !tbaa !5
  %18936 = call i32 @s2n_stuffer_skip_write(ptr noundef %404, i32 noundef 2)
  %18937 = icmp eq i32 %18936, -1
  br i1 %18937, label %18938, label %18991

18938:                                            ; preds = %18933
  br label %18939

18939:                                            ; preds = %18938
  br label %18940

18940:                                            ; preds = %18939
  call void @llvm.lifetime.start.p0(i64 4, ptr %412) #12
  %18941 = call ptr @__errno_location() #13
  %18942 = load i32, ptr %18941, align 4, !tbaa !5
  store i32 %18942, ptr %412, align 4, !tbaa !5
  %18943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18944 = call i32 @s2n_print_stacktrace(ptr noundef %18943)
  %18945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18946 = trunc i8 %18945 to i1
  br i1 %18946, label %18947, label %18969

18947:                                            ; preds = %18940
  %18948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18949 = call i32 @fileno(ptr noundef %18948) #12
  %18950 = call i32 @isatty(i32 noundef %18949) #12
  %18951 = icmp ne i32 %18950, 0
  br i1 %18951, label %18952, label %18969

18952:                                            ; preds = %18947
  %18953 = load i32, ptr %412, align 4, !tbaa !5
  %18954 = call ptr @__errno_location() #13
  store i32 %18953, ptr %18954, align 4, !tbaa !5
  %18955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18956 = load i32, ptr @test_count, align 4, !tbaa !5
  %18957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18958 = load i32, ptr %18957, align 4, !tbaa !5
  %18959 = call ptr @s2n_strerror(i32 noundef %18958, ptr noundef @.str.6)
  %18960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18961 = load i32, ptr %18960, align 4, !tbaa !5
  %18962 = call ptr @s2n_strerror_debug(i32 noundef %18961, ptr noundef @.str.6)
  %18963 = call ptr @__errno_location() #13
  %18964 = load i32, ptr %18963, align 4, !tbaa !5
  %18965 = call ptr @strerror(i32 noundef %18964) #12
  %18966 = call ptr @__errno_location() #13
  %18967 = load i32, ptr %18966, align 4, !tbaa !5
  %18968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18955, ptr noundef @.str.4, i32 noundef %18956, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 751, ptr noundef %18959, ptr noundef %18962, ptr noundef %18965, i32 noundef %18967) #12
  br label %18986

18969:                                            ; preds = %18947, %18940
  %18970 = load i32, ptr %412, align 4, !tbaa !5
  %18971 = call ptr @__errno_location() #13
  store i32 %18970, ptr %18971, align 4, !tbaa !5
  %18972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18973 = load i32, ptr @test_count, align 4, !tbaa !5
  %18974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18975 = load i32, ptr %18974, align 4, !tbaa !5
  %18976 = call ptr @s2n_strerror(i32 noundef %18975, ptr noundef @.str.6)
  %18977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18978 = load i32, ptr %18977, align 4, !tbaa !5
  %18979 = call ptr @s2n_strerror_debug(i32 noundef %18978, ptr noundef @.str.6)
  %18980 = call ptr @__errno_location() #13
  %18981 = load i32, ptr %18980, align 4, !tbaa !5
  %18982 = call ptr @strerror(i32 noundef %18981) #12
  %18983 = call ptr @__errno_location() #13
  %18984 = load i32, ptr %18983, align 4, !tbaa !5
  %18985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18972, ptr noundef @.str.7, i32 noundef %18973, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 751, ptr noundef %18976, ptr noundef %18979, ptr noundef %18982, i32 noundef %18984) #12
  br label %18986

18986:                                            ; preds = %18969, %18952
  call void @llvm.lifetime.end.p0(i64 4, ptr %412) #12
  br label %18987

18987:                                            ; preds = %18986
  br label %18988

18988:                                            ; preds = %18987
  call void @exit(i32 noundef 1) #14
  unreachable

18989:                                            ; No predecessors!
  br label %18990

18990:                                            ; preds = %18989
  br label %18991

18991:                                            ; preds = %18990, %18933
  br label %18992

18992:                                            ; preds = %18991
  br label %18993

18993:                                            ; preds = %18992
  br label %18994

18994:                                            ; preds = %18993
  %18995 = load i32, ptr @test_count, align 4, !tbaa !5
  %18996 = add nsw i32 %18995, 1
  store i32 %18996, ptr @test_count, align 4, !tbaa !5
  %18997 = load ptr, ptr %409, align 8, !tbaa !9
  %18998 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %18997, i32 0, i32 1
  %18999 = load ptr, ptr %18998, align 8, !tbaa !24
  %19000 = getelementptr inbounds ptr, ptr %18999, i64 0
  %19001 = load ptr, ptr %19000, align 8, !tbaa !9
  %19002 = call i32 @s2n_write_named_curve(ptr noundef %404, ptr noundef %19001)
  %19003 = icmp eq i32 %19002, -1
  br i1 %19003, label %19004, label %19057

19004:                                            ; preds = %18994
  br label %19005

19005:                                            ; preds = %19004
  br label %19006

19006:                                            ; preds = %19005
  call void @llvm.lifetime.start.p0(i64 4, ptr %413) #12
  %19007 = call ptr @__errno_location() #13
  %19008 = load i32, ptr %19007, align 4, !tbaa !5
  store i32 %19008, ptr %413, align 4, !tbaa !5
  %19009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19010 = call i32 @s2n_print_stacktrace(ptr noundef %19009)
  %19011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19012 = trunc i8 %19011 to i1
  br i1 %19012, label %19013, label %19035

19013:                                            ; preds = %19006
  %19014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19015 = call i32 @fileno(ptr noundef %19014) #12
  %19016 = call i32 @isatty(i32 noundef %19015) #12
  %19017 = icmp ne i32 %19016, 0
  br i1 %19017, label %19018, label %19035

19018:                                            ; preds = %19013
  %19019 = load i32, ptr %413, align 4, !tbaa !5
  %19020 = call ptr @__errno_location() #13
  store i32 %19019, ptr %19020, align 4, !tbaa !5
  %19021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19022 = load i32, ptr @test_count, align 4, !tbaa !5
  %19023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19024 = load i32, ptr %19023, align 4, !tbaa !5
  %19025 = call ptr @s2n_strerror(i32 noundef %19024, ptr noundef @.str.6)
  %19026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19027 = load i32, ptr %19026, align 4, !tbaa !5
  %19028 = call ptr @s2n_strerror_debug(i32 noundef %19027, ptr noundef @.str.6)
  %19029 = call ptr @__errno_location() #13
  %19030 = load i32, ptr %19029, align 4, !tbaa !5
  %19031 = call ptr @strerror(i32 noundef %19030) #12
  %19032 = call ptr @__errno_location() #13
  %19033 = load i32, ptr %19032, align 4, !tbaa !5
  %19034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19021, ptr noundef @.str.4, i32 noundef %19022, ptr noundef @.str.111, ptr noundef @.str.3, i32 noundef 752, ptr noundef %19025, ptr noundef %19028, ptr noundef %19031, i32 noundef %19033) #12
  br label %19052

19035:                                            ; preds = %19013, %19006
  %19036 = load i32, ptr %413, align 4, !tbaa !5
  %19037 = call ptr @__errno_location() #13
  store i32 %19036, ptr %19037, align 4, !tbaa !5
  %19038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19039 = load i32, ptr @test_count, align 4, !tbaa !5
  %19040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19041 = load i32, ptr %19040, align 4, !tbaa !5
  %19042 = call ptr @s2n_strerror(i32 noundef %19041, ptr noundef @.str.6)
  %19043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19044 = load i32, ptr %19043, align 4, !tbaa !5
  %19045 = call ptr @s2n_strerror_debug(i32 noundef %19044, ptr noundef @.str.6)
  %19046 = call ptr @__errno_location() #13
  %19047 = load i32, ptr %19046, align 4, !tbaa !5
  %19048 = call ptr @strerror(i32 noundef %19047) #12
  %19049 = call ptr @__errno_location() #13
  %19050 = load i32, ptr %19049, align 4, !tbaa !5
  %19051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19038, ptr noundef @.str.7, i32 noundef %19039, ptr noundef @.str.111, ptr noundef @.str.3, i32 noundef 752, ptr noundef %19042, ptr noundef %19045, ptr noundef %19048, i32 noundef %19050) #12
  br label %19052

19052:                                            ; preds = %19035, %19018
  call void @llvm.lifetime.end.p0(i64 4, ptr %413) #12
  br label %19053

19053:                                            ; preds = %19052
  br label %19054

19054:                                            ; preds = %19053
  call void @exit(i32 noundef 1) #14
  unreachable

19055:                                            ; No predecessors!
  br label %19056

19056:                                            ; preds = %19055
  br label %19057

19057:                                            ; preds = %19056, %18994
  br label %19058

19058:                                            ; preds = %19057
  br label %19059

19059:                                            ; preds = %19058
  br label %19060

19060:                                            ; preds = %19059
  %19061 = load i32, ptr @test_count, align 4, !tbaa !5
  %19062 = add nsw i32 %19061, 1
  store i32 %19062, ptr @test_count, align 4, !tbaa !5
  %19063 = call i32 @s2n_test_rewrite_length(ptr noundef %404)
  %19064 = icmp eq i32 %19063, -1
  br i1 %19064, label %19065, label %19118

19065:                                            ; preds = %19060
  br label %19066

19066:                                            ; preds = %19065
  br label %19067

19067:                                            ; preds = %19066
  call void @llvm.lifetime.start.p0(i64 4, ptr %414) #12
  %19068 = call ptr @__errno_location() #13
  %19069 = load i32, ptr %19068, align 4, !tbaa !5
  store i32 %19069, ptr %414, align 4, !tbaa !5
  %19070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19071 = call i32 @s2n_print_stacktrace(ptr noundef %19070)
  %19072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19073 = trunc i8 %19072 to i1
  br i1 %19073, label %19074, label %19096

19074:                                            ; preds = %19067
  %19075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19076 = call i32 @fileno(ptr noundef %19075) #12
  %19077 = call i32 @isatty(i32 noundef %19076) #12
  %19078 = icmp ne i32 %19077, 0
  br i1 %19078, label %19079, label %19096

19079:                                            ; preds = %19074
  %19080 = load i32, ptr %414, align 4, !tbaa !5
  %19081 = call ptr @__errno_location() #13
  store i32 %19080, ptr %19081, align 4, !tbaa !5
  %19082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19083 = load i32, ptr @test_count, align 4, !tbaa !5
  %19084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19085 = load i32, ptr %19084, align 4, !tbaa !5
  %19086 = call ptr @s2n_strerror(i32 noundef %19085, ptr noundef @.str.6)
  %19087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19088 = load i32, ptr %19087, align 4, !tbaa !5
  %19089 = call ptr @s2n_strerror_debug(i32 noundef %19088, ptr noundef @.str.6)
  %19090 = call ptr @__errno_location() #13
  %19091 = load i32, ptr %19090, align 4, !tbaa !5
  %19092 = call ptr @strerror(i32 noundef %19091) #12
  %19093 = call ptr @__errno_location() #13
  %19094 = load i32, ptr %19093, align 4, !tbaa !5
  %19095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19082, ptr noundef @.str.4, i32 noundef %19083, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 753, ptr noundef %19086, ptr noundef %19089, ptr noundef %19092, i32 noundef %19094) #12
  br label %19113

19096:                                            ; preds = %19074, %19067
  %19097 = load i32, ptr %414, align 4, !tbaa !5
  %19098 = call ptr @__errno_location() #13
  store i32 %19097, ptr %19098, align 4, !tbaa !5
  %19099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19100 = load i32, ptr @test_count, align 4, !tbaa !5
  %19101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19102 = load i32, ptr %19101, align 4, !tbaa !5
  %19103 = call ptr @s2n_strerror(i32 noundef %19102, ptr noundef @.str.6)
  %19104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19105 = load i32, ptr %19104, align 4, !tbaa !5
  %19106 = call ptr @s2n_strerror_debug(i32 noundef %19105, ptr noundef @.str.6)
  %19107 = call ptr @__errno_location() #13
  %19108 = load i32, ptr %19107, align 4, !tbaa !5
  %19109 = call ptr @strerror(i32 noundef %19108) #12
  %19110 = call ptr @__errno_location() #13
  %19111 = load i32, ptr %19110, align 4, !tbaa !5
  %19112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19099, ptr noundef @.str.7, i32 noundef %19100, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 753, ptr noundef %19103, ptr noundef %19106, ptr noundef %19109, i32 noundef %19111) #12
  br label %19113

19113:                                            ; preds = %19096, %19079
  call void @llvm.lifetime.end.p0(i64 4, ptr %414) #12
  br label %19114

19114:                                            ; preds = %19113
  br label %19115

19115:                                            ; preds = %19114
  call void @exit(i32 noundef 1) #14
  unreachable

19116:                                            ; No predecessors!
  br label %19117

19117:                                            ; preds = %19116
  br label %19118

19118:                                            ; preds = %19117, %19060
  br label %19119

19119:                                            ; preds = %19118
  br label %19120

19120:                                            ; preds = %19119
  br label %19121

19121:                                            ; preds = %19120
  %19122 = load i32, ptr @test_count, align 4, !tbaa !5
  %19123 = add nsw i32 %19122, 1
  store i32 %19123, ptr @test_count, align 4, !tbaa !5
  %19124 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %19125 = load ptr, ptr %403, align 8, !tbaa !9
  %19126 = call i32 %19124(ptr noundef %19125, ptr noundef %404)
  %19127 = icmp eq i32 %19126, -1
  br i1 %19127, label %19128, label %19181

19128:                                            ; preds = %19121
  br label %19129

19129:                                            ; preds = %19128
  br label %19130

19130:                                            ; preds = %19129
  call void @llvm.lifetime.start.p0(i64 4, ptr %415) #12
  %19131 = call ptr @__errno_location() #13
  %19132 = load i32, ptr %19131, align 4, !tbaa !5
  store i32 %19132, ptr %415, align 4, !tbaa !5
  %19133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19134 = call i32 @s2n_print_stacktrace(ptr noundef %19133)
  %19135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19136 = trunc i8 %19135 to i1
  br i1 %19136, label %19137, label %19159

19137:                                            ; preds = %19130
  %19138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19139 = call i32 @fileno(ptr noundef %19138) #12
  %19140 = call i32 @isatty(i32 noundef %19139) #12
  %19141 = icmp ne i32 %19140, 0
  br i1 %19141, label %19142, label %19159

19142:                                            ; preds = %19137
  %19143 = load i32, ptr %415, align 4, !tbaa !5
  %19144 = call ptr @__errno_location() #13
  store i32 %19143, ptr %19144, align 4, !tbaa !5
  %19145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19146 = load i32, ptr @test_count, align 4, !tbaa !5
  %19147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19148 = load i32, ptr %19147, align 4, !tbaa !5
  %19149 = call ptr @s2n_strerror(i32 noundef %19148, ptr noundef @.str.6)
  %19150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19151 = load i32, ptr %19150, align 4, !tbaa !5
  %19152 = call ptr @s2n_strerror_debug(i32 noundef %19151, ptr noundef @.str.6)
  %19153 = call ptr @__errno_location() #13
  %19154 = load i32, ptr %19153, align 4, !tbaa !5
  %19155 = call ptr @strerror(i32 noundef %19154) #12
  %19156 = call ptr @__errno_location() #13
  %19157 = load i32, ptr %19156, align 4, !tbaa !5
  %19158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19145, ptr noundef @.str.4, i32 noundef %19146, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 755, ptr noundef %19149, ptr noundef %19152, ptr noundef %19155, i32 noundef %19157) #12
  br label %19176

19159:                                            ; preds = %19137, %19130
  %19160 = load i32, ptr %415, align 4, !tbaa !5
  %19161 = call ptr @__errno_location() #13
  store i32 %19160, ptr %19161, align 4, !tbaa !5
  %19162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19163 = load i32, ptr @test_count, align 4, !tbaa !5
  %19164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19165 = load i32, ptr %19164, align 4, !tbaa !5
  %19166 = call ptr @s2n_strerror(i32 noundef %19165, ptr noundef @.str.6)
  %19167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19168 = load i32, ptr %19167, align 4, !tbaa !5
  %19169 = call ptr @s2n_strerror_debug(i32 noundef %19168, ptr noundef @.str.6)
  %19170 = call ptr @__errno_location() #13
  %19171 = load i32, ptr %19170, align 4, !tbaa !5
  %19172 = call ptr @strerror(i32 noundef %19171) #12
  %19173 = call ptr @__errno_location() #13
  %19174 = load i32, ptr %19173, align 4, !tbaa !5
  %19175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19162, ptr noundef @.str.7, i32 noundef %19163, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 755, ptr noundef %19166, ptr noundef %19169, ptr noundef %19172, i32 noundef %19174) #12
  br label %19176

19176:                                            ; preds = %19159, %19142
  call void @llvm.lifetime.end.p0(i64 4, ptr %415) #12
  br label %19177

19177:                                            ; preds = %19176
  br label %19178

19178:                                            ; preds = %19177
  call void @exit(i32 noundef 1) #14
  unreachable

19179:                                            ; No predecessors!
  br label %19180

19180:                                            ; preds = %19179
  br label %19181

19181:                                            ; preds = %19180, %19121
  br label %19182

19182:                                            ; preds = %19181
  br label %19183

19183:                                            ; preds = %19182
  br label %19184

19184:                                            ; preds = %19183
  %19185 = load i32, ptr @test_count, align 4, !tbaa !5
  %19186 = add nsw i32 %19185, 1
  store i32 %19186, ptr @test_count, align 4, !tbaa !5
  %19187 = getelementptr inbounds %struct.s2n_stuffer, ptr %404, i32 0, i32 2
  %19188 = load i32, ptr %19187, align 4, !tbaa !18
  %19189 = getelementptr inbounds %struct.s2n_stuffer, ptr %404, i32 0, i32 1
  %19190 = load i32, ptr %19189, align 8, !tbaa !21
  %19191 = sub i32 %19188, %19190
  %19192 = icmp eq i32 %19191, 0
  br i1 %19192, label %19246, label %19193

19193:                                            ; preds = %19184
  br label %19194

19194:                                            ; preds = %19193
  br label %19195

19195:                                            ; preds = %19194
  call void @llvm.lifetime.start.p0(i64 4, ptr %416) #12
  %19196 = call ptr @__errno_location() #13
  %19197 = load i32, ptr %19196, align 4, !tbaa !5
  store i32 %19197, ptr %416, align 4, !tbaa !5
  %19198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19199 = call i32 @s2n_print_stacktrace(ptr noundef %19198)
  %19200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19201 = trunc i8 %19200 to i1
  br i1 %19201, label %19202, label %19224

19202:                                            ; preds = %19195
  %19203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19204 = call i32 @fileno(ptr noundef %19203) #12
  %19205 = call i32 @isatty(i32 noundef %19204) #12
  %19206 = icmp ne i32 %19205, 0
  br i1 %19206, label %19207, label %19224

19207:                                            ; preds = %19202
  %19208 = load i32, ptr %416, align 4, !tbaa !5
  %19209 = call ptr @__errno_location() #13
  store i32 %19208, ptr %19209, align 4, !tbaa !5
  %19210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19211 = load i32, ptr @test_count, align 4, !tbaa !5
  %19212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19213 = load i32, ptr %19212, align 4, !tbaa !5
  %19214 = call ptr @s2n_strerror(i32 noundef %19213, ptr noundef @.str.6)
  %19215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19216 = load i32, ptr %19215, align 4, !tbaa !5
  %19217 = call ptr @s2n_strerror_debug(i32 noundef %19216, ptr noundef @.str.6)
  %19218 = call ptr @__errno_location() #13
  %19219 = load i32, ptr %19218, align 4, !tbaa !5
  %19220 = call ptr @strerror(i32 noundef %19219) #12
  %19221 = call ptr @__errno_location() #13
  %19222 = load i32, ptr %19221, align 4, !tbaa !5
  %19223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19210, ptr noundef @.str.4, i32 noundef %19211, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 758, ptr noundef %19214, ptr noundef %19217, ptr noundef %19220, i32 noundef %19222) #12
  br label %19241

19224:                                            ; preds = %19202, %19195
  %19225 = load i32, ptr %416, align 4, !tbaa !5
  %19226 = call ptr @__errno_location() #13
  store i32 %19225, ptr %19226, align 4, !tbaa !5
  %19227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19228 = load i32, ptr @test_count, align 4, !tbaa !5
  %19229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19230 = load i32, ptr %19229, align 4, !tbaa !5
  %19231 = call ptr @s2n_strerror(i32 noundef %19230, ptr noundef @.str.6)
  %19232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19233 = load i32, ptr %19232, align 4, !tbaa !5
  %19234 = call ptr @s2n_strerror_debug(i32 noundef %19233, ptr noundef @.str.6)
  %19235 = call ptr @__errno_location() #13
  %19236 = load i32, ptr %19235, align 4, !tbaa !5
  %19237 = call ptr @strerror(i32 noundef %19236) #12
  %19238 = call ptr @__errno_location() #13
  %19239 = load i32, ptr %19238, align 4, !tbaa !5
  %19240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19227, ptr noundef @.str.7, i32 noundef %19228, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 758, ptr noundef %19231, ptr noundef %19234, ptr noundef %19237, i32 noundef %19239) #12
  br label %19241

19241:                                            ; preds = %19224, %19207
  call void @llvm.lifetime.end.p0(i64 4, ptr %416) #12
  br label %19242

19242:                                            ; preds = %19241
  br label %19243

19243:                                            ; preds = %19242
  call void @exit(i32 noundef 1) #14
  unreachable

19244:                                            ; No predecessors!
  br label %19245

19245:                                            ; preds = %19244
  br label %19246

19246:                                            ; preds = %19245, %19184
  br label %19247

19247:                                            ; preds = %19246
  br label %19248

19248:                                            ; preds = %19247
  call void @llvm.lifetime.start.p0(i64 8, ptr %417) #12
  %19249 = load ptr, ptr %403, align 8, !tbaa !9
  %19250 = getelementptr inbounds %struct.s2n_connection, ptr %19249, i32 0, i32 31
  %19251 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %19250, i32 0, i32 3
  store ptr %19251, ptr %417, align 8, !tbaa !9
  br label %19252

19252:                                            ; preds = %19248
  %19253 = load i32, ptr @test_count, align 4, !tbaa !5
  %19254 = add nsw i32 %19253, 1
  store i32 %19254, ptr @test_count, align 4, !tbaa !5
  %19255 = load ptr, ptr %417, align 8, !tbaa !9
  %19256 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %19255, i32 0, i32 0
  %19257 = load ptr, ptr %19256, align 8, !tbaa !22
  %19258 = icmp eq ptr %19257, null
  br i1 %19258, label %19259, label %19312

19259:                                            ; preds = %19252
  br label %19260

19260:                                            ; preds = %19259
  br label %19261

19261:                                            ; preds = %19260
  call void @llvm.lifetime.start.p0(i64 4, ptr %418) #12
  %19262 = call ptr @__errno_location() #13
  %19263 = load i32, ptr %19262, align 4, !tbaa !5
  store i32 %19263, ptr %418, align 4, !tbaa !5
  %19264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19265 = call i32 @s2n_print_stacktrace(ptr noundef %19264)
  %19266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19267 = trunc i8 %19266 to i1
  br i1 %19267, label %19268, label %19290

19268:                                            ; preds = %19261
  %19269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19270 = call i32 @fileno(ptr noundef %19269) #12
  %19271 = call i32 @isatty(i32 noundef %19270) #12
  %19272 = icmp ne i32 %19271, 0
  br i1 %19272, label %19273, label %19290

19273:                                            ; preds = %19268
  %19274 = load i32, ptr %418, align 4, !tbaa !5
  %19275 = call ptr @__errno_location() #13
  store i32 %19274, ptr %19275, align 4, !tbaa !5
  %19276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19277 = load i32, ptr @test_count, align 4, !tbaa !5
  %19278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19279 = load i32, ptr %19278, align 4, !tbaa !5
  %19280 = call ptr @s2n_strerror(i32 noundef %19279, ptr noundef @.str.6)
  %19281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19282 = load i32, ptr %19281, align 4, !tbaa !5
  %19283 = call ptr @s2n_strerror_debug(i32 noundef %19282, ptr noundef @.str.6)
  %19284 = call ptr @__errno_location() #13
  %19285 = load i32, ptr %19284, align 4, !tbaa !5
  %19286 = call ptr @strerror(i32 noundef %19285) #12
  %19287 = call ptr @__errno_location() #13
  %19288 = load i32, ptr %19287, align 4, !tbaa !5
  %19289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19276, ptr noundef @.str.4, i32 noundef %19277, ptr noundef @.str.118, ptr noundef @.str.3, i32 noundef 762, ptr noundef %19280, ptr noundef %19283, ptr noundef %19286, i32 noundef %19288) #12
  br label %19307

19290:                                            ; preds = %19268, %19261
  %19291 = load i32, ptr %418, align 4, !tbaa !5
  %19292 = call ptr @__errno_location() #13
  store i32 %19291, ptr %19292, align 4, !tbaa !5
  %19293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19294 = load i32, ptr @test_count, align 4, !tbaa !5
  %19295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19296 = load i32, ptr %19295, align 4, !tbaa !5
  %19297 = call ptr @s2n_strerror(i32 noundef %19296, ptr noundef @.str.6)
  %19298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19299 = load i32, ptr %19298, align 4, !tbaa !5
  %19300 = call ptr @s2n_strerror_debug(i32 noundef %19299, ptr noundef @.str.6)
  %19301 = call ptr @__errno_location() #13
  %19302 = load i32, ptr %19301, align 4, !tbaa !5
  %19303 = call ptr @strerror(i32 noundef %19302) #12
  %19304 = call ptr @__errno_location() #13
  %19305 = load i32, ptr %19304, align 4, !tbaa !5
  %19306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19293, ptr noundef @.str.7, i32 noundef %19294, ptr noundef @.str.118, ptr noundef @.str.3, i32 noundef 762, ptr noundef %19297, ptr noundef %19300, ptr noundef %19303, i32 noundef %19305) #12
  br label %19307

19307:                                            ; preds = %19290, %19273
  call void @llvm.lifetime.end.p0(i64 4, ptr %418) #12
  br label %19308

19308:                                            ; preds = %19307
  br label %19309

19309:                                            ; preds = %19308
  call void @exit(i32 noundef 1) #14
  unreachable

19310:                                            ; No predecessors!
  br label %19311

19311:                                            ; preds = %19310
  br label %19312

19312:                                            ; preds = %19311, %19252
  br label %19313

19313:                                            ; preds = %19312
  br label %19314

19314:                                            ; preds = %19313
  br label %19315

19315:                                            ; preds = %19314
  %19316 = load i32, ptr @test_count, align 4, !tbaa !5
  %19317 = add nsw i32 %19316, 1
  store i32 %19317, ptr @test_count, align 4, !tbaa !5
  %19318 = load ptr, ptr %417, align 8, !tbaa !9
  %19319 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %19318, i32 0, i32 1
  %19320 = load ptr, ptr %19319, align 8, !tbaa !26
  %19321 = icmp eq ptr %19320, null
  br i1 %19321, label %19322, label %19375

19322:                                            ; preds = %19315
  br label %19323

19323:                                            ; preds = %19322
  br label %19324

19324:                                            ; preds = %19323
  call void @llvm.lifetime.start.p0(i64 4, ptr %419) #12
  %19325 = call ptr @__errno_location() #13
  %19326 = load i32, ptr %19325, align 4, !tbaa !5
  store i32 %19326, ptr %419, align 4, !tbaa !5
  %19327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19328 = call i32 @s2n_print_stacktrace(ptr noundef %19327)
  %19329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19330 = trunc i8 %19329 to i1
  br i1 %19330, label %19331, label %19353

19331:                                            ; preds = %19324
  %19332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19333 = call i32 @fileno(ptr noundef %19332) #12
  %19334 = call i32 @isatty(i32 noundef %19333) #12
  %19335 = icmp ne i32 %19334, 0
  br i1 %19335, label %19336, label %19353

19336:                                            ; preds = %19331
  %19337 = load i32, ptr %419, align 4, !tbaa !5
  %19338 = call ptr @__errno_location() #13
  store i32 %19337, ptr %19338, align 4, !tbaa !5
  %19339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19340 = load i32, ptr @test_count, align 4, !tbaa !5
  %19341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19342 = load i32, ptr %19341, align 4, !tbaa !5
  %19343 = call ptr @s2n_strerror(i32 noundef %19342, ptr noundef @.str.6)
  %19344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19345 = load i32, ptr %19344, align 4, !tbaa !5
  %19346 = call ptr @s2n_strerror_debug(i32 noundef %19345, ptr noundef @.str.6)
  %19347 = call ptr @__errno_location() #13
  %19348 = load i32, ptr %19347, align 4, !tbaa !5
  %19349 = call ptr @strerror(i32 noundef %19348) #12
  %19350 = call ptr @__errno_location() #13
  %19351 = load i32, ptr %19350, align 4, !tbaa !5
  %19352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19339, ptr noundef @.str.4, i32 noundef %19340, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 763, ptr noundef %19343, ptr noundef %19346, ptr noundef %19349, i32 noundef %19351) #12
  br label %19370

19353:                                            ; preds = %19331, %19324
  %19354 = load i32, ptr %419, align 4, !tbaa !5
  %19355 = call ptr @__errno_location() #13
  store i32 %19354, ptr %19355, align 4, !tbaa !5
  %19356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19357 = load i32, ptr @test_count, align 4, !tbaa !5
  %19358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19359 = load i32, ptr %19358, align 4, !tbaa !5
  %19360 = call ptr @s2n_strerror(i32 noundef %19359, ptr noundef @.str.6)
  %19361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19362 = load i32, ptr %19361, align 4, !tbaa !5
  %19363 = call ptr @s2n_strerror_debug(i32 noundef %19362, ptr noundef @.str.6)
  %19364 = call ptr @__errno_location() #13
  %19365 = load i32, ptr %19364, align 4, !tbaa !5
  %19366 = call ptr @strerror(i32 noundef %19365) #12
  %19367 = call ptr @__errno_location() #13
  %19368 = load i32, ptr %19367, align 4, !tbaa !5
  %19369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19356, ptr noundef @.str.7, i32 noundef %19357, ptr noundef @.str.24, ptr noundef @.str.3, i32 noundef 763, ptr noundef %19360, ptr noundef %19363, ptr noundef %19366, i32 noundef %19368) #12
  br label %19370

19370:                                            ; preds = %19353, %19336
  call void @llvm.lifetime.end.p0(i64 4, ptr %419) #12
  br label %19371

19371:                                            ; preds = %19370
  br label %19372

19372:                                            ; preds = %19371
  call void @exit(i32 noundef 1) #14
  unreachable

19373:                                            ; No predecessors!
  br label %19374

19374:                                            ; preds = %19373
  br label %19375

19375:                                            ; preds = %19374, %19315
  br label %19376

19376:                                            ; preds = %19375
  br label %19377

19377:                                            ; preds = %19376
  br label %19378

19378:                                            ; preds = %19377
  %19379 = load i32, ptr @test_count, align 4, !tbaa !5
  %19380 = add nsw i32 %19379, 1
  store i32 %19380, ptr @test_count, align 4, !tbaa !5
  %19381 = load ptr, ptr %417, align 8, !tbaa !9
  %19382 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %19381, i32 0, i32 0
  %19383 = load ptr, ptr %19382, align 8, !tbaa !22
  %19384 = load ptr, ptr %409, align 8, !tbaa !9
  %19385 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %19384, i32 0, i32 1
  %19386 = load ptr, ptr %19385, align 8, !tbaa !24
  %19387 = getelementptr inbounds ptr, ptr %19386, i64 0
  %19388 = load ptr, ptr %19387, align 8, !tbaa !9
  %19389 = icmp eq ptr %19383, %19388
  br i1 %19389, label %19443, label %19390

19390:                                            ; preds = %19378
  br label %19391

19391:                                            ; preds = %19390
  br label %19392

19392:                                            ; preds = %19391
  call void @llvm.lifetime.start.p0(i64 4, ptr %420) #12
  %19393 = call ptr @__errno_location() #13
  %19394 = load i32, ptr %19393, align 4, !tbaa !5
  store i32 %19394, ptr %420, align 4, !tbaa !5
  %19395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19396 = call i32 @s2n_print_stacktrace(ptr noundef %19395)
  %19397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19398 = trunc i8 %19397 to i1
  br i1 %19398, label %19399, label %19421

19399:                                            ; preds = %19392
  %19400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19401 = call i32 @fileno(ptr noundef %19400) #12
  %19402 = call i32 @isatty(i32 noundef %19401) #12
  %19403 = icmp ne i32 %19402, 0
  br i1 %19403, label %19404, label %19421

19404:                                            ; preds = %19399
  %19405 = load i32, ptr %420, align 4, !tbaa !5
  %19406 = call ptr @__errno_location() #13
  store i32 %19405, ptr %19406, align 4, !tbaa !5
  %19407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19408 = load i32, ptr @test_count, align 4, !tbaa !5
  %19409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19410 = load i32, ptr %19409, align 4, !tbaa !5
  %19411 = call ptr @s2n_strerror(i32 noundef %19410, ptr noundef @.str.6)
  %19412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19413 = load i32, ptr %19412, align 4, !tbaa !5
  %19414 = call ptr @s2n_strerror_debug(i32 noundef %19413, ptr noundef @.str.6)
  %19415 = call ptr @__errno_location() #13
  %19416 = load i32, ptr %19415, align 4, !tbaa !5
  %19417 = call ptr @strerror(i32 noundef %19416) #12
  %19418 = call ptr @__errno_location() #13
  %19419 = load i32, ptr %19418, align 4, !tbaa !5
  %19420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19407, ptr noundef @.str.4, i32 noundef %19408, ptr noundef @.str.119, ptr noundef @.str.3, i32 noundef 764, ptr noundef %19411, ptr noundef %19414, ptr noundef %19417, i32 noundef %19419) #12
  br label %19438

19421:                                            ; preds = %19399, %19392
  %19422 = load i32, ptr %420, align 4, !tbaa !5
  %19423 = call ptr @__errno_location() #13
  store i32 %19422, ptr %19423, align 4, !tbaa !5
  %19424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19425 = load i32, ptr @test_count, align 4, !tbaa !5
  %19426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19427 = load i32, ptr %19426, align 4, !tbaa !5
  %19428 = call ptr @s2n_strerror(i32 noundef %19427, ptr noundef @.str.6)
  %19429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19430 = load i32, ptr %19429, align 4, !tbaa !5
  %19431 = call ptr @s2n_strerror_debug(i32 noundef %19430, ptr noundef @.str.6)
  %19432 = call ptr @__errno_location() #13
  %19433 = load i32, ptr %19432, align 4, !tbaa !5
  %19434 = call ptr @strerror(i32 noundef %19433) #12
  %19435 = call ptr @__errno_location() #13
  %19436 = load i32, ptr %19435, align 4, !tbaa !5
  %19437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19424, ptr noundef @.str.7, i32 noundef %19425, ptr noundef @.str.119, ptr noundef @.str.3, i32 noundef 764, ptr noundef %19428, ptr noundef %19431, ptr noundef %19434, i32 noundef %19436) #12
  br label %19438

19438:                                            ; preds = %19421, %19404
  call void @llvm.lifetime.end.p0(i64 4, ptr %420) #12
  br label %19439

19439:                                            ; preds = %19438
  br label %19440

19440:                                            ; preds = %19439
  call void @exit(i32 noundef 1) #14
  unreachable

19441:                                            ; No predecessors!
  br label %19442

19442:                                            ; preds = %19441
  br label %19443

19443:                                            ; preds = %19442, %19378
  br label %19444

19444:                                            ; preds = %19443
  br label %19445

19445:                                            ; preds = %19444
  br label %19446

19446:                                            ; preds = %19445
  %19447 = load i32, ptr @test_count, align 4, !tbaa !5
  %19448 = add nsw i32 %19447, 1
  store i32 %19448, ptr @test_count, align 4, !tbaa !5
  %19449 = call i32 @s2n_stuffer_free(ptr noundef %404)
  %19450 = icmp eq i32 %19449, -1
  br i1 %19450, label %19451, label %19504

19451:                                            ; preds = %19446
  br label %19452

19452:                                            ; preds = %19451
  br label %19453

19453:                                            ; preds = %19452
  call void @llvm.lifetime.start.p0(i64 4, ptr %421) #12
  %19454 = call ptr @__errno_location() #13
  %19455 = load i32, ptr %19454, align 4, !tbaa !5
  store i32 %19455, ptr %421, align 4, !tbaa !5
  %19456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19457 = call i32 @s2n_print_stacktrace(ptr noundef %19456)
  %19458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19459 = trunc i8 %19458 to i1
  br i1 %19459, label %19460, label %19482

19460:                                            ; preds = %19453
  %19461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19462 = call i32 @fileno(ptr noundef %19461) #12
  %19463 = call i32 @isatty(i32 noundef %19462) #12
  %19464 = icmp ne i32 %19463, 0
  br i1 %19464, label %19465, label %19482

19465:                                            ; preds = %19460
  %19466 = load i32, ptr %421, align 4, !tbaa !5
  %19467 = call ptr @__errno_location() #13
  store i32 %19466, ptr %19467, align 4, !tbaa !5
  %19468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19469 = load i32, ptr @test_count, align 4, !tbaa !5
  %19470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19471 = load i32, ptr %19470, align 4, !tbaa !5
  %19472 = call ptr @s2n_strerror(i32 noundef %19471, ptr noundef @.str.6)
  %19473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19474 = load i32, ptr %19473, align 4, !tbaa !5
  %19475 = call ptr @s2n_strerror_debug(i32 noundef %19474, ptr noundef @.str.6)
  %19476 = call ptr @__errno_location() #13
  %19477 = load i32, ptr %19476, align 4, !tbaa !5
  %19478 = call ptr @strerror(i32 noundef %19477) #12
  %19479 = call ptr @__errno_location() #13
  %19480 = load i32, ptr %19479, align 4, !tbaa !5
  %19481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19468, ptr noundef @.str.4, i32 noundef %19469, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 766, ptr noundef %19472, ptr noundef %19475, ptr noundef %19478, i32 noundef %19480) #12
  br label %19499

19482:                                            ; preds = %19460, %19453
  %19483 = load i32, ptr %421, align 4, !tbaa !5
  %19484 = call ptr @__errno_location() #13
  store i32 %19483, ptr %19484, align 4, !tbaa !5
  %19485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19486 = load i32, ptr @test_count, align 4, !tbaa !5
  %19487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19488 = load i32, ptr %19487, align 4, !tbaa !5
  %19489 = call ptr @s2n_strerror(i32 noundef %19488, ptr noundef @.str.6)
  %19490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19491 = load i32, ptr %19490, align 4, !tbaa !5
  %19492 = call ptr @s2n_strerror_debug(i32 noundef %19491, ptr noundef @.str.6)
  %19493 = call ptr @__errno_location() #13
  %19494 = load i32, ptr %19493, align 4, !tbaa !5
  %19495 = call ptr @strerror(i32 noundef %19494) #12
  %19496 = call ptr @__errno_location() #13
  %19497 = load i32, ptr %19496, align 4, !tbaa !5
  %19498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19485, ptr noundef @.str.7, i32 noundef %19486, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 766, ptr noundef %19489, ptr noundef %19492, ptr noundef %19495, i32 noundef %19497) #12
  br label %19499

19499:                                            ; preds = %19482, %19465
  call void @llvm.lifetime.end.p0(i64 4, ptr %421) #12
  br label %19500

19500:                                            ; preds = %19499
  br label %19501

19501:                                            ; preds = %19500
  call void @exit(i32 noundef 1) #14
  unreachable

19502:                                            ; No predecessors!
  br label %19503

19503:                                            ; preds = %19502
  br label %19504

19504:                                            ; preds = %19503, %19446
  br label %19505

19505:                                            ; preds = %19504
  br label %19506

19506:                                            ; preds = %19505
  br label %19507

19507:                                            ; preds = %19506
  %19508 = load i32, ptr @test_count, align 4, !tbaa !5
  %19509 = add nsw i32 %19508, 1
  store i32 %19509, ptr @test_count, align 4, !tbaa !5
  %19510 = load ptr, ptr %403, align 8, !tbaa !9
  %19511 = call i32 @s2n_connection_free(ptr noundef %19510)
  %19512 = icmp eq i32 %19511, -1
  br i1 %19512, label %19513, label %19566

19513:                                            ; preds = %19507
  br label %19514

19514:                                            ; preds = %19513
  br label %19515

19515:                                            ; preds = %19514
  call void @llvm.lifetime.start.p0(i64 4, ptr %422) #12
  %19516 = call ptr @__errno_location() #13
  %19517 = load i32, ptr %19516, align 4, !tbaa !5
  store i32 %19517, ptr %422, align 4, !tbaa !5
  %19518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19519 = call i32 @s2n_print_stacktrace(ptr noundef %19518)
  %19520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19521 = trunc i8 %19520 to i1
  br i1 %19521, label %19522, label %19544

19522:                                            ; preds = %19515
  %19523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19524 = call i32 @fileno(ptr noundef %19523) #12
  %19525 = call i32 @isatty(i32 noundef %19524) #12
  %19526 = icmp ne i32 %19525, 0
  br i1 %19526, label %19527, label %19544

19527:                                            ; preds = %19522
  %19528 = load i32, ptr %422, align 4, !tbaa !5
  %19529 = call ptr @__errno_location() #13
  store i32 %19528, ptr %19529, align 4, !tbaa !5
  %19530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19531 = load i32, ptr @test_count, align 4, !tbaa !5
  %19532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19533 = load i32, ptr %19532, align 4, !tbaa !5
  %19534 = call ptr @s2n_strerror(i32 noundef %19533, ptr noundef @.str.6)
  %19535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19536 = load i32, ptr %19535, align 4, !tbaa !5
  %19537 = call ptr @s2n_strerror_debug(i32 noundef %19536, ptr noundef @.str.6)
  %19538 = call ptr @__errno_location() #13
  %19539 = load i32, ptr %19538, align 4, !tbaa !5
  %19540 = call ptr @strerror(i32 noundef %19539) #12
  %19541 = call ptr @__errno_location() #13
  %19542 = load i32, ptr %19541, align 4, !tbaa !5
  %19543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19530, ptr noundef @.str.4, i32 noundef %19531, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 767, ptr noundef %19534, ptr noundef %19537, ptr noundef %19540, i32 noundef %19542) #12
  br label %19561

19544:                                            ; preds = %19522, %19515
  %19545 = load i32, ptr %422, align 4, !tbaa !5
  %19546 = call ptr @__errno_location() #13
  store i32 %19545, ptr %19546, align 4, !tbaa !5
  %19547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19548 = load i32, ptr @test_count, align 4, !tbaa !5
  %19549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19550 = load i32, ptr %19549, align 4, !tbaa !5
  %19551 = call ptr @s2n_strerror(i32 noundef %19550, ptr noundef @.str.6)
  %19552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19553 = load i32, ptr %19552, align 4, !tbaa !5
  %19554 = call ptr @s2n_strerror_debug(i32 noundef %19553, ptr noundef @.str.6)
  %19555 = call ptr @__errno_location() #13
  %19556 = load i32, ptr %19555, align 4, !tbaa !5
  %19557 = call ptr @strerror(i32 noundef %19556) #12
  %19558 = call ptr @__errno_location() #13
  %19559 = load i32, ptr %19558, align 4, !tbaa !5
  %19560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19547, ptr noundef @.str.7, i32 noundef %19548, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 767, ptr noundef %19551, ptr noundef %19554, ptr noundef %19557, i32 noundef %19559) #12
  br label %19561

19561:                                            ; preds = %19544, %19527
  call void @llvm.lifetime.end.p0(i64 4, ptr %422) #12
  br label %19562

19562:                                            ; preds = %19561
  br label %19563

19563:                                            ; preds = %19562
  call void @exit(i32 noundef 1) #14
  unreachable

19564:                                            ; No predecessors!
  br label %19565

19565:                                            ; preds = %19564
  br label %19566

19566:                                            ; preds = %19565, %19507
  br label %19567

19567:                                            ; preds = %19566
  br label %19568

19568:                                            ; preds = %19567
  call void @llvm.lifetime.end.p0(i64 8, ptr %417) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %409) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %404) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %403) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %423) #12
  store ptr null, ptr %423, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %424) #12
  call void @llvm.memset.p0.i64(ptr align 8 %424, i8 0, i64 40, i1 false)
  br label %19569

19569:                                            ; preds = %19568
  %19570 = load i32, ptr @test_count, align 4, !tbaa !5
  %19571 = add nsw i32 %19570, 1
  store i32 %19571, ptr @test_count, align 4, !tbaa !5
  %19572 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %19572, ptr %423, align 8, !tbaa !9
  %19573 = icmp eq ptr %19572, null
  br i1 %19573, label %19574, label %19627

19574:                                            ; preds = %19569
  br label %19575

19575:                                            ; preds = %19574
  br label %19576

19576:                                            ; preds = %19575
  call void @llvm.lifetime.start.p0(i64 4, ptr %425) #12
  %19577 = call ptr @__errno_location() #13
  %19578 = load i32, ptr %19577, align 4, !tbaa !5
  store i32 %19578, ptr %425, align 4, !tbaa !5
  %19579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19580 = call i32 @s2n_print_stacktrace(ptr noundef %19579)
  %19581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19582 = trunc i8 %19581 to i1
  br i1 %19582, label %19583, label %19605

19583:                                            ; preds = %19576
  %19584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19585 = call i32 @fileno(ptr noundef %19584) #12
  %19586 = call i32 @isatty(i32 noundef %19585) #12
  %19587 = icmp ne i32 %19586, 0
  br i1 %19587, label %19588, label %19605

19588:                                            ; preds = %19583
  %19589 = load i32, ptr %425, align 4, !tbaa !5
  %19590 = call ptr @__errno_location() #13
  store i32 %19589, ptr %19590, align 4, !tbaa !5
  %19591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19592 = load i32, ptr @test_count, align 4, !tbaa !5
  %19593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19594 = load i32, ptr %19593, align 4, !tbaa !5
  %19595 = call ptr @s2n_strerror(i32 noundef %19594, ptr noundef @.str.6)
  %19596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19597 = load i32, ptr %19596, align 4, !tbaa !5
  %19598 = call ptr @s2n_strerror_debug(i32 noundef %19597, ptr noundef @.str.6)
  %19599 = call ptr @__errno_location() #13
  %19600 = load i32, ptr %19599, align 4, !tbaa !5
  %19601 = call ptr @strerror(i32 noundef %19600) #12
  %19602 = call ptr @__errno_location() #13
  %19603 = load i32, ptr %19602, align 4, !tbaa !5
  %19604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19591, ptr noundef @.str.4, i32 noundef %19592, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 774, ptr noundef %19595, ptr noundef %19598, ptr noundef %19601, i32 noundef %19603) #12
  br label %19622

19605:                                            ; preds = %19583, %19576
  %19606 = load i32, ptr %425, align 4, !tbaa !5
  %19607 = call ptr @__errno_location() #13
  store i32 %19606, ptr %19607, align 4, !tbaa !5
  %19608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19609 = load i32, ptr @test_count, align 4, !tbaa !5
  %19610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19611 = load i32, ptr %19610, align 4, !tbaa !5
  %19612 = call ptr @s2n_strerror(i32 noundef %19611, ptr noundef @.str.6)
  %19613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19614 = load i32, ptr %19613, align 4, !tbaa !5
  %19615 = call ptr @s2n_strerror_debug(i32 noundef %19614, ptr noundef @.str.6)
  %19616 = call ptr @__errno_location() #13
  %19617 = load i32, ptr %19616, align 4, !tbaa !5
  %19618 = call ptr @strerror(i32 noundef %19617) #12
  %19619 = call ptr @__errno_location() #13
  %19620 = load i32, ptr %19619, align 4, !tbaa !5
  %19621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19608, ptr noundef @.str.7, i32 noundef %19609, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 774, ptr noundef %19612, ptr noundef %19615, ptr noundef %19618, i32 noundef %19620) #12
  br label %19622

19622:                                            ; preds = %19605, %19588
  call void @llvm.lifetime.end.p0(i64 4, ptr %425) #12
  br label %19623

19623:                                            ; preds = %19622
  br label %19624

19624:                                            ; preds = %19623
  call void @exit(i32 noundef 1) #14
  unreachable

19625:                                            ; No predecessors!
  br label %19626

19626:                                            ; preds = %19625
  br label %19627

19627:                                            ; preds = %19626, %19569
  br label %19628

19628:                                            ; preds = %19627
  br label %19629

19629:                                            ; preds = %19628
  br label %19630

19630:                                            ; preds = %19629
  %19631 = load i32, ptr @test_count, align 4, !tbaa !5
  %19632 = add nsw i32 %19631, 1
  store i32 %19632, ptr @test_count, align 4, !tbaa !5
  %19633 = load ptr, ptr %423, align 8, !tbaa !9
  %19634 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %19633, i8 noundef zeroext 34)
  %19635 = icmp eq i32 %19634, -1
  br i1 %19635, label %19636, label %19689

19636:                                            ; preds = %19630
  br label %19637

19637:                                            ; preds = %19636
  br label %19638

19638:                                            ; preds = %19637
  call void @llvm.lifetime.start.p0(i64 4, ptr %426) #12
  %19639 = call ptr @__errno_location() #13
  %19640 = load i32, ptr %19639, align 4, !tbaa !5
  store i32 %19640, ptr %426, align 4, !tbaa !5
  %19641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19642 = call i32 @s2n_print_stacktrace(ptr noundef %19641)
  %19643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19644 = trunc i8 %19643 to i1
  br i1 %19644, label %19645, label %19667

19645:                                            ; preds = %19638
  %19646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19647 = call i32 @fileno(ptr noundef %19646) #12
  %19648 = call i32 @isatty(i32 noundef %19647) #12
  %19649 = icmp ne i32 %19648, 0
  br i1 %19649, label %19650, label %19667

19650:                                            ; preds = %19645
  %19651 = load i32, ptr %426, align 4, !tbaa !5
  %19652 = call ptr @__errno_location() #13
  store i32 %19651, ptr %19652, align 4, !tbaa !5
  %19653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19654 = load i32, ptr @test_count, align 4, !tbaa !5
  %19655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19656 = load i32, ptr %19655, align 4, !tbaa !5
  %19657 = call ptr @s2n_strerror(i32 noundef %19656, ptr noundef @.str.6)
  %19658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19659 = load i32, ptr %19658, align 4, !tbaa !5
  %19660 = call ptr @s2n_strerror_debug(i32 noundef %19659, ptr noundef @.str.6)
  %19661 = call ptr @__errno_location() #13
  %19662 = load i32, ptr %19661, align 4, !tbaa !5
  %19663 = call ptr @strerror(i32 noundef %19662) #12
  %19664 = call ptr @__errno_location() #13
  %19665 = load i32, ptr %19664, align 4, !tbaa !5
  %19666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19653, ptr noundef @.str.4, i32 noundef %19654, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 775, ptr noundef %19657, ptr noundef %19660, ptr noundef %19663, i32 noundef %19665) #12
  br label %19684

19667:                                            ; preds = %19645, %19638
  %19668 = load i32, ptr %426, align 4, !tbaa !5
  %19669 = call ptr @__errno_location() #13
  store i32 %19668, ptr %19669, align 4, !tbaa !5
  %19670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19671 = load i32, ptr @test_count, align 4, !tbaa !5
  %19672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19673 = load i32, ptr %19672, align 4, !tbaa !5
  %19674 = call ptr @s2n_strerror(i32 noundef %19673, ptr noundef @.str.6)
  %19675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19676 = load i32, ptr %19675, align 4, !tbaa !5
  %19677 = call ptr @s2n_strerror_debug(i32 noundef %19676, ptr noundef @.str.6)
  %19678 = call ptr @__errno_location() #13
  %19679 = load i32, ptr %19678, align 4, !tbaa !5
  %19680 = call ptr @strerror(i32 noundef %19679) #12
  %19681 = call ptr @__errno_location() #13
  %19682 = load i32, ptr %19681, align 4, !tbaa !5
  %19683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19670, ptr noundef @.str.7, i32 noundef %19671, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 775, ptr noundef %19674, ptr noundef %19677, ptr noundef %19680, i32 noundef %19682) #12
  br label %19684

19684:                                            ; preds = %19667, %19650
  call void @llvm.lifetime.end.p0(i64 4, ptr %426) #12
  br label %19685

19685:                                            ; preds = %19684
  br label %19686

19686:                                            ; preds = %19685
  call void @exit(i32 noundef 1) #14
  unreachable

19687:                                            ; No predecessors!
  br label %19688

19688:                                            ; preds = %19687
  br label %19689

19689:                                            ; preds = %19688, %19630
  br label %19690

19690:                                            ; preds = %19689
  br label %19691

19691:                                            ; preds = %19690
  br label %19692

19692:                                            ; preds = %19691
  %19693 = load i32, ptr @test_count, align 4, !tbaa !5
  %19694 = add nsw i32 %19693, 1
  store i32 %19694, ptr @test_count, align 4, !tbaa !5
  %19695 = load ptr, ptr %423, align 8, !tbaa !9
  %19696 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %19695)
  %19697 = getelementptr inbounds %struct.s2n_result, ptr %427, i32 0, i32 0
  store i32 %19696, ptr %19697, align 4
  %19698 = getelementptr inbounds %struct.s2n_result, ptr %427, i32 0, i32 0
  %19699 = load i32, ptr %19698, align 4
  %19700 = call zeroext i1 @s2n_result_is_ok(i32 %19699)
  br i1 %19700, label %19754, label %19701

19701:                                            ; preds = %19692
  br label %19702

19702:                                            ; preds = %19701
  br label %19703

19703:                                            ; preds = %19702
  call void @llvm.lifetime.start.p0(i64 4, ptr %428) #12
  %19704 = call ptr @__errno_location() #13
  %19705 = load i32, ptr %19704, align 4, !tbaa !5
  store i32 %19705, ptr %428, align 4, !tbaa !5
  %19706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19707 = call i32 @s2n_print_stacktrace(ptr noundef %19706)
  %19708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19709 = trunc i8 %19708 to i1
  br i1 %19709, label %19710, label %19732

19710:                                            ; preds = %19703
  %19711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19712 = call i32 @fileno(ptr noundef %19711) #12
  %19713 = call i32 @isatty(i32 noundef %19712) #12
  %19714 = icmp ne i32 %19713, 0
  br i1 %19714, label %19715, label %19732

19715:                                            ; preds = %19710
  %19716 = load i32, ptr %428, align 4, !tbaa !5
  %19717 = call ptr @__errno_location() #13
  store i32 %19716, ptr %19717, align 4, !tbaa !5
  %19718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19719 = load i32, ptr @test_count, align 4, !tbaa !5
  %19720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19721 = load i32, ptr %19720, align 4, !tbaa !5
  %19722 = call ptr @s2n_strerror(i32 noundef %19721, ptr noundef @.str.6)
  %19723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19724 = load i32, ptr %19723, align 4, !tbaa !5
  %19725 = call ptr @s2n_strerror_debug(i32 noundef %19724, ptr noundef @.str.6)
  %19726 = call ptr @__errno_location() #13
  %19727 = load i32, ptr %19726, align 4, !tbaa !5
  %19728 = call ptr @strerror(i32 noundef %19727) #12
  %19729 = call ptr @__errno_location() #13
  %19730 = load i32, ptr %19729, align 4, !tbaa !5
  %19731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19718, ptr noundef @.str.4, i32 noundef %19719, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 776, ptr noundef %19722, ptr noundef %19725, ptr noundef %19728, i32 noundef %19730) #12
  br label %19749

19732:                                            ; preds = %19710, %19703
  %19733 = load i32, ptr %428, align 4, !tbaa !5
  %19734 = call ptr @__errno_location() #13
  store i32 %19733, ptr %19734, align 4, !tbaa !5
  %19735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19736 = load i32, ptr @test_count, align 4, !tbaa !5
  %19737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19738 = load i32, ptr %19737, align 4, !tbaa !5
  %19739 = call ptr @s2n_strerror(i32 noundef %19738, ptr noundef @.str.6)
  %19740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19741 = load i32, ptr %19740, align 4, !tbaa !5
  %19742 = call ptr @s2n_strerror_debug(i32 noundef %19741, ptr noundef @.str.6)
  %19743 = call ptr @__errno_location() #13
  %19744 = load i32, ptr %19743, align 4, !tbaa !5
  %19745 = call ptr @strerror(i32 noundef %19744) #12
  %19746 = call ptr @__errno_location() #13
  %19747 = load i32, ptr %19746, align 4, !tbaa !5
  %19748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19735, ptr noundef @.str.7, i32 noundef %19736, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 776, ptr noundef %19739, ptr noundef %19742, ptr noundef %19745, i32 noundef %19747) #12
  br label %19749

19749:                                            ; preds = %19732, %19715
  call void @llvm.lifetime.end.p0(i64 4, ptr %428) #12
  br label %19750

19750:                                            ; preds = %19749
  br label %19751

19751:                                            ; preds = %19750
  call void @exit(i32 noundef 1) #14
  unreachable

19752:                                            ; No predecessors!
  br label %19753

19753:                                            ; preds = %19752
  br label %19754

19754:                                            ; preds = %19753, %19692
  br label %19755

19755:                                            ; preds = %19754
  br label %19756

19756:                                            ; preds = %19755
  br label %19757

19757:                                            ; preds = %19756
  %19758 = load i32, ptr @test_count, align 4, !tbaa !5
  %19759 = add nsw i32 %19758, 1
  store i32 %19759, ptr @test_count, align 4, !tbaa !5
  %19760 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %424, i32 noundef 0)
  %19761 = icmp eq i32 %19760, -1
  br i1 %19761, label %19762, label %19815

19762:                                            ; preds = %19757
  br label %19763

19763:                                            ; preds = %19762
  br label %19764

19764:                                            ; preds = %19763
  call void @llvm.lifetime.start.p0(i64 4, ptr %429) #12
  %19765 = call ptr @__errno_location() #13
  %19766 = load i32, ptr %19765, align 4, !tbaa !5
  store i32 %19766, ptr %429, align 4, !tbaa !5
  %19767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19768 = call i32 @s2n_print_stacktrace(ptr noundef %19767)
  %19769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19770 = trunc i8 %19769 to i1
  br i1 %19770, label %19771, label %19793

19771:                                            ; preds = %19764
  %19772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19773 = call i32 @fileno(ptr noundef %19772) #12
  %19774 = call i32 @isatty(i32 noundef %19773) #12
  %19775 = icmp ne i32 %19774, 0
  br i1 %19775, label %19776, label %19793

19776:                                            ; preds = %19771
  %19777 = load i32, ptr %429, align 4, !tbaa !5
  %19778 = call ptr @__errno_location() #13
  store i32 %19777, ptr %19778, align 4, !tbaa !5
  %19779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19780 = load i32, ptr @test_count, align 4, !tbaa !5
  %19781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19782 = load i32, ptr %19781, align 4, !tbaa !5
  %19783 = call ptr @s2n_strerror(i32 noundef %19782, ptr noundef @.str.6)
  %19784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19785 = load i32, ptr %19784, align 4, !tbaa !5
  %19786 = call ptr @s2n_strerror_debug(i32 noundef %19785, ptr noundef @.str.6)
  %19787 = call ptr @__errno_location() #13
  %19788 = load i32, ptr %19787, align 4, !tbaa !5
  %19789 = call ptr @strerror(i32 noundef %19788) #12
  %19790 = call ptr @__errno_location() #13
  %19791 = load i32, ptr %19790, align 4, !tbaa !5
  %19792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19779, ptr noundef @.str.4, i32 noundef %19780, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 777, ptr noundef %19783, ptr noundef %19786, ptr noundef %19789, i32 noundef %19791) #12
  br label %19810

19793:                                            ; preds = %19771, %19764
  %19794 = load i32, ptr %429, align 4, !tbaa !5
  %19795 = call ptr @__errno_location() #13
  store i32 %19794, ptr %19795, align 4, !tbaa !5
  %19796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19797 = load i32, ptr @test_count, align 4, !tbaa !5
  %19798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19799 = load i32, ptr %19798, align 4, !tbaa !5
  %19800 = call ptr @s2n_strerror(i32 noundef %19799, ptr noundef @.str.6)
  %19801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19802 = load i32, ptr %19801, align 4, !tbaa !5
  %19803 = call ptr @s2n_strerror_debug(i32 noundef %19802, ptr noundef @.str.6)
  %19804 = call ptr @__errno_location() #13
  %19805 = load i32, ptr %19804, align 4, !tbaa !5
  %19806 = call ptr @strerror(i32 noundef %19805) #12
  %19807 = call ptr @__errno_location() #13
  %19808 = load i32, ptr %19807, align 4, !tbaa !5
  %19809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19796, ptr noundef @.str.7, i32 noundef %19797, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 777, ptr noundef %19800, ptr noundef %19803, ptr noundef %19806, i32 noundef %19808) #12
  br label %19810

19810:                                            ; preds = %19793, %19776
  call void @llvm.lifetime.end.p0(i64 4, ptr %429) #12
  br label %19811

19811:                                            ; preds = %19810
  br label %19812

19812:                                            ; preds = %19811
  call void @exit(i32 noundef 1) #14
  unreachable

19813:                                            ; No predecessors!
  br label %19814

19814:                                            ; preds = %19813
  br label %19815

19815:                                            ; preds = %19814, %19757
  br label %19816

19816:                                            ; preds = %19815
  br label %19817

19817:                                            ; preds = %19816
  call void @llvm.lifetime.start.p0(i64 8, ptr %430) #12
  store ptr null, ptr %430, align 8, !tbaa !9
  br label %19818

19818:                                            ; preds = %19817
  %19819 = load i32, ptr @test_count, align 4, !tbaa !5
  %19820 = add nsw i32 %19819, 1
  store i32 %19820, ptr @test_count, align 4, !tbaa !5
  %19821 = load ptr, ptr %423, align 8, !tbaa !9
  %19822 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %19821, ptr noundef %430)
  %19823 = icmp eq i32 %19822, -1
  br i1 %19823, label %19824, label %19877

19824:                                            ; preds = %19818
  br label %19825

19825:                                            ; preds = %19824
  br label %19826

19826:                                            ; preds = %19825
  call void @llvm.lifetime.start.p0(i64 4, ptr %431) #12
  %19827 = call ptr @__errno_location() #13
  %19828 = load i32, ptr %19827, align 4, !tbaa !5
  store i32 %19828, ptr %431, align 4, !tbaa !5
  %19829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19830 = call i32 @s2n_print_stacktrace(ptr noundef %19829)
  %19831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19832 = trunc i8 %19831 to i1
  br i1 %19832, label %19833, label %19855

19833:                                            ; preds = %19826
  %19834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19835 = call i32 @fileno(ptr noundef %19834) #12
  %19836 = call i32 @isatty(i32 noundef %19835) #12
  %19837 = icmp ne i32 %19836, 0
  br i1 %19837, label %19838, label %19855

19838:                                            ; preds = %19833
  %19839 = load i32, ptr %431, align 4, !tbaa !5
  %19840 = call ptr @__errno_location() #13
  store i32 %19839, ptr %19840, align 4, !tbaa !5
  %19841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19842 = load i32, ptr @test_count, align 4, !tbaa !5
  %19843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19844 = load i32, ptr %19843, align 4, !tbaa !5
  %19845 = call ptr @s2n_strerror(i32 noundef %19844, ptr noundef @.str.6)
  %19846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19847 = load i32, ptr %19846, align 4, !tbaa !5
  %19848 = call ptr @s2n_strerror_debug(i32 noundef %19847, ptr noundef @.str.6)
  %19849 = call ptr @__errno_location() #13
  %19850 = load i32, ptr %19849, align 4, !tbaa !5
  %19851 = call ptr @strerror(i32 noundef %19850) #12
  %19852 = call ptr @__errno_location() #13
  %19853 = load i32, ptr %19852, align 4, !tbaa !5
  %19854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19841, ptr noundef @.str.4, i32 noundef %19842, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 780, ptr noundef %19845, ptr noundef %19848, ptr noundef %19851, i32 noundef %19853) #12
  br label %19872

19855:                                            ; preds = %19833, %19826
  %19856 = load i32, ptr %431, align 4, !tbaa !5
  %19857 = call ptr @__errno_location() #13
  store i32 %19856, ptr %19857, align 4, !tbaa !5
  %19858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19859 = load i32, ptr @test_count, align 4, !tbaa !5
  %19860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19861 = load i32, ptr %19860, align 4, !tbaa !5
  %19862 = call ptr @s2n_strerror(i32 noundef %19861, ptr noundef @.str.6)
  %19863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19864 = load i32, ptr %19863, align 4, !tbaa !5
  %19865 = call ptr @s2n_strerror_debug(i32 noundef %19864, ptr noundef @.str.6)
  %19866 = call ptr @__errno_location() #13
  %19867 = load i32, ptr %19866, align 4, !tbaa !5
  %19868 = call ptr @strerror(i32 noundef %19867) #12
  %19869 = call ptr @__errno_location() #13
  %19870 = load i32, ptr %19869, align 4, !tbaa !5
  %19871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19858, ptr noundef @.str.7, i32 noundef %19859, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 780, ptr noundef %19862, ptr noundef %19865, ptr noundef %19868, i32 noundef %19870) #12
  br label %19872

19872:                                            ; preds = %19855, %19838
  call void @llvm.lifetime.end.p0(i64 4, ptr %431) #12
  br label %19873

19873:                                            ; preds = %19872
  br label %19874

19874:                                            ; preds = %19873
  call void @exit(i32 noundef 1) #14
  unreachable

19875:                                            ; No predecessors!
  br label %19876

19876:                                            ; preds = %19875
  br label %19877

19877:                                            ; preds = %19876, %19818
  br label %19878

19878:                                            ; preds = %19877
  br label %19879

19879:                                            ; preds = %19878
  br label %19880

19880:                                            ; preds = %19879
  %19881 = load i32, ptr @test_count, align 4, !tbaa !5
  %19882 = add nsw i32 %19881, 1
  store i32 %19882, ptr @test_count, align 4, !tbaa !5
  %19883 = load ptr, ptr %430, align 8, !tbaa !9
  %19884 = icmp eq ptr %19883, null
  br i1 %19884, label %19885, label %19938

19885:                                            ; preds = %19880
  br label %19886

19886:                                            ; preds = %19885
  br label %19887

19887:                                            ; preds = %19886
  call void @llvm.lifetime.start.p0(i64 4, ptr %432) #12
  %19888 = call ptr @__errno_location() #13
  %19889 = load i32, ptr %19888, align 4, !tbaa !5
  store i32 %19889, ptr %432, align 4, !tbaa !5
  %19890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19891 = call i32 @s2n_print_stacktrace(ptr noundef %19890)
  %19892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19893 = trunc i8 %19892 to i1
  br i1 %19893, label %19894, label %19916

19894:                                            ; preds = %19887
  %19895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19896 = call i32 @fileno(ptr noundef %19895) #12
  %19897 = call i32 @isatty(i32 noundef %19896) #12
  %19898 = icmp ne i32 %19897, 0
  br i1 %19898, label %19899, label %19916

19899:                                            ; preds = %19894
  %19900 = load i32, ptr %432, align 4, !tbaa !5
  %19901 = call ptr @__errno_location() #13
  store i32 %19900, ptr %19901, align 4, !tbaa !5
  %19902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19903 = load i32, ptr @test_count, align 4, !tbaa !5
  %19904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19905 = load i32, ptr %19904, align 4, !tbaa !5
  %19906 = call ptr @s2n_strerror(i32 noundef %19905, ptr noundef @.str.6)
  %19907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19908 = load i32, ptr %19907, align 4, !tbaa !5
  %19909 = call ptr @s2n_strerror_debug(i32 noundef %19908, ptr noundef @.str.6)
  %19910 = call ptr @__errno_location() #13
  %19911 = load i32, ptr %19910, align 4, !tbaa !5
  %19912 = call ptr @strerror(i32 noundef %19911) #12
  %19913 = call ptr @__errno_location() #13
  %19914 = load i32, ptr %19913, align 4, !tbaa !5
  %19915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19902, ptr noundef @.str.4, i32 noundef %19903, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 781, ptr noundef %19906, ptr noundef %19909, ptr noundef %19912, i32 noundef %19914) #12
  br label %19933

19916:                                            ; preds = %19894, %19887
  %19917 = load i32, ptr %432, align 4, !tbaa !5
  %19918 = call ptr @__errno_location() #13
  store i32 %19917, ptr %19918, align 4, !tbaa !5
  %19919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19920 = load i32, ptr @test_count, align 4, !tbaa !5
  %19921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19922 = load i32, ptr %19921, align 4, !tbaa !5
  %19923 = call ptr @s2n_strerror(i32 noundef %19922, ptr noundef @.str.6)
  %19924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19925 = load i32, ptr %19924, align 4, !tbaa !5
  %19926 = call ptr @s2n_strerror_debug(i32 noundef %19925, ptr noundef @.str.6)
  %19927 = call ptr @__errno_location() #13
  %19928 = load i32, ptr %19927, align 4, !tbaa !5
  %19929 = call ptr @strerror(i32 noundef %19928) #12
  %19930 = call ptr @__errno_location() #13
  %19931 = load i32, ptr %19930, align 4, !tbaa !5
  %19932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19919, ptr noundef @.str.7, i32 noundef %19920, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 781, ptr noundef %19923, ptr noundef %19926, ptr noundef %19929, i32 noundef %19931) #12
  br label %19933

19933:                                            ; preds = %19916, %19899
  call void @llvm.lifetime.end.p0(i64 4, ptr %432) #12
  br label %19934

19934:                                            ; preds = %19933
  br label %19935

19935:                                            ; preds = %19934
  call void @exit(i32 noundef 1) #14
  unreachable

19936:                                            ; No predecessors!
  br label %19937

19937:                                            ; preds = %19936
  br label %19938

19938:                                            ; preds = %19937, %19880
  br label %19939

19939:                                            ; preds = %19938
  br label %19940

19940:                                            ; preds = %19939
  br label %19941

19941:                                            ; preds = %19940
  %19942 = load i32, ptr @test_count, align 4, !tbaa !5
  %19943 = add nsw i32 %19942, 1
  store i32 %19943, ptr @test_count, align 4, !tbaa !5
  %19944 = call i32 @s2n_stuffer_write_uint16(ptr noundef %424, i16 noundef zeroext 0)
  %19945 = icmp eq i32 %19944, -1
  br i1 %19945, label %19946, label %19999

19946:                                            ; preds = %19941
  br label %19947

19947:                                            ; preds = %19946
  br label %19948

19948:                                            ; preds = %19947
  call void @llvm.lifetime.start.p0(i64 4, ptr %433) #12
  %19949 = call ptr @__errno_location() #13
  %19950 = load i32, ptr %19949, align 4, !tbaa !5
  store i32 %19950, ptr %433, align 4, !tbaa !5
  %19951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19952 = call i32 @s2n_print_stacktrace(ptr noundef %19951)
  %19953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19954 = trunc i8 %19953 to i1
  br i1 %19954, label %19955, label %19977

19955:                                            ; preds = %19948
  %19956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19957 = call i32 @fileno(ptr noundef %19956) #12
  %19958 = call i32 @isatty(i32 noundef %19957) #12
  %19959 = icmp ne i32 %19958, 0
  br i1 %19959, label %19960, label %19977

19960:                                            ; preds = %19955
  %19961 = load i32, ptr %433, align 4, !tbaa !5
  %19962 = call ptr @__errno_location() #13
  store i32 %19961, ptr %19962, align 4, !tbaa !5
  %19963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19964 = load i32, ptr @test_count, align 4, !tbaa !5
  %19965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19966 = load i32, ptr %19965, align 4, !tbaa !5
  %19967 = call ptr @s2n_strerror(i32 noundef %19966, ptr noundef @.str.6)
  %19968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19969 = load i32, ptr %19968, align 4, !tbaa !5
  %19970 = call ptr @s2n_strerror_debug(i32 noundef %19969, ptr noundef @.str.6)
  %19971 = call ptr @__errno_location() #13
  %19972 = load i32, ptr %19971, align 4, !tbaa !5
  %19973 = call ptr @strerror(i32 noundef %19972) #12
  %19974 = call ptr @__errno_location() #13
  %19975 = load i32, ptr %19974, align 4, !tbaa !5
  %19976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19963, ptr noundef @.str.4, i32 noundef %19964, ptr noundef @.str.120, ptr noundef @.str.3, i32 noundef 783, ptr noundef %19967, ptr noundef %19970, ptr noundef %19973, i32 noundef %19975) #12
  br label %19994

19977:                                            ; preds = %19955, %19948
  %19978 = load i32, ptr %433, align 4, !tbaa !5
  %19979 = call ptr @__errno_location() #13
  store i32 %19978, ptr %19979, align 4, !tbaa !5
  %19980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19981 = load i32, ptr @test_count, align 4, !tbaa !5
  %19982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19983 = load i32, ptr %19982, align 4, !tbaa !5
  %19984 = call ptr @s2n_strerror(i32 noundef %19983, ptr noundef @.str.6)
  %19985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19986 = load i32, ptr %19985, align 4, !tbaa !5
  %19987 = call ptr @s2n_strerror_debug(i32 noundef %19986, ptr noundef @.str.6)
  %19988 = call ptr @__errno_location() #13
  %19989 = load i32, ptr %19988, align 4, !tbaa !5
  %19990 = call ptr @strerror(i32 noundef %19989) #12
  %19991 = call ptr @__errno_location() #13
  %19992 = load i32, ptr %19991, align 4, !tbaa !5
  %19993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19980, ptr noundef @.str.7, i32 noundef %19981, ptr noundef @.str.120, ptr noundef @.str.3, i32 noundef 783, ptr noundef %19984, ptr noundef %19987, ptr noundef %19990, i32 noundef %19992) #12
  br label %19994

19994:                                            ; preds = %19977, %19960
  call void @llvm.lifetime.end.p0(i64 4, ptr %433) #12
  br label %19995

19995:                                            ; preds = %19994
  br label %19996

19996:                                            ; preds = %19995
  call void @exit(i32 noundef 1) #14
  unreachable

19997:                                            ; No predecessors!
  br label %19998

19998:                                            ; preds = %19997
  br label %19999

19999:                                            ; preds = %19998, %19941
  br label %20000

20000:                                            ; preds = %19999
  br label %20001

20001:                                            ; preds = %20000
  br label %20002

20002:                                            ; preds = %20001
  %20003 = load i32, ptr @test_count, align 4, !tbaa !5
  %20004 = add nsw i32 %20003, 1
  store i32 %20004, ptr @test_count, align 4, !tbaa !5
  %20005 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %20006 = load ptr, ptr %423, align 8, !tbaa !9
  %20007 = call i32 %20005(ptr noundef %20006, ptr noundef %424)
  %20008 = icmp eq i32 %20007, -1
  br i1 %20008, label %20009, label %20062

20009:                                            ; preds = %20002
  br label %20010

20010:                                            ; preds = %20009
  br label %20011

20011:                                            ; preds = %20010
  call void @llvm.lifetime.start.p0(i64 4, ptr %434) #12
  %20012 = call ptr @__errno_location() #13
  %20013 = load i32, ptr %20012, align 4, !tbaa !5
  store i32 %20013, ptr %434, align 4, !tbaa !5
  %20014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20015 = call i32 @s2n_print_stacktrace(ptr noundef %20014)
  %20016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20017 = trunc i8 %20016 to i1
  br i1 %20017, label %20018, label %20040

20018:                                            ; preds = %20011
  %20019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20020 = call i32 @fileno(ptr noundef %20019) #12
  %20021 = call i32 @isatty(i32 noundef %20020) #12
  %20022 = icmp ne i32 %20021, 0
  br i1 %20022, label %20023, label %20040

20023:                                            ; preds = %20018
  %20024 = load i32, ptr %434, align 4, !tbaa !5
  %20025 = call ptr @__errno_location() #13
  store i32 %20024, ptr %20025, align 4, !tbaa !5
  %20026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20027 = load i32, ptr @test_count, align 4, !tbaa !5
  %20028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20029 = load i32, ptr %20028, align 4, !tbaa !5
  %20030 = call ptr @s2n_strerror(i32 noundef %20029, ptr noundef @.str.6)
  %20031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20032 = load i32, ptr %20031, align 4, !tbaa !5
  %20033 = call ptr @s2n_strerror_debug(i32 noundef %20032, ptr noundef @.str.6)
  %20034 = call ptr @__errno_location() #13
  %20035 = load i32, ptr %20034, align 4, !tbaa !5
  %20036 = call ptr @strerror(i32 noundef %20035) #12
  %20037 = call ptr @__errno_location() #13
  %20038 = load i32, ptr %20037, align 4, !tbaa !5
  %20039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20026, ptr noundef @.str.4, i32 noundef %20027, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 785, ptr noundef %20030, ptr noundef %20033, ptr noundef %20036, i32 noundef %20038) #12
  br label %20057

20040:                                            ; preds = %20018, %20011
  %20041 = load i32, ptr %434, align 4, !tbaa !5
  %20042 = call ptr @__errno_location() #13
  store i32 %20041, ptr %20042, align 4, !tbaa !5
  %20043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20044 = load i32, ptr @test_count, align 4, !tbaa !5
  %20045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20046 = load i32, ptr %20045, align 4, !tbaa !5
  %20047 = call ptr @s2n_strerror(i32 noundef %20046, ptr noundef @.str.6)
  %20048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20049 = load i32, ptr %20048, align 4, !tbaa !5
  %20050 = call ptr @s2n_strerror_debug(i32 noundef %20049, ptr noundef @.str.6)
  %20051 = call ptr @__errno_location() #13
  %20052 = load i32, ptr %20051, align 4, !tbaa !5
  %20053 = call ptr @strerror(i32 noundef %20052) #12
  %20054 = call ptr @__errno_location() #13
  %20055 = load i32, ptr %20054, align 4, !tbaa !5
  %20056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20043, ptr noundef @.str.7, i32 noundef %20044, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 785, ptr noundef %20047, ptr noundef %20050, ptr noundef %20053, i32 noundef %20055) #12
  br label %20057

20057:                                            ; preds = %20040, %20023
  call void @llvm.lifetime.end.p0(i64 4, ptr %434) #12
  br label %20058

20058:                                            ; preds = %20057
  br label %20059

20059:                                            ; preds = %20058
  call void @exit(i32 noundef 1) #14
  unreachable

20060:                                            ; No predecessors!
  br label %20061

20061:                                            ; preds = %20060
  br label %20062

20062:                                            ; preds = %20061, %20002
  br label %20063

20063:                                            ; preds = %20062
  br label %20064

20064:                                            ; preds = %20063
  call void @llvm.lifetime.start.p0(i64 8, ptr %435) #12
  %20065 = load ptr, ptr %423, align 8, !tbaa !9
  %20066 = getelementptr inbounds %struct.s2n_connection, ptr %20065, i32 0, i32 31
  %20067 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %20066, i32 0, i32 3
  store ptr %20067, ptr %435, align 8, !tbaa !9
  br label %20068

20068:                                            ; preds = %20064
  %20069 = load i32, ptr @test_count, align 4, !tbaa !5
  %20070 = add nsw i32 %20069, 1
  store i32 %20070, ptr @test_count, align 4, !tbaa !5
  %20071 = load ptr, ptr %435, align 8, !tbaa !9
  %20072 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %20071, i32 0, i32 0
  %20073 = load ptr, ptr %20072, align 8, !tbaa !22
  %20074 = icmp eq ptr %20073, null
  br i1 %20074, label %20128, label %20075

20075:                                            ; preds = %20068
  br label %20076

20076:                                            ; preds = %20075
  br label %20077

20077:                                            ; preds = %20076
  call void @llvm.lifetime.start.p0(i64 4, ptr %436) #12
  %20078 = call ptr @__errno_location() #13
  %20079 = load i32, ptr %20078, align 4, !tbaa !5
  store i32 %20079, ptr %436, align 4, !tbaa !5
  %20080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20081 = call i32 @s2n_print_stacktrace(ptr noundef %20080)
  %20082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20083 = trunc i8 %20082 to i1
  br i1 %20083, label %20084, label %20106

20084:                                            ; preds = %20077
  %20085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20086 = call i32 @fileno(ptr noundef %20085) #12
  %20087 = call i32 @isatty(i32 noundef %20086) #12
  %20088 = icmp ne i32 %20087, 0
  br i1 %20088, label %20089, label %20106

20089:                                            ; preds = %20084
  %20090 = load i32, ptr %436, align 4, !tbaa !5
  %20091 = call ptr @__errno_location() #13
  store i32 %20090, ptr %20091, align 4, !tbaa !5
  %20092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20093 = load i32, ptr @test_count, align 4, !tbaa !5
  %20094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20095 = load i32, ptr %20094, align 4, !tbaa !5
  %20096 = call ptr @s2n_strerror(i32 noundef %20095, ptr noundef @.str.6)
  %20097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20098 = load i32, ptr %20097, align 4, !tbaa !5
  %20099 = call ptr @s2n_strerror_debug(i32 noundef %20098, ptr noundef @.str.6)
  %20100 = call ptr @__errno_location() #13
  %20101 = load i32, ptr %20100, align 4, !tbaa !5
  %20102 = call ptr @strerror(i32 noundef %20101) #12
  %20103 = call ptr @__errno_location() #13
  %20104 = load i32, ptr %20103, align 4, !tbaa !5
  %20105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20092, ptr noundef @.str.4, i32 noundef %20093, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 789, ptr noundef %20096, ptr noundef %20099, ptr noundef %20102, i32 noundef %20104) #12
  br label %20123

20106:                                            ; preds = %20084, %20077
  %20107 = load i32, ptr %436, align 4, !tbaa !5
  %20108 = call ptr @__errno_location() #13
  store i32 %20107, ptr %20108, align 4, !tbaa !5
  %20109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20110 = load i32, ptr @test_count, align 4, !tbaa !5
  %20111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20112 = load i32, ptr %20111, align 4, !tbaa !5
  %20113 = call ptr @s2n_strerror(i32 noundef %20112, ptr noundef @.str.6)
  %20114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20115 = load i32, ptr %20114, align 4, !tbaa !5
  %20116 = call ptr @s2n_strerror_debug(i32 noundef %20115, ptr noundef @.str.6)
  %20117 = call ptr @__errno_location() #13
  %20118 = load i32, ptr %20117, align 4, !tbaa !5
  %20119 = call ptr @strerror(i32 noundef %20118) #12
  %20120 = call ptr @__errno_location() #13
  %20121 = load i32, ptr %20120, align 4, !tbaa !5
  %20122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20109, ptr noundef @.str.7, i32 noundef %20110, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 789, ptr noundef %20113, ptr noundef %20116, ptr noundef %20119, i32 noundef %20121) #12
  br label %20123

20123:                                            ; preds = %20106, %20089
  call void @llvm.lifetime.end.p0(i64 4, ptr %436) #12
  br label %20124

20124:                                            ; preds = %20123
  br label %20125

20125:                                            ; preds = %20124
  call void @exit(i32 noundef 1) #14
  unreachable

20126:                                            ; No predecessors!
  br label %20127

20127:                                            ; preds = %20126
  br label %20128

20128:                                            ; preds = %20127, %20068
  br label %20129

20129:                                            ; preds = %20128
  br label %20130

20130:                                            ; preds = %20129
  br label %20131

20131:                                            ; preds = %20130
  %20132 = load i32, ptr @test_count, align 4, !tbaa !5
  %20133 = add nsw i32 %20132, 1
  store i32 %20133, ptr @test_count, align 4, !tbaa !5
  %20134 = load ptr, ptr %435, align 8, !tbaa !9
  %20135 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %20134, i32 0, i32 1
  %20136 = load ptr, ptr %20135, align 8, !tbaa !26
  %20137 = icmp eq ptr %20136, null
  br i1 %20137, label %20191, label %20138

20138:                                            ; preds = %20131
  br label %20139

20139:                                            ; preds = %20138
  br label %20140

20140:                                            ; preds = %20139
  call void @llvm.lifetime.start.p0(i64 4, ptr %437) #12
  %20141 = call ptr @__errno_location() #13
  %20142 = load i32, ptr %20141, align 4, !tbaa !5
  store i32 %20142, ptr %437, align 4, !tbaa !5
  %20143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20144 = call i32 @s2n_print_stacktrace(ptr noundef %20143)
  %20145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20146 = trunc i8 %20145 to i1
  br i1 %20146, label %20147, label %20169

20147:                                            ; preds = %20140
  %20148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20149 = call i32 @fileno(ptr noundef %20148) #12
  %20150 = call i32 @isatty(i32 noundef %20149) #12
  %20151 = icmp ne i32 %20150, 0
  br i1 %20151, label %20152, label %20169

20152:                                            ; preds = %20147
  %20153 = load i32, ptr %437, align 4, !tbaa !5
  %20154 = call ptr @__errno_location() #13
  store i32 %20153, ptr %20154, align 4, !tbaa !5
  %20155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20156 = load i32, ptr @test_count, align 4, !tbaa !5
  %20157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20158 = load i32, ptr %20157, align 4, !tbaa !5
  %20159 = call ptr @s2n_strerror(i32 noundef %20158, ptr noundef @.str.6)
  %20160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20161 = load i32, ptr %20160, align 4, !tbaa !5
  %20162 = call ptr @s2n_strerror_debug(i32 noundef %20161, ptr noundef @.str.6)
  %20163 = call ptr @__errno_location() #13
  %20164 = load i32, ptr %20163, align 4, !tbaa !5
  %20165 = call ptr @strerror(i32 noundef %20164) #12
  %20166 = call ptr @__errno_location() #13
  %20167 = load i32, ptr %20166, align 4, !tbaa !5
  %20168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20155, ptr noundef @.str.4, i32 noundef %20156, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 790, ptr noundef %20159, ptr noundef %20162, ptr noundef %20165, i32 noundef %20167) #12
  br label %20186

20169:                                            ; preds = %20147, %20140
  %20170 = load i32, ptr %437, align 4, !tbaa !5
  %20171 = call ptr @__errno_location() #13
  store i32 %20170, ptr %20171, align 4, !tbaa !5
  %20172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20173 = load i32, ptr @test_count, align 4, !tbaa !5
  %20174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20175 = load i32, ptr %20174, align 4, !tbaa !5
  %20176 = call ptr @s2n_strerror(i32 noundef %20175, ptr noundef @.str.6)
  %20177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20178 = load i32, ptr %20177, align 4, !tbaa !5
  %20179 = call ptr @s2n_strerror_debug(i32 noundef %20178, ptr noundef @.str.6)
  %20180 = call ptr @__errno_location() #13
  %20181 = load i32, ptr %20180, align 4, !tbaa !5
  %20182 = call ptr @strerror(i32 noundef %20181) #12
  %20183 = call ptr @__errno_location() #13
  %20184 = load i32, ptr %20183, align 4, !tbaa !5
  %20185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20172, ptr noundef @.str.7, i32 noundef %20173, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 790, ptr noundef %20176, ptr noundef %20179, ptr noundef %20182, i32 noundef %20184) #12
  br label %20186

20186:                                            ; preds = %20169, %20152
  call void @llvm.lifetime.end.p0(i64 4, ptr %437) #12
  br label %20187

20187:                                            ; preds = %20186
  br label %20188

20188:                                            ; preds = %20187
  call void @exit(i32 noundef 1) #14
  unreachable

20189:                                            ; No predecessors!
  br label %20190

20190:                                            ; preds = %20189
  br label %20191

20191:                                            ; preds = %20190, %20131
  br label %20192

20192:                                            ; preds = %20191
  br label %20193

20193:                                            ; preds = %20192
  br label %20194

20194:                                            ; preds = %20193
  %20195 = load i32, ptr @test_count, align 4, !tbaa !5
  %20196 = add nsw i32 %20195, 1
  store i32 %20196, ptr @test_count, align 4, !tbaa !5
  %20197 = call i32 @s2n_stuffer_free(ptr noundef %424)
  %20198 = icmp eq i32 %20197, -1
  br i1 %20198, label %20199, label %20252

20199:                                            ; preds = %20194
  br label %20200

20200:                                            ; preds = %20199
  br label %20201

20201:                                            ; preds = %20200
  call void @llvm.lifetime.start.p0(i64 4, ptr %438) #12
  %20202 = call ptr @__errno_location() #13
  %20203 = load i32, ptr %20202, align 4, !tbaa !5
  store i32 %20203, ptr %438, align 4, !tbaa !5
  %20204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20205 = call i32 @s2n_print_stacktrace(ptr noundef %20204)
  %20206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20207 = trunc i8 %20206 to i1
  br i1 %20207, label %20208, label %20230

20208:                                            ; preds = %20201
  %20209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20210 = call i32 @fileno(ptr noundef %20209) #12
  %20211 = call i32 @isatty(i32 noundef %20210) #12
  %20212 = icmp ne i32 %20211, 0
  br i1 %20212, label %20213, label %20230

20213:                                            ; preds = %20208
  %20214 = load i32, ptr %438, align 4, !tbaa !5
  %20215 = call ptr @__errno_location() #13
  store i32 %20214, ptr %20215, align 4, !tbaa !5
  %20216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20217 = load i32, ptr @test_count, align 4, !tbaa !5
  %20218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20219 = load i32, ptr %20218, align 4, !tbaa !5
  %20220 = call ptr @s2n_strerror(i32 noundef %20219, ptr noundef @.str.6)
  %20221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20222 = load i32, ptr %20221, align 4, !tbaa !5
  %20223 = call ptr @s2n_strerror_debug(i32 noundef %20222, ptr noundef @.str.6)
  %20224 = call ptr @__errno_location() #13
  %20225 = load i32, ptr %20224, align 4, !tbaa !5
  %20226 = call ptr @strerror(i32 noundef %20225) #12
  %20227 = call ptr @__errno_location() #13
  %20228 = load i32, ptr %20227, align 4, !tbaa !5
  %20229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20216, ptr noundef @.str.4, i32 noundef %20217, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 792, ptr noundef %20220, ptr noundef %20223, ptr noundef %20226, i32 noundef %20228) #12
  br label %20247

20230:                                            ; preds = %20208, %20201
  %20231 = load i32, ptr %438, align 4, !tbaa !5
  %20232 = call ptr @__errno_location() #13
  store i32 %20231, ptr %20232, align 4, !tbaa !5
  %20233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20234 = load i32, ptr @test_count, align 4, !tbaa !5
  %20235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20236 = load i32, ptr %20235, align 4, !tbaa !5
  %20237 = call ptr @s2n_strerror(i32 noundef %20236, ptr noundef @.str.6)
  %20238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20239 = load i32, ptr %20238, align 4, !tbaa !5
  %20240 = call ptr @s2n_strerror_debug(i32 noundef %20239, ptr noundef @.str.6)
  %20241 = call ptr @__errno_location() #13
  %20242 = load i32, ptr %20241, align 4, !tbaa !5
  %20243 = call ptr @strerror(i32 noundef %20242) #12
  %20244 = call ptr @__errno_location() #13
  %20245 = load i32, ptr %20244, align 4, !tbaa !5
  %20246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20233, ptr noundef @.str.7, i32 noundef %20234, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 792, ptr noundef %20237, ptr noundef %20240, ptr noundef %20243, i32 noundef %20245) #12
  br label %20247

20247:                                            ; preds = %20230, %20213
  call void @llvm.lifetime.end.p0(i64 4, ptr %438) #12
  br label %20248

20248:                                            ; preds = %20247
  br label %20249

20249:                                            ; preds = %20248
  call void @exit(i32 noundef 1) #14
  unreachable

20250:                                            ; No predecessors!
  br label %20251

20251:                                            ; preds = %20250
  br label %20252

20252:                                            ; preds = %20251, %20194
  br label %20253

20253:                                            ; preds = %20252
  br label %20254

20254:                                            ; preds = %20253
  br label %20255

20255:                                            ; preds = %20254
  %20256 = load i32, ptr @test_count, align 4, !tbaa !5
  %20257 = add nsw i32 %20256, 1
  store i32 %20257, ptr @test_count, align 4, !tbaa !5
  %20258 = load ptr, ptr %423, align 8, !tbaa !9
  %20259 = call i32 @s2n_connection_free(ptr noundef %20258)
  %20260 = icmp eq i32 %20259, -1
  br i1 %20260, label %20261, label %20314

20261:                                            ; preds = %20255
  br label %20262

20262:                                            ; preds = %20261
  br label %20263

20263:                                            ; preds = %20262
  call void @llvm.lifetime.start.p0(i64 4, ptr %439) #12
  %20264 = call ptr @__errno_location() #13
  %20265 = load i32, ptr %20264, align 4, !tbaa !5
  store i32 %20265, ptr %439, align 4, !tbaa !5
  %20266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20267 = call i32 @s2n_print_stacktrace(ptr noundef %20266)
  %20268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20269 = trunc i8 %20268 to i1
  br i1 %20269, label %20270, label %20292

20270:                                            ; preds = %20263
  %20271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20272 = call i32 @fileno(ptr noundef %20271) #12
  %20273 = call i32 @isatty(i32 noundef %20272) #12
  %20274 = icmp ne i32 %20273, 0
  br i1 %20274, label %20275, label %20292

20275:                                            ; preds = %20270
  %20276 = load i32, ptr %439, align 4, !tbaa !5
  %20277 = call ptr @__errno_location() #13
  store i32 %20276, ptr %20277, align 4, !tbaa !5
  %20278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20279 = load i32, ptr @test_count, align 4, !tbaa !5
  %20280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20281 = load i32, ptr %20280, align 4, !tbaa !5
  %20282 = call ptr @s2n_strerror(i32 noundef %20281, ptr noundef @.str.6)
  %20283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20284 = load i32, ptr %20283, align 4, !tbaa !5
  %20285 = call ptr @s2n_strerror_debug(i32 noundef %20284, ptr noundef @.str.6)
  %20286 = call ptr @__errno_location() #13
  %20287 = load i32, ptr %20286, align 4, !tbaa !5
  %20288 = call ptr @strerror(i32 noundef %20287) #12
  %20289 = call ptr @__errno_location() #13
  %20290 = load i32, ptr %20289, align 4, !tbaa !5
  %20291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20278, ptr noundef @.str.4, i32 noundef %20279, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 793, ptr noundef %20282, ptr noundef %20285, ptr noundef %20288, i32 noundef %20290) #12
  br label %20309

20292:                                            ; preds = %20270, %20263
  %20293 = load i32, ptr %439, align 4, !tbaa !5
  %20294 = call ptr @__errno_location() #13
  store i32 %20293, ptr %20294, align 4, !tbaa !5
  %20295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20296 = load i32, ptr @test_count, align 4, !tbaa !5
  %20297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20298 = load i32, ptr %20297, align 4, !tbaa !5
  %20299 = call ptr @s2n_strerror(i32 noundef %20298, ptr noundef @.str.6)
  %20300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20301 = load i32, ptr %20300, align 4, !tbaa !5
  %20302 = call ptr @s2n_strerror_debug(i32 noundef %20301, ptr noundef @.str.6)
  %20303 = call ptr @__errno_location() #13
  %20304 = load i32, ptr %20303, align 4, !tbaa !5
  %20305 = call ptr @strerror(i32 noundef %20304) #12
  %20306 = call ptr @__errno_location() #13
  %20307 = load i32, ptr %20306, align 4, !tbaa !5
  %20308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20295, ptr noundef @.str.7, i32 noundef %20296, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 793, ptr noundef %20299, ptr noundef %20302, ptr noundef %20305, i32 noundef %20307) #12
  br label %20309

20309:                                            ; preds = %20292, %20275
  call void @llvm.lifetime.end.p0(i64 4, ptr %439) #12
  br label %20310

20310:                                            ; preds = %20309
  br label %20311

20311:                                            ; preds = %20310
  call void @exit(i32 noundef 1) #14
  unreachable

20312:                                            ; No predecessors!
  br label %20313

20313:                                            ; preds = %20312
  br label %20314

20314:                                            ; preds = %20313, %20255
  br label %20315

20315:                                            ; preds = %20314
  br label %20316

20316:                                            ; preds = %20315
  call void @llvm.lifetime.end.p0(i64 8, ptr %435) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %430) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %424) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %423) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %440) #12
  store ptr null, ptr %440, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %441) #12
  call void @llvm.memset.p0.i64(ptr align 8 %441, i8 0, i64 40, i1 false)
  br label %20317

20317:                                            ; preds = %20316
  %20318 = load i32, ptr @test_count, align 4, !tbaa !5
  %20319 = add nsw i32 %20318, 1
  store i32 %20319, ptr @test_count, align 4, !tbaa !5
  %20320 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %20320, ptr %440, align 8, !tbaa !9
  %20321 = icmp eq ptr %20320, null
  br i1 %20321, label %20322, label %20375

20322:                                            ; preds = %20317
  br label %20323

20323:                                            ; preds = %20322
  br label %20324

20324:                                            ; preds = %20323
  call void @llvm.lifetime.start.p0(i64 4, ptr %442) #12
  %20325 = call ptr @__errno_location() #13
  %20326 = load i32, ptr %20325, align 4, !tbaa !5
  store i32 %20326, ptr %442, align 4, !tbaa !5
  %20327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20328 = call i32 @s2n_print_stacktrace(ptr noundef %20327)
  %20329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20330 = trunc i8 %20329 to i1
  br i1 %20330, label %20331, label %20353

20331:                                            ; preds = %20324
  %20332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20333 = call i32 @fileno(ptr noundef %20332) #12
  %20334 = call i32 @isatty(i32 noundef %20333) #12
  %20335 = icmp ne i32 %20334, 0
  br i1 %20335, label %20336, label %20353

20336:                                            ; preds = %20331
  %20337 = load i32, ptr %442, align 4, !tbaa !5
  %20338 = call ptr @__errno_location() #13
  store i32 %20337, ptr %20338, align 4, !tbaa !5
  %20339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20340 = load i32, ptr @test_count, align 4, !tbaa !5
  %20341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20342 = load i32, ptr %20341, align 4, !tbaa !5
  %20343 = call ptr @s2n_strerror(i32 noundef %20342, ptr noundef @.str.6)
  %20344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20345 = load i32, ptr %20344, align 4, !tbaa !5
  %20346 = call ptr @s2n_strerror_debug(i32 noundef %20345, ptr noundef @.str.6)
  %20347 = call ptr @__errno_location() #13
  %20348 = load i32, ptr %20347, align 4, !tbaa !5
  %20349 = call ptr @strerror(i32 noundef %20348) #12
  %20350 = call ptr @__errno_location() #13
  %20351 = load i32, ptr %20350, align 4, !tbaa !5
  %20352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20339, ptr noundef @.str.4, i32 noundef %20340, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 800, ptr noundef %20343, ptr noundef %20346, ptr noundef %20349, i32 noundef %20351) #12
  br label %20370

20353:                                            ; preds = %20331, %20324
  %20354 = load i32, ptr %442, align 4, !tbaa !5
  %20355 = call ptr @__errno_location() #13
  store i32 %20354, ptr %20355, align 4, !tbaa !5
  %20356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20357 = load i32, ptr @test_count, align 4, !tbaa !5
  %20358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20359 = load i32, ptr %20358, align 4, !tbaa !5
  %20360 = call ptr @s2n_strerror(i32 noundef %20359, ptr noundef @.str.6)
  %20361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20362 = load i32, ptr %20361, align 4, !tbaa !5
  %20363 = call ptr @s2n_strerror_debug(i32 noundef %20362, ptr noundef @.str.6)
  %20364 = call ptr @__errno_location() #13
  %20365 = load i32, ptr %20364, align 4, !tbaa !5
  %20366 = call ptr @strerror(i32 noundef %20365) #12
  %20367 = call ptr @__errno_location() #13
  %20368 = load i32, ptr %20367, align 4, !tbaa !5
  %20369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20356, ptr noundef @.str.7, i32 noundef %20357, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 800, ptr noundef %20360, ptr noundef %20363, ptr noundef %20366, i32 noundef %20368) #12
  br label %20370

20370:                                            ; preds = %20353, %20336
  call void @llvm.lifetime.end.p0(i64 4, ptr %442) #12
  br label %20371

20371:                                            ; preds = %20370
  br label %20372

20372:                                            ; preds = %20371
  call void @exit(i32 noundef 1) #14
  unreachable

20373:                                            ; No predecessors!
  br label %20374

20374:                                            ; preds = %20373
  br label %20375

20375:                                            ; preds = %20374, %20317
  br label %20376

20376:                                            ; preds = %20375
  br label %20377

20377:                                            ; preds = %20376
  br label %20378

20378:                                            ; preds = %20377
  %20379 = load i32, ptr @test_count, align 4, !tbaa !5
  %20380 = add nsw i32 %20379, 1
  store i32 %20380, ptr @test_count, align 4, !tbaa !5
  %20381 = load ptr, ptr %440, align 8, !tbaa !9
  %20382 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %20381, i8 noundef zeroext 34)
  %20383 = icmp eq i32 %20382, -1
  br i1 %20383, label %20384, label %20437

20384:                                            ; preds = %20378
  br label %20385

20385:                                            ; preds = %20384
  br label %20386

20386:                                            ; preds = %20385
  call void @llvm.lifetime.start.p0(i64 4, ptr %443) #12
  %20387 = call ptr @__errno_location() #13
  %20388 = load i32, ptr %20387, align 4, !tbaa !5
  store i32 %20388, ptr %443, align 4, !tbaa !5
  %20389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20390 = call i32 @s2n_print_stacktrace(ptr noundef %20389)
  %20391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20392 = trunc i8 %20391 to i1
  br i1 %20392, label %20393, label %20415

20393:                                            ; preds = %20386
  %20394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20395 = call i32 @fileno(ptr noundef %20394) #12
  %20396 = call i32 @isatty(i32 noundef %20395) #12
  %20397 = icmp ne i32 %20396, 0
  br i1 %20397, label %20398, label %20415

20398:                                            ; preds = %20393
  %20399 = load i32, ptr %443, align 4, !tbaa !5
  %20400 = call ptr @__errno_location() #13
  store i32 %20399, ptr %20400, align 4, !tbaa !5
  %20401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20402 = load i32, ptr @test_count, align 4, !tbaa !5
  %20403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20404 = load i32, ptr %20403, align 4, !tbaa !5
  %20405 = call ptr @s2n_strerror(i32 noundef %20404, ptr noundef @.str.6)
  %20406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20407 = load i32, ptr %20406, align 4, !tbaa !5
  %20408 = call ptr @s2n_strerror_debug(i32 noundef %20407, ptr noundef @.str.6)
  %20409 = call ptr @__errno_location() #13
  %20410 = load i32, ptr %20409, align 4, !tbaa !5
  %20411 = call ptr @strerror(i32 noundef %20410) #12
  %20412 = call ptr @__errno_location() #13
  %20413 = load i32, ptr %20412, align 4, !tbaa !5
  %20414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20401, ptr noundef @.str.4, i32 noundef %20402, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 801, ptr noundef %20405, ptr noundef %20408, ptr noundef %20411, i32 noundef %20413) #12
  br label %20432

20415:                                            ; preds = %20393, %20386
  %20416 = load i32, ptr %443, align 4, !tbaa !5
  %20417 = call ptr @__errno_location() #13
  store i32 %20416, ptr %20417, align 4, !tbaa !5
  %20418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20419 = load i32, ptr @test_count, align 4, !tbaa !5
  %20420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20421 = load i32, ptr %20420, align 4, !tbaa !5
  %20422 = call ptr @s2n_strerror(i32 noundef %20421, ptr noundef @.str.6)
  %20423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20424 = load i32, ptr %20423, align 4, !tbaa !5
  %20425 = call ptr @s2n_strerror_debug(i32 noundef %20424, ptr noundef @.str.6)
  %20426 = call ptr @__errno_location() #13
  %20427 = load i32, ptr %20426, align 4, !tbaa !5
  %20428 = call ptr @strerror(i32 noundef %20427) #12
  %20429 = call ptr @__errno_location() #13
  %20430 = load i32, ptr %20429, align 4, !tbaa !5
  %20431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20418, ptr noundef @.str.7, i32 noundef %20419, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 801, ptr noundef %20422, ptr noundef %20425, ptr noundef %20428, i32 noundef %20430) #12
  br label %20432

20432:                                            ; preds = %20415, %20398
  call void @llvm.lifetime.end.p0(i64 4, ptr %443) #12
  br label %20433

20433:                                            ; preds = %20432
  br label %20434

20434:                                            ; preds = %20433
  call void @exit(i32 noundef 1) #14
  unreachable

20435:                                            ; No predecessors!
  br label %20436

20436:                                            ; preds = %20435
  br label %20437

20437:                                            ; preds = %20436, %20378
  br label %20438

20438:                                            ; preds = %20437
  br label %20439

20439:                                            ; preds = %20438
  br label %20440

20440:                                            ; preds = %20439
  %20441 = load i32, ptr @test_count, align 4, !tbaa !5
  %20442 = add nsw i32 %20441, 1
  store i32 %20442, ptr @test_count, align 4, !tbaa !5
  %20443 = load ptr, ptr %440, align 8, !tbaa !9
  %20444 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %20443)
  %20445 = getelementptr inbounds %struct.s2n_result, ptr %444, i32 0, i32 0
  store i32 %20444, ptr %20445, align 4
  %20446 = getelementptr inbounds %struct.s2n_result, ptr %444, i32 0, i32 0
  %20447 = load i32, ptr %20446, align 4
  %20448 = call zeroext i1 @s2n_result_is_ok(i32 %20447)
  br i1 %20448, label %20502, label %20449

20449:                                            ; preds = %20440
  br label %20450

20450:                                            ; preds = %20449
  br label %20451

20451:                                            ; preds = %20450
  call void @llvm.lifetime.start.p0(i64 4, ptr %445) #12
  %20452 = call ptr @__errno_location() #13
  %20453 = load i32, ptr %20452, align 4, !tbaa !5
  store i32 %20453, ptr %445, align 4, !tbaa !5
  %20454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20455 = call i32 @s2n_print_stacktrace(ptr noundef %20454)
  %20456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20457 = trunc i8 %20456 to i1
  br i1 %20457, label %20458, label %20480

20458:                                            ; preds = %20451
  %20459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20460 = call i32 @fileno(ptr noundef %20459) #12
  %20461 = call i32 @isatty(i32 noundef %20460) #12
  %20462 = icmp ne i32 %20461, 0
  br i1 %20462, label %20463, label %20480

20463:                                            ; preds = %20458
  %20464 = load i32, ptr %445, align 4, !tbaa !5
  %20465 = call ptr @__errno_location() #13
  store i32 %20464, ptr %20465, align 4, !tbaa !5
  %20466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20467 = load i32, ptr @test_count, align 4, !tbaa !5
  %20468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20469 = load i32, ptr %20468, align 4, !tbaa !5
  %20470 = call ptr @s2n_strerror(i32 noundef %20469, ptr noundef @.str.6)
  %20471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20472 = load i32, ptr %20471, align 4, !tbaa !5
  %20473 = call ptr @s2n_strerror_debug(i32 noundef %20472, ptr noundef @.str.6)
  %20474 = call ptr @__errno_location() #13
  %20475 = load i32, ptr %20474, align 4, !tbaa !5
  %20476 = call ptr @strerror(i32 noundef %20475) #12
  %20477 = call ptr @__errno_location() #13
  %20478 = load i32, ptr %20477, align 4, !tbaa !5
  %20479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20466, ptr noundef @.str.4, i32 noundef %20467, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 802, ptr noundef %20470, ptr noundef %20473, ptr noundef %20476, i32 noundef %20478) #12
  br label %20497

20480:                                            ; preds = %20458, %20451
  %20481 = load i32, ptr %445, align 4, !tbaa !5
  %20482 = call ptr @__errno_location() #13
  store i32 %20481, ptr %20482, align 4, !tbaa !5
  %20483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20484 = load i32, ptr @test_count, align 4, !tbaa !5
  %20485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20486 = load i32, ptr %20485, align 4, !tbaa !5
  %20487 = call ptr @s2n_strerror(i32 noundef %20486, ptr noundef @.str.6)
  %20488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20489 = load i32, ptr %20488, align 4, !tbaa !5
  %20490 = call ptr @s2n_strerror_debug(i32 noundef %20489, ptr noundef @.str.6)
  %20491 = call ptr @__errno_location() #13
  %20492 = load i32, ptr %20491, align 4, !tbaa !5
  %20493 = call ptr @strerror(i32 noundef %20492) #12
  %20494 = call ptr @__errno_location() #13
  %20495 = load i32, ptr %20494, align 4, !tbaa !5
  %20496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20483, ptr noundef @.str.7, i32 noundef %20484, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 802, ptr noundef %20487, ptr noundef %20490, ptr noundef %20493, i32 noundef %20495) #12
  br label %20497

20497:                                            ; preds = %20480, %20463
  call void @llvm.lifetime.end.p0(i64 4, ptr %445) #12
  br label %20498

20498:                                            ; preds = %20497
  br label %20499

20499:                                            ; preds = %20498
  call void @exit(i32 noundef 1) #14
  unreachable

20500:                                            ; No predecessors!
  br label %20501

20501:                                            ; preds = %20500
  br label %20502

20502:                                            ; preds = %20501, %20440
  br label %20503

20503:                                            ; preds = %20502
  br label %20504

20504:                                            ; preds = %20503
  br label %20505

20505:                                            ; preds = %20504
  %20506 = load i32, ptr @test_count, align 4, !tbaa !5
  %20507 = add nsw i32 %20506, 1
  store i32 %20507, ptr @test_count, align 4, !tbaa !5
  %20508 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %441, i32 noundef 0)
  %20509 = icmp eq i32 %20508, -1
  br i1 %20509, label %20510, label %20563

20510:                                            ; preds = %20505
  br label %20511

20511:                                            ; preds = %20510
  br label %20512

20512:                                            ; preds = %20511
  call void @llvm.lifetime.start.p0(i64 4, ptr %446) #12
  %20513 = call ptr @__errno_location() #13
  %20514 = load i32, ptr %20513, align 4, !tbaa !5
  store i32 %20514, ptr %446, align 4, !tbaa !5
  %20515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20516 = call i32 @s2n_print_stacktrace(ptr noundef %20515)
  %20517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20518 = trunc i8 %20517 to i1
  br i1 %20518, label %20519, label %20541

20519:                                            ; preds = %20512
  %20520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20521 = call i32 @fileno(ptr noundef %20520) #12
  %20522 = call i32 @isatty(i32 noundef %20521) #12
  %20523 = icmp ne i32 %20522, 0
  br i1 %20523, label %20524, label %20541

20524:                                            ; preds = %20519
  %20525 = load i32, ptr %446, align 4, !tbaa !5
  %20526 = call ptr @__errno_location() #13
  store i32 %20525, ptr %20526, align 4, !tbaa !5
  %20527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20528 = load i32, ptr @test_count, align 4, !tbaa !5
  %20529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20530 = load i32, ptr %20529, align 4, !tbaa !5
  %20531 = call ptr @s2n_strerror(i32 noundef %20530, ptr noundef @.str.6)
  %20532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20533 = load i32, ptr %20532, align 4, !tbaa !5
  %20534 = call ptr @s2n_strerror_debug(i32 noundef %20533, ptr noundef @.str.6)
  %20535 = call ptr @__errno_location() #13
  %20536 = load i32, ptr %20535, align 4, !tbaa !5
  %20537 = call ptr @strerror(i32 noundef %20536) #12
  %20538 = call ptr @__errno_location() #13
  %20539 = load i32, ptr %20538, align 4, !tbaa !5
  %20540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20527, ptr noundef @.str.4, i32 noundef %20528, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 803, ptr noundef %20531, ptr noundef %20534, ptr noundef %20537, i32 noundef %20539) #12
  br label %20558

20541:                                            ; preds = %20519, %20512
  %20542 = load i32, ptr %446, align 4, !tbaa !5
  %20543 = call ptr @__errno_location() #13
  store i32 %20542, ptr %20543, align 4, !tbaa !5
  %20544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20545 = load i32, ptr @test_count, align 4, !tbaa !5
  %20546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20547 = load i32, ptr %20546, align 4, !tbaa !5
  %20548 = call ptr @s2n_strerror(i32 noundef %20547, ptr noundef @.str.6)
  %20549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20550 = load i32, ptr %20549, align 4, !tbaa !5
  %20551 = call ptr @s2n_strerror_debug(i32 noundef %20550, ptr noundef @.str.6)
  %20552 = call ptr @__errno_location() #13
  %20553 = load i32, ptr %20552, align 4, !tbaa !5
  %20554 = call ptr @strerror(i32 noundef %20553) #12
  %20555 = call ptr @__errno_location() #13
  %20556 = load i32, ptr %20555, align 4, !tbaa !5
  %20557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20544, ptr noundef @.str.7, i32 noundef %20545, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 803, ptr noundef %20548, ptr noundef %20551, ptr noundef %20554, i32 noundef %20556) #12
  br label %20558

20558:                                            ; preds = %20541, %20524
  call void @llvm.lifetime.end.p0(i64 4, ptr %446) #12
  br label %20559

20559:                                            ; preds = %20558
  br label %20560

20560:                                            ; preds = %20559
  call void @exit(i32 noundef 1) #14
  unreachable

20561:                                            ; No predecessors!
  br label %20562

20562:                                            ; preds = %20561
  br label %20563

20563:                                            ; preds = %20562, %20505
  br label %20564

20564:                                            ; preds = %20563
  br label %20565

20565:                                            ; preds = %20564
  call void @llvm.lifetime.start.p0(i64 8, ptr %447) #12
  store ptr null, ptr %447, align 8, !tbaa !9
  br label %20566

20566:                                            ; preds = %20565
  %20567 = load i32, ptr @test_count, align 4, !tbaa !5
  %20568 = add nsw i32 %20567, 1
  store i32 %20568, ptr @test_count, align 4, !tbaa !5
  %20569 = load ptr, ptr %440, align 8, !tbaa !9
  %20570 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %20569, ptr noundef %447)
  %20571 = icmp eq i32 %20570, -1
  br i1 %20571, label %20572, label %20625

20572:                                            ; preds = %20566
  br label %20573

20573:                                            ; preds = %20572
  br label %20574

20574:                                            ; preds = %20573
  call void @llvm.lifetime.start.p0(i64 4, ptr %448) #12
  %20575 = call ptr @__errno_location() #13
  %20576 = load i32, ptr %20575, align 4, !tbaa !5
  store i32 %20576, ptr %448, align 4, !tbaa !5
  %20577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20578 = call i32 @s2n_print_stacktrace(ptr noundef %20577)
  %20579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20580 = trunc i8 %20579 to i1
  br i1 %20580, label %20581, label %20603

20581:                                            ; preds = %20574
  %20582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20583 = call i32 @fileno(ptr noundef %20582) #12
  %20584 = call i32 @isatty(i32 noundef %20583) #12
  %20585 = icmp ne i32 %20584, 0
  br i1 %20585, label %20586, label %20603

20586:                                            ; preds = %20581
  %20587 = load i32, ptr %448, align 4, !tbaa !5
  %20588 = call ptr @__errno_location() #13
  store i32 %20587, ptr %20588, align 4, !tbaa !5
  %20589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20590 = load i32, ptr @test_count, align 4, !tbaa !5
  %20591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20592 = load i32, ptr %20591, align 4, !tbaa !5
  %20593 = call ptr @s2n_strerror(i32 noundef %20592, ptr noundef @.str.6)
  %20594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20595 = load i32, ptr %20594, align 4, !tbaa !5
  %20596 = call ptr @s2n_strerror_debug(i32 noundef %20595, ptr noundef @.str.6)
  %20597 = call ptr @__errno_location() #13
  %20598 = load i32, ptr %20597, align 4, !tbaa !5
  %20599 = call ptr @strerror(i32 noundef %20598) #12
  %20600 = call ptr @__errno_location() #13
  %20601 = load i32, ptr %20600, align 4, !tbaa !5
  %20602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20589, ptr noundef @.str.4, i32 noundef %20590, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 806, ptr noundef %20593, ptr noundef %20596, ptr noundef %20599, i32 noundef %20601) #12
  br label %20620

20603:                                            ; preds = %20581, %20574
  %20604 = load i32, ptr %448, align 4, !tbaa !5
  %20605 = call ptr @__errno_location() #13
  store i32 %20604, ptr %20605, align 4, !tbaa !5
  %20606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20607 = load i32, ptr @test_count, align 4, !tbaa !5
  %20608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20609 = load i32, ptr %20608, align 4, !tbaa !5
  %20610 = call ptr @s2n_strerror(i32 noundef %20609, ptr noundef @.str.6)
  %20611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20612 = load i32, ptr %20611, align 4, !tbaa !5
  %20613 = call ptr @s2n_strerror_debug(i32 noundef %20612, ptr noundef @.str.6)
  %20614 = call ptr @__errno_location() #13
  %20615 = load i32, ptr %20614, align 4, !tbaa !5
  %20616 = call ptr @strerror(i32 noundef %20615) #12
  %20617 = call ptr @__errno_location() #13
  %20618 = load i32, ptr %20617, align 4, !tbaa !5
  %20619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20606, ptr noundef @.str.7, i32 noundef %20607, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 806, ptr noundef %20610, ptr noundef %20613, ptr noundef %20616, i32 noundef %20618) #12
  br label %20620

20620:                                            ; preds = %20603, %20586
  call void @llvm.lifetime.end.p0(i64 4, ptr %448) #12
  br label %20621

20621:                                            ; preds = %20620
  br label %20622

20622:                                            ; preds = %20621
  call void @exit(i32 noundef 1) #14
  unreachable

20623:                                            ; No predecessors!
  br label %20624

20624:                                            ; preds = %20623
  br label %20625

20625:                                            ; preds = %20624, %20566
  br label %20626

20626:                                            ; preds = %20625
  br label %20627

20627:                                            ; preds = %20626
  br label %20628

20628:                                            ; preds = %20627
  %20629 = load i32, ptr @test_count, align 4, !tbaa !5
  %20630 = add nsw i32 %20629, 1
  store i32 %20630, ptr @test_count, align 4, !tbaa !5
  %20631 = load ptr, ptr %447, align 8, !tbaa !9
  %20632 = icmp eq ptr %20631, null
  br i1 %20632, label %20633, label %20686

20633:                                            ; preds = %20628
  br label %20634

20634:                                            ; preds = %20633
  br label %20635

20635:                                            ; preds = %20634
  call void @llvm.lifetime.start.p0(i64 4, ptr %449) #12
  %20636 = call ptr @__errno_location() #13
  %20637 = load i32, ptr %20636, align 4, !tbaa !5
  store i32 %20637, ptr %449, align 4, !tbaa !5
  %20638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20639 = call i32 @s2n_print_stacktrace(ptr noundef %20638)
  %20640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20641 = trunc i8 %20640 to i1
  br i1 %20641, label %20642, label %20664

20642:                                            ; preds = %20635
  %20643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20644 = call i32 @fileno(ptr noundef %20643) #12
  %20645 = call i32 @isatty(i32 noundef %20644) #12
  %20646 = icmp ne i32 %20645, 0
  br i1 %20646, label %20647, label %20664

20647:                                            ; preds = %20642
  %20648 = load i32, ptr %449, align 4, !tbaa !5
  %20649 = call ptr @__errno_location() #13
  store i32 %20648, ptr %20649, align 4, !tbaa !5
  %20650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20651 = load i32, ptr @test_count, align 4, !tbaa !5
  %20652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20653 = load i32, ptr %20652, align 4, !tbaa !5
  %20654 = call ptr @s2n_strerror(i32 noundef %20653, ptr noundef @.str.6)
  %20655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20656 = load i32, ptr %20655, align 4, !tbaa !5
  %20657 = call ptr @s2n_strerror_debug(i32 noundef %20656, ptr noundef @.str.6)
  %20658 = call ptr @__errno_location() #13
  %20659 = load i32, ptr %20658, align 4, !tbaa !5
  %20660 = call ptr @strerror(i32 noundef %20659) #12
  %20661 = call ptr @__errno_location() #13
  %20662 = load i32, ptr %20661, align 4, !tbaa !5
  %20663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20650, ptr noundef @.str.4, i32 noundef %20651, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 807, ptr noundef %20654, ptr noundef %20657, ptr noundef %20660, i32 noundef %20662) #12
  br label %20681

20664:                                            ; preds = %20642, %20635
  %20665 = load i32, ptr %449, align 4, !tbaa !5
  %20666 = call ptr @__errno_location() #13
  store i32 %20665, ptr %20666, align 4, !tbaa !5
  %20667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20668 = load i32, ptr @test_count, align 4, !tbaa !5
  %20669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20670 = load i32, ptr %20669, align 4, !tbaa !5
  %20671 = call ptr @s2n_strerror(i32 noundef %20670, ptr noundef @.str.6)
  %20672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20673 = load i32, ptr %20672, align 4, !tbaa !5
  %20674 = call ptr @s2n_strerror_debug(i32 noundef %20673, ptr noundef @.str.6)
  %20675 = call ptr @__errno_location() #13
  %20676 = load i32, ptr %20675, align 4, !tbaa !5
  %20677 = call ptr @strerror(i32 noundef %20676) #12
  %20678 = call ptr @__errno_location() #13
  %20679 = load i32, ptr %20678, align 4, !tbaa !5
  %20680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20667, ptr noundef @.str.7, i32 noundef %20668, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 807, ptr noundef %20671, ptr noundef %20674, ptr noundef %20677, i32 noundef %20679) #12
  br label %20681

20681:                                            ; preds = %20664, %20647
  call void @llvm.lifetime.end.p0(i64 4, ptr %449) #12
  br label %20682

20682:                                            ; preds = %20681
  br label %20683

20683:                                            ; preds = %20682
  call void @exit(i32 noundef 1) #14
  unreachable

20684:                                            ; No predecessors!
  br label %20685

20685:                                            ; preds = %20684
  br label %20686

20686:                                            ; preds = %20685, %20628
  br label %20687

20687:                                            ; preds = %20686
  br label %20688

20688:                                            ; preds = %20687
  br label %20689

20689:                                            ; preds = %20688
  %20690 = load i32, ptr @test_count, align 4, !tbaa !5
  %20691 = add nsw i32 %20690, 1
  store i32 %20691, ptr @test_count, align 4, !tbaa !5
  %20692 = call i32 @s2n_stuffer_skip_write(ptr noundef %441, i32 noundef 2)
  %20693 = icmp eq i32 %20692, -1
  br i1 %20693, label %20694, label %20747

20694:                                            ; preds = %20689
  br label %20695

20695:                                            ; preds = %20694
  br label %20696

20696:                                            ; preds = %20695
  call void @llvm.lifetime.start.p0(i64 4, ptr %450) #12
  %20697 = call ptr @__errno_location() #13
  %20698 = load i32, ptr %20697, align 4, !tbaa !5
  store i32 %20698, ptr %450, align 4, !tbaa !5
  %20699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20700 = call i32 @s2n_print_stacktrace(ptr noundef %20699)
  %20701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20702 = trunc i8 %20701 to i1
  br i1 %20702, label %20703, label %20725

20703:                                            ; preds = %20696
  %20704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20705 = call i32 @fileno(ptr noundef %20704) #12
  %20706 = call i32 @isatty(i32 noundef %20705) #12
  %20707 = icmp ne i32 %20706, 0
  br i1 %20707, label %20708, label %20725

20708:                                            ; preds = %20703
  %20709 = load i32, ptr %450, align 4, !tbaa !5
  %20710 = call ptr @__errno_location() #13
  store i32 %20709, ptr %20710, align 4, !tbaa !5
  %20711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20712 = load i32, ptr @test_count, align 4, !tbaa !5
  %20713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20714 = load i32, ptr %20713, align 4, !tbaa !5
  %20715 = call ptr @s2n_strerror(i32 noundef %20714, ptr noundef @.str.6)
  %20716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20717 = load i32, ptr %20716, align 4, !tbaa !5
  %20718 = call ptr @s2n_strerror_debug(i32 noundef %20717, ptr noundef @.str.6)
  %20719 = call ptr @__errno_location() #13
  %20720 = load i32, ptr %20719, align 4, !tbaa !5
  %20721 = call ptr @strerror(i32 noundef %20720) #12
  %20722 = call ptr @__errno_location() #13
  %20723 = load i32, ptr %20722, align 4, !tbaa !5
  %20724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20711, ptr noundef @.str.4, i32 noundef %20712, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 809, ptr noundef %20715, ptr noundef %20718, ptr noundef %20721, i32 noundef %20723) #12
  br label %20742

20725:                                            ; preds = %20703, %20696
  %20726 = load i32, ptr %450, align 4, !tbaa !5
  %20727 = call ptr @__errno_location() #13
  store i32 %20726, ptr %20727, align 4, !tbaa !5
  %20728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20729 = load i32, ptr @test_count, align 4, !tbaa !5
  %20730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20731 = load i32, ptr %20730, align 4, !tbaa !5
  %20732 = call ptr @s2n_strerror(i32 noundef %20731, ptr noundef @.str.6)
  %20733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20734 = load i32, ptr %20733, align 4, !tbaa !5
  %20735 = call ptr @s2n_strerror_debug(i32 noundef %20734, ptr noundef @.str.6)
  %20736 = call ptr @__errno_location() #13
  %20737 = load i32, ptr %20736, align 4, !tbaa !5
  %20738 = call ptr @strerror(i32 noundef %20737) #12
  %20739 = call ptr @__errno_location() #13
  %20740 = load i32, ptr %20739, align 4, !tbaa !5
  %20741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20728, ptr noundef @.str.7, i32 noundef %20729, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 809, ptr noundef %20732, ptr noundef %20735, ptr noundef %20738, i32 noundef %20740) #12
  br label %20742

20742:                                            ; preds = %20725, %20708
  call void @llvm.lifetime.end.p0(i64 4, ptr %450) #12
  br label %20743

20743:                                            ; preds = %20742
  br label %20744

20744:                                            ; preds = %20743
  call void @exit(i32 noundef 1) #14
  unreachable

20745:                                            ; No predecessors!
  br label %20746

20746:                                            ; preds = %20745
  br label %20747

20747:                                            ; preds = %20746, %20689
  br label %20748

20748:                                            ; preds = %20747
  br label %20749

20749:                                            ; preds = %20748
  br label %20750

20750:                                            ; preds = %20749
  %20751 = load i32, ptr @test_count, align 4, !tbaa !5
  %20752 = add nsw i32 %20751, 1
  store i32 %20752, ptr @test_count, align 4, !tbaa !5
  %20753 = load ptr, ptr %447, align 8, !tbaa !9
  %20754 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %20753, i32 0, i32 1
  %20755 = load ptr, ptr %20754, align 8, !tbaa !24
  %20756 = getelementptr inbounds ptr, ptr %20755, i64 0
  %20757 = load ptr, ptr %20756, align 8, !tbaa !9
  %20758 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %20757, i32 0, i32 3
  %20759 = load i8, ptr %20758, align 8, !tbaa !30
  %20760 = zext i8 %20759 to i16
  %20761 = load ptr, ptr %447, align 8, !tbaa !9
  %20762 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %20761, i32 0, i32 1
  %20763 = load ptr, ptr %20762, align 8, !tbaa !24
  %20764 = getelementptr inbounds ptr, ptr %20763, i64 0
  %20765 = load ptr, ptr %20764, align 8, !tbaa !9
  %20766 = call i32 @s2n_write_key_share(ptr noundef %441, i16 noundef zeroext 0, i16 noundef zeroext %20760, ptr noundef %20765)
  %20767 = icmp eq i32 %20766, -1
  br i1 %20767, label %20768, label %20821

20768:                                            ; preds = %20750
  br label %20769

20769:                                            ; preds = %20768
  br label %20770

20770:                                            ; preds = %20769
  call void @llvm.lifetime.start.p0(i64 4, ptr %451) #12
  %20771 = call ptr @__errno_location() #13
  %20772 = load i32, ptr %20771, align 4, !tbaa !5
  store i32 %20772, ptr %451, align 4, !tbaa !5
  %20773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20774 = call i32 @s2n_print_stacktrace(ptr noundef %20773)
  %20775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20776 = trunc i8 %20775 to i1
  br i1 %20776, label %20777, label %20799

20777:                                            ; preds = %20770
  %20778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20779 = call i32 @fileno(ptr noundef %20778) #12
  %20780 = call i32 @isatty(i32 noundef %20779) #12
  %20781 = icmp ne i32 %20780, 0
  br i1 %20781, label %20782, label %20799

20782:                                            ; preds = %20777
  %20783 = load i32, ptr %451, align 4, !tbaa !5
  %20784 = call ptr @__errno_location() #13
  store i32 %20783, ptr %20784, align 4, !tbaa !5
  %20785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20786 = load i32, ptr @test_count, align 4, !tbaa !5
  %20787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20788 = load i32, ptr %20787, align 4, !tbaa !5
  %20789 = call ptr @s2n_strerror(i32 noundef %20788, ptr noundef @.str.6)
  %20790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20791 = load i32, ptr %20790, align 4, !tbaa !5
  %20792 = call ptr @s2n_strerror_debug(i32 noundef %20791, ptr noundef @.str.6)
  %20793 = call ptr @__errno_location() #13
  %20794 = load i32, ptr %20793, align 4, !tbaa !5
  %20795 = call ptr @strerror(i32 noundef %20794) #12
  %20796 = call ptr @__errno_location() #13
  %20797 = load i32, ptr %20796, align 4, !tbaa !5
  %20798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20785, ptr noundef @.str.4, i32 noundef %20786, ptr noundef @.str.121, ptr noundef @.str.3, i32 noundef 814, ptr noundef %20789, ptr noundef %20792, ptr noundef %20795, i32 noundef %20797) #12
  br label %20816

20799:                                            ; preds = %20777, %20770
  %20800 = load i32, ptr %451, align 4, !tbaa !5
  %20801 = call ptr @__errno_location() #13
  store i32 %20800, ptr %20801, align 4, !tbaa !5
  %20802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20803 = load i32, ptr @test_count, align 4, !tbaa !5
  %20804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20805 = load i32, ptr %20804, align 4, !tbaa !5
  %20806 = call ptr @s2n_strerror(i32 noundef %20805, ptr noundef @.str.6)
  %20807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20808 = load i32, ptr %20807, align 4, !tbaa !5
  %20809 = call ptr @s2n_strerror_debug(i32 noundef %20808, ptr noundef @.str.6)
  %20810 = call ptr @__errno_location() #13
  %20811 = load i32, ptr %20810, align 4, !tbaa !5
  %20812 = call ptr @strerror(i32 noundef %20811) #12
  %20813 = call ptr @__errno_location() #13
  %20814 = load i32, ptr %20813, align 4, !tbaa !5
  %20815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20802, ptr noundef @.str.7, i32 noundef %20803, ptr noundef @.str.121, ptr noundef @.str.3, i32 noundef 814, ptr noundef %20806, ptr noundef %20809, ptr noundef %20812, i32 noundef %20814) #12
  br label %20816

20816:                                            ; preds = %20799, %20782
  call void @llvm.lifetime.end.p0(i64 4, ptr %451) #12
  br label %20817

20817:                                            ; preds = %20816
  br label %20818

20818:                                            ; preds = %20817
  call void @exit(i32 noundef 1) #14
  unreachable

20819:                                            ; No predecessors!
  br label %20820

20820:                                            ; preds = %20819
  br label %20821

20821:                                            ; preds = %20820, %20750
  br label %20822

20822:                                            ; preds = %20821
  br label %20823

20823:                                            ; preds = %20822
  br label %20824

20824:                                            ; preds = %20823
  %20825 = load i32, ptr @test_count, align 4, !tbaa !5
  %20826 = add nsw i32 %20825, 1
  store i32 %20826, ptr @test_count, align 4, !tbaa !5
  %20827 = load ptr, ptr %447, align 8, !tbaa !9
  %20828 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %20827, i32 0, i32 1
  %20829 = load ptr, ptr %20828, align 8, !tbaa !24
  %20830 = getelementptr inbounds ptr, ptr %20829, i64 0
  %20831 = load ptr, ptr %20830, align 8, !tbaa !9
  %20832 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %20831, i32 0, i32 3
  %20833 = load i8, ptr %20832, align 8, !tbaa !30
  %20834 = zext i8 %20833 to i16
  %20835 = load ptr, ptr %447, align 8, !tbaa !9
  %20836 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %20835, i32 0, i32 1
  %20837 = load ptr, ptr %20836, align 8, !tbaa !24
  %20838 = getelementptr inbounds ptr, ptr %20837, i64 0
  %20839 = load ptr, ptr %20838, align 8, !tbaa !9
  %20840 = call i32 @s2n_write_key_share(ptr noundef %441, i16 noundef zeroext -255, i16 noundef zeroext %20834, ptr noundef %20839)
  %20841 = icmp eq i32 %20840, -1
  br i1 %20841, label %20842, label %20895

20842:                                            ; preds = %20824
  br label %20843

20843:                                            ; preds = %20842
  br label %20844

20844:                                            ; preds = %20843
  call void @llvm.lifetime.start.p0(i64 4, ptr %452) #12
  %20845 = call ptr @__errno_location() #13
  %20846 = load i32, ptr %20845, align 4, !tbaa !5
  store i32 %20846, ptr %452, align 4, !tbaa !5
  %20847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20848 = call i32 @s2n_print_stacktrace(ptr noundef %20847)
  %20849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20850 = trunc i8 %20849 to i1
  br i1 %20850, label %20851, label %20873

20851:                                            ; preds = %20844
  %20852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20853 = call i32 @fileno(ptr noundef %20852) #12
  %20854 = call i32 @isatty(i32 noundef %20853) #12
  %20855 = icmp ne i32 %20854, 0
  br i1 %20855, label %20856, label %20873

20856:                                            ; preds = %20851
  %20857 = load i32, ptr %452, align 4, !tbaa !5
  %20858 = call ptr @__errno_location() #13
  store i32 %20857, ptr %20858, align 4, !tbaa !5
  %20859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20860 = load i32, ptr @test_count, align 4, !tbaa !5
  %20861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20862 = load i32, ptr %20861, align 4, !tbaa !5
  %20863 = call ptr @s2n_strerror(i32 noundef %20862, ptr noundef @.str.6)
  %20864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20865 = load i32, ptr %20864, align 4, !tbaa !5
  %20866 = call ptr @s2n_strerror_debug(i32 noundef %20865, ptr noundef @.str.6)
  %20867 = call ptr @__errno_location() #13
  %20868 = load i32, ptr %20867, align 4, !tbaa !5
  %20869 = call ptr @strerror(i32 noundef %20868) #12
  %20870 = call ptr @__errno_location() #13
  %20871 = load i32, ptr %20870, align 4, !tbaa !5
  %20872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20859, ptr noundef @.str.4, i32 noundef %20860, ptr noundef @.str.122, ptr noundef @.str.3, i32 noundef 817, ptr noundef %20863, ptr noundef %20866, ptr noundef %20869, i32 noundef %20871) #12
  br label %20890

20873:                                            ; preds = %20851, %20844
  %20874 = load i32, ptr %452, align 4, !tbaa !5
  %20875 = call ptr @__errno_location() #13
  store i32 %20874, ptr %20875, align 4, !tbaa !5
  %20876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20877 = load i32, ptr @test_count, align 4, !tbaa !5
  %20878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20879 = load i32, ptr %20878, align 4, !tbaa !5
  %20880 = call ptr @s2n_strerror(i32 noundef %20879, ptr noundef @.str.6)
  %20881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20882 = load i32, ptr %20881, align 4, !tbaa !5
  %20883 = call ptr @s2n_strerror_debug(i32 noundef %20882, ptr noundef @.str.6)
  %20884 = call ptr @__errno_location() #13
  %20885 = load i32, ptr %20884, align 4, !tbaa !5
  %20886 = call ptr @strerror(i32 noundef %20885) #12
  %20887 = call ptr @__errno_location() #13
  %20888 = load i32, ptr %20887, align 4, !tbaa !5
  %20889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20876, ptr noundef @.str.7, i32 noundef %20877, ptr noundef @.str.122, ptr noundef @.str.3, i32 noundef 817, ptr noundef %20880, ptr noundef %20883, ptr noundef %20886, i32 noundef %20888) #12
  br label %20890

20890:                                            ; preds = %20873, %20856
  call void @llvm.lifetime.end.p0(i64 4, ptr %452) #12
  br label %20891

20891:                                            ; preds = %20890
  br label %20892

20892:                                            ; preds = %20891
  call void @exit(i32 noundef 1) #14
  unreachable

20893:                                            ; No predecessors!
  br label %20894

20894:                                            ; preds = %20893
  br label %20895

20895:                                            ; preds = %20894, %20824
  br label %20896

20896:                                            ; preds = %20895
  br label %20897

20897:                                            ; preds = %20896
  br label %20898

20898:                                            ; preds = %20897
  %20899 = load i32, ptr @test_count, align 4, !tbaa !5
  %20900 = add nsw i32 %20899, 1
  store i32 %20900, ptr @test_count, align 4, !tbaa !5
  %20901 = call i32 @s2n_test_rewrite_length(ptr noundef %441)
  %20902 = icmp eq i32 %20901, -1
  br i1 %20902, label %20903, label %20956

20903:                                            ; preds = %20898
  br label %20904

20904:                                            ; preds = %20903
  br label %20905

20905:                                            ; preds = %20904
  call void @llvm.lifetime.start.p0(i64 4, ptr %453) #12
  %20906 = call ptr @__errno_location() #13
  %20907 = load i32, ptr %20906, align 4, !tbaa !5
  store i32 %20907, ptr %453, align 4, !tbaa !5
  %20908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20909 = call i32 @s2n_print_stacktrace(ptr noundef %20908)
  %20910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20911 = trunc i8 %20910 to i1
  br i1 %20911, label %20912, label %20934

20912:                                            ; preds = %20905
  %20913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20914 = call i32 @fileno(ptr noundef %20913) #12
  %20915 = call i32 @isatty(i32 noundef %20914) #12
  %20916 = icmp ne i32 %20915, 0
  br i1 %20916, label %20917, label %20934

20917:                                            ; preds = %20912
  %20918 = load i32, ptr %453, align 4, !tbaa !5
  %20919 = call ptr @__errno_location() #13
  store i32 %20918, ptr %20919, align 4, !tbaa !5
  %20920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20921 = load i32, ptr @test_count, align 4, !tbaa !5
  %20922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20923 = load i32, ptr %20922, align 4, !tbaa !5
  %20924 = call ptr @s2n_strerror(i32 noundef %20923, ptr noundef @.str.6)
  %20925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20926 = load i32, ptr %20925, align 4, !tbaa !5
  %20927 = call ptr @s2n_strerror_debug(i32 noundef %20926, ptr noundef @.str.6)
  %20928 = call ptr @__errno_location() #13
  %20929 = load i32, ptr %20928, align 4, !tbaa !5
  %20930 = call ptr @strerror(i32 noundef %20929) #12
  %20931 = call ptr @__errno_location() #13
  %20932 = load i32, ptr %20931, align 4, !tbaa !5
  %20933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20920, ptr noundef @.str.4, i32 noundef %20921, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 819, ptr noundef %20924, ptr noundef %20927, ptr noundef %20930, i32 noundef %20932) #12
  br label %20951

20934:                                            ; preds = %20912, %20905
  %20935 = load i32, ptr %453, align 4, !tbaa !5
  %20936 = call ptr @__errno_location() #13
  store i32 %20935, ptr %20936, align 4, !tbaa !5
  %20937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20938 = load i32, ptr @test_count, align 4, !tbaa !5
  %20939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20940 = load i32, ptr %20939, align 4, !tbaa !5
  %20941 = call ptr @s2n_strerror(i32 noundef %20940, ptr noundef @.str.6)
  %20942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20943 = load i32, ptr %20942, align 4, !tbaa !5
  %20944 = call ptr @s2n_strerror_debug(i32 noundef %20943, ptr noundef @.str.6)
  %20945 = call ptr @__errno_location() #13
  %20946 = load i32, ptr %20945, align 4, !tbaa !5
  %20947 = call ptr @strerror(i32 noundef %20946) #12
  %20948 = call ptr @__errno_location() #13
  %20949 = load i32, ptr %20948, align 4, !tbaa !5
  %20950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20937, ptr noundef @.str.7, i32 noundef %20938, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 819, ptr noundef %20941, ptr noundef %20944, ptr noundef %20947, i32 noundef %20949) #12
  br label %20951

20951:                                            ; preds = %20934, %20917
  call void @llvm.lifetime.end.p0(i64 4, ptr %453) #12
  br label %20952

20952:                                            ; preds = %20951
  br label %20953

20953:                                            ; preds = %20952
  call void @exit(i32 noundef 1) #14
  unreachable

20954:                                            ; No predecessors!
  br label %20955

20955:                                            ; preds = %20954
  br label %20956

20956:                                            ; preds = %20955, %20898
  br label %20957

20957:                                            ; preds = %20956
  br label %20958

20958:                                            ; preds = %20957
  br label %20959

20959:                                            ; preds = %20958
  %20960 = load i32, ptr @test_count, align 4, !tbaa !5
  %20961 = add nsw i32 %20960, 1
  store i32 %20961, ptr @test_count, align 4, !tbaa !5
  %20962 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %20963 = load ptr, ptr %440, align 8, !tbaa !9
  %20964 = call i32 %20962(ptr noundef %20963, ptr noundef %441)
  %20965 = icmp eq i32 %20964, -1
  br i1 %20965, label %20966, label %21019

20966:                                            ; preds = %20959
  br label %20967

20967:                                            ; preds = %20966
  br label %20968

20968:                                            ; preds = %20967
  call void @llvm.lifetime.start.p0(i64 4, ptr %454) #12
  %20969 = call ptr @__errno_location() #13
  %20970 = load i32, ptr %20969, align 4, !tbaa !5
  store i32 %20970, ptr %454, align 4, !tbaa !5
  %20971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20972 = call i32 @s2n_print_stacktrace(ptr noundef %20971)
  %20973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20974 = trunc i8 %20973 to i1
  br i1 %20974, label %20975, label %20997

20975:                                            ; preds = %20968
  %20976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20977 = call i32 @fileno(ptr noundef %20976) #12
  %20978 = call i32 @isatty(i32 noundef %20977) #12
  %20979 = icmp ne i32 %20978, 0
  br i1 %20979, label %20980, label %20997

20980:                                            ; preds = %20975
  %20981 = load i32, ptr %454, align 4, !tbaa !5
  %20982 = call ptr @__errno_location() #13
  store i32 %20981, ptr %20982, align 4, !tbaa !5
  %20983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20984 = load i32, ptr @test_count, align 4, !tbaa !5
  %20985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20986 = load i32, ptr %20985, align 4, !tbaa !5
  %20987 = call ptr @s2n_strerror(i32 noundef %20986, ptr noundef @.str.6)
  %20988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20989 = load i32, ptr %20988, align 4, !tbaa !5
  %20990 = call ptr @s2n_strerror_debug(i32 noundef %20989, ptr noundef @.str.6)
  %20991 = call ptr @__errno_location() #13
  %20992 = load i32, ptr %20991, align 4, !tbaa !5
  %20993 = call ptr @strerror(i32 noundef %20992) #12
  %20994 = call ptr @__errno_location() #13
  %20995 = load i32, ptr %20994, align 4, !tbaa !5
  %20996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20983, ptr noundef @.str.4, i32 noundef %20984, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 821, ptr noundef %20987, ptr noundef %20990, ptr noundef %20993, i32 noundef %20995) #12
  br label %21014

20997:                                            ; preds = %20975, %20968
  %20998 = load i32, ptr %454, align 4, !tbaa !5
  %20999 = call ptr @__errno_location() #13
  store i32 %20998, ptr %20999, align 4, !tbaa !5
  %21000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21001 = load i32, ptr @test_count, align 4, !tbaa !5
  %21002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21003 = load i32, ptr %21002, align 4, !tbaa !5
  %21004 = call ptr @s2n_strerror(i32 noundef %21003, ptr noundef @.str.6)
  %21005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21006 = load i32, ptr %21005, align 4, !tbaa !5
  %21007 = call ptr @s2n_strerror_debug(i32 noundef %21006, ptr noundef @.str.6)
  %21008 = call ptr @__errno_location() #13
  %21009 = load i32, ptr %21008, align 4, !tbaa !5
  %21010 = call ptr @strerror(i32 noundef %21009) #12
  %21011 = call ptr @__errno_location() #13
  %21012 = load i32, ptr %21011, align 4, !tbaa !5
  %21013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21000, ptr noundef @.str.7, i32 noundef %21001, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 821, ptr noundef %21004, ptr noundef %21007, ptr noundef %21010, i32 noundef %21012) #12
  br label %21014

21014:                                            ; preds = %20997, %20980
  call void @llvm.lifetime.end.p0(i64 4, ptr %454) #12
  br label %21015

21015:                                            ; preds = %21014
  br label %21016

21016:                                            ; preds = %21015
  call void @exit(i32 noundef 1) #14
  unreachable

21017:                                            ; No predecessors!
  br label %21018

21018:                                            ; preds = %21017
  br label %21019

21019:                                            ; preds = %21018, %20959
  br label %21020

21020:                                            ; preds = %21019
  br label %21021

21021:                                            ; preds = %21020
  br label %21022

21022:                                            ; preds = %21021
  %21023 = load i32, ptr @test_count, align 4, !tbaa !5
  %21024 = add nsw i32 %21023, 1
  store i32 %21024, ptr @test_count, align 4, !tbaa !5
  %21025 = getelementptr inbounds %struct.s2n_stuffer, ptr %441, i32 0, i32 2
  %21026 = load i32, ptr %21025, align 4, !tbaa !18
  %21027 = getelementptr inbounds %struct.s2n_stuffer, ptr %441, i32 0, i32 1
  %21028 = load i32, ptr %21027, align 8, !tbaa !21
  %21029 = sub i32 %21026, %21028
  %21030 = icmp eq i32 %21029, 0
  br i1 %21030, label %21084, label %21031

21031:                                            ; preds = %21022
  br label %21032

21032:                                            ; preds = %21031
  br label %21033

21033:                                            ; preds = %21032
  call void @llvm.lifetime.start.p0(i64 4, ptr %455) #12
  %21034 = call ptr @__errno_location() #13
  %21035 = load i32, ptr %21034, align 4, !tbaa !5
  store i32 %21035, ptr %455, align 4, !tbaa !5
  %21036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21037 = call i32 @s2n_print_stacktrace(ptr noundef %21036)
  %21038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21039 = trunc i8 %21038 to i1
  br i1 %21039, label %21040, label %21062

21040:                                            ; preds = %21033
  %21041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21042 = call i32 @fileno(ptr noundef %21041) #12
  %21043 = call i32 @isatty(i32 noundef %21042) #12
  %21044 = icmp ne i32 %21043, 0
  br i1 %21044, label %21045, label %21062

21045:                                            ; preds = %21040
  %21046 = load i32, ptr %455, align 4, !tbaa !5
  %21047 = call ptr @__errno_location() #13
  store i32 %21046, ptr %21047, align 4, !tbaa !5
  %21048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21049 = load i32, ptr @test_count, align 4, !tbaa !5
  %21050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21051 = load i32, ptr %21050, align 4, !tbaa !5
  %21052 = call ptr @s2n_strerror(i32 noundef %21051, ptr noundef @.str.6)
  %21053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21054 = load i32, ptr %21053, align 4, !tbaa !5
  %21055 = call ptr @s2n_strerror_debug(i32 noundef %21054, ptr noundef @.str.6)
  %21056 = call ptr @__errno_location() #13
  %21057 = load i32, ptr %21056, align 4, !tbaa !5
  %21058 = call ptr @strerror(i32 noundef %21057) #12
  %21059 = call ptr @__errno_location() #13
  %21060 = load i32, ptr %21059, align 4, !tbaa !5
  %21061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21048, ptr noundef @.str.4, i32 noundef %21049, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 824, ptr noundef %21052, ptr noundef %21055, ptr noundef %21058, i32 noundef %21060) #12
  br label %21079

21062:                                            ; preds = %21040, %21033
  %21063 = load i32, ptr %455, align 4, !tbaa !5
  %21064 = call ptr @__errno_location() #13
  store i32 %21063, ptr %21064, align 4, !tbaa !5
  %21065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21066 = load i32, ptr @test_count, align 4, !tbaa !5
  %21067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21068 = load i32, ptr %21067, align 4, !tbaa !5
  %21069 = call ptr @s2n_strerror(i32 noundef %21068, ptr noundef @.str.6)
  %21070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21071 = load i32, ptr %21070, align 4, !tbaa !5
  %21072 = call ptr @s2n_strerror_debug(i32 noundef %21071, ptr noundef @.str.6)
  %21073 = call ptr @__errno_location() #13
  %21074 = load i32, ptr %21073, align 4, !tbaa !5
  %21075 = call ptr @strerror(i32 noundef %21074) #12
  %21076 = call ptr @__errno_location() #13
  %21077 = load i32, ptr %21076, align 4, !tbaa !5
  %21078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21065, ptr noundef @.str.7, i32 noundef %21066, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 824, ptr noundef %21069, ptr noundef %21072, ptr noundef %21075, i32 noundef %21077) #12
  br label %21079

21079:                                            ; preds = %21062, %21045
  call void @llvm.lifetime.end.p0(i64 4, ptr %455) #12
  br label %21080

21080:                                            ; preds = %21079
  br label %21081

21081:                                            ; preds = %21080
  call void @exit(i32 noundef 1) #14
  unreachable

21082:                                            ; No predecessors!
  br label %21083

21083:                                            ; preds = %21082
  br label %21084

21084:                                            ; preds = %21083, %21022
  br label %21085

21085:                                            ; preds = %21084
  br label %21086

21086:                                            ; preds = %21085
  call void @llvm.lifetime.start.p0(i64 8, ptr %456) #12
  %21087 = load ptr, ptr %440, align 8, !tbaa !9
  %21088 = getelementptr inbounds %struct.s2n_connection, ptr %21087, i32 0, i32 31
  %21089 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %21088, i32 0, i32 3
  store ptr %21089, ptr %456, align 8, !tbaa !9
  br label %21090

21090:                                            ; preds = %21086
  %21091 = load i32, ptr @test_count, align 4, !tbaa !5
  %21092 = add nsw i32 %21091, 1
  store i32 %21092, ptr @test_count, align 4, !tbaa !5
  %21093 = load ptr, ptr %456, align 8, !tbaa !9
  %21094 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %21093, i32 0, i32 0
  %21095 = load ptr, ptr %21094, align 8, !tbaa !22
  %21096 = icmp eq ptr %21095, null
  br i1 %21096, label %21150, label %21097

21097:                                            ; preds = %21090
  br label %21098

21098:                                            ; preds = %21097
  br label %21099

21099:                                            ; preds = %21098
  call void @llvm.lifetime.start.p0(i64 4, ptr %457) #12
  %21100 = call ptr @__errno_location() #13
  %21101 = load i32, ptr %21100, align 4, !tbaa !5
  store i32 %21101, ptr %457, align 4, !tbaa !5
  %21102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21103 = call i32 @s2n_print_stacktrace(ptr noundef %21102)
  %21104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21105 = trunc i8 %21104 to i1
  br i1 %21105, label %21106, label %21128

21106:                                            ; preds = %21099
  %21107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21108 = call i32 @fileno(ptr noundef %21107) #12
  %21109 = call i32 @isatty(i32 noundef %21108) #12
  %21110 = icmp ne i32 %21109, 0
  br i1 %21110, label %21111, label %21128

21111:                                            ; preds = %21106
  %21112 = load i32, ptr %457, align 4, !tbaa !5
  %21113 = call ptr @__errno_location() #13
  store i32 %21112, ptr %21113, align 4, !tbaa !5
  %21114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21115 = load i32, ptr @test_count, align 4, !tbaa !5
  %21116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21117 = load i32, ptr %21116, align 4, !tbaa !5
  %21118 = call ptr @s2n_strerror(i32 noundef %21117, ptr noundef @.str.6)
  %21119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21120 = load i32, ptr %21119, align 4, !tbaa !5
  %21121 = call ptr @s2n_strerror_debug(i32 noundef %21120, ptr noundef @.str.6)
  %21122 = call ptr @__errno_location() #13
  %21123 = load i32, ptr %21122, align 4, !tbaa !5
  %21124 = call ptr @strerror(i32 noundef %21123) #12
  %21125 = call ptr @__errno_location() #13
  %21126 = load i32, ptr %21125, align 4, !tbaa !5
  %21127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21114, ptr noundef @.str.4, i32 noundef %21115, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 828, ptr noundef %21118, ptr noundef %21121, ptr noundef %21124, i32 noundef %21126) #12
  br label %21145

21128:                                            ; preds = %21106, %21099
  %21129 = load i32, ptr %457, align 4, !tbaa !5
  %21130 = call ptr @__errno_location() #13
  store i32 %21129, ptr %21130, align 4, !tbaa !5
  %21131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21132 = load i32, ptr @test_count, align 4, !tbaa !5
  %21133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21134 = load i32, ptr %21133, align 4, !tbaa !5
  %21135 = call ptr @s2n_strerror(i32 noundef %21134, ptr noundef @.str.6)
  %21136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21137 = load i32, ptr %21136, align 4, !tbaa !5
  %21138 = call ptr @s2n_strerror_debug(i32 noundef %21137, ptr noundef @.str.6)
  %21139 = call ptr @__errno_location() #13
  %21140 = load i32, ptr %21139, align 4, !tbaa !5
  %21141 = call ptr @strerror(i32 noundef %21140) #12
  %21142 = call ptr @__errno_location() #13
  %21143 = load i32, ptr %21142, align 4, !tbaa !5
  %21144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21131, ptr noundef @.str.7, i32 noundef %21132, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 828, ptr noundef %21135, ptr noundef %21138, ptr noundef %21141, i32 noundef %21143) #12
  br label %21145

21145:                                            ; preds = %21128, %21111
  call void @llvm.lifetime.end.p0(i64 4, ptr %457) #12
  br label %21146

21146:                                            ; preds = %21145
  br label %21147

21147:                                            ; preds = %21146
  call void @exit(i32 noundef 1) #14
  unreachable

21148:                                            ; No predecessors!
  br label %21149

21149:                                            ; preds = %21148
  br label %21150

21150:                                            ; preds = %21149, %21090
  br label %21151

21151:                                            ; preds = %21150
  br label %21152

21152:                                            ; preds = %21151
  br label %21153

21153:                                            ; preds = %21152
  %21154 = load i32, ptr @test_count, align 4, !tbaa !5
  %21155 = add nsw i32 %21154, 1
  store i32 %21155, ptr @test_count, align 4, !tbaa !5
  %21156 = load ptr, ptr %456, align 8, !tbaa !9
  %21157 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %21156, i32 0, i32 1
  %21158 = load ptr, ptr %21157, align 8, !tbaa !26
  %21159 = icmp eq ptr %21158, null
  br i1 %21159, label %21213, label %21160

21160:                                            ; preds = %21153
  br label %21161

21161:                                            ; preds = %21160
  br label %21162

21162:                                            ; preds = %21161
  call void @llvm.lifetime.start.p0(i64 4, ptr %458) #12
  %21163 = call ptr @__errno_location() #13
  %21164 = load i32, ptr %21163, align 4, !tbaa !5
  store i32 %21164, ptr %458, align 4, !tbaa !5
  %21165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21166 = call i32 @s2n_print_stacktrace(ptr noundef %21165)
  %21167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21168 = trunc i8 %21167 to i1
  br i1 %21168, label %21169, label %21191

21169:                                            ; preds = %21162
  %21170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21171 = call i32 @fileno(ptr noundef %21170) #12
  %21172 = call i32 @isatty(i32 noundef %21171) #12
  %21173 = icmp ne i32 %21172, 0
  br i1 %21173, label %21174, label %21191

21174:                                            ; preds = %21169
  %21175 = load i32, ptr %458, align 4, !tbaa !5
  %21176 = call ptr @__errno_location() #13
  store i32 %21175, ptr %21176, align 4, !tbaa !5
  %21177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21178 = load i32, ptr @test_count, align 4, !tbaa !5
  %21179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21180 = load i32, ptr %21179, align 4, !tbaa !5
  %21181 = call ptr @s2n_strerror(i32 noundef %21180, ptr noundef @.str.6)
  %21182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21183 = load i32, ptr %21182, align 4, !tbaa !5
  %21184 = call ptr @s2n_strerror_debug(i32 noundef %21183, ptr noundef @.str.6)
  %21185 = call ptr @__errno_location() #13
  %21186 = load i32, ptr %21185, align 4, !tbaa !5
  %21187 = call ptr @strerror(i32 noundef %21186) #12
  %21188 = call ptr @__errno_location() #13
  %21189 = load i32, ptr %21188, align 4, !tbaa !5
  %21190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21177, ptr noundef @.str.4, i32 noundef %21178, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 829, ptr noundef %21181, ptr noundef %21184, ptr noundef %21187, i32 noundef %21189) #12
  br label %21208

21191:                                            ; preds = %21169, %21162
  %21192 = load i32, ptr %458, align 4, !tbaa !5
  %21193 = call ptr @__errno_location() #13
  store i32 %21192, ptr %21193, align 4, !tbaa !5
  %21194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21195 = load i32, ptr @test_count, align 4, !tbaa !5
  %21196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21197 = load i32, ptr %21196, align 4, !tbaa !5
  %21198 = call ptr @s2n_strerror(i32 noundef %21197, ptr noundef @.str.6)
  %21199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21200 = load i32, ptr %21199, align 4, !tbaa !5
  %21201 = call ptr @s2n_strerror_debug(i32 noundef %21200, ptr noundef @.str.6)
  %21202 = call ptr @__errno_location() #13
  %21203 = load i32, ptr %21202, align 4, !tbaa !5
  %21204 = call ptr @strerror(i32 noundef %21203) #12
  %21205 = call ptr @__errno_location() #13
  %21206 = load i32, ptr %21205, align 4, !tbaa !5
  %21207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21194, ptr noundef @.str.7, i32 noundef %21195, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 829, ptr noundef %21198, ptr noundef %21201, ptr noundef %21204, i32 noundef %21206) #12
  br label %21208

21208:                                            ; preds = %21191, %21174
  call void @llvm.lifetime.end.p0(i64 4, ptr %458) #12
  br label %21209

21209:                                            ; preds = %21208
  br label %21210

21210:                                            ; preds = %21209
  call void @exit(i32 noundef 1) #14
  unreachable

21211:                                            ; No predecessors!
  br label %21212

21212:                                            ; preds = %21211
  br label %21213

21213:                                            ; preds = %21212, %21153
  br label %21214

21214:                                            ; preds = %21213
  br label %21215

21215:                                            ; preds = %21214
  br label %21216

21216:                                            ; preds = %21215
  %21217 = load i32, ptr @test_count, align 4, !tbaa !5
  %21218 = add nsw i32 %21217, 1
  store i32 %21218, ptr @test_count, align 4, !tbaa !5
  %21219 = call i32 @s2n_stuffer_free(ptr noundef %441)
  %21220 = icmp eq i32 %21219, -1
  br i1 %21220, label %21221, label %21274

21221:                                            ; preds = %21216
  br label %21222

21222:                                            ; preds = %21221
  br label %21223

21223:                                            ; preds = %21222
  call void @llvm.lifetime.start.p0(i64 4, ptr %459) #12
  %21224 = call ptr @__errno_location() #13
  %21225 = load i32, ptr %21224, align 4, !tbaa !5
  store i32 %21225, ptr %459, align 4, !tbaa !5
  %21226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21227 = call i32 @s2n_print_stacktrace(ptr noundef %21226)
  %21228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21229 = trunc i8 %21228 to i1
  br i1 %21229, label %21230, label %21252

21230:                                            ; preds = %21223
  %21231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21232 = call i32 @fileno(ptr noundef %21231) #12
  %21233 = call i32 @isatty(i32 noundef %21232) #12
  %21234 = icmp ne i32 %21233, 0
  br i1 %21234, label %21235, label %21252

21235:                                            ; preds = %21230
  %21236 = load i32, ptr %459, align 4, !tbaa !5
  %21237 = call ptr @__errno_location() #13
  store i32 %21236, ptr %21237, align 4, !tbaa !5
  %21238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21239 = load i32, ptr @test_count, align 4, !tbaa !5
  %21240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21241 = load i32, ptr %21240, align 4, !tbaa !5
  %21242 = call ptr @s2n_strerror(i32 noundef %21241, ptr noundef @.str.6)
  %21243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21244 = load i32, ptr %21243, align 4, !tbaa !5
  %21245 = call ptr @s2n_strerror_debug(i32 noundef %21244, ptr noundef @.str.6)
  %21246 = call ptr @__errno_location() #13
  %21247 = load i32, ptr %21246, align 4, !tbaa !5
  %21248 = call ptr @strerror(i32 noundef %21247) #12
  %21249 = call ptr @__errno_location() #13
  %21250 = load i32, ptr %21249, align 4, !tbaa !5
  %21251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21238, ptr noundef @.str.4, i32 noundef %21239, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 831, ptr noundef %21242, ptr noundef %21245, ptr noundef %21248, i32 noundef %21250) #12
  br label %21269

21252:                                            ; preds = %21230, %21223
  %21253 = load i32, ptr %459, align 4, !tbaa !5
  %21254 = call ptr @__errno_location() #13
  store i32 %21253, ptr %21254, align 4, !tbaa !5
  %21255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21256 = load i32, ptr @test_count, align 4, !tbaa !5
  %21257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21258 = load i32, ptr %21257, align 4, !tbaa !5
  %21259 = call ptr @s2n_strerror(i32 noundef %21258, ptr noundef @.str.6)
  %21260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21261 = load i32, ptr %21260, align 4, !tbaa !5
  %21262 = call ptr @s2n_strerror_debug(i32 noundef %21261, ptr noundef @.str.6)
  %21263 = call ptr @__errno_location() #13
  %21264 = load i32, ptr %21263, align 4, !tbaa !5
  %21265 = call ptr @strerror(i32 noundef %21264) #12
  %21266 = call ptr @__errno_location() #13
  %21267 = load i32, ptr %21266, align 4, !tbaa !5
  %21268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21255, ptr noundef @.str.7, i32 noundef %21256, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 831, ptr noundef %21259, ptr noundef %21262, ptr noundef %21265, i32 noundef %21267) #12
  br label %21269

21269:                                            ; preds = %21252, %21235
  call void @llvm.lifetime.end.p0(i64 4, ptr %459) #12
  br label %21270

21270:                                            ; preds = %21269
  br label %21271

21271:                                            ; preds = %21270
  call void @exit(i32 noundef 1) #14
  unreachable

21272:                                            ; No predecessors!
  br label %21273

21273:                                            ; preds = %21272
  br label %21274

21274:                                            ; preds = %21273, %21216
  br label %21275

21275:                                            ; preds = %21274
  br label %21276

21276:                                            ; preds = %21275
  br label %21277

21277:                                            ; preds = %21276
  %21278 = load i32, ptr @test_count, align 4, !tbaa !5
  %21279 = add nsw i32 %21278, 1
  store i32 %21279, ptr @test_count, align 4, !tbaa !5
  %21280 = load ptr, ptr %440, align 8, !tbaa !9
  %21281 = call i32 @s2n_connection_free(ptr noundef %21280)
  %21282 = icmp eq i32 %21281, -1
  br i1 %21282, label %21283, label %21336

21283:                                            ; preds = %21277
  br label %21284

21284:                                            ; preds = %21283
  br label %21285

21285:                                            ; preds = %21284
  call void @llvm.lifetime.start.p0(i64 4, ptr %460) #12
  %21286 = call ptr @__errno_location() #13
  %21287 = load i32, ptr %21286, align 4, !tbaa !5
  store i32 %21287, ptr %460, align 4, !tbaa !5
  %21288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21289 = call i32 @s2n_print_stacktrace(ptr noundef %21288)
  %21290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21291 = trunc i8 %21290 to i1
  br i1 %21291, label %21292, label %21314

21292:                                            ; preds = %21285
  %21293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21294 = call i32 @fileno(ptr noundef %21293) #12
  %21295 = call i32 @isatty(i32 noundef %21294) #12
  %21296 = icmp ne i32 %21295, 0
  br i1 %21296, label %21297, label %21314

21297:                                            ; preds = %21292
  %21298 = load i32, ptr %460, align 4, !tbaa !5
  %21299 = call ptr @__errno_location() #13
  store i32 %21298, ptr %21299, align 4, !tbaa !5
  %21300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21301 = load i32, ptr @test_count, align 4, !tbaa !5
  %21302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21303 = load i32, ptr %21302, align 4, !tbaa !5
  %21304 = call ptr @s2n_strerror(i32 noundef %21303, ptr noundef @.str.6)
  %21305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21306 = load i32, ptr %21305, align 4, !tbaa !5
  %21307 = call ptr @s2n_strerror_debug(i32 noundef %21306, ptr noundef @.str.6)
  %21308 = call ptr @__errno_location() #13
  %21309 = load i32, ptr %21308, align 4, !tbaa !5
  %21310 = call ptr @strerror(i32 noundef %21309) #12
  %21311 = call ptr @__errno_location() #13
  %21312 = load i32, ptr %21311, align 4, !tbaa !5
  %21313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21300, ptr noundef @.str.4, i32 noundef %21301, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 832, ptr noundef %21304, ptr noundef %21307, ptr noundef %21310, i32 noundef %21312) #12
  br label %21331

21314:                                            ; preds = %21292, %21285
  %21315 = load i32, ptr %460, align 4, !tbaa !5
  %21316 = call ptr @__errno_location() #13
  store i32 %21315, ptr %21316, align 4, !tbaa !5
  %21317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21318 = load i32, ptr @test_count, align 4, !tbaa !5
  %21319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21320 = load i32, ptr %21319, align 4, !tbaa !5
  %21321 = call ptr @s2n_strerror(i32 noundef %21320, ptr noundef @.str.6)
  %21322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21323 = load i32, ptr %21322, align 4, !tbaa !5
  %21324 = call ptr @s2n_strerror_debug(i32 noundef %21323, ptr noundef @.str.6)
  %21325 = call ptr @__errno_location() #13
  %21326 = load i32, ptr %21325, align 4, !tbaa !5
  %21327 = call ptr @strerror(i32 noundef %21326) #12
  %21328 = call ptr @__errno_location() #13
  %21329 = load i32, ptr %21328, align 4, !tbaa !5
  %21330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21317, ptr noundef @.str.7, i32 noundef %21318, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 832, ptr noundef %21321, ptr noundef %21324, ptr noundef %21327, i32 noundef %21329) #12
  br label %21331

21331:                                            ; preds = %21314, %21297
  call void @llvm.lifetime.end.p0(i64 4, ptr %460) #12
  br label %21332

21332:                                            ; preds = %21331
  br label %21333

21333:                                            ; preds = %21332
  call void @exit(i32 noundef 1) #14
  unreachable

21334:                                            ; No predecessors!
  br label %21335

21335:                                            ; preds = %21334
  br label %21336

21336:                                            ; preds = %21335, %21277
  br label %21337

21337:                                            ; preds = %21336
  br label %21338

21338:                                            ; preds = %21337
  call void @llvm.lifetime.end.p0(i64 8, ptr %456) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %447) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %441) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %440) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %461) #12
  store ptr null, ptr %461, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %462) #12
  call void @llvm.memset.p0.i64(ptr align 8 %462, i8 0, i64 40, i1 false)
  br label %21339

21339:                                            ; preds = %21338
  %21340 = load i32, ptr @test_count, align 4, !tbaa !5
  %21341 = add nsw i32 %21340, 1
  store i32 %21341, ptr @test_count, align 4, !tbaa !5
  %21342 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %21342, ptr %461, align 8, !tbaa !9
  %21343 = icmp eq ptr %21342, null
  br i1 %21343, label %21344, label %21397

21344:                                            ; preds = %21339
  br label %21345

21345:                                            ; preds = %21344
  br label %21346

21346:                                            ; preds = %21345
  call void @llvm.lifetime.start.p0(i64 4, ptr %463) #12
  %21347 = call ptr @__errno_location() #13
  %21348 = load i32, ptr %21347, align 4, !tbaa !5
  store i32 %21348, ptr %463, align 4, !tbaa !5
  %21349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21350 = call i32 @s2n_print_stacktrace(ptr noundef %21349)
  %21351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21352 = trunc i8 %21351 to i1
  br i1 %21352, label %21353, label %21375

21353:                                            ; preds = %21346
  %21354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21355 = call i32 @fileno(ptr noundef %21354) #12
  %21356 = call i32 @isatty(i32 noundef %21355) #12
  %21357 = icmp ne i32 %21356, 0
  br i1 %21357, label %21358, label %21375

21358:                                            ; preds = %21353
  %21359 = load i32, ptr %463, align 4, !tbaa !5
  %21360 = call ptr @__errno_location() #13
  store i32 %21359, ptr %21360, align 4, !tbaa !5
  %21361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21362 = load i32, ptr @test_count, align 4, !tbaa !5
  %21363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21364 = load i32, ptr %21363, align 4, !tbaa !5
  %21365 = call ptr @s2n_strerror(i32 noundef %21364, ptr noundef @.str.6)
  %21366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21367 = load i32, ptr %21366, align 4, !tbaa !5
  %21368 = call ptr @s2n_strerror_debug(i32 noundef %21367, ptr noundef @.str.6)
  %21369 = call ptr @__errno_location() #13
  %21370 = load i32, ptr %21369, align 4, !tbaa !5
  %21371 = call ptr @strerror(i32 noundef %21370) #12
  %21372 = call ptr @__errno_location() #13
  %21373 = load i32, ptr %21372, align 4, !tbaa !5
  %21374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21361, ptr noundef @.str.4, i32 noundef %21362, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 839, ptr noundef %21365, ptr noundef %21368, ptr noundef %21371, i32 noundef %21373) #12
  br label %21392

21375:                                            ; preds = %21353, %21346
  %21376 = load i32, ptr %463, align 4, !tbaa !5
  %21377 = call ptr @__errno_location() #13
  store i32 %21376, ptr %21377, align 4, !tbaa !5
  %21378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21379 = load i32, ptr @test_count, align 4, !tbaa !5
  %21380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21381 = load i32, ptr %21380, align 4, !tbaa !5
  %21382 = call ptr @s2n_strerror(i32 noundef %21381, ptr noundef @.str.6)
  %21383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21384 = load i32, ptr %21383, align 4, !tbaa !5
  %21385 = call ptr @s2n_strerror_debug(i32 noundef %21384, ptr noundef @.str.6)
  %21386 = call ptr @__errno_location() #13
  %21387 = load i32, ptr %21386, align 4, !tbaa !5
  %21388 = call ptr @strerror(i32 noundef %21387) #12
  %21389 = call ptr @__errno_location() #13
  %21390 = load i32, ptr %21389, align 4, !tbaa !5
  %21391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21378, ptr noundef @.str.7, i32 noundef %21379, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 839, ptr noundef %21382, ptr noundef %21385, ptr noundef %21388, i32 noundef %21390) #12
  br label %21392

21392:                                            ; preds = %21375, %21358
  call void @llvm.lifetime.end.p0(i64 4, ptr %463) #12
  br label %21393

21393:                                            ; preds = %21392
  br label %21394

21394:                                            ; preds = %21393
  call void @exit(i32 noundef 1) #14
  unreachable

21395:                                            ; No predecessors!
  br label %21396

21396:                                            ; preds = %21395
  br label %21397

21397:                                            ; preds = %21396, %21339
  br label %21398

21398:                                            ; preds = %21397
  br label %21399

21399:                                            ; preds = %21398
  br label %21400

21400:                                            ; preds = %21399
  %21401 = load i32, ptr @test_count, align 4, !tbaa !5
  %21402 = add nsw i32 %21401, 1
  store i32 %21402, ptr @test_count, align 4, !tbaa !5
  %21403 = load ptr, ptr %461, align 8, !tbaa !9
  %21404 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %21403, i8 noundef zeroext 34)
  %21405 = icmp eq i32 %21404, -1
  br i1 %21405, label %21406, label %21459

21406:                                            ; preds = %21400
  br label %21407

21407:                                            ; preds = %21406
  br label %21408

21408:                                            ; preds = %21407
  call void @llvm.lifetime.start.p0(i64 4, ptr %464) #12
  %21409 = call ptr @__errno_location() #13
  %21410 = load i32, ptr %21409, align 4, !tbaa !5
  store i32 %21410, ptr %464, align 4, !tbaa !5
  %21411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21412 = call i32 @s2n_print_stacktrace(ptr noundef %21411)
  %21413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21414 = trunc i8 %21413 to i1
  br i1 %21414, label %21415, label %21437

21415:                                            ; preds = %21408
  %21416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21417 = call i32 @fileno(ptr noundef %21416) #12
  %21418 = call i32 @isatty(i32 noundef %21417) #12
  %21419 = icmp ne i32 %21418, 0
  br i1 %21419, label %21420, label %21437

21420:                                            ; preds = %21415
  %21421 = load i32, ptr %464, align 4, !tbaa !5
  %21422 = call ptr @__errno_location() #13
  store i32 %21421, ptr %21422, align 4, !tbaa !5
  %21423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21424 = load i32, ptr @test_count, align 4, !tbaa !5
  %21425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21426 = load i32, ptr %21425, align 4, !tbaa !5
  %21427 = call ptr @s2n_strerror(i32 noundef %21426, ptr noundef @.str.6)
  %21428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21429 = load i32, ptr %21428, align 4, !tbaa !5
  %21430 = call ptr @s2n_strerror_debug(i32 noundef %21429, ptr noundef @.str.6)
  %21431 = call ptr @__errno_location() #13
  %21432 = load i32, ptr %21431, align 4, !tbaa !5
  %21433 = call ptr @strerror(i32 noundef %21432) #12
  %21434 = call ptr @__errno_location() #13
  %21435 = load i32, ptr %21434, align 4, !tbaa !5
  %21436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21423, ptr noundef @.str.4, i32 noundef %21424, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 840, ptr noundef %21427, ptr noundef %21430, ptr noundef %21433, i32 noundef %21435) #12
  br label %21454

21437:                                            ; preds = %21415, %21408
  %21438 = load i32, ptr %464, align 4, !tbaa !5
  %21439 = call ptr @__errno_location() #13
  store i32 %21438, ptr %21439, align 4, !tbaa !5
  %21440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21441 = load i32, ptr @test_count, align 4, !tbaa !5
  %21442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21443 = load i32, ptr %21442, align 4, !tbaa !5
  %21444 = call ptr @s2n_strerror(i32 noundef %21443, ptr noundef @.str.6)
  %21445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21446 = load i32, ptr %21445, align 4, !tbaa !5
  %21447 = call ptr @s2n_strerror_debug(i32 noundef %21446, ptr noundef @.str.6)
  %21448 = call ptr @__errno_location() #13
  %21449 = load i32, ptr %21448, align 4, !tbaa !5
  %21450 = call ptr @strerror(i32 noundef %21449) #12
  %21451 = call ptr @__errno_location() #13
  %21452 = load i32, ptr %21451, align 4, !tbaa !5
  %21453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21440, ptr noundef @.str.7, i32 noundef %21441, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 840, ptr noundef %21444, ptr noundef %21447, ptr noundef %21450, i32 noundef %21452) #12
  br label %21454

21454:                                            ; preds = %21437, %21420
  call void @llvm.lifetime.end.p0(i64 4, ptr %464) #12
  br label %21455

21455:                                            ; preds = %21454
  br label %21456

21456:                                            ; preds = %21455
  call void @exit(i32 noundef 1) #14
  unreachable

21457:                                            ; No predecessors!
  br label %21458

21458:                                            ; preds = %21457
  br label %21459

21459:                                            ; preds = %21458, %21400
  br label %21460

21460:                                            ; preds = %21459
  br label %21461

21461:                                            ; preds = %21460
  br label %21462

21462:                                            ; preds = %21461
  %21463 = load i32, ptr @test_count, align 4, !tbaa !5
  %21464 = add nsw i32 %21463, 1
  store i32 %21464, ptr @test_count, align 4, !tbaa !5
  %21465 = load ptr, ptr %461, align 8, !tbaa !9
  %21466 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %21465)
  %21467 = getelementptr inbounds %struct.s2n_result, ptr %465, i32 0, i32 0
  store i32 %21466, ptr %21467, align 4
  %21468 = getelementptr inbounds %struct.s2n_result, ptr %465, i32 0, i32 0
  %21469 = load i32, ptr %21468, align 4
  %21470 = call zeroext i1 @s2n_result_is_ok(i32 %21469)
  br i1 %21470, label %21524, label %21471

21471:                                            ; preds = %21462
  br label %21472

21472:                                            ; preds = %21471
  br label %21473

21473:                                            ; preds = %21472
  call void @llvm.lifetime.start.p0(i64 4, ptr %466) #12
  %21474 = call ptr @__errno_location() #13
  %21475 = load i32, ptr %21474, align 4, !tbaa !5
  store i32 %21475, ptr %466, align 4, !tbaa !5
  %21476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21477 = call i32 @s2n_print_stacktrace(ptr noundef %21476)
  %21478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21479 = trunc i8 %21478 to i1
  br i1 %21479, label %21480, label %21502

21480:                                            ; preds = %21473
  %21481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21482 = call i32 @fileno(ptr noundef %21481) #12
  %21483 = call i32 @isatty(i32 noundef %21482) #12
  %21484 = icmp ne i32 %21483, 0
  br i1 %21484, label %21485, label %21502

21485:                                            ; preds = %21480
  %21486 = load i32, ptr %466, align 4, !tbaa !5
  %21487 = call ptr @__errno_location() #13
  store i32 %21486, ptr %21487, align 4, !tbaa !5
  %21488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21489 = load i32, ptr @test_count, align 4, !tbaa !5
  %21490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21491 = load i32, ptr %21490, align 4, !tbaa !5
  %21492 = call ptr @s2n_strerror(i32 noundef %21491, ptr noundef @.str.6)
  %21493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21494 = load i32, ptr %21493, align 4, !tbaa !5
  %21495 = call ptr @s2n_strerror_debug(i32 noundef %21494, ptr noundef @.str.6)
  %21496 = call ptr @__errno_location() #13
  %21497 = load i32, ptr %21496, align 4, !tbaa !5
  %21498 = call ptr @strerror(i32 noundef %21497) #12
  %21499 = call ptr @__errno_location() #13
  %21500 = load i32, ptr %21499, align 4, !tbaa !5
  %21501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21488, ptr noundef @.str.4, i32 noundef %21489, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 841, ptr noundef %21492, ptr noundef %21495, ptr noundef %21498, i32 noundef %21500) #12
  br label %21519

21502:                                            ; preds = %21480, %21473
  %21503 = load i32, ptr %466, align 4, !tbaa !5
  %21504 = call ptr @__errno_location() #13
  store i32 %21503, ptr %21504, align 4, !tbaa !5
  %21505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21506 = load i32, ptr @test_count, align 4, !tbaa !5
  %21507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21508 = load i32, ptr %21507, align 4, !tbaa !5
  %21509 = call ptr @s2n_strerror(i32 noundef %21508, ptr noundef @.str.6)
  %21510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21511 = load i32, ptr %21510, align 4, !tbaa !5
  %21512 = call ptr @s2n_strerror_debug(i32 noundef %21511, ptr noundef @.str.6)
  %21513 = call ptr @__errno_location() #13
  %21514 = load i32, ptr %21513, align 4, !tbaa !5
  %21515 = call ptr @strerror(i32 noundef %21514) #12
  %21516 = call ptr @__errno_location() #13
  %21517 = load i32, ptr %21516, align 4, !tbaa !5
  %21518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21505, ptr noundef @.str.7, i32 noundef %21506, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 841, ptr noundef %21509, ptr noundef %21512, ptr noundef %21515, i32 noundef %21517) #12
  br label %21519

21519:                                            ; preds = %21502, %21485
  call void @llvm.lifetime.end.p0(i64 4, ptr %466) #12
  br label %21520

21520:                                            ; preds = %21519
  br label %21521

21521:                                            ; preds = %21520
  call void @exit(i32 noundef 1) #14
  unreachable

21522:                                            ; No predecessors!
  br label %21523

21523:                                            ; preds = %21522
  br label %21524

21524:                                            ; preds = %21523, %21462
  br label %21525

21525:                                            ; preds = %21524
  br label %21526

21526:                                            ; preds = %21525
  br label %21527

21527:                                            ; preds = %21526
  %21528 = load i32, ptr @test_count, align 4, !tbaa !5
  %21529 = add nsw i32 %21528, 1
  store i32 %21529, ptr @test_count, align 4, !tbaa !5
  %21530 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %462, i32 noundef 0)
  %21531 = icmp eq i32 %21530, -1
  br i1 %21531, label %21532, label %21585

21532:                                            ; preds = %21527
  br label %21533

21533:                                            ; preds = %21532
  br label %21534

21534:                                            ; preds = %21533
  call void @llvm.lifetime.start.p0(i64 4, ptr %467) #12
  %21535 = call ptr @__errno_location() #13
  %21536 = load i32, ptr %21535, align 4, !tbaa !5
  store i32 %21536, ptr %467, align 4, !tbaa !5
  %21537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21538 = call i32 @s2n_print_stacktrace(ptr noundef %21537)
  %21539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21540 = trunc i8 %21539 to i1
  br i1 %21540, label %21541, label %21563

21541:                                            ; preds = %21534
  %21542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21543 = call i32 @fileno(ptr noundef %21542) #12
  %21544 = call i32 @isatty(i32 noundef %21543) #12
  %21545 = icmp ne i32 %21544, 0
  br i1 %21545, label %21546, label %21563

21546:                                            ; preds = %21541
  %21547 = load i32, ptr %467, align 4, !tbaa !5
  %21548 = call ptr @__errno_location() #13
  store i32 %21547, ptr %21548, align 4, !tbaa !5
  %21549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21550 = load i32, ptr @test_count, align 4, !tbaa !5
  %21551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21552 = load i32, ptr %21551, align 4, !tbaa !5
  %21553 = call ptr @s2n_strerror(i32 noundef %21552, ptr noundef @.str.6)
  %21554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21555 = load i32, ptr %21554, align 4, !tbaa !5
  %21556 = call ptr @s2n_strerror_debug(i32 noundef %21555, ptr noundef @.str.6)
  %21557 = call ptr @__errno_location() #13
  %21558 = load i32, ptr %21557, align 4, !tbaa !5
  %21559 = call ptr @strerror(i32 noundef %21558) #12
  %21560 = call ptr @__errno_location() #13
  %21561 = load i32, ptr %21560, align 4, !tbaa !5
  %21562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21549, ptr noundef @.str.4, i32 noundef %21550, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 842, ptr noundef %21553, ptr noundef %21556, ptr noundef %21559, i32 noundef %21561) #12
  br label %21580

21563:                                            ; preds = %21541, %21534
  %21564 = load i32, ptr %467, align 4, !tbaa !5
  %21565 = call ptr @__errno_location() #13
  store i32 %21564, ptr %21565, align 4, !tbaa !5
  %21566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21567 = load i32, ptr @test_count, align 4, !tbaa !5
  %21568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21569 = load i32, ptr %21568, align 4, !tbaa !5
  %21570 = call ptr @s2n_strerror(i32 noundef %21569, ptr noundef @.str.6)
  %21571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21572 = load i32, ptr %21571, align 4, !tbaa !5
  %21573 = call ptr @s2n_strerror_debug(i32 noundef %21572, ptr noundef @.str.6)
  %21574 = call ptr @__errno_location() #13
  %21575 = load i32, ptr %21574, align 4, !tbaa !5
  %21576 = call ptr @strerror(i32 noundef %21575) #12
  %21577 = call ptr @__errno_location() #13
  %21578 = load i32, ptr %21577, align 4, !tbaa !5
  %21579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21566, ptr noundef @.str.7, i32 noundef %21567, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 842, ptr noundef %21570, ptr noundef %21573, ptr noundef %21576, i32 noundef %21578) #12
  br label %21580

21580:                                            ; preds = %21563, %21546
  call void @llvm.lifetime.end.p0(i64 4, ptr %467) #12
  br label %21581

21581:                                            ; preds = %21580
  br label %21582

21582:                                            ; preds = %21581
  call void @exit(i32 noundef 1) #14
  unreachable

21583:                                            ; No predecessors!
  br label %21584

21584:                                            ; preds = %21583
  br label %21585

21585:                                            ; preds = %21584, %21527
  br label %21586

21586:                                            ; preds = %21585
  br label %21587

21587:                                            ; preds = %21586
  call void @llvm.lifetime.start.p0(i64 8, ptr %468) #12
  store ptr null, ptr %468, align 8, !tbaa !9
  br label %21588

21588:                                            ; preds = %21587
  %21589 = load i32, ptr @test_count, align 4, !tbaa !5
  %21590 = add nsw i32 %21589, 1
  store i32 %21590, ptr @test_count, align 4, !tbaa !5
  %21591 = load ptr, ptr %461, align 8, !tbaa !9
  %21592 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %21591, ptr noundef %468)
  %21593 = icmp eq i32 %21592, -1
  br i1 %21593, label %21594, label %21647

21594:                                            ; preds = %21588
  br label %21595

21595:                                            ; preds = %21594
  br label %21596

21596:                                            ; preds = %21595
  call void @llvm.lifetime.start.p0(i64 4, ptr %469) #12
  %21597 = call ptr @__errno_location() #13
  %21598 = load i32, ptr %21597, align 4, !tbaa !5
  store i32 %21598, ptr %469, align 4, !tbaa !5
  %21599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21600 = call i32 @s2n_print_stacktrace(ptr noundef %21599)
  %21601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21602 = trunc i8 %21601 to i1
  br i1 %21602, label %21603, label %21625

21603:                                            ; preds = %21596
  %21604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21605 = call i32 @fileno(ptr noundef %21604) #12
  %21606 = call i32 @isatty(i32 noundef %21605) #12
  %21607 = icmp ne i32 %21606, 0
  br i1 %21607, label %21608, label %21625

21608:                                            ; preds = %21603
  %21609 = load i32, ptr %469, align 4, !tbaa !5
  %21610 = call ptr @__errno_location() #13
  store i32 %21609, ptr %21610, align 4, !tbaa !5
  %21611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21612 = load i32, ptr @test_count, align 4, !tbaa !5
  %21613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21614 = load i32, ptr %21613, align 4, !tbaa !5
  %21615 = call ptr @s2n_strerror(i32 noundef %21614, ptr noundef @.str.6)
  %21616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21617 = load i32, ptr %21616, align 4, !tbaa !5
  %21618 = call ptr @s2n_strerror_debug(i32 noundef %21617, ptr noundef @.str.6)
  %21619 = call ptr @__errno_location() #13
  %21620 = load i32, ptr %21619, align 4, !tbaa !5
  %21621 = call ptr @strerror(i32 noundef %21620) #12
  %21622 = call ptr @__errno_location() #13
  %21623 = load i32, ptr %21622, align 4, !tbaa !5
  %21624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21611, ptr noundef @.str.4, i32 noundef %21612, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 845, ptr noundef %21615, ptr noundef %21618, ptr noundef %21621, i32 noundef %21623) #12
  br label %21642

21625:                                            ; preds = %21603, %21596
  %21626 = load i32, ptr %469, align 4, !tbaa !5
  %21627 = call ptr @__errno_location() #13
  store i32 %21626, ptr %21627, align 4, !tbaa !5
  %21628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21629 = load i32, ptr @test_count, align 4, !tbaa !5
  %21630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21631 = load i32, ptr %21630, align 4, !tbaa !5
  %21632 = call ptr @s2n_strerror(i32 noundef %21631, ptr noundef @.str.6)
  %21633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21634 = load i32, ptr %21633, align 4, !tbaa !5
  %21635 = call ptr @s2n_strerror_debug(i32 noundef %21634, ptr noundef @.str.6)
  %21636 = call ptr @__errno_location() #13
  %21637 = load i32, ptr %21636, align 4, !tbaa !5
  %21638 = call ptr @strerror(i32 noundef %21637) #12
  %21639 = call ptr @__errno_location() #13
  %21640 = load i32, ptr %21639, align 4, !tbaa !5
  %21641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21628, ptr noundef @.str.7, i32 noundef %21629, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 845, ptr noundef %21632, ptr noundef %21635, ptr noundef %21638, i32 noundef %21640) #12
  br label %21642

21642:                                            ; preds = %21625, %21608
  call void @llvm.lifetime.end.p0(i64 4, ptr %469) #12
  br label %21643

21643:                                            ; preds = %21642
  br label %21644

21644:                                            ; preds = %21643
  call void @exit(i32 noundef 1) #14
  unreachable

21645:                                            ; No predecessors!
  br label %21646

21646:                                            ; preds = %21645
  br label %21647

21647:                                            ; preds = %21646, %21588
  br label %21648

21648:                                            ; preds = %21647
  br label %21649

21649:                                            ; preds = %21648
  br label %21650

21650:                                            ; preds = %21649
  %21651 = load i32, ptr @test_count, align 4, !tbaa !5
  %21652 = add nsw i32 %21651, 1
  store i32 %21652, ptr @test_count, align 4, !tbaa !5
  %21653 = load ptr, ptr %468, align 8, !tbaa !9
  %21654 = icmp eq ptr %21653, null
  br i1 %21654, label %21655, label %21708

21655:                                            ; preds = %21650
  br label %21656

21656:                                            ; preds = %21655
  br label %21657

21657:                                            ; preds = %21656
  call void @llvm.lifetime.start.p0(i64 4, ptr %470) #12
  %21658 = call ptr @__errno_location() #13
  %21659 = load i32, ptr %21658, align 4, !tbaa !5
  store i32 %21659, ptr %470, align 4, !tbaa !5
  %21660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21661 = call i32 @s2n_print_stacktrace(ptr noundef %21660)
  %21662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21663 = trunc i8 %21662 to i1
  br i1 %21663, label %21664, label %21686

21664:                                            ; preds = %21657
  %21665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21666 = call i32 @fileno(ptr noundef %21665) #12
  %21667 = call i32 @isatty(i32 noundef %21666) #12
  %21668 = icmp ne i32 %21667, 0
  br i1 %21668, label %21669, label %21686

21669:                                            ; preds = %21664
  %21670 = load i32, ptr %470, align 4, !tbaa !5
  %21671 = call ptr @__errno_location() #13
  store i32 %21670, ptr %21671, align 4, !tbaa !5
  %21672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21673 = load i32, ptr @test_count, align 4, !tbaa !5
  %21674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21675 = load i32, ptr %21674, align 4, !tbaa !5
  %21676 = call ptr @s2n_strerror(i32 noundef %21675, ptr noundef @.str.6)
  %21677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21678 = load i32, ptr %21677, align 4, !tbaa !5
  %21679 = call ptr @s2n_strerror_debug(i32 noundef %21678, ptr noundef @.str.6)
  %21680 = call ptr @__errno_location() #13
  %21681 = load i32, ptr %21680, align 4, !tbaa !5
  %21682 = call ptr @strerror(i32 noundef %21681) #12
  %21683 = call ptr @__errno_location() #13
  %21684 = load i32, ptr %21683, align 4, !tbaa !5
  %21685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21672, ptr noundef @.str.4, i32 noundef %21673, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 846, ptr noundef %21676, ptr noundef %21679, ptr noundef %21682, i32 noundef %21684) #12
  br label %21703

21686:                                            ; preds = %21664, %21657
  %21687 = load i32, ptr %470, align 4, !tbaa !5
  %21688 = call ptr @__errno_location() #13
  store i32 %21687, ptr %21688, align 4, !tbaa !5
  %21689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21690 = load i32, ptr @test_count, align 4, !tbaa !5
  %21691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21692 = load i32, ptr %21691, align 4, !tbaa !5
  %21693 = call ptr @s2n_strerror(i32 noundef %21692, ptr noundef @.str.6)
  %21694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21695 = load i32, ptr %21694, align 4, !tbaa !5
  %21696 = call ptr @s2n_strerror_debug(i32 noundef %21695, ptr noundef @.str.6)
  %21697 = call ptr @__errno_location() #13
  %21698 = load i32, ptr %21697, align 4, !tbaa !5
  %21699 = call ptr @strerror(i32 noundef %21698) #12
  %21700 = call ptr @__errno_location() #13
  %21701 = load i32, ptr %21700, align 4, !tbaa !5
  %21702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21689, ptr noundef @.str.7, i32 noundef %21690, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 846, ptr noundef %21693, ptr noundef %21696, ptr noundef %21699, i32 noundef %21701) #12
  br label %21703

21703:                                            ; preds = %21686, %21669
  call void @llvm.lifetime.end.p0(i64 4, ptr %470) #12
  br label %21704

21704:                                            ; preds = %21703
  br label %21705

21705:                                            ; preds = %21704
  call void @exit(i32 noundef 1) #14
  unreachable

21706:                                            ; No predecessors!
  br label %21707

21707:                                            ; preds = %21706
  br label %21708

21708:                                            ; preds = %21707, %21650
  br label %21709

21709:                                            ; preds = %21708
  br label %21710

21710:                                            ; preds = %21709
  br label %21711

21711:                                            ; preds = %21710
  %21712 = load i32, ptr @test_count, align 4, !tbaa !5
  %21713 = add nsw i32 %21712, 1
  store i32 %21713, ptr @test_count, align 4, !tbaa !5
  %21714 = call i32 @s2n_stuffer_skip_write(ptr noundef %462, i32 noundef 2)
  %21715 = icmp eq i32 %21714, -1
  br i1 %21715, label %21716, label %21769

21716:                                            ; preds = %21711
  br label %21717

21717:                                            ; preds = %21716
  br label %21718

21718:                                            ; preds = %21717
  call void @llvm.lifetime.start.p0(i64 4, ptr %471) #12
  %21719 = call ptr @__errno_location() #13
  %21720 = load i32, ptr %21719, align 4, !tbaa !5
  store i32 %21720, ptr %471, align 4, !tbaa !5
  %21721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21722 = call i32 @s2n_print_stacktrace(ptr noundef %21721)
  %21723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21724 = trunc i8 %21723 to i1
  br i1 %21724, label %21725, label %21747

21725:                                            ; preds = %21718
  %21726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21727 = call i32 @fileno(ptr noundef %21726) #12
  %21728 = call i32 @isatty(i32 noundef %21727) #12
  %21729 = icmp ne i32 %21728, 0
  br i1 %21729, label %21730, label %21747

21730:                                            ; preds = %21725
  %21731 = load i32, ptr %471, align 4, !tbaa !5
  %21732 = call ptr @__errno_location() #13
  store i32 %21731, ptr %21732, align 4, !tbaa !5
  %21733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21734 = load i32, ptr @test_count, align 4, !tbaa !5
  %21735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21736 = load i32, ptr %21735, align 4, !tbaa !5
  %21737 = call ptr @s2n_strerror(i32 noundef %21736, ptr noundef @.str.6)
  %21738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21739 = load i32, ptr %21738, align 4, !tbaa !5
  %21740 = call ptr @s2n_strerror_debug(i32 noundef %21739, ptr noundef @.str.6)
  %21741 = call ptr @__errno_location() #13
  %21742 = load i32, ptr %21741, align 4, !tbaa !5
  %21743 = call ptr @strerror(i32 noundef %21742) #12
  %21744 = call ptr @__errno_location() #13
  %21745 = load i32, ptr %21744, align 4, !tbaa !5
  %21746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21733, ptr noundef @.str.4, i32 noundef %21734, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 849, ptr noundef %21737, ptr noundef %21740, ptr noundef %21743, i32 noundef %21745) #12
  br label %21764

21747:                                            ; preds = %21725, %21718
  %21748 = load i32, ptr %471, align 4, !tbaa !5
  %21749 = call ptr @__errno_location() #13
  store i32 %21748, ptr %21749, align 4, !tbaa !5
  %21750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21751 = load i32, ptr @test_count, align 4, !tbaa !5
  %21752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21753 = load i32, ptr %21752, align 4, !tbaa !5
  %21754 = call ptr @s2n_strerror(i32 noundef %21753, ptr noundef @.str.6)
  %21755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21756 = load i32, ptr %21755, align 4, !tbaa !5
  %21757 = call ptr @s2n_strerror_debug(i32 noundef %21756, ptr noundef @.str.6)
  %21758 = call ptr @__errno_location() #13
  %21759 = load i32, ptr %21758, align 4, !tbaa !5
  %21760 = call ptr @strerror(i32 noundef %21759) #12
  %21761 = call ptr @__errno_location() #13
  %21762 = load i32, ptr %21761, align 4, !tbaa !5
  %21763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21750, ptr noundef @.str.7, i32 noundef %21751, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 849, ptr noundef %21754, ptr noundef %21757, ptr noundef %21760, i32 noundef %21762) #12
  br label %21764

21764:                                            ; preds = %21747, %21730
  call void @llvm.lifetime.end.p0(i64 4, ptr %471) #12
  br label %21765

21765:                                            ; preds = %21764
  br label %21766

21766:                                            ; preds = %21765
  call void @exit(i32 noundef 1) #14
  unreachable

21767:                                            ; No predecessors!
  br label %21768

21768:                                            ; preds = %21767
  br label %21769

21769:                                            ; preds = %21768, %21711
  br label %21770

21770:                                            ; preds = %21769
  br label %21771

21771:                                            ; preds = %21770
  br label %21772

21772:                                            ; preds = %21771
  %21773 = load i32, ptr @test_count, align 4, !tbaa !5
  %21774 = add nsw i32 %21773, 1
  store i32 %21774, ptr @test_count, align 4, !tbaa !5
  %21775 = load ptr, ptr %468, align 8, !tbaa !9
  %21776 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %21775, i32 0, i32 1
  %21777 = load ptr, ptr %21776, align 8, !tbaa !24
  %21778 = getelementptr inbounds ptr, ptr %21777, i64 0
  %21779 = load ptr, ptr %21778, align 8, !tbaa !9
  %21780 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %21779, i32 0, i32 0
  %21781 = load i16, ptr %21780, align 8, !tbaa !28
  %21782 = load ptr, ptr %468, align 8, !tbaa !9
  %21783 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %21782, i32 0, i32 1
  %21784 = load ptr, ptr %21783, align 8, !tbaa !24
  %21785 = getelementptr inbounds ptr, ptr %21784, i64 1
  %21786 = load ptr, ptr %21785, align 8, !tbaa !9
  %21787 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %21786, i32 0, i32 3
  %21788 = load i8, ptr %21787, align 8, !tbaa !30
  %21789 = zext i8 %21788 to i16
  %21790 = load ptr, ptr %468, align 8, !tbaa !9
  %21791 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %21790, i32 0, i32 1
  %21792 = load ptr, ptr %21791, align 8, !tbaa !24
  %21793 = getelementptr inbounds ptr, ptr %21792, i64 1
  %21794 = load ptr, ptr %21793, align 8, !tbaa !9
  %21795 = call i32 @s2n_write_key_share(ptr noundef %462, i16 noundef zeroext %21781, i16 noundef zeroext %21789, ptr noundef %21794)
  %21796 = icmp eq i32 %21795, -1
  br i1 %21796, label %21797, label %21850

21797:                                            ; preds = %21772
  br label %21798

21798:                                            ; preds = %21797
  br label %21799

21799:                                            ; preds = %21798
  call void @llvm.lifetime.start.p0(i64 4, ptr %472) #12
  %21800 = call ptr @__errno_location() #13
  %21801 = load i32, ptr %21800, align 4, !tbaa !5
  store i32 %21801, ptr %472, align 4, !tbaa !5
  %21802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21803 = call i32 @s2n_print_stacktrace(ptr noundef %21802)
  %21804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21805 = trunc i8 %21804 to i1
  br i1 %21805, label %21806, label %21828

21806:                                            ; preds = %21799
  %21807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21808 = call i32 @fileno(ptr noundef %21807) #12
  %21809 = call i32 @isatty(i32 noundef %21808) #12
  %21810 = icmp ne i32 %21809, 0
  br i1 %21810, label %21811, label %21828

21811:                                            ; preds = %21806
  %21812 = load i32, ptr %472, align 4, !tbaa !5
  %21813 = call ptr @__errno_location() #13
  store i32 %21812, ptr %21813, align 4, !tbaa !5
  %21814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21815 = load i32, ptr @test_count, align 4, !tbaa !5
  %21816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21817 = load i32, ptr %21816, align 4, !tbaa !5
  %21818 = call ptr @s2n_strerror(i32 noundef %21817, ptr noundef @.str.6)
  %21819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21820 = load i32, ptr %21819, align 4, !tbaa !5
  %21821 = call ptr @s2n_strerror_debug(i32 noundef %21820, ptr noundef @.str.6)
  %21822 = call ptr @__errno_location() #13
  %21823 = load i32, ptr %21822, align 4, !tbaa !5
  %21824 = call ptr @strerror(i32 noundef %21823) #12
  %21825 = call ptr @__errno_location() #13
  %21826 = load i32, ptr %21825, align 4, !tbaa !5
  %21827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21814, ptr noundef @.str.4, i32 noundef %21815, ptr noundef @.str.123, ptr noundef @.str.3, i32 noundef 851, ptr noundef %21818, ptr noundef %21821, ptr noundef %21824, i32 noundef %21826) #12
  br label %21845

21828:                                            ; preds = %21806, %21799
  %21829 = load i32, ptr %472, align 4, !tbaa !5
  %21830 = call ptr @__errno_location() #13
  store i32 %21829, ptr %21830, align 4, !tbaa !5
  %21831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21832 = load i32, ptr @test_count, align 4, !tbaa !5
  %21833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21834 = load i32, ptr %21833, align 4, !tbaa !5
  %21835 = call ptr @s2n_strerror(i32 noundef %21834, ptr noundef @.str.6)
  %21836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21837 = load i32, ptr %21836, align 4, !tbaa !5
  %21838 = call ptr @s2n_strerror_debug(i32 noundef %21837, ptr noundef @.str.6)
  %21839 = call ptr @__errno_location() #13
  %21840 = load i32, ptr %21839, align 4, !tbaa !5
  %21841 = call ptr @strerror(i32 noundef %21840) #12
  %21842 = call ptr @__errno_location() #13
  %21843 = load i32, ptr %21842, align 4, !tbaa !5
  %21844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21831, ptr noundef @.str.7, i32 noundef %21832, ptr noundef @.str.123, ptr noundef @.str.3, i32 noundef 851, ptr noundef %21835, ptr noundef %21838, ptr noundef %21841, i32 noundef %21843) #12
  br label %21845

21845:                                            ; preds = %21828, %21811
  call void @llvm.lifetime.end.p0(i64 4, ptr %472) #12
  br label %21846

21846:                                            ; preds = %21845
  br label %21847

21847:                                            ; preds = %21846
  call void @exit(i32 noundef 1) #14
  unreachable

21848:                                            ; No predecessors!
  br label %21849

21849:                                            ; preds = %21848
  br label %21850

21850:                                            ; preds = %21849, %21772
  br label %21851

21851:                                            ; preds = %21850
  br label %21852

21852:                                            ; preds = %21851
  br label %21853

21853:                                            ; preds = %21852
  %21854 = load i32, ptr @test_count, align 4, !tbaa !5
  %21855 = add nsw i32 %21854, 1
  store i32 %21855, ptr @test_count, align 4, !tbaa !5
  %21856 = call i32 @s2n_test_rewrite_length(ptr noundef %462)
  %21857 = icmp eq i32 %21856, -1
  br i1 %21857, label %21858, label %21911

21858:                                            ; preds = %21853
  br label %21859

21859:                                            ; preds = %21858
  br label %21860

21860:                                            ; preds = %21859
  call void @llvm.lifetime.start.p0(i64 4, ptr %473) #12
  %21861 = call ptr @__errno_location() #13
  %21862 = load i32, ptr %21861, align 4, !tbaa !5
  store i32 %21862, ptr %473, align 4, !tbaa !5
  %21863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21864 = call i32 @s2n_print_stacktrace(ptr noundef %21863)
  %21865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21866 = trunc i8 %21865 to i1
  br i1 %21866, label %21867, label %21889

21867:                                            ; preds = %21860
  %21868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21869 = call i32 @fileno(ptr noundef %21868) #12
  %21870 = call i32 @isatty(i32 noundef %21869) #12
  %21871 = icmp ne i32 %21870, 0
  br i1 %21871, label %21872, label %21889

21872:                                            ; preds = %21867
  %21873 = load i32, ptr %473, align 4, !tbaa !5
  %21874 = call ptr @__errno_location() #13
  store i32 %21873, ptr %21874, align 4, !tbaa !5
  %21875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21876 = load i32, ptr @test_count, align 4, !tbaa !5
  %21877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21878 = load i32, ptr %21877, align 4, !tbaa !5
  %21879 = call ptr @s2n_strerror(i32 noundef %21878, ptr noundef @.str.6)
  %21880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21881 = load i32, ptr %21880, align 4, !tbaa !5
  %21882 = call ptr @s2n_strerror_debug(i32 noundef %21881, ptr noundef @.str.6)
  %21883 = call ptr @__errno_location() #13
  %21884 = load i32, ptr %21883, align 4, !tbaa !5
  %21885 = call ptr @strerror(i32 noundef %21884) #12
  %21886 = call ptr @__errno_location() #13
  %21887 = load i32, ptr %21886, align 4, !tbaa !5
  %21888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21875, ptr noundef @.str.4, i32 noundef %21876, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 852, ptr noundef %21879, ptr noundef %21882, ptr noundef %21885, i32 noundef %21887) #12
  br label %21906

21889:                                            ; preds = %21867, %21860
  %21890 = load i32, ptr %473, align 4, !tbaa !5
  %21891 = call ptr @__errno_location() #13
  store i32 %21890, ptr %21891, align 4, !tbaa !5
  %21892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21893 = load i32, ptr @test_count, align 4, !tbaa !5
  %21894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21895 = load i32, ptr %21894, align 4, !tbaa !5
  %21896 = call ptr @s2n_strerror(i32 noundef %21895, ptr noundef @.str.6)
  %21897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21898 = load i32, ptr %21897, align 4, !tbaa !5
  %21899 = call ptr @s2n_strerror_debug(i32 noundef %21898, ptr noundef @.str.6)
  %21900 = call ptr @__errno_location() #13
  %21901 = load i32, ptr %21900, align 4, !tbaa !5
  %21902 = call ptr @strerror(i32 noundef %21901) #12
  %21903 = call ptr @__errno_location() #13
  %21904 = load i32, ptr %21903, align 4, !tbaa !5
  %21905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21892, ptr noundef @.str.7, i32 noundef %21893, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 852, ptr noundef %21896, ptr noundef %21899, ptr noundef %21902, i32 noundef %21904) #12
  br label %21906

21906:                                            ; preds = %21889, %21872
  call void @llvm.lifetime.end.p0(i64 4, ptr %473) #12
  br label %21907

21907:                                            ; preds = %21906
  br label %21908

21908:                                            ; preds = %21907
  call void @exit(i32 noundef 1) #14
  unreachable

21909:                                            ; No predecessors!
  br label %21910

21910:                                            ; preds = %21909
  br label %21911

21911:                                            ; preds = %21910, %21853
  br label %21912

21912:                                            ; preds = %21911
  br label %21913

21913:                                            ; preds = %21912
  br label %21914

21914:                                            ; preds = %21913
  %21915 = load i32, ptr @test_count, align 4, !tbaa !5
  %21916 = add nsw i32 %21915, 1
  store i32 %21916, ptr @test_count, align 4, !tbaa !5
  %21917 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %21918 = load ptr, ptr %461, align 8, !tbaa !9
  %21919 = call i32 %21917(ptr noundef %21918, ptr noundef %462)
  %21920 = icmp eq i32 %21919, -1
  br i1 %21920, label %21921, label %21974

21921:                                            ; preds = %21914
  br label %21922

21922:                                            ; preds = %21921
  br label %21923

21923:                                            ; preds = %21922
  call void @llvm.lifetime.start.p0(i64 4, ptr %474) #12
  %21924 = call ptr @__errno_location() #13
  %21925 = load i32, ptr %21924, align 4, !tbaa !5
  store i32 %21925, ptr %474, align 4, !tbaa !5
  %21926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21927 = call i32 @s2n_print_stacktrace(ptr noundef %21926)
  %21928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21929 = trunc i8 %21928 to i1
  br i1 %21929, label %21930, label %21952

21930:                                            ; preds = %21923
  %21931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21932 = call i32 @fileno(ptr noundef %21931) #12
  %21933 = call i32 @isatty(i32 noundef %21932) #12
  %21934 = icmp ne i32 %21933, 0
  br i1 %21934, label %21935, label %21952

21935:                                            ; preds = %21930
  %21936 = load i32, ptr %474, align 4, !tbaa !5
  %21937 = call ptr @__errno_location() #13
  store i32 %21936, ptr %21937, align 4, !tbaa !5
  %21938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21939 = load i32, ptr @test_count, align 4, !tbaa !5
  %21940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21941 = load i32, ptr %21940, align 4, !tbaa !5
  %21942 = call ptr @s2n_strerror(i32 noundef %21941, ptr noundef @.str.6)
  %21943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21944 = load i32, ptr %21943, align 4, !tbaa !5
  %21945 = call ptr @s2n_strerror_debug(i32 noundef %21944, ptr noundef @.str.6)
  %21946 = call ptr @__errno_location() #13
  %21947 = load i32, ptr %21946, align 4, !tbaa !5
  %21948 = call ptr @strerror(i32 noundef %21947) #12
  %21949 = call ptr @__errno_location() #13
  %21950 = load i32, ptr %21949, align 4, !tbaa !5
  %21951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21938, ptr noundef @.str.4, i32 noundef %21939, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 854, ptr noundef %21942, ptr noundef %21945, ptr noundef %21948, i32 noundef %21950) #12
  br label %21969

21952:                                            ; preds = %21930, %21923
  %21953 = load i32, ptr %474, align 4, !tbaa !5
  %21954 = call ptr @__errno_location() #13
  store i32 %21953, ptr %21954, align 4, !tbaa !5
  %21955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21956 = load i32, ptr @test_count, align 4, !tbaa !5
  %21957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21958 = load i32, ptr %21957, align 4, !tbaa !5
  %21959 = call ptr @s2n_strerror(i32 noundef %21958, ptr noundef @.str.6)
  %21960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %21961 = load i32, ptr %21960, align 4, !tbaa !5
  %21962 = call ptr @s2n_strerror_debug(i32 noundef %21961, ptr noundef @.str.6)
  %21963 = call ptr @__errno_location() #13
  %21964 = load i32, ptr %21963, align 4, !tbaa !5
  %21965 = call ptr @strerror(i32 noundef %21964) #12
  %21966 = call ptr @__errno_location() #13
  %21967 = load i32, ptr %21966, align 4, !tbaa !5
  %21968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21955, ptr noundef @.str.7, i32 noundef %21956, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 854, ptr noundef %21959, ptr noundef %21962, ptr noundef %21965, i32 noundef %21967) #12
  br label %21969

21969:                                            ; preds = %21952, %21935
  call void @llvm.lifetime.end.p0(i64 4, ptr %474) #12
  br label %21970

21970:                                            ; preds = %21969
  br label %21971

21971:                                            ; preds = %21970
  call void @exit(i32 noundef 1) #14
  unreachable

21972:                                            ; No predecessors!
  br label %21973

21973:                                            ; preds = %21972
  br label %21974

21974:                                            ; preds = %21973, %21914
  br label %21975

21975:                                            ; preds = %21974
  br label %21976

21976:                                            ; preds = %21975
  br label %21977

21977:                                            ; preds = %21976
  %21978 = load i32, ptr @test_count, align 4, !tbaa !5
  %21979 = add nsw i32 %21978, 1
  store i32 %21979, ptr @test_count, align 4, !tbaa !5
  %21980 = getelementptr inbounds %struct.s2n_stuffer, ptr %462, i32 0, i32 2
  %21981 = load i32, ptr %21980, align 4, !tbaa !18
  %21982 = getelementptr inbounds %struct.s2n_stuffer, ptr %462, i32 0, i32 1
  %21983 = load i32, ptr %21982, align 8, !tbaa !21
  %21984 = sub i32 %21981, %21983
  %21985 = icmp eq i32 %21984, 0
  br i1 %21985, label %22039, label %21986

21986:                                            ; preds = %21977
  br label %21987

21987:                                            ; preds = %21986
  br label %21988

21988:                                            ; preds = %21987
  call void @llvm.lifetime.start.p0(i64 4, ptr %475) #12
  %21989 = call ptr @__errno_location() #13
  %21990 = load i32, ptr %21989, align 4, !tbaa !5
  store i32 %21990, ptr %475, align 4, !tbaa !5
  %21991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21992 = call i32 @s2n_print_stacktrace(ptr noundef %21991)
  %21993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %21994 = trunc i8 %21993 to i1
  br i1 %21994, label %21995, label %22017

21995:                                            ; preds = %21988
  %21996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21997 = call i32 @fileno(ptr noundef %21996) #12
  %21998 = call i32 @isatty(i32 noundef %21997) #12
  %21999 = icmp ne i32 %21998, 0
  br i1 %21999, label %22000, label %22017

22000:                                            ; preds = %21995
  %22001 = load i32, ptr %475, align 4, !tbaa !5
  %22002 = call ptr @__errno_location() #13
  store i32 %22001, ptr %22002, align 4, !tbaa !5
  %22003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22004 = load i32, ptr @test_count, align 4, !tbaa !5
  %22005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22006 = load i32, ptr %22005, align 4, !tbaa !5
  %22007 = call ptr @s2n_strerror(i32 noundef %22006, ptr noundef @.str.6)
  %22008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22009 = load i32, ptr %22008, align 4, !tbaa !5
  %22010 = call ptr @s2n_strerror_debug(i32 noundef %22009, ptr noundef @.str.6)
  %22011 = call ptr @__errno_location() #13
  %22012 = load i32, ptr %22011, align 4, !tbaa !5
  %22013 = call ptr @strerror(i32 noundef %22012) #12
  %22014 = call ptr @__errno_location() #13
  %22015 = load i32, ptr %22014, align 4, !tbaa !5
  %22016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22003, ptr noundef @.str.4, i32 noundef %22004, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 857, ptr noundef %22007, ptr noundef %22010, ptr noundef %22013, i32 noundef %22015) #12
  br label %22034

22017:                                            ; preds = %21995, %21988
  %22018 = load i32, ptr %475, align 4, !tbaa !5
  %22019 = call ptr @__errno_location() #13
  store i32 %22018, ptr %22019, align 4, !tbaa !5
  %22020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22021 = load i32, ptr @test_count, align 4, !tbaa !5
  %22022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22023 = load i32, ptr %22022, align 4, !tbaa !5
  %22024 = call ptr @s2n_strerror(i32 noundef %22023, ptr noundef @.str.6)
  %22025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22026 = load i32, ptr %22025, align 4, !tbaa !5
  %22027 = call ptr @s2n_strerror_debug(i32 noundef %22026, ptr noundef @.str.6)
  %22028 = call ptr @__errno_location() #13
  %22029 = load i32, ptr %22028, align 4, !tbaa !5
  %22030 = call ptr @strerror(i32 noundef %22029) #12
  %22031 = call ptr @__errno_location() #13
  %22032 = load i32, ptr %22031, align 4, !tbaa !5
  %22033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22020, ptr noundef @.str.7, i32 noundef %22021, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 857, ptr noundef %22024, ptr noundef %22027, ptr noundef %22030, i32 noundef %22032) #12
  br label %22034

22034:                                            ; preds = %22017, %22000
  call void @llvm.lifetime.end.p0(i64 4, ptr %475) #12
  br label %22035

22035:                                            ; preds = %22034
  br label %22036

22036:                                            ; preds = %22035
  call void @exit(i32 noundef 1) #14
  unreachable

22037:                                            ; No predecessors!
  br label %22038

22038:                                            ; preds = %22037
  br label %22039

22039:                                            ; preds = %22038, %21977
  br label %22040

22040:                                            ; preds = %22039
  br label %22041

22041:                                            ; preds = %22040
  call void @llvm.lifetime.start.p0(i64 8, ptr %476) #12
  %22042 = load ptr, ptr %461, align 8, !tbaa !9
  %22043 = getelementptr inbounds %struct.s2n_connection, ptr %22042, i32 0, i32 31
  %22044 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %22043, i32 0, i32 3
  store ptr %22044, ptr %476, align 8, !tbaa !9
  br label %22045

22045:                                            ; preds = %22041
  %22046 = load i32, ptr @test_count, align 4, !tbaa !5
  %22047 = add nsw i32 %22046, 1
  store i32 %22047, ptr @test_count, align 4, !tbaa !5
  %22048 = load ptr, ptr %476, align 8, !tbaa !9
  %22049 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %22048, i32 0, i32 0
  %22050 = load ptr, ptr %22049, align 8, !tbaa !22
  %22051 = icmp eq ptr %22050, null
  br i1 %22051, label %22105, label %22052

22052:                                            ; preds = %22045
  br label %22053

22053:                                            ; preds = %22052
  br label %22054

22054:                                            ; preds = %22053
  call void @llvm.lifetime.start.p0(i64 4, ptr %477) #12
  %22055 = call ptr @__errno_location() #13
  %22056 = load i32, ptr %22055, align 4, !tbaa !5
  store i32 %22056, ptr %477, align 4, !tbaa !5
  %22057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22058 = call i32 @s2n_print_stacktrace(ptr noundef %22057)
  %22059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22060 = trunc i8 %22059 to i1
  br i1 %22060, label %22061, label %22083

22061:                                            ; preds = %22054
  %22062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22063 = call i32 @fileno(ptr noundef %22062) #12
  %22064 = call i32 @isatty(i32 noundef %22063) #12
  %22065 = icmp ne i32 %22064, 0
  br i1 %22065, label %22066, label %22083

22066:                                            ; preds = %22061
  %22067 = load i32, ptr %477, align 4, !tbaa !5
  %22068 = call ptr @__errno_location() #13
  store i32 %22067, ptr %22068, align 4, !tbaa !5
  %22069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22070 = load i32, ptr @test_count, align 4, !tbaa !5
  %22071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22072 = load i32, ptr %22071, align 4, !tbaa !5
  %22073 = call ptr @s2n_strerror(i32 noundef %22072, ptr noundef @.str.6)
  %22074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22075 = load i32, ptr %22074, align 4, !tbaa !5
  %22076 = call ptr @s2n_strerror_debug(i32 noundef %22075, ptr noundef @.str.6)
  %22077 = call ptr @__errno_location() #13
  %22078 = load i32, ptr %22077, align 4, !tbaa !5
  %22079 = call ptr @strerror(i32 noundef %22078) #12
  %22080 = call ptr @__errno_location() #13
  %22081 = load i32, ptr %22080, align 4, !tbaa !5
  %22082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22069, ptr noundef @.str.4, i32 noundef %22070, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 861, ptr noundef %22073, ptr noundef %22076, ptr noundef %22079, i32 noundef %22081) #12
  br label %22100

22083:                                            ; preds = %22061, %22054
  %22084 = load i32, ptr %477, align 4, !tbaa !5
  %22085 = call ptr @__errno_location() #13
  store i32 %22084, ptr %22085, align 4, !tbaa !5
  %22086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22087 = load i32, ptr @test_count, align 4, !tbaa !5
  %22088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22089 = load i32, ptr %22088, align 4, !tbaa !5
  %22090 = call ptr @s2n_strerror(i32 noundef %22089, ptr noundef @.str.6)
  %22091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22092 = load i32, ptr %22091, align 4, !tbaa !5
  %22093 = call ptr @s2n_strerror_debug(i32 noundef %22092, ptr noundef @.str.6)
  %22094 = call ptr @__errno_location() #13
  %22095 = load i32, ptr %22094, align 4, !tbaa !5
  %22096 = call ptr @strerror(i32 noundef %22095) #12
  %22097 = call ptr @__errno_location() #13
  %22098 = load i32, ptr %22097, align 4, !tbaa !5
  %22099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22086, ptr noundef @.str.7, i32 noundef %22087, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 861, ptr noundef %22090, ptr noundef %22093, ptr noundef %22096, i32 noundef %22098) #12
  br label %22100

22100:                                            ; preds = %22083, %22066
  call void @llvm.lifetime.end.p0(i64 4, ptr %477) #12
  br label %22101

22101:                                            ; preds = %22100
  br label %22102

22102:                                            ; preds = %22101
  call void @exit(i32 noundef 1) #14
  unreachable

22103:                                            ; No predecessors!
  br label %22104

22104:                                            ; preds = %22103
  br label %22105

22105:                                            ; preds = %22104, %22045
  br label %22106

22106:                                            ; preds = %22105
  br label %22107

22107:                                            ; preds = %22106
  br label %22108

22108:                                            ; preds = %22107
  %22109 = load i32, ptr @test_count, align 4, !tbaa !5
  %22110 = add nsw i32 %22109, 1
  store i32 %22110, ptr @test_count, align 4, !tbaa !5
  %22111 = load ptr, ptr %476, align 8, !tbaa !9
  %22112 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %22111, i32 0, i32 1
  %22113 = load ptr, ptr %22112, align 8, !tbaa !26
  %22114 = icmp eq ptr %22113, null
  br i1 %22114, label %22168, label %22115

22115:                                            ; preds = %22108
  br label %22116

22116:                                            ; preds = %22115
  br label %22117

22117:                                            ; preds = %22116
  call void @llvm.lifetime.start.p0(i64 4, ptr %478) #12
  %22118 = call ptr @__errno_location() #13
  %22119 = load i32, ptr %22118, align 4, !tbaa !5
  store i32 %22119, ptr %478, align 4, !tbaa !5
  %22120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22121 = call i32 @s2n_print_stacktrace(ptr noundef %22120)
  %22122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22123 = trunc i8 %22122 to i1
  br i1 %22123, label %22124, label %22146

22124:                                            ; preds = %22117
  %22125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22126 = call i32 @fileno(ptr noundef %22125) #12
  %22127 = call i32 @isatty(i32 noundef %22126) #12
  %22128 = icmp ne i32 %22127, 0
  br i1 %22128, label %22129, label %22146

22129:                                            ; preds = %22124
  %22130 = load i32, ptr %478, align 4, !tbaa !5
  %22131 = call ptr @__errno_location() #13
  store i32 %22130, ptr %22131, align 4, !tbaa !5
  %22132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22133 = load i32, ptr @test_count, align 4, !tbaa !5
  %22134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22135 = load i32, ptr %22134, align 4, !tbaa !5
  %22136 = call ptr @s2n_strerror(i32 noundef %22135, ptr noundef @.str.6)
  %22137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22138 = load i32, ptr %22137, align 4, !tbaa !5
  %22139 = call ptr @s2n_strerror_debug(i32 noundef %22138, ptr noundef @.str.6)
  %22140 = call ptr @__errno_location() #13
  %22141 = load i32, ptr %22140, align 4, !tbaa !5
  %22142 = call ptr @strerror(i32 noundef %22141) #12
  %22143 = call ptr @__errno_location() #13
  %22144 = load i32, ptr %22143, align 4, !tbaa !5
  %22145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22132, ptr noundef @.str.4, i32 noundef %22133, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 862, ptr noundef %22136, ptr noundef %22139, ptr noundef %22142, i32 noundef %22144) #12
  br label %22163

22146:                                            ; preds = %22124, %22117
  %22147 = load i32, ptr %478, align 4, !tbaa !5
  %22148 = call ptr @__errno_location() #13
  store i32 %22147, ptr %22148, align 4, !tbaa !5
  %22149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22150 = load i32, ptr @test_count, align 4, !tbaa !5
  %22151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22152 = load i32, ptr %22151, align 4, !tbaa !5
  %22153 = call ptr @s2n_strerror(i32 noundef %22152, ptr noundef @.str.6)
  %22154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22155 = load i32, ptr %22154, align 4, !tbaa !5
  %22156 = call ptr @s2n_strerror_debug(i32 noundef %22155, ptr noundef @.str.6)
  %22157 = call ptr @__errno_location() #13
  %22158 = load i32, ptr %22157, align 4, !tbaa !5
  %22159 = call ptr @strerror(i32 noundef %22158) #12
  %22160 = call ptr @__errno_location() #13
  %22161 = load i32, ptr %22160, align 4, !tbaa !5
  %22162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22149, ptr noundef @.str.7, i32 noundef %22150, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 862, ptr noundef %22153, ptr noundef %22156, ptr noundef %22159, i32 noundef %22161) #12
  br label %22163

22163:                                            ; preds = %22146, %22129
  call void @llvm.lifetime.end.p0(i64 4, ptr %478) #12
  br label %22164

22164:                                            ; preds = %22163
  br label %22165

22165:                                            ; preds = %22164
  call void @exit(i32 noundef 1) #14
  unreachable

22166:                                            ; No predecessors!
  br label %22167

22167:                                            ; preds = %22166
  br label %22168

22168:                                            ; preds = %22167, %22108
  br label %22169

22169:                                            ; preds = %22168
  br label %22170

22170:                                            ; preds = %22169
  br label %22171

22171:                                            ; preds = %22170
  %22172 = load i32, ptr @test_count, align 4, !tbaa !5
  %22173 = add nsw i32 %22172, 1
  store i32 %22173, ptr @test_count, align 4, !tbaa !5
  %22174 = call i32 @s2n_stuffer_free(ptr noundef %462)
  %22175 = icmp eq i32 %22174, -1
  br i1 %22175, label %22176, label %22229

22176:                                            ; preds = %22171
  br label %22177

22177:                                            ; preds = %22176
  br label %22178

22178:                                            ; preds = %22177
  call void @llvm.lifetime.start.p0(i64 4, ptr %479) #12
  %22179 = call ptr @__errno_location() #13
  %22180 = load i32, ptr %22179, align 4, !tbaa !5
  store i32 %22180, ptr %479, align 4, !tbaa !5
  %22181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22182 = call i32 @s2n_print_stacktrace(ptr noundef %22181)
  %22183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22184 = trunc i8 %22183 to i1
  br i1 %22184, label %22185, label %22207

22185:                                            ; preds = %22178
  %22186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22187 = call i32 @fileno(ptr noundef %22186) #12
  %22188 = call i32 @isatty(i32 noundef %22187) #12
  %22189 = icmp ne i32 %22188, 0
  br i1 %22189, label %22190, label %22207

22190:                                            ; preds = %22185
  %22191 = load i32, ptr %479, align 4, !tbaa !5
  %22192 = call ptr @__errno_location() #13
  store i32 %22191, ptr %22192, align 4, !tbaa !5
  %22193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22194 = load i32, ptr @test_count, align 4, !tbaa !5
  %22195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22196 = load i32, ptr %22195, align 4, !tbaa !5
  %22197 = call ptr @s2n_strerror(i32 noundef %22196, ptr noundef @.str.6)
  %22198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22199 = load i32, ptr %22198, align 4, !tbaa !5
  %22200 = call ptr @s2n_strerror_debug(i32 noundef %22199, ptr noundef @.str.6)
  %22201 = call ptr @__errno_location() #13
  %22202 = load i32, ptr %22201, align 4, !tbaa !5
  %22203 = call ptr @strerror(i32 noundef %22202) #12
  %22204 = call ptr @__errno_location() #13
  %22205 = load i32, ptr %22204, align 4, !tbaa !5
  %22206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22193, ptr noundef @.str.4, i32 noundef %22194, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 864, ptr noundef %22197, ptr noundef %22200, ptr noundef %22203, i32 noundef %22205) #12
  br label %22224

22207:                                            ; preds = %22185, %22178
  %22208 = load i32, ptr %479, align 4, !tbaa !5
  %22209 = call ptr @__errno_location() #13
  store i32 %22208, ptr %22209, align 4, !tbaa !5
  %22210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22211 = load i32, ptr @test_count, align 4, !tbaa !5
  %22212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22213 = load i32, ptr %22212, align 4, !tbaa !5
  %22214 = call ptr @s2n_strerror(i32 noundef %22213, ptr noundef @.str.6)
  %22215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22216 = load i32, ptr %22215, align 4, !tbaa !5
  %22217 = call ptr @s2n_strerror_debug(i32 noundef %22216, ptr noundef @.str.6)
  %22218 = call ptr @__errno_location() #13
  %22219 = load i32, ptr %22218, align 4, !tbaa !5
  %22220 = call ptr @strerror(i32 noundef %22219) #12
  %22221 = call ptr @__errno_location() #13
  %22222 = load i32, ptr %22221, align 4, !tbaa !5
  %22223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22210, ptr noundef @.str.7, i32 noundef %22211, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 864, ptr noundef %22214, ptr noundef %22217, ptr noundef %22220, i32 noundef %22222) #12
  br label %22224

22224:                                            ; preds = %22207, %22190
  call void @llvm.lifetime.end.p0(i64 4, ptr %479) #12
  br label %22225

22225:                                            ; preds = %22224
  br label %22226

22226:                                            ; preds = %22225
  call void @exit(i32 noundef 1) #14
  unreachable

22227:                                            ; No predecessors!
  br label %22228

22228:                                            ; preds = %22227
  br label %22229

22229:                                            ; preds = %22228, %22171
  br label %22230

22230:                                            ; preds = %22229
  br label %22231

22231:                                            ; preds = %22230
  br label %22232

22232:                                            ; preds = %22231
  %22233 = load i32, ptr @test_count, align 4, !tbaa !5
  %22234 = add nsw i32 %22233, 1
  store i32 %22234, ptr @test_count, align 4, !tbaa !5
  %22235 = load ptr, ptr %461, align 8, !tbaa !9
  %22236 = call i32 @s2n_connection_free(ptr noundef %22235)
  %22237 = icmp eq i32 %22236, -1
  br i1 %22237, label %22238, label %22291

22238:                                            ; preds = %22232
  br label %22239

22239:                                            ; preds = %22238
  br label %22240

22240:                                            ; preds = %22239
  call void @llvm.lifetime.start.p0(i64 4, ptr %480) #12
  %22241 = call ptr @__errno_location() #13
  %22242 = load i32, ptr %22241, align 4, !tbaa !5
  store i32 %22242, ptr %480, align 4, !tbaa !5
  %22243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22244 = call i32 @s2n_print_stacktrace(ptr noundef %22243)
  %22245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22246 = trunc i8 %22245 to i1
  br i1 %22246, label %22247, label %22269

22247:                                            ; preds = %22240
  %22248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22249 = call i32 @fileno(ptr noundef %22248) #12
  %22250 = call i32 @isatty(i32 noundef %22249) #12
  %22251 = icmp ne i32 %22250, 0
  br i1 %22251, label %22252, label %22269

22252:                                            ; preds = %22247
  %22253 = load i32, ptr %480, align 4, !tbaa !5
  %22254 = call ptr @__errno_location() #13
  store i32 %22253, ptr %22254, align 4, !tbaa !5
  %22255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22256 = load i32, ptr @test_count, align 4, !tbaa !5
  %22257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22258 = load i32, ptr %22257, align 4, !tbaa !5
  %22259 = call ptr @s2n_strerror(i32 noundef %22258, ptr noundef @.str.6)
  %22260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22261 = load i32, ptr %22260, align 4, !tbaa !5
  %22262 = call ptr @s2n_strerror_debug(i32 noundef %22261, ptr noundef @.str.6)
  %22263 = call ptr @__errno_location() #13
  %22264 = load i32, ptr %22263, align 4, !tbaa !5
  %22265 = call ptr @strerror(i32 noundef %22264) #12
  %22266 = call ptr @__errno_location() #13
  %22267 = load i32, ptr %22266, align 4, !tbaa !5
  %22268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22255, ptr noundef @.str.4, i32 noundef %22256, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 865, ptr noundef %22259, ptr noundef %22262, ptr noundef %22265, i32 noundef %22267) #12
  br label %22286

22269:                                            ; preds = %22247, %22240
  %22270 = load i32, ptr %480, align 4, !tbaa !5
  %22271 = call ptr @__errno_location() #13
  store i32 %22270, ptr %22271, align 4, !tbaa !5
  %22272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22273 = load i32, ptr @test_count, align 4, !tbaa !5
  %22274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22275 = load i32, ptr %22274, align 4, !tbaa !5
  %22276 = call ptr @s2n_strerror(i32 noundef %22275, ptr noundef @.str.6)
  %22277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22278 = load i32, ptr %22277, align 4, !tbaa !5
  %22279 = call ptr @s2n_strerror_debug(i32 noundef %22278, ptr noundef @.str.6)
  %22280 = call ptr @__errno_location() #13
  %22281 = load i32, ptr %22280, align 4, !tbaa !5
  %22282 = call ptr @strerror(i32 noundef %22281) #12
  %22283 = call ptr @__errno_location() #13
  %22284 = load i32, ptr %22283, align 4, !tbaa !5
  %22285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22272, ptr noundef @.str.7, i32 noundef %22273, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 865, ptr noundef %22276, ptr noundef %22279, ptr noundef %22282, i32 noundef %22284) #12
  br label %22286

22286:                                            ; preds = %22269, %22252
  call void @llvm.lifetime.end.p0(i64 4, ptr %480) #12
  br label %22287

22287:                                            ; preds = %22286
  br label %22288

22288:                                            ; preds = %22287
  call void @exit(i32 noundef 1) #14
  unreachable

22289:                                            ; No predecessors!
  br label %22290

22290:                                            ; preds = %22289
  br label %22291

22291:                                            ; preds = %22290, %22232
  br label %22292

22292:                                            ; preds = %22291
  br label %22293

22293:                                            ; preds = %22292
  call void @llvm.lifetime.end.p0(i64 8, ptr %476) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %468) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %462) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %461) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %481) #12
  store ptr null, ptr %481, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %482) #12
  call void @llvm.memset.p0.i64(ptr align 8 %482, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %483) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %484) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %485) #12
  store i32 0, ptr %485, align 4, !tbaa !5
  br label %22294

22294:                                            ; preds = %22293
  %22295 = load i32, ptr @test_count, align 4, !tbaa !5
  %22296 = add nsw i32 %22295, 1
  store i32 %22296, ptr @test_count, align 4, !tbaa !5
  %22297 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %22297, ptr %481, align 8, !tbaa !9
  %22298 = icmp eq ptr %22297, null
  br i1 %22298, label %22299, label %22352

22299:                                            ; preds = %22294
  br label %22300

22300:                                            ; preds = %22299
  br label %22301

22301:                                            ; preds = %22300
  call void @llvm.lifetime.start.p0(i64 4, ptr %486) #12
  %22302 = call ptr @__errno_location() #13
  %22303 = load i32, ptr %22302, align 4, !tbaa !5
  store i32 %22303, ptr %486, align 4, !tbaa !5
  %22304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22305 = call i32 @s2n_print_stacktrace(ptr noundef %22304)
  %22306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22307 = trunc i8 %22306 to i1
  br i1 %22307, label %22308, label %22330

22308:                                            ; preds = %22301
  %22309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22310 = call i32 @fileno(ptr noundef %22309) #12
  %22311 = call i32 @isatty(i32 noundef %22310) #12
  %22312 = icmp ne i32 %22311, 0
  br i1 %22312, label %22313, label %22330

22313:                                            ; preds = %22308
  %22314 = load i32, ptr %486, align 4, !tbaa !5
  %22315 = call ptr @__errno_location() #13
  store i32 %22314, ptr %22315, align 4, !tbaa !5
  %22316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22317 = load i32, ptr @test_count, align 4, !tbaa !5
  %22318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22319 = load i32, ptr %22318, align 4, !tbaa !5
  %22320 = call ptr @s2n_strerror(i32 noundef %22319, ptr noundef @.str.6)
  %22321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22322 = load i32, ptr %22321, align 4, !tbaa !5
  %22323 = call ptr @s2n_strerror_debug(i32 noundef %22322, ptr noundef @.str.6)
  %22324 = call ptr @__errno_location() #13
  %22325 = load i32, ptr %22324, align 4, !tbaa !5
  %22326 = call ptr @strerror(i32 noundef %22325) #12
  %22327 = call ptr @__errno_location() #13
  %22328 = load i32, ptr %22327, align 4, !tbaa !5
  %22329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22316, ptr noundef @.str.4, i32 noundef %22317, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 874, ptr noundef %22320, ptr noundef %22323, ptr noundef %22326, i32 noundef %22328) #12
  br label %22347

22330:                                            ; preds = %22308, %22301
  %22331 = load i32, ptr %486, align 4, !tbaa !5
  %22332 = call ptr @__errno_location() #13
  store i32 %22331, ptr %22332, align 4, !tbaa !5
  %22333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22334 = load i32, ptr @test_count, align 4, !tbaa !5
  %22335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22336 = load i32, ptr %22335, align 4, !tbaa !5
  %22337 = call ptr @s2n_strerror(i32 noundef %22336, ptr noundef @.str.6)
  %22338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22339 = load i32, ptr %22338, align 4, !tbaa !5
  %22340 = call ptr @s2n_strerror_debug(i32 noundef %22339, ptr noundef @.str.6)
  %22341 = call ptr @__errno_location() #13
  %22342 = load i32, ptr %22341, align 4, !tbaa !5
  %22343 = call ptr @strerror(i32 noundef %22342) #12
  %22344 = call ptr @__errno_location() #13
  %22345 = load i32, ptr %22344, align 4, !tbaa !5
  %22346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22333, ptr noundef @.str.7, i32 noundef %22334, ptr noundef @.str.50, ptr noundef @.str.3, i32 noundef 874, ptr noundef %22337, ptr noundef %22340, ptr noundef %22343, i32 noundef %22345) #12
  br label %22347

22347:                                            ; preds = %22330, %22313
  call void @llvm.lifetime.end.p0(i64 4, ptr %486) #12
  br label %22348

22348:                                            ; preds = %22347
  br label %22349

22349:                                            ; preds = %22348
  call void @exit(i32 noundef 1) #14
  unreachable

22350:                                            ; No predecessors!
  br label %22351

22351:                                            ; preds = %22350
  br label %22352

22352:                                            ; preds = %22351, %22294
  br label %22353

22353:                                            ; preds = %22352
  br label %22354

22354:                                            ; preds = %22353
  br label %22355

22355:                                            ; preds = %22354
  %22356 = load i32, ptr @test_count, align 4, !tbaa !5
  %22357 = add nsw i32 %22356, 1
  store i32 %22357, ptr @test_count, align 4, !tbaa !5
  %22358 = load ptr, ptr %481, align 8, !tbaa !9
  %22359 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %22358, i8 noundef zeroext 34)
  %22360 = icmp eq i32 %22359, -1
  br i1 %22360, label %22361, label %22414

22361:                                            ; preds = %22355
  br label %22362

22362:                                            ; preds = %22361
  br label %22363

22363:                                            ; preds = %22362
  call void @llvm.lifetime.start.p0(i64 4, ptr %487) #12
  %22364 = call ptr @__errno_location() #13
  %22365 = load i32, ptr %22364, align 4, !tbaa !5
  store i32 %22365, ptr %487, align 4, !tbaa !5
  %22366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22367 = call i32 @s2n_print_stacktrace(ptr noundef %22366)
  %22368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22369 = trunc i8 %22368 to i1
  br i1 %22369, label %22370, label %22392

22370:                                            ; preds = %22363
  %22371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22372 = call i32 @fileno(ptr noundef %22371) #12
  %22373 = call i32 @isatty(i32 noundef %22372) #12
  %22374 = icmp ne i32 %22373, 0
  br i1 %22374, label %22375, label %22392

22375:                                            ; preds = %22370
  %22376 = load i32, ptr %487, align 4, !tbaa !5
  %22377 = call ptr @__errno_location() #13
  store i32 %22376, ptr %22377, align 4, !tbaa !5
  %22378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22379 = load i32, ptr @test_count, align 4, !tbaa !5
  %22380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22381 = load i32, ptr %22380, align 4, !tbaa !5
  %22382 = call ptr @s2n_strerror(i32 noundef %22381, ptr noundef @.str.6)
  %22383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22384 = load i32, ptr %22383, align 4, !tbaa !5
  %22385 = call ptr @s2n_strerror_debug(i32 noundef %22384, ptr noundef @.str.6)
  %22386 = call ptr @__errno_location() #13
  %22387 = load i32, ptr %22386, align 4, !tbaa !5
  %22388 = call ptr @strerror(i32 noundef %22387) #12
  %22389 = call ptr @__errno_location() #13
  %22390 = load i32, ptr %22389, align 4, !tbaa !5
  %22391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22378, ptr noundef @.str.4, i32 noundef %22379, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 875, ptr noundef %22382, ptr noundef %22385, ptr noundef %22388, i32 noundef %22390) #12
  br label %22409

22392:                                            ; preds = %22370, %22363
  %22393 = load i32, ptr %487, align 4, !tbaa !5
  %22394 = call ptr @__errno_location() #13
  store i32 %22393, ptr %22394, align 4, !tbaa !5
  %22395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22396 = load i32, ptr @test_count, align 4, !tbaa !5
  %22397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22398 = load i32, ptr %22397, align 4, !tbaa !5
  %22399 = call ptr @s2n_strerror(i32 noundef %22398, ptr noundef @.str.6)
  %22400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22401 = load i32, ptr %22400, align 4, !tbaa !5
  %22402 = call ptr @s2n_strerror_debug(i32 noundef %22401, ptr noundef @.str.6)
  %22403 = call ptr @__errno_location() #13
  %22404 = load i32, ptr %22403, align 4, !tbaa !5
  %22405 = call ptr @strerror(i32 noundef %22404) #12
  %22406 = call ptr @__errno_location() #13
  %22407 = load i32, ptr %22406, align 4, !tbaa !5
  %22408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22395, ptr noundef @.str.7, i32 noundef %22396, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 875, ptr noundef %22399, ptr noundef %22402, ptr noundef %22405, i32 noundef %22407) #12
  br label %22409

22409:                                            ; preds = %22392, %22375
  call void @llvm.lifetime.end.p0(i64 4, ptr %487) #12
  br label %22410

22410:                                            ; preds = %22409
  br label %22411

22411:                                            ; preds = %22410
  call void @exit(i32 noundef 1) #14
  unreachable

22412:                                            ; No predecessors!
  br label %22413

22413:                                            ; preds = %22412
  br label %22414

22414:                                            ; preds = %22413, %22355
  br label %22415

22415:                                            ; preds = %22414
  br label %22416

22416:                                            ; preds = %22415
  br label %22417

22417:                                            ; preds = %22416
  %22418 = load i32, ptr @test_count, align 4, !tbaa !5
  %22419 = add nsw i32 %22418, 1
  store i32 %22419, ptr @test_count, align 4, !tbaa !5
  %22420 = load ptr, ptr %481, align 8, !tbaa !9
  %22421 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %22420)
  %22422 = getelementptr inbounds %struct.s2n_result, ptr %488, i32 0, i32 0
  store i32 %22421, ptr %22422, align 4
  %22423 = getelementptr inbounds %struct.s2n_result, ptr %488, i32 0, i32 0
  %22424 = load i32, ptr %22423, align 4
  %22425 = call zeroext i1 @s2n_result_is_ok(i32 %22424)
  br i1 %22425, label %22479, label %22426

22426:                                            ; preds = %22417
  br label %22427

22427:                                            ; preds = %22426
  br label %22428

22428:                                            ; preds = %22427
  call void @llvm.lifetime.start.p0(i64 4, ptr %489) #12
  %22429 = call ptr @__errno_location() #13
  %22430 = load i32, ptr %22429, align 4, !tbaa !5
  store i32 %22430, ptr %489, align 4, !tbaa !5
  %22431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22432 = call i32 @s2n_print_stacktrace(ptr noundef %22431)
  %22433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22434 = trunc i8 %22433 to i1
  br i1 %22434, label %22435, label %22457

22435:                                            ; preds = %22428
  %22436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22437 = call i32 @fileno(ptr noundef %22436) #12
  %22438 = call i32 @isatty(i32 noundef %22437) #12
  %22439 = icmp ne i32 %22438, 0
  br i1 %22439, label %22440, label %22457

22440:                                            ; preds = %22435
  %22441 = load i32, ptr %489, align 4, !tbaa !5
  %22442 = call ptr @__errno_location() #13
  store i32 %22441, ptr %22442, align 4, !tbaa !5
  %22443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22444 = load i32, ptr @test_count, align 4, !tbaa !5
  %22445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22446 = load i32, ptr %22445, align 4, !tbaa !5
  %22447 = call ptr @s2n_strerror(i32 noundef %22446, ptr noundef @.str.6)
  %22448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22449 = load i32, ptr %22448, align 4, !tbaa !5
  %22450 = call ptr @s2n_strerror_debug(i32 noundef %22449, ptr noundef @.str.6)
  %22451 = call ptr @__errno_location() #13
  %22452 = load i32, ptr %22451, align 4, !tbaa !5
  %22453 = call ptr @strerror(i32 noundef %22452) #12
  %22454 = call ptr @__errno_location() #13
  %22455 = load i32, ptr %22454, align 4, !tbaa !5
  %22456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22443, ptr noundef @.str.4, i32 noundef %22444, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 876, ptr noundef %22447, ptr noundef %22450, ptr noundef %22453, i32 noundef %22455) #12
  br label %22474

22457:                                            ; preds = %22435, %22428
  %22458 = load i32, ptr %489, align 4, !tbaa !5
  %22459 = call ptr @__errno_location() #13
  store i32 %22458, ptr %22459, align 4, !tbaa !5
  %22460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22461 = load i32, ptr @test_count, align 4, !tbaa !5
  %22462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22463 = load i32, ptr %22462, align 4, !tbaa !5
  %22464 = call ptr @s2n_strerror(i32 noundef %22463, ptr noundef @.str.6)
  %22465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22466 = load i32, ptr %22465, align 4, !tbaa !5
  %22467 = call ptr @s2n_strerror_debug(i32 noundef %22466, ptr noundef @.str.6)
  %22468 = call ptr @__errno_location() #13
  %22469 = load i32, ptr %22468, align 4, !tbaa !5
  %22470 = call ptr @strerror(i32 noundef %22469) #12
  %22471 = call ptr @__errno_location() #13
  %22472 = load i32, ptr %22471, align 4, !tbaa !5
  %22473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22460, ptr noundef @.str.7, i32 noundef %22461, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 876, ptr noundef %22464, ptr noundef %22467, ptr noundef %22470, i32 noundef %22472) #12
  br label %22474

22474:                                            ; preds = %22457, %22440
  call void @llvm.lifetime.end.p0(i64 4, ptr %489) #12
  br label %22475

22475:                                            ; preds = %22474
  br label %22476

22476:                                            ; preds = %22475
  call void @exit(i32 noundef 1) #14
  unreachable

22477:                                            ; No predecessors!
  br label %22478

22478:                                            ; preds = %22477
  br label %22479

22479:                                            ; preds = %22478, %22417
  br label %22480

22480:                                            ; preds = %22479
  br label %22481

22481:                                            ; preds = %22480
  br label %22482

22482:                                            ; preds = %22481
  %22483 = load i32, ptr @test_count, align 4, !tbaa !5
  %22484 = add nsw i32 %22483, 1
  store i32 %22484, ptr @test_count, align 4, !tbaa !5
  %22485 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %482, i32 noundef 0)
  %22486 = icmp eq i32 %22485, -1
  br i1 %22486, label %22487, label %22540

22487:                                            ; preds = %22482
  br label %22488

22488:                                            ; preds = %22487
  br label %22489

22489:                                            ; preds = %22488
  call void @llvm.lifetime.start.p0(i64 4, ptr %490) #12
  %22490 = call ptr @__errno_location() #13
  %22491 = load i32, ptr %22490, align 4, !tbaa !5
  store i32 %22491, ptr %490, align 4, !tbaa !5
  %22492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22493 = call i32 @s2n_print_stacktrace(ptr noundef %22492)
  %22494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22495 = trunc i8 %22494 to i1
  br i1 %22495, label %22496, label %22518

22496:                                            ; preds = %22489
  %22497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22498 = call i32 @fileno(ptr noundef %22497) #12
  %22499 = call i32 @isatty(i32 noundef %22498) #12
  %22500 = icmp ne i32 %22499, 0
  br i1 %22500, label %22501, label %22518

22501:                                            ; preds = %22496
  %22502 = load i32, ptr %490, align 4, !tbaa !5
  %22503 = call ptr @__errno_location() #13
  store i32 %22502, ptr %22503, align 4, !tbaa !5
  %22504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22505 = load i32, ptr @test_count, align 4, !tbaa !5
  %22506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22507 = load i32, ptr %22506, align 4, !tbaa !5
  %22508 = call ptr @s2n_strerror(i32 noundef %22507, ptr noundef @.str.6)
  %22509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22510 = load i32, ptr %22509, align 4, !tbaa !5
  %22511 = call ptr @s2n_strerror_debug(i32 noundef %22510, ptr noundef @.str.6)
  %22512 = call ptr @__errno_location() #13
  %22513 = load i32, ptr %22512, align 4, !tbaa !5
  %22514 = call ptr @strerror(i32 noundef %22513) #12
  %22515 = call ptr @__errno_location() #13
  %22516 = load i32, ptr %22515, align 4, !tbaa !5
  %22517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22504, ptr noundef @.str.4, i32 noundef %22505, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 877, ptr noundef %22508, ptr noundef %22511, ptr noundef %22514, i32 noundef %22516) #12
  br label %22535

22518:                                            ; preds = %22496, %22489
  %22519 = load i32, ptr %490, align 4, !tbaa !5
  %22520 = call ptr @__errno_location() #13
  store i32 %22519, ptr %22520, align 4, !tbaa !5
  %22521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22522 = load i32, ptr @test_count, align 4, !tbaa !5
  %22523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22524 = load i32, ptr %22523, align 4, !tbaa !5
  %22525 = call ptr @s2n_strerror(i32 noundef %22524, ptr noundef @.str.6)
  %22526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22527 = load i32, ptr %22526, align 4, !tbaa !5
  %22528 = call ptr @s2n_strerror_debug(i32 noundef %22527, ptr noundef @.str.6)
  %22529 = call ptr @__errno_location() #13
  %22530 = load i32, ptr %22529, align 4, !tbaa !5
  %22531 = call ptr @strerror(i32 noundef %22530) #12
  %22532 = call ptr @__errno_location() #13
  %22533 = load i32, ptr %22532, align 4, !tbaa !5
  %22534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22521, ptr noundef @.str.7, i32 noundef %22522, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 877, ptr noundef %22525, ptr noundef %22528, ptr noundef %22531, i32 noundef %22533) #12
  br label %22535

22535:                                            ; preds = %22518, %22501
  call void @llvm.lifetime.end.p0(i64 4, ptr %490) #12
  br label %22536

22536:                                            ; preds = %22535
  br label %22537

22537:                                            ; preds = %22536
  call void @exit(i32 noundef 1) #14
  unreachable

22538:                                            ; No predecessors!
  br label %22539

22539:                                            ; preds = %22538
  br label %22540

22540:                                            ; preds = %22539, %22482
  br label %22541

22541:                                            ; preds = %22540
  br label %22542

22542:                                            ; preds = %22541
  call void @llvm.lifetime.start.p0(i64 8, ptr %491) #12
  store ptr null, ptr %491, align 8, !tbaa !9
  br label %22543

22543:                                            ; preds = %22542
  %22544 = load i32, ptr @test_count, align 4, !tbaa !5
  %22545 = add nsw i32 %22544, 1
  store i32 %22545, ptr @test_count, align 4, !tbaa !5
  %22546 = load ptr, ptr %481, align 8, !tbaa !9
  %22547 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %22546, ptr noundef %491)
  %22548 = icmp eq i32 %22547, -1
  br i1 %22548, label %22549, label %22602

22549:                                            ; preds = %22543
  br label %22550

22550:                                            ; preds = %22549
  br label %22551

22551:                                            ; preds = %22550
  call void @llvm.lifetime.start.p0(i64 4, ptr %492) #12
  %22552 = call ptr @__errno_location() #13
  %22553 = load i32, ptr %22552, align 4, !tbaa !5
  store i32 %22553, ptr %492, align 4, !tbaa !5
  %22554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22555 = call i32 @s2n_print_stacktrace(ptr noundef %22554)
  %22556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22557 = trunc i8 %22556 to i1
  br i1 %22557, label %22558, label %22580

22558:                                            ; preds = %22551
  %22559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22560 = call i32 @fileno(ptr noundef %22559) #12
  %22561 = call i32 @isatty(i32 noundef %22560) #12
  %22562 = icmp ne i32 %22561, 0
  br i1 %22562, label %22563, label %22580

22563:                                            ; preds = %22558
  %22564 = load i32, ptr %492, align 4, !tbaa !5
  %22565 = call ptr @__errno_location() #13
  store i32 %22564, ptr %22565, align 4, !tbaa !5
  %22566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22567 = load i32, ptr @test_count, align 4, !tbaa !5
  %22568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22569 = load i32, ptr %22568, align 4, !tbaa !5
  %22570 = call ptr @s2n_strerror(i32 noundef %22569, ptr noundef @.str.6)
  %22571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22572 = load i32, ptr %22571, align 4, !tbaa !5
  %22573 = call ptr @s2n_strerror_debug(i32 noundef %22572, ptr noundef @.str.6)
  %22574 = call ptr @__errno_location() #13
  %22575 = load i32, ptr %22574, align 4, !tbaa !5
  %22576 = call ptr @strerror(i32 noundef %22575) #12
  %22577 = call ptr @__errno_location() #13
  %22578 = load i32, ptr %22577, align 4, !tbaa !5
  %22579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22566, ptr noundef @.str.4, i32 noundef %22567, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 880, ptr noundef %22570, ptr noundef %22573, ptr noundef %22576, i32 noundef %22578) #12
  br label %22597

22580:                                            ; preds = %22558, %22551
  %22581 = load i32, ptr %492, align 4, !tbaa !5
  %22582 = call ptr @__errno_location() #13
  store i32 %22581, ptr %22582, align 4, !tbaa !5
  %22583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22584 = load i32, ptr @test_count, align 4, !tbaa !5
  %22585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22586 = load i32, ptr %22585, align 4, !tbaa !5
  %22587 = call ptr @s2n_strerror(i32 noundef %22586, ptr noundef @.str.6)
  %22588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22589 = load i32, ptr %22588, align 4, !tbaa !5
  %22590 = call ptr @s2n_strerror_debug(i32 noundef %22589, ptr noundef @.str.6)
  %22591 = call ptr @__errno_location() #13
  %22592 = load i32, ptr %22591, align 4, !tbaa !5
  %22593 = call ptr @strerror(i32 noundef %22592) #12
  %22594 = call ptr @__errno_location() #13
  %22595 = load i32, ptr %22594, align 4, !tbaa !5
  %22596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22583, ptr noundef @.str.7, i32 noundef %22584, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 880, ptr noundef %22587, ptr noundef %22590, ptr noundef %22593, i32 noundef %22595) #12
  br label %22597

22597:                                            ; preds = %22580, %22563
  call void @llvm.lifetime.end.p0(i64 4, ptr %492) #12
  br label %22598

22598:                                            ; preds = %22597
  br label %22599

22599:                                            ; preds = %22598
  call void @exit(i32 noundef 1) #14
  unreachable

22600:                                            ; No predecessors!
  br label %22601

22601:                                            ; preds = %22600
  br label %22602

22602:                                            ; preds = %22601, %22543
  br label %22603

22603:                                            ; preds = %22602
  br label %22604

22604:                                            ; preds = %22603
  br label %22605

22605:                                            ; preds = %22604
  %22606 = load i32, ptr @test_count, align 4, !tbaa !5
  %22607 = add nsw i32 %22606, 1
  store i32 %22607, ptr @test_count, align 4, !tbaa !5
  %22608 = load ptr, ptr %491, align 8, !tbaa !9
  %22609 = icmp eq ptr %22608, null
  br i1 %22609, label %22610, label %22663

22610:                                            ; preds = %22605
  br label %22611

22611:                                            ; preds = %22610
  br label %22612

22612:                                            ; preds = %22611
  call void @llvm.lifetime.start.p0(i64 4, ptr %493) #12
  %22613 = call ptr @__errno_location() #13
  %22614 = load i32, ptr %22613, align 4, !tbaa !5
  store i32 %22614, ptr %493, align 4, !tbaa !5
  %22615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22616 = call i32 @s2n_print_stacktrace(ptr noundef %22615)
  %22617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22618 = trunc i8 %22617 to i1
  br i1 %22618, label %22619, label %22641

22619:                                            ; preds = %22612
  %22620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22621 = call i32 @fileno(ptr noundef %22620) #12
  %22622 = call i32 @isatty(i32 noundef %22621) #12
  %22623 = icmp ne i32 %22622, 0
  br i1 %22623, label %22624, label %22641

22624:                                            ; preds = %22619
  %22625 = load i32, ptr %493, align 4, !tbaa !5
  %22626 = call ptr @__errno_location() #13
  store i32 %22625, ptr %22626, align 4, !tbaa !5
  %22627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22628 = load i32, ptr @test_count, align 4, !tbaa !5
  %22629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22630 = load i32, ptr %22629, align 4, !tbaa !5
  %22631 = call ptr @s2n_strerror(i32 noundef %22630, ptr noundef @.str.6)
  %22632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22633 = load i32, ptr %22632, align 4, !tbaa !5
  %22634 = call ptr @s2n_strerror_debug(i32 noundef %22633, ptr noundef @.str.6)
  %22635 = call ptr @__errno_location() #13
  %22636 = load i32, ptr %22635, align 4, !tbaa !5
  %22637 = call ptr @strerror(i32 noundef %22636) #12
  %22638 = call ptr @__errno_location() #13
  %22639 = load i32, ptr %22638, align 4, !tbaa !5
  %22640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22627, ptr noundef @.str.4, i32 noundef %22628, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 881, ptr noundef %22631, ptr noundef %22634, ptr noundef %22637, i32 noundef %22639) #12
  br label %22658

22641:                                            ; preds = %22619, %22612
  %22642 = load i32, ptr %493, align 4, !tbaa !5
  %22643 = call ptr @__errno_location() #13
  store i32 %22642, ptr %22643, align 4, !tbaa !5
  %22644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22645 = load i32, ptr @test_count, align 4, !tbaa !5
  %22646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22647 = load i32, ptr %22646, align 4, !tbaa !5
  %22648 = call ptr @s2n_strerror(i32 noundef %22647, ptr noundef @.str.6)
  %22649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22650 = load i32, ptr %22649, align 4, !tbaa !5
  %22651 = call ptr @s2n_strerror_debug(i32 noundef %22650, ptr noundef @.str.6)
  %22652 = call ptr @__errno_location() #13
  %22653 = load i32, ptr %22652, align 4, !tbaa !5
  %22654 = call ptr @strerror(i32 noundef %22653) #12
  %22655 = call ptr @__errno_location() #13
  %22656 = load i32, ptr %22655, align 4, !tbaa !5
  %22657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22644, ptr noundef @.str.7, i32 noundef %22645, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 881, ptr noundef %22648, ptr noundef %22651, ptr noundef %22654, i32 noundef %22656) #12
  br label %22658

22658:                                            ; preds = %22641, %22624
  call void @llvm.lifetime.end.p0(i64 4, ptr %493) #12
  br label %22659

22659:                                            ; preds = %22658
  br label %22660

22660:                                            ; preds = %22659
  call void @exit(i32 noundef 1) #14
  unreachable

22661:                                            ; No predecessors!
  br label %22662

22662:                                            ; preds = %22661
  br label %22663

22663:                                            ; preds = %22662, %22605
  br label %22664

22664:                                            ; preds = %22663
  br label %22665

22665:                                            ; preds = %22664
  br label %22666

22666:                                            ; preds = %22665
  %22667 = load i32, ptr @test_count, align 4, !tbaa !5
  %22668 = add nsw i32 %22667, 1
  store i32 %22668, ptr @test_count, align 4, !tbaa !5
  %22669 = call i32 @s2n_stuffer_skip_write(ptr noundef %482, i32 noundef 2)
  %22670 = icmp eq i32 %22669, -1
  br i1 %22670, label %22671, label %22724

22671:                                            ; preds = %22666
  br label %22672

22672:                                            ; preds = %22671
  br label %22673

22673:                                            ; preds = %22672
  call void @llvm.lifetime.start.p0(i64 4, ptr %494) #12
  %22674 = call ptr @__errno_location() #13
  %22675 = load i32, ptr %22674, align 4, !tbaa !5
  store i32 %22675, ptr %494, align 4, !tbaa !5
  %22676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22677 = call i32 @s2n_print_stacktrace(ptr noundef %22676)
  %22678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22679 = trunc i8 %22678 to i1
  br i1 %22679, label %22680, label %22702

22680:                                            ; preds = %22673
  %22681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22682 = call i32 @fileno(ptr noundef %22681) #12
  %22683 = call i32 @isatty(i32 noundef %22682) #12
  %22684 = icmp ne i32 %22683, 0
  br i1 %22684, label %22685, label %22702

22685:                                            ; preds = %22680
  %22686 = load i32, ptr %494, align 4, !tbaa !5
  %22687 = call ptr @__errno_location() #13
  store i32 %22686, ptr %22687, align 4, !tbaa !5
  %22688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22689 = load i32, ptr @test_count, align 4, !tbaa !5
  %22690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22691 = load i32, ptr %22690, align 4, !tbaa !5
  %22692 = call ptr @s2n_strerror(i32 noundef %22691, ptr noundef @.str.6)
  %22693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22694 = load i32, ptr %22693, align 4, !tbaa !5
  %22695 = call ptr @s2n_strerror_debug(i32 noundef %22694, ptr noundef @.str.6)
  %22696 = call ptr @__errno_location() #13
  %22697 = load i32, ptr %22696, align 4, !tbaa !5
  %22698 = call ptr @strerror(i32 noundef %22697) #12
  %22699 = call ptr @__errno_location() #13
  %22700 = load i32, ptr %22699, align 4, !tbaa !5
  %22701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22688, ptr noundef @.str.4, i32 noundef %22689, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 883, ptr noundef %22692, ptr noundef %22695, ptr noundef %22698, i32 noundef %22700) #12
  br label %22719

22702:                                            ; preds = %22680, %22673
  %22703 = load i32, ptr %494, align 4, !tbaa !5
  %22704 = call ptr @__errno_location() #13
  store i32 %22703, ptr %22704, align 4, !tbaa !5
  %22705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22706 = load i32, ptr @test_count, align 4, !tbaa !5
  %22707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22708 = load i32, ptr %22707, align 4, !tbaa !5
  %22709 = call ptr @s2n_strerror(i32 noundef %22708, ptr noundef @.str.6)
  %22710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22711 = load i32, ptr %22710, align 4, !tbaa !5
  %22712 = call ptr @s2n_strerror_debug(i32 noundef %22711, ptr noundef @.str.6)
  %22713 = call ptr @__errno_location() #13
  %22714 = load i32, ptr %22713, align 4, !tbaa !5
  %22715 = call ptr @strerror(i32 noundef %22714) #12
  %22716 = call ptr @__errno_location() #13
  %22717 = load i32, ptr %22716, align 4, !tbaa !5
  %22718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22705, ptr noundef @.str.7, i32 noundef %22706, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 883, ptr noundef %22709, ptr noundef %22712, ptr noundef %22715, i32 noundef %22717) #12
  br label %22719

22719:                                            ; preds = %22702, %22685
  call void @llvm.lifetime.end.p0(i64 4, ptr %494) #12
  br label %22720

22720:                                            ; preds = %22719
  br label %22721

22721:                                            ; preds = %22720
  call void @exit(i32 noundef 1) #14
  unreachable

22722:                                            ; No predecessors!
  br label %22723

22723:                                            ; preds = %22722
  br label %22724

22724:                                            ; preds = %22723, %22666
  br label %22725

22725:                                            ; preds = %22724
  br label %22726

22726:                                            ; preds = %22725
  %22727 = load ptr, ptr %491, align 8, !tbaa !9
  %22728 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %22727, i32 0, i32 1
  %22729 = load ptr, ptr %22728, align 8, !tbaa !24
  %22730 = load i32, ptr %485, align 4, !tbaa !5
  %22731 = sext i32 %22730 to i64
  %22732 = getelementptr inbounds ptr, ptr %22729, i64 %22731
  %22733 = load ptr, ptr %22732, align 8, !tbaa !9
  %22734 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %483, i32 0, i32 0
  store ptr %22733, ptr %22734, align 8, !tbaa !22
  %22735 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %483, i32 0, i32 1
  store ptr null, ptr %22735, align 8, !tbaa !26
  br label %22736

22736:                                            ; preds = %22726
  %22737 = load i32, ptr @test_count, align 4, !tbaa !5
  %22738 = add nsw i32 %22737, 1
  store i32 %22738, ptr @test_count, align 4, !tbaa !5
  %22739 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %483, ptr noundef %482)
  %22740 = icmp eq i32 %22739, -1
  br i1 %22740, label %22741, label %22794

22741:                                            ; preds = %22736
  br label %22742

22742:                                            ; preds = %22741
  br label %22743

22743:                                            ; preds = %22742
  call void @llvm.lifetime.start.p0(i64 4, ptr %495) #12
  %22744 = call ptr @__errno_location() #13
  %22745 = load i32, ptr %22744, align 4, !tbaa !5
  store i32 %22745, ptr %495, align 4, !tbaa !5
  %22746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22747 = call i32 @s2n_print_stacktrace(ptr noundef %22746)
  %22748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22749 = trunc i8 %22748 to i1
  br i1 %22749, label %22750, label %22772

22750:                                            ; preds = %22743
  %22751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22752 = call i32 @fileno(ptr noundef %22751) #12
  %22753 = call i32 @isatty(i32 noundef %22752) #12
  %22754 = icmp ne i32 %22753, 0
  br i1 %22754, label %22755, label %22772

22755:                                            ; preds = %22750
  %22756 = load i32, ptr %495, align 4, !tbaa !5
  %22757 = call ptr @__errno_location() #13
  store i32 %22756, ptr %22757, align 4, !tbaa !5
  %22758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22759 = load i32, ptr @test_count, align 4, !tbaa !5
  %22760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22761 = load i32, ptr %22760, align 4, !tbaa !5
  %22762 = call ptr @s2n_strerror(i32 noundef %22761, ptr noundef @.str.6)
  %22763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22764 = load i32, ptr %22763, align 4, !tbaa !5
  %22765 = call ptr @s2n_strerror_debug(i32 noundef %22764, ptr noundef @.str.6)
  %22766 = call ptr @__errno_location() #13
  %22767 = load i32, ptr %22766, align 4, !tbaa !5
  %22768 = call ptr @strerror(i32 noundef %22767) #12
  %22769 = call ptr @__errno_location() #13
  %22770 = load i32, ptr %22769, align 4, !tbaa !5
  %22771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22758, ptr noundef @.str.4, i32 noundef %22759, ptr noundef @.str.124, ptr noundef @.str.3, i32 noundef 888, ptr noundef %22762, ptr noundef %22765, ptr noundef %22768, i32 noundef %22770) #12
  br label %22789

22772:                                            ; preds = %22750, %22743
  %22773 = load i32, ptr %495, align 4, !tbaa !5
  %22774 = call ptr @__errno_location() #13
  store i32 %22773, ptr %22774, align 4, !tbaa !5
  %22775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22776 = load i32, ptr @test_count, align 4, !tbaa !5
  %22777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22778 = load i32, ptr %22777, align 4, !tbaa !5
  %22779 = call ptr @s2n_strerror(i32 noundef %22778, ptr noundef @.str.6)
  %22780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22781 = load i32, ptr %22780, align 4, !tbaa !5
  %22782 = call ptr @s2n_strerror_debug(i32 noundef %22781, ptr noundef @.str.6)
  %22783 = call ptr @__errno_location() #13
  %22784 = load i32, ptr %22783, align 4, !tbaa !5
  %22785 = call ptr @strerror(i32 noundef %22784) #12
  %22786 = call ptr @__errno_location() #13
  %22787 = load i32, ptr %22786, align 4, !tbaa !5
  %22788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22775, ptr noundef @.str.7, i32 noundef %22776, ptr noundef @.str.124, ptr noundef @.str.3, i32 noundef 888, ptr noundef %22779, ptr noundef %22782, ptr noundef %22785, i32 noundef %22787) #12
  br label %22789

22789:                                            ; preds = %22772, %22755
  call void @llvm.lifetime.end.p0(i64 4, ptr %495) #12
  br label %22790

22790:                                            ; preds = %22789
  br label %22791

22791:                                            ; preds = %22790
  call void @exit(i32 noundef 1) #14
  unreachable

22792:                                            ; No predecessors!
  br label %22793

22793:                                            ; preds = %22792
  br label %22794

22794:                                            ; preds = %22793, %22736
  br label %22795

22795:                                            ; preds = %22794
  br label %22796

22796:                                            ; preds = %22795
  %22797 = load ptr, ptr %491, align 8, !tbaa !9
  %22798 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %22797, i32 0, i32 1
  %22799 = load ptr, ptr %22798, align 8, !tbaa !24
  %22800 = load i32, ptr %485, align 4, !tbaa !5
  %22801 = sext i32 %22800 to i64
  %22802 = getelementptr inbounds ptr, ptr %22799, i64 %22801
  %22803 = load ptr, ptr %22802, align 8, !tbaa !9
  %22804 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %484, i32 0, i32 0
  store ptr %22803, ptr %22804, align 8, !tbaa !22
  %22805 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %484, i32 0, i32 1
  store ptr null, ptr %22805, align 8, !tbaa !26
  br label %22806

22806:                                            ; preds = %22796
  %22807 = load i32, ptr @test_count, align 4, !tbaa !5
  %22808 = add nsw i32 %22807, 1
  store i32 %22808, ptr @test_count, align 4, !tbaa !5
  %22809 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %484, ptr noundef %482)
  %22810 = icmp eq i32 %22809, -1
  br i1 %22810, label %22811, label %22864

22811:                                            ; preds = %22806
  br label %22812

22812:                                            ; preds = %22811
  br label %22813

22813:                                            ; preds = %22812
  call void @llvm.lifetime.start.p0(i64 4, ptr %496) #12
  %22814 = call ptr @__errno_location() #13
  %22815 = load i32, ptr %22814, align 4, !tbaa !5
  store i32 %22815, ptr %496, align 4, !tbaa !5
  %22816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22817 = call i32 @s2n_print_stacktrace(ptr noundef %22816)
  %22818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22819 = trunc i8 %22818 to i1
  br i1 %22819, label %22820, label %22842

22820:                                            ; preds = %22813
  %22821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22822 = call i32 @fileno(ptr noundef %22821) #12
  %22823 = call i32 @isatty(i32 noundef %22822) #12
  %22824 = icmp ne i32 %22823, 0
  br i1 %22824, label %22825, label %22842

22825:                                            ; preds = %22820
  %22826 = load i32, ptr %496, align 4, !tbaa !5
  %22827 = call ptr @__errno_location() #13
  store i32 %22826, ptr %22827, align 4, !tbaa !5
  %22828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22829 = load i32, ptr @test_count, align 4, !tbaa !5
  %22830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22831 = load i32, ptr %22830, align 4, !tbaa !5
  %22832 = call ptr @s2n_strerror(i32 noundef %22831, ptr noundef @.str.6)
  %22833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22834 = load i32, ptr %22833, align 4, !tbaa !5
  %22835 = call ptr @s2n_strerror_debug(i32 noundef %22834, ptr noundef @.str.6)
  %22836 = call ptr @__errno_location() #13
  %22837 = load i32, ptr %22836, align 4, !tbaa !5
  %22838 = call ptr @strerror(i32 noundef %22837) #12
  %22839 = call ptr @__errno_location() #13
  %22840 = load i32, ptr %22839, align 4, !tbaa !5
  %22841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22828, ptr noundef @.str.4, i32 noundef %22829, ptr noundef @.str.125, ptr noundef @.str.3, i32 noundef 893, ptr noundef %22832, ptr noundef %22835, ptr noundef %22838, i32 noundef %22840) #12
  br label %22859

22842:                                            ; preds = %22820, %22813
  %22843 = load i32, ptr %496, align 4, !tbaa !5
  %22844 = call ptr @__errno_location() #13
  store i32 %22843, ptr %22844, align 4, !tbaa !5
  %22845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22846 = load i32, ptr @test_count, align 4, !tbaa !5
  %22847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22848 = load i32, ptr %22847, align 4, !tbaa !5
  %22849 = call ptr @s2n_strerror(i32 noundef %22848, ptr noundef @.str.6)
  %22850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22851 = load i32, ptr %22850, align 4, !tbaa !5
  %22852 = call ptr @s2n_strerror_debug(i32 noundef %22851, ptr noundef @.str.6)
  %22853 = call ptr @__errno_location() #13
  %22854 = load i32, ptr %22853, align 4, !tbaa !5
  %22855 = call ptr @strerror(i32 noundef %22854) #12
  %22856 = call ptr @__errno_location() #13
  %22857 = load i32, ptr %22856, align 4, !tbaa !5
  %22858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22845, ptr noundef @.str.7, i32 noundef %22846, ptr noundef @.str.125, ptr noundef @.str.3, i32 noundef 893, ptr noundef %22849, ptr noundef %22852, ptr noundef %22855, i32 noundef %22857) #12
  br label %22859

22859:                                            ; preds = %22842, %22825
  call void @llvm.lifetime.end.p0(i64 4, ptr %496) #12
  br label %22860

22860:                                            ; preds = %22859
  br label %22861

22861:                                            ; preds = %22860
  call void @exit(i32 noundef 1) #14
  unreachable

22862:                                            ; No predecessors!
  br label %22863

22863:                                            ; preds = %22862
  br label %22864

22864:                                            ; preds = %22863, %22806
  br label %22865

22865:                                            ; preds = %22864
  br label %22866

22866:                                            ; preds = %22865
  br label %22867

22867:                                            ; preds = %22866
  %22868 = load i32, ptr @test_count, align 4, !tbaa !5
  %22869 = add nsw i32 %22868, 1
  store i32 %22869, ptr @test_count, align 4, !tbaa !5
  %22870 = call i32 @s2n_test_rewrite_length(ptr noundef %482)
  %22871 = icmp eq i32 %22870, -1
  br i1 %22871, label %22872, label %22925

22872:                                            ; preds = %22867
  br label %22873

22873:                                            ; preds = %22872
  br label %22874

22874:                                            ; preds = %22873
  call void @llvm.lifetime.start.p0(i64 4, ptr %497) #12
  %22875 = call ptr @__errno_location() #13
  %22876 = load i32, ptr %22875, align 4, !tbaa !5
  store i32 %22876, ptr %497, align 4, !tbaa !5
  %22877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22878 = call i32 @s2n_print_stacktrace(ptr noundef %22877)
  %22879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22880 = trunc i8 %22879 to i1
  br i1 %22880, label %22881, label %22903

22881:                                            ; preds = %22874
  %22882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22883 = call i32 @fileno(ptr noundef %22882) #12
  %22884 = call i32 @isatty(i32 noundef %22883) #12
  %22885 = icmp ne i32 %22884, 0
  br i1 %22885, label %22886, label %22903

22886:                                            ; preds = %22881
  %22887 = load i32, ptr %497, align 4, !tbaa !5
  %22888 = call ptr @__errno_location() #13
  store i32 %22887, ptr %22888, align 4, !tbaa !5
  %22889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22890 = load i32, ptr @test_count, align 4, !tbaa !5
  %22891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22892 = load i32, ptr %22891, align 4, !tbaa !5
  %22893 = call ptr @s2n_strerror(i32 noundef %22892, ptr noundef @.str.6)
  %22894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22895 = load i32, ptr %22894, align 4, !tbaa !5
  %22896 = call ptr @s2n_strerror_debug(i32 noundef %22895, ptr noundef @.str.6)
  %22897 = call ptr @__errno_location() #13
  %22898 = load i32, ptr %22897, align 4, !tbaa !5
  %22899 = call ptr @strerror(i32 noundef %22898) #12
  %22900 = call ptr @__errno_location() #13
  %22901 = load i32, ptr %22900, align 4, !tbaa !5
  %22902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22889, ptr noundef @.str.4, i32 noundef %22890, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 895, ptr noundef %22893, ptr noundef %22896, ptr noundef %22899, i32 noundef %22901) #12
  br label %22920

22903:                                            ; preds = %22881, %22874
  %22904 = load i32, ptr %497, align 4, !tbaa !5
  %22905 = call ptr @__errno_location() #13
  store i32 %22904, ptr %22905, align 4, !tbaa !5
  %22906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22907 = load i32, ptr @test_count, align 4, !tbaa !5
  %22908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22909 = load i32, ptr %22908, align 4, !tbaa !5
  %22910 = call ptr @s2n_strerror(i32 noundef %22909, ptr noundef @.str.6)
  %22911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22912 = load i32, ptr %22911, align 4, !tbaa !5
  %22913 = call ptr @s2n_strerror_debug(i32 noundef %22912, ptr noundef @.str.6)
  %22914 = call ptr @__errno_location() #13
  %22915 = load i32, ptr %22914, align 4, !tbaa !5
  %22916 = call ptr @strerror(i32 noundef %22915) #12
  %22917 = call ptr @__errno_location() #13
  %22918 = load i32, ptr %22917, align 4, !tbaa !5
  %22919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22906, ptr noundef @.str.7, i32 noundef %22907, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 895, ptr noundef %22910, ptr noundef %22913, ptr noundef %22916, i32 noundef %22918) #12
  br label %22920

22920:                                            ; preds = %22903, %22886
  call void @llvm.lifetime.end.p0(i64 4, ptr %497) #12
  br label %22921

22921:                                            ; preds = %22920
  br label %22922

22922:                                            ; preds = %22921
  call void @exit(i32 noundef 1) #14
  unreachable

22923:                                            ; No predecessors!
  br label %22924

22924:                                            ; preds = %22923
  br label %22925

22925:                                            ; preds = %22924, %22867
  br label %22926

22926:                                            ; preds = %22925
  br label %22927

22927:                                            ; preds = %22926
  br label %22928

22928:                                            ; preds = %22927
  %22929 = load i32, ptr @test_count, align 4, !tbaa !5
  %22930 = add nsw i32 %22929, 1
  store i32 %22930, ptr @test_count, align 4, !tbaa !5
  %22931 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %22932 = load ptr, ptr %481, align 8, !tbaa !9
  %22933 = call i32 %22931(ptr noundef %22932, ptr noundef %482)
  %22934 = icmp eq i32 %22933, -1
  br i1 %22934, label %22935, label %22988

22935:                                            ; preds = %22928
  br label %22936

22936:                                            ; preds = %22935
  br label %22937

22937:                                            ; preds = %22936
  call void @llvm.lifetime.start.p0(i64 4, ptr %498) #12
  %22938 = call ptr @__errno_location() #13
  %22939 = load i32, ptr %22938, align 4, !tbaa !5
  store i32 %22939, ptr %498, align 4, !tbaa !5
  %22940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22941 = call i32 @s2n_print_stacktrace(ptr noundef %22940)
  %22942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22943 = trunc i8 %22942 to i1
  br i1 %22943, label %22944, label %22966

22944:                                            ; preds = %22937
  %22945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22946 = call i32 @fileno(ptr noundef %22945) #12
  %22947 = call i32 @isatty(i32 noundef %22946) #12
  %22948 = icmp ne i32 %22947, 0
  br i1 %22948, label %22949, label %22966

22949:                                            ; preds = %22944
  %22950 = load i32, ptr %498, align 4, !tbaa !5
  %22951 = call ptr @__errno_location() #13
  store i32 %22950, ptr %22951, align 4, !tbaa !5
  %22952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22953 = load i32, ptr @test_count, align 4, !tbaa !5
  %22954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22955 = load i32, ptr %22954, align 4, !tbaa !5
  %22956 = call ptr @s2n_strerror(i32 noundef %22955, ptr noundef @.str.6)
  %22957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22958 = load i32, ptr %22957, align 4, !tbaa !5
  %22959 = call ptr @s2n_strerror_debug(i32 noundef %22958, ptr noundef @.str.6)
  %22960 = call ptr @__errno_location() #13
  %22961 = load i32, ptr %22960, align 4, !tbaa !5
  %22962 = call ptr @strerror(i32 noundef %22961) #12
  %22963 = call ptr @__errno_location() #13
  %22964 = load i32, ptr %22963, align 4, !tbaa !5
  %22965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22952, ptr noundef @.str.4, i32 noundef %22953, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 897, ptr noundef %22956, ptr noundef %22959, ptr noundef %22962, i32 noundef %22964) #12
  br label %22983

22966:                                            ; preds = %22944, %22937
  %22967 = load i32, ptr %498, align 4, !tbaa !5
  %22968 = call ptr @__errno_location() #13
  store i32 %22967, ptr %22968, align 4, !tbaa !5
  %22969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %22970 = load i32, ptr @test_count, align 4, !tbaa !5
  %22971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22972 = load i32, ptr %22971, align 4, !tbaa !5
  %22973 = call ptr @s2n_strerror(i32 noundef %22972, ptr noundef @.str.6)
  %22974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %22975 = load i32, ptr %22974, align 4, !tbaa !5
  %22976 = call ptr @s2n_strerror_debug(i32 noundef %22975, ptr noundef @.str.6)
  %22977 = call ptr @__errno_location() #13
  %22978 = load i32, ptr %22977, align 4, !tbaa !5
  %22979 = call ptr @strerror(i32 noundef %22978) #12
  %22980 = call ptr @__errno_location() #13
  %22981 = load i32, ptr %22980, align 4, !tbaa !5
  %22982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22969, ptr noundef @.str.7, i32 noundef %22970, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 897, ptr noundef %22973, ptr noundef %22976, ptr noundef %22979, i32 noundef %22981) #12
  br label %22983

22983:                                            ; preds = %22966, %22949
  call void @llvm.lifetime.end.p0(i64 4, ptr %498) #12
  br label %22984

22984:                                            ; preds = %22983
  br label %22985

22985:                                            ; preds = %22984
  call void @exit(i32 noundef 1) #14
  unreachable

22986:                                            ; No predecessors!
  br label %22987

22987:                                            ; preds = %22986
  br label %22988

22988:                                            ; preds = %22987, %22928
  br label %22989

22989:                                            ; preds = %22988
  br label %22990

22990:                                            ; preds = %22989
  br label %22991

22991:                                            ; preds = %22990
  %22992 = load i32, ptr @test_count, align 4, !tbaa !5
  %22993 = add nsw i32 %22992, 1
  store i32 %22993, ptr @test_count, align 4, !tbaa !5
  %22994 = getelementptr inbounds %struct.s2n_stuffer, ptr %482, i32 0, i32 2
  %22995 = load i32, ptr %22994, align 4, !tbaa !18
  %22996 = getelementptr inbounds %struct.s2n_stuffer, ptr %482, i32 0, i32 1
  %22997 = load i32, ptr %22996, align 8, !tbaa !21
  %22998 = sub i32 %22995, %22997
  %22999 = icmp eq i32 %22998, 0
  br i1 %22999, label %23053, label %23000

23000:                                            ; preds = %22991
  br label %23001

23001:                                            ; preds = %23000
  br label %23002

23002:                                            ; preds = %23001
  call void @llvm.lifetime.start.p0(i64 4, ptr %499) #12
  %23003 = call ptr @__errno_location() #13
  %23004 = load i32, ptr %23003, align 4, !tbaa !5
  store i32 %23004, ptr %499, align 4, !tbaa !5
  %23005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23006 = call i32 @s2n_print_stacktrace(ptr noundef %23005)
  %23007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23008 = trunc i8 %23007 to i1
  br i1 %23008, label %23009, label %23031

23009:                                            ; preds = %23002
  %23010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23011 = call i32 @fileno(ptr noundef %23010) #12
  %23012 = call i32 @isatty(i32 noundef %23011) #12
  %23013 = icmp ne i32 %23012, 0
  br i1 %23013, label %23014, label %23031

23014:                                            ; preds = %23009
  %23015 = load i32, ptr %499, align 4, !tbaa !5
  %23016 = call ptr @__errno_location() #13
  store i32 %23015, ptr %23016, align 4, !tbaa !5
  %23017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23018 = load i32, ptr @test_count, align 4, !tbaa !5
  %23019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23020 = load i32, ptr %23019, align 4, !tbaa !5
  %23021 = call ptr @s2n_strerror(i32 noundef %23020, ptr noundef @.str.6)
  %23022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23023 = load i32, ptr %23022, align 4, !tbaa !5
  %23024 = call ptr @s2n_strerror_debug(i32 noundef %23023, ptr noundef @.str.6)
  %23025 = call ptr @__errno_location() #13
  %23026 = load i32, ptr %23025, align 4, !tbaa !5
  %23027 = call ptr @strerror(i32 noundef %23026) #12
  %23028 = call ptr @__errno_location() #13
  %23029 = load i32, ptr %23028, align 4, !tbaa !5
  %23030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23017, ptr noundef @.str.4, i32 noundef %23018, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 900, ptr noundef %23021, ptr noundef %23024, ptr noundef %23027, i32 noundef %23029) #12
  br label %23048

23031:                                            ; preds = %23009, %23002
  %23032 = load i32, ptr %499, align 4, !tbaa !5
  %23033 = call ptr @__errno_location() #13
  store i32 %23032, ptr %23033, align 4, !tbaa !5
  %23034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23035 = load i32, ptr @test_count, align 4, !tbaa !5
  %23036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23037 = load i32, ptr %23036, align 4, !tbaa !5
  %23038 = call ptr @s2n_strerror(i32 noundef %23037, ptr noundef @.str.6)
  %23039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23040 = load i32, ptr %23039, align 4, !tbaa !5
  %23041 = call ptr @s2n_strerror_debug(i32 noundef %23040, ptr noundef @.str.6)
  %23042 = call ptr @__errno_location() #13
  %23043 = load i32, ptr %23042, align 4, !tbaa !5
  %23044 = call ptr @strerror(i32 noundef %23043) #12
  %23045 = call ptr @__errno_location() #13
  %23046 = load i32, ptr %23045, align 4, !tbaa !5
  %23047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23034, ptr noundef @.str.7, i32 noundef %23035, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 900, ptr noundef %23038, ptr noundef %23041, ptr noundef %23044, i32 noundef %23046) #12
  br label %23048

23048:                                            ; preds = %23031, %23014
  call void @llvm.lifetime.end.p0(i64 4, ptr %499) #12
  br label %23049

23049:                                            ; preds = %23048
  br label %23050

23050:                                            ; preds = %23049
  call void @exit(i32 noundef 1) #14
  unreachable

23051:                                            ; No predecessors!
  br label %23052

23052:                                            ; preds = %23051
  br label %23053

23053:                                            ; preds = %23052, %22991
  br label %23054

23054:                                            ; preds = %23053
  br label %23055

23055:                                            ; preds = %23054
  br label %23056

23056:                                            ; preds = %23055
  %23057 = load i32, ptr @test_count, align 4, !tbaa !5
  %23058 = add nsw i32 %23057, 1
  store i32 %23058, ptr @test_count, align 4, !tbaa !5
  %23059 = load ptr, ptr %481, align 8, !tbaa !9
  %23060 = getelementptr inbounds %struct.s2n_connection, ptr %23059, i32 0, i32 31
  %23061 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %23060, i32 0, i32 3
  %23062 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %23061, ptr noundef %483)
  %23063 = icmp ne i32 %23062, 0
  br i1 %23063, label %23117, label %23064

23064:                                            ; preds = %23056
  br label %23065

23065:                                            ; preds = %23064
  br label %23066

23066:                                            ; preds = %23065
  call void @llvm.lifetime.start.p0(i64 4, ptr %500) #12
  %23067 = call ptr @__errno_location() #13
  %23068 = load i32, ptr %23067, align 4, !tbaa !5
  store i32 %23068, ptr %500, align 4, !tbaa !5
  %23069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23070 = call i32 @s2n_print_stacktrace(ptr noundef %23069)
  %23071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23072 = trunc i8 %23071 to i1
  br i1 %23072, label %23073, label %23095

23073:                                            ; preds = %23066
  %23074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23075 = call i32 @fileno(ptr noundef %23074) #12
  %23076 = call i32 @isatty(i32 noundef %23075) #12
  %23077 = icmp ne i32 %23076, 0
  br i1 %23077, label %23078, label %23095

23078:                                            ; preds = %23073
  %23079 = load i32, ptr %500, align 4, !tbaa !5
  %23080 = call ptr @__errno_location() #13
  store i32 %23079, ptr %23080, align 4, !tbaa !5
  %23081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23082 = load i32, ptr @test_count, align 4, !tbaa !5
  %23083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23084 = load i32, ptr %23083, align 4, !tbaa !5
  %23085 = call ptr @s2n_strerror(i32 noundef %23084, ptr noundef @.str.6)
  %23086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23087 = load i32, ptr %23086, align 4, !tbaa !5
  %23088 = call ptr @s2n_strerror_debug(i32 noundef %23087, ptr noundef @.str.6)
  %23089 = call ptr @__errno_location() #13
  %23090 = load i32, ptr %23089, align 4, !tbaa !5
  %23091 = call ptr @strerror(i32 noundef %23090) #12
  %23092 = call ptr @__errno_location() #13
  %23093 = load i32, ptr %23092, align 4, !tbaa !5
  %23094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23081, ptr noundef @.str.4, i32 noundef %23082, ptr noundef @.str.126, ptr noundef @.str.3, i32 noundef 904, ptr noundef %23085, ptr noundef %23088, ptr noundef %23091, i32 noundef %23093) #12
  br label %23112

23095:                                            ; preds = %23073, %23066
  %23096 = load i32, ptr %500, align 4, !tbaa !5
  %23097 = call ptr @__errno_location() #13
  store i32 %23096, ptr %23097, align 4, !tbaa !5
  %23098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23099 = load i32, ptr @test_count, align 4, !tbaa !5
  %23100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23101 = load i32, ptr %23100, align 4, !tbaa !5
  %23102 = call ptr @s2n_strerror(i32 noundef %23101, ptr noundef @.str.6)
  %23103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23104 = load i32, ptr %23103, align 4, !tbaa !5
  %23105 = call ptr @s2n_strerror_debug(i32 noundef %23104, ptr noundef @.str.6)
  %23106 = call ptr @__errno_location() #13
  %23107 = load i32, ptr %23106, align 4, !tbaa !5
  %23108 = call ptr @strerror(i32 noundef %23107) #12
  %23109 = call ptr @__errno_location() #13
  %23110 = load i32, ptr %23109, align 4, !tbaa !5
  %23111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23098, ptr noundef @.str.7, i32 noundef %23099, ptr noundef @.str.126, ptr noundef @.str.3, i32 noundef 904, ptr noundef %23102, ptr noundef %23105, ptr noundef %23108, i32 noundef %23110) #12
  br label %23112

23112:                                            ; preds = %23095, %23078
  call void @llvm.lifetime.end.p0(i64 4, ptr %500) #12
  br label %23113

23113:                                            ; preds = %23112
  br label %23114

23114:                                            ; preds = %23113
  call void @exit(i32 noundef 1) #14
  unreachable

23115:                                            ; No predecessors!
  br label %23116

23116:                                            ; preds = %23115
  br label %23117

23117:                                            ; preds = %23116, %23056
  br label %23118

23118:                                            ; preds = %23117
  br label %23119

23119:                                            ; preds = %23118
  br label %23120

23120:                                            ; preds = %23119
  %23121 = load i32, ptr @test_count, align 4, !tbaa !5
  %23122 = add nsw i32 %23121, 1
  store i32 %23122, ptr @test_count, align 4, !tbaa !5
  %23123 = call i32 @s2n_stuffer_free(ptr noundef %482)
  %23124 = icmp eq i32 %23123, -1
  br i1 %23124, label %23125, label %23178

23125:                                            ; preds = %23120
  br label %23126

23126:                                            ; preds = %23125
  br label %23127

23127:                                            ; preds = %23126
  call void @llvm.lifetime.start.p0(i64 4, ptr %501) #12
  %23128 = call ptr @__errno_location() #13
  %23129 = load i32, ptr %23128, align 4, !tbaa !5
  store i32 %23129, ptr %501, align 4, !tbaa !5
  %23130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23131 = call i32 @s2n_print_stacktrace(ptr noundef %23130)
  %23132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23133 = trunc i8 %23132 to i1
  br i1 %23133, label %23134, label %23156

23134:                                            ; preds = %23127
  %23135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23136 = call i32 @fileno(ptr noundef %23135) #12
  %23137 = call i32 @isatty(i32 noundef %23136) #12
  %23138 = icmp ne i32 %23137, 0
  br i1 %23138, label %23139, label %23156

23139:                                            ; preds = %23134
  %23140 = load i32, ptr %501, align 4, !tbaa !5
  %23141 = call ptr @__errno_location() #13
  store i32 %23140, ptr %23141, align 4, !tbaa !5
  %23142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23143 = load i32, ptr @test_count, align 4, !tbaa !5
  %23144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23145 = load i32, ptr %23144, align 4, !tbaa !5
  %23146 = call ptr @s2n_strerror(i32 noundef %23145, ptr noundef @.str.6)
  %23147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23148 = load i32, ptr %23147, align 4, !tbaa !5
  %23149 = call ptr @s2n_strerror_debug(i32 noundef %23148, ptr noundef @.str.6)
  %23150 = call ptr @__errno_location() #13
  %23151 = load i32, ptr %23150, align 4, !tbaa !5
  %23152 = call ptr @strerror(i32 noundef %23151) #12
  %23153 = call ptr @__errno_location() #13
  %23154 = load i32, ptr %23153, align 4, !tbaa !5
  %23155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23142, ptr noundef @.str.4, i32 noundef %23143, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 906, ptr noundef %23146, ptr noundef %23149, ptr noundef %23152, i32 noundef %23154) #12
  br label %23173

23156:                                            ; preds = %23134, %23127
  %23157 = load i32, ptr %501, align 4, !tbaa !5
  %23158 = call ptr @__errno_location() #13
  store i32 %23157, ptr %23158, align 4, !tbaa !5
  %23159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23160 = load i32, ptr @test_count, align 4, !tbaa !5
  %23161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23162 = load i32, ptr %23161, align 4, !tbaa !5
  %23163 = call ptr @s2n_strerror(i32 noundef %23162, ptr noundef @.str.6)
  %23164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23165 = load i32, ptr %23164, align 4, !tbaa !5
  %23166 = call ptr @s2n_strerror_debug(i32 noundef %23165, ptr noundef @.str.6)
  %23167 = call ptr @__errno_location() #13
  %23168 = load i32, ptr %23167, align 4, !tbaa !5
  %23169 = call ptr @strerror(i32 noundef %23168) #12
  %23170 = call ptr @__errno_location() #13
  %23171 = load i32, ptr %23170, align 4, !tbaa !5
  %23172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23159, ptr noundef @.str.7, i32 noundef %23160, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 906, ptr noundef %23163, ptr noundef %23166, ptr noundef %23169, i32 noundef %23171) #12
  br label %23173

23173:                                            ; preds = %23156, %23139
  call void @llvm.lifetime.end.p0(i64 4, ptr %501) #12
  br label %23174

23174:                                            ; preds = %23173
  br label %23175

23175:                                            ; preds = %23174
  call void @exit(i32 noundef 1) #14
  unreachable

23176:                                            ; No predecessors!
  br label %23177

23177:                                            ; preds = %23176
  br label %23178

23178:                                            ; preds = %23177, %23120
  br label %23179

23179:                                            ; preds = %23178
  br label %23180

23180:                                            ; preds = %23179
  br label %23181

23181:                                            ; preds = %23180
  %23182 = load i32, ptr @test_count, align 4, !tbaa !5
  %23183 = add nsw i32 %23182, 1
  store i32 %23183, ptr @test_count, align 4, !tbaa !5
  %23184 = load ptr, ptr %481, align 8, !tbaa !9
  %23185 = call i32 @s2n_connection_free(ptr noundef %23184)
  %23186 = icmp eq i32 %23185, -1
  br i1 %23186, label %23187, label %23240

23187:                                            ; preds = %23181
  br label %23188

23188:                                            ; preds = %23187
  br label %23189

23189:                                            ; preds = %23188
  call void @llvm.lifetime.start.p0(i64 4, ptr %502) #12
  %23190 = call ptr @__errno_location() #13
  %23191 = load i32, ptr %23190, align 4, !tbaa !5
  store i32 %23191, ptr %502, align 4, !tbaa !5
  %23192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23193 = call i32 @s2n_print_stacktrace(ptr noundef %23192)
  %23194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23195 = trunc i8 %23194 to i1
  br i1 %23195, label %23196, label %23218

23196:                                            ; preds = %23189
  %23197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23198 = call i32 @fileno(ptr noundef %23197) #12
  %23199 = call i32 @isatty(i32 noundef %23198) #12
  %23200 = icmp ne i32 %23199, 0
  br i1 %23200, label %23201, label %23218

23201:                                            ; preds = %23196
  %23202 = load i32, ptr %502, align 4, !tbaa !5
  %23203 = call ptr @__errno_location() #13
  store i32 %23202, ptr %23203, align 4, !tbaa !5
  %23204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23205 = load i32, ptr @test_count, align 4, !tbaa !5
  %23206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23207 = load i32, ptr %23206, align 4, !tbaa !5
  %23208 = call ptr @s2n_strerror(i32 noundef %23207, ptr noundef @.str.6)
  %23209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23210 = load i32, ptr %23209, align 4, !tbaa !5
  %23211 = call ptr @s2n_strerror_debug(i32 noundef %23210, ptr noundef @.str.6)
  %23212 = call ptr @__errno_location() #13
  %23213 = load i32, ptr %23212, align 4, !tbaa !5
  %23214 = call ptr @strerror(i32 noundef %23213) #12
  %23215 = call ptr @__errno_location() #13
  %23216 = load i32, ptr %23215, align 4, !tbaa !5
  %23217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23204, ptr noundef @.str.4, i32 noundef %23205, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 907, ptr noundef %23208, ptr noundef %23211, ptr noundef %23214, i32 noundef %23216) #12
  br label %23235

23218:                                            ; preds = %23196, %23189
  %23219 = load i32, ptr %502, align 4, !tbaa !5
  %23220 = call ptr @__errno_location() #13
  store i32 %23219, ptr %23220, align 4, !tbaa !5
  %23221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23222 = load i32, ptr @test_count, align 4, !tbaa !5
  %23223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23224 = load i32, ptr %23223, align 4, !tbaa !5
  %23225 = call ptr @s2n_strerror(i32 noundef %23224, ptr noundef @.str.6)
  %23226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23227 = load i32, ptr %23226, align 4, !tbaa !5
  %23228 = call ptr @s2n_strerror_debug(i32 noundef %23227, ptr noundef @.str.6)
  %23229 = call ptr @__errno_location() #13
  %23230 = load i32, ptr %23229, align 4, !tbaa !5
  %23231 = call ptr @strerror(i32 noundef %23230) #12
  %23232 = call ptr @__errno_location() #13
  %23233 = load i32, ptr %23232, align 4, !tbaa !5
  %23234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23221, ptr noundef @.str.7, i32 noundef %23222, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 907, ptr noundef %23225, ptr noundef %23228, ptr noundef %23231, i32 noundef %23233) #12
  br label %23235

23235:                                            ; preds = %23218, %23201
  call void @llvm.lifetime.end.p0(i64 4, ptr %502) #12
  br label %23236

23236:                                            ; preds = %23235
  br label %23237

23237:                                            ; preds = %23236
  call void @exit(i32 noundef 1) #14
  unreachable

23238:                                            ; No predecessors!
  br label %23239

23239:                                            ; preds = %23238
  br label %23240

23240:                                            ; preds = %23239, %23181
  br label %23241

23241:                                            ; preds = %23240
  br label %23242

23242:                                            ; preds = %23241
  br label %23243

23243:                                            ; preds = %23242
  %23244 = load i32, ptr @test_count, align 4, !tbaa !5
  %23245 = add nsw i32 %23244, 1
  store i32 %23245, ptr @test_count, align 4, !tbaa !5
  %23246 = call i32 @s2n_ecc_evp_params_free(ptr noundef %483)
  %23247 = icmp eq i32 %23246, -1
  br i1 %23247, label %23248, label %23301

23248:                                            ; preds = %23243
  br label %23249

23249:                                            ; preds = %23248
  br label %23250

23250:                                            ; preds = %23249
  call void @llvm.lifetime.start.p0(i64 4, ptr %503) #12
  %23251 = call ptr @__errno_location() #13
  %23252 = load i32, ptr %23251, align 4, !tbaa !5
  store i32 %23252, ptr %503, align 4, !tbaa !5
  %23253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23254 = call i32 @s2n_print_stacktrace(ptr noundef %23253)
  %23255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23256 = trunc i8 %23255 to i1
  br i1 %23256, label %23257, label %23279

23257:                                            ; preds = %23250
  %23258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23259 = call i32 @fileno(ptr noundef %23258) #12
  %23260 = call i32 @isatty(i32 noundef %23259) #12
  %23261 = icmp ne i32 %23260, 0
  br i1 %23261, label %23262, label %23279

23262:                                            ; preds = %23257
  %23263 = load i32, ptr %503, align 4, !tbaa !5
  %23264 = call ptr @__errno_location() #13
  store i32 %23263, ptr %23264, align 4, !tbaa !5
  %23265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23266 = load i32, ptr @test_count, align 4, !tbaa !5
  %23267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23268 = load i32, ptr %23267, align 4, !tbaa !5
  %23269 = call ptr @s2n_strerror(i32 noundef %23268, ptr noundef @.str.6)
  %23270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23271 = load i32, ptr %23270, align 4, !tbaa !5
  %23272 = call ptr @s2n_strerror_debug(i32 noundef %23271, ptr noundef @.str.6)
  %23273 = call ptr @__errno_location() #13
  %23274 = load i32, ptr %23273, align 4, !tbaa !5
  %23275 = call ptr @strerror(i32 noundef %23274) #12
  %23276 = call ptr @__errno_location() #13
  %23277 = load i32, ptr %23276, align 4, !tbaa !5
  %23278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23265, ptr noundef @.str.4, i32 noundef %23266, ptr noundef @.str.127, ptr noundef @.str.3, i32 noundef 908, ptr noundef %23269, ptr noundef %23272, ptr noundef %23275, i32 noundef %23277) #12
  br label %23296

23279:                                            ; preds = %23257, %23250
  %23280 = load i32, ptr %503, align 4, !tbaa !5
  %23281 = call ptr @__errno_location() #13
  store i32 %23280, ptr %23281, align 4, !tbaa !5
  %23282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23283 = load i32, ptr @test_count, align 4, !tbaa !5
  %23284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23285 = load i32, ptr %23284, align 4, !tbaa !5
  %23286 = call ptr @s2n_strerror(i32 noundef %23285, ptr noundef @.str.6)
  %23287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23288 = load i32, ptr %23287, align 4, !tbaa !5
  %23289 = call ptr @s2n_strerror_debug(i32 noundef %23288, ptr noundef @.str.6)
  %23290 = call ptr @__errno_location() #13
  %23291 = load i32, ptr %23290, align 4, !tbaa !5
  %23292 = call ptr @strerror(i32 noundef %23291) #12
  %23293 = call ptr @__errno_location() #13
  %23294 = load i32, ptr %23293, align 4, !tbaa !5
  %23295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23282, ptr noundef @.str.7, i32 noundef %23283, ptr noundef @.str.127, ptr noundef @.str.3, i32 noundef 908, ptr noundef %23286, ptr noundef %23289, ptr noundef %23292, i32 noundef %23294) #12
  br label %23296

23296:                                            ; preds = %23279, %23262
  call void @llvm.lifetime.end.p0(i64 4, ptr %503) #12
  br label %23297

23297:                                            ; preds = %23296
  br label %23298

23298:                                            ; preds = %23297
  call void @exit(i32 noundef 1) #14
  unreachable

23299:                                            ; No predecessors!
  br label %23300

23300:                                            ; preds = %23299
  br label %23301

23301:                                            ; preds = %23300, %23243
  br label %23302

23302:                                            ; preds = %23301
  br label %23303

23303:                                            ; preds = %23302
  br label %23304

23304:                                            ; preds = %23303
  %23305 = load i32, ptr @test_count, align 4, !tbaa !5
  %23306 = add nsw i32 %23305, 1
  store i32 %23306, ptr @test_count, align 4, !tbaa !5
  %23307 = call i32 @s2n_ecc_evp_params_free(ptr noundef %484)
  %23308 = icmp eq i32 %23307, -1
  br i1 %23308, label %23309, label %23362

23309:                                            ; preds = %23304
  br label %23310

23310:                                            ; preds = %23309
  br label %23311

23311:                                            ; preds = %23310
  call void @llvm.lifetime.start.p0(i64 4, ptr %504) #12
  %23312 = call ptr @__errno_location() #13
  %23313 = load i32, ptr %23312, align 4, !tbaa !5
  store i32 %23313, ptr %504, align 4, !tbaa !5
  %23314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23315 = call i32 @s2n_print_stacktrace(ptr noundef %23314)
  %23316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23317 = trunc i8 %23316 to i1
  br i1 %23317, label %23318, label %23340

23318:                                            ; preds = %23311
  %23319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23320 = call i32 @fileno(ptr noundef %23319) #12
  %23321 = call i32 @isatty(i32 noundef %23320) #12
  %23322 = icmp ne i32 %23321, 0
  br i1 %23322, label %23323, label %23340

23323:                                            ; preds = %23318
  %23324 = load i32, ptr %504, align 4, !tbaa !5
  %23325 = call ptr @__errno_location() #13
  store i32 %23324, ptr %23325, align 4, !tbaa !5
  %23326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23327 = load i32, ptr @test_count, align 4, !tbaa !5
  %23328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23329 = load i32, ptr %23328, align 4, !tbaa !5
  %23330 = call ptr @s2n_strerror(i32 noundef %23329, ptr noundef @.str.6)
  %23331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23332 = load i32, ptr %23331, align 4, !tbaa !5
  %23333 = call ptr @s2n_strerror_debug(i32 noundef %23332, ptr noundef @.str.6)
  %23334 = call ptr @__errno_location() #13
  %23335 = load i32, ptr %23334, align 4, !tbaa !5
  %23336 = call ptr @strerror(i32 noundef %23335) #12
  %23337 = call ptr @__errno_location() #13
  %23338 = load i32, ptr %23337, align 4, !tbaa !5
  %23339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23326, ptr noundef @.str.4, i32 noundef %23327, ptr noundef @.str.128, ptr noundef @.str.3, i32 noundef 909, ptr noundef %23330, ptr noundef %23333, ptr noundef %23336, i32 noundef %23338) #12
  br label %23357

23340:                                            ; preds = %23318, %23311
  %23341 = load i32, ptr %504, align 4, !tbaa !5
  %23342 = call ptr @__errno_location() #13
  store i32 %23341, ptr %23342, align 4, !tbaa !5
  %23343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23344 = load i32, ptr @test_count, align 4, !tbaa !5
  %23345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23346 = load i32, ptr %23345, align 4, !tbaa !5
  %23347 = call ptr @s2n_strerror(i32 noundef %23346, ptr noundef @.str.6)
  %23348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23349 = load i32, ptr %23348, align 4, !tbaa !5
  %23350 = call ptr @s2n_strerror_debug(i32 noundef %23349, ptr noundef @.str.6)
  %23351 = call ptr @__errno_location() #13
  %23352 = load i32, ptr %23351, align 4, !tbaa !5
  %23353 = call ptr @strerror(i32 noundef %23352) #12
  %23354 = call ptr @__errno_location() #13
  %23355 = load i32, ptr %23354, align 4, !tbaa !5
  %23356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23343, ptr noundef @.str.7, i32 noundef %23344, ptr noundef @.str.128, ptr noundef @.str.3, i32 noundef 909, ptr noundef %23347, ptr noundef %23350, ptr noundef %23353, i32 noundef %23355) #12
  br label %23357

23357:                                            ; preds = %23340, %23323
  call void @llvm.lifetime.end.p0(i64 4, ptr %504) #12
  br label %23358

23358:                                            ; preds = %23357
  br label %23359

23359:                                            ; preds = %23358
  call void @exit(i32 noundef 1) #14
  unreachable

23360:                                            ; No predecessors!
  br label %23361

23361:                                            ; preds = %23360
  br label %23362

23362:                                            ; preds = %23361, %23304
  br label %23363

23363:                                            ; preds = %23362
  br label %23364

23364:                                            ; preds = %23363
  call void @llvm.lifetime.end.p0(i64 8, ptr %491) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %485) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %484) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %483) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %482) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %481) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %505) #12
  store ptr null, ptr %505, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %506) #12
  call void @llvm.memset.p0.i64(ptr align 8 %506, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %507) #12
  store ptr null, ptr %507, align 8, !tbaa !9
  br label %23365

23365:                                            ; preds = %23364
  %23366 = load i32, ptr @test_count, align 4, !tbaa !5
  %23367 = add nsw i32 %23366, 1
  store i32 %23367, ptr @test_count, align 4, !tbaa !5
  %23368 = call ptr @s2n_config_new()
  store ptr %23368, ptr %507, align 8, !tbaa !9
  %23369 = icmp eq ptr %23368, null
  br i1 %23369, label %23370, label %23423

23370:                                            ; preds = %23365
  br label %23371

23371:                                            ; preds = %23370
  br label %23372

23372:                                            ; preds = %23371
  call void @llvm.lifetime.start.p0(i64 4, ptr %508) #12
  %23373 = call ptr @__errno_location() #13
  %23374 = load i32, ptr %23373, align 4, !tbaa !5
  store i32 %23374, ptr %508, align 4, !tbaa !5
  %23375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23376 = call i32 @s2n_print_stacktrace(ptr noundef %23375)
  %23377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23378 = trunc i8 %23377 to i1
  br i1 %23378, label %23379, label %23401

23379:                                            ; preds = %23372
  %23380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23381 = call i32 @fileno(ptr noundef %23380) #12
  %23382 = call i32 @isatty(i32 noundef %23381) #12
  %23383 = icmp ne i32 %23382, 0
  br i1 %23383, label %23384, label %23401

23384:                                            ; preds = %23379
  %23385 = load i32, ptr %508, align 4, !tbaa !5
  %23386 = call ptr @__errno_location() #13
  store i32 %23385, ptr %23386, align 4, !tbaa !5
  %23387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23388 = load i32, ptr @test_count, align 4, !tbaa !5
  %23389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23390 = load i32, ptr %23389, align 4, !tbaa !5
  %23391 = call ptr @s2n_strerror(i32 noundef %23390, ptr noundef @.str.6)
  %23392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23393 = load i32, ptr %23392, align 4, !tbaa !5
  %23394 = call ptr @s2n_strerror_debug(i32 noundef %23393, ptr noundef @.str.6)
  %23395 = call ptr @__errno_location() #13
  %23396 = load i32, ptr %23395, align 4, !tbaa !5
  %23397 = call ptr @strerror(i32 noundef %23396) #12
  %23398 = call ptr @__errno_location() #13
  %23399 = load i32, ptr %23398, align 4, !tbaa !5
  %23400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23387, ptr noundef @.str.4, i32 noundef %23388, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 917, ptr noundef %23391, ptr noundef %23394, ptr noundef %23397, i32 noundef %23399) #12
  br label %23418

23401:                                            ; preds = %23379, %23372
  %23402 = load i32, ptr %508, align 4, !tbaa !5
  %23403 = call ptr @__errno_location() #13
  store i32 %23402, ptr %23403, align 4, !tbaa !5
  %23404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23405 = load i32, ptr @test_count, align 4, !tbaa !5
  %23406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23407 = load i32, ptr %23406, align 4, !tbaa !5
  %23408 = call ptr @s2n_strerror(i32 noundef %23407, ptr noundef @.str.6)
  %23409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23410 = load i32, ptr %23409, align 4, !tbaa !5
  %23411 = call ptr @s2n_strerror_debug(i32 noundef %23410, ptr noundef @.str.6)
  %23412 = call ptr @__errno_location() #13
  %23413 = load i32, ptr %23412, align 4, !tbaa !5
  %23414 = call ptr @strerror(i32 noundef %23413) #12
  %23415 = call ptr @__errno_location() #13
  %23416 = load i32, ptr %23415, align 4, !tbaa !5
  %23417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23404, ptr noundef @.str.7, i32 noundef %23405, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 917, ptr noundef %23408, ptr noundef %23411, ptr noundef %23414, i32 noundef %23416) #12
  br label %23418

23418:                                            ; preds = %23401, %23384
  call void @llvm.lifetime.end.p0(i64 4, ptr %508) #12
  br label %23419

23419:                                            ; preds = %23418
  br label %23420

23420:                                            ; preds = %23419
  call void @exit(i32 noundef 1) #14
  unreachable

23421:                                            ; No predecessors!
  br label %23422

23422:                                            ; preds = %23421
  br label %23423

23423:                                            ; preds = %23422, %23365
  br label %23424

23424:                                            ; preds = %23423
  br label %23425

23425:                                            ; preds = %23424
  br label %23426

23426:                                            ; preds = %23425
  %23427 = load i32, ptr @test_count, align 4, !tbaa !5
  %23428 = add nsw i32 %23427, 1
  store i32 %23428, ptr @test_count, align 4, !tbaa !5
  %23429 = load ptr, ptr %507, align 8, !tbaa !9
  %23430 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %23429, ptr noundef @.str.34)
  %23431 = icmp eq i32 %23430, -1
  br i1 %23431, label %23432, label %23485

23432:                                            ; preds = %23426
  br label %23433

23433:                                            ; preds = %23432
  br label %23434

23434:                                            ; preds = %23433
  call void @llvm.lifetime.start.p0(i64 4, ptr %509) #12
  %23435 = call ptr @__errno_location() #13
  %23436 = load i32, ptr %23435, align 4, !tbaa !5
  store i32 %23436, ptr %509, align 4, !tbaa !5
  %23437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23438 = call i32 @s2n_print_stacktrace(ptr noundef %23437)
  %23439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23440 = trunc i8 %23439 to i1
  br i1 %23440, label %23441, label %23463

23441:                                            ; preds = %23434
  %23442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23443 = call i32 @fileno(ptr noundef %23442) #12
  %23444 = call i32 @isatty(i32 noundef %23443) #12
  %23445 = icmp ne i32 %23444, 0
  br i1 %23445, label %23446, label %23463

23446:                                            ; preds = %23441
  %23447 = load i32, ptr %509, align 4, !tbaa !5
  %23448 = call ptr @__errno_location() #13
  store i32 %23447, ptr %23448, align 4, !tbaa !5
  %23449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23450 = load i32, ptr @test_count, align 4, !tbaa !5
  %23451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23452 = load i32, ptr %23451, align 4, !tbaa !5
  %23453 = call ptr @s2n_strerror(i32 noundef %23452, ptr noundef @.str.6)
  %23454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23455 = load i32, ptr %23454, align 4, !tbaa !5
  %23456 = call ptr @s2n_strerror_debug(i32 noundef %23455, ptr noundef @.str.6)
  %23457 = call ptr @__errno_location() #13
  %23458 = load i32, ptr %23457, align 4, !tbaa !5
  %23459 = call ptr @strerror(i32 noundef %23458) #12
  %23460 = call ptr @__errno_location() #13
  %23461 = load i32, ptr %23460, align 4, !tbaa !5
  %23462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23449, ptr noundef @.str.4, i32 noundef %23450, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 919, ptr noundef %23453, ptr noundef %23456, ptr noundef %23459, i32 noundef %23461) #12
  br label %23480

23463:                                            ; preds = %23441, %23434
  %23464 = load i32, ptr %509, align 4, !tbaa !5
  %23465 = call ptr @__errno_location() #13
  store i32 %23464, ptr %23465, align 4, !tbaa !5
  %23466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23467 = load i32, ptr @test_count, align 4, !tbaa !5
  %23468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23469 = load i32, ptr %23468, align 4, !tbaa !5
  %23470 = call ptr @s2n_strerror(i32 noundef %23469, ptr noundef @.str.6)
  %23471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23472 = load i32, ptr %23471, align 4, !tbaa !5
  %23473 = call ptr @s2n_strerror_debug(i32 noundef %23472, ptr noundef @.str.6)
  %23474 = call ptr @__errno_location() #13
  %23475 = load i32, ptr %23474, align 4, !tbaa !5
  %23476 = call ptr @strerror(i32 noundef %23475) #12
  %23477 = call ptr @__errno_location() #13
  %23478 = load i32, ptr %23477, align 4, !tbaa !5
  %23479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23466, ptr noundef @.str.7, i32 noundef %23467, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 919, ptr noundef %23470, ptr noundef %23473, ptr noundef %23476, i32 noundef %23478) #12
  br label %23480

23480:                                            ; preds = %23463, %23446
  call void @llvm.lifetime.end.p0(i64 4, ptr %509) #12
  br label %23481

23481:                                            ; preds = %23480
  br label %23482

23482:                                            ; preds = %23481
  call void @exit(i32 noundef 1) #14
  unreachable

23483:                                            ; No predecessors!
  br label %23484

23484:                                            ; preds = %23483
  br label %23485

23485:                                            ; preds = %23484, %23426
  br label %23486

23486:                                            ; preds = %23485
  br label %23487

23487:                                            ; preds = %23486
  br label %23488

23488:                                            ; preds = %23487
  %23489 = load i32, ptr @test_count, align 4, !tbaa !5
  %23490 = add nsw i32 %23489, 1
  store i32 %23490, ptr @test_count, align 4, !tbaa !5
  %23491 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %23491, ptr %505, align 8, !tbaa !9
  %23492 = icmp eq ptr %23491, null
  br i1 %23492, label %23493, label %23546

23493:                                            ; preds = %23488
  br label %23494

23494:                                            ; preds = %23493
  br label %23495

23495:                                            ; preds = %23494
  call void @llvm.lifetime.start.p0(i64 4, ptr %510) #12
  %23496 = call ptr @__errno_location() #13
  %23497 = load i32, ptr %23496, align 4, !tbaa !5
  store i32 %23497, ptr %510, align 4, !tbaa !5
  %23498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23499 = call i32 @s2n_print_stacktrace(ptr noundef %23498)
  %23500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23501 = trunc i8 %23500 to i1
  br i1 %23501, label %23502, label %23524

23502:                                            ; preds = %23495
  %23503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23504 = call i32 @fileno(ptr noundef %23503) #12
  %23505 = call i32 @isatty(i32 noundef %23504) #12
  %23506 = icmp ne i32 %23505, 0
  br i1 %23506, label %23507, label %23524

23507:                                            ; preds = %23502
  %23508 = load i32, ptr %510, align 4, !tbaa !5
  %23509 = call ptr @__errno_location() #13
  store i32 %23508, ptr %23509, align 4, !tbaa !5
  %23510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23511 = load i32, ptr @test_count, align 4, !tbaa !5
  %23512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23513 = load i32, ptr %23512, align 4, !tbaa !5
  %23514 = call ptr @s2n_strerror(i32 noundef %23513, ptr noundef @.str.6)
  %23515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23516 = load i32, ptr %23515, align 4, !tbaa !5
  %23517 = call ptr @s2n_strerror_debug(i32 noundef %23516, ptr noundef @.str.6)
  %23518 = call ptr @__errno_location() #13
  %23519 = load i32, ptr %23518, align 4, !tbaa !5
  %23520 = call ptr @strerror(i32 noundef %23519) #12
  %23521 = call ptr @__errno_location() #13
  %23522 = load i32, ptr %23521, align 4, !tbaa !5
  %23523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23510, ptr noundef @.str.4, i32 noundef %23511, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 921, ptr noundef %23514, ptr noundef %23517, ptr noundef %23520, i32 noundef %23522) #12
  br label %23541

23524:                                            ; preds = %23502, %23495
  %23525 = load i32, ptr %510, align 4, !tbaa !5
  %23526 = call ptr @__errno_location() #13
  store i32 %23525, ptr %23526, align 4, !tbaa !5
  %23527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23528 = load i32, ptr @test_count, align 4, !tbaa !5
  %23529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23530 = load i32, ptr %23529, align 4, !tbaa !5
  %23531 = call ptr @s2n_strerror(i32 noundef %23530, ptr noundef @.str.6)
  %23532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23533 = load i32, ptr %23532, align 4, !tbaa !5
  %23534 = call ptr @s2n_strerror_debug(i32 noundef %23533, ptr noundef @.str.6)
  %23535 = call ptr @__errno_location() #13
  %23536 = load i32, ptr %23535, align 4, !tbaa !5
  %23537 = call ptr @strerror(i32 noundef %23536) #12
  %23538 = call ptr @__errno_location() #13
  %23539 = load i32, ptr %23538, align 4, !tbaa !5
  %23540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23527, ptr noundef @.str.7, i32 noundef %23528, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 921, ptr noundef %23531, ptr noundef %23534, ptr noundef %23537, i32 noundef %23539) #12
  br label %23541

23541:                                            ; preds = %23524, %23507
  call void @llvm.lifetime.end.p0(i64 4, ptr %510) #12
  br label %23542

23542:                                            ; preds = %23541
  br label %23543

23543:                                            ; preds = %23542
  call void @exit(i32 noundef 1) #14
  unreachable

23544:                                            ; No predecessors!
  br label %23545

23545:                                            ; preds = %23544
  br label %23546

23546:                                            ; preds = %23545, %23488
  br label %23547

23547:                                            ; preds = %23546
  br label %23548

23548:                                            ; preds = %23547
  br label %23549

23549:                                            ; preds = %23548
  %23550 = load i32, ptr @test_count, align 4, !tbaa !5
  %23551 = add nsw i32 %23550, 1
  store i32 %23551, ptr @test_count, align 4, !tbaa !5
  %23552 = load ptr, ptr %505, align 8, !tbaa !9
  %23553 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %23552, i8 noundef zeroext 34)
  %23554 = icmp eq i32 %23553, -1
  br i1 %23554, label %23555, label %23608

23555:                                            ; preds = %23549
  br label %23556

23556:                                            ; preds = %23555
  br label %23557

23557:                                            ; preds = %23556
  call void @llvm.lifetime.start.p0(i64 4, ptr %511) #12
  %23558 = call ptr @__errno_location() #13
  %23559 = load i32, ptr %23558, align 4, !tbaa !5
  store i32 %23559, ptr %511, align 4, !tbaa !5
  %23560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23561 = call i32 @s2n_print_stacktrace(ptr noundef %23560)
  %23562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23563 = trunc i8 %23562 to i1
  br i1 %23563, label %23564, label %23586

23564:                                            ; preds = %23557
  %23565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23566 = call i32 @fileno(ptr noundef %23565) #12
  %23567 = call i32 @isatty(i32 noundef %23566) #12
  %23568 = icmp ne i32 %23567, 0
  br i1 %23568, label %23569, label %23586

23569:                                            ; preds = %23564
  %23570 = load i32, ptr %511, align 4, !tbaa !5
  %23571 = call ptr @__errno_location() #13
  store i32 %23570, ptr %23571, align 4, !tbaa !5
  %23572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23573 = load i32, ptr @test_count, align 4, !tbaa !5
  %23574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23575 = load i32, ptr %23574, align 4, !tbaa !5
  %23576 = call ptr @s2n_strerror(i32 noundef %23575, ptr noundef @.str.6)
  %23577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23578 = load i32, ptr %23577, align 4, !tbaa !5
  %23579 = call ptr @s2n_strerror_debug(i32 noundef %23578, ptr noundef @.str.6)
  %23580 = call ptr @__errno_location() #13
  %23581 = load i32, ptr %23580, align 4, !tbaa !5
  %23582 = call ptr @strerror(i32 noundef %23581) #12
  %23583 = call ptr @__errno_location() #13
  %23584 = load i32, ptr %23583, align 4, !tbaa !5
  %23585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23572, ptr noundef @.str.4, i32 noundef %23573, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 922, ptr noundef %23576, ptr noundef %23579, ptr noundef %23582, i32 noundef %23584) #12
  br label %23603

23586:                                            ; preds = %23564, %23557
  %23587 = load i32, ptr %511, align 4, !tbaa !5
  %23588 = call ptr @__errno_location() #13
  store i32 %23587, ptr %23588, align 4, !tbaa !5
  %23589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23590 = load i32, ptr @test_count, align 4, !tbaa !5
  %23591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23592 = load i32, ptr %23591, align 4, !tbaa !5
  %23593 = call ptr @s2n_strerror(i32 noundef %23592, ptr noundef @.str.6)
  %23594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23595 = load i32, ptr %23594, align 4, !tbaa !5
  %23596 = call ptr @s2n_strerror_debug(i32 noundef %23595, ptr noundef @.str.6)
  %23597 = call ptr @__errno_location() #13
  %23598 = load i32, ptr %23597, align 4, !tbaa !5
  %23599 = call ptr @strerror(i32 noundef %23598) #12
  %23600 = call ptr @__errno_location() #13
  %23601 = load i32, ptr %23600, align 4, !tbaa !5
  %23602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23589, ptr noundef @.str.7, i32 noundef %23590, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 922, ptr noundef %23593, ptr noundef %23596, ptr noundef %23599, i32 noundef %23601) #12
  br label %23603

23603:                                            ; preds = %23586, %23569
  call void @llvm.lifetime.end.p0(i64 4, ptr %511) #12
  br label %23604

23604:                                            ; preds = %23603
  br label %23605

23605:                                            ; preds = %23604
  call void @exit(i32 noundef 1) #14
  unreachable

23606:                                            ; No predecessors!
  br label %23607

23607:                                            ; preds = %23606
  br label %23608

23608:                                            ; preds = %23607, %23549
  br label %23609

23609:                                            ; preds = %23608
  br label %23610

23610:                                            ; preds = %23609
  br label %23611

23611:                                            ; preds = %23610
  %23612 = load i32, ptr @test_count, align 4, !tbaa !5
  %23613 = add nsw i32 %23612, 1
  store i32 %23613, ptr @test_count, align 4, !tbaa !5
  %23614 = load ptr, ptr %505, align 8, !tbaa !9
  %23615 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %23614)
  %23616 = getelementptr inbounds %struct.s2n_result, ptr %512, i32 0, i32 0
  store i32 %23615, ptr %23616, align 4
  %23617 = getelementptr inbounds %struct.s2n_result, ptr %512, i32 0, i32 0
  %23618 = load i32, ptr %23617, align 4
  %23619 = call zeroext i1 @s2n_result_is_ok(i32 %23618)
  br i1 %23619, label %23673, label %23620

23620:                                            ; preds = %23611
  br label %23621

23621:                                            ; preds = %23620
  br label %23622

23622:                                            ; preds = %23621
  call void @llvm.lifetime.start.p0(i64 4, ptr %513) #12
  %23623 = call ptr @__errno_location() #13
  %23624 = load i32, ptr %23623, align 4, !tbaa !5
  store i32 %23624, ptr %513, align 4, !tbaa !5
  %23625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23626 = call i32 @s2n_print_stacktrace(ptr noundef %23625)
  %23627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23628 = trunc i8 %23627 to i1
  br i1 %23628, label %23629, label %23651

23629:                                            ; preds = %23622
  %23630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23631 = call i32 @fileno(ptr noundef %23630) #12
  %23632 = call i32 @isatty(i32 noundef %23631) #12
  %23633 = icmp ne i32 %23632, 0
  br i1 %23633, label %23634, label %23651

23634:                                            ; preds = %23629
  %23635 = load i32, ptr %513, align 4, !tbaa !5
  %23636 = call ptr @__errno_location() #13
  store i32 %23635, ptr %23636, align 4, !tbaa !5
  %23637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23638 = load i32, ptr @test_count, align 4, !tbaa !5
  %23639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23640 = load i32, ptr %23639, align 4, !tbaa !5
  %23641 = call ptr @s2n_strerror(i32 noundef %23640, ptr noundef @.str.6)
  %23642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23643 = load i32, ptr %23642, align 4, !tbaa !5
  %23644 = call ptr @s2n_strerror_debug(i32 noundef %23643, ptr noundef @.str.6)
  %23645 = call ptr @__errno_location() #13
  %23646 = load i32, ptr %23645, align 4, !tbaa !5
  %23647 = call ptr @strerror(i32 noundef %23646) #12
  %23648 = call ptr @__errno_location() #13
  %23649 = load i32, ptr %23648, align 4, !tbaa !5
  %23650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23637, ptr noundef @.str.4, i32 noundef %23638, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 923, ptr noundef %23641, ptr noundef %23644, ptr noundef %23647, i32 noundef %23649) #12
  br label %23668

23651:                                            ; preds = %23629, %23622
  %23652 = load i32, ptr %513, align 4, !tbaa !5
  %23653 = call ptr @__errno_location() #13
  store i32 %23652, ptr %23653, align 4, !tbaa !5
  %23654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23655 = load i32, ptr @test_count, align 4, !tbaa !5
  %23656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23657 = load i32, ptr %23656, align 4, !tbaa !5
  %23658 = call ptr @s2n_strerror(i32 noundef %23657, ptr noundef @.str.6)
  %23659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23660 = load i32, ptr %23659, align 4, !tbaa !5
  %23661 = call ptr @s2n_strerror_debug(i32 noundef %23660, ptr noundef @.str.6)
  %23662 = call ptr @__errno_location() #13
  %23663 = load i32, ptr %23662, align 4, !tbaa !5
  %23664 = call ptr @strerror(i32 noundef %23663) #12
  %23665 = call ptr @__errno_location() #13
  %23666 = load i32, ptr %23665, align 4, !tbaa !5
  %23667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23654, ptr noundef @.str.7, i32 noundef %23655, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 923, ptr noundef %23658, ptr noundef %23661, ptr noundef %23664, i32 noundef %23666) #12
  br label %23668

23668:                                            ; preds = %23651, %23634
  call void @llvm.lifetime.end.p0(i64 4, ptr %513) #12
  br label %23669

23669:                                            ; preds = %23668
  br label %23670

23670:                                            ; preds = %23669
  call void @exit(i32 noundef 1) #14
  unreachable

23671:                                            ; No predecessors!
  br label %23672

23672:                                            ; preds = %23671
  br label %23673

23673:                                            ; preds = %23672, %23611
  br label %23674

23674:                                            ; preds = %23673
  br label %23675

23675:                                            ; preds = %23674
  br label %23676

23676:                                            ; preds = %23675
  %23677 = load i32, ptr @test_count, align 4, !tbaa !5
  %23678 = add nsw i32 %23677, 1
  store i32 %23678, ptr @test_count, align 4, !tbaa !5
  %23679 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %506, i32 noundef 0)
  %23680 = icmp eq i32 %23679, -1
  br i1 %23680, label %23681, label %23734

23681:                                            ; preds = %23676
  br label %23682

23682:                                            ; preds = %23681
  br label %23683

23683:                                            ; preds = %23682
  call void @llvm.lifetime.start.p0(i64 4, ptr %514) #12
  %23684 = call ptr @__errno_location() #13
  %23685 = load i32, ptr %23684, align 4, !tbaa !5
  store i32 %23685, ptr %514, align 4, !tbaa !5
  %23686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23687 = call i32 @s2n_print_stacktrace(ptr noundef %23686)
  %23688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23689 = trunc i8 %23688 to i1
  br i1 %23689, label %23690, label %23712

23690:                                            ; preds = %23683
  %23691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23692 = call i32 @fileno(ptr noundef %23691) #12
  %23693 = call i32 @isatty(i32 noundef %23692) #12
  %23694 = icmp ne i32 %23693, 0
  br i1 %23694, label %23695, label %23712

23695:                                            ; preds = %23690
  %23696 = load i32, ptr %514, align 4, !tbaa !5
  %23697 = call ptr @__errno_location() #13
  store i32 %23696, ptr %23697, align 4, !tbaa !5
  %23698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23699 = load i32, ptr @test_count, align 4, !tbaa !5
  %23700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23701 = load i32, ptr %23700, align 4, !tbaa !5
  %23702 = call ptr @s2n_strerror(i32 noundef %23701, ptr noundef @.str.6)
  %23703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23704 = load i32, ptr %23703, align 4, !tbaa !5
  %23705 = call ptr @s2n_strerror_debug(i32 noundef %23704, ptr noundef @.str.6)
  %23706 = call ptr @__errno_location() #13
  %23707 = load i32, ptr %23706, align 4, !tbaa !5
  %23708 = call ptr @strerror(i32 noundef %23707) #12
  %23709 = call ptr @__errno_location() #13
  %23710 = load i32, ptr %23709, align 4, !tbaa !5
  %23711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23698, ptr noundef @.str.4, i32 noundef %23699, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 924, ptr noundef %23702, ptr noundef %23705, ptr noundef %23708, i32 noundef %23710) #12
  br label %23729

23712:                                            ; preds = %23690, %23683
  %23713 = load i32, ptr %514, align 4, !tbaa !5
  %23714 = call ptr @__errno_location() #13
  store i32 %23713, ptr %23714, align 4, !tbaa !5
  %23715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23716 = load i32, ptr @test_count, align 4, !tbaa !5
  %23717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23718 = load i32, ptr %23717, align 4, !tbaa !5
  %23719 = call ptr @s2n_strerror(i32 noundef %23718, ptr noundef @.str.6)
  %23720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23721 = load i32, ptr %23720, align 4, !tbaa !5
  %23722 = call ptr @s2n_strerror_debug(i32 noundef %23721, ptr noundef @.str.6)
  %23723 = call ptr @__errno_location() #13
  %23724 = load i32, ptr %23723, align 4, !tbaa !5
  %23725 = call ptr @strerror(i32 noundef %23724) #12
  %23726 = call ptr @__errno_location() #13
  %23727 = load i32, ptr %23726, align 4, !tbaa !5
  %23728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23715, ptr noundef @.str.7, i32 noundef %23716, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 924, ptr noundef %23719, ptr noundef %23722, ptr noundef %23725, i32 noundef %23727) #12
  br label %23729

23729:                                            ; preds = %23712, %23695
  call void @llvm.lifetime.end.p0(i64 4, ptr %514) #12
  br label %23730

23730:                                            ; preds = %23729
  br label %23731

23731:                                            ; preds = %23730
  call void @exit(i32 noundef 1) #14
  unreachable

23732:                                            ; No predecessors!
  br label %23733

23733:                                            ; preds = %23732
  br label %23734

23734:                                            ; preds = %23733, %23676
  br label %23735

23735:                                            ; preds = %23734
  br label %23736

23736:                                            ; preds = %23735
  br label %23737

23737:                                            ; preds = %23736
  %23738 = load i32, ptr @test_count, align 4, !tbaa !5
  %23739 = add nsw i32 %23738, 1
  store i32 %23739, ptr @test_count, align 4, !tbaa !5
  %23740 = load ptr, ptr %505, align 8, !tbaa !9
  %23741 = load ptr, ptr %507, align 8, !tbaa !9
  %23742 = call i32 @s2n_connection_set_config(ptr noundef %23740, ptr noundef %23741)
  %23743 = icmp eq i32 %23742, -1
  br i1 %23743, label %23744, label %23797

23744:                                            ; preds = %23737
  br label %23745

23745:                                            ; preds = %23744
  br label %23746

23746:                                            ; preds = %23745
  call void @llvm.lifetime.start.p0(i64 4, ptr %515) #12
  %23747 = call ptr @__errno_location() #13
  %23748 = load i32, ptr %23747, align 4, !tbaa !5
  store i32 %23748, ptr %515, align 4, !tbaa !5
  %23749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23750 = call i32 @s2n_print_stacktrace(ptr noundef %23749)
  %23751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23752 = trunc i8 %23751 to i1
  br i1 %23752, label %23753, label %23775

23753:                                            ; preds = %23746
  %23754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23755 = call i32 @fileno(ptr noundef %23754) #12
  %23756 = call i32 @isatty(i32 noundef %23755) #12
  %23757 = icmp ne i32 %23756, 0
  br i1 %23757, label %23758, label %23775

23758:                                            ; preds = %23753
  %23759 = load i32, ptr %515, align 4, !tbaa !5
  %23760 = call ptr @__errno_location() #13
  store i32 %23759, ptr %23760, align 4, !tbaa !5
  %23761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23762 = load i32, ptr @test_count, align 4, !tbaa !5
  %23763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23764 = load i32, ptr %23763, align 4, !tbaa !5
  %23765 = call ptr @s2n_strerror(i32 noundef %23764, ptr noundef @.str.6)
  %23766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23767 = load i32, ptr %23766, align 4, !tbaa !5
  %23768 = call ptr @s2n_strerror_debug(i32 noundef %23767, ptr noundef @.str.6)
  %23769 = call ptr @__errno_location() #13
  %23770 = load i32, ptr %23769, align 4, !tbaa !5
  %23771 = call ptr @strerror(i32 noundef %23770) #12
  %23772 = call ptr @__errno_location() #13
  %23773 = load i32, ptr %23772, align 4, !tbaa !5
  %23774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23761, ptr noundef @.str.4, i32 noundef %23762, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 925, ptr noundef %23765, ptr noundef %23768, ptr noundef %23771, i32 noundef %23773) #12
  br label %23792

23775:                                            ; preds = %23753, %23746
  %23776 = load i32, ptr %515, align 4, !tbaa !5
  %23777 = call ptr @__errno_location() #13
  store i32 %23776, ptr %23777, align 4, !tbaa !5
  %23778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23779 = load i32, ptr @test_count, align 4, !tbaa !5
  %23780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23781 = load i32, ptr %23780, align 4, !tbaa !5
  %23782 = call ptr @s2n_strerror(i32 noundef %23781, ptr noundef @.str.6)
  %23783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23784 = load i32, ptr %23783, align 4, !tbaa !5
  %23785 = call ptr @s2n_strerror_debug(i32 noundef %23784, ptr noundef @.str.6)
  %23786 = call ptr @__errno_location() #13
  %23787 = load i32, ptr %23786, align 4, !tbaa !5
  %23788 = call ptr @strerror(i32 noundef %23787) #12
  %23789 = call ptr @__errno_location() #13
  %23790 = load i32, ptr %23789, align 4, !tbaa !5
  %23791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23778, ptr noundef @.str.7, i32 noundef %23779, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 925, ptr noundef %23782, ptr noundef %23785, ptr noundef %23788, i32 noundef %23790) #12
  br label %23792

23792:                                            ; preds = %23775, %23758
  call void @llvm.lifetime.end.p0(i64 4, ptr %515) #12
  br label %23793

23793:                                            ; preds = %23792
  br label %23794

23794:                                            ; preds = %23793
  call void @exit(i32 noundef 1) #14
  unreachable

23795:                                            ; No predecessors!
  br label %23796

23796:                                            ; preds = %23795
  br label %23797

23797:                                            ; preds = %23796, %23737
  br label %23798

23798:                                            ; preds = %23797
  br label %23799

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

23800:                                            ; preds = %23799
  %23801 = load i32, ptr @test_count, align 4, !tbaa !5
  %23802 = add nsw i32 %23801, 1
  store i32 %23802, ptr @test_count, align 4, !tbaa !5
  %23803 = load ptr, ptr %505, align 8, !tbaa !9
  %23804 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %23803, ptr noundef %516)
  %23805 = icmp eq i32 %23804, -1
  br i1 %23805, label %23806, label %23859

23806:                                            ; preds = %23800
  br label %23807

23807:                                            ; preds = %23806
  br label %23808

23808:                                            ; preds = %23807
  call void @llvm.lifetime.start.p0(i64 4, ptr %517) #12
  %23809 = call ptr @__errno_location() #13
  %23810 = load i32, ptr %23809, align 4, !tbaa !5
  store i32 %23810, ptr %517, align 4, !tbaa !5
  %23811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23812 = call i32 @s2n_print_stacktrace(ptr noundef %23811)
  %23813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23814 = trunc i8 %23813 to i1
  br i1 %23814, label %23815, label %23837

23815:                                            ; preds = %23808
  %23816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23817 = call i32 @fileno(ptr noundef %23816) #12
  %23818 = call i32 @isatty(i32 noundef %23817) #12
  %23819 = icmp ne i32 %23818, 0
  br i1 %23819, label %23820, label %23837

23820:                                            ; preds = %23815
  %23821 = load i32, ptr %517, align 4, !tbaa !5
  %23822 = call ptr @__errno_location() #13
  store i32 %23821, ptr %23822, align 4, !tbaa !5
  %23823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23824 = load i32, ptr @test_count, align 4, !tbaa !5
  %23825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23826 = load i32, ptr %23825, align 4, !tbaa !5
  %23827 = call ptr @s2n_strerror(i32 noundef %23826, ptr noundef @.str.6)
  %23828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23829 = load i32, ptr %23828, align 4, !tbaa !5
  %23830 = call ptr @s2n_strerror_debug(i32 noundef %23829, ptr noundef @.str.6)
  %23831 = call ptr @__errno_location() #13
  %23832 = load i32, ptr %23831, align 4, !tbaa !5
  %23833 = call ptr @strerror(i32 noundef %23832) #12
  %23834 = call ptr @__errno_location() #13
  %23835 = load i32, ptr %23834, align 4, !tbaa !5
  %23836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23823, ptr noundef @.str.4, i32 noundef %23824, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 928, ptr noundef %23827, ptr noundef %23830, ptr noundef %23833, i32 noundef %23835) #12
  br label %23854

23837:                                            ; preds = %23815, %23808
  %23838 = load i32, ptr %517, align 4, !tbaa !5
  %23839 = call ptr @__errno_location() #13
  store i32 %23838, ptr %23839, align 4, !tbaa !5
  %23840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23841 = load i32, ptr @test_count, align 4, !tbaa !5
  %23842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23843 = load i32, ptr %23842, align 4, !tbaa !5
  %23844 = call ptr @s2n_strerror(i32 noundef %23843, ptr noundef @.str.6)
  %23845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23846 = load i32, ptr %23845, align 4, !tbaa !5
  %23847 = call ptr @s2n_strerror_debug(i32 noundef %23846, ptr noundef @.str.6)
  %23848 = call ptr @__errno_location() #13
  %23849 = load i32, ptr %23848, align 4, !tbaa !5
  %23850 = call ptr @strerror(i32 noundef %23849) #12
  %23851 = call ptr @__errno_location() #13
  %23852 = load i32, ptr %23851, align 4, !tbaa !5
  %23853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23840, ptr noundef @.str.7, i32 noundef %23841, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 928, ptr noundef %23844, ptr noundef %23847, ptr noundef %23850, i32 noundef %23852) #12
  br label %23854

23854:                                            ; preds = %23837, %23820
  call void @llvm.lifetime.end.p0(i64 4, ptr %517) #12
  br label %23855

23855:                                            ; preds = %23854
  br label %23856

23856:                                            ; preds = %23855
  call void @exit(i32 noundef 1) #14
  unreachable

23857:                                            ; No predecessors!
  br label %23858

23858:                                            ; preds = %23857
  br label %23859

23859:                                            ; preds = %23858, %23800
  br label %23860

23860:                                            ; preds = %23859
  br label %23861

23861:                                            ; preds = %23860
  br label %23862

23862:                                            ; preds = %23861
  %23863 = load i32, ptr @test_count, align 4, !tbaa !5
  %23864 = add nsw i32 %23863, 1
  store i32 %23864, ptr @test_count, align 4, !tbaa !5
  %23865 = load ptr, ptr %516, align 8, !tbaa !9
  %23866 = icmp eq ptr %23865, null
  br i1 %23866, label %23867, label %23920

23867:                                            ; preds = %23862
  br label %23868

23868:                                            ; preds = %23867
  br label %23869

23869:                                            ; preds = %23868
  call void @llvm.lifetime.start.p0(i64 4, ptr %518) #12
  %23870 = call ptr @__errno_location() #13
  %23871 = load i32, ptr %23870, align 4, !tbaa !5
  store i32 %23871, ptr %518, align 4, !tbaa !5
  %23872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23873 = call i32 @s2n_print_stacktrace(ptr noundef %23872)
  %23874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23875 = trunc i8 %23874 to i1
  br i1 %23875, label %23876, label %23898

23876:                                            ; preds = %23869
  %23877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23878 = call i32 @fileno(ptr noundef %23877) #12
  %23879 = call i32 @isatty(i32 noundef %23878) #12
  %23880 = icmp ne i32 %23879, 0
  br i1 %23880, label %23881, label %23898

23881:                                            ; preds = %23876
  %23882 = load i32, ptr %518, align 4, !tbaa !5
  %23883 = call ptr @__errno_location() #13
  store i32 %23882, ptr %23883, align 4, !tbaa !5
  %23884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23885 = load i32, ptr @test_count, align 4, !tbaa !5
  %23886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23887 = load i32, ptr %23886, align 4, !tbaa !5
  %23888 = call ptr @s2n_strerror(i32 noundef %23887, ptr noundef @.str.6)
  %23889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23890 = load i32, ptr %23889, align 4, !tbaa !5
  %23891 = call ptr @s2n_strerror_debug(i32 noundef %23890, ptr noundef @.str.6)
  %23892 = call ptr @__errno_location() #13
  %23893 = load i32, ptr %23892, align 4, !tbaa !5
  %23894 = call ptr @strerror(i32 noundef %23893) #12
  %23895 = call ptr @__errno_location() #13
  %23896 = load i32, ptr %23895, align 4, !tbaa !5
  %23897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23884, ptr noundef @.str.4, i32 noundef %23885, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 929, ptr noundef %23888, ptr noundef %23891, ptr noundef %23894, i32 noundef %23896) #12
  br label %23915

23898:                                            ; preds = %23876, %23869
  %23899 = load i32, ptr %518, align 4, !tbaa !5
  %23900 = call ptr @__errno_location() #13
  store i32 %23899, ptr %23900, align 4, !tbaa !5
  %23901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23902 = load i32, ptr @test_count, align 4, !tbaa !5
  %23903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23904 = load i32, ptr %23903, align 4, !tbaa !5
  %23905 = call ptr @s2n_strerror(i32 noundef %23904, ptr noundef @.str.6)
  %23906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23907 = load i32, ptr %23906, align 4, !tbaa !5
  %23908 = call ptr @s2n_strerror_debug(i32 noundef %23907, ptr noundef @.str.6)
  %23909 = call ptr @__errno_location() #13
  %23910 = load i32, ptr %23909, align 4, !tbaa !5
  %23911 = call ptr @strerror(i32 noundef %23910) #12
  %23912 = call ptr @__errno_location() #13
  %23913 = load i32, ptr %23912, align 4, !tbaa !5
  %23914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23901, ptr noundef @.str.7, i32 noundef %23902, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 929, ptr noundef %23905, ptr noundef %23908, ptr noundef %23911, i32 noundef %23913) #12
  br label %23915

23915:                                            ; preds = %23898, %23881
  call void @llvm.lifetime.end.p0(i64 4, ptr %518) #12
  br label %23916

23916:                                            ; preds = %23915
  br label %23917

23917:                                            ; preds = %23916
  call void @exit(i32 noundef 1) #14
  unreachable

23918:                                            ; No predecessors!
  br label %23919

23919:                                            ; preds = %23918
  br label %23920

23920:                                            ; preds = %23919, %23862
  br label %23921

23921:                                            ; preds = %23920
  br label %23922

23922:                                            ; preds = %23921
  br label %23923

23923:                                            ; preds = %23922
  %23924 = load i32, ptr @test_count, align 4, !tbaa !5
  %23925 = add nsw i32 %23924, 1
  store i32 %23925, ptr @test_count, align 4, !tbaa !5
  %23926 = call i32 @s2n_stuffer_skip_write(ptr noundef %506, i32 noundef 2)
  %23927 = icmp eq i32 %23926, -1
  br i1 %23927, label %23928, label %23981

23928:                                            ; preds = %23923
  br label %23929

23929:                                            ; preds = %23928
  br label %23930

23930:                                            ; preds = %23929
  call void @llvm.lifetime.start.p0(i64 4, ptr %519) #12
  %23931 = call ptr @__errno_location() #13
  %23932 = load i32, ptr %23931, align 4, !tbaa !5
  store i32 %23932, ptr %519, align 4, !tbaa !5
  %23933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23934 = call i32 @s2n_print_stacktrace(ptr noundef %23933)
  %23935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %23936 = trunc i8 %23935 to i1
  br i1 %23936, label %23937, label %23959

23937:                                            ; preds = %23930
  %23938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23939 = call i32 @fileno(ptr noundef %23938) #12
  %23940 = call i32 @isatty(i32 noundef %23939) #12
  %23941 = icmp ne i32 %23940, 0
  br i1 %23941, label %23942, label %23959

23942:                                            ; preds = %23937
  %23943 = load i32, ptr %519, align 4, !tbaa !5
  %23944 = call ptr @__errno_location() #13
  store i32 %23943, ptr %23944, align 4, !tbaa !5
  %23945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23946 = load i32, ptr @test_count, align 4, !tbaa !5
  %23947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23948 = load i32, ptr %23947, align 4, !tbaa !5
  %23949 = call ptr @s2n_strerror(i32 noundef %23948, ptr noundef @.str.6)
  %23950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23951 = load i32, ptr %23950, align 4, !tbaa !5
  %23952 = call ptr @s2n_strerror_debug(i32 noundef %23951, ptr noundef @.str.6)
  %23953 = call ptr @__errno_location() #13
  %23954 = load i32, ptr %23953, align 4, !tbaa !5
  %23955 = call ptr @strerror(i32 noundef %23954) #12
  %23956 = call ptr @__errno_location() #13
  %23957 = load i32, ptr %23956, align 4, !tbaa !5
  %23958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23945, ptr noundef @.str.4, i32 noundef %23946, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 932, ptr noundef %23949, ptr noundef %23952, ptr noundef %23955, i32 noundef %23957) #12
  br label %23976

23959:                                            ; preds = %23937, %23930
  %23960 = load i32, ptr %519, align 4, !tbaa !5
  %23961 = call ptr @__errno_location() #13
  store i32 %23960, ptr %23961, align 4, !tbaa !5
  %23962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23963 = load i32, ptr @test_count, align 4, !tbaa !5
  %23964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23965 = load i32, ptr %23964, align 4, !tbaa !5
  %23966 = call ptr @s2n_strerror(i32 noundef %23965, ptr noundef @.str.6)
  %23967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %23968 = load i32, ptr %23967, align 4, !tbaa !5
  %23969 = call ptr @s2n_strerror_debug(i32 noundef %23968, ptr noundef @.str.6)
  %23970 = call ptr @__errno_location() #13
  %23971 = load i32, ptr %23970, align 4, !tbaa !5
  %23972 = call ptr @strerror(i32 noundef %23971) #12
  %23973 = call ptr @__errno_location() #13
  %23974 = load i32, ptr %23973, align 4, !tbaa !5
  %23975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23962, ptr noundef @.str.7, i32 noundef %23963, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 932, ptr noundef %23966, ptr noundef %23969, ptr noundef %23972, i32 noundef %23974) #12
  br label %23976

23976:                                            ; preds = %23959, %23942
  call void @llvm.lifetime.end.p0(i64 4, ptr %519) #12
  br label %23977

23977:                                            ; preds = %23976
  br label %23978

23978:                                            ; preds = %23977
  call void @exit(i32 noundef 1) #14
  unreachable

23979:                                            ; No predecessors!
  br label %23980

23980:                                            ; preds = %23979
  br label %23981

23981:                                            ; preds = %23980, %23923
  br label %23982

23982:                                            ; preds = %23981
  br label %23983

23983:                                            ; preds = %23982
  br label %23984

23984:                                            ; preds = %23983
  %23985 = load i32, ptr @test_count, align 4, !tbaa !5
  %23986 = add nsw i32 %23985, 1
  store i32 %23986, ptr @test_count, align 4, !tbaa !5
  %23987 = load ptr, ptr %516, align 8, !tbaa !9
  %23988 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %23987, i32 0, i32 1
  %23989 = load ptr, ptr %23988, align 8, !tbaa !24
  %23990 = getelementptr inbounds ptr, ptr %23989, i64 0
  %23991 = load ptr, ptr %23990, align 8, !tbaa !9
  %23992 = call i32 @s2n_write_named_curve(ptr noundef %506, ptr noundef %23991)
  %23993 = icmp eq i32 %23992, -1
  br i1 %23993, label %23994, label %24047

23994:                                            ; preds = %23984
  br label %23995

23995:                                            ; preds = %23994
  br label %23996

23996:                                            ; preds = %23995
  call void @llvm.lifetime.start.p0(i64 4, ptr %520) #12
  %23997 = call ptr @__errno_location() #13
  %23998 = load i32, ptr %23997, align 4, !tbaa !5
  store i32 %23998, ptr %520, align 4, !tbaa !5
  %23999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24000 = call i32 @s2n_print_stacktrace(ptr noundef %23999)
  %24001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24002 = trunc i8 %24001 to i1
  br i1 %24002, label %24003, label %24025

24003:                                            ; preds = %23996
  %24004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24005 = call i32 @fileno(ptr noundef %24004) #12
  %24006 = call i32 @isatty(i32 noundef %24005) #12
  %24007 = icmp ne i32 %24006, 0
  br i1 %24007, label %24008, label %24025

24008:                                            ; preds = %24003
  %24009 = load i32, ptr %520, align 4, !tbaa !5
  %24010 = call ptr @__errno_location() #13
  store i32 %24009, ptr %24010, align 4, !tbaa !5
  %24011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24012 = load i32, ptr @test_count, align 4, !tbaa !5
  %24013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24014 = load i32, ptr %24013, align 4, !tbaa !5
  %24015 = call ptr @s2n_strerror(i32 noundef %24014, ptr noundef @.str.6)
  %24016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24017 = load i32, ptr %24016, align 4, !tbaa !5
  %24018 = call ptr @s2n_strerror_debug(i32 noundef %24017, ptr noundef @.str.6)
  %24019 = call ptr @__errno_location() #13
  %24020 = load i32, ptr %24019, align 4, !tbaa !5
  %24021 = call ptr @strerror(i32 noundef %24020) #12
  %24022 = call ptr @__errno_location() #13
  %24023 = load i32, ptr %24022, align 4, !tbaa !5
  %24024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24011, ptr noundef @.str.4, i32 noundef %24012, ptr noundef @.str.111, ptr noundef @.str.3, i32 noundef 933, ptr noundef %24015, ptr noundef %24018, ptr noundef %24021, i32 noundef %24023) #12
  br label %24042

24025:                                            ; preds = %24003, %23996
  %24026 = load i32, ptr %520, align 4, !tbaa !5
  %24027 = call ptr @__errno_location() #13
  store i32 %24026, ptr %24027, align 4, !tbaa !5
  %24028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24029 = load i32, ptr @test_count, align 4, !tbaa !5
  %24030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24031 = load i32, ptr %24030, align 4, !tbaa !5
  %24032 = call ptr @s2n_strerror(i32 noundef %24031, ptr noundef @.str.6)
  %24033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24034 = load i32, ptr %24033, align 4, !tbaa !5
  %24035 = call ptr @s2n_strerror_debug(i32 noundef %24034, ptr noundef @.str.6)
  %24036 = call ptr @__errno_location() #13
  %24037 = load i32, ptr %24036, align 4, !tbaa !5
  %24038 = call ptr @strerror(i32 noundef %24037) #12
  %24039 = call ptr @__errno_location() #13
  %24040 = load i32, ptr %24039, align 4, !tbaa !5
  %24041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24028, ptr noundef @.str.7, i32 noundef %24029, ptr noundef @.str.111, ptr noundef @.str.3, i32 noundef 933, ptr noundef %24032, ptr noundef %24035, ptr noundef %24038, i32 noundef %24040) #12
  br label %24042

24042:                                            ; preds = %24025, %24008
  call void @llvm.lifetime.end.p0(i64 4, ptr %520) #12
  br label %24043

24043:                                            ; preds = %24042
  br label %24044

24044:                                            ; preds = %24043
  call void @exit(i32 noundef 1) #14
  unreachable

24045:                                            ; No predecessors!
  br label %24046

24046:                                            ; preds = %24045
  br label %24047

24047:                                            ; preds = %24046, %23984
  br label %24048

24048:                                            ; preds = %24047
  br label %24049

24049:                                            ; preds = %24048
  br label %24050

24050:                                            ; preds = %24049
  %24051 = load i32, ptr @test_count, align 4, !tbaa !5
  %24052 = add nsw i32 %24051, 1
  store i32 %24052, ptr @test_count, align 4, !tbaa !5
  %24053 = call i32 @s2n_test_rewrite_length(ptr noundef %506)
  %24054 = icmp eq i32 %24053, -1
  br i1 %24054, label %24055, label %24108

24055:                                            ; preds = %24050
  br label %24056

24056:                                            ; preds = %24055
  br label %24057

24057:                                            ; preds = %24056
  call void @llvm.lifetime.start.p0(i64 4, ptr %521) #12
  %24058 = call ptr @__errno_location() #13
  %24059 = load i32, ptr %24058, align 4, !tbaa !5
  store i32 %24059, ptr %521, align 4, !tbaa !5
  %24060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24061 = call i32 @s2n_print_stacktrace(ptr noundef %24060)
  %24062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24063 = trunc i8 %24062 to i1
  br i1 %24063, label %24064, label %24086

24064:                                            ; preds = %24057
  %24065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24066 = call i32 @fileno(ptr noundef %24065) #12
  %24067 = call i32 @isatty(i32 noundef %24066) #12
  %24068 = icmp ne i32 %24067, 0
  br i1 %24068, label %24069, label %24086

24069:                                            ; preds = %24064
  %24070 = load i32, ptr %521, align 4, !tbaa !5
  %24071 = call ptr @__errno_location() #13
  store i32 %24070, ptr %24071, align 4, !tbaa !5
  %24072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24073 = load i32, ptr @test_count, align 4, !tbaa !5
  %24074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24075 = load i32, ptr %24074, align 4, !tbaa !5
  %24076 = call ptr @s2n_strerror(i32 noundef %24075, ptr noundef @.str.6)
  %24077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24078 = load i32, ptr %24077, align 4, !tbaa !5
  %24079 = call ptr @s2n_strerror_debug(i32 noundef %24078, ptr noundef @.str.6)
  %24080 = call ptr @__errno_location() #13
  %24081 = load i32, ptr %24080, align 4, !tbaa !5
  %24082 = call ptr @strerror(i32 noundef %24081) #12
  %24083 = call ptr @__errno_location() #13
  %24084 = load i32, ptr %24083, align 4, !tbaa !5
  %24085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24072, ptr noundef @.str.4, i32 noundef %24073, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 934, ptr noundef %24076, ptr noundef %24079, ptr noundef %24082, i32 noundef %24084) #12
  br label %24103

24086:                                            ; preds = %24064, %24057
  %24087 = load i32, ptr %521, align 4, !tbaa !5
  %24088 = call ptr @__errno_location() #13
  store i32 %24087, ptr %24088, align 4, !tbaa !5
  %24089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24090 = load i32, ptr @test_count, align 4, !tbaa !5
  %24091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24092 = load i32, ptr %24091, align 4, !tbaa !5
  %24093 = call ptr @s2n_strerror(i32 noundef %24092, ptr noundef @.str.6)
  %24094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24095 = load i32, ptr %24094, align 4, !tbaa !5
  %24096 = call ptr @s2n_strerror_debug(i32 noundef %24095, ptr noundef @.str.6)
  %24097 = call ptr @__errno_location() #13
  %24098 = load i32, ptr %24097, align 4, !tbaa !5
  %24099 = call ptr @strerror(i32 noundef %24098) #12
  %24100 = call ptr @__errno_location() #13
  %24101 = load i32, ptr %24100, align 4, !tbaa !5
  %24102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24089, ptr noundef @.str.7, i32 noundef %24090, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 934, ptr noundef %24093, ptr noundef %24096, ptr noundef %24099, i32 noundef %24101) #12
  br label %24103

24103:                                            ; preds = %24086, %24069
  call void @llvm.lifetime.end.p0(i64 4, ptr %521) #12
  br label %24104

24104:                                            ; preds = %24103
  br label %24105

24105:                                            ; preds = %24104
  call void @exit(i32 noundef 1) #14
  unreachable

24106:                                            ; No predecessors!
  br label %24107

24107:                                            ; preds = %24106
  br label %24108

24108:                                            ; preds = %24107, %24050
  br label %24109

24109:                                            ; preds = %24108
  br label %24110

24110:                                            ; preds = %24109
  call void @llvm.lifetime.start.p0(i64 4, ptr %522) #12
  %24111 = getelementptr inbounds %struct.s2n_stuffer, ptr %506, i32 0, i32 2
  %24112 = load i32, ptr %24111, align 4, !tbaa !18
  %24113 = getelementptr inbounds %struct.s2n_stuffer, ptr %506, i32 0, i32 1
  %24114 = load i32, ptr %24113, align 8, !tbaa !21
  %24115 = sub i32 %24112, %24114
  store i32 %24115, ptr %522, align 4, !tbaa !5
  br label %24116

24116:                                            ; preds = %24110
  %24117 = load i32, ptr @test_count, align 4, !tbaa !5
  %24118 = add nsw i32 %24117, 1
  store i32 %24118, ptr @test_count, align 4, !tbaa !5
  %24119 = load i32, ptr %522, align 4, !tbaa !5
  %24120 = sdiv i32 %24119, 2
  %24121 = call i32 @s2n_stuffer_wipe_n(ptr noundef %506, i32 noundef %24120)
  %24122 = icmp eq i32 %24121, -1
  br i1 %24122, label %24123, label %24176

24123:                                            ; preds = %24116
  br label %24124

24124:                                            ; preds = %24123
  br label %24125

24125:                                            ; preds = %24124
  call void @llvm.lifetime.start.p0(i64 4, ptr %523) #12
  %24126 = call ptr @__errno_location() #13
  %24127 = load i32, ptr %24126, align 4, !tbaa !5
  store i32 %24127, ptr %523, align 4, !tbaa !5
  %24128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24129 = call i32 @s2n_print_stacktrace(ptr noundef %24128)
  %24130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24131 = trunc i8 %24130 to i1
  br i1 %24131, label %24132, label %24154

24132:                                            ; preds = %24125
  %24133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24134 = call i32 @fileno(ptr noundef %24133) #12
  %24135 = call i32 @isatty(i32 noundef %24134) #12
  %24136 = icmp ne i32 %24135, 0
  br i1 %24136, label %24137, label %24154

24137:                                            ; preds = %24132
  %24138 = load i32, ptr %523, align 4, !tbaa !5
  %24139 = call ptr @__errno_location() #13
  store i32 %24138, ptr %24139, align 4, !tbaa !5
  %24140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24141 = load i32, ptr @test_count, align 4, !tbaa !5
  %24142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24143 = load i32, ptr %24142, align 4, !tbaa !5
  %24144 = call ptr @s2n_strerror(i32 noundef %24143, ptr noundef @.str.6)
  %24145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24146 = load i32, ptr %24145, align 4, !tbaa !5
  %24147 = call ptr @s2n_strerror_debug(i32 noundef %24146, ptr noundef @.str.6)
  %24148 = call ptr @__errno_location() #13
  %24149 = load i32, ptr %24148, align 4, !tbaa !5
  %24150 = call ptr @strerror(i32 noundef %24149) #12
  %24151 = call ptr @__errno_location() #13
  %24152 = load i32, ptr %24151, align 4, !tbaa !5
  %24153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24140, ptr noundef @.str.4, i32 noundef %24141, ptr noundef @.str.129, ptr noundef @.str.3, i32 noundef 938, ptr noundef %24144, ptr noundef %24147, ptr noundef %24150, i32 noundef %24152) #12
  br label %24171

24154:                                            ; preds = %24132, %24125
  %24155 = load i32, ptr %523, align 4, !tbaa !5
  %24156 = call ptr @__errno_location() #13
  store i32 %24155, ptr %24156, align 4, !tbaa !5
  %24157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24158 = load i32, ptr @test_count, align 4, !tbaa !5
  %24159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24160 = load i32, ptr %24159, align 4, !tbaa !5
  %24161 = call ptr @s2n_strerror(i32 noundef %24160, ptr noundef @.str.6)
  %24162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24163 = load i32, ptr %24162, align 4, !tbaa !5
  %24164 = call ptr @s2n_strerror_debug(i32 noundef %24163, ptr noundef @.str.6)
  %24165 = call ptr @__errno_location() #13
  %24166 = load i32, ptr %24165, align 4, !tbaa !5
  %24167 = call ptr @strerror(i32 noundef %24166) #12
  %24168 = call ptr @__errno_location() #13
  %24169 = load i32, ptr %24168, align 4, !tbaa !5
  %24170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24157, ptr noundef @.str.7, i32 noundef %24158, ptr noundef @.str.129, ptr noundef @.str.3, i32 noundef 938, ptr noundef %24161, ptr noundef %24164, ptr noundef %24167, i32 noundef %24169) #12
  br label %24171

24171:                                            ; preds = %24154, %24137
  call void @llvm.lifetime.end.p0(i64 4, ptr %523) #12
  br label %24172

24172:                                            ; preds = %24171
  br label %24173

24173:                                            ; preds = %24172
  call void @exit(i32 noundef 1) #14
  unreachable

24174:                                            ; No predecessors!
  br label %24175

24175:                                            ; preds = %24174
  br label %24176

24176:                                            ; preds = %24175, %24116
  br label %24177

24177:                                            ; preds = %24176
  br label %24178

24178:                                            ; preds = %24177
  br label %24179

24179:                                            ; preds = %24178
  %24180 = load i32, ptr @test_count, align 4, !tbaa !5
  %24181 = add nsw i32 %24180, 1
  store i32 %24181, ptr @test_count, align 4, !tbaa !5
  %24182 = load i32, ptr %522, align 4, !tbaa !5
  %24183 = sdiv i32 %24182, 2
  %24184 = call i32 @s2n_stuffer_skip_write(ptr noundef %506, i32 noundef %24183)
  %24185 = icmp eq i32 %24184, -1
  br i1 %24185, label %24186, label %24239

24186:                                            ; preds = %24179
  br label %24187

24187:                                            ; preds = %24186
  br label %24188

24188:                                            ; preds = %24187
  call void @llvm.lifetime.start.p0(i64 4, ptr %524) #12
  %24189 = call ptr @__errno_location() #13
  %24190 = load i32, ptr %24189, align 4, !tbaa !5
  store i32 %24190, ptr %524, align 4, !tbaa !5
  %24191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24192 = call i32 @s2n_print_stacktrace(ptr noundef %24191)
  %24193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24194 = trunc i8 %24193 to i1
  br i1 %24194, label %24195, label %24217

24195:                                            ; preds = %24188
  %24196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24197 = call i32 @fileno(ptr noundef %24196) #12
  %24198 = call i32 @isatty(i32 noundef %24197) #12
  %24199 = icmp ne i32 %24198, 0
  br i1 %24199, label %24200, label %24217

24200:                                            ; preds = %24195
  %24201 = load i32, ptr %524, align 4, !tbaa !5
  %24202 = call ptr @__errno_location() #13
  store i32 %24201, ptr %24202, align 4, !tbaa !5
  %24203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24204 = load i32, ptr @test_count, align 4, !tbaa !5
  %24205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24206 = load i32, ptr %24205, align 4, !tbaa !5
  %24207 = call ptr @s2n_strerror(i32 noundef %24206, ptr noundef @.str.6)
  %24208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24209 = load i32, ptr %24208, align 4, !tbaa !5
  %24210 = call ptr @s2n_strerror_debug(i32 noundef %24209, ptr noundef @.str.6)
  %24211 = call ptr @__errno_location() #13
  %24212 = load i32, ptr %24211, align 4, !tbaa !5
  %24213 = call ptr @strerror(i32 noundef %24212) #12
  %24214 = call ptr @__errno_location() #13
  %24215 = load i32, ptr %24214, align 4, !tbaa !5
  %24216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24203, ptr noundef @.str.4, i32 noundef %24204, ptr noundef @.str.130, ptr noundef @.str.3, i32 noundef 939, ptr noundef %24207, ptr noundef %24210, ptr noundef %24213, i32 noundef %24215) #12
  br label %24234

24217:                                            ; preds = %24195, %24188
  %24218 = load i32, ptr %524, align 4, !tbaa !5
  %24219 = call ptr @__errno_location() #13
  store i32 %24218, ptr %24219, align 4, !tbaa !5
  %24220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24221 = load i32, ptr @test_count, align 4, !tbaa !5
  %24222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24223 = load i32, ptr %24222, align 4, !tbaa !5
  %24224 = call ptr @s2n_strerror(i32 noundef %24223, ptr noundef @.str.6)
  %24225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24226 = load i32, ptr %24225, align 4, !tbaa !5
  %24227 = call ptr @s2n_strerror_debug(i32 noundef %24226, ptr noundef @.str.6)
  %24228 = call ptr @__errno_location() #13
  %24229 = load i32, ptr %24228, align 4, !tbaa !5
  %24230 = call ptr @strerror(i32 noundef %24229) #12
  %24231 = call ptr @__errno_location() #13
  %24232 = load i32, ptr %24231, align 4, !tbaa !5
  %24233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24220, ptr noundef @.str.7, i32 noundef %24221, ptr noundef @.str.130, ptr noundef @.str.3, i32 noundef 939, ptr noundef %24224, ptr noundef %24227, ptr noundef %24230, i32 noundef %24232) #12
  br label %24234

24234:                                            ; preds = %24217, %24200
  call void @llvm.lifetime.end.p0(i64 4, ptr %524) #12
  br label %24235

24235:                                            ; preds = %24234
  br label %24236

24236:                                            ; preds = %24235
  call void @exit(i32 noundef 1) #14
  unreachable

24237:                                            ; No predecessors!
  br label %24238

24238:                                            ; preds = %24237
  br label %24239

24239:                                            ; preds = %24238, %24179
  br label %24240

24240:                                            ; preds = %24239
  br label %24241

24241:                                            ; preds = %24240
  br label %24242

24242:                                            ; preds = %24241
  %24243 = load i32, ptr @test_count, align 4, !tbaa !5
  %24244 = add nsw i32 %24243, 1
  store i32 %24244, ptr @test_count, align 4, !tbaa !5
  %24245 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %24246 = load ptr, ptr %505, align 8, !tbaa !9
  %24247 = call i32 %24245(ptr noundef %24246, ptr noundef %506)
  %24248 = icmp eq i32 %24247, -1
  br i1 %24248, label %24249, label %24302

24249:                                            ; preds = %24242
  br label %24250

24250:                                            ; preds = %24249
  br label %24251

24251:                                            ; preds = %24250
  call void @llvm.lifetime.start.p0(i64 4, ptr %525) #12
  %24252 = call ptr @__errno_location() #13
  %24253 = load i32, ptr %24252, align 4, !tbaa !5
  store i32 %24253, ptr %525, align 4, !tbaa !5
  %24254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24255 = call i32 @s2n_print_stacktrace(ptr noundef %24254)
  %24256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24257 = trunc i8 %24256 to i1
  br i1 %24257, label %24258, label %24280

24258:                                            ; preds = %24251
  %24259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24260 = call i32 @fileno(ptr noundef %24259) #12
  %24261 = call i32 @isatty(i32 noundef %24260) #12
  %24262 = icmp ne i32 %24261, 0
  br i1 %24262, label %24263, label %24280

24263:                                            ; preds = %24258
  %24264 = load i32, ptr %525, align 4, !tbaa !5
  %24265 = call ptr @__errno_location() #13
  store i32 %24264, ptr %24265, align 4, !tbaa !5
  %24266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24267 = load i32, ptr @test_count, align 4, !tbaa !5
  %24268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24269 = load i32, ptr %24268, align 4, !tbaa !5
  %24270 = call ptr @s2n_strerror(i32 noundef %24269, ptr noundef @.str.6)
  %24271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24272 = load i32, ptr %24271, align 4, !tbaa !5
  %24273 = call ptr @s2n_strerror_debug(i32 noundef %24272, ptr noundef @.str.6)
  %24274 = call ptr @__errno_location() #13
  %24275 = load i32, ptr %24274, align 4, !tbaa !5
  %24276 = call ptr @strerror(i32 noundef %24275) #12
  %24277 = call ptr @__errno_location() #13
  %24278 = load i32, ptr %24277, align 4, !tbaa !5
  %24279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24266, ptr noundef @.str.4, i32 noundef %24267, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 941, ptr noundef %24270, ptr noundef %24273, ptr noundef %24276, i32 noundef %24278) #12
  br label %24297

24280:                                            ; preds = %24258, %24251
  %24281 = load i32, ptr %525, align 4, !tbaa !5
  %24282 = call ptr @__errno_location() #13
  store i32 %24281, ptr %24282, align 4, !tbaa !5
  %24283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24284 = load i32, ptr @test_count, align 4, !tbaa !5
  %24285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24286 = load i32, ptr %24285, align 4, !tbaa !5
  %24287 = call ptr @s2n_strerror(i32 noundef %24286, ptr noundef @.str.6)
  %24288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24289 = load i32, ptr %24288, align 4, !tbaa !5
  %24290 = call ptr @s2n_strerror_debug(i32 noundef %24289, ptr noundef @.str.6)
  %24291 = call ptr @__errno_location() #13
  %24292 = load i32, ptr %24291, align 4, !tbaa !5
  %24293 = call ptr @strerror(i32 noundef %24292) #12
  %24294 = call ptr @__errno_location() #13
  %24295 = load i32, ptr %24294, align 4, !tbaa !5
  %24296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24283, ptr noundef @.str.7, i32 noundef %24284, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 941, ptr noundef %24287, ptr noundef %24290, ptr noundef %24293, i32 noundef %24295) #12
  br label %24297

24297:                                            ; preds = %24280, %24263
  call void @llvm.lifetime.end.p0(i64 4, ptr %525) #12
  br label %24298

24298:                                            ; preds = %24297
  br label %24299

24299:                                            ; preds = %24298
  call void @exit(i32 noundef 1) #14
  unreachable

24300:                                            ; No predecessors!
  br label %24301

24301:                                            ; preds = %24300
  br label %24302

24302:                                            ; preds = %24301, %24242
  br label %24303

24303:                                            ; preds = %24302
  br label %24304

24304:                                            ; preds = %24303
  br label %24305

24305:                                            ; preds = %24304
  %24306 = load i32, ptr @test_count, align 4, !tbaa !5
  %24307 = add nsw i32 %24306, 1
  store i32 %24307, ptr @test_count, align 4, !tbaa !5
  %24308 = getelementptr inbounds %struct.s2n_stuffer, ptr %506, i32 0, i32 2
  %24309 = load i32, ptr %24308, align 4, !tbaa !18
  %24310 = getelementptr inbounds %struct.s2n_stuffer, ptr %506, i32 0, i32 1
  %24311 = load i32, ptr %24310, align 8, !tbaa !21
  %24312 = sub i32 %24309, %24311
  %24313 = icmp eq i32 %24312, 0
  br i1 %24313, label %24367, label %24314

24314:                                            ; preds = %24305
  br label %24315

24315:                                            ; preds = %24314
  br label %24316

24316:                                            ; preds = %24315
  call void @llvm.lifetime.start.p0(i64 4, ptr %526) #12
  %24317 = call ptr @__errno_location() #13
  %24318 = load i32, ptr %24317, align 4, !tbaa !5
  store i32 %24318, ptr %526, align 4, !tbaa !5
  %24319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24320 = call i32 @s2n_print_stacktrace(ptr noundef %24319)
  %24321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24322 = trunc i8 %24321 to i1
  br i1 %24322, label %24323, label %24345

24323:                                            ; preds = %24316
  %24324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24325 = call i32 @fileno(ptr noundef %24324) #12
  %24326 = call i32 @isatty(i32 noundef %24325) #12
  %24327 = icmp ne i32 %24326, 0
  br i1 %24327, label %24328, label %24345

24328:                                            ; preds = %24323
  %24329 = load i32, ptr %526, align 4, !tbaa !5
  %24330 = call ptr @__errno_location() #13
  store i32 %24329, ptr %24330, align 4, !tbaa !5
  %24331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24332 = load i32, ptr @test_count, align 4, !tbaa !5
  %24333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24334 = load i32, ptr %24333, align 4, !tbaa !5
  %24335 = call ptr @s2n_strerror(i32 noundef %24334, ptr noundef @.str.6)
  %24336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24337 = load i32, ptr %24336, align 4, !tbaa !5
  %24338 = call ptr @s2n_strerror_debug(i32 noundef %24337, ptr noundef @.str.6)
  %24339 = call ptr @__errno_location() #13
  %24340 = load i32, ptr %24339, align 4, !tbaa !5
  %24341 = call ptr @strerror(i32 noundef %24340) #12
  %24342 = call ptr @__errno_location() #13
  %24343 = load i32, ptr %24342, align 4, !tbaa !5
  %24344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24331, ptr noundef @.str.4, i32 noundef %24332, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 944, ptr noundef %24335, ptr noundef %24338, ptr noundef %24341, i32 noundef %24343) #12
  br label %24362

24345:                                            ; preds = %24323, %24316
  %24346 = load i32, ptr %526, align 4, !tbaa !5
  %24347 = call ptr @__errno_location() #13
  store i32 %24346, ptr %24347, align 4, !tbaa !5
  %24348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24349 = load i32, ptr @test_count, align 4, !tbaa !5
  %24350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24351 = load i32, ptr %24350, align 4, !tbaa !5
  %24352 = call ptr @s2n_strerror(i32 noundef %24351, ptr noundef @.str.6)
  %24353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24354 = load i32, ptr %24353, align 4, !tbaa !5
  %24355 = call ptr @s2n_strerror_debug(i32 noundef %24354, ptr noundef @.str.6)
  %24356 = call ptr @__errno_location() #13
  %24357 = load i32, ptr %24356, align 4, !tbaa !5
  %24358 = call ptr @strerror(i32 noundef %24357) #12
  %24359 = call ptr @__errno_location() #13
  %24360 = load i32, ptr %24359, align 4, !tbaa !5
  %24361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24348, ptr noundef @.str.7, i32 noundef %24349, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 944, ptr noundef %24352, ptr noundef %24355, ptr noundef %24358, i32 noundef %24360) #12
  br label %24362

24362:                                            ; preds = %24345, %24328
  call void @llvm.lifetime.end.p0(i64 4, ptr %526) #12
  br label %24363

24363:                                            ; preds = %24362
  br label %24364

24364:                                            ; preds = %24363
  call void @exit(i32 noundef 1) #14
  unreachable

24365:                                            ; No predecessors!
  br label %24366

24366:                                            ; preds = %24365
  br label %24367

24367:                                            ; preds = %24366, %24305
  br label %24368

24368:                                            ; preds = %24367
  br label %24369

24369:                                            ; preds = %24368
  call void @llvm.lifetime.start.p0(i64 8, ptr %527) #12
  %24370 = load ptr, ptr %505, align 8, !tbaa !9
  %24371 = getelementptr inbounds %struct.s2n_connection, ptr %24370, i32 0, i32 31
  %24372 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %24371, i32 0, i32 3
  store ptr %24372, ptr %527, align 8, !tbaa !9
  br label %24373

24373:                                            ; preds = %24369
  %24374 = load i32, ptr @test_count, align 4, !tbaa !5
  %24375 = add nsw i32 %24374, 1
  store i32 %24375, ptr @test_count, align 4, !tbaa !5
  %24376 = load ptr, ptr %527, align 8, !tbaa !9
  %24377 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %24376, i32 0, i32 0
  %24378 = load ptr, ptr %24377, align 8, !tbaa !22
  %24379 = icmp eq ptr %24378, null
  br i1 %24379, label %24433, label %24380

24380:                                            ; preds = %24373
  br label %24381

24381:                                            ; preds = %24380
  br label %24382

24382:                                            ; preds = %24381
  call void @llvm.lifetime.start.p0(i64 4, ptr %528) #12
  %24383 = call ptr @__errno_location() #13
  %24384 = load i32, ptr %24383, align 4, !tbaa !5
  store i32 %24384, ptr %528, align 4, !tbaa !5
  %24385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24386 = call i32 @s2n_print_stacktrace(ptr noundef %24385)
  %24387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24388 = trunc i8 %24387 to i1
  br i1 %24388, label %24389, label %24411

24389:                                            ; preds = %24382
  %24390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24391 = call i32 @fileno(ptr noundef %24390) #12
  %24392 = call i32 @isatty(i32 noundef %24391) #12
  %24393 = icmp ne i32 %24392, 0
  br i1 %24393, label %24394, label %24411

24394:                                            ; preds = %24389
  %24395 = load i32, ptr %528, align 4, !tbaa !5
  %24396 = call ptr @__errno_location() #13
  store i32 %24395, ptr %24396, align 4, !tbaa !5
  %24397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24398 = load i32, ptr @test_count, align 4, !tbaa !5
  %24399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24400 = load i32, ptr %24399, align 4, !tbaa !5
  %24401 = call ptr @s2n_strerror(i32 noundef %24400, ptr noundef @.str.6)
  %24402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24403 = load i32, ptr %24402, align 4, !tbaa !5
  %24404 = call ptr @s2n_strerror_debug(i32 noundef %24403, ptr noundef @.str.6)
  %24405 = call ptr @__errno_location() #13
  %24406 = load i32, ptr %24405, align 4, !tbaa !5
  %24407 = call ptr @strerror(i32 noundef %24406) #12
  %24408 = call ptr @__errno_location() #13
  %24409 = load i32, ptr %24408, align 4, !tbaa !5
  %24410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24397, ptr noundef @.str.4, i32 noundef %24398, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 948, ptr noundef %24401, ptr noundef %24404, ptr noundef %24407, i32 noundef %24409) #12
  br label %24428

24411:                                            ; preds = %24389, %24382
  %24412 = load i32, ptr %528, align 4, !tbaa !5
  %24413 = call ptr @__errno_location() #13
  store i32 %24412, ptr %24413, align 4, !tbaa !5
  %24414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24415 = load i32, ptr @test_count, align 4, !tbaa !5
  %24416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24417 = load i32, ptr %24416, align 4, !tbaa !5
  %24418 = call ptr @s2n_strerror(i32 noundef %24417, ptr noundef @.str.6)
  %24419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24420 = load i32, ptr %24419, align 4, !tbaa !5
  %24421 = call ptr @s2n_strerror_debug(i32 noundef %24420, ptr noundef @.str.6)
  %24422 = call ptr @__errno_location() #13
  %24423 = load i32, ptr %24422, align 4, !tbaa !5
  %24424 = call ptr @strerror(i32 noundef %24423) #12
  %24425 = call ptr @__errno_location() #13
  %24426 = load i32, ptr %24425, align 4, !tbaa !5
  %24427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24414, ptr noundef @.str.7, i32 noundef %24415, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 948, ptr noundef %24418, ptr noundef %24421, ptr noundef %24424, i32 noundef %24426) #12
  br label %24428

24428:                                            ; preds = %24411, %24394
  call void @llvm.lifetime.end.p0(i64 4, ptr %528) #12
  br label %24429

24429:                                            ; preds = %24428
  br label %24430

24430:                                            ; preds = %24429
  call void @exit(i32 noundef 1) #14
  unreachable

24431:                                            ; No predecessors!
  br label %24432

24432:                                            ; preds = %24431
  br label %24433

24433:                                            ; preds = %24432, %24373
  br label %24434

24434:                                            ; preds = %24433
  br label %24435

24435:                                            ; preds = %24434
  br label %24436

24436:                                            ; preds = %24435
  %24437 = load i32, ptr @test_count, align 4, !tbaa !5
  %24438 = add nsw i32 %24437, 1
  store i32 %24438, ptr @test_count, align 4, !tbaa !5
  %24439 = load ptr, ptr %527, align 8, !tbaa !9
  %24440 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %24439, i32 0, i32 1
  %24441 = load ptr, ptr %24440, align 8, !tbaa !26
  %24442 = icmp eq ptr %24441, null
  br i1 %24442, label %24496, label %24443

24443:                                            ; preds = %24436
  br label %24444

24444:                                            ; preds = %24443
  br label %24445

24445:                                            ; preds = %24444
  call void @llvm.lifetime.start.p0(i64 4, ptr %529) #12
  %24446 = call ptr @__errno_location() #13
  %24447 = load i32, ptr %24446, align 4, !tbaa !5
  store i32 %24447, ptr %529, align 4, !tbaa !5
  %24448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24449 = call i32 @s2n_print_stacktrace(ptr noundef %24448)
  %24450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24451 = trunc i8 %24450 to i1
  br i1 %24451, label %24452, label %24474

24452:                                            ; preds = %24445
  %24453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24454 = call i32 @fileno(ptr noundef %24453) #12
  %24455 = call i32 @isatty(i32 noundef %24454) #12
  %24456 = icmp ne i32 %24455, 0
  br i1 %24456, label %24457, label %24474

24457:                                            ; preds = %24452
  %24458 = load i32, ptr %529, align 4, !tbaa !5
  %24459 = call ptr @__errno_location() #13
  store i32 %24458, ptr %24459, align 4, !tbaa !5
  %24460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24461 = load i32, ptr @test_count, align 4, !tbaa !5
  %24462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24463 = load i32, ptr %24462, align 4, !tbaa !5
  %24464 = call ptr @s2n_strerror(i32 noundef %24463, ptr noundef @.str.6)
  %24465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24466 = load i32, ptr %24465, align 4, !tbaa !5
  %24467 = call ptr @s2n_strerror_debug(i32 noundef %24466, ptr noundef @.str.6)
  %24468 = call ptr @__errno_location() #13
  %24469 = load i32, ptr %24468, align 4, !tbaa !5
  %24470 = call ptr @strerror(i32 noundef %24469) #12
  %24471 = call ptr @__errno_location() #13
  %24472 = load i32, ptr %24471, align 4, !tbaa !5
  %24473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24460, ptr noundef @.str.4, i32 noundef %24461, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 949, ptr noundef %24464, ptr noundef %24467, ptr noundef %24470, i32 noundef %24472) #12
  br label %24491

24474:                                            ; preds = %24452, %24445
  %24475 = load i32, ptr %529, align 4, !tbaa !5
  %24476 = call ptr @__errno_location() #13
  store i32 %24475, ptr %24476, align 4, !tbaa !5
  %24477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24478 = load i32, ptr @test_count, align 4, !tbaa !5
  %24479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24480 = load i32, ptr %24479, align 4, !tbaa !5
  %24481 = call ptr @s2n_strerror(i32 noundef %24480, ptr noundef @.str.6)
  %24482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24483 = load i32, ptr %24482, align 4, !tbaa !5
  %24484 = call ptr @s2n_strerror_debug(i32 noundef %24483, ptr noundef @.str.6)
  %24485 = call ptr @__errno_location() #13
  %24486 = load i32, ptr %24485, align 4, !tbaa !5
  %24487 = call ptr @strerror(i32 noundef %24486) #12
  %24488 = call ptr @__errno_location() #13
  %24489 = load i32, ptr %24488, align 4, !tbaa !5
  %24490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24477, ptr noundef @.str.7, i32 noundef %24478, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 949, ptr noundef %24481, ptr noundef %24484, ptr noundef %24487, i32 noundef %24489) #12
  br label %24491

24491:                                            ; preds = %24474, %24457
  call void @llvm.lifetime.end.p0(i64 4, ptr %529) #12
  br label %24492

24492:                                            ; preds = %24491
  br label %24493

24493:                                            ; preds = %24492
  call void @exit(i32 noundef 1) #14
  unreachable

24494:                                            ; No predecessors!
  br label %24495

24495:                                            ; preds = %24494
  br label %24496

24496:                                            ; preds = %24495, %24436
  br label %24497

24497:                                            ; preds = %24496
  br label %24498

24498:                                            ; preds = %24497
  br label %24499

24499:                                            ; preds = %24498
  %24500 = load i32, ptr @test_count, align 4, !tbaa !5
  %24501 = add nsw i32 %24500, 1
  store i32 %24501, ptr @test_count, align 4, !tbaa !5
  %24502 = call i32 @s2n_stuffer_free(ptr noundef %506)
  %24503 = icmp eq i32 %24502, -1
  br i1 %24503, label %24504, label %24557

24504:                                            ; preds = %24499
  br label %24505

24505:                                            ; preds = %24504
  br label %24506

24506:                                            ; preds = %24505
  call void @llvm.lifetime.start.p0(i64 4, ptr %530) #12
  %24507 = call ptr @__errno_location() #13
  %24508 = load i32, ptr %24507, align 4, !tbaa !5
  store i32 %24508, ptr %530, align 4, !tbaa !5
  %24509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24510 = call i32 @s2n_print_stacktrace(ptr noundef %24509)
  %24511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24512 = trunc i8 %24511 to i1
  br i1 %24512, label %24513, label %24535

24513:                                            ; preds = %24506
  %24514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24515 = call i32 @fileno(ptr noundef %24514) #12
  %24516 = call i32 @isatty(i32 noundef %24515) #12
  %24517 = icmp ne i32 %24516, 0
  br i1 %24517, label %24518, label %24535

24518:                                            ; preds = %24513
  %24519 = load i32, ptr %530, align 4, !tbaa !5
  %24520 = call ptr @__errno_location() #13
  store i32 %24519, ptr %24520, align 4, !tbaa !5
  %24521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24522 = load i32, ptr @test_count, align 4, !tbaa !5
  %24523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24524 = load i32, ptr %24523, align 4, !tbaa !5
  %24525 = call ptr @s2n_strerror(i32 noundef %24524, ptr noundef @.str.6)
  %24526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24527 = load i32, ptr %24526, align 4, !tbaa !5
  %24528 = call ptr @s2n_strerror_debug(i32 noundef %24527, ptr noundef @.str.6)
  %24529 = call ptr @__errno_location() #13
  %24530 = load i32, ptr %24529, align 4, !tbaa !5
  %24531 = call ptr @strerror(i32 noundef %24530) #12
  %24532 = call ptr @__errno_location() #13
  %24533 = load i32, ptr %24532, align 4, !tbaa !5
  %24534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24521, ptr noundef @.str.4, i32 noundef %24522, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 951, ptr noundef %24525, ptr noundef %24528, ptr noundef %24531, i32 noundef %24533) #12
  br label %24552

24535:                                            ; preds = %24513, %24506
  %24536 = load i32, ptr %530, align 4, !tbaa !5
  %24537 = call ptr @__errno_location() #13
  store i32 %24536, ptr %24537, align 4, !tbaa !5
  %24538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24539 = load i32, ptr @test_count, align 4, !tbaa !5
  %24540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24541 = load i32, ptr %24540, align 4, !tbaa !5
  %24542 = call ptr @s2n_strerror(i32 noundef %24541, ptr noundef @.str.6)
  %24543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24544 = load i32, ptr %24543, align 4, !tbaa !5
  %24545 = call ptr @s2n_strerror_debug(i32 noundef %24544, ptr noundef @.str.6)
  %24546 = call ptr @__errno_location() #13
  %24547 = load i32, ptr %24546, align 4, !tbaa !5
  %24548 = call ptr @strerror(i32 noundef %24547) #12
  %24549 = call ptr @__errno_location() #13
  %24550 = load i32, ptr %24549, align 4, !tbaa !5
  %24551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24538, ptr noundef @.str.7, i32 noundef %24539, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 951, ptr noundef %24542, ptr noundef %24545, ptr noundef %24548, i32 noundef %24550) #12
  br label %24552

24552:                                            ; preds = %24535, %24518
  call void @llvm.lifetime.end.p0(i64 4, ptr %530) #12
  br label %24553

24553:                                            ; preds = %24552
  br label %24554

24554:                                            ; preds = %24553
  call void @exit(i32 noundef 1) #14
  unreachable

24555:                                            ; No predecessors!
  br label %24556

24556:                                            ; preds = %24555
  br label %24557

24557:                                            ; preds = %24556, %24499
  br label %24558

24558:                                            ; preds = %24557
  br label %24559

24559:                                            ; preds = %24558
  br label %24560

24560:                                            ; preds = %24559
  %24561 = load i32, ptr @test_count, align 4, !tbaa !5
  %24562 = add nsw i32 %24561, 1
  store i32 %24562, ptr @test_count, align 4, !tbaa !5
  %24563 = load ptr, ptr %505, align 8, !tbaa !9
  %24564 = call i32 @s2n_connection_free(ptr noundef %24563)
  %24565 = icmp eq i32 %24564, -1
  br i1 %24565, label %24566, label %24619

24566:                                            ; preds = %24560
  br label %24567

24567:                                            ; preds = %24566
  br label %24568

24568:                                            ; preds = %24567
  call void @llvm.lifetime.start.p0(i64 4, ptr %531) #12
  %24569 = call ptr @__errno_location() #13
  %24570 = load i32, ptr %24569, align 4, !tbaa !5
  store i32 %24570, ptr %531, align 4, !tbaa !5
  %24571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24572 = call i32 @s2n_print_stacktrace(ptr noundef %24571)
  %24573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24574 = trunc i8 %24573 to i1
  br i1 %24574, label %24575, label %24597

24575:                                            ; preds = %24568
  %24576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24577 = call i32 @fileno(ptr noundef %24576) #12
  %24578 = call i32 @isatty(i32 noundef %24577) #12
  %24579 = icmp ne i32 %24578, 0
  br i1 %24579, label %24580, label %24597

24580:                                            ; preds = %24575
  %24581 = load i32, ptr %531, align 4, !tbaa !5
  %24582 = call ptr @__errno_location() #13
  store i32 %24581, ptr %24582, align 4, !tbaa !5
  %24583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24584 = load i32, ptr @test_count, align 4, !tbaa !5
  %24585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24586 = load i32, ptr %24585, align 4, !tbaa !5
  %24587 = call ptr @s2n_strerror(i32 noundef %24586, ptr noundef @.str.6)
  %24588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24589 = load i32, ptr %24588, align 4, !tbaa !5
  %24590 = call ptr @s2n_strerror_debug(i32 noundef %24589, ptr noundef @.str.6)
  %24591 = call ptr @__errno_location() #13
  %24592 = load i32, ptr %24591, align 4, !tbaa !5
  %24593 = call ptr @strerror(i32 noundef %24592) #12
  %24594 = call ptr @__errno_location() #13
  %24595 = load i32, ptr %24594, align 4, !tbaa !5
  %24596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24583, ptr noundef @.str.4, i32 noundef %24584, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 952, ptr noundef %24587, ptr noundef %24590, ptr noundef %24593, i32 noundef %24595) #12
  br label %24614

24597:                                            ; preds = %24575, %24568
  %24598 = load i32, ptr %531, align 4, !tbaa !5
  %24599 = call ptr @__errno_location() #13
  store i32 %24598, ptr %24599, align 4, !tbaa !5
  %24600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24601 = load i32, ptr @test_count, align 4, !tbaa !5
  %24602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24603 = load i32, ptr %24602, align 4, !tbaa !5
  %24604 = call ptr @s2n_strerror(i32 noundef %24603, ptr noundef @.str.6)
  %24605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24606 = load i32, ptr %24605, align 4, !tbaa !5
  %24607 = call ptr @s2n_strerror_debug(i32 noundef %24606, ptr noundef @.str.6)
  %24608 = call ptr @__errno_location() #13
  %24609 = load i32, ptr %24608, align 4, !tbaa !5
  %24610 = call ptr @strerror(i32 noundef %24609) #12
  %24611 = call ptr @__errno_location() #13
  %24612 = load i32, ptr %24611, align 4, !tbaa !5
  %24613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24600, ptr noundef @.str.7, i32 noundef %24601, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 952, ptr noundef %24604, ptr noundef %24607, ptr noundef %24610, i32 noundef %24612) #12
  br label %24614

24614:                                            ; preds = %24597, %24580
  call void @llvm.lifetime.end.p0(i64 4, ptr %531) #12
  br label %24615

24615:                                            ; preds = %24614
  br label %24616

24616:                                            ; preds = %24615
  call void @exit(i32 noundef 1) #14
  unreachable

24617:                                            ; No predecessors!
  br label %24618

24618:                                            ; preds = %24617
  br label %24619

24619:                                            ; preds = %24618, %24560
  br label %24620

24620:                                            ; preds = %24619
  br label %24621

24621:                                            ; preds = %24620
  br label %24622

24622:                                            ; preds = %24621
  %24623 = load i32, ptr @test_count, align 4, !tbaa !5
  %24624 = add nsw i32 %24623, 1
  store i32 %24624, ptr @test_count, align 4, !tbaa !5
  %24625 = load ptr, ptr %507, align 8, !tbaa !9
  %24626 = call i32 @s2n_config_free(ptr noundef %24625)
  %24627 = icmp eq i32 %24626, -1
  br i1 %24627, label %24628, label %24681

24628:                                            ; preds = %24622
  br label %24629

24629:                                            ; preds = %24628
  br label %24630

24630:                                            ; preds = %24629
  call void @llvm.lifetime.start.p0(i64 4, ptr %532) #12
  %24631 = call ptr @__errno_location() #13
  %24632 = load i32, ptr %24631, align 4, !tbaa !5
  store i32 %24632, ptr %532, align 4, !tbaa !5
  %24633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24634 = call i32 @s2n_print_stacktrace(ptr noundef %24633)
  %24635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24636 = trunc i8 %24635 to i1
  br i1 %24636, label %24637, label %24659

24637:                                            ; preds = %24630
  %24638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24639 = call i32 @fileno(ptr noundef %24638) #12
  %24640 = call i32 @isatty(i32 noundef %24639) #12
  %24641 = icmp ne i32 %24640, 0
  br i1 %24641, label %24642, label %24659

24642:                                            ; preds = %24637
  %24643 = load i32, ptr %532, align 4, !tbaa !5
  %24644 = call ptr @__errno_location() #13
  store i32 %24643, ptr %24644, align 4, !tbaa !5
  %24645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24646 = load i32, ptr @test_count, align 4, !tbaa !5
  %24647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24648 = load i32, ptr %24647, align 4, !tbaa !5
  %24649 = call ptr @s2n_strerror(i32 noundef %24648, ptr noundef @.str.6)
  %24650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24651 = load i32, ptr %24650, align 4, !tbaa !5
  %24652 = call ptr @s2n_strerror_debug(i32 noundef %24651, ptr noundef @.str.6)
  %24653 = call ptr @__errno_location() #13
  %24654 = load i32, ptr %24653, align 4, !tbaa !5
  %24655 = call ptr @strerror(i32 noundef %24654) #12
  %24656 = call ptr @__errno_location() #13
  %24657 = load i32, ptr %24656, align 4, !tbaa !5
  %24658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24645, ptr noundef @.str.4, i32 noundef %24646, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 953, ptr noundef %24649, ptr noundef %24652, ptr noundef %24655, i32 noundef %24657) #12
  br label %24676

24659:                                            ; preds = %24637, %24630
  %24660 = load i32, ptr %532, align 4, !tbaa !5
  %24661 = call ptr @__errno_location() #13
  store i32 %24660, ptr %24661, align 4, !tbaa !5
  %24662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24663 = load i32, ptr @test_count, align 4, !tbaa !5
  %24664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24665 = load i32, ptr %24664, align 4, !tbaa !5
  %24666 = call ptr @s2n_strerror(i32 noundef %24665, ptr noundef @.str.6)
  %24667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24668 = load i32, ptr %24667, align 4, !tbaa !5
  %24669 = call ptr @s2n_strerror_debug(i32 noundef %24668, ptr noundef @.str.6)
  %24670 = call ptr @__errno_location() #13
  %24671 = load i32, ptr %24670, align 4, !tbaa !5
  %24672 = call ptr @strerror(i32 noundef %24671) #12
  %24673 = call ptr @__errno_location() #13
  %24674 = load i32, ptr %24673, align 4, !tbaa !5
  %24675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24662, ptr noundef @.str.7, i32 noundef %24663, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 953, ptr noundef %24666, ptr noundef %24669, ptr noundef %24672, i32 noundef %24674) #12
  br label %24676

24676:                                            ; preds = %24659, %24642
  call void @llvm.lifetime.end.p0(i64 4, ptr %532) #12
  br label %24677

24677:                                            ; preds = %24676
  br label %24678

24678:                                            ; preds = %24677
  call void @exit(i32 noundef 1) #14
  unreachable

24679:                                            ; No predecessors!
  br label %24680

24680:                                            ; preds = %24679
  br label %24681

24681:                                            ; preds = %24680, %24622
  br label %24682

24682:                                            ; preds = %24681
  br label %24683

24683:                                            ; preds = %24682
  call void @llvm.lifetime.end.p0(i64 8, ptr %527) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %522) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %516) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %507) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %506) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %505) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %533) #12
  store ptr null, ptr %533, align 8, !tbaa !9
  br label %24684

24684:                                            ; preds = %24683
  %24685 = load i32, ptr @test_count, align 4, !tbaa !5
  %24686 = add nsw i32 %24685, 1
  store i32 %24686, ptr @test_count, align 4, !tbaa !5
  %24687 = call ptr @s2n_config_new()
  store ptr %24687, ptr %533, align 8, !tbaa !9
  %24688 = icmp eq ptr %24687, null
  br i1 %24688, label %24689, label %24742

24689:                                            ; preds = %24684
  br label %24690

24690:                                            ; preds = %24689
  br label %24691

24691:                                            ; preds = %24690
  call void @llvm.lifetime.start.p0(i64 4, ptr %534) #12
  %24692 = call ptr @__errno_location() #13
  %24693 = load i32, ptr %24692, align 4, !tbaa !5
  store i32 %24693, ptr %534, align 4, !tbaa !5
  %24694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24695 = call i32 @s2n_print_stacktrace(ptr noundef %24694)
  %24696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24697 = trunc i8 %24696 to i1
  br i1 %24697, label %24698, label %24720

24698:                                            ; preds = %24691
  %24699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24700 = call i32 @fileno(ptr noundef %24699) #12
  %24701 = call i32 @isatty(i32 noundef %24700) #12
  %24702 = icmp ne i32 %24701, 0
  br i1 %24702, label %24703, label %24720

24703:                                            ; preds = %24698
  %24704 = load i32, ptr %534, align 4, !tbaa !5
  %24705 = call ptr @__errno_location() #13
  store i32 %24704, ptr %24705, align 4, !tbaa !5
  %24706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24707 = load i32, ptr @test_count, align 4, !tbaa !5
  %24708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24709 = load i32, ptr %24708, align 4, !tbaa !5
  %24710 = call ptr @s2n_strerror(i32 noundef %24709, ptr noundef @.str.6)
  %24711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24712 = load i32, ptr %24711, align 4, !tbaa !5
  %24713 = call ptr @s2n_strerror_debug(i32 noundef %24712, ptr noundef @.str.6)
  %24714 = call ptr @__errno_location() #13
  %24715 = load i32, ptr %24714, align 4, !tbaa !5
  %24716 = call ptr @strerror(i32 noundef %24715) #12
  %24717 = call ptr @__errno_location() #13
  %24718 = load i32, ptr %24717, align 4, !tbaa !5
  %24719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24706, ptr noundef @.str.4, i32 noundef %24707, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 960, ptr noundef %24710, ptr noundef %24713, ptr noundef %24716, i32 noundef %24718) #12
  br label %24737

24720:                                            ; preds = %24698, %24691
  %24721 = load i32, ptr %534, align 4, !tbaa !5
  %24722 = call ptr @__errno_location() #13
  store i32 %24721, ptr %24722, align 4, !tbaa !5
  %24723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24724 = load i32, ptr @test_count, align 4, !tbaa !5
  %24725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24726 = load i32, ptr %24725, align 4, !tbaa !5
  %24727 = call ptr @s2n_strerror(i32 noundef %24726, ptr noundef @.str.6)
  %24728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24729 = load i32, ptr %24728, align 4, !tbaa !5
  %24730 = call ptr @s2n_strerror_debug(i32 noundef %24729, ptr noundef @.str.6)
  %24731 = call ptr @__errno_location() #13
  %24732 = load i32, ptr %24731, align 4, !tbaa !5
  %24733 = call ptr @strerror(i32 noundef %24732) #12
  %24734 = call ptr @__errno_location() #13
  %24735 = load i32, ptr %24734, align 4, !tbaa !5
  %24736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24723, ptr noundef @.str.7, i32 noundef %24724, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 960, ptr noundef %24727, ptr noundef %24730, ptr noundef %24733, i32 noundef %24735) #12
  br label %24737

24737:                                            ; preds = %24720, %24703
  call void @llvm.lifetime.end.p0(i64 4, ptr %534) #12
  br label %24738

24738:                                            ; preds = %24737
  br label %24739

24739:                                            ; preds = %24738
  call void @exit(i32 noundef 1) #14
  unreachable

24740:                                            ; No predecessors!
  br label %24741

24741:                                            ; preds = %24740
  br label %24742

24742:                                            ; preds = %24741, %24684
  br label %24743

24743:                                            ; preds = %24742
  br label %24744

24744:                                            ; preds = %24743
  br label %24745

24745:                                            ; preds = %24744
  %24746 = load i32, ptr @test_count, align 4, !tbaa !5
  %24747 = add nsw i32 %24746, 1
  store i32 %24747, ptr @test_count, align 4, !tbaa !5
  %24748 = load ptr, ptr %533, align 8, !tbaa !9
  %24749 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %24748, ptr noundef @.str.34)
  %24750 = icmp eq i32 %24749, -1
  br i1 %24750, label %24751, label %24804

24751:                                            ; preds = %24745
  br label %24752

24752:                                            ; preds = %24751
  br label %24753

24753:                                            ; preds = %24752
  call void @llvm.lifetime.start.p0(i64 4, ptr %535) #12
  %24754 = call ptr @__errno_location() #13
  %24755 = load i32, ptr %24754, align 4, !tbaa !5
  store i32 %24755, ptr %535, align 4, !tbaa !5
  %24756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24757 = call i32 @s2n_print_stacktrace(ptr noundef %24756)
  %24758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24759 = trunc i8 %24758 to i1
  br i1 %24759, label %24760, label %24782

24760:                                            ; preds = %24753
  %24761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24762 = call i32 @fileno(ptr noundef %24761) #12
  %24763 = call i32 @isatty(i32 noundef %24762) #12
  %24764 = icmp ne i32 %24763, 0
  br i1 %24764, label %24765, label %24782

24765:                                            ; preds = %24760
  %24766 = load i32, ptr %535, align 4, !tbaa !5
  %24767 = call ptr @__errno_location() #13
  store i32 %24766, ptr %24767, align 4, !tbaa !5
  %24768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24769 = load i32, ptr @test_count, align 4, !tbaa !5
  %24770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24771 = load i32, ptr %24770, align 4, !tbaa !5
  %24772 = call ptr @s2n_strerror(i32 noundef %24771, ptr noundef @.str.6)
  %24773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24774 = load i32, ptr %24773, align 4, !tbaa !5
  %24775 = call ptr @s2n_strerror_debug(i32 noundef %24774, ptr noundef @.str.6)
  %24776 = call ptr @__errno_location() #13
  %24777 = load i32, ptr %24776, align 4, !tbaa !5
  %24778 = call ptr @strerror(i32 noundef %24777) #12
  %24779 = call ptr @__errno_location() #13
  %24780 = load i32, ptr %24779, align 4, !tbaa !5
  %24781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24768, ptr noundef @.str.4, i32 noundef %24769, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 962, ptr noundef %24772, ptr noundef %24775, ptr noundef %24778, i32 noundef %24780) #12
  br label %24799

24782:                                            ; preds = %24760, %24753
  %24783 = load i32, ptr %535, align 4, !tbaa !5
  %24784 = call ptr @__errno_location() #13
  store i32 %24783, ptr %24784, align 4, !tbaa !5
  %24785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24786 = load i32, ptr @test_count, align 4, !tbaa !5
  %24787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24788 = load i32, ptr %24787, align 4, !tbaa !5
  %24789 = call ptr @s2n_strerror(i32 noundef %24788, ptr noundef @.str.6)
  %24790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24791 = load i32, ptr %24790, align 4, !tbaa !5
  %24792 = call ptr @s2n_strerror_debug(i32 noundef %24791, ptr noundef @.str.6)
  %24793 = call ptr @__errno_location() #13
  %24794 = load i32, ptr %24793, align 4, !tbaa !5
  %24795 = call ptr @strerror(i32 noundef %24794) #12
  %24796 = call ptr @__errno_location() #13
  %24797 = load i32, ptr %24796, align 4, !tbaa !5
  %24798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24785, ptr noundef @.str.7, i32 noundef %24786, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 962, ptr noundef %24789, ptr noundef %24792, ptr noundef %24795, i32 noundef %24797) #12
  br label %24799

24799:                                            ; preds = %24782, %24765
  call void @llvm.lifetime.end.p0(i64 4, ptr %535) #12
  br label %24800

24800:                                            ; preds = %24799
  br label %24801

24801:                                            ; preds = %24800
  call void @exit(i32 noundef 1) #14
  unreachable

24802:                                            ; No predecessors!
  br label %24803

24803:                                            ; preds = %24802
  br label %24804

24804:                                            ; preds = %24803, %24745
  br label %24805

24805:                                            ; preds = %24804
  br label %24806

24806:                                            ; preds = %24805
  call void @llvm.lifetime.start.p0(i64 8, ptr %536) #12
  %24807 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %24807, ptr %536, align 8, !tbaa !9
  br label %24808

24808:                                            ; preds = %24806
  %24809 = load i32, ptr @test_count, align 4, !tbaa !5
  %24810 = add nsw i32 %24809, 1
  store i32 %24810, ptr @test_count, align 4, !tbaa !5
  %24811 = load ptr, ptr %536, align 8, !tbaa !9
  %24812 = icmp eq ptr %24811, null
  br i1 %24812, label %24813, label %24866

24813:                                            ; preds = %24808
  br label %24814

24814:                                            ; preds = %24813
  br label %24815

24815:                                            ; preds = %24814
  call void @llvm.lifetime.start.p0(i64 4, ptr %537) #12
  %24816 = call ptr @__errno_location() #13
  %24817 = load i32, ptr %24816, align 4, !tbaa !5
  store i32 %24817, ptr %537, align 4, !tbaa !5
  %24818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24819 = call i32 @s2n_print_stacktrace(ptr noundef %24818)
  %24820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24821 = trunc i8 %24820 to i1
  br i1 %24821, label %24822, label %24844

24822:                                            ; preds = %24815
  %24823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24824 = call i32 @fileno(ptr noundef %24823) #12
  %24825 = call i32 @isatty(i32 noundef %24824) #12
  %24826 = icmp ne i32 %24825, 0
  br i1 %24826, label %24827, label %24844

24827:                                            ; preds = %24822
  %24828 = load i32, ptr %537, align 4, !tbaa !5
  %24829 = call ptr @__errno_location() #13
  store i32 %24828, ptr %24829, align 4, !tbaa !5
  %24830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24831 = load i32, ptr @test_count, align 4, !tbaa !5
  %24832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24833 = load i32, ptr %24832, align 4, !tbaa !5
  %24834 = call ptr @s2n_strerror(i32 noundef %24833, ptr noundef @.str.6)
  %24835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24836 = load i32, ptr %24835, align 4, !tbaa !5
  %24837 = call ptr @s2n_strerror_debug(i32 noundef %24836, ptr noundef @.str.6)
  %24838 = call ptr @__errno_location() #13
  %24839 = load i32, ptr %24838, align 4, !tbaa !5
  %24840 = call ptr @strerror(i32 noundef %24839) #12
  %24841 = call ptr @__errno_location() #13
  %24842 = load i32, ptr %24841, align 4, !tbaa !5
  %24843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24830, ptr noundef @.str.4, i32 noundef %24831, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 965, ptr noundef %24834, ptr noundef %24837, ptr noundef %24840, i32 noundef %24842) #12
  br label %24861

24844:                                            ; preds = %24822, %24815
  %24845 = load i32, ptr %537, align 4, !tbaa !5
  %24846 = call ptr @__errno_location() #13
  store i32 %24845, ptr %24846, align 4, !tbaa !5
  %24847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24848 = load i32, ptr @test_count, align 4, !tbaa !5
  %24849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24850 = load i32, ptr %24849, align 4, !tbaa !5
  %24851 = call ptr @s2n_strerror(i32 noundef %24850, ptr noundef @.str.6)
  %24852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24853 = load i32, ptr %24852, align 4, !tbaa !5
  %24854 = call ptr @s2n_strerror_debug(i32 noundef %24853, ptr noundef @.str.6)
  %24855 = call ptr @__errno_location() #13
  %24856 = load i32, ptr %24855, align 4, !tbaa !5
  %24857 = call ptr @strerror(i32 noundef %24856) #12
  %24858 = call ptr @__errno_location() #13
  %24859 = load i32, ptr %24858, align 4, !tbaa !5
  %24860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24847, ptr noundef @.str.7, i32 noundef %24848, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 965, ptr noundef %24851, ptr noundef %24854, ptr noundef %24857, i32 noundef %24859) #12
  br label %24861

24861:                                            ; preds = %24844, %24827
  call void @llvm.lifetime.end.p0(i64 4, ptr %537) #12
  br label %24862

24862:                                            ; preds = %24861
  br label %24863

24863:                                            ; preds = %24862
  call void @exit(i32 noundef 1) #14
  unreachable

24864:                                            ; No predecessors!
  br label %24865

24865:                                            ; preds = %24864
  br label %24866

24866:                                            ; preds = %24865, %24808
  br label %24867

24867:                                            ; preds = %24866
  br label %24868

24868:                                            ; preds = %24867
  br label %24869

24869:                                            ; preds = %24868
  %24870 = load i32, ptr @test_count, align 4, !tbaa !5
  %24871 = add nsw i32 %24870, 1
  store i32 %24871, ptr @test_count, align 4, !tbaa !5
  %24872 = load ptr, ptr %536, align 8, !tbaa !9
  %24873 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %24872, i8 noundef zeroext 34)
  %24874 = icmp eq i32 %24873, -1
  br i1 %24874, label %24875, label %24928

24875:                                            ; preds = %24869
  br label %24876

24876:                                            ; preds = %24875
  br label %24877

24877:                                            ; preds = %24876
  call void @llvm.lifetime.start.p0(i64 4, ptr %538) #12
  %24878 = call ptr @__errno_location() #13
  %24879 = load i32, ptr %24878, align 4, !tbaa !5
  store i32 %24879, ptr %538, align 4, !tbaa !5
  %24880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24881 = call i32 @s2n_print_stacktrace(ptr noundef %24880)
  %24882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24883 = trunc i8 %24882 to i1
  br i1 %24883, label %24884, label %24906

24884:                                            ; preds = %24877
  %24885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24886 = call i32 @fileno(ptr noundef %24885) #12
  %24887 = call i32 @isatty(i32 noundef %24886) #12
  %24888 = icmp ne i32 %24887, 0
  br i1 %24888, label %24889, label %24906

24889:                                            ; preds = %24884
  %24890 = load i32, ptr %538, align 4, !tbaa !5
  %24891 = call ptr @__errno_location() #13
  store i32 %24890, ptr %24891, align 4, !tbaa !5
  %24892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24893 = load i32, ptr @test_count, align 4, !tbaa !5
  %24894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24895 = load i32, ptr %24894, align 4, !tbaa !5
  %24896 = call ptr @s2n_strerror(i32 noundef %24895, ptr noundef @.str.6)
  %24897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24898 = load i32, ptr %24897, align 4, !tbaa !5
  %24899 = call ptr @s2n_strerror_debug(i32 noundef %24898, ptr noundef @.str.6)
  %24900 = call ptr @__errno_location() #13
  %24901 = load i32, ptr %24900, align 4, !tbaa !5
  %24902 = call ptr @strerror(i32 noundef %24901) #12
  %24903 = call ptr @__errno_location() #13
  %24904 = load i32, ptr %24903, align 4, !tbaa !5
  %24905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24892, ptr noundef @.str.4, i32 noundef %24893, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 966, ptr noundef %24896, ptr noundef %24899, ptr noundef %24902, i32 noundef %24904) #12
  br label %24923

24906:                                            ; preds = %24884, %24877
  %24907 = load i32, ptr %538, align 4, !tbaa !5
  %24908 = call ptr @__errno_location() #13
  store i32 %24907, ptr %24908, align 4, !tbaa !5
  %24909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24910 = load i32, ptr @test_count, align 4, !tbaa !5
  %24911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24912 = load i32, ptr %24911, align 4, !tbaa !5
  %24913 = call ptr @s2n_strerror(i32 noundef %24912, ptr noundef @.str.6)
  %24914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24915 = load i32, ptr %24914, align 4, !tbaa !5
  %24916 = call ptr @s2n_strerror_debug(i32 noundef %24915, ptr noundef @.str.6)
  %24917 = call ptr @__errno_location() #13
  %24918 = load i32, ptr %24917, align 4, !tbaa !5
  %24919 = call ptr @strerror(i32 noundef %24918) #12
  %24920 = call ptr @__errno_location() #13
  %24921 = load i32, ptr %24920, align 4, !tbaa !5
  %24922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24909, ptr noundef @.str.7, i32 noundef %24910, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 966, ptr noundef %24913, ptr noundef %24916, ptr noundef %24919, i32 noundef %24921) #12
  br label %24923

24923:                                            ; preds = %24906, %24889
  call void @llvm.lifetime.end.p0(i64 4, ptr %538) #12
  br label %24924

24924:                                            ; preds = %24923
  br label %24925

24925:                                            ; preds = %24924
  call void @exit(i32 noundef 1) #14
  unreachable

24926:                                            ; No predecessors!
  br label %24927

24927:                                            ; preds = %24926
  br label %24928

24928:                                            ; preds = %24927, %24869
  br label %24929

24929:                                            ; preds = %24928
  br label %24930

24930:                                            ; preds = %24929
  br label %24931

24931:                                            ; preds = %24930
  %24932 = load i32, ptr @test_count, align 4, !tbaa !5
  %24933 = add nsw i32 %24932, 1
  store i32 %24933, ptr @test_count, align 4, !tbaa !5
  %24934 = load ptr, ptr %536, align 8, !tbaa !9
  %24935 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %24934)
  %24936 = getelementptr inbounds %struct.s2n_result, ptr %539, i32 0, i32 0
  store i32 %24935, ptr %24936, align 4
  %24937 = getelementptr inbounds %struct.s2n_result, ptr %539, i32 0, i32 0
  %24938 = load i32, ptr %24937, align 4
  %24939 = call zeroext i1 @s2n_result_is_ok(i32 %24938)
  br i1 %24939, label %24993, label %24940

24940:                                            ; preds = %24931
  br label %24941

24941:                                            ; preds = %24940
  br label %24942

24942:                                            ; preds = %24941
  call void @llvm.lifetime.start.p0(i64 4, ptr %540) #12
  %24943 = call ptr @__errno_location() #13
  %24944 = load i32, ptr %24943, align 4, !tbaa !5
  store i32 %24944, ptr %540, align 4, !tbaa !5
  %24945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24946 = call i32 @s2n_print_stacktrace(ptr noundef %24945)
  %24947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %24948 = trunc i8 %24947 to i1
  br i1 %24948, label %24949, label %24971

24949:                                            ; preds = %24942
  %24950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24951 = call i32 @fileno(ptr noundef %24950) #12
  %24952 = call i32 @isatty(i32 noundef %24951) #12
  %24953 = icmp ne i32 %24952, 0
  br i1 %24953, label %24954, label %24971

24954:                                            ; preds = %24949
  %24955 = load i32, ptr %540, align 4, !tbaa !5
  %24956 = call ptr @__errno_location() #13
  store i32 %24955, ptr %24956, align 4, !tbaa !5
  %24957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24958 = load i32, ptr @test_count, align 4, !tbaa !5
  %24959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24960 = load i32, ptr %24959, align 4, !tbaa !5
  %24961 = call ptr @s2n_strerror(i32 noundef %24960, ptr noundef @.str.6)
  %24962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24963 = load i32, ptr %24962, align 4, !tbaa !5
  %24964 = call ptr @s2n_strerror_debug(i32 noundef %24963, ptr noundef @.str.6)
  %24965 = call ptr @__errno_location() #13
  %24966 = load i32, ptr %24965, align 4, !tbaa !5
  %24967 = call ptr @strerror(i32 noundef %24966) #12
  %24968 = call ptr @__errno_location() #13
  %24969 = load i32, ptr %24968, align 4, !tbaa !5
  %24970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24957, ptr noundef @.str.4, i32 noundef %24958, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 967, ptr noundef %24961, ptr noundef %24964, ptr noundef %24967, i32 noundef %24969) #12
  br label %24988

24971:                                            ; preds = %24949, %24942
  %24972 = load i32, ptr %540, align 4, !tbaa !5
  %24973 = call ptr @__errno_location() #13
  store i32 %24972, ptr %24973, align 4, !tbaa !5
  %24974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24975 = load i32, ptr @test_count, align 4, !tbaa !5
  %24976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24977 = load i32, ptr %24976, align 4, !tbaa !5
  %24978 = call ptr @s2n_strerror(i32 noundef %24977, ptr noundef @.str.6)
  %24979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %24980 = load i32, ptr %24979, align 4, !tbaa !5
  %24981 = call ptr @s2n_strerror_debug(i32 noundef %24980, ptr noundef @.str.6)
  %24982 = call ptr @__errno_location() #13
  %24983 = load i32, ptr %24982, align 4, !tbaa !5
  %24984 = call ptr @strerror(i32 noundef %24983) #12
  %24985 = call ptr @__errno_location() #13
  %24986 = load i32, ptr %24985, align 4, !tbaa !5
  %24987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24974, ptr noundef @.str.7, i32 noundef %24975, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 967, ptr noundef %24978, ptr noundef %24981, ptr noundef %24984, i32 noundef %24986) #12
  br label %24988

24988:                                            ; preds = %24971, %24954
  call void @llvm.lifetime.end.p0(i64 4, ptr %540) #12
  br label %24989

24989:                                            ; preds = %24988
  br label %24990

24990:                                            ; preds = %24989
  call void @exit(i32 noundef 1) #14
  unreachable

24991:                                            ; No predecessors!
  br label %24992

24992:                                            ; preds = %24991
  br label %24993

24993:                                            ; preds = %24992, %24931
  br label %24994

24994:                                            ; preds = %24993
  br label %24995

24995:                                            ; preds = %24994
  br label %24996

24996:                                            ; preds = %24995
  %24997 = load i32, ptr @test_count, align 4, !tbaa !5
  %24998 = add nsw i32 %24997, 1
  store i32 %24998, ptr @test_count, align 4, !tbaa !5
  %24999 = load ptr, ptr %536, align 8, !tbaa !9
  %25000 = load ptr, ptr %533, align 8, !tbaa !9
  %25001 = call i32 @s2n_connection_set_config(ptr noundef %24999, ptr noundef %25000)
  %25002 = icmp eq i32 %25001, -1
  br i1 %25002, label %25003, label %25056

25003:                                            ; preds = %24996
  br label %25004

25004:                                            ; preds = %25003
  br label %25005

25005:                                            ; preds = %25004
  call void @llvm.lifetime.start.p0(i64 4, ptr %541) #12
  %25006 = call ptr @__errno_location() #13
  %25007 = load i32, ptr %25006, align 4, !tbaa !5
  store i32 %25007, ptr %541, align 4, !tbaa !5
  %25008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25009 = call i32 @s2n_print_stacktrace(ptr noundef %25008)
  %25010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25011 = trunc i8 %25010 to i1
  br i1 %25011, label %25012, label %25034

25012:                                            ; preds = %25005
  %25013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25014 = call i32 @fileno(ptr noundef %25013) #12
  %25015 = call i32 @isatty(i32 noundef %25014) #12
  %25016 = icmp ne i32 %25015, 0
  br i1 %25016, label %25017, label %25034

25017:                                            ; preds = %25012
  %25018 = load i32, ptr %541, align 4, !tbaa !5
  %25019 = call ptr @__errno_location() #13
  store i32 %25018, ptr %25019, align 4, !tbaa !5
  %25020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25021 = load i32, ptr @test_count, align 4, !tbaa !5
  %25022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25023 = load i32, ptr %25022, align 4, !tbaa !5
  %25024 = call ptr @s2n_strerror(i32 noundef %25023, ptr noundef @.str.6)
  %25025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25026 = load i32, ptr %25025, align 4, !tbaa !5
  %25027 = call ptr @s2n_strerror_debug(i32 noundef %25026, ptr noundef @.str.6)
  %25028 = call ptr @__errno_location() #13
  %25029 = load i32, ptr %25028, align 4, !tbaa !5
  %25030 = call ptr @strerror(i32 noundef %25029) #12
  %25031 = call ptr @__errno_location() #13
  %25032 = load i32, ptr %25031, align 4, !tbaa !5
  %25033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25020, ptr noundef @.str.4, i32 noundef %25021, ptr noundef @.str.131, ptr noundef @.str.3, i32 noundef 968, ptr noundef %25024, ptr noundef %25027, ptr noundef %25030, i32 noundef %25032) #12
  br label %25051

25034:                                            ; preds = %25012, %25005
  %25035 = load i32, ptr %541, align 4, !tbaa !5
  %25036 = call ptr @__errno_location() #13
  store i32 %25035, ptr %25036, align 4, !tbaa !5
  %25037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25038 = load i32, ptr @test_count, align 4, !tbaa !5
  %25039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25040 = load i32, ptr %25039, align 4, !tbaa !5
  %25041 = call ptr @s2n_strerror(i32 noundef %25040, ptr noundef @.str.6)
  %25042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25043 = load i32, ptr %25042, align 4, !tbaa !5
  %25044 = call ptr @s2n_strerror_debug(i32 noundef %25043, ptr noundef @.str.6)
  %25045 = call ptr @__errno_location() #13
  %25046 = load i32, ptr %25045, align 4, !tbaa !5
  %25047 = call ptr @strerror(i32 noundef %25046) #12
  %25048 = call ptr @__errno_location() #13
  %25049 = load i32, ptr %25048, align 4, !tbaa !5
  %25050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25037, ptr noundef @.str.7, i32 noundef %25038, ptr noundef @.str.131, ptr noundef @.str.3, i32 noundef 968, ptr noundef %25041, ptr noundef %25044, ptr noundef %25047, i32 noundef %25049) #12
  br label %25051

25051:                                            ; preds = %25034, %25017
  call void @llvm.lifetime.end.p0(i64 4, ptr %541) #12
  br label %25052

25052:                                            ; preds = %25051
  br label %25053

25053:                                            ; preds = %25052
  call void @exit(i32 noundef 1) #14
  unreachable

25054:                                            ; No predecessors!
  br label %25055

25055:                                            ; preds = %25054
  br label %25056

25056:                                            ; preds = %25055, %24996
  br label %25057

25057:                                            ; preds = %25056
  br label %25058

25058:                                            ; preds = %25057
  call void @llvm.lifetime.start.p0(i64 40, ptr %542) #12
  call void @llvm.memset.p0.i64(ptr align 8 %542, i8 0, i64 40, i1 false)
  br label %25059

25059:                                            ; preds = %25058
  %25060 = load i32, ptr @test_count, align 4, !tbaa !5
  %25061 = add nsw i32 %25060, 1
  store i32 %25061, ptr @test_count, align 4, !tbaa !5
  %25062 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %542, i32 noundef 0)
  %25063 = icmp eq i32 %25062, -1
  br i1 %25063, label %25064, label %25117

25064:                                            ; preds = %25059
  br label %25065

25065:                                            ; preds = %25064
  br label %25066

25066:                                            ; preds = %25065
  call void @llvm.lifetime.start.p0(i64 4, ptr %543) #12
  %25067 = call ptr @__errno_location() #13
  %25068 = load i32, ptr %25067, align 4, !tbaa !5
  store i32 %25068, ptr %543, align 4, !tbaa !5
  %25069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25070 = call i32 @s2n_print_stacktrace(ptr noundef %25069)
  %25071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25072 = trunc i8 %25071 to i1
  br i1 %25072, label %25073, label %25095

25073:                                            ; preds = %25066
  %25074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25075 = call i32 @fileno(ptr noundef %25074) #12
  %25076 = call i32 @isatty(i32 noundef %25075) #12
  %25077 = icmp ne i32 %25076, 0
  br i1 %25077, label %25078, label %25095

25078:                                            ; preds = %25073
  %25079 = load i32, ptr %543, align 4, !tbaa !5
  %25080 = call ptr @__errno_location() #13
  store i32 %25079, ptr %25080, align 4, !tbaa !5
  %25081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25082 = load i32, ptr @test_count, align 4, !tbaa !5
  %25083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25084 = load i32, ptr %25083, align 4, !tbaa !5
  %25085 = call ptr @s2n_strerror(i32 noundef %25084, ptr noundef @.str.6)
  %25086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25087 = load i32, ptr %25086, align 4, !tbaa !5
  %25088 = call ptr @s2n_strerror_debug(i32 noundef %25087, ptr noundef @.str.6)
  %25089 = call ptr @__errno_location() #13
  %25090 = load i32, ptr %25089, align 4, !tbaa !5
  %25091 = call ptr @strerror(i32 noundef %25090) #12
  %25092 = call ptr @__errno_location() #13
  %25093 = load i32, ptr %25092, align 4, !tbaa !5
  %25094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25081, ptr noundef @.str.4, i32 noundef %25082, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 971, ptr noundef %25085, ptr noundef %25088, ptr noundef %25091, i32 noundef %25093) #12
  br label %25112

25095:                                            ; preds = %25073, %25066
  %25096 = load i32, ptr %543, align 4, !tbaa !5
  %25097 = call ptr @__errno_location() #13
  store i32 %25096, ptr %25097, align 4, !tbaa !5
  %25098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25099 = load i32, ptr @test_count, align 4, !tbaa !5
  %25100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25101 = load i32, ptr %25100, align 4, !tbaa !5
  %25102 = call ptr @s2n_strerror(i32 noundef %25101, ptr noundef @.str.6)
  %25103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25104 = load i32, ptr %25103, align 4, !tbaa !5
  %25105 = call ptr @s2n_strerror_debug(i32 noundef %25104, ptr noundef @.str.6)
  %25106 = call ptr @__errno_location() #13
  %25107 = load i32, ptr %25106, align 4, !tbaa !5
  %25108 = call ptr @strerror(i32 noundef %25107) #12
  %25109 = call ptr @__errno_location() #13
  %25110 = load i32, ptr %25109, align 4, !tbaa !5
  %25111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25098, ptr noundef @.str.7, i32 noundef %25099, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 971, ptr noundef %25102, ptr noundef %25105, ptr noundef %25108, i32 noundef %25110) #12
  br label %25112

25112:                                            ; preds = %25095, %25078
  call void @llvm.lifetime.end.p0(i64 4, ptr %543) #12
  br label %25113

25113:                                            ; preds = %25112
  br label %25114

25114:                                            ; preds = %25113
  call void @exit(i32 noundef 1) #14
  unreachable

25115:                                            ; No predecessors!
  br label %25116

25116:                                            ; preds = %25115
  br label %25117

25117:                                            ; preds = %25116, %25059
  br label %25118

25118:                                            ; preds = %25117
  br label %25119

25119:                                            ; preds = %25118
  call void @llvm.lifetime.start.p0(i64 8, ptr %544) #12
  store ptr null, ptr %544, align 8, !tbaa !9
  br label %25120

25120:                                            ; preds = %25119
  %25121 = load i32, ptr @test_count, align 4, !tbaa !5
  %25122 = add nsw i32 %25121, 1
  store i32 %25122, ptr @test_count, align 4, !tbaa !5
  %25123 = load ptr, ptr %536, align 8, !tbaa !9
  %25124 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %25123, ptr noundef %544)
  %25125 = icmp eq i32 %25124, -1
  br i1 %25125, label %25126, label %25179

25126:                                            ; preds = %25120
  br label %25127

25127:                                            ; preds = %25126
  br label %25128

25128:                                            ; preds = %25127
  call void @llvm.lifetime.start.p0(i64 4, ptr %545) #12
  %25129 = call ptr @__errno_location() #13
  %25130 = load i32, ptr %25129, align 4, !tbaa !5
  store i32 %25130, ptr %545, align 4, !tbaa !5
  %25131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25132 = call i32 @s2n_print_stacktrace(ptr noundef %25131)
  %25133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25134 = trunc i8 %25133 to i1
  br i1 %25134, label %25135, label %25157

25135:                                            ; preds = %25128
  %25136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25137 = call i32 @fileno(ptr noundef %25136) #12
  %25138 = call i32 @isatty(i32 noundef %25137) #12
  %25139 = icmp ne i32 %25138, 0
  br i1 %25139, label %25140, label %25157

25140:                                            ; preds = %25135
  %25141 = load i32, ptr %545, align 4, !tbaa !5
  %25142 = call ptr @__errno_location() #13
  store i32 %25141, ptr %25142, align 4, !tbaa !5
  %25143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25144 = load i32, ptr @test_count, align 4, !tbaa !5
  %25145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25146 = load i32, ptr %25145, align 4, !tbaa !5
  %25147 = call ptr @s2n_strerror(i32 noundef %25146, ptr noundef @.str.6)
  %25148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25149 = load i32, ptr %25148, align 4, !tbaa !5
  %25150 = call ptr @s2n_strerror_debug(i32 noundef %25149, ptr noundef @.str.6)
  %25151 = call ptr @__errno_location() #13
  %25152 = load i32, ptr %25151, align 4, !tbaa !5
  %25153 = call ptr @strerror(i32 noundef %25152) #12
  %25154 = call ptr @__errno_location() #13
  %25155 = load i32, ptr %25154, align 4, !tbaa !5
  %25156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25143, ptr noundef @.str.4, i32 noundef %25144, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 974, ptr noundef %25147, ptr noundef %25150, ptr noundef %25153, i32 noundef %25155) #12
  br label %25174

25157:                                            ; preds = %25135, %25128
  %25158 = load i32, ptr %545, align 4, !tbaa !5
  %25159 = call ptr @__errno_location() #13
  store i32 %25158, ptr %25159, align 4, !tbaa !5
  %25160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25161 = load i32, ptr @test_count, align 4, !tbaa !5
  %25162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25163 = load i32, ptr %25162, align 4, !tbaa !5
  %25164 = call ptr @s2n_strerror(i32 noundef %25163, ptr noundef @.str.6)
  %25165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25166 = load i32, ptr %25165, align 4, !tbaa !5
  %25167 = call ptr @s2n_strerror_debug(i32 noundef %25166, ptr noundef @.str.6)
  %25168 = call ptr @__errno_location() #13
  %25169 = load i32, ptr %25168, align 4, !tbaa !5
  %25170 = call ptr @strerror(i32 noundef %25169) #12
  %25171 = call ptr @__errno_location() #13
  %25172 = load i32, ptr %25171, align 4, !tbaa !5
  %25173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25160, ptr noundef @.str.7, i32 noundef %25161, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 974, ptr noundef %25164, ptr noundef %25167, ptr noundef %25170, i32 noundef %25172) #12
  br label %25174

25174:                                            ; preds = %25157, %25140
  call void @llvm.lifetime.end.p0(i64 4, ptr %545) #12
  br label %25175

25175:                                            ; preds = %25174
  br label %25176

25176:                                            ; preds = %25175
  call void @exit(i32 noundef 1) #14
  unreachable

25177:                                            ; No predecessors!
  br label %25178

25178:                                            ; preds = %25177
  br label %25179

25179:                                            ; preds = %25178, %25120
  br label %25180

25180:                                            ; preds = %25179
  br label %25181

25181:                                            ; preds = %25180
  br label %25182

25182:                                            ; preds = %25181
  %25183 = load i32, ptr @test_count, align 4, !tbaa !5
  %25184 = add nsw i32 %25183, 1
  store i32 %25184, ptr @test_count, align 4, !tbaa !5
  %25185 = load ptr, ptr %544, align 8, !tbaa !9
  %25186 = icmp eq ptr %25185, null
  br i1 %25186, label %25187, label %25240

25187:                                            ; preds = %25182
  br label %25188

25188:                                            ; preds = %25187
  br label %25189

25189:                                            ; preds = %25188
  call void @llvm.lifetime.start.p0(i64 4, ptr %546) #12
  %25190 = call ptr @__errno_location() #13
  %25191 = load i32, ptr %25190, align 4, !tbaa !5
  store i32 %25191, ptr %546, align 4, !tbaa !5
  %25192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25193 = call i32 @s2n_print_stacktrace(ptr noundef %25192)
  %25194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25195 = trunc i8 %25194 to i1
  br i1 %25195, label %25196, label %25218

25196:                                            ; preds = %25189
  %25197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25198 = call i32 @fileno(ptr noundef %25197) #12
  %25199 = call i32 @isatty(i32 noundef %25198) #12
  %25200 = icmp ne i32 %25199, 0
  br i1 %25200, label %25201, label %25218

25201:                                            ; preds = %25196
  %25202 = load i32, ptr %546, align 4, !tbaa !5
  %25203 = call ptr @__errno_location() #13
  store i32 %25202, ptr %25203, align 4, !tbaa !5
  %25204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25205 = load i32, ptr @test_count, align 4, !tbaa !5
  %25206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25207 = load i32, ptr %25206, align 4, !tbaa !5
  %25208 = call ptr @s2n_strerror(i32 noundef %25207, ptr noundef @.str.6)
  %25209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25210 = load i32, ptr %25209, align 4, !tbaa !5
  %25211 = call ptr @s2n_strerror_debug(i32 noundef %25210, ptr noundef @.str.6)
  %25212 = call ptr @__errno_location() #13
  %25213 = load i32, ptr %25212, align 4, !tbaa !5
  %25214 = call ptr @strerror(i32 noundef %25213) #12
  %25215 = call ptr @__errno_location() #13
  %25216 = load i32, ptr %25215, align 4, !tbaa !5
  %25217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25204, ptr noundef @.str.4, i32 noundef %25205, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 975, ptr noundef %25208, ptr noundef %25211, ptr noundef %25214, i32 noundef %25216) #12
  br label %25235

25218:                                            ; preds = %25196, %25189
  %25219 = load i32, ptr %546, align 4, !tbaa !5
  %25220 = call ptr @__errno_location() #13
  store i32 %25219, ptr %25220, align 4, !tbaa !5
  %25221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25222 = load i32, ptr @test_count, align 4, !tbaa !5
  %25223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25224 = load i32, ptr %25223, align 4, !tbaa !5
  %25225 = call ptr @s2n_strerror(i32 noundef %25224, ptr noundef @.str.6)
  %25226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25227 = load i32, ptr %25226, align 4, !tbaa !5
  %25228 = call ptr @s2n_strerror_debug(i32 noundef %25227, ptr noundef @.str.6)
  %25229 = call ptr @__errno_location() #13
  %25230 = load i32, ptr %25229, align 4, !tbaa !5
  %25231 = call ptr @strerror(i32 noundef %25230) #12
  %25232 = call ptr @__errno_location() #13
  %25233 = load i32, ptr %25232, align 4, !tbaa !5
  %25234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25221, ptr noundef @.str.7, i32 noundef %25222, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 975, ptr noundef %25225, ptr noundef %25228, ptr noundef %25231, i32 noundef %25233) #12
  br label %25235

25235:                                            ; preds = %25218, %25201
  call void @llvm.lifetime.end.p0(i64 4, ptr %546) #12
  br label %25236

25236:                                            ; preds = %25235
  br label %25237

25237:                                            ; preds = %25236
  call void @exit(i32 noundef 1) #14
  unreachable

25238:                                            ; No predecessors!
  br label %25239

25239:                                            ; preds = %25238
  br label %25240

25240:                                            ; preds = %25239, %25182
  br label %25241

25241:                                            ; preds = %25240
  br label %25242

25242:                                            ; preds = %25241
  br label %25243

25243:                                            ; preds = %25242
  %25244 = load i32, ptr @test_count, align 4, !tbaa !5
  %25245 = add nsw i32 %25244, 1
  store i32 %25245, ptr @test_count, align 4, !tbaa !5
  %25246 = load ptr, ptr %544, align 8, !tbaa !9
  %25247 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %25246, i32 0, i32 0
  %25248 = load i8, ptr %25247, align 8, !tbaa !64
  %25249 = zext i8 %25248 to i32
  %25250 = icmp sge i32 %25249, 2
  br i1 %25250, label %25304, label %25251

25251:                                            ; preds = %25243
  br label %25252

25252:                                            ; preds = %25251
  br label %25253

25253:                                            ; preds = %25252
  call void @llvm.lifetime.start.p0(i64 4, ptr %547) #12
  %25254 = call ptr @__errno_location() #13
  %25255 = load i32, ptr %25254, align 4, !tbaa !5
  store i32 %25255, ptr %547, align 4, !tbaa !5
  %25256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25257 = call i32 @s2n_print_stacktrace(ptr noundef %25256)
  %25258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25259 = trunc i8 %25258 to i1
  br i1 %25259, label %25260, label %25282

25260:                                            ; preds = %25253
  %25261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25262 = call i32 @fileno(ptr noundef %25261) #12
  %25263 = call i32 @isatty(i32 noundef %25262) #12
  %25264 = icmp ne i32 %25263, 0
  br i1 %25264, label %25265, label %25282

25265:                                            ; preds = %25260
  %25266 = load i32, ptr %547, align 4, !tbaa !5
  %25267 = call ptr @__errno_location() #13
  store i32 %25266, ptr %25267, align 4, !tbaa !5
  %25268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25269 = load i32, ptr @test_count, align 4, !tbaa !5
  %25270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25271 = load i32, ptr %25270, align 4, !tbaa !5
  %25272 = call ptr @s2n_strerror(i32 noundef %25271, ptr noundef @.str.6)
  %25273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25274 = load i32, ptr %25273, align 4, !tbaa !5
  %25275 = call ptr @s2n_strerror_debug(i32 noundef %25274, ptr noundef @.str.6)
  %25276 = call ptr @__errno_location() #13
  %25277 = load i32, ptr %25276, align 4, !tbaa !5
  %25278 = call ptr @strerror(i32 noundef %25277) #12
  %25279 = call ptr @__errno_location() #13
  %25280 = load i32, ptr %25279, align 4, !tbaa !5
  %25281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25268, ptr noundef @.str.4, i32 noundef %25269, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 976, ptr noundef %25272, ptr noundef %25275, ptr noundef %25278, i32 noundef %25280) #12
  br label %25299

25282:                                            ; preds = %25260, %25253
  %25283 = load i32, ptr %547, align 4, !tbaa !5
  %25284 = call ptr @__errno_location() #13
  store i32 %25283, ptr %25284, align 4, !tbaa !5
  %25285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25286 = load i32, ptr @test_count, align 4, !tbaa !5
  %25287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25288 = load i32, ptr %25287, align 4, !tbaa !5
  %25289 = call ptr @s2n_strerror(i32 noundef %25288, ptr noundef @.str.6)
  %25290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25291 = load i32, ptr %25290, align 4, !tbaa !5
  %25292 = call ptr @s2n_strerror_debug(i32 noundef %25291, ptr noundef @.str.6)
  %25293 = call ptr @__errno_location() #13
  %25294 = load i32, ptr %25293, align 4, !tbaa !5
  %25295 = call ptr @strerror(i32 noundef %25294) #12
  %25296 = call ptr @__errno_location() #13
  %25297 = load i32, ptr %25296, align 4, !tbaa !5
  %25298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25285, ptr noundef @.str.7, i32 noundef %25286, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 976, ptr noundef %25289, ptr noundef %25292, ptr noundef %25295, i32 noundef %25297) #12
  br label %25299

25299:                                            ; preds = %25282, %25265
  call void @llvm.lifetime.end.p0(i64 4, ptr %547) #12
  br label %25300

25300:                                            ; preds = %25299
  br label %25301

25301:                                            ; preds = %25300
  call void @exit(i32 noundef 1) #14
  unreachable

25302:                                            ; No predecessors!
  br label %25303

25303:                                            ; preds = %25302
  br label %25304

25304:                                            ; preds = %25303, %25243
  br label %25305

25305:                                            ; preds = %25304
  br label %25306

25306:                                            ; preds = %25305
  call void @llvm.lifetime.start.p0(i64 32, ptr %548) #12
  %25307 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %548, i32 0, i32 0
  %25308 = load ptr, ptr %544, align 8, !tbaa !9
  %25309 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %25308, i32 0, i32 1
  %25310 = load ptr, ptr %25309, align 8, !tbaa !24
  %25311 = getelementptr inbounds ptr, ptr %25310, i64 0
  %25312 = load ptr, ptr %25311, align 8, !tbaa !9
  store ptr %25312, ptr %25307, align 16, !tbaa !22
  %25313 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %548, i32 0, i32 1
  store ptr null, ptr %25313, align 8, !tbaa !26
  %25314 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %548, i64 1
  %25315 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %25314, i32 0, i32 0
  %25316 = load ptr, ptr %544, align 8, !tbaa !9
  %25317 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %25316, i32 0, i32 1
  %25318 = load ptr, ptr %25317, align 8, !tbaa !24
  %25319 = getelementptr inbounds ptr, ptr %25318, i64 1
  %25320 = load ptr, ptr %25319, align 8, !tbaa !9
  store ptr %25320, ptr %25315, align 16, !tbaa !22
  %25321 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %25314, i32 0, i32 1
  store ptr null, ptr %25321, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 16, ptr %549) #12
  call void @llvm.memset.p0.i64(ptr align 8 %549, i8 0, i64 16, i1 false)
  br label %25322

25322:                                            ; preds = %25306
  %25323 = load i32, ptr @test_count, align 4, !tbaa !5
  %25324 = add nsw i32 %25323, 1
  store i32 %25324, ptr @test_count, align 4, !tbaa !5
  %25325 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %542, ptr noundef %549)
  %25326 = icmp eq i32 %25325, -1
  br i1 %25326, label %25327, label %25380

25327:                                            ; preds = %25322
  br label %25328

25328:                                            ; preds = %25327
  br label %25329

25329:                                            ; preds = %25328
  call void @llvm.lifetime.start.p0(i64 4, ptr %550) #12
  %25330 = call ptr @__errno_location() #13
  %25331 = load i32, ptr %25330, align 4, !tbaa !5
  store i32 %25331, ptr %550, align 4, !tbaa !5
  %25332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25333 = call i32 @s2n_print_stacktrace(ptr noundef %25332)
  %25334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25335 = trunc i8 %25334 to i1
  br i1 %25335, label %25336, label %25358

25336:                                            ; preds = %25329
  %25337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25338 = call i32 @fileno(ptr noundef %25337) #12
  %25339 = call i32 @isatty(i32 noundef %25338) #12
  %25340 = icmp ne i32 %25339, 0
  br i1 %25340, label %25341, label %25358

25341:                                            ; preds = %25336
  %25342 = load i32, ptr %550, align 4, !tbaa !5
  %25343 = call ptr @__errno_location() #13
  store i32 %25342, ptr %25343, align 4, !tbaa !5
  %25344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25345 = load i32, ptr @test_count, align 4, !tbaa !5
  %25346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25347 = load i32, ptr %25346, align 4, !tbaa !5
  %25348 = call ptr @s2n_strerror(i32 noundef %25347, ptr noundef @.str.6)
  %25349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25350 = load i32, ptr %25349, align 4, !tbaa !5
  %25351 = call ptr @s2n_strerror_debug(i32 noundef %25350, ptr noundef @.str.6)
  %25352 = call ptr @__errno_location() #13
  %25353 = load i32, ptr %25352, align 4, !tbaa !5
  %25354 = call ptr @strerror(i32 noundef %25353) #12
  %25355 = call ptr @__errno_location() #13
  %25356 = load i32, ptr %25355, align 4, !tbaa !5
  %25357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25344, ptr noundef @.str.4, i32 noundef %25345, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 985, ptr noundef %25348, ptr noundef %25351, ptr noundef %25354, i32 noundef %25356) #12
  br label %25375

25358:                                            ; preds = %25336, %25329
  %25359 = load i32, ptr %550, align 4, !tbaa !5
  %25360 = call ptr @__errno_location() #13
  store i32 %25359, ptr %25360, align 4, !tbaa !5
  %25361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25362 = load i32, ptr @test_count, align 4, !tbaa !5
  %25363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25364 = load i32, ptr %25363, align 4, !tbaa !5
  %25365 = call ptr @s2n_strerror(i32 noundef %25364, ptr noundef @.str.6)
  %25366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25367 = load i32, ptr %25366, align 4, !tbaa !5
  %25368 = call ptr @s2n_strerror_debug(i32 noundef %25367, ptr noundef @.str.6)
  %25369 = call ptr @__errno_location() #13
  %25370 = load i32, ptr %25369, align 4, !tbaa !5
  %25371 = call ptr @strerror(i32 noundef %25370) #12
  %25372 = call ptr @__errno_location() #13
  %25373 = load i32, ptr %25372, align 4, !tbaa !5
  %25374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25361, ptr noundef @.str.7, i32 noundef %25362, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 985, ptr noundef %25365, ptr noundef %25368, ptr noundef %25371, i32 noundef %25373) #12
  br label %25375

25375:                                            ; preds = %25358, %25341
  call void @llvm.lifetime.end.p0(i64 4, ptr %550) #12
  br label %25376

25376:                                            ; preds = %25375
  br label %25377

25377:                                            ; preds = %25376
  call void @exit(i32 noundef 1) #14
  unreachable

25378:                                            ; No predecessors!
  br label %25379

25379:                                            ; preds = %25378
  br label %25380

25380:                                            ; preds = %25379, %25322
  br label %25381

25381:                                            ; preds = %25380
  br label %25382

25382:                                            ; preds = %25381
  br label %25383

25383:                                            ; preds = %25382
  %25384 = load i32, ptr @test_count, align 4, !tbaa !5
  %25385 = add nsw i32 %25384, 1
  store i32 %25385, ptr @test_count, align 4, !tbaa !5
  %25386 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %548, i64 0, i64 0
  %25387 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %25386, ptr noundef %542)
  %25388 = icmp eq i32 %25387, -1
  br i1 %25388, label %25389, label %25442

25389:                                            ; preds = %25383
  br label %25390

25390:                                            ; preds = %25389
  br label %25391

25391:                                            ; preds = %25390
  call void @llvm.lifetime.start.p0(i64 4, ptr %551) #12
  %25392 = call ptr @__errno_location() #13
  %25393 = load i32, ptr %25392, align 4, !tbaa !5
  store i32 %25393, ptr %551, align 4, !tbaa !5
  %25394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25395 = call i32 @s2n_print_stacktrace(ptr noundef %25394)
  %25396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25397 = trunc i8 %25396 to i1
  br i1 %25397, label %25398, label %25420

25398:                                            ; preds = %25391
  %25399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25400 = call i32 @fileno(ptr noundef %25399) #12
  %25401 = call i32 @isatty(i32 noundef %25400) #12
  %25402 = icmp ne i32 %25401, 0
  br i1 %25402, label %25403, label %25420

25403:                                            ; preds = %25398
  %25404 = load i32, ptr %551, align 4, !tbaa !5
  %25405 = call ptr @__errno_location() #13
  store i32 %25404, ptr %25405, align 4, !tbaa !5
  %25406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25407 = load i32, ptr @test_count, align 4, !tbaa !5
  %25408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25409 = load i32, ptr %25408, align 4, !tbaa !5
  %25410 = call ptr @s2n_strerror(i32 noundef %25409, ptr noundef @.str.6)
  %25411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25412 = load i32, ptr %25411, align 4, !tbaa !5
  %25413 = call ptr @s2n_strerror_debug(i32 noundef %25412, ptr noundef @.str.6)
  %25414 = call ptr @__errno_location() #13
  %25415 = load i32, ptr %25414, align 4, !tbaa !5
  %25416 = call ptr @strerror(i32 noundef %25415) #12
  %25417 = call ptr @__errno_location() #13
  %25418 = load i32, ptr %25417, align 4, !tbaa !5
  %25419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25406, ptr noundef @.str.4, i32 noundef %25407, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 987, ptr noundef %25410, ptr noundef %25413, ptr noundef %25416, i32 noundef %25418) #12
  br label %25437

25420:                                            ; preds = %25398, %25391
  %25421 = load i32, ptr %551, align 4, !tbaa !5
  %25422 = call ptr @__errno_location() #13
  store i32 %25421, ptr %25422, align 4, !tbaa !5
  %25423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25424 = load i32, ptr @test_count, align 4, !tbaa !5
  %25425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25426 = load i32, ptr %25425, align 4, !tbaa !5
  %25427 = call ptr @s2n_strerror(i32 noundef %25426, ptr noundef @.str.6)
  %25428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25429 = load i32, ptr %25428, align 4, !tbaa !5
  %25430 = call ptr @s2n_strerror_debug(i32 noundef %25429, ptr noundef @.str.6)
  %25431 = call ptr @__errno_location() #13
  %25432 = load i32, ptr %25431, align 4, !tbaa !5
  %25433 = call ptr @strerror(i32 noundef %25432) #12
  %25434 = call ptr @__errno_location() #13
  %25435 = load i32, ptr %25434, align 4, !tbaa !5
  %25436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25423, ptr noundef @.str.7, i32 noundef %25424, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 987, ptr noundef %25427, ptr noundef %25430, ptr noundef %25433, i32 noundef %25435) #12
  br label %25437

25437:                                            ; preds = %25420, %25403
  call void @llvm.lifetime.end.p0(i64 4, ptr %551) #12
  br label %25438

25438:                                            ; preds = %25437
  br label %25439

25439:                                            ; preds = %25438
  call void @exit(i32 noundef 1) #14
  unreachable

25440:                                            ; No predecessors!
  br label %25441

25441:                                            ; preds = %25440
  br label %25442

25442:                                            ; preds = %25441, %25383
  br label %25443

25443:                                            ; preds = %25442
  br label %25444

25444:                                            ; preds = %25443
  call void @llvm.lifetime.start.p0(i64 4, ptr %552) #12
  %25445 = getelementptr inbounds %struct.s2n_stuffer, ptr %542, i32 0, i32 2
  %25446 = load i32, ptr %25445, align 4, !tbaa !18
  %25447 = getelementptr inbounds %struct.s2n_stuffer, ptr %542, i32 0, i32 1
  %25448 = load i32, ptr %25447, align 8, !tbaa !21
  %25449 = sub i32 %25446, %25448
  store i32 %25449, ptr %552, align 4, !tbaa !5
  br label %25450

25450:                                            ; preds = %25444
  %25451 = load i32, ptr @test_count, align 4, !tbaa !5
  %25452 = add nsw i32 %25451, 1
  store i32 %25452, ptr @test_count, align 4, !tbaa !5
  %25453 = load i32, ptr %552, align 4, !tbaa !5
  %25454 = sdiv i32 %25453, 2
  %25455 = call i32 @s2n_stuffer_wipe_n(ptr noundef %542, i32 noundef %25454)
  %25456 = icmp eq i32 %25455, -1
  br i1 %25456, label %25457, label %25510

25457:                                            ; preds = %25450
  br label %25458

25458:                                            ; preds = %25457
  br label %25459

25459:                                            ; preds = %25458
  call void @llvm.lifetime.start.p0(i64 4, ptr %553) #12
  %25460 = call ptr @__errno_location() #13
  %25461 = load i32, ptr %25460, align 4, !tbaa !5
  store i32 %25461, ptr %553, align 4, !tbaa !5
  %25462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25463 = call i32 @s2n_print_stacktrace(ptr noundef %25462)
  %25464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25465 = trunc i8 %25464 to i1
  br i1 %25465, label %25466, label %25488

25466:                                            ; preds = %25459
  %25467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25468 = call i32 @fileno(ptr noundef %25467) #12
  %25469 = call i32 @isatty(i32 noundef %25468) #12
  %25470 = icmp ne i32 %25469, 0
  br i1 %25470, label %25471, label %25488

25471:                                            ; preds = %25466
  %25472 = load i32, ptr %553, align 4, !tbaa !5
  %25473 = call ptr @__errno_location() #13
  store i32 %25472, ptr %25473, align 4, !tbaa !5
  %25474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25475 = load i32, ptr @test_count, align 4, !tbaa !5
  %25476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25477 = load i32, ptr %25476, align 4, !tbaa !5
  %25478 = call ptr @s2n_strerror(i32 noundef %25477, ptr noundef @.str.6)
  %25479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25480 = load i32, ptr %25479, align 4, !tbaa !5
  %25481 = call ptr @s2n_strerror_debug(i32 noundef %25480, ptr noundef @.str.6)
  %25482 = call ptr @__errno_location() #13
  %25483 = load i32, ptr %25482, align 4, !tbaa !5
  %25484 = call ptr @strerror(i32 noundef %25483) #12
  %25485 = call ptr @__errno_location() #13
  %25486 = load i32, ptr %25485, align 4, !tbaa !5
  %25487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25474, ptr noundef @.str.4, i32 noundef %25475, ptr noundef @.str.129, ptr noundef @.str.3, i32 noundef 989, ptr noundef %25478, ptr noundef %25481, ptr noundef %25484, i32 noundef %25486) #12
  br label %25505

25488:                                            ; preds = %25466, %25459
  %25489 = load i32, ptr %553, align 4, !tbaa !5
  %25490 = call ptr @__errno_location() #13
  store i32 %25489, ptr %25490, align 4, !tbaa !5
  %25491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25492 = load i32, ptr @test_count, align 4, !tbaa !5
  %25493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25494 = load i32, ptr %25493, align 4, !tbaa !5
  %25495 = call ptr @s2n_strerror(i32 noundef %25494, ptr noundef @.str.6)
  %25496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25497 = load i32, ptr %25496, align 4, !tbaa !5
  %25498 = call ptr @s2n_strerror_debug(i32 noundef %25497, ptr noundef @.str.6)
  %25499 = call ptr @__errno_location() #13
  %25500 = load i32, ptr %25499, align 4, !tbaa !5
  %25501 = call ptr @strerror(i32 noundef %25500) #12
  %25502 = call ptr @__errno_location() #13
  %25503 = load i32, ptr %25502, align 4, !tbaa !5
  %25504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25491, ptr noundef @.str.7, i32 noundef %25492, ptr noundef @.str.129, ptr noundef @.str.3, i32 noundef 989, ptr noundef %25495, ptr noundef %25498, ptr noundef %25501, i32 noundef %25503) #12
  br label %25505

25505:                                            ; preds = %25488, %25471
  call void @llvm.lifetime.end.p0(i64 4, ptr %553) #12
  br label %25506

25506:                                            ; preds = %25505
  br label %25507

25507:                                            ; preds = %25506
  call void @exit(i32 noundef 1) #14
  unreachable

25508:                                            ; No predecessors!
  br label %25509

25509:                                            ; preds = %25508
  br label %25510

25510:                                            ; preds = %25509, %25450
  br label %25511

25511:                                            ; preds = %25510
  br label %25512

25512:                                            ; preds = %25511
  br label %25513

25513:                                            ; preds = %25512
  %25514 = load i32, ptr @test_count, align 4, !tbaa !5
  %25515 = add nsw i32 %25514, 1
  store i32 %25515, ptr @test_count, align 4, !tbaa !5
  %25516 = load i32, ptr %552, align 4, !tbaa !5
  %25517 = sdiv i32 %25516, 2
  %25518 = call i32 @s2n_stuffer_skip_write(ptr noundef %542, i32 noundef %25517)
  %25519 = icmp eq i32 %25518, -1
  br i1 %25519, label %25520, label %25573

25520:                                            ; preds = %25513
  br label %25521

25521:                                            ; preds = %25520
  br label %25522

25522:                                            ; preds = %25521
  call void @llvm.lifetime.start.p0(i64 4, ptr %554) #12
  %25523 = call ptr @__errno_location() #13
  %25524 = load i32, ptr %25523, align 4, !tbaa !5
  store i32 %25524, ptr %554, align 4, !tbaa !5
  %25525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25526 = call i32 @s2n_print_stacktrace(ptr noundef %25525)
  %25527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25528 = trunc i8 %25527 to i1
  br i1 %25528, label %25529, label %25551

25529:                                            ; preds = %25522
  %25530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25531 = call i32 @fileno(ptr noundef %25530) #12
  %25532 = call i32 @isatty(i32 noundef %25531) #12
  %25533 = icmp ne i32 %25532, 0
  br i1 %25533, label %25534, label %25551

25534:                                            ; preds = %25529
  %25535 = load i32, ptr %554, align 4, !tbaa !5
  %25536 = call ptr @__errno_location() #13
  store i32 %25535, ptr %25536, align 4, !tbaa !5
  %25537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25538 = load i32, ptr @test_count, align 4, !tbaa !5
  %25539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25540 = load i32, ptr %25539, align 4, !tbaa !5
  %25541 = call ptr @s2n_strerror(i32 noundef %25540, ptr noundef @.str.6)
  %25542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25543 = load i32, ptr %25542, align 4, !tbaa !5
  %25544 = call ptr @s2n_strerror_debug(i32 noundef %25543, ptr noundef @.str.6)
  %25545 = call ptr @__errno_location() #13
  %25546 = load i32, ptr %25545, align 4, !tbaa !5
  %25547 = call ptr @strerror(i32 noundef %25546) #12
  %25548 = call ptr @__errno_location() #13
  %25549 = load i32, ptr %25548, align 4, !tbaa !5
  %25550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25537, ptr noundef @.str.4, i32 noundef %25538, ptr noundef @.str.130, ptr noundef @.str.3, i32 noundef 990, ptr noundef %25541, ptr noundef %25544, ptr noundef %25547, i32 noundef %25549) #12
  br label %25568

25551:                                            ; preds = %25529, %25522
  %25552 = load i32, ptr %554, align 4, !tbaa !5
  %25553 = call ptr @__errno_location() #13
  store i32 %25552, ptr %25553, align 4, !tbaa !5
  %25554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25555 = load i32, ptr @test_count, align 4, !tbaa !5
  %25556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25557 = load i32, ptr %25556, align 4, !tbaa !5
  %25558 = call ptr @s2n_strerror(i32 noundef %25557, ptr noundef @.str.6)
  %25559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25560 = load i32, ptr %25559, align 4, !tbaa !5
  %25561 = call ptr @s2n_strerror_debug(i32 noundef %25560, ptr noundef @.str.6)
  %25562 = call ptr @__errno_location() #13
  %25563 = load i32, ptr %25562, align 4, !tbaa !5
  %25564 = call ptr @strerror(i32 noundef %25563) #12
  %25565 = call ptr @__errno_location() #13
  %25566 = load i32, ptr %25565, align 4, !tbaa !5
  %25567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25554, ptr noundef @.str.7, i32 noundef %25555, ptr noundef @.str.130, ptr noundef @.str.3, i32 noundef 990, ptr noundef %25558, ptr noundef %25561, ptr noundef %25564, i32 noundef %25566) #12
  br label %25568

25568:                                            ; preds = %25551, %25534
  call void @llvm.lifetime.end.p0(i64 4, ptr %554) #12
  br label %25569

25569:                                            ; preds = %25568
  br label %25570

25570:                                            ; preds = %25569
  call void @exit(i32 noundef 1) #14
  unreachable

25571:                                            ; No predecessors!
  br label %25572

25572:                                            ; preds = %25571
  br label %25573

25573:                                            ; preds = %25572, %25513
  br label %25574

25574:                                            ; preds = %25573
  br label %25575

25575:                                            ; preds = %25574
  br label %25576

25576:                                            ; preds = %25575
  %25577 = load i32, ptr @test_count, align 4, !tbaa !5
  %25578 = add nsw i32 %25577, 1
  store i32 %25578, ptr @test_count, align 4, !tbaa !5
  %25579 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %548, i64 0, i64 1
  %25580 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %25579, ptr noundef %542)
  %25581 = icmp eq i32 %25580, -1
  br i1 %25581, label %25582, label %25635

25582:                                            ; preds = %25576
  br label %25583

25583:                                            ; preds = %25582
  br label %25584

25584:                                            ; preds = %25583
  call void @llvm.lifetime.start.p0(i64 4, ptr %555) #12
  %25585 = call ptr @__errno_location() #13
  %25586 = load i32, ptr %25585, align 4, !tbaa !5
  store i32 %25586, ptr %555, align 4, !tbaa !5
  %25587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25588 = call i32 @s2n_print_stacktrace(ptr noundef %25587)
  %25589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25590 = trunc i8 %25589 to i1
  br i1 %25590, label %25591, label %25613

25591:                                            ; preds = %25584
  %25592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25593 = call i32 @fileno(ptr noundef %25592) #12
  %25594 = call i32 @isatty(i32 noundef %25593) #12
  %25595 = icmp ne i32 %25594, 0
  br i1 %25595, label %25596, label %25613

25596:                                            ; preds = %25591
  %25597 = load i32, ptr %555, align 4, !tbaa !5
  %25598 = call ptr @__errno_location() #13
  store i32 %25597, ptr %25598, align 4, !tbaa !5
  %25599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25600 = load i32, ptr @test_count, align 4, !tbaa !5
  %25601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25602 = load i32, ptr %25601, align 4, !tbaa !5
  %25603 = call ptr @s2n_strerror(i32 noundef %25602, ptr noundef @.str.6)
  %25604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25605 = load i32, ptr %25604, align 4, !tbaa !5
  %25606 = call ptr @s2n_strerror_debug(i32 noundef %25605, ptr noundef @.str.6)
  %25607 = call ptr @__errno_location() #13
  %25608 = load i32, ptr %25607, align 4, !tbaa !5
  %25609 = call ptr @strerror(i32 noundef %25608) #12
  %25610 = call ptr @__errno_location() #13
  %25611 = load i32, ptr %25610, align 4, !tbaa !5
  %25612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25599, ptr noundef @.str.4, i32 noundef %25600, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 992, ptr noundef %25603, ptr noundef %25606, ptr noundef %25609, i32 noundef %25611) #12
  br label %25630

25613:                                            ; preds = %25591, %25584
  %25614 = load i32, ptr %555, align 4, !tbaa !5
  %25615 = call ptr @__errno_location() #13
  store i32 %25614, ptr %25615, align 4, !tbaa !5
  %25616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25617 = load i32, ptr @test_count, align 4, !tbaa !5
  %25618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25619 = load i32, ptr %25618, align 4, !tbaa !5
  %25620 = call ptr @s2n_strerror(i32 noundef %25619, ptr noundef @.str.6)
  %25621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25622 = load i32, ptr %25621, align 4, !tbaa !5
  %25623 = call ptr @s2n_strerror_debug(i32 noundef %25622, ptr noundef @.str.6)
  %25624 = call ptr @__errno_location() #13
  %25625 = load i32, ptr %25624, align 4, !tbaa !5
  %25626 = call ptr @strerror(i32 noundef %25625) #12
  %25627 = call ptr @__errno_location() #13
  %25628 = load i32, ptr %25627, align 4, !tbaa !5
  %25629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25616, ptr noundef @.str.7, i32 noundef %25617, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 992, ptr noundef %25620, ptr noundef %25623, ptr noundef %25626, i32 noundef %25628) #12
  br label %25630

25630:                                            ; preds = %25613, %25596
  call void @llvm.lifetime.end.p0(i64 4, ptr %555) #12
  br label %25631

25631:                                            ; preds = %25630
  br label %25632

25632:                                            ; preds = %25631
  call void @exit(i32 noundef 1) #14
  unreachable

25633:                                            ; No predecessors!
  br label %25634

25634:                                            ; preds = %25633
  br label %25635

25635:                                            ; preds = %25634, %25576
  br label %25636

25636:                                            ; preds = %25635
  br label %25637

25637:                                            ; preds = %25636
  br label %25638

25638:                                            ; preds = %25637
  %25639 = load i32, ptr @test_count, align 4, !tbaa !5
  %25640 = add nsw i32 %25639, 1
  store i32 %25640, ptr @test_count, align 4, !tbaa !5
  %25641 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %549)
  %25642 = icmp eq i32 %25641, -1
  br i1 %25642, label %25643, label %25696

25643:                                            ; preds = %25638
  br label %25644

25644:                                            ; preds = %25643
  br label %25645

25645:                                            ; preds = %25644
  call void @llvm.lifetime.start.p0(i64 4, ptr %556) #12
  %25646 = call ptr @__errno_location() #13
  %25647 = load i32, ptr %25646, align 4, !tbaa !5
  store i32 %25647, ptr %556, align 4, !tbaa !5
  %25648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25649 = call i32 @s2n_print_stacktrace(ptr noundef %25648)
  %25650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25651 = trunc i8 %25650 to i1
  br i1 %25651, label %25652, label %25674

25652:                                            ; preds = %25645
  %25653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25654 = call i32 @fileno(ptr noundef %25653) #12
  %25655 = call i32 @isatty(i32 noundef %25654) #12
  %25656 = icmp ne i32 %25655, 0
  br i1 %25656, label %25657, label %25674

25657:                                            ; preds = %25652
  %25658 = load i32, ptr %556, align 4, !tbaa !5
  %25659 = call ptr @__errno_location() #13
  store i32 %25658, ptr %25659, align 4, !tbaa !5
  %25660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25661 = load i32, ptr @test_count, align 4, !tbaa !5
  %25662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25663 = load i32, ptr %25662, align 4, !tbaa !5
  %25664 = call ptr @s2n_strerror(i32 noundef %25663, ptr noundef @.str.6)
  %25665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25666 = load i32, ptr %25665, align 4, !tbaa !5
  %25667 = call ptr @s2n_strerror_debug(i32 noundef %25666, ptr noundef @.str.6)
  %25668 = call ptr @__errno_location() #13
  %25669 = load i32, ptr %25668, align 4, !tbaa !5
  %25670 = call ptr @strerror(i32 noundef %25669) #12
  %25671 = call ptr @__errno_location() #13
  %25672 = load i32, ptr %25671, align 4, !tbaa !5
  %25673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25660, ptr noundef @.str.4, i32 noundef %25661, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 994, ptr noundef %25664, ptr noundef %25667, ptr noundef %25670, i32 noundef %25672) #12
  br label %25691

25674:                                            ; preds = %25652, %25645
  %25675 = load i32, ptr %556, align 4, !tbaa !5
  %25676 = call ptr @__errno_location() #13
  store i32 %25675, ptr %25676, align 4, !tbaa !5
  %25677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25678 = load i32, ptr @test_count, align 4, !tbaa !5
  %25679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25680 = load i32, ptr %25679, align 4, !tbaa !5
  %25681 = call ptr @s2n_strerror(i32 noundef %25680, ptr noundef @.str.6)
  %25682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25683 = load i32, ptr %25682, align 4, !tbaa !5
  %25684 = call ptr @s2n_strerror_debug(i32 noundef %25683, ptr noundef @.str.6)
  %25685 = call ptr @__errno_location() #13
  %25686 = load i32, ptr %25685, align 4, !tbaa !5
  %25687 = call ptr @strerror(i32 noundef %25686) #12
  %25688 = call ptr @__errno_location() #13
  %25689 = load i32, ptr %25688, align 4, !tbaa !5
  %25690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25677, ptr noundef @.str.7, i32 noundef %25678, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 994, ptr noundef %25681, ptr noundef %25684, ptr noundef %25687, i32 noundef %25689) #12
  br label %25691

25691:                                            ; preds = %25674, %25657
  call void @llvm.lifetime.end.p0(i64 4, ptr %556) #12
  br label %25692

25692:                                            ; preds = %25691
  br label %25693

25693:                                            ; preds = %25692
  call void @exit(i32 noundef 1) #14
  unreachable

25694:                                            ; No predecessors!
  br label %25695

25695:                                            ; preds = %25694
  br label %25696

25696:                                            ; preds = %25695, %25638
  br label %25697

25697:                                            ; preds = %25696
  br label %25698

25698:                                            ; preds = %25697
  br label %25699

25699:                                            ; preds = %25698
  %25700 = load i32, ptr @test_count, align 4, !tbaa !5
  %25701 = add nsw i32 %25700, 1
  store i32 %25701, ptr @test_count, align 4, !tbaa !5
  %25702 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %25703 = load ptr, ptr %536, align 8, !tbaa !9
  %25704 = call i32 %25702(ptr noundef %25703, ptr noundef %542)
  %25705 = icmp eq i32 %25704, -1
  br i1 %25705, label %25706, label %25759

25706:                                            ; preds = %25699
  br label %25707

25707:                                            ; preds = %25706
  br label %25708

25708:                                            ; preds = %25707
  call void @llvm.lifetime.start.p0(i64 4, ptr %557) #12
  %25709 = call ptr @__errno_location() #13
  %25710 = load i32, ptr %25709, align 4, !tbaa !5
  store i32 %25710, ptr %557, align 4, !tbaa !5
  %25711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25712 = call i32 @s2n_print_stacktrace(ptr noundef %25711)
  %25713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25714 = trunc i8 %25713 to i1
  br i1 %25714, label %25715, label %25737

25715:                                            ; preds = %25708
  %25716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25717 = call i32 @fileno(ptr noundef %25716) #12
  %25718 = call i32 @isatty(i32 noundef %25717) #12
  %25719 = icmp ne i32 %25718, 0
  br i1 %25719, label %25720, label %25737

25720:                                            ; preds = %25715
  %25721 = load i32, ptr %557, align 4, !tbaa !5
  %25722 = call ptr @__errno_location() #13
  store i32 %25721, ptr %25722, align 4, !tbaa !5
  %25723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25724 = load i32, ptr @test_count, align 4, !tbaa !5
  %25725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25726 = load i32, ptr %25725, align 4, !tbaa !5
  %25727 = call ptr @s2n_strerror(i32 noundef %25726, ptr noundef @.str.6)
  %25728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25729 = load i32, ptr %25728, align 4, !tbaa !5
  %25730 = call ptr @s2n_strerror_debug(i32 noundef %25729, ptr noundef @.str.6)
  %25731 = call ptr @__errno_location() #13
  %25732 = load i32, ptr %25731, align 4, !tbaa !5
  %25733 = call ptr @strerror(i32 noundef %25732) #12
  %25734 = call ptr @__errno_location() #13
  %25735 = load i32, ptr %25734, align 4, !tbaa !5
  %25736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25723, ptr noundef @.str.4, i32 noundef %25724, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 996, ptr noundef %25727, ptr noundef %25730, ptr noundef %25733, i32 noundef %25735) #12
  br label %25754

25737:                                            ; preds = %25715, %25708
  %25738 = load i32, ptr %557, align 4, !tbaa !5
  %25739 = call ptr @__errno_location() #13
  store i32 %25738, ptr %25739, align 4, !tbaa !5
  %25740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25741 = load i32, ptr @test_count, align 4, !tbaa !5
  %25742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25743 = load i32, ptr %25742, align 4, !tbaa !5
  %25744 = call ptr @s2n_strerror(i32 noundef %25743, ptr noundef @.str.6)
  %25745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25746 = load i32, ptr %25745, align 4, !tbaa !5
  %25747 = call ptr @s2n_strerror_debug(i32 noundef %25746, ptr noundef @.str.6)
  %25748 = call ptr @__errno_location() #13
  %25749 = load i32, ptr %25748, align 4, !tbaa !5
  %25750 = call ptr @strerror(i32 noundef %25749) #12
  %25751 = call ptr @__errno_location() #13
  %25752 = load i32, ptr %25751, align 4, !tbaa !5
  %25753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25740, ptr noundef @.str.7, i32 noundef %25741, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 996, ptr noundef %25744, ptr noundef %25747, ptr noundef %25750, i32 noundef %25752) #12
  br label %25754

25754:                                            ; preds = %25737, %25720
  call void @llvm.lifetime.end.p0(i64 4, ptr %557) #12
  br label %25755

25755:                                            ; preds = %25754
  br label %25756

25756:                                            ; preds = %25755
  call void @exit(i32 noundef 1) #14
  unreachable

25757:                                            ; No predecessors!
  br label %25758

25758:                                            ; preds = %25757
  br label %25759

25759:                                            ; preds = %25758, %25699
  br label %25760

25760:                                            ; preds = %25759
  br label %25761

25761:                                            ; preds = %25760
  br label %25762

25762:                                            ; preds = %25761
  %25763 = load i32, ptr @test_count, align 4, !tbaa !5
  %25764 = add nsw i32 %25763, 1
  store i32 %25764, ptr @test_count, align 4, !tbaa !5
  %25765 = getelementptr inbounds %struct.s2n_stuffer, ptr %542, i32 0, i32 2
  %25766 = load i32, ptr %25765, align 4, !tbaa !18
  %25767 = getelementptr inbounds %struct.s2n_stuffer, ptr %542, i32 0, i32 1
  %25768 = load i32, ptr %25767, align 8, !tbaa !21
  %25769 = sub i32 %25766, %25768
  %25770 = icmp eq i32 %25769, 0
  br i1 %25770, label %25824, label %25771

25771:                                            ; preds = %25762
  br label %25772

25772:                                            ; preds = %25771
  br label %25773

25773:                                            ; preds = %25772
  call void @llvm.lifetime.start.p0(i64 4, ptr %558) #12
  %25774 = call ptr @__errno_location() #13
  %25775 = load i32, ptr %25774, align 4, !tbaa !5
  store i32 %25775, ptr %558, align 4, !tbaa !5
  %25776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25777 = call i32 @s2n_print_stacktrace(ptr noundef %25776)
  %25778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25779 = trunc i8 %25778 to i1
  br i1 %25779, label %25780, label %25802

25780:                                            ; preds = %25773
  %25781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25782 = call i32 @fileno(ptr noundef %25781) #12
  %25783 = call i32 @isatty(i32 noundef %25782) #12
  %25784 = icmp ne i32 %25783, 0
  br i1 %25784, label %25785, label %25802

25785:                                            ; preds = %25780
  %25786 = load i32, ptr %558, align 4, !tbaa !5
  %25787 = call ptr @__errno_location() #13
  store i32 %25786, ptr %25787, align 4, !tbaa !5
  %25788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25789 = load i32, ptr @test_count, align 4, !tbaa !5
  %25790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25791 = load i32, ptr %25790, align 4, !tbaa !5
  %25792 = call ptr @s2n_strerror(i32 noundef %25791, ptr noundef @.str.6)
  %25793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25794 = load i32, ptr %25793, align 4, !tbaa !5
  %25795 = call ptr @s2n_strerror_debug(i32 noundef %25794, ptr noundef @.str.6)
  %25796 = call ptr @__errno_location() #13
  %25797 = load i32, ptr %25796, align 4, !tbaa !5
  %25798 = call ptr @strerror(i32 noundef %25797) #12
  %25799 = call ptr @__errno_location() #13
  %25800 = load i32, ptr %25799, align 4, !tbaa !5
  %25801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25788, ptr noundef @.str.4, i32 noundef %25789, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 997, ptr noundef %25792, ptr noundef %25795, ptr noundef %25798, i32 noundef %25800) #12
  br label %25819

25802:                                            ; preds = %25780, %25773
  %25803 = load i32, ptr %558, align 4, !tbaa !5
  %25804 = call ptr @__errno_location() #13
  store i32 %25803, ptr %25804, align 4, !tbaa !5
  %25805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25806 = load i32, ptr @test_count, align 4, !tbaa !5
  %25807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25808 = load i32, ptr %25807, align 4, !tbaa !5
  %25809 = call ptr @s2n_strerror(i32 noundef %25808, ptr noundef @.str.6)
  %25810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25811 = load i32, ptr %25810, align 4, !tbaa !5
  %25812 = call ptr @s2n_strerror_debug(i32 noundef %25811, ptr noundef @.str.6)
  %25813 = call ptr @__errno_location() #13
  %25814 = load i32, ptr %25813, align 4, !tbaa !5
  %25815 = call ptr @strerror(i32 noundef %25814) #12
  %25816 = call ptr @__errno_location() #13
  %25817 = load i32, ptr %25816, align 4, !tbaa !5
  %25818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25805, ptr noundef @.str.7, i32 noundef %25806, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 997, ptr noundef %25809, ptr noundef %25812, ptr noundef %25815, i32 noundef %25817) #12
  br label %25819

25819:                                            ; preds = %25802, %25785
  call void @llvm.lifetime.end.p0(i64 4, ptr %558) #12
  br label %25820

25820:                                            ; preds = %25819
  br label %25821

25821:                                            ; preds = %25820
  call void @exit(i32 noundef 1) #14
  unreachable

25822:                                            ; No predecessors!
  br label %25823

25823:                                            ; preds = %25822
  br label %25824

25824:                                            ; preds = %25823, %25762
  br label %25825

25825:                                            ; preds = %25824
  br label %25826

25826:                                            ; preds = %25825
  call void @llvm.lifetime.start.p0(i64 8, ptr %559) #12
  %25827 = load ptr, ptr %536, align 8, !tbaa !9
  %25828 = getelementptr inbounds %struct.s2n_connection, ptr %25827, i32 0, i32 31
  %25829 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %25828, i32 0, i32 3
  store ptr %25829, ptr %559, align 8, !tbaa !9
  br label %25830

25830:                                            ; preds = %25826
  %25831 = load i32, ptr @test_count, align 4, !tbaa !5
  %25832 = add nsw i32 %25831, 1
  store i32 %25832, ptr @test_count, align 4, !tbaa !5
  %25833 = load ptr, ptr %559, align 8, !tbaa !9
  %25834 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %25833, i32 0, i32 0
  %25835 = load ptr, ptr %25834, align 8, !tbaa !22
  %25836 = load ptr, ptr %544, align 8, !tbaa !9
  %25837 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %25836, i32 0, i32 1
  %25838 = load ptr, ptr %25837, align 8, !tbaa !24
  %25839 = getelementptr inbounds ptr, ptr %25838, i64 1
  %25840 = load ptr, ptr %25839, align 8, !tbaa !9
  %25841 = icmp eq ptr %25835, %25840
  br i1 %25841, label %25895, label %25842

25842:                                            ; preds = %25830
  br label %25843

25843:                                            ; preds = %25842
  br label %25844

25844:                                            ; preds = %25843
  call void @llvm.lifetime.start.p0(i64 4, ptr %560) #12
  %25845 = call ptr @__errno_location() #13
  %25846 = load i32, ptr %25845, align 4, !tbaa !5
  store i32 %25846, ptr %560, align 4, !tbaa !5
  %25847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25848 = call i32 @s2n_print_stacktrace(ptr noundef %25847)
  %25849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25850 = trunc i8 %25849 to i1
  br i1 %25850, label %25851, label %25873

25851:                                            ; preds = %25844
  %25852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25853 = call i32 @fileno(ptr noundef %25852) #12
  %25854 = call i32 @isatty(i32 noundef %25853) #12
  %25855 = icmp ne i32 %25854, 0
  br i1 %25855, label %25856, label %25873

25856:                                            ; preds = %25851
  %25857 = load i32, ptr %560, align 4, !tbaa !5
  %25858 = call ptr @__errno_location() #13
  store i32 %25857, ptr %25858, align 4, !tbaa !5
  %25859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25860 = load i32, ptr @test_count, align 4, !tbaa !5
  %25861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25862 = load i32, ptr %25861, align 4, !tbaa !5
  %25863 = call ptr @s2n_strerror(i32 noundef %25862, ptr noundef @.str.6)
  %25864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25865 = load i32, ptr %25864, align 4, !tbaa !5
  %25866 = call ptr @s2n_strerror_debug(i32 noundef %25865, ptr noundef @.str.6)
  %25867 = call ptr @__errno_location() #13
  %25868 = load i32, ptr %25867, align 4, !tbaa !5
  %25869 = call ptr @strerror(i32 noundef %25868) #12
  %25870 = call ptr @__errno_location() #13
  %25871 = load i32, ptr %25870, align 4, !tbaa !5
  %25872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25859, ptr noundef @.str.4, i32 noundef %25860, ptr noundef @.str.105, ptr noundef @.str.3, i32 noundef 1001, ptr noundef %25863, ptr noundef %25866, ptr noundef %25869, i32 noundef %25871) #12
  br label %25890

25873:                                            ; preds = %25851, %25844
  %25874 = load i32, ptr %560, align 4, !tbaa !5
  %25875 = call ptr @__errno_location() #13
  store i32 %25874, ptr %25875, align 4, !tbaa !5
  %25876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25877 = load i32, ptr @test_count, align 4, !tbaa !5
  %25878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25879 = load i32, ptr %25878, align 4, !tbaa !5
  %25880 = call ptr @s2n_strerror(i32 noundef %25879, ptr noundef @.str.6)
  %25881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25882 = load i32, ptr %25881, align 4, !tbaa !5
  %25883 = call ptr @s2n_strerror_debug(i32 noundef %25882, ptr noundef @.str.6)
  %25884 = call ptr @__errno_location() #13
  %25885 = load i32, ptr %25884, align 4, !tbaa !5
  %25886 = call ptr @strerror(i32 noundef %25885) #12
  %25887 = call ptr @__errno_location() #13
  %25888 = load i32, ptr %25887, align 4, !tbaa !5
  %25889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25876, ptr noundef @.str.7, i32 noundef %25877, ptr noundef @.str.105, ptr noundef @.str.3, i32 noundef 1001, ptr noundef %25880, ptr noundef %25883, ptr noundef %25886, i32 noundef %25888) #12
  br label %25890

25890:                                            ; preds = %25873, %25856
  call void @llvm.lifetime.end.p0(i64 4, ptr %560) #12
  br label %25891

25891:                                            ; preds = %25890
  br label %25892

25892:                                            ; preds = %25891
  call void @exit(i32 noundef 1) #14
  unreachable

25893:                                            ; No predecessors!
  br label %25894

25894:                                            ; preds = %25893
  br label %25895

25895:                                            ; preds = %25894, %25830
  br label %25896

25896:                                            ; preds = %25895
  br label %25897

25897:                                            ; preds = %25896
  br label %25898

25898:                                            ; preds = %25897
  %25899 = load i32, ptr @test_count, align 4, !tbaa !5
  %25900 = add nsw i32 %25899, 1
  store i32 %25900, ptr @test_count, align 4, !tbaa !5
  %25901 = load ptr, ptr %559, align 8, !tbaa !9
  %25902 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %25901, i32 0, i32 1
  %25903 = load ptr, ptr %25902, align 8, !tbaa !26
  %25904 = icmp eq ptr %25903, null
  br i1 %25904, label %25905, label %25958

25905:                                            ; preds = %25898
  br label %25906

25906:                                            ; preds = %25905
  br label %25907

25907:                                            ; preds = %25906
  call void @llvm.lifetime.start.p0(i64 4, ptr %561) #12
  %25908 = call ptr @__errno_location() #13
  %25909 = load i32, ptr %25908, align 4, !tbaa !5
  store i32 %25909, ptr %561, align 4, !tbaa !5
  %25910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25911 = call i32 @s2n_print_stacktrace(ptr noundef %25910)
  %25912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25913 = trunc i8 %25912 to i1
  br i1 %25913, label %25914, label %25936

25914:                                            ; preds = %25907
  %25915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25916 = call i32 @fileno(ptr noundef %25915) #12
  %25917 = call i32 @isatty(i32 noundef %25916) #12
  %25918 = icmp ne i32 %25917, 0
  br i1 %25918, label %25919, label %25936

25919:                                            ; preds = %25914
  %25920 = load i32, ptr %561, align 4, !tbaa !5
  %25921 = call ptr @__errno_location() #13
  store i32 %25920, ptr %25921, align 4, !tbaa !5
  %25922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25923 = load i32, ptr @test_count, align 4, !tbaa !5
  %25924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25925 = load i32, ptr %25924, align 4, !tbaa !5
  %25926 = call ptr @s2n_strerror(i32 noundef %25925, ptr noundef @.str.6)
  %25927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25928 = load i32, ptr %25927, align 4, !tbaa !5
  %25929 = call ptr @s2n_strerror_debug(i32 noundef %25928, ptr noundef @.str.6)
  %25930 = call ptr @__errno_location() #13
  %25931 = load i32, ptr %25930, align 4, !tbaa !5
  %25932 = call ptr @strerror(i32 noundef %25931) #12
  %25933 = call ptr @__errno_location() #13
  %25934 = load i32, ptr %25933, align 4, !tbaa !5
  %25935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25922, ptr noundef @.str.4, i32 noundef %25923, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 1002, ptr noundef %25926, ptr noundef %25929, ptr noundef %25932, i32 noundef %25934) #12
  br label %25953

25936:                                            ; preds = %25914, %25907
  %25937 = load i32, ptr %561, align 4, !tbaa !5
  %25938 = call ptr @__errno_location() #13
  store i32 %25937, ptr %25938, align 4, !tbaa !5
  %25939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25940 = load i32, ptr @test_count, align 4, !tbaa !5
  %25941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25942 = load i32, ptr %25941, align 4, !tbaa !5
  %25943 = call ptr @s2n_strerror(i32 noundef %25942, ptr noundef @.str.6)
  %25944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25945 = load i32, ptr %25944, align 4, !tbaa !5
  %25946 = call ptr @s2n_strerror_debug(i32 noundef %25945, ptr noundef @.str.6)
  %25947 = call ptr @__errno_location() #13
  %25948 = load i32, ptr %25947, align 4, !tbaa !5
  %25949 = call ptr @strerror(i32 noundef %25948) #12
  %25950 = call ptr @__errno_location() #13
  %25951 = load i32, ptr %25950, align 4, !tbaa !5
  %25952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25939, ptr noundef @.str.7, i32 noundef %25940, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 1002, ptr noundef %25943, ptr noundef %25946, ptr noundef %25949, i32 noundef %25951) #12
  br label %25953

25953:                                            ; preds = %25936, %25919
  call void @llvm.lifetime.end.p0(i64 4, ptr %561) #12
  br label %25954

25954:                                            ; preds = %25953
  br label %25955

25955:                                            ; preds = %25954
  call void @exit(i32 noundef 1) #14
  unreachable

25956:                                            ; No predecessors!
  br label %25957

25957:                                            ; preds = %25956
  br label %25958

25958:                                            ; preds = %25957, %25898
  br label %25959

25959:                                            ; preds = %25958
  br label %25960

25960:                                            ; preds = %25959
  br label %25961

25961:                                            ; preds = %25960
  %25962 = load i32, ptr @test_count, align 4, !tbaa !5
  %25963 = add nsw i32 %25962, 1
  store i32 %25963, ptr @test_count, align 4, !tbaa !5
  %25964 = load ptr, ptr %559, align 8, !tbaa !9
  %25965 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %548, i64 0, i64 1
  %25966 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %25964, ptr noundef %25965)
  %25967 = icmp ne i32 %25966, 0
  br i1 %25967, label %26021, label %25968

25968:                                            ; preds = %25961
  br label %25969

25969:                                            ; preds = %25968
  br label %25970

25970:                                            ; preds = %25969
  call void @llvm.lifetime.start.p0(i64 4, ptr %562) #12
  %25971 = call ptr @__errno_location() #13
  %25972 = load i32, ptr %25971, align 4, !tbaa !5
  store i32 %25972, ptr %562, align 4, !tbaa !5
  %25973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25974 = call i32 @s2n_print_stacktrace(ptr noundef %25973)
  %25975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25976 = trunc i8 %25975 to i1
  br i1 %25976, label %25977, label %25999

25977:                                            ; preds = %25970
  %25978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25979 = call i32 @fileno(ptr noundef %25978) #12
  %25980 = call i32 @isatty(i32 noundef %25979) #12
  %25981 = icmp ne i32 %25980, 0
  br i1 %25981, label %25982, label %25999

25982:                                            ; preds = %25977
  %25983 = load i32, ptr %562, align 4, !tbaa !5
  %25984 = call ptr @__errno_location() #13
  store i32 %25983, ptr %25984, align 4, !tbaa !5
  %25985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25986 = load i32, ptr @test_count, align 4, !tbaa !5
  %25987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25988 = load i32, ptr %25987, align 4, !tbaa !5
  %25989 = call ptr @s2n_strerror(i32 noundef %25988, ptr noundef @.str.6)
  %25990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25991 = load i32, ptr %25990, align 4, !tbaa !5
  %25992 = call ptr @s2n_strerror_debug(i32 noundef %25991, ptr noundef @.str.6)
  %25993 = call ptr @__errno_location() #13
  %25994 = load i32, ptr %25993, align 4, !tbaa !5
  %25995 = call ptr @strerror(i32 noundef %25994) #12
  %25996 = call ptr @__errno_location() #13
  %25997 = load i32, ptr %25996, align 4, !tbaa !5
  %25998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25985, ptr noundef @.str.4, i32 noundef %25986, ptr noundef @.str.106, ptr noundef @.str.3, i32 noundef 1003, ptr noundef %25989, ptr noundef %25992, ptr noundef %25995, i32 noundef %25997) #12
  br label %26016

25999:                                            ; preds = %25977, %25970
  %26000 = load i32, ptr %562, align 4, !tbaa !5
  %26001 = call ptr @__errno_location() #13
  store i32 %26000, ptr %26001, align 4, !tbaa !5
  %26002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26003 = load i32, ptr @test_count, align 4, !tbaa !5
  %26004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26005 = load i32, ptr %26004, align 4, !tbaa !5
  %26006 = call ptr @s2n_strerror(i32 noundef %26005, ptr noundef @.str.6)
  %26007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26008 = load i32, ptr %26007, align 4, !tbaa !5
  %26009 = call ptr @s2n_strerror_debug(i32 noundef %26008, ptr noundef @.str.6)
  %26010 = call ptr @__errno_location() #13
  %26011 = load i32, ptr %26010, align 4, !tbaa !5
  %26012 = call ptr @strerror(i32 noundef %26011) #12
  %26013 = call ptr @__errno_location() #13
  %26014 = load i32, ptr %26013, align 4, !tbaa !5
  %26015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26002, ptr noundef @.str.7, i32 noundef %26003, ptr noundef @.str.106, ptr noundef @.str.3, i32 noundef 1003, ptr noundef %26006, ptr noundef %26009, ptr noundef %26012, i32 noundef %26014) #12
  br label %26016

26016:                                            ; preds = %25999, %25982
  call void @llvm.lifetime.end.p0(i64 4, ptr %562) #12
  br label %26017

26017:                                            ; preds = %26016
  br label %26018

26018:                                            ; preds = %26017
  call void @exit(i32 noundef 1) #14
  unreachable

26019:                                            ; No predecessors!
  br label %26020

26020:                                            ; preds = %26019
  br label %26021

26021:                                            ; preds = %26020, %25961
  br label %26022

26022:                                            ; preds = %26021
  br label %26023

26023:                                            ; preds = %26022
  call void @llvm.lifetime.start.p0(i64 8, ptr %563) #12
  store i64 0, ptr %563, align 8, !tbaa !65
  br label %26024

26024:                                            ; preds = %26092, %26023
  %26025 = load i64, ptr %563, align 8, !tbaa !65
  %26026 = icmp ult i64 %26025, 2
  br i1 %26026, label %26028, label %26027

26027:                                            ; preds = %26024
  store i32 2437, ptr %126, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %563) #12
  br label %26095

26028:                                            ; preds = %26024
  br label %26029

26029:                                            ; preds = %26028
  %26030 = load i32, ptr @test_count, align 4, !tbaa !5
  %26031 = add nsw i32 %26030, 1
  store i32 %26031, ptr @test_count, align 4, !tbaa !5
  %26032 = load i64, ptr %563, align 8, !tbaa !65
  %26033 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %548, i64 0, i64 %26032
  %26034 = call i32 @s2n_ecc_evp_params_free(ptr noundef %26033)
  %26035 = icmp eq i32 %26034, -1
  br i1 %26035, label %26036, label %26089

26036:                                            ; preds = %26029
  br label %26037

26037:                                            ; preds = %26036
  br label %26038

26038:                                            ; preds = %26037
  call void @llvm.lifetime.start.p0(i64 4, ptr %564) #12
  %26039 = call ptr @__errno_location() #13
  %26040 = load i32, ptr %26039, align 4, !tbaa !5
  store i32 %26040, ptr %564, align 4, !tbaa !5
  %26041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26042 = call i32 @s2n_print_stacktrace(ptr noundef %26041)
  %26043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26044 = trunc i8 %26043 to i1
  br i1 %26044, label %26045, label %26067

26045:                                            ; preds = %26038
  %26046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26047 = call i32 @fileno(ptr noundef %26046) #12
  %26048 = call i32 @isatty(i32 noundef %26047) #12
  %26049 = icmp ne i32 %26048, 0
  br i1 %26049, label %26050, label %26067

26050:                                            ; preds = %26045
  %26051 = load i32, ptr %564, align 4, !tbaa !5
  %26052 = call ptr @__errno_location() #13
  store i32 %26051, ptr %26052, align 4, !tbaa !5
  %26053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26054 = load i32, ptr @test_count, align 4, !tbaa !5
  %26055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26056 = load i32, ptr %26055, align 4, !tbaa !5
  %26057 = call ptr @s2n_strerror(i32 noundef %26056, ptr noundef @.str.6)
  %26058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26059 = load i32, ptr %26058, align 4, !tbaa !5
  %26060 = call ptr @s2n_strerror_debug(i32 noundef %26059, ptr noundef @.str.6)
  %26061 = call ptr @__errno_location() #13
  %26062 = load i32, ptr %26061, align 4, !tbaa !5
  %26063 = call ptr @strerror(i32 noundef %26062) #12
  %26064 = call ptr @__errno_location() #13
  %26065 = load i32, ptr %26064, align 4, !tbaa !5
  %26066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26053, ptr noundef @.str.4, i32 noundef %26054, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 1006, ptr noundef %26057, ptr noundef %26060, ptr noundef %26063, i32 noundef %26065) #12
  br label %26084

26067:                                            ; preds = %26045, %26038
  %26068 = load i32, ptr %564, align 4, !tbaa !5
  %26069 = call ptr @__errno_location() #13
  store i32 %26068, ptr %26069, align 4, !tbaa !5
  %26070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26071 = load i32, ptr @test_count, align 4, !tbaa !5
  %26072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26073 = load i32, ptr %26072, align 4, !tbaa !5
  %26074 = call ptr @s2n_strerror(i32 noundef %26073, ptr noundef @.str.6)
  %26075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26076 = load i32, ptr %26075, align 4, !tbaa !5
  %26077 = call ptr @s2n_strerror_debug(i32 noundef %26076, ptr noundef @.str.6)
  %26078 = call ptr @__errno_location() #13
  %26079 = load i32, ptr %26078, align 4, !tbaa !5
  %26080 = call ptr @strerror(i32 noundef %26079) #12
  %26081 = call ptr @__errno_location() #13
  %26082 = load i32, ptr %26081, align 4, !tbaa !5
  %26083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26070, ptr noundef @.str.7, i32 noundef %26071, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 1006, ptr noundef %26074, ptr noundef %26077, ptr noundef %26080, i32 noundef %26082) #12
  br label %26084

26084:                                            ; preds = %26067, %26050
  call void @llvm.lifetime.end.p0(i64 4, ptr %564) #12
  br label %26085

26085:                                            ; preds = %26084
  br label %26086

26086:                                            ; preds = %26085
  call void @exit(i32 noundef 1) #14
  unreachable

26087:                                            ; No predecessors!
  br label %26088

26088:                                            ; preds = %26087
  br label %26089

26089:                                            ; preds = %26088, %26029
  br label %26090

26090:                                            ; preds = %26089
  br label %26091

26091:                                            ; preds = %26090
  br label %26092

26092:                                            ; preds = %26091
  %26093 = load i64, ptr %563, align 8, !tbaa !65
  %26094 = add i64 %26093, 1
  store i64 %26094, ptr %563, align 8, !tbaa !65
  br label %26024, !llvm.loop !70

26095:                                            ; preds = %26027
  br label %26096

26096:                                            ; preds = %26095
  %26097 = load i32, ptr @test_count, align 4, !tbaa !5
  %26098 = add nsw i32 %26097, 1
  store i32 %26098, ptr @test_count, align 4, !tbaa !5
  %26099 = call i32 @s2n_stuffer_free(ptr noundef %542)
  %26100 = icmp eq i32 %26099, -1
  br i1 %26100, label %26101, label %26154

26101:                                            ; preds = %26096
  br label %26102

26102:                                            ; preds = %26101
  br label %26103

26103:                                            ; preds = %26102
  call void @llvm.lifetime.start.p0(i64 4, ptr %565) #12
  %26104 = call ptr @__errno_location() #13
  %26105 = load i32, ptr %26104, align 4, !tbaa !5
  store i32 %26105, ptr %565, align 4, !tbaa !5
  %26106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26107 = call i32 @s2n_print_stacktrace(ptr noundef %26106)
  %26108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26109 = trunc i8 %26108 to i1
  br i1 %26109, label %26110, label %26132

26110:                                            ; preds = %26103
  %26111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26112 = call i32 @fileno(ptr noundef %26111) #12
  %26113 = call i32 @isatty(i32 noundef %26112) #12
  %26114 = icmp ne i32 %26113, 0
  br i1 %26114, label %26115, label %26132

26115:                                            ; preds = %26110
  %26116 = load i32, ptr %565, align 4, !tbaa !5
  %26117 = call ptr @__errno_location() #13
  store i32 %26116, ptr %26117, align 4, !tbaa !5
  %26118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26119 = load i32, ptr @test_count, align 4, !tbaa !5
  %26120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26121 = load i32, ptr %26120, align 4, !tbaa !5
  %26122 = call ptr @s2n_strerror(i32 noundef %26121, ptr noundef @.str.6)
  %26123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26124 = load i32, ptr %26123, align 4, !tbaa !5
  %26125 = call ptr @s2n_strerror_debug(i32 noundef %26124, ptr noundef @.str.6)
  %26126 = call ptr @__errno_location() #13
  %26127 = load i32, ptr %26126, align 4, !tbaa !5
  %26128 = call ptr @strerror(i32 noundef %26127) #12
  %26129 = call ptr @__errno_location() #13
  %26130 = load i32, ptr %26129, align 4, !tbaa !5
  %26131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26118, ptr noundef @.str.4, i32 noundef %26119, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 1008, ptr noundef %26122, ptr noundef %26125, ptr noundef %26128, i32 noundef %26130) #12
  br label %26149

26132:                                            ; preds = %26110, %26103
  %26133 = load i32, ptr %565, align 4, !tbaa !5
  %26134 = call ptr @__errno_location() #13
  store i32 %26133, ptr %26134, align 4, !tbaa !5
  %26135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26136 = load i32, ptr @test_count, align 4, !tbaa !5
  %26137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26138 = load i32, ptr %26137, align 4, !tbaa !5
  %26139 = call ptr @s2n_strerror(i32 noundef %26138, ptr noundef @.str.6)
  %26140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26141 = load i32, ptr %26140, align 4, !tbaa !5
  %26142 = call ptr @s2n_strerror_debug(i32 noundef %26141, ptr noundef @.str.6)
  %26143 = call ptr @__errno_location() #13
  %26144 = load i32, ptr %26143, align 4, !tbaa !5
  %26145 = call ptr @strerror(i32 noundef %26144) #12
  %26146 = call ptr @__errno_location() #13
  %26147 = load i32, ptr %26146, align 4, !tbaa !5
  %26148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26135, ptr noundef @.str.7, i32 noundef %26136, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 1008, ptr noundef %26139, ptr noundef %26142, ptr noundef %26145, i32 noundef %26147) #12
  br label %26149

26149:                                            ; preds = %26132, %26115
  call void @llvm.lifetime.end.p0(i64 4, ptr %565) #12
  br label %26150

26150:                                            ; preds = %26149
  br label %26151

26151:                                            ; preds = %26150
  call void @exit(i32 noundef 1) #14
  unreachable

26152:                                            ; No predecessors!
  br label %26153

26153:                                            ; preds = %26152
  br label %26154

26154:                                            ; preds = %26153, %26096
  br label %26155

26155:                                            ; preds = %26154
  br label %26156

26156:                                            ; preds = %26155
  br label %26157

26157:                                            ; preds = %26156
  %26158 = load i32, ptr @test_count, align 4, !tbaa !5
  %26159 = add nsw i32 %26158, 1
  store i32 %26159, ptr @test_count, align 4, !tbaa !5
  %26160 = load ptr, ptr %536, align 8, !tbaa !9
  %26161 = call i32 @s2n_connection_free(ptr noundef %26160)
  %26162 = icmp eq i32 %26161, -1
  br i1 %26162, label %26163, label %26216

26163:                                            ; preds = %26157
  br label %26164

26164:                                            ; preds = %26163
  br label %26165

26165:                                            ; preds = %26164
  call void @llvm.lifetime.start.p0(i64 4, ptr %566) #12
  %26166 = call ptr @__errno_location() #13
  %26167 = load i32, ptr %26166, align 4, !tbaa !5
  store i32 %26167, ptr %566, align 4, !tbaa !5
  %26168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26169 = call i32 @s2n_print_stacktrace(ptr noundef %26168)
  %26170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26171 = trunc i8 %26170 to i1
  br i1 %26171, label %26172, label %26194

26172:                                            ; preds = %26165
  %26173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26174 = call i32 @fileno(ptr noundef %26173) #12
  %26175 = call i32 @isatty(i32 noundef %26174) #12
  %26176 = icmp ne i32 %26175, 0
  br i1 %26176, label %26177, label %26194

26177:                                            ; preds = %26172
  %26178 = load i32, ptr %566, align 4, !tbaa !5
  %26179 = call ptr @__errno_location() #13
  store i32 %26178, ptr %26179, align 4, !tbaa !5
  %26180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26181 = load i32, ptr @test_count, align 4, !tbaa !5
  %26182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26183 = load i32, ptr %26182, align 4, !tbaa !5
  %26184 = call ptr @s2n_strerror(i32 noundef %26183, ptr noundef @.str.6)
  %26185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26186 = load i32, ptr %26185, align 4, !tbaa !5
  %26187 = call ptr @s2n_strerror_debug(i32 noundef %26186, ptr noundef @.str.6)
  %26188 = call ptr @__errno_location() #13
  %26189 = load i32, ptr %26188, align 4, !tbaa !5
  %26190 = call ptr @strerror(i32 noundef %26189) #12
  %26191 = call ptr @__errno_location() #13
  %26192 = load i32, ptr %26191, align 4, !tbaa !5
  %26193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26180, ptr noundef @.str.4, i32 noundef %26181, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 1009, ptr noundef %26184, ptr noundef %26187, ptr noundef %26190, i32 noundef %26192) #12
  br label %26211

26194:                                            ; preds = %26172, %26165
  %26195 = load i32, ptr %566, align 4, !tbaa !5
  %26196 = call ptr @__errno_location() #13
  store i32 %26195, ptr %26196, align 4, !tbaa !5
  %26197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26198 = load i32, ptr @test_count, align 4, !tbaa !5
  %26199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26200 = load i32, ptr %26199, align 4, !tbaa !5
  %26201 = call ptr @s2n_strerror(i32 noundef %26200, ptr noundef @.str.6)
  %26202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26203 = load i32, ptr %26202, align 4, !tbaa !5
  %26204 = call ptr @s2n_strerror_debug(i32 noundef %26203, ptr noundef @.str.6)
  %26205 = call ptr @__errno_location() #13
  %26206 = load i32, ptr %26205, align 4, !tbaa !5
  %26207 = call ptr @strerror(i32 noundef %26206) #12
  %26208 = call ptr @__errno_location() #13
  %26209 = load i32, ptr %26208, align 4, !tbaa !5
  %26210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26197, ptr noundef @.str.7, i32 noundef %26198, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 1009, ptr noundef %26201, ptr noundef %26204, ptr noundef %26207, i32 noundef %26209) #12
  br label %26211

26211:                                            ; preds = %26194, %26177
  call void @llvm.lifetime.end.p0(i64 4, ptr %566) #12
  br label %26212

26212:                                            ; preds = %26211
  br label %26213

26213:                                            ; preds = %26212
  call void @exit(i32 noundef 1) #14
  unreachable

26214:                                            ; No predecessors!
  br label %26215

26215:                                            ; preds = %26214
  br label %26216

26216:                                            ; preds = %26215, %26157
  br label %26217

26217:                                            ; preds = %26216
  br label %26218

26218:                                            ; preds = %26217
  br label %26219

26219:                                            ; preds = %26218
  %26220 = load i32, ptr @test_count, align 4, !tbaa !5
  %26221 = add nsw i32 %26220, 1
  store i32 %26221, ptr @test_count, align 4, !tbaa !5
  %26222 = load ptr, ptr %533, align 8, !tbaa !9
  %26223 = call i32 @s2n_config_free(ptr noundef %26222)
  %26224 = icmp eq i32 %26223, -1
  br i1 %26224, label %26225, label %26278

26225:                                            ; preds = %26219
  br label %26226

26226:                                            ; preds = %26225
  br label %26227

26227:                                            ; preds = %26226
  call void @llvm.lifetime.start.p0(i64 4, ptr %567) #12
  %26228 = call ptr @__errno_location() #13
  %26229 = load i32, ptr %26228, align 4, !tbaa !5
  store i32 %26229, ptr %567, align 4, !tbaa !5
  %26230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26231 = call i32 @s2n_print_stacktrace(ptr noundef %26230)
  %26232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26233 = trunc i8 %26232 to i1
  br i1 %26233, label %26234, label %26256

26234:                                            ; preds = %26227
  %26235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26236 = call i32 @fileno(ptr noundef %26235) #12
  %26237 = call i32 @isatty(i32 noundef %26236) #12
  %26238 = icmp ne i32 %26237, 0
  br i1 %26238, label %26239, label %26256

26239:                                            ; preds = %26234
  %26240 = load i32, ptr %567, align 4, !tbaa !5
  %26241 = call ptr @__errno_location() #13
  store i32 %26240, ptr %26241, align 4, !tbaa !5
  %26242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26243 = load i32, ptr @test_count, align 4, !tbaa !5
  %26244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26245 = load i32, ptr %26244, align 4, !tbaa !5
  %26246 = call ptr @s2n_strerror(i32 noundef %26245, ptr noundef @.str.6)
  %26247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26248 = load i32, ptr %26247, align 4, !tbaa !5
  %26249 = call ptr @s2n_strerror_debug(i32 noundef %26248, ptr noundef @.str.6)
  %26250 = call ptr @__errno_location() #13
  %26251 = load i32, ptr %26250, align 4, !tbaa !5
  %26252 = call ptr @strerror(i32 noundef %26251) #12
  %26253 = call ptr @__errno_location() #13
  %26254 = load i32, ptr %26253, align 4, !tbaa !5
  %26255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26242, ptr noundef @.str.4, i32 noundef %26243, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 1010, ptr noundef %26246, ptr noundef %26249, ptr noundef %26252, i32 noundef %26254) #12
  br label %26273

26256:                                            ; preds = %26234, %26227
  %26257 = load i32, ptr %567, align 4, !tbaa !5
  %26258 = call ptr @__errno_location() #13
  store i32 %26257, ptr %26258, align 4, !tbaa !5
  %26259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26260 = load i32, ptr @test_count, align 4, !tbaa !5
  %26261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26262 = load i32, ptr %26261, align 4, !tbaa !5
  %26263 = call ptr @s2n_strerror(i32 noundef %26262, ptr noundef @.str.6)
  %26264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26265 = load i32, ptr %26264, align 4, !tbaa !5
  %26266 = call ptr @s2n_strerror_debug(i32 noundef %26265, ptr noundef @.str.6)
  %26267 = call ptr @__errno_location() #13
  %26268 = load i32, ptr %26267, align 4, !tbaa !5
  %26269 = call ptr @strerror(i32 noundef %26268) #12
  %26270 = call ptr @__errno_location() #13
  %26271 = load i32, ptr %26270, align 4, !tbaa !5
  %26272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26259, ptr noundef @.str.7, i32 noundef %26260, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 1010, ptr noundef %26263, ptr noundef %26266, ptr noundef %26269, i32 noundef %26271) #12
  br label %26273

26273:                                            ; preds = %26256, %26239
  call void @llvm.lifetime.end.p0(i64 4, ptr %567) #12
  br label %26274

26274:                                            ; preds = %26273
  br label %26275

26275:                                            ; preds = %26274
  call void @exit(i32 noundef 1) #14
  unreachable

26276:                                            ; No predecessors!
  br label %26277

26277:                                            ; preds = %26276
  br label %26278

26278:                                            ; preds = %26277, %26219
  br label %26279

26279:                                            ; preds = %26278
  br label %26280

26280:                                            ; preds = %26279
  call void @llvm.lifetime.end.p0(i64 8, ptr %559) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %552) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %549) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %548) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %544) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %542) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %536) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %533) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %568) #12
  %26281 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %26281, ptr %568, align 8, !tbaa !9
  br label %26282

26282:                                            ; preds = %26280
  %26283 = load i32, ptr @test_count, align 4, !tbaa !5
  %26284 = add nsw i32 %26283, 1
  store i32 %26284, ptr @test_count, align 4, !tbaa !5
  %26285 = load ptr, ptr %568, align 8, !tbaa !9
  %26286 = icmp eq ptr %26285, null
  br i1 %26286, label %26287, label %26340

26287:                                            ; preds = %26282
  br label %26288

26288:                                            ; preds = %26287
  br label %26289

26289:                                            ; preds = %26288
  call void @llvm.lifetime.start.p0(i64 4, ptr %569) #12
  %26290 = call ptr @__errno_location() #13
  %26291 = load i32, ptr %26290, align 4, !tbaa !5
  store i32 %26291, ptr %569, align 4, !tbaa !5
  %26292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26293 = call i32 @s2n_print_stacktrace(ptr noundef %26292)
  %26294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26295 = trunc i8 %26294 to i1
  br i1 %26295, label %26296, label %26318

26296:                                            ; preds = %26289
  %26297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26298 = call i32 @fileno(ptr noundef %26297) #12
  %26299 = call i32 @isatty(i32 noundef %26298) #12
  %26300 = icmp ne i32 %26299, 0
  br i1 %26300, label %26301, label %26318

26301:                                            ; preds = %26296
  %26302 = load i32, ptr %569, align 4, !tbaa !5
  %26303 = call ptr @__errno_location() #13
  store i32 %26302, ptr %26303, align 4, !tbaa !5
  %26304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26305 = load i32, ptr @test_count, align 4, !tbaa !5
  %26306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26307 = load i32, ptr %26306, align 4, !tbaa !5
  %26308 = call ptr @s2n_strerror(i32 noundef %26307, ptr noundef @.str.6)
  %26309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26310 = load i32, ptr %26309, align 4, !tbaa !5
  %26311 = call ptr @s2n_strerror_debug(i32 noundef %26310, ptr noundef @.str.6)
  %26312 = call ptr @__errno_location() #13
  %26313 = load i32, ptr %26312, align 4, !tbaa !5
  %26314 = call ptr @strerror(i32 noundef %26313) #12
  %26315 = call ptr @__errno_location() #13
  %26316 = load i32, ptr %26315, align 4, !tbaa !5
  %26317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26304, ptr noundef @.str.4, i32 noundef %26305, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 1017, ptr noundef %26308, ptr noundef %26311, ptr noundef %26314, i32 noundef %26316) #12
  br label %26335

26318:                                            ; preds = %26296, %26289
  %26319 = load i32, ptr %569, align 4, !tbaa !5
  %26320 = call ptr @__errno_location() #13
  store i32 %26319, ptr %26320, align 4, !tbaa !5
  %26321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26322 = load i32, ptr @test_count, align 4, !tbaa !5
  %26323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26324 = load i32, ptr %26323, align 4, !tbaa !5
  %26325 = call ptr @s2n_strerror(i32 noundef %26324, ptr noundef @.str.6)
  %26326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26327 = load i32, ptr %26326, align 4, !tbaa !5
  %26328 = call ptr @s2n_strerror_debug(i32 noundef %26327, ptr noundef @.str.6)
  %26329 = call ptr @__errno_location() #13
  %26330 = load i32, ptr %26329, align 4, !tbaa !5
  %26331 = call ptr @strerror(i32 noundef %26330) #12
  %26332 = call ptr @__errno_location() #13
  %26333 = load i32, ptr %26332, align 4, !tbaa !5
  %26334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26321, ptr noundef @.str.7, i32 noundef %26322, ptr noundef @.str.87, ptr noundef @.str.3, i32 noundef 1017, ptr noundef %26325, ptr noundef %26328, ptr noundef %26331, i32 noundef %26333) #12
  br label %26335

26335:                                            ; preds = %26318, %26301
  call void @llvm.lifetime.end.p0(i64 4, ptr %569) #12
  br label %26336

26336:                                            ; preds = %26335
  br label %26337

26337:                                            ; preds = %26336
  call void @exit(i32 noundef 1) #14
  unreachable

26338:                                            ; No predecessors!
  br label %26339

26339:                                            ; preds = %26338
  br label %26340

26340:                                            ; preds = %26339, %26282
  br label %26341

26341:                                            ; preds = %26340
  br label %26342

26342:                                            ; preds = %26341
  br label %26343

26343:                                            ; preds = %26342
  %26344 = load i32, ptr @test_count, align 4, !tbaa !5
  %26345 = add nsw i32 %26344, 1
  store i32 %26345, ptr @test_count, align 4, !tbaa !5
  %26346 = load ptr, ptr %568, align 8, !tbaa !9
  %26347 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %26346, i8 noundef zeroext 34)
  %26348 = icmp eq i32 %26347, -1
  br i1 %26348, label %26349, label %26402

26349:                                            ; preds = %26343
  br label %26350

26350:                                            ; preds = %26349
  br label %26351

26351:                                            ; preds = %26350
  call void @llvm.lifetime.start.p0(i64 4, ptr %570) #12
  %26352 = call ptr @__errno_location() #13
  %26353 = load i32, ptr %26352, align 4, !tbaa !5
  store i32 %26353, ptr %570, align 4, !tbaa !5
  %26354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26355 = call i32 @s2n_print_stacktrace(ptr noundef %26354)
  %26356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26357 = trunc i8 %26356 to i1
  br i1 %26357, label %26358, label %26380

26358:                                            ; preds = %26351
  %26359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26360 = call i32 @fileno(ptr noundef %26359) #12
  %26361 = call i32 @isatty(i32 noundef %26360) #12
  %26362 = icmp ne i32 %26361, 0
  br i1 %26362, label %26363, label %26380

26363:                                            ; preds = %26358
  %26364 = load i32, ptr %570, align 4, !tbaa !5
  %26365 = call ptr @__errno_location() #13
  store i32 %26364, ptr %26365, align 4, !tbaa !5
  %26366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26367 = load i32, ptr @test_count, align 4, !tbaa !5
  %26368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26369 = load i32, ptr %26368, align 4, !tbaa !5
  %26370 = call ptr @s2n_strerror(i32 noundef %26369, ptr noundef @.str.6)
  %26371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26372 = load i32, ptr %26371, align 4, !tbaa !5
  %26373 = call ptr @s2n_strerror_debug(i32 noundef %26372, ptr noundef @.str.6)
  %26374 = call ptr @__errno_location() #13
  %26375 = load i32, ptr %26374, align 4, !tbaa !5
  %26376 = call ptr @strerror(i32 noundef %26375) #12
  %26377 = call ptr @__errno_location() #13
  %26378 = load i32, ptr %26377, align 4, !tbaa !5
  %26379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26366, ptr noundef @.str.4, i32 noundef %26367, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 1018, ptr noundef %26370, ptr noundef %26373, ptr noundef %26376, i32 noundef %26378) #12
  br label %26397

26380:                                            ; preds = %26358, %26351
  %26381 = load i32, ptr %570, align 4, !tbaa !5
  %26382 = call ptr @__errno_location() #13
  store i32 %26381, ptr %26382, align 4, !tbaa !5
  %26383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26384 = load i32, ptr @test_count, align 4, !tbaa !5
  %26385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26386 = load i32, ptr %26385, align 4, !tbaa !5
  %26387 = call ptr @s2n_strerror(i32 noundef %26386, ptr noundef @.str.6)
  %26388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26389 = load i32, ptr %26388, align 4, !tbaa !5
  %26390 = call ptr @s2n_strerror_debug(i32 noundef %26389, ptr noundef @.str.6)
  %26391 = call ptr @__errno_location() #13
  %26392 = load i32, ptr %26391, align 4, !tbaa !5
  %26393 = call ptr @strerror(i32 noundef %26392) #12
  %26394 = call ptr @__errno_location() #13
  %26395 = load i32, ptr %26394, align 4, !tbaa !5
  %26396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26383, ptr noundef @.str.7, i32 noundef %26384, ptr noundef @.str.60, ptr noundef @.str.3, i32 noundef 1018, ptr noundef %26387, ptr noundef %26390, ptr noundef %26393, i32 noundef %26395) #12
  br label %26397

26397:                                            ; preds = %26380, %26363
  call void @llvm.lifetime.end.p0(i64 4, ptr %570) #12
  br label %26398

26398:                                            ; preds = %26397
  br label %26399

26399:                                            ; preds = %26398
  call void @exit(i32 noundef 1) #14
  unreachable

26400:                                            ; No predecessors!
  br label %26401

26401:                                            ; preds = %26400
  br label %26402

26402:                                            ; preds = %26401, %26343
  br label %26403

26403:                                            ; preds = %26402
  br label %26404

26404:                                            ; preds = %26403
  br label %26405

26405:                                            ; preds = %26404
  %26406 = load i32, ptr @test_count, align 4, !tbaa !5
  %26407 = add nsw i32 %26406, 1
  store i32 %26407, ptr @test_count, align 4, !tbaa !5
  %26408 = load ptr, ptr %568, align 8, !tbaa !9
  %26409 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %26408)
  %26410 = getelementptr inbounds %struct.s2n_result, ptr %571, i32 0, i32 0
  store i32 %26409, ptr %26410, align 4
  %26411 = getelementptr inbounds %struct.s2n_result, ptr %571, i32 0, i32 0
  %26412 = load i32, ptr %26411, align 4
  %26413 = call zeroext i1 @s2n_result_is_ok(i32 %26412)
  br i1 %26413, label %26467, label %26414

26414:                                            ; preds = %26405
  br label %26415

26415:                                            ; preds = %26414
  br label %26416

26416:                                            ; preds = %26415
  call void @llvm.lifetime.start.p0(i64 4, ptr %572) #12
  %26417 = call ptr @__errno_location() #13
  %26418 = load i32, ptr %26417, align 4, !tbaa !5
  store i32 %26418, ptr %572, align 4, !tbaa !5
  %26419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26420 = call i32 @s2n_print_stacktrace(ptr noundef %26419)
  %26421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26422 = trunc i8 %26421 to i1
  br i1 %26422, label %26423, label %26445

26423:                                            ; preds = %26416
  %26424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26425 = call i32 @fileno(ptr noundef %26424) #12
  %26426 = call i32 @isatty(i32 noundef %26425) #12
  %26427 = icmp ne i32 %26426, 0
  br i1 %26427, label %26428, label %26445

26428:                                            ; preds = %26423
  %26429 = load i32, ptr %572, align 4, !tbaa !5
  %26430 = call ptr @__errno_location() #13
  store i32 %26429, ptr %26430, align 4, !tbaa !5
  %26431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26432 = load i32, ptr @test_count, align 4, !tbaa !5
  %26433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26434 = load i32, ptr %26433, align 4, !tbaa !5
  %26435 = call ptr @s2n_strerror(i32 noundef %26434, ptr noundef @.str.6)
  %26436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26437 = load i32, ptr %26436, align 4, !tbaa !5
  %26438 = call ptr @s2n_strerror_debug(i32 noundef %26437, ptr noundef @.str.6)
  %26439 = call ptr @__errno_location() #13
  %26440 = load i32, ptr %26439, align 4, !tbaa !5
  %26441 = call ptr @strerror(i32 noundef %26440) #12
  %26442 = call ptr @__errno_location() #13
  %26443 = load i32, ptr %26442, align 4, !tbaa !5
  %26444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26431, ptr noundef @.str.4, i32 noundef %26432, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 1019, ptr noundef %26435, ptr noundef %26438, ptr noundef %26441, i32 noundef %26443) #12
  br label %26462

26445:                                            ; preds = %26423, %26416
  %26446 = load i32, ptr %572, align 4, !tbaa !5
  %26447 = call ptr @__errno_location() #13
  store i32 %26446, ptr %26447, align 4, !tbaa !5
  %26448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26449 = load i32, ptr @test_count, align 4, !tbaa !5
  %26450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26451 = load i32, ptr %26450, align 4, !tbaa !5
  %26452 = call ptr @s2n_strerror(i32 noundef %26451, ptr noundef @.str.6)
  %26453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26454 = load i32, ptr %26453, align 4, !tbaa !5
  %26455 = call ptr @s2n_strerror_debug(i32 noundef %26454, ptr noundef @.str.6)
  %26456 = call ptr @__errno_location() #13
  %26457 = load i32, ptr %26456, align 4, !tbaa !5
  %26458 = call ptr @strerror(i32 noundef %26457) #12
  %26459 = call ptr @__errno_location() #13
  %26460 = load i32, ptr %26459, align 4, !tbaa !5
  %26461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26448, ptr noundef @.str.7, i32 noundef %26449, ptr noundef @.str.51, ptr noundef @.str.3, i32 noundef 1019, ptr noundef %26452, ptr noundef %26455, ptr noundef %26458, i32 noundef %26460) #12
  br label %26462

26462:                                            ; preds = %26445, %26428
  call void @llvm.lifetime.end.p0(i64 4, ptr %572) #12
  br label %26463

26463:                                            ; preds = %26462
  br label %26464

26464:                                            ; preds = %26463
  call void @exit(i32 noundef 1) #14
  unreachable

26465:                                            ; No predecessors!
  br label %26466

26466:                                            ; preds = %26465
  br label %26467

26467:                                            ; preds = %26466, %26405
  br label %26468

26468:                                            ; preds = %26467
  br label %26469

26469:                                            ; preds = %26468
  call void @llvm.lifetime.start.p0(i64 40, ptr %573) #12
  call void @llvm.memset.p0.i64(ptr align 8 %573, i8 0, i64 40, i1 false)
  br label %26470

26470:                                            ; preds = %26469
  %26471 = load i32, ptr @test_count, align 4, !tbaa !5
  %26472 = add nsw i32 %26471, 1
  store i32 %26472, ptr @test_count, align 4, !tbaa !5
  %26473 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %573, i32 noundef 0)
  %26474 = icmp eq i32 %26473, -1
  br i1 %26474, label %26475, label %26528

26475:                                            ; preds = %26470
  br label %26476

26476:                                            ; preds = %26475
  br label %26477

26477:                                            ; preds = %26476
  call void @llvm.lifetime.start.p0(i64 4, ptr %574) #12
  %26478 = call ptr @__errno_location() #13
  %26479 = load i32, ptr %26478, align 4, !tbaa !5
  store i32 %26479, ptr %574, align 4, !tbaa !5
  %26480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26481 = call i32 @s2n_print_stacktrace(ptr noundef %26480)
  %26482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26483 = trunc i8 %26482 to i1
  br i1 %26483, label %26484, label %26506

26484:                                            ; preds = %26477
  %26485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26486 = call i32 @fileno(ptr noundef %26485) #12
  %26487 = call i32 @isatty(i32 noundef %26486) #12
  %26488 = icmp ne i32 %26487, 0
  br i1 %26488, label %26489, label %26506

26489:                                            ; preds = %26484
  %26490 = load i32, ptr %574, align 4, !tbaa !5
  %26491 = call ptr @__errno_location() #13
  store i32 %26490, ptr %26491, align 4, !tbaa !5
  %26492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26493 = load i32, ptr @test_count, align 4, !tbaa !5
  %26494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26495 = load i32, ptr %26494, align 4, !tbaa !5
  %26496 = call ptr @s2n_strerror(i32 noundef %26495, ptr noundef @.str.6)
  %26497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26498 = load i32, ptr %26497, align 4, !tbaa !5
  %26499 = call ptr @s2n_strerror_debug(i32 noundef %26498, ptr noundef @.str.6)
  %26500 = call ptr @__errno_location() #13
  %26501 = load i32, ptr %26500, align 4, !tbaa !5
  %26502 = call ptr @strerror(i32 noundef %26501) #12
  %26503 = call ptr @__errno_location() #13
  %26504 = load i32, ptr %26503, align 4, !tbaa !5
  %26505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26492, ptr noundef @.str.4, i32 noundef %26493, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 1022, ptr noundef %26496, ptr noundef %26499, ptr noundef %26502, i32 noundef %26504) #12
  br label %26523

26506:                                            ; preds = %26484, %26477
  %26507 = load i32, ptr %574, align 4, !tbaa !5
  %26508 = call ptr @__errno_location() #13
  store i32 %26507, ptr %26508, align 4, !tbaa !5
  %26509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26510 = load i32, ptr @test_count, align 4, !tbaa !5
  %26511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26512 = load i32, ptr %26511, align 4, !tbaa !5
  %26513 = call ptr @s2n_strerror(i32 noundef %26512, ptr noundef @.str.6)
  %26514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26515 = load i32, ptr %26514, align 4, !tbaa !5
  %26516 = call ptr @s2n_strerror_debug(i32 noundef %26515, ptr noundef @.str.6)
  %26517 = call ptr @__errno_location() #13
  %26518 = load i32, ptr %26517, align 4, !tbaa !5
  %26519 = call ptr @strerror(i32 noundef %26518) #12
  %26520 = call ptr @__errno_location() #13
  %26521 = load i32, ptr %26520, align 4, !tbaa !5
  %26522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26509, ptr noundef @.str.7, i32 noundef %26510, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 1022, ptr noundef %26513, ptr noundef %26516, ptr noundef %26519, i32 noundef %26521) #12
  br label %26523

26523:                                            ; preds = %26506, %26489
  call void @llvm.lifetime.end.p0(i64 4, ptr %574) #12
  br label %26524

26524:                                            ; preds = %26523
  br label %26525

26525:                                            ; preds = %26524
  call void @exit(i32 noundef 1) #14
  unreachable

26526:                                            ; No predecessors!
  br label %26527

26527:                                            ; preds = %26526
  br label %26528

26528:                                            ; preds = %26527, %26470
  br label %26529

26529:                                            ; preds = %26528
  br label %26530

26530:                                            ; preds = %26529
  call void @llvm.lifetime.start.p0(i64 8, ptr %575) #12
  store ptr null, ptr %575, align 8, !tbaa !9
  br label %26531

26531:                                            ; preds = %26530
  %26532 = load i32, ptr @test_count, align 4, !tbaa !5
  %26533 = add nsw i32 %26532, 1
  store i32 %26533, ptr @test_count, align 4, !tbaa !5
  %26534 = load ptr, ptr %568, align 8, !tbaa !9
  %26535 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %26534, ptr noundef %575)
  %26536 = icmp eq i32 %26535, -1
  br i1 %26536, label %26537, label %26590

26537:                                            ; preds = %26531
  br label %26538

26538:                                            ; preds = %26537
  br label %26539

26539:                                            ; preds = %26538
  call void @llvm.lifetime.start.p0(i64 4, ptr %576) #12
  %26540 = call ptr @__errno_location() #13
  %26541 = load i32, ptr %26540, align 4, !tbaa !5
  store i32 %26541, ptr %576, align 4, !tbaa !5
  %26542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26543 = call i32 @s2n_print_stacktrace(ptr noundef %26542)
  %26544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26545 = trunc i8 %26544 to i1
  br i1 %26545, label %26546, label %26568

26546:                                            ; preds = %26539
  %26547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26548 = call i32 @fileno(ptr noundef %26547) #12
  %26549 = call i32 @isatty(i32 noundef %26548) #12
  %26550 = icmp ne i32 %26549, 0
  br i1 %26550, label %26551, label %26568

26551:                                            ; preds = %26546
  %26552 = load i32, ptr %576, align 4, !tbaa !5
  %26553 = call ptr @__errno_location() #13
  store i32 %26552, ptr %26553, align 4, !tbaa !5
  %26554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26555 = load i32, ptr @test_count, align 4, !tbaa !5
  %26556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26557 = load i32, ptr %26556, align 4, !tbaa !5
  %26558 = call ptr @s2n_strerror(i32 noundef %26557, ptr noundef @.str.6)
  %26559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26560 = load i32, ptr %26559, align 4, !tbaa !5
  %26561 = call ptr @s2n_strerror_debug(i32 noundef %26560, ptr noundef @.str.6)
  %26562 = call ptr @__errno_location() #13
  %26563 = load i32, ptr %26562, align 4, !tbaa !5
  %26564 = call ptr @strerror(i32 noundef %26563) #12
  %26565 = call ptr @__errno_location() #13
  %26566 = load i32, ptr %26565, align 4, !tbaa !5
  %26567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26554, ptr noundef @.str.4, i32 noundef %26555, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 1025, ptr noundef %26558, ptr noundef %26561, ptr noundef %26564, i32 noundef %26566) #12
  br label %26585

26568:                                            ; preds = %26546, %26539
  %26569 = load i32, ptr %576, align 4, !tbaa !5
  %26570 = call ptr @__errno_location() #13
  store i32 %26569, ptr %26570, align 4, !tbaa !5
  %26571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26572 = load i32, ptr @test_count, align 4, !tbaa !5
  %26573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26574 = load i32, ptr %26573, align 4, !tbaa !5
  %26575 = call ptr @s2n_strerror(i32 noundef %26574, ptr noundef @.str.6)
  %26576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26577 = load i32, ptr %26576, align 4, !tbaa !5
  %26578 = call ptr @s2n_strerror_debug(i32 noundef %26577, ptr noundef @.str.6)
  %26579 = call ptr @__errno_location() #13
  %26580 = load i32, ptr %26579, align 4, !tbaa !5
  %26581 = call ptr @strerror(i32 noundef %26580) #12
  %26582 = call ptr @__errno_location() #13
  %26583 = load i32, ptr %26582, align 4, !tbaa !5
  %26584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26571, ptr noundef @.str.7, i32 noundef %26572, ptr noundef @.str.84, ptr noundef @.str.3, i32 noundef 1025, ptr noundef %26575, ptr noundef %26578, ptr noundef %26581, i32 noundef %26583) #12
  br label %26585

26585:                                            ; preds = %26568, %26551
  call void @llvm.lifetime.end.p0(i64 4, ptr %576) #12
  br label %26586

26586:                                            ; preds = %26585
  br label %26587

26587:                                            ; preds = %26586
  call void @exit(i32 noundef 1) #14
  unreachable

26588:                                            ; No predecessors!
  br label %26589

26589:                                            ; preds = %26588
  br label %26590

26590:                                            ; preds = %26589, %26531
  br label %26591

26591:                                            ; preds = %26590
  br label %26592

26592:                                            ; preds = %26591
  br label %26593

26593:                                            ; preds = %26592
  %26594 = load i32, ptr @test_count, align 4, !tbaa !5
  %26595 = add nsw i32 %26594, 1
  store i32 %26595, ptr @test_count, align 4, !tbaa !5
  %26596 = load ptr, ptr %575, align 8, !tbaa !9
  %26597 = icmp eq ptr %26596, null
  br i1 %26597, label %26598, label %26651

26598:                                            ; preds = %26593
  br label %26599

26599:                                            ; preds = %26598
  br label %26600

26600:                                            ; preds = %26599
  call void @llvm.lifetime.start.p0(i64 4, ptr %577) #12
  %26601 = call ptr @__errno_location() #13
  %26602 = load i32, ptr %26601, align 4, !tbaa !5
  store i32 %26602, ptr %577, align 4, !tbaa !5
  %26603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26604 = call i32 @s2n_print_stacktrace(ptr noundef %26603)
  %26605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26606 = trunc i8 %26605 to i1
  br i1 %26606, label %26607, label %26629

26607:                                            ; preds = %26600
  %26608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26609 = call i32 @fileno(ptr noundef %26608) #12
  %26610 = call i32 @isatty(i32 noundef %26609) #12
  %26611 = icmp ne i32 %26610, 0
  br i1 %26611, label %26612, label %26629

26612:                                            ; preds = %26607
  %26613 = load i32, ptr %577, align 4, !tbaa !5
  %26614 = call ptr @__errno_location() #13
  store i32 %26613, ptr %26614, align 4, !tbaa !5
  %26615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26616 = load i32, ptr @test_count, align 4, !tbaa !5
  %26617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26618 = load i32, ptr %26617, align 4, !tbaa !5
  %26619 = call ptr @s2n_strerror(i32 noundef %26618, ptr noundef @.str.6)
  %26620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26621 = load i32, ptr %26620, align 4, !tbaa !5
  %26622 = call ptr @s2n_strerror_debug(i32 noundef %26621, ptr noundef @.str.6)
  %26623 = call ptr @__errno_location() #13
  %26624 = load i32, ptr %26623, align 4, !tbaa !5
  %26625 = call ptr @strerror(i32 noundef %26624) #12
  %26626 = call ptr @__errno_location() #13
  %26627 = load i32, ptr %26626, align 4, !tbaa !5
  %26628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26615, ptr noundef @.str.4, i32 noundef %26616, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 1026, ptr noundef %26619, ptr noundef %26622, ptr noundef %26625, i32 noundef %26627) #12
  br label %26646

26629:                                            ; preds = %26607, %26600
  %26630 = load i32, ptr %577, align 4, !tbaa !5
  %26631 = call ptr @__errno_location() #13
  store i32 %26630, ptr %26631, align 4, !tbaa !5
  %26632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26633 = load i32, ptr @test_count, align 4, !tbaa !5
  %26634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26635 = load i32, ptr %26634, align 4, !tbaa !5
  %26636 = call ptr @s2n_strerror(i32 noundef %26635, ptr noundef @.str.6)
  %26637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26638 = load i32, ptr %26637, align 4, !tbaa !5
  %26639 = call ptr @s2n_strerror_debug(i32 noundef %26638, ptr noundef @.str.6)
  %26640 = call ptr @__errno_location() #13
  %26641 = load i32, ptr %26640, align 4, !tbaa !5
  %26642 = call ptr @strerror(i32 noundef %26641) #12
  %26643 = call ptr @__errno_location() #13
  %26644 = load i32, ptr %26643, align 4, !tbaa !5
  %26645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26632, ptr noundef @.str.7, i32 noundef %26633, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 1026, ptr noundef %26636, ptr noundef %26639, ptr noundef %26642, i32 noundef %26644) #12
  br label %26646

26646:                                            ; preds = %26629, %26612
  call void @llvm.lifetime.end.p0(i64 4, ptr %577) #12
  br label %26647

26647:                                            ; preds = %26646
  br label %26648

26648:                                            ; preds = %26647
  call void @exit(i32 noundef 1) #14
  unreachable

26649:                                            ; No predecessors!
  br label %26650

26650:                                            ; preds = %26649
  br label %26651

26651:                                            ; preds = %26650, %26593
  br label %26652

26652:                                            ; preds = %26651
  br label %26653

26653:                                            ; preds = %26652
  br label %26654

26654:                                            ; preds = %26653
  %26655 = load i32, ptr @test_count, align 4, !tbaa !5
  %26656 = add nsw i32 %26655, 1
  store i32 %26656, ptr @test_count, align 4, !tbaa !5
  %26657 = load ptr, ptr %575, align 8, !tbaa !9
  %26658 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %26657, i32 0, i32 0
  %26659 = load i8, ptr %26658, align 8, !tbaa !64
  %26660 = zext i8 %26659 to i32
  %26661 = icmp sge i32 %26660, 2
  br i1 %26661, label %26715, label %26662

26662:                                            ; preds = %26654
  br label %26663

26663:                                            ; preds = %26662
  br label %26664

26664:                                            ; preds = %26663
  call void @llvm.lifetime.start.p0(i64 4, ptr %578) #12
  %26665 = call ptr @__errno_location() #13
  %26666 = load i32, ptr %26665, align 4, !tbaa !5
  store i32 %26666, ptr %578, align 4, !tbaa !5
  %26667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26668 = call i32 @s2n_print_stacktrace(ptr noundef %26667)
  %26669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26670 = trunc i8 %26669 to i1
  br i1 %26670, label %26671, label %26693

26671:                                            ; preds = %26664
  %26672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26673 = call i32 @fileno(ptr noundef %26672) #12
  %26674 = call i32 @isatty(i32 noundef %26673) #12
  %26675 = icmp ne i32 %26674, 0
  br i1 %26675, label %26676, label %26693

26676:                                            ; preds = %26671
  %26677 = load i32, ptr %578, align 4, !tbaa !5
  %26678 = call ptr @__errno_location() #13
  store i32 %26677, ptr %26678, align 4, !tbaa !5
  %26679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26680 = load i32, ptr @test_count, align 4, !tbaa !5
  %26681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26682 = load i32, ptr %26681, align 4, !tbaa !5
  %26683 = call ptr @s2n_strerror(i32 noundef %26682, ptr noundef @.str.6)
  %26684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26685 = load i32, ptr %26684, align 4, !tbaa !5
  %26686 = call ptr @s2n_strerror_debug(i32 noundef %26685, ptr noundef @.str.6)
  %26687 = call ptr @__errno_location() #13
  %26688 = load i32, ptr %26687, align 4, !tbaa !5
  %26689 = call ptr @strerror(i32 noundef %26688) #12
  %26690 = call ptr @__errno_location() #13
  %26691 = load i32, ptr %26690, align 4, !tbaa !5
  %26692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26679, ptr noundef @.str.4, i32 noundef %26680, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 1027, ptr noundef %26683, ptr noundef %26686, ptr noundef %26689, i32 noundef %26691) #12
  br label %26710

26693:                                            ; preds = %26671, %26664
  %26694 = load i32, ptr %578, align 4, !tbaa !5
  %26695 = call ptr @__errno_location() #13
  store i32 %26694, ptr %26695, align 4, !tbaa !5
  %26696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26697 = load i32, ptr @test_count, align 4, !tbaa !5
  %26698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26699 = load i32, ptr %26698, align 4, !tbaa !5
  %26700 = call ptr @s2n_strerror(i32 noundef %26699, ptr noundef @.str.6)
  %26701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26702 = load i32, ptr %26701, align 4, !tbaa !5
  %26703 = call ptr @s2n_strerror_debug(i32 noundef %26702, ptr noundef @.str.6)
  %26704 = call ptr @__errno_location() #13
  %26705 = load i32, ptr %26704, align 4, !tbaa !5
  %26706 = call ptr @strerror(i32 noundef %26705) #12
  %26707 = call ptr @__errno_location() #13
  %26708 = load i32, ptr %26707, align 4, !tbaa !5
  %26709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26696, ptr noundef @.str.7, i32 noundef %26697, ptr noundef @.str.91, ptr noundef @.str.3, i32 noundef 1027, ptr noundef %26700, ptr noundef %26703, ptr noundef %26706, i32 noundef %26708) #12
  br label %26710

26710:                                            ; preds = %26693, %26676
  call void @llvm.lifetime.end.p0(i64 4, ptr %578) #12
  br label %26711

26711:                                            ; preds = %26710
  br label %26712

26712:                                            ; preds = %26711
  call void @exit(i32 noundef 1) #14
  unreachable

26713:                                            ; No predecessors!
  br label %26714

26714:                                            ; preds = %26713
  br label %26715

26715:                                            ; preds = %26714, %26654
  br label %26716

26716:                                            ; preds = %26715
  br label %26717

26717:                                            ; preds = %26716
  call void @llvm.lifetime.start.p0(i64 32, ptr %579) #12
  %26718 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %579, i32 0, i32 0
  %26719 = load ptr, ptr %575, align 8, !tbaa !9
  %26720 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %26719, i32 0, i32 1
  %26721 = load ptr, ptr %26720, align 8, !tbaa !24
  %26722 = getelementptr inbounds ptr, ptr %26721, i64 0
  %26723 = load ptr, ptr %26722, align 8, !tbaa !9
  store ptr %26723, ptr %26718, align 16, !tbaa !22
  %26724 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %579, i32 0, i32 1
  store ptr null, ptr %26724, align 8, !tbaa !26
  %26725 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %579, i64 1
  %26726 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %26725, i32 0, i32 0
  %26727 = load ptr, ptr %575, align 8, !tbaa !9
  %26728 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %26727, i32 0, i32 1
  %26729 = load ptr, ptr %26728, align 8, !tbaa !24
  %26730 = getelementptr inbounds ptr, ptr %26729, i64 1
  %26731 = load ptr, ptr %26730, align 8, !tbaa !9
  store ptr %26731, ptr %26726, align 16, !tbaa !22
  %26732 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %26725, i32 0, i32 1
  store ptr null, ptr %26732, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 16, ptr %580) #12
  call void @llvm.memset.p0.i64(ptr align 8 %580, i8 0, i64 16, i1 false)
  br label %26733

26733:                                            ; preds = %26717
  %26734 = load i32, ptr @test_count, align 4, !tbaa !5
  %26735 = add nsw i32 %26734, 1
  store i32 %26735, ptr @test_count, align 4, !tbaa !5
  %26736 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %573, ptr noundef %580)
  %26737 = icmp eq i32 %26736, -1
  br i1 %26737, label %26738, label %26791

26738:                                            ; preds = %26733
  br label %26739

26739:                                            ; preds = %26738
  br label %26740

26740:                                            ; preds = %26739
  call void @llvm.lifetime.start.p0(i64 4, ptr %581) #12
  %26741 = call ptr @__errno_location() #13
  %26742 = load i32, ptr %26741, align 4, !tbaa !5
  store i32 %26742, ptr %581, align 4, !tbaa !5
  %26743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26744 = call i32 @s2n_print_stacktrace(ptr noundef %26743)
  %26745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26746 = trunc i8 %26745 to i1
  br i1 %26746, label %26747, label %26769

26747:                                            ; preds = %26740
  %26748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26749 = call i32 @fileno(ptr noundef %26748) #12
  %26750 = call i32 @isatty(i32 noundef %26749) #12
  %26751 = icmp ne i32 %26750, 0
  br i1 %26751, label %26752, label %26769

26752:                                            ; preds = %26747
  %26753 = load i32, ptr %581, align 4, !tbaa !5
  %26754 = call ptr @__errno_location() #13
  store i32 %26753, ptr %26754, align 4, !tbaa !5
  %26755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26756 = load i32, ptr @test_count, align 4, !tbaa !5
  %26757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26758 = load i32, ptr %26757, align 4, !tbaa !5
  %26759 = call ptr @s2n_strerror(i32 noundef %26758, ptr noundef @.str.6)
  %26760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26761 = load i32, ptr %26760, align 4, !tbaa !5
  %26762 = call ptr @s2n_strerror_debug(i32 noundef %26761, ptr noundef @.str.6)
  %26763 = call ptr @__errno_location() #13
  %26764 = load i32, ptr %26763, align 4, !tbaa !5
  %26765 = call ptr @strerror(i32 noundef %26764) #12
  %26766 = call ptr @__errno_location() #13
  %26767 = load i32, ptr %26766, align 4, !tbaa !5
  %26768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26755, ptr noundef @.str.4, i32 noundef %26756, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 1036, ptr noundef %26759, ptr noundef %26762, ptr noundef %26765, i32 noundef %26767) #12
  br label %26786

26769:                                            ; preds = %26747, %26740
  %26770 = load i32, ptr %581, align 4, !tbaa !5
  %26771 = call ptr @__errno_location() #13
  store i32 %26770, ptr %26771, align 4, !tbaa !5
  %26772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26773 = load i32, ptr @test_count, align 4, !tbaa !5
  %26774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26775 = load i32, ptr %26774, align 4, !tbaa !5
  %26776 = call ptr @s2n_strerror(i32 noundef %26775, ptr noundef @.str.6)
  %26777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26778 = load i32, ptr %26777, align 4, !tbaa !5
  %26779 = call ptr @s2n_strerror_debug(i32 noundef %26778, ptr noundef @.str.6)
  %26780 = call ptr @__errno_location() #13
  %26781 = load i32, ptr %26780, align 4, !tbaa !5
  %26782 = call ptr @strerror(i32 noundef %26781) #12
  %26783 = call ptr @__errno_location() #13
  %26784 = load i32, ptr %26783, align 4, !tbaa !5
  %26785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26772, ptr noundef @.str.7, i32 noundef %26773, ptr noundef @.str.92, ptr noundef @.str.3, i32 noundef 1036, ptr noundef %26776, ptr noundef %26779, ptr noundef %26782, i32 noundef %26784) #12
  br label %26786

26786:                                            ; preds = %26769, %26752
  call void @llvm.lifetime.end.p0(i64 4, ptr %581) #12
  br label %26787

26787:                                            ; preds = %26786
  br label %26788

26788:                                            ; preds = %26787
  call void @exit(i32 noundef 1) #14
  unreachable

26789:                                            ; No predecessors!
  br label %26790

26790:                                            ; preds = %26789
  br label %26791

26791:                                            ; preds = %26790, %26733
  br label %26792

26792:                                            ; preds = %26791
  br label %26793

26793:                                            ; preds = %26792
  br label %26794

26794:                                            ; preds = %26793
  %26795 = load i32, ptr @test_count, align 4, !tbaa !5
  %26796 = add nsw i32 %26795, 1
  store i32 %26796, ptr @test_count, align 4, !tbaa !5
  %26797 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %579, i64 0, i64 0
  %26798 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %26797, ptr noundef %573)
  %26799 = icmp eq i32 %26798, -1
  br i1 %26799, label %26800, label %26853

26800:                                            ; preds = %26794
  br label %26801

26801:                                            ; preds = %26800
  br label %26802

26802:                                            ; preds = %26801
  call void @llvm.lifetime.start.p0(i64 4, ptr %582) #12
  %26803 = call ptr @__errno_location() #13
  %26804 = load i32, ptr %26803, align 4, !tbaa !5
  store i32 %26804, ptr %582, align 4, !tbaa !5
  %26805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26806 = call i32 @s2n_print_stacktrace(ptr noundef %26805)
  %26807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26808 = trunc i8 %26807 to i1
  br i1 %26808, label %26809, label %26831

26809:                                            ; preds = %26802
  %26810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26811 = call i32 @fileno(ptr noundef %26810) #12
  %26812 = call i32 @isatty(i32 noundef %26811) #12
  %26813 = icmp ne i32 %26812, 0
  br i1 %26813, label %26814, label %26831

26814:                                            ; preds = %26809
  %26815 = load i32, ptr %582, align 4, !tbaa !5
  %26816 = call ptr @__errno_location() #13
  store i32 %26815, ptr %26816, align 4, !tbaa !5
  %26817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26818 = load i32, ptr @test_count, align 4, !tbaa !5
  %26819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26820 = load i32, ptr %26819, align 4, !tbaa !5
  %26821 = call ptr @s2n_strerror(i32 noundef %26820, ptr noundef @.str.6)
  %26822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26823 = load i32, ptr %26822, align 4, !tbaa !5
  %26824 = call ptr @s2n_strerror_debug(i32 noundef %26823, ptr noundef @.str.6)
  %26825 = call ptr @__errno_location() #13
  %26826 = load i32, ptr %26825, align 4, !tbaa !5
  %26827 = call ptr @strerror(i32 noundef %26826) #12
  %26828 = call ptr @__errno_location() #13
  %26829 = load i32, ptr %26828, align 4, !tbaa !5
  %26830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26817, ptr noundef @.str.4, i32 noundef %26818, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 1038, ptr noundef %26821, ptr noundef %26824, ptr noundef %26827, i32 noundef %26829) #12
  br label %26848

26831:                                            ; preds = %26809, %26802
  %26832 = load i32, ptr %582, align 4, !tbaa !5
  %26833 = call ptr @__errno_location() #13
  store i32 %26832, ptr %26833, align 4, !tbaa !5
  %26834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26835 = load i32, ptr @test_count, align 4, !tbaa !5
  %26836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26837 = load i32, ptr %26836, align 4, !tbaa !5
  %26838 = call ptr @s2n_strerror(i32 noundef %26837, ptr noundef @.str.6)
  %26839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26840 = load i32, ptr %26839, align 4, !tbaa !5
  %26841 = call ptr @s2n_strerror_debug(i32 noundef %26840, ptr noundef @.str.6)
  %26842 = call ptr @__errno_location() #13
  %26843 = load i32, ptr %26842, align 4, !tbaa !5
  %26844 = call ptr @strerror(i32 noundef %26843) #12
  %26845 = call ptr @__errno_location() #13
  %26846 = load i32, ptr %26845, align 4, !tbaa !5
  %26847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26834, ptr noundef @.str.7, i32 noundef %26835, ptr noundef @.str.98, ptr noundef @.str.3, i32 noundef 1038, ptr noundef %26838, ptr noundef %26841, ptr noundef %26844, i32 noundef %26846) #12
  br label %26848

26848:                                            ; preds = %26831, %26814
  call void @llvm.lifetime.end.p0(i64 4, ptr %582) #12
  br label %26849

26849:                                            ; preds = %26848
  br label %26850

26850:                                            ; preds = %26849
  call void @exit(i32 noundef 1) #14
  unreachable

26851:                                            ; No predecessors!
  br label %26852

26852:                                            ; preds = %26851
  br label %26853

26853:                                            ; preds = %26852, %26794
  br label %26854

26854:                                            ; preds = %26853
  br label %26855

26855:                                            ; preds = %26854
  br label %26856

26856:                                            ; preds = %26855
  %26857 = load i32, ptr @test_count, align 4, !tbaa !5
  %26858 = add nsw i32 %26857, 1
  store i32 %26858, ptr @test_count, align 4, !tbaa !5
  %26859 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %579, i64 0, i64 1
  %26860 = call i32 @s2n_ecdhe_parameters_send(ptr noundef %26859, ptr noundef %573)
  %26861 = icmp eq i32 %26860, -1
  br i1 %26861, label %26862, label %26915

26862:                                            ; preds = %26856
  br label %26863

26863:                                            ; preds = %26862
  br label %26864

26864:                                            ; preds = %26863
  call void @llvm.lifetime.start.p0(i64 4, ptr %583) #12
  %26865 = call ptr @__errno_location() #13
  %26866 = load i32, ptr %26865, align 4, !tbaa !5
  store i32 %26866, ptr %583, align 4, !tbaa !5
  %26867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26868 = call i32 @s2n_print_stacktrace(ptr noundef %26867)
  %26869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26870 = trunc i8 %26869 to i1
  br i1 %26870, label %26871, label %26893

26871:                                            ; preds = %26864
  %26872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26873 = call i32 @fileno(ptr noundef %26872) #12
  %26874 = call i32 @isatty(i32 noundef %26873) #12
  %26875 = icmp ne i32 %26874, 0
  br i1 %26875, label %26876, label %26893

26876:                                            ; preds = %26871
  %26877 = load i32, ptr %583, align 4, !tbaa !5
  %26878 = call ptr @__errno_location() #13
  store i32 %26877, ptr %26878, align 4, !tbaa !5
  %26879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26880 = load i32, ptr @test_count, align 4, !tbaa !5
  %26881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26882 = load i32, ptr %26881, align 4, !tbaa !5
  %26883 = call ptr @s2n_strerror(i32 noundef %26882, ptr noundef @.str.6)
  %26884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26885 = load i32, ptr %26884, align 4, !tbaa !5
  %26886 = call ptr @s2n_strerror_debug(i32 noundef %26885, ptr noundef @.str.6)
  %26887 = call ptr @__errno_location() #13
  %26888 = load i32, ptr %26887, align 4, !tbaa !5
  %26889 = call ptr @strerror(i32 noundef %26888) #12
  %26890 = call ptr @__errno_location() #13
  %26891 = load i32, ptr %26890, align 4, !tbaa !5
  %26892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26879, ptr noundef @.str.4, i32 noundef %26880, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 1040, ptr noundef %26883, ptr noundef %26886, ptr noundef %26889, i32 noundef %26891) #12
  br label %26910

26893:                                            ; preds = %26871, %26864
  %26894 = load i32, ptr %583, align 4, !tbaa !5
  %26895 = call ptr @__errno_location() #13
  store i32 %26894, ptr %26895, align 4, !tbaa !5
  %26896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26897 = load i32, ptr @test_count, align 4, !tbaa !5
  %26898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26899 = load i32, ptr %26898, align 4, !tbaa !5
  %26900 = call ptr @s2n_strerror(i32 noundef %26899, ptr noundef @.str.6)
  %26901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26902 = load i32, ptr %26901, align 4, !tbaa !5
  %26903 = call ptr @s2n_strerror_debug(i32 noundef %26902, ptr noundef @.str.6)
  %26904 = call ptr @__errno_location() #13
  %26905 = load i32, ptr %26904, align 4, !tbaa !5
  %26906 = call ptr @strerror(i32 noundef %26905) #12
  %26907 = call ptr @__errno_location() #13
  %26908 = load i32, ptr %26907, align 4, !tbaa !5
  %26909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26896, ptr noundef @.str.7, i32 noundef %26897, ptr noundef @.str.99, ptr noundef @.str.3, i32 noundef 1040, ptr noundef %26900, ptr noundef %26903, ptr noundef %26906, i32 noundef %26908) #12
  br label %26910

26910:                                            ; preds = %26893, %26876
  call void @llvm.lifetime.end.p0(i64 4, ptr %583) #12
  br label %26911

26911:                                            ; preds = %26910
  br label %26912

26912:                                            ; preds = %26911
  call void @exit(i32 noundef 1) #14
  unreachable

26913:                                            ; No predecessors!
  br label %26914

26914:                                            ; preds = %26913
  br label %26915

26915:                                            ; preds = %26914, %26856
  br label %26916

26916:                                            ; preds = %26915
  br label %26917

26917:                                            ; preds = %26916
  br label %26918

26918:                                            ; preds = %26917
  %26919 = load i32, ptr @test_count, align 4, !tbaa !5
  %26920 = add nsw i32 %26919, 1
  store i32 %26920, ptr @test_count, align 4, !tbaa !5
  %26921 = load ptr, ptr %575, align 8, !tbaa !9
  %26922 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %26921, i32 0, i32 1
  %26923 = load ptr, ptr %26922, align 8, !tbaa !24
  %26924 = getelementptr inbounds ptr, ptr %26923, i64 1
  %26925 = load ptr, ptr %26924, align 8, !tbaa !9
  %26926 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %26925, i32 0, i32 3
  %26927 = load i8, ptr %26926, align 8, !tbaa !30
  %26928 = zext i8 %26927 to i32
  %26929 = sdiv i32 %26928, 2
  %26930 = call i32 @s2n_stuffer_wipe_n(ptr noundef %573, i32 noundef %26929)
  %26931 = icmp eq i32 %26930, -1
  br i1 %26931, label %26932, label %26985

26932:                                            ; preds = %26918
  br label %26933

26933:                                            ; preds = %26932
  br label %26934

26934:                                            ; preds = %26933
  call void @llvm.lifetime.start.p0(i64 4, ptr %584) #12
  %26935 = call ptr @__errno_location() #13
  %26936 = load i32, ptr %26935, align 4, !tbaa !5
  store i32 %26936, ptr %584, align 4, !tbaa !5
  %26937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26938 = call i32 @s2n_print_stacktrace(ptr noundef %26937)
  %26939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26940 = trunc i8 %26939 to i1
  br i1 %26940, label %26941, label %26963

26941:                                            ; preds = %26934
  %26942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26943 = call i32 @fileno(ptr noundef %26942) #12
  %26944 = call i32 @isatty(i32 noundef %26943) #12
  %26945 = icmp ne i32 %26944, 0
  br i1 %26945, label %26946, label %26963

26946:                                            ; preds = %26941
  %26947 = load i32, ptr %584, align 4, !tbaa !5
  %26948 = call ptr @__errno_location() #13
  store i32 %26947, ptr %26948, align 4, !tbaa !5
  %26949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26950 = load i32, ptr @test_count, align 4, !tbaa !5
  %26951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26952 = load i32, ptr %26951, align 4, !tbaa !5
  %26953 = call ptr @s2n_strerror(i32 noundef %26952, ptr noundef @.str.6)
  %26954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26955 = load i32, ptr %26954, align 4, !tbaa !5
  %26956 = call ptr @s2n_strerror_debug(i32 noundef %26955, ptr noundef @.str.6)
  %26957 = call ptr @__errno_location() #13
  %26958 = load i32, ptr %26957, align 4, !tbaa !5
  %26959 = call ptr @strerror(i32 noundef %26958) #12
  %26960 = call ptr @__errno_location() #13
  %26961 = load i32, ptr %26960, align 4, !tbaa !5
  %26962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26949, ptr noundef @.str.4, i32 noundef %26950, ptr noundef @.str.132, ptr noundef @.str.3, i32 noundef 1041, ptr noundef %26953, ptr noundef %26956, ptr noundef %26959, i32 noundef %26961) #12
  br label %26980

26963:                                            ; preds = %26941, %26934
  %26964 = load i32, ptr %584, align 4, !tbaa !5
  %26965 = call ptr @__errno_location() #13
  store i32 %26964, ptr %26965, align 4, !tbaa !5
  %26966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26967 = load i32, ptr @test_count, align 4, !tbaa !5
  %26968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26969 = load i32, ptr %26968, align 4, !tbaa !5
  %26970 = call ptr @s2n_strerror(i32 noundef %26969, ptr noundef @.str.6)
  %26971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26972 = load i32, ptr %26971, align 4, !tbaa !5
  %26973 = call ptr @s2n_strerror_debug(i32 noundef %26972, ptr noundef @.str.6)
  %26974 = call ptr @__errno_location() #13
  %26975 = load i32, ptr %26974, align 4, !tbaa !5
  %26976 = call ptr @strerror(i32 noundef %26975) #12
  %26977 = call ptr @__errno_location() #13
  %26978 = load i32, ptr %26977, align 4, !tbaa !5
  %26979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26966, ptr noundef @.str.7, i32 noundef %26967, ptr noundef @.str.132, ptr noundef @.str.3, i32 noundef 1041, ptr noundef %26970, ptr noundef %26973, ptr noundef %26976, i32 noundef %26978) #12
  br label %26980

26980:                                            ; preds = %26963, %26946
  call void @llvm.lifetime.end.p0(i64 4, ptr %584) #12
  br label %26981

26981:                                            ; preds = %26980
  br label %26982

26982:                                            ; preds = %26981
  call void @exit(i32 noundef 1) #14
  unreachable

26983:                                            ; No predecessors!
  br label %26984

26984:                                            ; preds = %26983
  br label %26985

26985:                                            ; preds = %26984, %26918
  br label %26986

26986:                                            ; preds = %26985
  br label %26987

26987:                                            ; preds = %26986
  br label %26988

26988:                                            ; preds = %26987
  %26989 = load i32, ptr @test_count, align 4, !tbaa !5
  %26990 = add nsw i32 %26989, 1
  store i32 %26990, ptr @test_count, align 4, !tbaa !5
  %26991 = load ptr, ptr %575, align 8, !tbaa !9
  %26992 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %26991, i32 0, i32 1
  %26993 = load ptr, ptr %26992, align 8, !tbaa !24
  %26994 = getelementptr inbounds ptr, ptr %26993, i64 1
  %26995 = load ptr, ptr %26994, align 8, !tbaa !9
  %26996 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %26995, i32 0, i32 3
  %26997 = load i8, ptr %26996, align 8, !tbaa !30
  %26998 = zext i8 %26997 to i32
  %26999 = sdiv i32 %26998, 2
  %27000 = call i32 @s2n_stuffer_skip_write(ptr noundef %573, i32 noundef %26999)
  %27001 = icmp eq i32 %27000, -1
  br i1 %27001, label %27002, label %27055

27002:                                            ; preds = %26988
  br label %27003

27003:                                            ; preds = %27002
  br label %27004

27004:                                            ; preds = %27003
  call void @llvm.lifetime.start.p0(i64 4, ptr %585) #12
  %27005 = call ptr @__errno_location() #13
  %27006 = load i32, ptr %27005, align 4, !tbaa !5
  store i32 %27006, ptr %585, align 4, !tbaa !5
  %27007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27008 = call i32 @s2n_print_stacktrace(ptr noundef %27007)
  %27009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27010 = trunc i8 %27009 to i1
  br i1 %27010, label %27011, label %27033

27011:                                            ; preds = %27004
  %27012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27013 = call i32 @fileno(ptr noundef %27012) #12
  %27014 = call i32 @isatty(i32 noundef %27013) #12
  %27015 = icmp ne i32 %27014, 0
  br i1 %27015, label %27016, label %27033

27016:                                            ; preds = %27011
  %27017 = load i32, ptr %585, align 4, !tbaa !5
  %27018 = call ptr @__errno_location() #13
  store i32 %27017, ptr %27018, align 4, !tbaa !5
  %27019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27020 = load i32, ptr @test_count, align 4, !tbaa !5
  %27021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27022 = load i32, ptr %27021, align 4, !tbaa !5
  %27023 = call ptr @s2n_strerror(i32 noundef %27022, ptr noundef @.str.6)
  %27024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27025 = load i32, ptr %27024, align 4, !tbaa !5
  %27026 = call ptr @s2n_strerror_debug(i32 noundef %27025, ptr noundef @.str.6)
  %27027 = call ptr @__errno_location() #13
  %27028 = load i32, ptr %27027, align 4, !tbaa !5
  %27029 = call ptr @strerror(i32 noundef %27028) #12
  %27030 = call ptr @__errno_location() #13
  %27031 = load i32, ptr %27030, align 4, !tbaa !5
  %27032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27019, ptr noundef @.str.4, i32 noundef %27020, ptr noundef @.str.133, ptr noundef @.str.3, i32 noundef 1042, ptr noundef %27023, ptr noundef %27026, ptr noundef %27029, i32 noundef %27031) #12
  br label %27050

27033:                                            ; preds = %27011, %27004
  %27034 = load i32, ptr %585, align 4, !tbaa !5
  %27035 = call ptr @__errno_location() #13
  store i32 %27034, ptr %27035, align 4, !tbaa !5
  %27036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27037 = load i32, ptr @test_count, align 4, !tbaa !5
  %27038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27039 = load i32, ptr %27038, align 4, !tbaa !5
  %27040 = call ptr @s2n_strerror(i32 noundef %27039, ptr noundef @.str.6)
  %27041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27042 = load i32, ptr %27041, align 4, !tbaa !5
  %27043 = call ptr @s2n_strerror_debug(i32 noundef %27042, ptr noundef @.str.6)
  %27044 = call ptr @__errno_location() #13
  %27045 = load i32, ptr %27044, align 4, !tbaa !5
  %27046 = call ptr @strerror(i32 noundef %27045) #12
  %27047 = call ptr @__errno_location() #13
  %27048 = load i32, ptr %27047, align 4, !tbaa !5
  %27049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27036, ptr noundef @.str.7, i32 noundef %27037, ptr noundef @.str.133, ptr noundef @.str.3, i32 noundef 1042, ptr noundef %27040, ptr noundef %27043, ptr noundef %27046, i32 noundef %27048) #12
  br label %27050

27050:                                            ; preds = %27033, %27016
  call void @llvm.lifetime.end.p0(i64 4, ptr %585) #12
  br label %27051

27051:                                            ; preds = %27050
  br label %27052

27052:                                            ; preds = %27051
  call void @exit(i32 noundef 1) #14
  unreachable

27053:                                            ; No predecessors!
  br label %27054

27054:                                            ; preds = %27053
  br label %27055

27055:                                            ; preds = %27054, %26988
  br label %27056

27056:                                            ; preds = %27055
  br label %27057

27057:                                            ; preds = %27056
  br label %27058

27058:                                            ; preds = %27057
  %27059 = load i32, ptr @test_count, align 4, !tbaa !5
  %27060 = add nsw i32 %27059, 1
  store i32 %27060, ptr @test_count, align 4, !tbaa !5
  %27061 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %580)
  %27062 = icmp eq i32 %27061, -1
  br i1 %27062, label %27063, label %27116

27063:                                            ; preds = %27058
  br label %27064

27064:                                            ; preds = %27063
  br label %27065

27065:                                            ; preds = %27064
  call void @llvm.lifetime.start.p0(i64 4, ptr %586) #12
  %27066 = call ptr @__errno_location() #13
  %27067 = load i32, ptr %27066, align 4, !tbaa !5
  store i32 %27067, ptr %586, align 4, !tbaa !5
  %27068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27069 = call i32 @s2n_print_stacktrace(ptr noundef %27068)
  %27070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27071 = trunc i8 %27070 to i1
  br i1 %27071, label %27072, label %27094

27072:                                            ; preds = %27065
  %27073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27074 = call i32 @fileno(ptr noundef %27073) #12
  %27075 = call i32 @isatty(i32 noundef %27074) #12
  %27076 = icmp ne i32 %27075, 0
  br i1 %27076, label %27077, label %27094

27077:                                            ; preds = %27072
  %27078 = load i32, ptr %586, align 4, !tbaa !5
  %27079 = call ptr @__errno_location() #13
  store i32 %27078, ptr %27079, align 4, !tbaa !5
  %27080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27081 = load i32, ptr @test_count, align 4, !tbaa !5
  %27082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27083 = load i32, ptr %27082, align 4, !tbaa !5
  %27084 = call ptr @s2n_strerror(i32 noundef %27083, ptr noundef @.str.6)
  %27085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27086 = load i32, ptr %27085, align 4, !tbaa !5
  %27087 = call ptr @s2n_strerror_debug(i32 noundef %27086, ptr noundef @.str.6)
  %27088 = call ptr @__errno_location() #13
  %27089 = load i32, ptr %27088, align 4, !tbaa !5
  %27090 = call ptr @strerror(i32 noundef %27089) #12
  %27091 = call ptr @__errno_location() #13
  %27092 = load i32, ptr %27091, align 4, !tbaa !5
  %27093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27080, ptr noundef @.str.4, i32 noundef %27081, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 1044, ptr noundef %27084, ptr noundef %27087, ptr noundef %27090, i32 noundef %27092) #12
  br label %27111

27094:                                            ; preds = %27072, %27065
  %27095 = load i32, ptr %586, align 4, !tbaa !5
  %27096 = call ptr @__errno_location() #13
  store i32 %27095, ptr %27096, align 4, !tbaa !5
  %27097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27098 = load i32, ptr @test_count, align 4, !tbaa !5
  %27099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27100 = load i32, ptr %27099, align 4, !tbaa !5
  %27101 = call ptr @s2n_strerror(i32 noundef %27100, ptr noundef @.str.6)
  %27102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27103 = load i32, ptr %27102, align 4, !tbaa !5
  %27104 = call ptr @s2n_strerror_debug(i32 noundef %27103, ptr noundef @.str.6)
  %27105 = call ptr @__errno_location() #13
  %27106 = load i32, ptr %27105, align 4, !tbaa !5
  %27107 = call ptr @strerror(i32 noundef %27106) #12
  %27108 = call ptr @__errno_location() #13
  %27109 = load i32, ptr %27108, align 4, !tbaa !5
  %27110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27097, ptr noundef @.str.7, i32 noundef %27098, ptr noundef @.str.94, ptr noundef @.str.3, i32 noundef 1044, ptr noundef %27101, ptr noundef %27104, ptr noundef %27107, i32 noundef %27109) #12
  br label %27111

27111:                                            ; preds = %27094, %27077
  call void @llvm.lifetime.end.p0(i64 4, ptr %586) #12
  br label %27112

27112:                                            ; preds = %27111
  br label %27113

27113:                                            ; preds = %27112
  call void @exit(i32 noundef 1) #14
  unreachable

27114:                                            ; No predecessors!
  br label %27115

27115:                                            ; preds = %27114
  br label %27116

27116:                                            ; preds = %27115, %27058
  br label %27117

27117:                                            ; preds = %27116
  br label %27118

27118:                                            ; preds = %27117
  br label %27119

27119:                                            ; preds = %27118
  %27120 = load i32, ptr @test_count, align 4, !tbaa !5
  %27121 = add nsw i32 %27120, 1
  store i32 %27121, ptr @test_count, align 4, !tbaa !5
  %27122 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %27123 = load ptr, ptr %568, align 8, !tbaa !9
  %27124 = call i32 %27122(ptr noundef %27123, ptr noundef %573)
  %27125 = icmp eq i32 %27124, -1
  br i1 %27125, label %27126, label %27179

27126:                                            ; preds = %27119
  br label %27127

27127:                                            ; preds = %27126
  br label %27128

27128:                                            ; preds = %27127
  call void @llvm.lifetime.start.p0(i64 4, ptr %587) #12
  %27129 = call ptr @__errno_location() #13
  %27130 = load i32, ptr %27129, align 4, !tbaa !5
  store i32 %27130, ptr %587, align 4, !tbaa !5
  %27131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27132 = call i32 @s2n_print_stacktrace(ptr noundef %27131)
  %27133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27134 = trunc i8 %27133 to i1
  br i1 %27134, label %27135, label %27157

27135:                                            ; preds = %27128
  %27136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27137 = call i32 @fileno(ptr noundef %27136) #12
  %27138 = call i32 @isatty(i32 noundef %27137) #12
  %27139 = icmp ne i32 %27138, 0
  br i1 %27139, label %27140, label %27157

27140:                                            ; preds = %27135
  %27141 = load i32, ptr %587, align 4, !tbaa !5
  %27142 = call ptr @__errno_location() #13
  store i32 %27141, ptr %27142, align 4, !tbaa !5
  %27143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27144 = load i32, ptr @test_count, align 4, !tbaa !5
  %27145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27146 = load i32, ptr %27145, align 4, !tbaa !5
  %27147 = call ptr @s2n_strerror(i32 noundef %27146, ptr noundef @.str.6)
  %27148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27149 = load i32, ptr %27148, align 4, !tbaa !5
  %27150 = call ptr @s2n_strerror_debug(i32 noundef %27149, ptr noundef @.str.6)
  %27151 = call ptr @__errno_location() #13
  %27152 = load i32, ptr %27151, align 4, !tbaa !5
  %27153 = call ptr @strerror(i32 noundef %27152) #12
  %27154 = call ptr @__errno_location() #13
  %27155 = load i32, ptr %27154, align 4, !tbaa !5
  %27156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27143, ptr noundef @.str.4, i32 noundef %27144, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 1046, ptr noundef %27147, ptr noundef %27150, ptr noundef %27153, i32 noundef %27155) #12
  br label %27174

27157:                                            ; preds = %27135, %27128
  %27158 = load i32, ptr %587, align 4, !tbaa !5
  %27159 = call ptr @__errno_location() #13
  store i32 %27158, ptr %27159, align 4, !tbaa !5
  %27160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27161 = load i32, ptr @test_count, align 4, !tbaa !5
  %27162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27163 = load i32, ptr %27162, align 4, !tbaa !5
  %27164 = call ptr @s2n_strerror(i32 noundef %27163, ptr noundef @.str.6)
  %27165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27166 = load i32, ptr %27165, align 4, !tbaa !5
  %27167 = call ptr @s2n_strerror_debug(i32 noundef %27166, ptr noundef @.str.6)
  %27168 = call ptr @__errno_location() #13
  %27169 = load i32, ptr %27168, align 4, !tbaa !5
  %27170 = call ptr @strerror(i32 noundef %27169) #12
  %27171 = call ptr @__errno_location() #13
  %27172 = load i32, ptr %27171, align 4, !tbaa !5
  %27173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27160, ptr noundef @.str.7, i32 noundef %27161, ptr noundef @.str.61, ptr noundef @.str.3, i32 noundef 1046, ptr noundef %27164, ptr noundef %27167, ptr noundef %27170, i32 noundef %27172) #12
  br label %27174

27174:                                            ; preds = %27157, %27140
  call void @llvm.lifetime.end.p0(i64 4, ptr %587) #12
  br label %27175

27175:                                            ; preds = %27174
  br label %27176

27176:                                            ; preds = %27175
  call void @exit(i32 noundef 1) #14
  unreachable

27177:                                            ; No predecessors!
  br label %27178

27178:                                            ; preds = %27177
  br label %27179

27179:                                            ; preds = %27178, %27119
  br label %27180

27180:                                            ; preds = %27179
  br label %27181

27181:                                            ; preds = %27180
  br label %27182

27182:                                            ; preds = %27181
  %27183 = load i32, ptr @test_count, align 4, !tbaa !5
  %27184 = add nsw i32 %27183, 1
  store i32 %27184, ptr @test_count, align 4, !tbaa !5
  %27185 = getelementptr inbounds %struct.s2n_stuffer, ptr %573, i32 0, i32 2
  %27186 = load i32, ptr %27185, align 4, !tbaa !18
  %27187 = getelementptr inbounds %struct.s2n_stuffer, ptr %573, i32 0, i32 1
  %27188 = load i32, ptr %27187, align 8, !tbaa !21
  %27189 = sub i32 %27186, %27188
  %27190 = icmp eq i32 %27189, 0
  br i1 %27190, label %27244, label %27191

27191:                                            ; preds = %27182
  br label %27192

27192:                                            ; preds = %27191
  br label %27193

27193:                                            ; preds = %27192
  call void @llvm.lifetime.start.p0(i64 4, ptr %588) #12
  %27194 = call ptr @__errno_location() #13
  %27195 = load i32, ptr %27194, align 4, !tbaa !5
  store i32 %27195, ptr %588, align 4, !tbaa !5
  %27196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27197 = call i32 @s2n_print_stacktrace(ptr noundef %27196)
  %27198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27199 = trunc i8 %27198 to i1
  br i1 %27199, label %27200, label %27222

27200:                                            ; preds = %27193
  %27201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27202 = call i32 @fileno(ptr noundef %27201) #12
  %27203 = call i32 @isatty(i32 noundef %27202) #12
  %27204 = icmp ne i32 %27203, 0
  br i1 %27204, label %27205, label %27222

27205:                                            ; preds = %27200
  %27206 = load i32, ptr %588, align 4, !tbaa !5
  %27207 = call ptr @__errno_location() #13
  store i32 %27206, ptr %27207, align 4, !tbaa !5
  %27208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27209 = load i32, ptr @test_count, align 4, !tbaa !5
  %27210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27211 = load i32, ptr %27210, align 4, !tbaa !5
  %27212 = call ptr @s2n_strerror(i32 noundef %27211, ptr noundef @.str.6)
  %27213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27214 = load i32, ptr %27213, align 4, !tbaa !5
  %27215 = call ptr @s2n_strerror_debug(i32 noundef %27214, ptr noundef @.str.6)
  %27216 = call ptr @__errno_location() #13
  %27217 = load i32, ptr %27216, align 4, !tbaa !5
  %27218 = call ptr @strerror(i32 noundef %27217) #12
  %27219 = call ptr @__errno_location() #13
  %27220 = load i32, ptr %27219, align 4, !tbaa !5
  %27221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27208, ptr noundef @.str.4, i32 noundef %27209, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 1047, ptr noundef %27212, ptr noundef %27215, ptr noundef %27218, i32 noundef %27220) #12
  br label %27239

27222:                                            ; preds = %27200, %27193
  %27223 = load i32, ptr %588, align 4, !tbaa !5
  %27224 = call ptr @__errno_location() #13
  store i32 %27223, ptr %27224, align 4, !tbaa !5
  %27225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27226 = load i32, ptr @test_count, align 4, !tbaa !5
  %27227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27228 = load i32, ptr %27227, align 4, !tbaa !5
  %27229 = call ptr @s2n_strerror(i32 noundef %27228, ptr noundef @.str.6)
  %27230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27231 = load i32, ptr %27230, align 4, !tbaa !5
  %27232 = call ptr @s2n_strerror_debug(i32 noundef %27231, ptr noundef @.str.6)
  %27233 = call ptr @__errno_location() #13
  %27234 = load i32, ptr %27233, align 4, !tbaa !5
  %27235 = call ptr @strerror(i32 noundef %27234) #12
  %27236 = call ptr @__errno_location() #13
  %27237 = load i32, ptr %27236, align 4, !tbaa !5
  %27238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27225, ptr noundef @.str.7, i32 noundef %27226, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 1047, ptr noundef %27229, ptr noundef %27232, ptr noundef %27235, i32 noundef %27237) #12
  br label %27239

27239:                                            ; preds = %27222, %27205
  call void @llvm.lifetime.end.p0(i64 4, ptr %588) #12
  br label %27240

27240:                                            ; preds = %27239
  br label %27241

27241:                                            ; preds = %27240
  call void @exit(i32 noundef 1) #14
  unreachable

27242:                                            ; No predecessors!
  br label %27243

27243:                                            ; preds = %27242
  br label %27244

27244:                                            ; preds = %27243, %27182
  br label %27245

27245:                                            ; preds = %27244
  br label %27246

27246:                                            ; preds = %27245
  call void @llvm.lifetime.start.p0(i64 8, ptr %589) #12
  %27247 = load ptr, ptr %568, align 8, !tbaa !9
  %27248 = getelementptr inbounds %struct.s2n_connection, ptr %27247, i32 0, i32 31
  %27249 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %27248, i32 0, i32 3
  store ptr %27249, ptr %589, align 8, !tbaa !9
  br label %27250

27250:                                            ; preds = %27246
  %27251 = load i32, ptr @test_count, align 4, !tbaa !5
  %27252 = add nsw i32 %27251, 1
  store i32 %27252, ptr @test_count, align 4, !tbaa !5
  %27253 = load ptr, ptr %589, align 8, !tbaa !9
  %27254 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %27253, i32 0, i32 0
  %27255 = load ptr, ptr %27254, align 8, !tbaa !22
  %27256 = load ptr, ptr %575, align 8, !tbaa !9
  %27257 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %27256, i32 0, i32 1
  %27258 = load ptr, ptr %27257, align 8, !tbaa !24
  %27259 = getelementptr inbounds ptr, ptr %27258, i64 0
  %27260 = load ptr, ptr %27259, align 8, !tbaa !9
  %27261 = icmp eq ptr %27255, %27260
  br i1 %27261, label %27315, label %27262

27262:                                            ; preds = %27250
  br label %27263

27263:                                            ; preds = %27262
  br label %27264

27264:                                            ; preds = %27263
  call void @llvm.lifetime.start.p0(i64 4, ptr %590) #12
  %27265 = call ptr @__errno_location() #13
  %27266 = load i32, ptr %27265, align 4, !tbaa !5
  store i32 %27266, ptr %590, align 4, !tbaa !5
  %27267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27268 = call i32 @s2n_print_stacktrace(ptr noundef %27267)
  %27269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27270 = trunc i8 %27269 to i1
  br i1 %27270, label %27271, label %27293

27271:                                            ; preds = %27264
  %27272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27273 = call i32 @fileno(ptr noundef %27272) #12
  %27274 = call i32 @isatty(i32 noundef %27273) #12
  %27275 = icmp ne i32 %27274, 0
  br i1 %27275, label %27276, label %27293

27276:                                            ; preds = %27271
  %27277 = load i32, ptr %590, align 4, !tbaa !5
  %27278 = call ptr @__errno_location() #13
  store i32 %27277, ptr %27278, align 4, !tbaa !5
  %27279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27280 = load i32, ptr @test_count, align 4, !tbaa !5
  %27281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27282 = load i32, ptr %27281, align 4, !tbaa !5
  %27283 = call ptr @s2n_strerror(i32 noundef %27282, ptr noundef @.str.6)
  %27284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27285 = load i32, ptr %27284, align 4, !tbaa !5
  %27286 = call ptr @s2n_strerror_debug(i32 noundef %27285, ptr noundef @.str.6)
  %27287 = call ptr @__errno_location() #13
  %27288 = load i32, ptr %27287, align 4, !tbaa !5
  %27289 = call ptr @strerror(i32 noundef %27288) #12
  %27290 = call ptr @__errno_location() #13
  %27291 = load i32, ptr %27290, align 4, !tbaa !5
  %27292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27279, ptr noundef @.str.4, i32 noundef %27280, ptr noundef @.str.102, ptr noundef @.str.3, i32 noundef 1051, ptr noundef %27283, ptr noundef %27286, ptr noundef %27289, i32 noundef %27291) #12
  br label %27310

27293:                                            ; preds = %27271, %27264
  %27294 = load i32, ptr %590, align 4, !tbaa !5
  %27295 = call ptr @__errno_location() #13
  store i32 %27294, ptr %27295, align 4, !tbaa !5
  %27296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27297 = load i32, ptr @test_count, align 4, !tbaa !5
  %27298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27299 = load i32, ptr %27298, align 4, !tbaa !5
  %27300 = call ptr @s2n_strerror(i32 noundef %27299, ptr noundef @.str.6)
  %27301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27302 = load i32, ptr %27301, align 4, !tbaa !5
  %27303 = call ptr @s2n_strerror_debug(i32 noundef %27302, ptr noundef @.str.6)
  %27304 = call ptr @__errno_location() #13
  %27305 = load i32, ptr %27304, align 4, !tbaa !5
  %27306 = call ptr @strerror(i32 noundef %27305) #12
  %27307 = call ptr @__errno_location() #13
  %27308 = load i32, ptr %27307, align 4, !tbaa !5
  %27309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27296, ptr noundef @.str.7, i32 noundef %27297, ptr noundef @.str.102, ptr noundef @.str.3, i32 noundef 1051, ptr noundef %27300, ptr noundef %27303, ptr noundef %27306, i32 noundef %27308) #12
  br label %27310

27310:                                            ; preds = %27293, %27276
  call void @llvm.lifetime.end.p0(i64 4, ptr %590) #12
  br label %27311

27311:                                            ; preds = %27310
  br label %27312

27312:                                            ; preds = %27311
  call void @exit(i32 noundef 1) #14
  unreachable

27313:                                            ; No predecessors!
  br label %27314

27314:                                            ; preds = %27313
  br label %27315

27315:                                            ; preds = %27314, %27250
  br label %27316

27316:                                            ; preds = %27315
  br label %27317

27317:                                            ; preds = %27316
  br label %27318

27318:                                            ; preds = %27317
  %27319 = load i32, ptr @test_count, align 4, !tbaa !5
  %27320 = add nsw i32 %27319, 1
  store i32 %27320, ptr @test_count, align 4, !tbaa !5
  %27321 = load ptr, ptr %589, align 8, !tbaa !9
  %27322 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %27321, i32 0, i32 1
  %27323 = load ptr, ptr %27322, align 8, !tbaa !26
  %27324 = icmp eq ptr %27323, null
  br i1 %27324, label %27325, label %27378

27325:                                            ; preds = %27318
  br label %27326

27326:                                            ; preds = %27325
  br label %27327

27327:                                            ; preds = %27326
  call void @llvm.lifetime.start.p0(i64 4, ptr %591) #12
  %27328 = call ptr @__errno_location() #13
  %27329 = load i32, ptr %27328, align 4, !tbaa !5
  store i32 %27329, ptr %591, align 4, !tbaa !5
  %27330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27331 = call i32 @s2n_print_stacktrace(ptr noundef %27330)
  %27332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27333 = trunc i8 %27332 to i1
  br i1 %27333, label %27334, label %27356

27334:                                            ; preds = %27327
  %27335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27336 = call i32 @fileno(ptr noundef %27335) #12
  %27337 = call i32 @isatty(i32 noundef %27336) #12
  %27338 = icmp ne i32 %27337, 0
  br i1 %27338, label %27339, label %27356

27339:                                            ; preds = %27334
  %27340 = load i32, ptr %591, align 4, !tbaa !5
  %27341 = call ptr @__errno_location() #13
  store i32 %27340, ptr %27341, align 4, !tbaa !5
  %27342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27343 = load i32, ptr @test_count, align 4, !tbaa !5
  %27344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27345 = load i32, ptr %27344, align 4, !tbaa !5
  %27346 = call ptr @s2n_strerror(i32 noundef %27345, ptr noundef @.str.6)
  %27347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27348 = load i32, ptr %27347, align 4, !tbaa !5
  %27349 = call ptr @s2n_strerror_debug(i32 noundef %27348, ptr noundef @.str.6)
  %27350 = call ptr @__errno_location() #13
  %27351 = load i32, ptr %27350, align 4, !tbaa !5
  %27352 = call ptr @strerror(i32 noundef %27351) #12
  %27353 = call ptr @__errno_location() #13
  %27354 = load i32, ptr %27353, align 4, !tbaa !5
  %27355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27342, ptr noundef @.str.4, i32 noundef %27343, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 1052, ptr noundef %27346, ptr noundef %27349, ptr noundef %27352, i32 noundef %27354) #12
  br label %27373

27356:                                            ; preds = %27334, %27327
  %27357 = load i32, ptr %591, align 4, !tbaa !5
  %27358 = call ptr @__errno_location() #13
  store i32 %27357, ptr %27358, align 4, !tbaa !5
  %27359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27360 = load i32, ptr @test_count, align 4, !tbaa !5
  %27361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27362 = load i32, ptr %27361, align 4, !tbaa !5
  %27363 = call ptr @s2n_strerror(i32 noundef %27362, ptr noundef @.str.6)
  %27364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27365 = load i32, ptr %27364, align 4, !tbaa !5
  %27366 = call ptr @s2n_strerror_debug(i32 noundef %27365, ptr noundef @.str.6)
  %27367 = call ptr @__errno_location() #13
  %27368 = load i32, ptr %27367, align 4, !tbaa !5
  %27369 = call ptr @strerror(i32 noundef %27368) #12
  %27370 = call ptr @__errno_location() #13
  %27371 = load i32, ptr %27370, align 4, !tbaa !5
  %27372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27359, ptr noundef @.str.7, i32 noundef %27360, ptr noundef @.str.65, ptr noundef @.str.3, i32 noundef 1052, ptr noundef %27363, ptr noundef %27366, ptr noundef %27369, i32 noundef %27371) #12
  br label %27373

27373:                                            ; preds = %27356, %27339
  call void @llvm.lifetime.end.p0(i64 4, ptr %591) #12
  br label %27374

27374:                                            ; preds = %27373
  br label %27375

27375:                                            ; preds = %27374
  call void @exit(i32 noundef 1) #14
  unreachable

27376:                                            ; No predecessors!
  br label %27377

27377:                                            ; preds = %27376
  br label %27378

27378:                                            ; preds = %27377, %27318
  br label %27379

27379:                                            ; preds = %27378
  br label %27380

27380:                                            ; preds = %27379
  br label %27381

27381:                                            ; preds = %27380
  %27382 = load i32, ptr @test_count, align 4, !tbaa !5
  %27383 = add nsw i32 %27382, 1
  store i32 %27383, ptr @test_count, align 4, !tbaa !5
  %27384 = load ptr, ptr %589, align 8, !tbaa !9
  %27385 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %579, i64 0, i64 0
  %27386 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %27384, ptr noundef %27385)
  %27387 = icmp ne i32 %27386, 0
  br i1 %27387, label %27441, label %27388

27388:                                            ; preds = %27381
  br label %27389

27389:                                            ; preds = %27388
  br label %27390

27390:                                            ; preds = %27389
  call void @llvm.lifetime.start.p0(i64 4, ptr %592) #12
  %27391 = call ptr @__errno_location() #13
  %27392 = load i32, ptr %27391, align 4, !tbaa !5
  store i32 %27392, ptr %592, align 4, !tbaa !5
  %27393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27394 = call i32 @s2n_print_stacktrace(ptr noundef %27393)
  %27395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27396 = trunc i8 %27395 to i1
  br i1 %27396, label %27397, label %27419

27397:                                            ; preds = %27390
  %27398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27399 = call i32 @fileno(ptr noundef %27398) #12
  %27400 = call i32 @isatty(i32 noundef %27399) #12
  %27401 = icmp ne i32 %27400, 0
  br i1 %27401, label %27402, label %27419

27402:                                            ; preds = %27397
  %27403 = load i32, ptr %592, align 4, !tbaa !5
  %27404 = call ptr @__errno_location() #13
  store i32 %27403, ptr %27404, align 4, !tbaa !5
  %27405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27406 = load i32, ptr @test_count, align 4, !tbaa !5
  %27407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27408 = load i32, ptr %27407, align 4, !tbaa !5
  %27409 = call ptr @s2n_strerror(i32 noundef %27408, ptr noundef @.str.6)
  %27410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27411 = load i32, ptr %27410, align 4, !tbaa !5
  %27412 = call ptr @s2n_strerror_debug(i32 noundef %27411, ptr noundef @.str.6)
  %27413 = call ptr @__errno_location() #13
  %27414 = load i32, ptr %27413, align 4, !tbaa !5
  %27415 = call ptr @strerror(i32 noundef %27414) #12
  %27416 = call ptr @__errno_location() #13
  %27417 = load i32, ptr %27416, align 4, !tbaa !5
  %27418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27405, ptr noundef @.str.4, i32 noundef %27406, ptr noundef @.str.100, ptr noundef @.str.3, i32 noundef 1053, ptr noundef %27409, ptr noundef %27412, ptr noundef %27415, i32 noundef %27417) #12
  br label %27436

27419:                                            ; preds = %27397, %27390
  %27420 = load i32, ptr %592, align 4, !tbaa !5
  %27421 = call ptr @__errno_location() #13
  store i32 %27420, ptr %27421, align 4, !tbaa !5
  %27422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27423 = load i32, ptr @test_count, align 4, !tbaa !5
  %27424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27425 = load i32, ptr %27424, align 4, !tbaa !5
  %27426 = call ptr @s2n_strerror(i32 noundef %27425, ptr noundef @.str.6)
  %27427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27428 = load i32, ptr %27427, align 4, !tbaa !5
  %27429 = call ptr @s2n_strerror_debug(i32 noundef %27428, ptr noundef @.str.6)
  %27430 = call ptr @__errno_location() #13
  %27431 = load i32, ptr %27430, align 4, !tbaa !5
  %27432 = call ptr @strerror(i32 noundef %27431) #12
  %27433 = call ptr @__errno_location() #13
  %27434 = load i32, ptr %27433, align 4, !tbaa !5
  %27435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27422, ptr noundef @.str.7, i32 noundef %27423, ptr noundef @.str.100, ptr noundef @.str.3, i32 noundef 1053, ptr noundef %27426, ptr noundef %27429, ptr noundef %27432, i32 noundef %27434) #12
  br label %27436

27436:                                            ; preds = %27419, %27402
  call void @llvm.lifetime.end.p0(i64 4, ptr %592) #12
  br label %27437

27437:                                            ; preds = %27436
  br label %27438

27438:                                            ; preds = %27437
  call void @exit(i32 noundef 1) #14
  unreachable

27439:                                            ; No predecessors!
  br label %27440

27440:                                            ; preds = %27439
  br label %27441

27441:                                            ; preds = %27440, %27381
  br label %27442

27442:                                            ; preds = %27441
  br label %27443

27443:                                            ; preds = %27442
  call void @llvm.lifetime.start.p0(i64 8, ptr %593) #12
  store i64 0, ptr %593, align 8, !tbaa !65
  br label %27444

27444:                                            ; preds = %27512, %27443
  %27445 = load i64, ptr %593, align 8, !tbaa !65
  %27446 = icmp ult i64 %27445, 2
  br i1 %27446, label %27448, label %27447

27447:                                            ; preds = %27444
  store i32 2572, ptr %126, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %593) #12
  br label %27515

27448:                                            ; preds = %27444
  br label %27449

27449:                                            ; preds = %27448
  %27450 = load i32, ptr @test_count, align 4, !tbaa !5
  %27451 = add nsw i32 %27450, 1
  store i32 %27451, ptr @test_count, align 4, !tbaa !5
  %27452 = load i64, ptr %593, align 8, !tbaa !65
  %27453 = getelementptr inbounds [2 x %struct.s2n_ecc_evp_params], ptr %579, i64 0, i64 %27452
  %27454 = call i32 @s2n_ecc_evp_params_free(ptr noundef %27453)
  %27455 = icmp eq i32 %27454, -1
  br i1 %27455, label %27456, label %27509

27456:                                            ; preds = %27449
  br label %27457

27457:                                            ; preds = %27456
  br label %27458

27458:                                            ; preds = %27457
  call void @llvm.lifetime.start.p0(i64 4, ptr %594) #12
  %27459 = call ptr @__errno_location() #13
  %27460 = load i32, ptr %27459, align 4, !tbaa !5
  store i32 %27460, ptr %594, align 4, !tbaa !5
  %27461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27462 = call i32 @s2n_print_stacktrace(ptr noundef %27461)
  %27463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27464 = trunc i8 %27463 to i1
  br i1 %27464, label %27465, label %27487

27465:                                            ; preds = %27458
  %27466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27467 = call i32 @fileno(ptr noundef %27466) #12
  %27468 = call i32 @isatty(i32 noundef %27467) #12
  %27469 = icmp ne i32 %27468, 0
  br i1 %27469, label %27470, label %27487

27470:                                            ; preds = %27465
  %27471 = load i32, ptr %594, align 4, !tbaa !5
  %27472 = call ptr @__errno_location() #13
  store i32 %27471, ptr %27472, align 4, !tbaa !5
  %27473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27474 = load i32, ptr @test_count, align 4, !tbaa !5
  %27475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27476 = load i32, ptr %27475, align 4, !tbaa !5
  %27477 = call ptr @s2n_strerror(i32 noundef %27476, ptr noundef @.str.6)
  %27478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27479 = load i32, ptr %27478, align 4, !tbaa !5
  %27480 = call ptr @s2n_strerror_debug(i32 noundef %27479, ptr noundef @.str.6)
  %27481 = call ptr @__errno_location() #13
  %27482 = load i32, ptr %27481, align 4, !tbaa !5
  %27483 = call ptr @strerror(i32 noundef %27482) #12
  %27484 = call ptr @__errno_location() #13
  %27485 = load i32, ptr %27484, align 4, !tbaa !5
  %27486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27473, ptr noundef @.str.4, i32 noundef %27474, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 1056, ptr noundef %27477, ptr noundef %27480, ptr noundef %27483, i32 noundef %27485) #12
  br label %27504

27487:                                            ; preds = %27465, %27458
  %27488 = load i32, ptr %594, align 4, !tbaa !5
  %27489 = call ptr @__errno_location() #13
  store i32 %27488, ptr %27489, align 4, !tbaa !5
  %27490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27491 = load i32, ptr @test_count, align 4, !tbaa !5
  %27492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27493 = load i32, ptr %27492, align 4, !tbaa !5
  %27494 = call ptr @s2n_strerror(i32 noundef %27493, ptr noundef @.str.6)
  %27495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27496 = load i32, ptr %27495, align 4, !tbaa !5
  %27497 = call ptr @s2n_strerror_debug(i32 noundef %27496, ptr noundef @.str.6)
  %27498 = call ptr @__errno_location() #13
  %27499 = load i32, ptr %27498, align 4, !tbaa !5
  %27500 = call ptr @strerror(i32 noundef %27499) #12
  %27501 = call ptr @__errno_location() #13
  %27502 = load i32, ptr %27501, align 4, !tbaa !5
  %27503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27490, ptr noundef @.str.7, i32 noundef %27491, ptr noundef @.str.101, ptr noundef @.str.3, i32 noundef 1056, ptr noundef %27494, ptr noundef %27497, ptr noundef %27500, i32 noundef %27502) #12
  br label %27504

27504:                                            ; preds = %27487, %27470
  call void @llvm.lifetime.end.p0(i64 4, ptr %594) #12
  br label %27505

27505:                                            ; preds = %27504
  br label %27506

27506:                                            ; preds = %27505
  call void @exit(i32 noundef 1) #14
  unreachable

27507:                                            ; No predecessors!
  br label %27508

27508:                                            ; preds = %27507
  br label %27509

27509:                                            ; preds = %27508, %27449
  br label %27510

27510:                                            ; preds = %27509
  br label %27511

27511:                                            ; preds = %27510
  br label %27512

27512:                                            ; preds = %27511
  %27513 = load i64, ptr %593, align 8, !tbaa !65
  %27514 = add i64 %27513, 1
  store i64 %27514, ptr %593, align 8, !tbaa !65
  br label %27444, !llvm.loop !71

27515:                                            ; preds = %27447
  br label %27516

27516:                                            ; preds = %27515
  %27517 = load i32, ptr @test_count, align 4, !tbaa !5
  %27518 = add nsw i32 %27517, 1
  store i32 %27518, ptr @test_count, align 4, !tbaa !5
  %27519 = call i32 @s2n_stuffer_free(ptr noundef %573)
  %27520 = icmp eq i32 %27519, -1
  br i1 %27520, label %27521, label %27574

27521:                                            ; preds = %27516
  br label %27522

27522:                                            ; preds = %27521
  br label %27523

27523:                                            ; preds = %27522
  call void @llvm.lifetime.start.p0(i64 4, ptr %595) #12
  %27524 = call ptr @__errno_location() #13
  %27525 = load i32, ptr %27524, align 4, !tbaa !5
  store i32 %27525, ptr %595, align 4, !tbaa !5
  %27526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27527 = call i32 @s2n_print_stacktrace(ptr noundef %27526)
  %27528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27529 = trunc i8 %27528 to i1
  br i1 %27529, label %27530, label %27552

27530:                                            ; preds = %27523
  %27531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27532 = call i32 @fileno(ptr noundef %27531) #12
  %27533 = call i32 @isatty(i32 noundef %27532) #12
  %27534 = icmp ne i32 %27533, 0
  br i1 %27534, label %27535, label %27552

27535:                                            ; preds = %27530
  %27536 = load i32, ptr %595, align 4, !tbaa !5
  %27537 = call ptr @__errno_location() #13
  store i32 %27536, ptr %27537, align 4, !tbaa !5
  %27538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27539 = load i32, ptr @test_count, align 4, !tbaa !5
  %27540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27541 = load i32, ptr %27540, align 4, !tbaa !5
  %27542 = call ptr @s2n_strerror(i32 noundef %27541, ptr noundef @.str.6)
  %27543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27544 = load i32, ptr %27543, align 4, !tbaa !5
  %27545 = call ptr @s2n_strerror_debug(i32 noundef %27544, ptr noundef @.str.6)
  %27546 = call ptr @__errno_location() #13
  %27547 = load i32, ptr %27546, align 4, !tbaa !5
  %27548 = call ptr @strerror(i32 noundef %27547) #12
  %27549 = call ptr @__errno_location() #13
  %27550 = load i32, ptr %27549, align 4, !tbaa !5
  %27551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27538, ptr noundef @.str.4, i32 noundef %27539, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 1058, ptr noundef %27542, ptr noundef %27545, ptr noundef %27548, i32 noundef %27550) #12
  br label %27569

27552:                                            ; preds = %27530, %27523
  %27553 = load i32, ptr %595, align 4, !tbaa !5
  %27554 = call ptr @__errno_location() #13
  store i32 %27553, ptr %27554, align 4, !tbaa !5
  %27555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27556 = load i32, ptr @test_count, align 4, !tbaa !5
  %27557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27558 = load i32, ptr %27557, align 4, !tbaa !5
  %27559 = call ptr @s2n_strerror(i32 noundef %27558, ptr noundef @.str.6)
  %27560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27561 = load i32, ptr %27560, align 4, !tbaa !5
  %27562 = call ptr @s2n_strerror_debug(i32 noundef %27561, ptr noundef @.str.6)
  %27563 = call ptr @__errno_location() #13
  %27564 = load i32, ptr %27563, align 4, !tbaa !5
  %27565 = call ptr @strerror(i32 noundef %27564) #12
  %27566 = call ptr @__errno_location() #13
  %27567 = load i32, ptr %27566, align 4, !tbaa !5
  %27568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27555, ptr noundef @.str.7, i32 noundef %27556, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 1058, ptr noundef %27559, ptr noundef %27562, ptr noundef %27565, i32 noundef %27567) #12
  br label %27569

27569:                                            ; preds = %27552, %27535
  call void @llvm.lifetime.end.p0(i64 4, ptr %595) #12
  br label %27570

27570:                                            ; preds = %27569
  br label %27571

27571:                                            ; preds = %27570
  call void @exit(i32 noundef 1) #14
  unreachable

27572:                                            ; No predecessors!
  br label %27573

27573:                                            ; preds = %27572
  br label %27574

27574:                                            ; preds = %27573, %27516
  br label %27575

27575:                                            ; preds = %27574
  br label %27576

27576:                                            ; preds = %27575
  br label %27577

27577:                                            ; preds = %27576
  %27578 = load i32, ptr @test_count, align 4, !tbaa !5
  %27579 = add nsw i32 %27578, 1
  store i32 %27579, ptr @test_count, align 4, !tbaa !5
  %27580 = load ptr, ptr %568, align 8, !tbaa !9
  %27581 = call i32 @s2n_connection_free(ptr noundef %27580)
  %27582 = icmp eq i32 %27581, -1
  br i1 %27582, label %27583, label %27636

27583:                                            ; preds = %27577
  br label %27584

27584:                                            ; preds = %27583
  br label %27585

27585:                                            ; preds = %27584
  call void @llvm.lifetime.start.p0(i64 4, ptr %596) #12
  %27586 = call ptr @__errno_location() #13
  %27587 = load i32, ptr %27586, align 4, !tbaa !5
  store i32 %27587, ptr %596, align 4, !tbaa !5
  %27588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27589 = call i32 @s2n_print_stacktrace(ptr noundef %27588)
  %27590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27591 = trunc i8 %27590 to i1
  br i1 %27591, label %27592, label %27614

27592:                                            ; preds = %27585
  %27593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27594 = call i32 @fileno(ptr noundef %27593) #12
  %27595 = call i32 @isatty(i32 noundef %27594) #12
  %27596 = icmp ne i32 %27595, 0
  br i1 %27596, label %27597, label %27614

27597:                                            ; preds = %27592
  %27598 = load i32, ptr %596, align 4, !tbaa !5
  %27599 = call ptr @__errno_location() #13
  store i32 %27598, ptr %27599, align 4, !tbaa !5
  %27600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27601 = load i32, ptr @test_count, align 4, !tbaa !5
  %27602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27603 = load i32, ptr %27602, align 4, !tbaa !5
  %27604 = call ptr @s2n_strerror(i32 noundef %27603, ptr noundef @.str.6)
  %27605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27606 = load i32, ptr %27605, align 4, !tbaa !5
  %27607 = call ptr @s2n_strerror_debug(i32 noundef %27606, ptr noundef @.str.6)
  %27608 = call ptr @__errno_location() #13
  %27609 = load i32, ptr %27608, align 4, !tbaa !5
  %27610 = call ptr @strerror(i32 noundef %27609) #12
  %27611 = call ptr @__errno_location() #13
  %27612 = load i32, ptr %27611, align 4, !tbaa !5
  %27613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27600, ptr noundef @.str.4, i32 noundef %27601, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 1059, ptr noundef %27604, ptr noundef %27607, ptr noundef %27610, i32 noundef %27612) #12
  br label %27631

27614:                                            ; preds = %27592, %27585
  %27615 = load i32, ptr %596, align 4, !tbaa !5
  %27616 = call ptr @__errno_location() #13
  store i32 %27615, ptr %27616, align 4, !tbaa !5
  %27617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27618 = load i32, ptr @test_count, align 4, !tbaa !5
  %27619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27620 = load i32, ptr %27619, align 4, !tbaa !5
  %27621 = call ptr @s2n_strerror(i32 noundef %27620, ptr noundef @.str.6)
  %27622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27623 = load i32, ptr %27622, align 4, !tbaa !5
  %27624 = call ptr @s2n_strerror_debug(i32 noundef %27623, ptr noundef @.str.6)
  %27625 = call ptr @__errno_location() #13
  %27626 = load i32, ptr %27625, align 4, !tbaa !5
  %27627 = call ptr @strerror(i32 noundef %27626) #12
  %27628 = call ptr @__errno_location() #13
  %27629 = load i32, ptr %27628, align 4, !tbaa !5
  %27630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27617, ptr noundef @.str.7, i32 noundef %27618, ptr noundef @.str.67, ptr noundef @.str.3, i32 noundef 1059, ptr noundef %27621, ptr noundef %27624, ptr noundef %27627, i32 noundef %27629) #12
  br label %27631

27631:                                            ; preds = %27614, %27597
  call void @llvm.lifetime.end.p0(i64 4, ptr %596) #12
  br label %27632

27632:                                            ; preds = %27631
  br label %27633

27633:                                            ; preds = %27632
  call void @exit(i32 noundef 1) #14
  unreachable

27634:                                            ; No predecessors!
  br label %27635

27635:                                            ; preds = %27634
  br label %27636

27636:                                            ; preds = %27635, %27577
  br label %27637

27637:                                            ; preds = %27636
  br label %27638

27638:                                            ; preds = %27637
  call void @llvm.lifetime.end.p0(i64 8, ptr %589) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %580) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %579) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %575) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %573) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %568) #12
  %27639 = call i32 (...) @s2n_is_evp_apis_supported()
  %27640 = icmp ne i32 %27639, 0
  br i1 %27640, label %27641, label %28833

27641:                                            ; preds = %27638
  call void @llvm.lifetime.start.p0(i64 8, ptr %597) #12
  store ptr null, ptr %597, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %598) #12
  call void @llvm.memset.p0.i64(ptr align 8 %598, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %599) #12
  store ptr null, ptr %599, align 8, !tbaa !9
  br label %27642

27642:                                            ; preds = %27641
  %27643 = load i32, ptr @test_count, align 4, !tbaa !5
  %27644 = add nsw i32 %27643, 1
  store i32 %27644, ptr @test_count, align 4, !tbaa !5
  %27645 = call ptr @s2n_config_new()
  store ptr %27645, ptr %599, align 8, !tbaa !9
  %27646 = icmp eq ptr %27645, null
  br i1 %27646, label %27647, label %27700

27647:                                            ; preds = %27642
  br label %27648

27648:                                            ; preds = %27647
  br label %27649

27649:                                            ; preds = %27648
  call void @llvm.lifetime.start.p0(i64 4, ptr %600) #12
  %27650 = call ptr @__errno_location() #13
  %27651 = load i32, ptr %27650, align 4, !tbaa !5
  store i32 %27651, ptr %600, align 4, !tbaa !5
  %27652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27653 = call i32 @s2n_print_stacktrace(ptr noundef %27652)
  %27654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27655 = trunc i8 %27654 to i1
  br i1 %27655, label %27656, label %27678

27656:                                            ; preds = %27649
  %27657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27658 = call i32 @fileno(ptr noundef %27657) #12
  %27659 = call i32 @isatty(i32 noundef %27658) #12
  %27660 = icmp ne i32 %27659, 0
  br i1 %27660, label %27661, label %27678

27661:                                            ; preds = %27656
  %27662 = load i32, ptr %600, align 4, !tbaa !5
  %27663 = call ptr @__errno_location() #13
  store i32 %27662, ptr %27663, align 4, !tbaa !5
  %27664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27665 = load i32, ptr @test_count, align 4, !tbaa !5
  %27666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27667 = load i32, ptr %27666, align 4, !tbaa !5
  %27668 = call ptr @s2n_strerror(i32 noundef %27667, ptr noundef @.str.6)
  %27669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27670 = load i32, ptr %27669, align 4, !tbaa !5
  %27671 = call ptr @s2n_strerror_debug(i32 noundef %27670, ptr noundef @.str.6)
  %27672 = call ptr @__errno_location() #13
  %27673 = load i32, ptr %27672, align 4, !tbaa !5
  %27674 = call ptr @strerror(i32 noundef %27673) #12
  %27675 = call ptr @__errno_location() #13
  %27676 = load i32, ptr %27675, align 4, !tbaa !5
  %27677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27664, ptr noundef @.str.4, i32 noundef %27665, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 1070, ptr noundef %27668, ptr noundef %27671, ptr noundef %27674, i32 noundef %27676) #12
  br label %27695

27678:                                            ; preds = %27656, %27649
  %27679 = load i32, ptr %600, align 4, !tbaa !5
  %27680 = call ptr @__errno_location() #13
  store i32 %27679, ptr %27680, align 4, !tbaa !5
  %27681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27682 = load i32, ptr @test_count, align 4, !tbaa !5
  %27683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27684 = load i32, ptr %27683, align 4, !tbaa !5
  %27685 = call ptr @s2n_strerror(i32 noundef %27684, ptr noundef @.str.6)
  %27686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27687 = load i32, ptr %27686, align 4, !tbaa !5
  %27688 = call ptr @s2n_strerror_debug(i32 noundef %27687, ptr noundef @.str.6)
  %27689 = call ptr @__errno_location() #13
  %27690 = load i32, ptr %27689, align 4, !tbaa !5
  %27691 = call ptr @strerror(i32 noundef %27690) #12
  %27692 = call ptr @__errno_location() #13
  %27693 = load i32, ptr %27692, align 4, !tbaa !5
  %27694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27681, ptr noundef @.str.7, i32 noundef %27682, ptr noundef @.str.33, ptr noundef @.str.3, i32 noundef 1070, ptr noundef %27685, ptr noundef %27688, ptr noundef %27691, i32 noundef %27693) #12
  br label %27695

27695:                                            ; preds = %27678, %27661
  call void @llvm.lifetime.end.p0(i64 4, ptr %600) #12
  br label %27696

27696:                                            ; preds = %27695
  br label %27697

27697:                                            ; preds = %27696
  call void @exit(i32 noundef 1) #14
  unreachable

27698:                                            ; No predecessors!
  br label %27699

27699:                                            ; preds = %27698
  br label %27700

27700:                                            ; preds = %27699, %27642
  br label %27701

27701:                                            ; preds = %27700
  br label %27702

27702:                                            ; preds = %27701
  br label %27703

27703:                                            ; preds = %27702
  %27704 = load i32, ptr @test_count, align 4, !tbaa !5
  %27705 = add nsw i32 %27704, 1
  store i32 %27705, ptr @test_count, align 4, !tbaa !5
  %27706 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %27706, ptr %597, align 8, !tbaa !9
  %27707 = icmp eq ptr %27706, null
  br i1 %27707, label %27708, label %27761

27708:                                            ; preds = %27703
  br label %27709

27709:                                            ; preds = %27708
  br label %27710

27710:                                            ; preds = %27709
  call void @llvm.lifetime.start.p0(i64 4, ptr %601) #12
  %27711 = call ptr @__errno_location() #13
  %27712 = load i32, ptr %27711, align 4, !tbaa !5
  store i32 %27712, ptr %601, align 4, !tbaa !5
  %27713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27714 = call i32 @s2n_print_stacktrace(ptr noundef %27713)
  %27715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27716 = trunc i8 %27715 to i1
  br i1 %27716, label %27717, label %27739

27717:                                            ; preds = %27710
  %27718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27719 = call i32 @fileno(ptr noundef %27718) #12
  %27720 = call i32 @isatty(i32 noundef %27719) #12
  %27721 = icmp ne i32 %27720, 0
  br i1 %27721, label %27722, label %27739

27722:                                            ; preds = %27717
  %27723 = load i32, ptr %601, align 4, !tbaa !5
  %27724 = call ptr @__errno_location() #13
  store i32 %27723, ptr %27724, align 4, !tbaa !5
  %27725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27726 = load i32, ptr @test_count, align 4, !tbaa !5
  %27727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27728 = load i32, ptr %27727, align 4, !tbaa !5
  %27729 = call ptr @s2n_strerror(i32 noundef %27728, ptr noundef @.str.6)
  %27730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27731 = load i32, ptr %27730, align 4, !tbaa !5
  %27732 = call ptr @s2n_strerror_debug(i32 noundef %27731, ptr noundef @.str.6)
  %27733 = call ptr @__errno_location() #13
  %27734 = load i32, ptr %27733, align 4, !tbaa !5
  %27735 = call ptr @strerror(i32 noundef %27734) #12
  %27736 = call ptr @__errno_location() #13
  %27737 = load i32, ptr %27736, align 4, !tbaa !5
  %27738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27725, ptr noundef @.str.4, i32 noundef %27726, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 1071, ptr noundef %27729, ptr noundef %27732, ptr noundef %27735, i32 noundef %27737) #12
  br label %27756

27739:                                            ; preds = %27717, %27710
  %27740 = load i32, ptr %601, align 4, !tbaa !5
  %27741 = call ptr @__errno_location() #13
  store i32 %27740, ptr %27741, align 4, !tbaa !5
  %27742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27743 = load i32, ptr @test_count, align 4, !tbaa !5
  %27744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27745 = load i32, ptr %27744, align 4, !tbaa !5
  %27746 = call ptr @s2n_strerror(i32 noundef %27745, ptr noundef @.str.6)
  %27747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27748 = load i32, ptr %27747, align 4, !tbaa !5
  %27749 = call ptr @s2n_strerror_debug(i32 noundef %27748, ptr noundef @.str.6)
  %27750 = call ptr @__errno_location() #13
  %27751 = load i32, ptr %27750, align 4, !tbaa !5
  %27752 = call ptr @strerror(i32 noundef %27751) #12
  %27753 = call ptr @__errno_location() #13
  %27754 = load i32, ptr %27753, align 4, !tbaa !5
  %27755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27742, ptr noundef @.str.7, i32 noundef %27743, ptr noundef @.str.107, ptr noundef @.str.3, i32 noundef 1071, ptr noundef %27746, ptr noundef %27749, ptr noundef %27752, i32 noundef %27754) #12
  br label %27756

27756:                                            ; preds = %27739, %27722
  call void @llvm.lifetime.end.p0(i64 4, ptr %601) #12
  br label %27757

27757:                                            ; preds = %27756
  br label %27758

27758:                                            ; preds = %27757
  call void @exit(i32 noundef 1) #14
  unreachable

27759:                                            ; No predecessors!
  br label %27760

27760:                                            ; preds = %27759
  br label %27761

27761:                                            ; preds = %27760, %27703
  br label %27762

27762:                                            ; preds = %27761
  br label %27763

27763:                                            ; preds = %27762
  br label %27764

27764:                                            ; preds = %27763
  %27765 = load i32, ptr @test_count, align 4, !tbaa !5
  %27766 = add nsw i32 %27765, 1
  store i32 %27766, ptr @test_count, align 4, !tbaa !5
  %27767 = load ptr, ptr %597, align 8, !tbaa !9
  %27768 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %27767, i8 noundef zeroext 34)
  %27769 = icmp eq i32 %27768, -1
  br i1 %27769, label %27770, label %27823

27770:                                            ; preds = %27764
  br label %27771

27771:                                            ; preds = %27770
  br label %27772

27772:                                            ; preds = %27771
  call void @llvm.lifetime.start.p0(i64 4, ptr %602) #12
  %27773 = call ptr @__errno_location() #13
  %27774 = load i32, ptr %27773, align 4, !tbaa !5
  store i32 %27774, ptr %602, align 4, !tbaa !5
  %27775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27776 = call i32 @s2n_print_stacktrace(ptr noundef %27775)
  %27777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27778 = trunc i8 %27777 to i1
  br i1 %27778, label %27779, label %27801

27779:                                            ; preds = %27772
  %27780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27781 = call i32 @fileno(ptr noundef %27780) #12
  %27782 = call i32 @isatty(i32 noundef %27781) #12
  %27783 = icmp ne i32 %27782, 0
  br i1 %27783, label %27784, label %27801

27784:                                            ; preds = %27779
  %27785 = load i32, ptr %602, align 4, !tbaa !5
  %27786 = call ptr @__errno_location() #13
  store i32 %27785, ptr %27786, align 4, !tbaa !5
  %27787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27788 = load i32, ptr @test_count, align 4, !tbaa !5
  %27789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27790 = load i32, ptr %27789, align 4, !tbaa !5
  %27791 = call ptr @s2n_strerror(i32 noundef %27790, ptr noundef @.str.6)
  %27792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27793 = load i32, ptr %27792, align 4, !tbaa !5
  %27794 = call ptr @s2n_strerror_debug(i32 noundef %27793, ptr noundef @.str.6)
  %27795 = call ptr @__errno_location() #13
  %27796 = load i32, ptr %27795, align 4, !tbaa !5
  %27797 = call ptr @strerror(i32 noundef %27796) #12
  %27798 = call ptr @__errno_location() #13
  %27799 = load i32, ptr %27798, align 4, !tbaa !5
  %27800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27787, ptr noundef @.str.4, i32 noundef %27788, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 1072, ptr noundef %27791, ptr noundef %27794, ptr noundef %27797, i32 noundef %27799) #12
  br label %27818

27801:                                            ; preds = %27779, %27772
  %27802 = load i32, ptr %602, align 4, !tbaa !5
  %27803 = call ptr @__errno_location() #13
  store i32 %27802, ptr %27803, align 4, !tbaa !5
  %27804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27805 = load i32, ptr @test_count, align 4, !tbaa !5
  %27806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27807 = load i32, ptr %27806, align 4, !tbaa !5
  %27808 = call ptr @s2n_strerror(i32 noundef %27807, ptr noundef @.str.6)
  %27809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27810 = load i32, ptr %27809, align 4, !tbaa !5
  %27811 = call ptr @s2n_strerror_debug(i32 noundef %27810, ptr noundef @.str.6)
  %27812 = call ptr @__errno_location() #13
  %27813 = load i32, ptr %27812, align 4, !tbaa !5
  %27814 = call ptr @strerror(i32 noundef %27813) #12
  %27815 = call ptr @__errno_location() #13
  %27816 = load i32, ptr %27815, align 4, !tbaa !5
  %27817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27804, ptr noundef @.str.7, i32 noundef %27805, ptr noundef @.str.42, ptr noundef @.str.3, i32 noundef 1072, ptr noundef %27808, ptr noundef %27811, ptr noundef %27814, i32 noundef %27816) #12
  br label %27818

27818:                                            ; preds = %27801, %27784
  call void @llvm.lifetime.end.p0(i64 4, ptr %602) #12
  br label %27819

27819:                                            ; preds = %27818
  br label %27820

27820:                                            ; preds = %27819
  call void @exit(i32 noundef 1) #14
  unreachable

27821:                                            ; No predecessors!
  br label %27822

27822:                                            ; preds = %27821
  br label %27823

27823:                                            ; preds = %27822, %27764
  br label %27824

27824:                                            ; preds = %27823
  br label %27825

27825:                                            ; preds = %27824
  br label %27826

27826:                                            ; preds = %27825
  %27827 = load i32, ptr @test_count, align 4, !tbaa !5
  %27828 = add nsw i32 %27827, 1
  store i32 %27828, ptr @test_count, align 4, !tbaa !5
  %27829 = load ptr, ptr %597, align 8, !tbaa !9
  %27830 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %27829)
  %27831 = getelementptr inbounds %struct.s2n_result, ptr %603, i32 0, i32 0
  store i32 %27830, ptr %27831, align 4
  %27832 = getelementptr inbounds %struct.s2n_result, ptr %603, i32 0, i32 0
  %27833 = load i32, ptr %27832, align 4
  %27834 = call zeroext i1 @s2n_result_is_ok(i32 %27833)
  br i1 %27834, label %27888, label %27835

27835:                                            ; preds = %27826
  br label %27836

27836:                                            ; preds = %27835
  br label %27837

27837:                                            ; preds = %27836
  call void @llvm.lifetime.start.p0(i64 4, ptr %604) #12
  %27838 = call ptr @__errno_location() #13
  %27839 = load i32, ptr %27838, align 4, !tbaa !5
  store i32 %27839, ptr %604, align 4, !tbaa !5
  %27840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27841 = call i32 @s2n_print_stacktrace(ptr noundef %27840)
  %27842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27843 = trunc i8 %27842 to i1
  br i1 %27843, label %27844, label %27866

27844:                                            ; preds = %27837
  %27845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27846 = call i32 @fileno(ptr noundef %27845) #12
  %27847 = call i32 @isatty(i32 noundef %27846) #12
  %27848 = icmp ne i32 %27847, 0
  br i1 %27848, label %27849, label %27866

27849:                                            ; preds = %27844
  %27850 = load i32, ptr %604, align 4, !tbaa !5
  %27851 = call ptr @__errno_location() #13
  store i32 %27850, ptr %27851, align 4, !tbaa !5
  %27852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27853 = load i32, ptr @test_count, align 4, !tbaa !5
  %27854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27855 = load i32, ptr %27854, align 4, !tbaa !5
  %27856 = call ptr @s2n_strerror(i32 noundef %27855, ptr noundef @.str.6)
  %27857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27858 = load i32, ptr %27857, align 4, !tbaa !5
  %27859 = call ptr @s2n_strerror_debug(i32 noundef %27858, ptr noundef @.str.6)
  %27860 = call ptr @__errno_location() #13
  %27861 = load i32, ptr %27860, align 4, !tbaa !5
  %27862 = call ptr @strerror(i32 noundef %27861) #12
  %27863 = call ptr @__errno_location() #13
  %27864 = load i32, ptr %27863, align 4, !tbaa !5
  %27865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27852, ptr noundef @.str.4, i32 noundef %27853, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 1073, ptr noundef %27856, ptr noundef %27859, ptr noundef %27862, i32 noundef %27864) #12
  br label %27883

27866:                                            ; preds = %27844, %27837
  %27867 = load i32, ptr %604, align 4, !tbaa !5
  %27868 = call ptr @__errno_location() #13
  store i32 %27867, ptr %27868, align 4, !tbaa !5
  %27869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27870 = load i32, ptr @test_count, align 4, !tbaa !5
  %27871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27872 = load i32, ptr %27871, align 4, !tbaa !5
  %27873 = call ptr @s2n_strerror(i32 noundef %27872, ptr noundef @.str.6)
  %27874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27875 = load i32, ptr %27874, align 4, !tbaa !5
  %27876 = call ptr @s2n_strerror_debug(i32 noundef %27875, ptr noundef @.str.6)
  %27877 = call ptr @__errno_location() #13
  %27878 = load i32, ptr %27877, align 4, !tbaa !5
  %27879 = call ptr @strerror(i32 noundef %27878) #12
  %27880 = call ptr @__errno_location() #13
  %27881 = load i32, ptr %27880, align 4, !tbaa !5
  %27882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27869, ptr noundef @.str.7, i32 noundef %27870, ptr noundef @.str.108, ptr noundef @.str.3, i32 noundef 1073, ptr noundef %27873, ptr noundef %27876, ptr noundef %27879, i32 noundef %27881) #12
  br label %27883

27883:                                            ; preds = %27866, %27849
  call void @llvm.lifetime.end.p0(i64 4, ptr %604) #12
  br label %27884

27884:                                            ; preds = %27883
  br label %27885

27885:                                            ; preds = %27884
  call void @exit(i32 noundef 1) #14
  unreachable

27886:                                            ; No predecessors!
  br label %27887

27887:                                            ; preds = %27886
  br label %27888

27888:                                            ; preds = %27887, %27826
  br label %27889

27889:                                            ; preds = %27888
  br label %27890

27890:                                            ; preds = %27889
  br label %27891

27891:                                            ; preds = %27890
  %27892 = load i32, ptr @test_count, align 4, !tbaa !5
  %27893 = add nsw i32 %27892, 1
  store i32 %27893, ptr @test_count, align 4, !tbaa !5
  %27894 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %598, i32 noundef 0)
  %27895 = icmp eq i32 %27894, -1
  br i1 %27895, label %27896, label %27949

27896:                                            ; preds = %27891
  br label %27897

27897:                                            ; preds = %27896
  br label %27898

27898:                                            ; preds = %27897
  call void @llvm.lifetime.start.p0(i64 4, ptr %605) #12
  %27899 = call ptr @__errno_location() #13
  %27900 = load i32, ptr %27899, align 4, !tbaa !5
  store i32 %27900, ptr %605, align 4, !tbaa !5
  %27901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27902 = call i32 @s2n_print_stacktrace(ptr noundef %27901)
  %27903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27904 = trunc i8 %27903 to i1
  br i1 %27904, label %27905, label %27927

27905:                                            ; preds = %27898
  %27906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27907 = call i32 @fileno(ptr noundef %27906) #12
  %27908 = call i32 @isatty(i32 noundef %27907) #12
  %27909 = icmp ne i32 %27908, 0
  br i1 %27909, label %27910, label %27927

27910:                                            ; preds = %27905
  %27911 = load i32, ptr %605, align 4, !tbaa !5
  %27912 = call ptr @__errno_location() #13
  store i32 %27911, ptr %27912, align 4, !tbaa !5
  %27913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27914 = load i32, ptr @test_count, align 4, !tbaa !5
  %27915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27916 = load i32, ptr %27915, align 4, !tbaa !5
  %27917 = call ptr @s2n_strerror(i32 noundef %27916, ptr noundef @.str.6)
  %27918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27919 = load i32, ptr %27918, align 4, !tbaa !5
  %27920 = call ptr @s2n_strerror_debug(i32 noundef %27919, ptr noundef @.str.6)
  %27921 = call ptr @__errno_location() #13
  %27922 = load i32, ptr %27921, align 4, !tbaa !5
  %27923 = call ptr @strerror(i32 noundef %27922) #12
  %27924 = call ptr @__errno_location() #13
  %27925 = load i32, ptr %27924, align 4, !tbaa !5
  %27926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27913, ptr noundef @.str.4, i32 noundef %27914, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 1074, ptr noundef %27917, ptr noundef %27920, ptr noundef %27923, i32 noundef %27925) #12
  br label %27944

27927:                                            ; preds = %27905, %27898
  %27928 = load i32, ptr %605, align 4, !tbaa !5
  %27929 = call ptr @__errno_location() #13
  store i32 %27928, ptr %27929, align 4, !tbaa !5
  %27930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27931 = load i32, ptr @test_count, align 4, !tbaa !5
  %27932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27933 = load i32, ptr %27932, align 4, !tbaa !5
  %27934 = call ptr @s2n_strerror(i32 noundef %27933, ptr noundef @.str.6)
  %27935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27936 = load i32, ptr %27935, align 4, !tbaa !5
  %27937 = call ptr @s2n_strerror_debug(i32 noundef %27936, ptr noundef @.str.6)
  %27938 = call ptr @__errno_location() #13
  %27939 = load i32, ptr %27938, align 4, !tbaa !5
  %27940 = call ptr @strerror(i32 noundef %27939) #12
  %27941 = call ptr @__errno_location() #13
  %27942 = load i32, ptr %27941, align 4, !tbaa !5
  %27943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27930, ptr noundef @.str.7, i32 noundef %27931, ptr noundef @.str.20, ptr noundef @.str.3, i32 noundef 1074, ptr noundef %27934, ptr noundef %27937, ptr noundef %27940, i32 noundef %27942) #12
  br label %27944

27944:                                            ; preds = %27927, %27910
  call void @llvm.lifetime.end.p0(i64 4, ptr %605) #12
  br label %27945

27945:                                            ; preds = %27944
  br label %27946

27946:                                            ; preds = %27945
  call void @exit(i32 noundef 1) #14
  unreachable

27947:                                            ; No predecessors!
  br label %27948

27948:                                            ; preds = %27947
  br label %27949

27949:                                            ; preds = %27948, %27891
  br label %27950

27950:                                            ; preds = %27949
  br label %27951

27951:                                            ; preds = %27950
  br label %27952

27952:                                            ; preds = %27951
  %27953 = load i32, ptr @test_count, align 4, !tbaa !5
  %27954 = add nsw i32 %27953, 1
  store i32 %27954, ptr @test_count, align 4, !tbaa !5
  %27955 = load ptr, ptr %599, align 8, !tbaa !9
  %27956 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %27955, ptr noundef @.str.34)
  %27957 = icmp eq i32 %27956, -1
  br i1 %27957, label %27958, label %28011

27958:                                            ; preds = %27952
  br label %27959

27959:                                            ; preds = %27958
  br label %27960

27960:                                            ; preds = %27959
  call void @llvm.lifetime.start.p0(i64 4, ptr %606) #12
  %27961 = call ptr @__errno_location() #13
  %27962 = load i32, ptr %27961, align 4, !tbaa !5
  store i32 %27962, ptr %606, align 4, !tbaa !5
  %27963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27964 = call i32 @s2n_print_stacktrace(ptr noundef %27963)
  %27965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %27966 = trunc i8 %27965 to i1
  br i1 %27966, label %27967, label %27989

27967:                                            ; preds = %27960
  %27968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27969 = call i32 @fileno(ptr noundef %27968) #12
  %27970 = call i32 @isatty(i32 noundef %27969) #12
  %27971 = icmp ne i32 %27970, 0
  br i1 %27971, label %27972, label %27989

27972:                                            ; preds = %27967
  %27973 = load i32, ptr %606, align 4, !tbaa !5
  %27974 = call ptr @__errno_location() #13
  store i32 %27973, ptr %27974, align 4, !tbaa !5
  %27975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27976 = load i32, ptr @test_count, align 4, !tbaa !5
  %27977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27978 = load i32, ptr %27977, align 4, !tbaa !5
  %27979 = call ptr @s2n_strerror(i32 noundef %27978, ptr noundef @.str.6)
  %27980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27981 = load i32, ptr %27980, align 4, !tbaa !5
  %27982 = call ptr @s2n_strerror_debug(i32 noundef %27981, ptr noundef @.str.6)
  %27983 = call ptr @__errno_location() #13
  %27984 = load i32, ptr %27983, align 4, !tbaa !5
  %27985 = call ptr @strerror(i32 noundef %27984) #12
  %27986 = call ptr @__errno_location() #13
  %27987 = load i32, ptr %27986, align 4, !tbaa !5
  %27988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27975, ptr noundef @.str.4, i32 noundef %27976, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 1077, ptr noundef %27979, ptr noundef %27982, ptr noundef %27985, i32 noundef %27987) #12
  br label %28006

27989:                                            ; preds = %27967, %27960
  %27990 = load i32, ptr %606, align 4, !tbaa !5
  %27991 = call ptr @__errno_location() #13
  store i32 %27990, ptr %27991, align 4, !tbaa !5
  %27992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27993 = load i32, ptr @test_count, align 4, !tbaa !5
  %27994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27995 = load i32, ptr %27994, align 4, !tbaa !5
  %27996 = call ptr @s2n_strerror(i32 noundef %27995, ptr noundef @.str.6)
  %27997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %27998 = load i32, ptr %27997, align 4, !tbaa !5
  %27999 = call ptr @s2n_strerror_debug(i32 noundef %27998, ptr noundef @.str.6)
  %28000 = call ptr @__errno_location() #13
  %28001 = load i32, ptr %28000, align 4, !tbaa !5
  %28002 = call ptr @strerror(i32 noundef %28001) #12
  %28003 = call ptr @__errno_location() #13
  %28004 = load i32, ptr %28003, align 4, !tbaa !5
  %28005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %27992, ptr noundef @.str.7, i32 noundef %27993, ptr noundef @.str.35, ptr noundef @.str.3, i32 noundef 1077, ptr noundef %27996, ptr noundef %27999, ptr noundef %28002, i32 noundef %28004) #12
  br label %28006

28006:                                            ; preds = %27989, %27972
  call void @llvm.lifetime.end.p0(i64 4, ptr %606) #12
  br label %28007

28007:                                            ; preds = %28006
  br label %28008

28008:                                            ; preds = %28007
  call void @exit(i32 noundef 1) #14
  unreachable

28009:                                            ; No predecessors!
  br label %28010

28010:                                            ; preds = %28009
  br label %28011

28011:                                            ; preds = %28010, %27952
  br label %28012

28012:                                            ; preds = %28011
  br label %28013

28013:                                            ; preds = %28012
  br label %28014

28014:                                            ; preds = %28013
  %28015 = load i32, ptr @test_count, align 4, !tbaa !5
  %28016 = add nsw i32 %28015, 1
  store i32 %28016, ptr @test_count, align 4, !tbaa !5
  %28017 = load ptr, ptr %597, align 8, !tbaa !9
  %28018 = load ptr, ptr %599, align 8, !tbaa !9
  %28019 = call i32 @s2n_connection_set_config(ptr noundef %28017, ptr noundef %28018)
  %28020 = icmp eq i32 %28019, -1
  br i1 %28020, label %28021, label %28074

28021:                                            ; preds = %28014
  br label %28022

28022:                                            ; preds = %28021
  br label %28023

28023:                                            ; preds = %28022
  call void @llvm.lifetime.start.p0(i64 4, ptr %607) #12
  %28024 = call ptr @__errno_location() #13
  %28025 = load i32, ptr %28024, align 4, !tbaa !5
  store i32 %28025, ptr %607, align 4, !tbaa !5
  %28026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28027 = call i32 @s2n_print_stacktrace(ptr noundef %28026)
  %28028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28029 = trunc i8 %28028 to i1
  br i1 %28029, label %28030, label %28052

28030:                                            ; preds = %28023
  %28031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28032 = call i32 @fileno(ptr noundef %28031) #12
  %28033 = call i32 @isatty(i32 noundef %28032) #12
  %28034 = icmp ne i32 %28033, 0
  br i1 %28034, label %28035, label %28052

28035:                                            ; preds = %28030
  %28036 = load i32, ptr %607, align 4, !tbaa !5
  %28037 = call ptr @__errno_location() #13
  store i32 %28036, ptr %28037, align 4, !tbaa !5
  %28038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28039 = load i32, ptr @test_count, align 4, !tbaa !5
  %28040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28041 = load i32, ptr %28040, align 4, !tbaa !5
  %28042 = call ptr @s2n_strerror(i32 noundef %28041, ptr noundef @.str.6)
  %28043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28044 = load i32, ptr %28043, align 4, !tbaa !5
  %28045 = call ptr @s2n_strerror_debug(i32 noundef %28044, ptr noundef @.str.6)
  %28046 = call ptr @__errno_location() #13
  %28047 = load i32, ptr %28046, align 4, !tbaa !5
  %28048 = call ptr @strerror(i32 noundef %28047) #12
  %28049 = call ptr @__errno_location() #13
  %28050 = load i32, ptr %28049, align 4, !tbaa !5
  %28051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28038, ptr noundef @.str.4, i32 noundef %28039, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 1078, ptr noundef %28042, ptr noundef %28045, ptr noundef %28048, i32 noundef %28050) #12
  br label %28069

28052:                                            ; preds = %28030, %28023
  %28053 = load i32, ptr %607, align 4, !tbaa !5
  %28054 = call ptr @__errno_location() #13
  store i32 %28053, ptr %28054, align 4, !tbaa !5
  %28055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28056 = load i32, ptr @test_count, align 4, !tbaa !5
  %28057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28058 = load i32, ptr %28057, align 4, !tbaa !5
  %28059 = call ptr @s2n_strerror(i32 noundef %28058, ptr noundef @.str.6)
  %28060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28061 = load i32, ptr %28060, align 4, !tbaa !5
  %28062 = call ptr @s2n_strerror_debug(i32 noundef %28061, ptr noundef @.str.6)
  %28063 = call ptr @__errno_location() #13
  %28064 = load i32, ptr %28063, align 4, !tbaa !5
  %28065 = call ptr @strerror(i32 noundef %28064) #12
  %28066 = call ptr @__errno_location() #13
  %28067 = load i32, ptr %28066, align 4, !tbaa !5
  %28068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28055, ptr noundef @.str.7, i32 noundef %28056, ptr noundef @.str.36, ptr noundef @.str.3, i32 noundef 1078, ptr noundef %28059, ptr noundef %28062, ptr noundef %28065, i32 noundef %28067) #12
  br label %28069

28069:                                            ; preds = %28052, %28035
  call void @llvm.lifetime.end.p0(i64 4, ptr %607) #12
  br label %28070

28070:                                            ; preds = %28069
  br label %28071

28071:                                            ; preds = %28070
  call void @exit(i32 noundef 1) #14
  unreachable

28072:                                            ; No predecessors!
  br label %28073

28073:                                            ; preds = %28072
  br label %28074

28074:                                            ; preds = %28073, %28014
  br label %28075

28075:                                            ; preds = %28074
  br label %28076

28076:                                            ; preds = %28075
  call void @llvm.lifetime.start.p0(i64 8, ptr %608) #12
  store ptr null, ptr %608, align 8, !tbaa !9
  br label %28077

28077:                                            ; preds = %28076
  %28078 = load i32, ptr @test_count, align 4, !tbaa !5
  %28079 = add nsw i32 %28078, 1
  store i32 %28079, ptr @test_count, align 4, !tbaa !5
  %28080 = load ptr, ptr %597, align 8, !tbaa !9
  %28081 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %28080, ptr noundef %608)
  %28082 = icmp eq i32 %28081, -1
  br i1 %28082, label %28083, label %28136

28083:                                            ; preds = %28077
  br label %28084

28084:                                            ; preds = %28083
  br label %28085

28085:                                            ; preds = %28084
  call void @llvm.lifetime.start.p0(i64 4, ptr %609) #12
  %28086 = call ptr @__errno_location() #13
  %28087 = load i32, ptr %28086, align 4, !tbaa !5
  store i32 %28087, ptr %609, align 4, !tbaa !5
  %28088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28089 = call i32 @s2n_print_stacktrace(ptr noundef %28088)
  %28090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28091 = trunc i8 %28090 to i1
  br i1 %28091, label %28092, label %28114

28092:                                            ; preds = %28085
  %28093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28094 = call i32 @fileno(ptr noundef %28093) #12
  %28095 = call i32 @isatty(i32 noundef %28094) #12
  %28096 = icmp ne i32 %28095, 0
  br i1 %28096, label %28097, label %28114

28097:                                            ; preds = %28092
  %28098 = load i32, ptr %609, align 4, !tbaa !5
  %28099 = call ptr @__errno_location() #13
  store i32 %28098, ptr %28099, align 4, !tbaa !5
  %28100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28101 = load i32, ptr @test_count, align 4, !tbaa !5
  %28102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28103 = load i32, ptr %28102, align 4, !tbaa !5
  %28104 = call ptr @s2n_strerror(i32 noundef %28103, ptr noundef @.str.6)
  %28105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28106 = load i32, ptr %28105, align 4, !tbaa !5
  %28107 = call ptr @s2n_strerror_debug(i32 noundef %28106, ptr noundef @.str.6)
  %28108 = call ptr @__errno_location() #13
  %28109 = load i32, ptr %28108, align 4, !tbaa !5
  %28110 = call ptr @strerror(i32 noundef %28109) #12
  %28111 = call ptr @__errno_location() #13
  %28112 = load i32, ptr %28111, align 4, !tbaa !5
  %28113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28100, ptr noundef @.str.4, i32 noundef %28101, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 1081, ptr noundef %28104, ptr noundef %28107, ptr noundef %28110, i32 noundef %28112) #12
  br label %28131

28114:                                            ; preds = %28092, %28085
  %28115 = load i32, ptr %609, align 4, !tbaa !5
  %28116 = call ptr @__errno_location() #13
  store i32 %28115, ptr %28116, align 4, !tbaa !5
  %28117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28118 = load i32, ptr @test_count, align 4, !tbaa !5
  %28119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28120 = load i32, ptr %28119, align 4, !tbaa !5
  %28121 = call ptr @s2n_strerror(i32 noundef %28120, ptr noundef @.str.6)
  %28122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28123 = load i32, ptr %28122, align 4, !tbaa !5
  %28124 = call ptr @s2n_strerror_debug(i32 noundef %28123, ptr noundef @.str.6)
  %28125 = call ptr @__errno_location() #13
  %28126 = load i32, ptr %28125, align 4, !tbaa !5
  %28127 = call ptr @strerror(i32 noundef %28126) #12
  %28128 = call ptr @__errno_location() #13
  %28129 = load i32, ptr %28128, align 4, !tbaa !5
  %28130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28117, ptr noundef @.str.7, i32 noundef %28118, ptr noundef @.str.109, ptr noundef @.str.3, i32 noundef 1081, ptr noundef %28121, ptr noundef %28124, ptr noundef %28127, i32 noundef %28129) #12
  br label %28131

28131:                                            ; preds = %28114, %28097
  call void @llvm.lifetime.end.p0(i64 4, ptr %609) #12
  br label %28132

28132:                                            ; preds = %28131
  br label %28133

28133:                                            ; preds = %28132
  call void @exit(i32 noundef 1) #14
  unreachable

28134:                                            ; No predecessors!
  br label %28135

28135:                                            ; preds = %28134
  br label %28136

28136:                                            ; preds = %28135, %28077
  br label %28137

28137:                                            ; preds = %28136
  br label %28138

28138:                                            ; preds = %28137
  br label %28139

28139:                                            ; preds = %28138
  %28140 = load i32, ptr @test_count, align 4, !tbaa !5
  %28141 = add nsw i32 %28140, 1
  store i32 %28141, ptr @test_count, align 4, !tbaa !5
  %28142 = load ptr, ptr %608, align 8, !tbaa !9
  %28143 = icmp eq ptr %28142, null
  br i1 %28143, label %28144, label %28197

28144:                                            ; preds = %28139
  br label %28145

28145:                                            ; preds = %28144
  br label %28146

28146:                                            ; preds = %28145
  call void @llvm.lifetime.start.p0(i64 4, ptr %610) #12
  %28147 = call ptr @__errno_location() #13
  %28148 = load i32, ptr %28147, align 4, !tbaa !5
  store i32 %28148, ptr %610, align 4, !tbaa !5
  %28149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28150 = call i32 @s2n_print_stacktrace(ptr noundef %28149)
  %28151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28152 = trunc i8 %28151 to i1
  br i1 %28152, label %28153, label %28175

28153:                                            ; preds = %28146
  %28154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28155 = call i32 @fileno(ptr noundef %28154) #12
  %28156 = call i32 @isatty(i32 noundef %28155) #12
  %28157 = icmp ne i32 %28156, 0
  br i1 %28157, label %28158, label %28175

28158:                                            ; preds = %28153
  %28159 = load i32, ptr %610, align 4, !tbaa !5
  %28160 = call ptr @__errno_location() #13
  store i32 %28159, ptr %28160, align 4, !tbaa !5
  %28161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28162 = load i32, ptr @test_count, align 4, !tbaa !5
  %28163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28164 = load i32, ptr %28163, align 4, !tbaa !5
  %28165 = call ptr @s2n_strerror(i32 noundef %28164, ptr noundef @.str.6)
  %28166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28167 = load i32, ptr %28166, align 4, !tbaa !5
  %28168 = call ptr @s2n_strerror_debug(i32 noundef %28167, ptr noundef @.str.6)
  %28169 = call ptr @__errno_location() #13
  %28170 = load i32, ptr %28169, align 4, !tbaa !5
  %28171 = call ptr @strerror(i32 noundef %28170) #12
  %28172 = call ptr @__errno_location() #13
  %28173 = load i32, ptr %28172, align 4, !tbaa !5
  %28174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28161, ptr noundef @.str.4, i32 noundef %28162, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 1082, ptr noundef %28165, ptr noundef %28168, ptr noundef %28171, i32 noundef %28173) #12
  br label %28192

28175:                                            ; preds = %28153, %28146
  %28176 = load i32, ptr %610, align 4, !tbaa !5
  %28177 = call ptr @__errno_location() #13
  store i32 %28176, ptr %28177, align 4, !tbaa !5
  %28178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28179 = load i32, ptr @test_count, align 4, !tbaa !5
  %28180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28181 = load i32, ptr %28180, align 4, !tbaa !5
  %28182 = call ptr @s2n_strerror(i32 noundef %28181, ptr noundef @.str.6)
  %28183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28184 = load i32, ptr %28183, align 4, !tbaa !5
  %28185 = call ptr @s2n_strerror_debug(i32 noundef %28184, ptr noundef @.str.6)
  %28186 = call ptr @__errno_location() #13
  %28187 = load i32, ptr %28186, align 4, !tbaa !5
  %28188 = call ptr @strerror(i32 noundef %28187) #12
  %28189 = call ptr @__errno_location() #13
  %28190 = load i32, ptr %28189, align 4, !tbaa !5
  %28191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28178, ptr noundef @.str.7, i32 noundef %28179, ptr noundef @.str.85, ptr noundef @.str.3, i32 noundef 1082, ptr noundef %28182, ptr noundef %28185, ptr noundef %28188, i32 noundef %28190) #12
  br label %28192

28192:                                            ; preds = %28175, %28158
  call void @llvm.lifetime.end.p0(i64 4, ptr %610) #12
  br label %28193

28193:                                            ; preds = %28192
  br label %28194

28194:                                            ; preds = %28193
  call void @exit(i32 noundef 1) #14
  unreachable

28195:                                            ; No predecessors!
  br label %28196

28196:                                            ; preds = %28195
  br label %28197

28197:                                            ; preds = %28196, %28139
  br label %28198

28198:                                            ; preds = %28197
  br label %28199

28199:                                            ; preds = %28198
  call void @llvm.lifetime.start.p0(i64 8, ptr %611) #12
  store ptr @s2n_ecc_curve_x25519, ptr %611, align 8, !tbaa !9
  br label %28200

28200:                                            ; preds = %28199
  %28201 = load i32, ptr @test_count, align 4, !tbaa !5
  %28202 = add nsw i32 %28201, 1
  store i32 %28202, ptr @test_count, align 4, !tbaa !5
  %28203 = call i32 @s2n_stuffer_skip_write(ptr noundef %598, i32 noundef 2)
  %28204 = icmp eq i32 %28203, -1
  br i1 %28204, label %28205, label %28258

28205:                                            ; preds = %28200
  br label %28206

28206:                                            ; preds = %28205
  br label %28207

28207:                                            ; preds = %28206
  call void @llvm.lifetime.start.p0(i64 4, ptr %612) #12
  %28208 = call ptr @__errno_location() #13
  %28209 = load i32, ptr %28208, align 4, !tbaa !5
  store i32 %28209, ptr %612, align 4, !tbaa !5
  %28210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28211 = call i32 @s2n_print_stacktrace(ptr noundef %28210)
  %28212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28213 = trunc i8 %28212 to i1
  br i1 %28213, label %28214, label %28236

28214:                                            ; preds = %28207
  %28215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28216 = call i32 @fileno(ptr noundef %28215) #12
  %28217 = call i32 @isatty(i32 noundef %28216) #12
  %28218 = icmp ne i32 %28217, 0
  br i1 %28218, label %28219, label %28236

28219:                                            ; preds = %28214
  %28220 = load i32, ptr %612, align 4, !tbaa !5
  %28221 = call ptr @__errno_location() #13
  store i32 %28220, ptr %28221, align 4, !tbaa !5
  %28222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28223 = load i32, ptr @test_count, align 4, !tbaa !5
  %28224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28225 = load i32, ptr %28224, align 4, !tbaa !5
  %28226 = call ptr @s2n_strerror(i32 noundef %28225, ptr noundef @.str.6)
  %28227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28228 = load i32, ptr %28227, align 4, !tbaa !5
  %28229 = call ptr @s2n_strerror_debug(i32 noundef %28228, ptr noundef @.str.6)
  %28230 = call ptr @__errno_location() #13
  %28231 = load i32, ptr %28230, align 4, !tbaa !5
  %28232 = call ptr @strerror(i32 noundef %28231) #12
  %28233 = call ptr @__errno_location() #13
  %28234 = load i32, ptr %28233, align 4, !tbaa !5
  %28235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28222, ptr noundef @.str.4, i32 noundef %28223, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 1087, ptr noundef %28226, ptr noundef %28229, ptr noundef %28232, i32 noundef %28234) #12
  br label %28253

28236:                                            ; preds = %28214, %28207
  %28237 = load i32, ptr %612, align 4, !tbaa !5
  %28238 = call ptr @__errno_location() #13
  store i32 %28237, ptr %28238, align 4, !tbaa !5
  %28239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28240 = load i32, ptr @test_count, align 4, !tbaa !5
  %28241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28242 = load i32, ptr %28241, align 4, !tbaa !5
  %28243 = call ptr @s2n_strerror(i32 noundef %28242, ptr noundef @.str.6)
  %28244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28245 = load i32, ptr %28244, align 4, !tbaa !5
  %28246 = call ptr @s2n_strerror_debug(i32 noundef %28245, ptr noundef @.str.6)
  %28247 = call ptr @__errno_location() #13
  %28248 = load i32, ptr %28247, align 4, !tbaa !5
  %28249 = call ptr @strerror(i32 noundef %28248) #12
  %28250 = call ptr @__errno_location() #13
  %28251 = load i32, ptr %28250, align 4, !tbaa !5
  %28252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28239, ptr noundef @.str.7, i32 noundef %28240, ptr noundef @.str.114, ptr noundef @.str.3, i32 noundef 1087, ptr noundef %28243, ptr noundef %28246, ptr noundef %28249, i32 noundef %28251) #12
  br label %28253

28253:                                            ; preds = %28236, %28219
  call void @llvm.lifetime.end.p0(i64 4, ptr %612) #12
  br label %28254

28254:                                            ; preds = %28253
  br label %28255

28255:                                            ; preds = %28254
  call void @exit(i32 noundef 1) #14
  unreachable

28256:                                            ; No predecessors!
  br label %28257

28257:                                            ; preds = %28256
  br label %28258

28258:                                            ; preds = %28257, %28200
  br label %28259

28259:                                            ; preds = %28258
  br label %28260

28260:                                            ; preds = %28259
  br label %28261

28261:                                            ; preds = %28260
  %28262 = load i32, ptr @test_count, align 4, !tbaa !5
  %28263 = add nsw i32 %28262, 1
  store i32 %28263, ptr @test_count, align 4, !tbaa !5
  %28264 = load ptr, ptr %611, align 8, !tbaa !9
  %28265 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %28264, i32 0, i32 0
  %28266 = load i16, ptr %28265, align 8, !tbaa !28
  %28267 = load ptr, ptr %611, align 8, !tbaa !9
  %28268 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %28267, i32 0, i32 3
  %28269 = load i8, ptr %28268, align 8, !tbaa !30
  %28270 = zext i8 %28269 to i16
  %28271 = load ptr, ptr %611, align 8, !tbaa !9
  %28272 = call i32 @s2n_write_key_share(ptr noundef %598, i16 noundef zeroext %28266, i16 noundef zeroext %28270, ptr noundef %28271)
  %28273 = icmp eq i32 %28272, -1
  br i1 %28273, label %28274, label %28327

28274:                                            ; preds = %28261
  br label %28275

28275:                                            ; preds = %28274
  br label %28276

28276:                                            ; preds = %28275
  call void @llvm.lifetime.start.p0(i64 4, ptr %613) #12
  %28277 = call ptr @__errno_location() #13
  %28278 = load i32, ptr %28277, align 4, !tbaa !5
  store i32 %28278, ptr %613, align 4, !tbaa !5
  %28279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28280 = call i32 @s2n_print_stacktrace(ptr noundef %28279)
  %28281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28282 = trunc i8 %28281 to i1
  br i1 %28282, label %28283, label %28305

28283:                                            ; preds = %28276
  %28284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28285 = call i32 @fileno(ptr noundef %28284) #12
  %28286 = call i32 @isatty(i32 noundef %28285) #12
  %28287 = icmp ne i32 %28286, 0
  br i1 %28287, label %28288, label %28305

28288:                                            ; preds = %28283
  %28289 = load i32, ptr %613, align 4, !tbaa !5
  %28290 = call ptr @__errno_location() #13
  store i32 %28289, ptr %28290, align 4, !tbaa !5
  %28291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28292 = load i32, ptr @test_count, align 4, !tbaa !5
  %28293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28294 = load i32, ptr %28293, align 4, !tbaa !5
  %28295 = call ptr @s2n_strerror(i32 noundef %28294, ptr noundef @.str.6)
  %28296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28297 = load i32, ptr %28296, align 4, !tbaa !5
  %28298 = call ptr @s2n_strerror_debug(i32 noundef %28297, ptr noundef @.str.6)
  %28299 = call ptr @__errno_location() #13
  %28300 = load i32, ptr %28299, align 4, !tbaa !5
  %28301 = call ptr @strerror(i32 noundef %28300) #12
  %28302 = call ptr @__errno_location() #13
  %28303 = load i32, ptr %28302, align 4, !tbaa !5
  %28304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28291, ptr noundef @.str.4, i32 noundef %28292, ptr noundef @.str.134, ptr noundef @.str.3, i32 noundef 1090, ptr noundef %28295, ptr noundef %28298, ptr noundef %28301, i32 noundef %28303) #12
  br label %28322

28305:                                            ; preds = %28283, %28276
  %28306 = load i32, ptr %613, align 4, !tbaa !5
  %28307 = call ptr @__errno_location() #13
  store i32 %28306, ptr %28307, align 4, !tbaa !5
  %28308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28309 = load i32, ptr @test_count, align 4, !tbaa !5
  %28310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28311 = load i32, ptr %28310, align 4, !tbaa !5
  %28312 = call ptr @s2n_strerror(i32 noundef %28311, ptr noundef @.str.6)
  %28313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28314 = load i32, ptr %28313, align 4, !tbaa !5
  %28315 = call ptr @s2n_strerror_debug(i32 noundef %28314, ptr noundef @.str.6)
  %28316 = call ptr @__errno_location() #13
  %28317 = load i32, ptr %28316, align 4, !tbaa !5
  %28318 = call ptr @strerror(i32 noundef %28317) #12
  %28319 = call ptr @__errno_location() #13
  %28320 = load i32, ptr %28319, align 4, !tbaa !5
  %28321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28308, ptr noundef @.str.7, i32 noundef %28309, ptr noundef @.str.134, ptr noundef @.str.3, i32 noundef 1090, ptr noundef %28312, ptr noundef %28315, ptr noundef %28318, i32 noundef %28320) #12
  br label %28322

28322:                                            ; preds = %28305, %28288
  call void @llvm.lifetime.end.p0(i64 4, ptr %613) #12
  br label %28323

28323:                                            ; preds = %28322
  br label %28324

28324:                                            ; preds = %28323
  call void @exit(i32 noundef 1) #14
  unreachable

28325:                                            ; No predecessors!
  br label %28326

28326:                                            ; preds = %28325
  br label %28327

28327:                                            ; preds = %28326, %28261
  br label %28328

28328:                                            ; preds = %28327
  br label %28329

28329:                                            ; preds = %28328
  br label %28330

28330:                                            ; preds = %28329
  %28331 = load i32, ptr @test_count, align 4, !tbaa !5
  %28332 = add nsw i32 %28331, 1
  store i32 %28332, ptr @test_count, align 4, !tbaa !5
  %28333 = call i32 @s2n_test_rewrite_length(ptr noundef %598)
  %28334 = icmp eq i32 %28333, -1
  br i1 %28334, label %28335, label %28388

28335:                                            ; preds = %28330
  br label %28336

28336:                                            ; preds = %28335
  br label %28337

28337:                                            ; preds = %28336
  call void @llvm.lifetime.start.p0(i64 4, ptr %614) #12
  %28338 = call ptr @__errno_location() #13
  %28339 = load i32, ptr %28338, align 4, !tbaa !5
  store i32 %28339, ptr %614, align 4, !tbaa !5
  %28340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28341 = call i32 @s2n_print_stacktrace(ptr noundef %28340)
  %28342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28343 = trunc i8 %28342 to i1
  br i1 %28343, label %28344, label %28366

28344:                                            ; preds = %28337
  %28345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28346 = call i32 @fileno(ptr noundef %28345) #12
  %28347 = call i32 @isatty(i32 noundef %28346) #12
  %28348 = icmp ne i32 %28347, 0
  br i1 %28348, label %28349, label %28366

28349:                                            ; preds = %28344
  %28350 = load i32, ptr %614, align 4, !tbaa !5
  %28351 = call ptr @__errno_location() #13
  store i32 %28350, ptr %28351, align 4, !tbaa !5
  %28352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28353 = load i32, ptr @test_count, align 4, !tbaa !5
  %28354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28355 = load i32, ptr %28354, align 4, !tbaa !5
  %28356 = call ptr @s2n_strerror(i32 noundef %28355, ptr noundef @.str.6)
  %28357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28358 = load i32, ptr %28357, align 4, !tbaa !5
  %28359 = call ptr @s2n_strerror_debug(i32 noundef %28358, ptr noundef @.str.6)
  %28360 = call ptr @__errno_location() #13
  %28361 = load i32, ptr %28360, align 4, !tbaa !5
  %28362 = call ptr @strerror(i32 noundef %28361) #12
  %28363 = call ptr @__errno_location() #13
  %28364 = load i32, ptr %28363, align 4, !tbaa !5
  %28365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28352, ptr noundef @.str.4, i32 noundef %28353, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 1092, ptr noundef %28356, ptr noundef %28359, ptr noundef %28362, i32 noundef %28364) #12
  br label %28383

28366:                                            ; preds = %28344, %28337
  %28367 = load i32, ptr %614, align 4, !tbaa !5
  %28368 = call ptr @__errno_location() #13
  store i32 %28367, ptr %28368, align 4, !tbaa !5
  %28369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28370 = load i32, ptr @test_count, align 4, !tbaa !5
  %28371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28372 = load i32, ptr %28371, align 4, !tbaa !5
  %28373 = call ptr @s2n_strerror(i32 noundef %28372, ptr noundef @.str.6)
  %28374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28375 = load i32, ptr %28374, align 4, !tbaa !5
  %28376 = call ptr @s2n_strerror_debug(i32 noundef %28375, ptr noundef @.str.6)
  %28377 = call ptr @__errno_location() #13
  %28378 = load i32, ptr %28377, align 4, !tbaa !5
  %28379 = call ptr @strerror(i32 noundef %28378) #12
  %28380 = call ptr @__errno_location() #13
  %28381 = load i32, ptr %28380, align 4, !tbaa !5
  %28382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28369, ptr noundef @.str.7, i32 noundef %28370, ptr noundef @.str.116, ptr noundef @.str.3, i32 noundef 1092, ptr noundef %28373, ptr noundef %28376, ptr noundef %28379, i32 noundef %28381) #12
  br label %28383

28383:                                            ; preds = %28366, %28349
  call void @llvm.lifetime.end.p0(i64 4, ptr %614) #12
  br label %28384

28384:                                            ; preds = %28383
  br label %28385

28385:                                            ; preds = %28384
  call void @exit(i32 noundef 1) #14
  unreachable

28386:                                            ; No predecessors!
  br label %28387

28387:                                            ; preds = %28386
  br label %28388

28388:                                            ; preds = %28387, %28330
  br label %28389

28389:                                            ; preds = %28388
  br label %28390

28390:                                            ; preds = %28389
  br label %28391

28391:                                            ; preds = %28390
  %28392 = load i32, ptr @test_count, align 4, !tbaa !5
  %28393 = add nsw i32 %28392, 1
  store i32 %28393, ptr @test_count, align 4, !tbaa !5
  %28394 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !58
  %28395 = load ptr, ptr %597, align 8, !tbaa !9
  %28396 = call i32 %28394(ptr noundef %28395, ptr noundef %598)
  %28397 = icmp eq i32 %28396, -1
  br i1 %28397, label %28398, label %28451

28398:                                            ; preds = %28391
  br label %28399

28399:                                            ; preds = %28398
  br label %28400

28400:                                            ; preds = %28399
  call void @llvm.lifetime.start.p0(i64 4, ptr %615) #12
  %28401 = call ptr @__errno_location() #13
  %28402 = load i32, ptr %28401, align 4, !tbaa !5
  store i32 %28402, ptr %615, align 4, !tbaa !5
  %28403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28404 = call i32 @s2n_print_stacktrace(ptr noundef %28403)
  %28405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28406 = trunc i8 %28405 to i1
  br i1 %28406, label %28407, label %28429

28407:                                            ; preds = %28400
  %28408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28409 = call i32 @fileno(ptr noundef %28408) #12
  %28410 = call i32 @isatty(i32 noundef %28409) #12
  %28411 = icmp ne i32 %28410, 0
  br i1 %28411, label %28412, label %28429

28412:                                            ; preds = %28407
  %28413 = load i32, ptr %615, align 4, !tbaa !5
  %28414 = call ptr @__errno_location() #13
  store i32 %28413, ptr %28414, align 4, !tbaa !5
  %28415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28416 = load i32, ptr @test_count, align 4, !tbaa !5
  %28417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28418 = load i32, ptr %28417, align 4, !tbaa !5
  %28419 = call ptr @s2n_strerror(i32 noundef %28418, ptr noundef @.str.6)
  %28420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28421 = load i32, ptr %28420, align 4, !tbaa !5
  %28422 = call ptr @s2n_strerror_debug(i32 noundef %28421, ptr noundef @.str.6)
  %28423 = call ptr @__errno_location() #13
  %28424 = load i32, ptr %28423, align 4, !tbaa !5
  %28425 = call ptr @strerror(i32 noundef %28424) #12
  %28426 = call ptr @__errno_location() #13
  %28427 = load i32, ptr %28426, align 4, !tbaa !5
  %28428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28415, ptr noundef @.str.4, i32 noundef %28416, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 1094, ptr noundef %28419, ptr noundef %28422, ptr noundef %28425, i32 noundef %28427) #12
  br label %28446

28429:                                            ; preds = %28407, %28400
  %28430 = load i32, ptr %615, align 4, !tbaa !5
  %28431 = call ptr @__errno_location() #13
  store i32 %28430, ptr %28431, align 4, !tbaa !5
  %28432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28433 = load i32, ptr @test_count, align 4, !tbaa !5
  %28434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28435 = load i32, ptr %28434, align 4, !tbaa !5
  %28436 = call ptr @s2n_strerror(i32 noundef %28435, ptr noundef @.str.6)
  %28437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28438 = load i32, ptr %28437, align 4, !tbaa !5
  %28439 = call ptr @s2n_strerror_debug(i32 noundef %28438, ptr noundef @.str.6)
  %28440 = call ptr @__errno_location() #13
  %28441 = load i32, ptr %28440, align 4, !tbaa !5
  %28442 = call ptr @strerror(i32 noundef %28441) #12
  %28443 = call ptr @__errno_location() #13
  %28444 = load i32, ptr %28443, align 4, !tbaa !5
  %28445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28432, ptr noundef @.str.7, i32 noundef %28433, ptr noundef @.str.117, ptr noundef @.str.3, i32 noundef 1094, ptr noundef %28436, ptr noundef %28439, ptr noundef %28442, i32 noundef %28444) #12
  br label %28446

28446:                                            ; preds = %28429, %28412
  call void @llvm.lifetime.end.p0(i64 4, ptr %615) #12
  br label %28447

28447:                                            ; preds = %28446
  br label %28448

28448:                                            ; preds = %28447
  call void @exit(i32 noundef 1) #14
  unreachable

28449:                                            ; No predecessors!
  br label %28450

28450:                                            ; preds = %28449
  br label %28451

28451:                                            ; preds = %28450, %28391
  br label %28452

28452:                                            ; preds = %28451
  br label %28453

28453:                                            ; preds = %28452
  br label %28454

28454:                                            ; preds = %28453
  %28455 = load i32, ptr @test_count, align 4, !tbaa !5
  %28456 = add nsw i32 %28455, 1
  store i32 %28456, ptr @test_count, align 4, !tbaa !5
  %28457 = getelementptr inbounds %struct.s2n_stuffer, ptr %598, i32 0, i32 2
  %28458 = load i32, ptr %28457, align 4, !tbaa !18
  %28459 = getelementptr inbounds %struct.s2n_stuffer, ptr %598, i32 0, i32 1
  %28460 = load i32, ptr %28459, align 8, !tbaa !21
  %28461 = sub i32 %28458, %28460
  %28462 = icmp eq i32 %28461, 0
  br i1 %28462, label %28516, label %28463

28463:                                            ; preds = %28454
  br label %28464

28464:                                            ; preds = %28463
  br label %28465

28465:                                            ; preds = %28464
  call void @llvm.lifetime.start.p0(i64 4, ptr %616) #12
  %28466 = call ptr @__errno_location() #13
  %28467 = load i32, ptr %28466, align 4, !tbaa !5
  store i32 %28467, ptr %616, align 4, !tbaa !5
  %28468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28469 = call i32 @s2n_print_stacktrace(ptr noundef %28468)
  %28470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28471 = trunc i8 %28470 to i1
  br i1 %28471, label %28472, label %28494

28472:                                            ; preds = %28465
  %28473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28474 = call i32 @fileno(ptr noundef %28473) #12
  %28475 = call i32 @isatty(i32 noundef %28474) #12
  %28476 = icmp ne i32 %28475, 0
  br i1 %28476, label %28477, label %28494

28477:                                            ; preds = %28472
  %28478 = load i32, ptr %616, align 4, !tbaa !5
  %28479 = call ptr @__errno_location() #13
  store i32 %28478, ptr %28479, align 4, !tbaa !5
  %28480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28481 = load i32, ptr @test_count, align 4, !tbaa !5
  %28482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28483 = load i32, ptr %28482, align 4, !tbaa !5
  %28484 = call ptr @s2n_strerror(i32 noundef %28483, ptr noundef @.str.6)
  %28485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28486 = load i32, ptr %28485, align 4, !tbaa !5
  %28487 = call ptr @s2n_strerror_debug(i32 noundef %28486, ptr noundef @.str.6)
  %28488 = call ptr @__errno_location() #13
  %28489 = load i32, ptr %28488, align 4, !tbaa !5
  %28490 = call ptr @strerror(i32 noundef %28489) #12
  %28491 = call ptr @__errno_location() #13
  %28492 = load i32, ptr %28491, align 4, !tbaa !5
  %28493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28480, ptr noundef @.str.4, i32 noundef %28481, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 1097, ptr noundef %28484, ptr noundef %28487, ptr noundef %28490, i32 noundef %28492) #12
  br label %28511

28494:                                            ; preds = %28472, %28465
  %28495 = load i32, ptr %616, align 4, !tbaa !5
  %28496 = call ptr @__errno_location() #13
  store i32 %28495, ptr %28496, align 4, !tbaa !5
  %28497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28498 = load i32, ptr @test_count, align 4, !tbaa !5
  %28499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28500 = load i32, ptr %28499, align 4, !tbaa !5
  %28501 = call ptr @s2n_strerror(i32 noundef %28500, ptr noundef @.str.6)
  %28502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28503 = load i32, ptr %28502, align 4, !tbaa !5
  %28504 = call ptr @s2n_strerror_debug(i32 noundef %28503, ptr noundef @.str.6)
  %28505 = call ptr @__errno_location() #13
  %28506 = load i32, ptr %28505, align 4, !tbaa !5
  %28507 = call ptr @strerror(i32 noundef %28506) #12
  %28508 = call ptr @__errno_location() #13
  %28509 = load i32, ptr %28508, align 4, !tbaa !5
  %28510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28497, ptr noundef @.str.7, i32 noundef %28498, ptr noundef @.str.62, ptr noundef @.str.3, i32 noundef 1097, ptr noundef %28501, ptr noundef %28504, ptr noundef %28507, i32 noundef %28509) #12
  br label %28511

28511:                                            ; preds = %28494, %28477
  call void @llvm.lifetime.end.p0(i64 4, ptr %616) #12
  br label %28512

28512:                                            ; preds = %28511
  br label %28513

28513:                                            ; preds = %28512
  call void @exit(i32 noundef 1) #14
  unreachable

28514:                                            ; No predecessors!
  br label %28515

28515:                                            ; preds = %28514
  br label %28516

28516:                                            ; preds = %28515, %28454
  br label %28517

28517:                                            ; preds = %28516
  br label %28518

28518:                                            ; preds = %28517
  call void @llvm.lifetime.start.p0(i64 8, ptr %617) #12
  %28519 = load ptr, ptr %597, align 8, !tbaa !9
  %28520 = getelementptr inbounds %struct.s2n_connection, ptr %28519, i32 0, i32 31
  %28521 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %28520, i32 0, i32 3
  store ptr %28521, ptr %617, align 8, !tbaa !9
  br label %28522

28522:                                            ; preds = %28518
  %28523 = load i32, ptr @test_count, align 4, !tbaa !5
  %28524 = add nsw i32 %28523, 1
  store i32 %28524, ptr @test_count, align 4, !tbaa !5
  %28525 = load ptr, ptr %617, align 8, !tbaa !9
  %28526 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %28525, i32 0, i32 0
  %28527 = load ptr, ptr %28526, align 8, !tbaa !22
  %28528 = icmp eq ptr %28527, null
  br i1 %28528, label %28582, label %28529

28529:                                            ; preds = %28522
  br label %28530

28530:                                            ; preds = %28529
  br label %28531

28531:                                            ; preds = %28530
  call void @llvm.lifetime.start.p0(i64 4, ptr %618) #12
  %28532 = call ptr @__errno_location() #13
  %28533 = load i32, ptr %28532, align 4, !tbaa !5
  store i32 %28533, ptr %618, align 4, !tbaa !5
  %28534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28535 = call i32 @s2n_print_stacktrace(ptr noundef %28534)
  %28536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28537 = trunc i8 %28536 to i1
  br i1 %28537, label %28538, label %28560

28538:                                            ; preds = %28531
  %28539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28540 = call i32 @fileno(ptr noundef %28539) #12
  %28541 = call i32 @isatty(i32 noundef %28540) #12
  %28542 = icmp ne i32 %28541, 0
  br i1 %28542, label %28543, label %28560

28543:                                            ; preds = %28538
  %28544 = load i32, ptr %618, align 4, !tbaa !5
  %28545 = call ptr @__errno_location() #13
  store i32 %28544, ptr %28545, align 4, !tbaa !5
  %28546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28547 = load i32, ptr @test_count, align 4, !tbaa !5
  %28548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28549 = load i32, ptr %28548, align 4, !tbaa !5
  %28550 = call ptr @s2n_strerror(i32 noundef %28549, ptr noundef @.str.6)
  %28551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28552 = load i32, ptr %28551, align 4, !tbaa !5
  %28553 = call ptr @s2n_strerror_debug(i32 noundef %28552, ptr noundef @.str.6)
  %28554 = call ptr @__errno_location() #13
  %28555 = load i32, ptr %28554, align 4, !tbaa !5
  %28556 = call ptr @strerror(i32 noundef %28555) #12
  %28557 = call ptr @__errno_location() #13
  %28558 = load i32, ptr %28557, align 4, !tbaa !5
  %28559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28546, ptr noundef @.str.4, i32 noundef %28547, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 1101, ptr noundef %28550, ptr noundef %28553, ptr noundef %28556, i32 noundef %28558) #12
  br label %28577

28560:                                            ; preds = %28538, %28531
  %28561 = load i32, ptr %618, align 4, !tbaa !5
  %28562 = call ptr @__errno_location() #13
  store i32 %28561, ptr %28562, align 4, !tbaa !5
  %28563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28564 = load i32, ptr @test_count, align 4, !tbaa !5
  %28565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28566 = load i32, ptr %28565, align 4, !tbaa !5
  %28567 = call ptr @s2n_strerror(i32 noundef %28566, ptr noundef @.str.6)
  %28568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28569 = load i32, ptr %28568, align 4, !tbaa !5
  %28570 = call ptr @s2n_strerror_debug(i32 noundef %28569, ptr noundef @.str.6)
  %28571 = call ptr @__errno_location() #13
  %28572 = load i32, ptr %28571, align 4, !tbaa !5
  %28573 = call ptr @strerror(i32 noundef %28572) #12
  %28574 = call ptr @__errno_location() #13
  %28575 = load i32, ptr %28574, align 4, !tbaa !5
  %28576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28563, ptr noundef @.str.7, i32 noundef %28564, ptr noundef @.str.71, ptr noundef @.str.3, i32 noundef 1101, ptr noundef %28567, ptr noundef %28570, ptr noundef %28573, i32 noundef %28575) #12
  br label %28577

28577:                                            ; preds = %28560, %28543
  call void @llvm.lifetime.end.p0(i64 4, ptr %618) #12
  br label %28578

28578:                                            ; preds = %28577
  br label %28579

28579:                                            ; preds = %28578
  call void @exit(i32 noundef 1) #14
  unreachable

28580:                                            ; No predecessors!
  br label %28581

28581:                                            ; preds = %28580
  br label %28582

28582:                                            ; preds = %28581, %28522
  br label %28583

28583:                                            ; preds = %28582
  br label %28584

28584:                                            ; preds = %28583
  br label %28585

28585:                                            ; preds = %28584
  %28586 = load i32, ptr @test_count, align 4, !tbaa !5
  %28587 = add nsw i32 %28586, 1
  store i32 %28587, ptr @test_count, align 4, !tbaa !5
  %28588 = load ptr, ptr %617, align 8, !tbaa !9
  %28589 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %28588, i32 0, i32 1
  %28590 = load ptr, ptr %28589, align 8, !tbaa !26
  %28591 = icmp eq ptr %28590, null
  br i1 %28591, label %28645, label %28592

28592:                                            ; preds = %28585
  br label %28593

28593:                                            ; preds = %28592
  br label %28594

28594:                                            ; preds = %28593
  call void @llvm.lifetime.start.p0(i64 4, ptr %619) #12
  %28595 = call ptr @__errno_location() #13
  %28596 = load i32, ptr %28595, align 4, !tbaa !5
  store i32 %28596, ptr %619, align 4, !tbaa !5
  %28597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28598 = call i32 @s2n_print_stacktrace(ptr noundef %28597)
  %28599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28600 = trunc i8 %28599 to i1
  br i1 %28600, label %28601, label %28623

28601:                                            ; preds = %28594
  %28602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28603 = call i32 @fileno(ptr noundef %28602) #12
  %28604 = call i32 @isatty(i32 noundef %28603) #12
  %28605 = icmp ne i32 %28604, 0
  br i1 %28605, label %28606, label %28623

28606:                                            ; preds = %28601
  %28607 = load i32, ptr %619, align 4, !tbaa !5
  %28608 = call ptr @__errno_location() #13
  store i32 %28607, ptr %28608, align 4, !tbaa !5
  %28609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28610 = load i32, ptr @test_count, align 4, !tbaa !5
  %28611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28612 = load i32, ptr %28611, align 4, !tbaa !5
  %28613 = call ptr @s2n_strerror(i32 noundef %28612, ptr noundef @.str.6)
  %28614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28615 = load i32, ptr %28614, align 4, !tbaa !5
  %28616 = call ptr @s2n_strerror_debug(i32 noundef %28615, ptr noundef @.str.6)
  %28617 = call ptr @__errno_location() #13
  %28618 = load i32, ptr %28617, align 4, !tbaa !5
  %28619 = call ptr @strerror(i32 noundef %28618) #12
  %28620 = call ptr @__errno_location() #13
  %28621 = load i32, ptr %28620, align 4, !tbaa !5
  %28622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28609, ptr noundef @.str.4, i32 noundef %28610, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 1102, ptr noundef %28613, ptr noundef %28616, ptr noundef %28619, i32 noundef %28621) #12
  br label %28640

28623:                                            ; preds = %28601, %28594
  %28624 = load i32, ptr %619, align 4, !tbaa !5
  %28625 = call ptr @__errno_location() #13
  store i32 %28624, ptr %28625, align 4, !tbaa !5
  %28626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28627 = load i32, ptr @test_count, align 4, !tbaa !5
  %28628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28629 = load i32, ptr %28628, align 4, !tbaa !5
  %28630 = call ptr @s2n_strerror(i32 noundef %28629, ptr noundef @.str.6)
  %28631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28632 = load i32, ptr %28631, align 4, !tbaa !5
  %28633 = call ptr @s2n_strerror_debug(i32 noundef %28632, ptr noundef @.str.6)
  %28634 = call ptr @__errno_location() #13
  %28635 = load i32, ptr %28634, align 4, !tbaa !5
  %28636 = call ptr @strerror(i32 noundef %28635) #12
  %28637 = call ptr @__errno_location() #13
  %28638 = load i32, ptr %28637, align 4, !tbaa !5
  %28639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28626, ptr noundef @.str.7, i32 noundef %28627, ptr noundef @.str.72, ptr noundef @.str.3, i32 noundef 1102, ptr noundef %28630, ptr noundef %28633, ptr noundef %28636, i32 noundef %28638) #12
  br label %28640

28640:                                            ; preds = %28623, %28606
  call void @llvm.lifetime.end.p0(i64 4, ptr %619) #12
  br label %28641

28641:                                            ; preds = %28640
  br label %28642

28642:                                            ; preds = %28641
  call void @exit(i32 noundef 1) #14
  unreachable

28643:                                            ; No predecessors!
  br label %28644

28644:                                            ; preds = %28643
  br label %28645

28645:                                            ; preds = %28644, %28585
  br label %28646

28646:                                            ; preds = %28645
  br label %28647

28647:                                            ; preds = %28646
  br label %28648

28648:                                            ; preds = %28647
  %28649 = load i32, ptr @test_count, align 4, !tbaa !5
  %28650 = add nsw i32 %28649, 1
  store i32 %28650, ptr @test_count, align 4, !tbaa !5
  %28651 = call i32 @s2n_stuffer_free(ptr noundef %598)
  %28652 = icmp eq i32 %28651, -1
  br i1 %28652, label %28653, label %28706

28653:                                            ; preds = %28648
  br label %28654

28654:                                            ; preds = %28653
  br label %28655

28655:                                            ; preds = %28654
  call void @llvm.lifetime.start.p0(i64 4, ptr %620) #12
  %28656 = call ptr @__errno_location() #13
  %28657 = load i32, ptr %28656, align 4, !tbaa !5
  store i32 %28657, ptr %620, align 4, !tbaa !5
  %28658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28659 = call i32 @s2n_print_stacktrace(ptr noundef %28658)
  %28660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28661 = trunc i8 %28660 to i1
  br i1 %28661, label %28662, label %28684

28662:                                            ; preds = %28655
  %28663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28664 = call i32 @fileno(ptr noundef %28663) #12
  %28665 = call i32 @isatty(i32 noundef %28664) #12
  %28666 = icmp ne i32 %28665, 0
  br i1 %28666, label %28667, label %28684

28667:                                            ; preds = %28662
  %28668 = load i32, ptr %620, align 4, !tbaa !5
  %28669 = call ptr @__errno_location() #13
  store i32 %28668, ptr %28669, align 4, !tbaa !5
  %28670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28671 = load i32, ptr @test_count, align 4, !tbaa !5
  %28672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28673 = load i32, ptr %28672, align 4, !tbaa !5
  %28674 = call ptr @s2n_strerror(i32 noundef %28673, ptr noundef @.str.6)
  %28675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28676 = load i32, ptr %28675, align 4, !tbaa !5
  %28677 = call ptr @s2n_strerror_debug(i32 noundef %28676, ptr noundef @.str.6)
  %28678 = call ptr @__errno_location() #13
  %28679 = load i32, ptr %28678, align 4, !tbaa !5
  %28680 = call ptr @strerror(i32 noundef %28679) #12
  %28681 = call ptr @__errno_location() #13
  %28682 = load i32, ptr %28681, align 4, !tbaa !5
  %28683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28670, ptr noundef @.str.4, i32 noundef %28671, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 1104, ptr noundef %28674, ptr noundef %28677, ptr noundef %28680, i32 noundef %28682) #12
  br label %28701

28684:                                            ; preds = %28662, %28655
  %28685 = load i32, ptr %620, align 4, !tbaa !5
  %28686 = call ptr @__errno_location() #13
  store i32 %28685, ptr %28686, align 4, !tbaa !5
  %28687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28688 = load i32, ptr @test_count, align 4, !tbaa !5
  %28689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28690 = load i32, ptr %28689, align 4, !tbaa !5
  %28691 = call ptr @s2n_strerror(i32 noundef %28690, ptr noundef @.str.6)
  %28692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28693 = load i32, ptr %28692, align 4, !tbaa !5
  %28694 = call ptr @s2n_strerror_debug(i32 noundef %28693, ptr noundef @.str.6)
  %28695 = call ptr @__errno_location() #13
  %28696 = load i32, ptr %28695, align 4, !tbaa !5
  %28697 = call ptr @strerror(i32 noundef %28696) #12
  %28698 = call ptr @__errno_location() #13
  %28699 = load i32, ptr %28698, align 4, !tbaa !5
  %28700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28687, ptr noundef @.str.7, i32 noundef %28688, ptr noundef @.str.18, ptr noundef @.str.3, i32 noundef 1104, ptr noundef %28691, ptr noundef %28694, ptr noundef %28697, i32 noundef %28699) #12
  br label %28701

28701:                                            ; preds = %28684, %28667
  call void @llvm.lifetime.end.p0(i64 4, ptr %620) #12
  br label %28702

28702:                                            ; preds = %28701
  br label %28703

28703:                                            ; preds = %28702
  call void @exit(i32 noundef 1) #14
  unreachable

28704:                                            ; No predecessors!
  br label %28705

28705:                                            ; preds = %28704
  br label %28706

28706:                                            ; preds = %28705, %28648
  br label %28707

28707:                                            ; preds = %28706
  br label %28708

28708:                                            ; preds = %28707
  br label %28709

28709:                                            ; preds = %28708
  %28710 = load i32, ptr @test_count, align 4, !tbaa !5
  %28711 = add nsw i32 %28710, 1
  store i32 %28711, ptr @test_count, align 4, !tbaa !5
  %28712 = load ptr, ptr %597, align 8, !tbaa !9
  %28713 = call i32 @s2n_connection_free(ptr noundef %28712)
  %28714 = icmp eq i32 %28713, -1
  br i1 %28714, label %28715, label %28768

28715:                                            ; preds = %28709
  br label %28716

28716:                                            ; preds = %28715
  br label %28717

28717:                                            ; preds = %28716
  call void @llvm.lifetime.start.p0(i64 4, ptr %621) #12
  %28718 = call ptr @__errno_location() #13
  %28719 = load i32, ptr %28718, align 4, !tbaa !5
  store i32 %28719, ptr %621, align 4, !tbaa !5
  %28720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28721 = call i32 @s2n_print_stacktrace(ptr noundef %28720)
  %28722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28723 = trunc i8 %28722 to i1
  br i1 %28723, label %28724, label %28746

28724:                                            ; preds = %28717
  %28725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28726 = call i32 @fileno(ptr noundef %28725) #12
  %28727 = call i32 @isatty(i32 noundef %28726) #12
  %28728 = icmp ne i32 %28727, 0
  br i1 %28728, label %28729, label %28746

28729:                                            ; preds = %28724
  %28730 = load i32, ptr %621, align 4, !tbaa !5
  %28731 = call ptr @__errno_location() #13
  store i32 %28730, ptr %28731, align 4, !tbaa !5
  %28732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28733 = load i32, ptr @test_count, align 4, !tbaa !5
  %28734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28735 = load i32, ptr %28734, align 4, !tbaa !5
  %28736 = call ptr @s2n_strerror(i32 noundef %28735, ptr noundef @.str.6)
  %28737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28738 = load i32, ptr %28737, align 4, !tbaa !5
  %28739 = call ptr @s2n_strerror_debug(i32 noundef %28738, ptr noundef @.str.6)
  %28740 = call ptr @__errno_location() #13
  %28741 = load i32, ptr %28740, align 4, !tbaa !5
  %28742 = call ptr @strerror(i32 noundef %28741) #12
  %28743 = call ptr @__errno_location() #13
  %28744 = load i32, ptr %28743, align 4, !tbaa !5
  %28745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28732, ptr noundef @.str.4, i32 noundef %28733, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 1105, ptr noundef %28736, ptr noundef %28739, ptr noundef %28742, i32 noundef %28744) #12
  br label %28763

28746:                                            ; preds = %28724, %28717
  %28747 = load i32, ptr %621, align 4, !tbaa !5
  %28748 = call ptr @__errno_location() #13
  store i32 %28747, ptr %28748, align 4, !tbaa !5
  %28749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28750 = load i32, ptr @test_count, align 4, !tbaa !5
  %28751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28752 = load i32, ptr %28751, align 4, !tbaa !5
  %28753 = call ptr @s2n_strerror(i32 noundef %28752, ptr noundef @.str.6)
  %28754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28755 = load i32, ptr %28754, align 4, !tbaa !5
  %28756 = call ptr @s2n_strerror_debug(i32 noundef %28755, ptr noundef @.str.6)
  %28757 = call ptr @__errno_location() #13
  %28758 = load i32, ptr %28757, align 4, !tbaa !5
  %28759 = call ptr @strerror(i32 noundef %28758) #12
  %28760 = call ptr @__errno_location() #13
  %28761 = load i32, ptr %28760, align 4, !tbaa !5
  %28762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28749, ptr noundef @.str.7, i32 noundef %28750, ptr noundef @.str.19, ptr noundef @.str.3, i32 noundef 1105, ptr noundef %28753, ptr noundef %28756, ptr noundef %28759, i32 noundef %28761) #12
  br label %28763

28763:                                            ; preds = %28746, %28729
  call void @llvm.lifetime.end.p0(i64 4, ptr %621) #12
  br label %28764

28764:                                            ; preds = %28763
  br label %28765

28765:                                            ; preds = %28764
  call void @exit(i32 noundef 1) #14
  unreachable

28766:                                            ; No predecessors!
  br label %28767

28767:                                            ; preds = %28766
  br label %28768

28768:                                            ; preds = %28767, %28709
  br label %28769

28769:                                            ; preds = %28768
  br label %28770

28770:                                            ; preds = %28769
  br label %28771

28771:                                            ; preds = %28770
  %28772 = load i32, ptr @test_count, align 4, !tbaa !5
  %28773 = add nsw i32 %28772, 1
  store i32 %28773, ptr @test_count, align 4, !tbaa !5
  %28774 = load ptr, ptr %599, align 8, !tbaa !9
  %28775 = call i32 @s2n_config_free(ptr noundef %28774)
  %28776 = icmp eq i32 %28775, -1
  br i1 %28776, label %28777, label %28830

28777:                                            ; preds = %28771
  br label %28778

28778:                                            ; preds = %28777
  br label %28779

28779:                                            ; preds = %28778
  call void @llvm.lifetime.start.p0(i64 4, ptr %622) #12
  %28780 = call ptr @__errno_location() #13
  %28781 = load i32, ptr %28780, align 4, !tbaa !5
  store i32 %28781, ptr %622, align 4, !tbaa !5
  %28782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28783 = call i32 @s2n_print_stacktrace(ptr noundef %28782)
  %28784 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28785 = trunc i8 %28784 to i1
  br i1 %28785, label %28786, label %28808

28786:                                            ; preds = %28779
  %28787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28788 = call i32 @fileno(ptr noundef %28787) #12
  %28789 = call i32 @isatty(i32 noundef %28788) #12
  %28790 = icmp ne i32 %28789, 0
  br i1 %28790, label %28791, label %28808

28791:                                            ; preds = %28786
  %28792 = load i32, ptr %622, align 4, !tbaa !5
  %28793 = call ptr @__errno_location() #13
  store i32 %28792, ptr %28793, align 4, !tbaa !5
  %28794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28795 = load i32, ptr @test_count, align 4, !tbaa !5
  %28796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28797 = load i32, ptr %28796, align 4, !tbaa !5
  %28798 = call ptr @s2n_strerror(i32 noundef %28797, ptr noundef @.str.6)
  %28799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28800 = load i32, ptr %28799, align 4, !tbaa !5
  %28801 = call ptr @s2n_strerror_debug(i32 noundef %28800, ptr noundef @.str.6)
  %28802 = call ptr @__errno_location() #13
  %28803 = load i32, ptr %28802, align 4, !tbaa !5
  %28804 = call ptr @strerror(i32 noundef %28803) #12
  %28805 = call ptr @__errno_location() #13
  %28806 = load i32, ptr %28805, align 4, !tbaa !5
  %28807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28794, ptr noundef @.str.4, i32 noundef %28795, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 1106, ptr noundef %28798, ptr noundef %28801, ptr noundef %28804, i32 noundef %28806) #12
  br label %28825

28808:                                            ; preds = %28786, %28779
  %28809 = load i32, ptr %622, align 4, !tbaa !5
  %28810 = call ptr @__errno_location() #13
  store i32 %28809, ptr %28810, align 4, !tbaa !5
  %28811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28812 = load i32, ptr @test_count, align 4, !tbaa !5
  %28813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28814 = load i32, ptr %28813, align 4, !tbaa !5
  %28815 = call ptr @s2n_strerror(i32 noundef %28814, ptr noundef @.str.6)
  %28816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28817 = load i32, ptr %28816, align 4, !tbaa !5
  %28818 = call ptr @s2n_strerror_debug(i32 noundef %28817, ptr noundef @.str.6)
  %28819 = call ptr @__errno_location() #13
  %28820 = load i32, ptr %28819, align 4, !tbaa !5
  %28821 = call ptr @strerror(i32 noundef %28820) #12
  %28822 = call ptr @__errno_location() #13
  %28823 = load i32, ptr %28822, align 4, !tbaa !5
  %28824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28811, ptr noundef @.str.7, i32 noundef %28812, ptr noundef @.str.38, ptr noundef @.str.3, i32 noundef 1106, ptr noundef %28815, ptr noundef %28818, ptr noundef %28821, i32 noundef %28823) #12
  br label %28825

28825:                                            ; preds = %28808, %28791
  call void @llvm.lifetime.end.p0(i64 4, ptr %622) #12
  br label %28826

28826:                                            ; preds = %28825
  br label %28827

28827:                                            ; preds = %28826
  call void @exit(i32 noundef 1) #14
  unreachable

28828:                                            ; No predecessors!
  br label %28829

28829:                                            ; preds = %28828
  br label %28830

28830:                                            ; preds = %28829, %28771
  br label %28831

28831:                                            ; preds = %28830
  br label %28832

28832:                                            ; preds = %28831
  call void @llvm.lifetime.end.p0(i64 8, ptr %617) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %611) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %608) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %599) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr %598) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %597) #12
  br label %28833

28833:                                            ; preds = %28832, %27638
  br label %28834

28834:                                            ; preds = %28833
  br label %28835

28835:                                            ; preds = %28834
  %28836 = call i32 @s2n_cleanup()
  %28837 = icmp eq i32 %28836, -1
  br i1 %28837, label %28838, label %28889

28838:                                            ; preds = %28835
  br label %28839

28839:                                            ; preds = %28838
  br label %28840

28840:                                            ; preds = %28839
  call void @llvm.lifetime.start.p0(i64 4, ptr %623) #12
  %28841 = call ptr @__errno_location() #13
  %28842 = load i32, ptr %28841, align 4, !tbaa !5
  store i32 %28842, ptr %623, align 4, !tbaa !5
  %28843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28844 = call i32 @s2n_print_stacktrace(ptr noundef %28843)
  %28845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28846 = trunc i8 %28845 to i1
  br i1 %28846, label %28847, label %28869

28847:                                            ; preds = %28840
  %28848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28849 = call i32 @fileno(ptr noundef %28848) #12
  %28850 = call i32 @isatty(i32 noundef %28849) #12
  %28851 = icmp ne i32 %28850, 0
  br i1 %28851, label %28852, label %28869

28852:                                            ; preds = %28847
  %28853 = load i32, ptr %623, align 4, !tbaa !5
  %28854 = call ptr @__errno_location() #13
  store i32 %28853, ptr %28854, align 4, !tbaa !5
  %28855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28856 = load i32, ptr @test_count, align 4, !tbaa !5
  %28857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28858 = load i32, ptr %28857, align 4, !tbaa !5
  %28859 = call ptr @s2n_strerror(i32 noundef %28858, ptr noundef @.str.6)
  %28860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28861 = load i32, ptr %28860, align 4, !tbaa !5
  %28862 = call ptr @s2n_strerror_debug(i32 noundef %28861, ptr noundef @.str.6)
  %28863 = call ptr @__errno_location() #13
  %28864 = load i32, ptr %28863, align 4, !tbaa !5
  %28865 = call ptr @strerror(i32 noundef %28864) #12
  %28866 = call ptr @__errno_location() #13
  %28867 = load i32, ptr %28866, align 4, !tbaa !5
  %28868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28855, ptr noundef @.str.4, i32 noundef %28856, ptr noundef @.str.135, ptr noundef @.str.3, i32 noundef 1111, ptr noundef %28859, ptr noundef %28862, ptr noundef %28865, i32 noundef %28867) #12
  br label %28886

28869:                                            ; preds = %28847, %28840
  %28870 = load i32, ptr %623, align 4, !tbaa !5
  %28871 = call ptr @__errno_location() #13
  store i32 %28870, ptr %28871, align 4, !tbaa !5
  %28872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28873 = load i32, ptr @test_count, align 4, !tbaa !5
  %28874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28875 = load i32, ptr %28874, align 4, !tbaa !5
  %28876 = call ptr @s2n_strerror(i32 noundef %28875, ptr noundef @.str.6)
  %28877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28878 = load i32, ptr %28877, align 4, !tbaa !5
  %28879 = call ptr @s2n_strerror_debug(i32 noundef %28878, ptr noundef @.str.6)
  %28880 = call ptr @__errno_location() #13
  %28881 = load i32, ptr %28880, align 4, !tbaa !5
  %28882 = call ptr @strerror(i32 noundef %28881) #12
  %28883 = call ptr @__errno_location() #13
  %28884 = load i32, ptr %28883, align 4, !tbaa !5
  %28885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28872, ptr noundef @.str.7, i32 noundef %28873, ptr noundef @.str.135, ptr noundef @.str.3, i32 noundef 1111, ptr noundef %28876, ptr noundef %28879, ptr noundef %28882, i32 noundef %28884) #12
  br label %28886

28886:                                            ; preds = %28869, %28852
  call void @llvm.lifetime.end.p0(i64 4, ptr %623) #12
  br label %28887

28887:                                            ; preds = %28886
  call void @exit(i32 noundef 1) #14
  unreachable

28888:                                            ; No predecessors!
  br label %28889

28889:                                            ; preds = %28888, %28835
  br label %28890

28890:                                            ; preds = %28889
  br label %28891

28891:                                            ; preds = %28890
  br label %28892

28892:                                            ; preds = %28891
  %28893 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %28894 = icmp eq i32 %28893, -1
  br i1 %28894, label %28895, label %28946

28895:                                            ; preds = %28892
  br label %28896

28896:                                            ; preds = %28895
  br label %28897

28897:                                            ; preds = %28896
  call void @llvm.lifetime.start.p0(i64 4, ptr %624) #12
  %28898 = call ptr @__errno_location() #13
  %28899 = load i32, ptr %28898, align 4, !tbaa !5
  store i32 %28899, ptr %624, align 4, !tbaa !5
  %28900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28901 = call i32 @s2n_print_stacktrace(ptr noundef %28900)
  %28902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28903 = trunc i8 %28902 to i1
  br i1 %28903, label %28904, label %28926

28904:                                            ; preds = %28897
  %28905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28906 = call i32 @fileno(ptr noundef %28905) #12
  %28907 = call i32 @isatty(i32 noundef %28906) #12
  %28908 = icmp ne i32 %28907, 0
  br i1 %28908, label %28909, label %28926

28909:                                            ; preds = %28904
  %28910 = load i32, ptr %624, align 4, !tbaa !5
  %28911 = call ptr @__errno_location() #13
  store i32 %28910, ptr %28911, align 4, !tbaa !5
  %28912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28913 = load i32, ptr @test_count, align 4, !tbaa !5
  %28914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28915 = load i32, ptr %28914, align 4, !tbaa !5
  %28916 = call ptr @s2n_strerror(i32 noundef %28915, ptr noundef @.str.6)
  %28917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28918 = load i32, ptr %28917, align 4, !tbaa !5
  %28919 = call ptr @s2n_strerror_debug(i32 noundef %28918, ptr noundef @.str.6)
  %28920 = call ptr @__errno_location() #13
  %28921 = load i32, ptr %28920, align 4, !tbaa !5
  %28922 = call ptr @strerror(i32 noundef %28921) #12
  %28923 = call ptr @__errno_location() #13
  %28924 = load i32, ptr %28923, align 4, !tbaa !5
  %28925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28912, ptr noundef @.str.4, i32 noundef %28913, ptr noundef @.str.136, ptr noundef @.str.3, i32 noundef 1111, ptr noundef %28916, ptr noundef %28919, ptr noundef %28922, i32 noundef %28924) #12
  br label %28943

28926:                                            ; preds = %28904, %28897
  %28927 = load i32, ptr %624, align 4, !tbaa !5
  %28928 = call ptr @__errno_location() #13
  store i32 %28927, ptr %28928, align 4, !tbaa !5
  %28929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28930 = load i32, ptr @test_count, align 4, !tbaa !5
  %28931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28932 = load i32, ptr %28931, align 4, !tbaa !5
  %28933 = call ptr @s2n_strerror(i32 noundef %28932, ptr noundef @.str.6)
  %28934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %28935 = load i32, ptr %28934, align 4, !tbaa !5
  %28936 = call ptr @s2n_strerror_debug(i32 noundef %28935, ptr noundef @.str.6)
  %28937 = call ptr @__errno_location() #13
  %28938 = load i32, ptr %28937, align 4, !tbaa !5
  %28939 = call ptr @strerror(i32 noundef %28938) #12
  %28940 = call ptr @__errno_location() #13
  %28941 = load i32, ptr %28940, align 4, !tbaa !5
  %28942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28929, ptr noundef @.str.7, i32 noundef %28930, ptr noundef @.str.136, ptr noundef @.str.3, i32 noundef 1111, ptr noundef %28933, ptr noundef %28936, ptr noundef %28939, i32 noundef %28941) #12
  br label %28943

28943:                                            ; preds = %28926, %28909
  call void @llvm.lifetime.end.p0(i64 4, ptr %624) #12
  br label %28944

28944:                                            ; preds = %28943
  call void @exit(i32 noundef 1) #14
  unreachable

28945:                                            ; No predecessors!
  br label %28946

28946:                                            ; preds = %28945, %28892
  br label %28947

28947:                                            ; preds = %28946
  %28948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28949 = trunc i8 %28948 to i1
  br i1 %28949, label %28950, label %28966

28950:                                            ; preds = %28947
  %28951 = load ptr, ptr @stdout, align 8, !tbaa !9
  %28952 = call i32 @fileno(ptr noundef %28951) #12
  %28953 = call i32 @isatty(i32 noundef %28952) #12
  %28954 = icmp ne i32 %28953, 0
  br i1 %28954, label %28955, label %28966

28955:                                            ; preds = %28950
  %28956 = load i32, ptr @test_count, align 4, !tbaa !5
  %28957 = icmp ne i32 %28956, 0
  br i1 %28957, label %28958, label %28962

28958:                                            ; preds = %28955
  %28959 = load ptr, ptr @stdout, align 8, !tbaa !9
  %28960 = load i32, ptr @test_count, align 4, !tbaa !5
  %28961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28959, ptr noundef @.str.137, i32 noundef %28960) #12
  br label %28965

28962:                                            ; preds = %28955
  %28963 = load ptr, ptr @stdout, align 8, !tbaa !9
  %28964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28963, ptr noundef @.str.138) #12
  br label %28965

28965:                                            ; preds = %28962, %28958
  br label %28977

28966:                                            ; preds = %28950, %28947
  %28967 = load i32, ptr @test_count, align 4, !tbaa !5
  %28968 = icmp ne i32 %28967, 0
  br i1 %28968, label %28969, label %28973

28969:                                            ; preds = %28966
  %28970 = load ptr, ptr @stdout, align 8, !tbaa !9
  %28971 = load i32, ptr @test_count, align 4, !tbaa !5
  %28972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28970, ptr noundef @.str.139, i32 noundef %28971) #12
  br label %28976

28973:                                            ; preds = %28966
  %28974 = load ptr, ptr @stdout, align 8, !tbaa !9
  %28975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28974, ptr noundef @.str.140) #12
  br label %28976

28976:                                            ; preds = %28973, %28969
  br label %28977

28977:                                            ; preds = %28976, %28965
  store i32 0, ptr %3, align 4
  br label %28979

28978:                                            ; No predecessors!
  br label %28979

28979:                                            ; preds = %28978, %28977, %6775
  %28980 = load i32, ptr %3, align 4
  ret i32 %28980

28981:                                            ; preds = %6775
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #5

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #6

declare i32 @s2n_print_stacktrace(ptr noundef) #3

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #5

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #5

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #3

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #3

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #5

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #7

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_enable_tls13_in_test(...) #3

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

declare ptr @s2n_connection_new(i32 noundef) #3

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

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) #3

declare i32 @s2n_stuffer_free(ptr noundef) #3

declare i32 @s2n_connection_free(ptr noundef) #3

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #3

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) #3

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) #3

declare i32 @s2n_is_evp_apis_supported(...) #3

declare ptr @s2n_config_new() #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

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

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) #3

declare i32 @s2n_set_connection_hello_retry_flags(ptr noundef) #3

declare i32 @s2n_set_all_mutually_supported_groups(ptr noundef) #3

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare i64 @llvm.expect.i64(i64, i64) #11

declare ptr @s2n_ensure_memmove_trace(ptr noundef, ptr noundef, i64 noundef) #3

declare void @s2n_debug_info_reset() #3

declare i32 @s2n_extension_recv(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_public_ecc_keys_are_equal(ptr noundef, ptr noundef) #3

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) #3

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) #3

declare i32 @s2n_stuffer_reserve_uint16(ptr noundef, ptr noundef) #3

declare i32 @s2n_ecdhe_parameters_send(ptr noundef, ptr noundef) #3

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) #3

declare i32 @s2n_ecc_evp_params_free(ptr noundef) #3

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_write_named_curve(ptr noundef, ptr noundef) #0

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_write_key_share(ptr noundef, i16 noundef zeroext, i16 noundef zeroext, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_rewrite_length(ptr noundef) #0

declare i32 @s2n_stuffer_wipe_n(ptr noundef, i32 noundef) #3

declare i32 @s2n_cleanup() #3

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #2 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { 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 #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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #11 = { nocallback nofree nosync nounwind willreturn memory(none) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { noreturn nounwind }
attributes #15 = { nounwind willreturn memory(read) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 8}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!19, !6, i64 28}
!19 = !{!"s2n_stuffer", !20, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!20 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!21 = !{!19, !6, i64 24}
!22 = !{!23, !10, i64 0}
!23 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!24 = !{!25, !10, i64 8}
!25 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!26 = !{!23, !10, i64 8}
!27 = !{!17, !17, i64 0}
!28 = !{!29, !17, i64 0}
!29 = !{!"s2n_ecc_named_curve", !17, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!30 = !{!29, !7, i64 16}
!31 = !{!32, !10, i64 16}
!32 = !{!"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, !33, i64 160, !34, i64 168, !34, 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, !35, i64 240, !10, i64 632, !10, i64 640, !36, i64 648, !40, i64 1144, !43, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !19, i64 1776, !19, i64 1816, !19, i64 1856, !19, i64 1896, !6, i64 1936, !34, i64 1944, !7, i64 1952, !19, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !45, i64 2004, !45, i64 2008, !46, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !34, i64 2224, !7, i64 2232, !34, i64 2240, !34, i64 2248, !34, i64 2256, !45, i64 2264, !45, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !20, i64 2792, !6, i64 2816, !20, i64 2824, !20, i64 2848, !20, i64 2872, !48, i64 2896, !50, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !20, i64 3784, !6, i64 3808, !52, i64 3816, !7, i64 3848, !19, i64 3992, !20, i64 4032, !20, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !20, i64 4096, !6, i64 4120, !53, i64 4128, !45, i64 4176, !7, i64 4180, !7, i64 4181}
!33 = !{!"s2n_timer", !34, i64 0}
!34 = !{!"long", !7, i64 0}
!35 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!36 = !{!"s2n_kex_parameters", !37, i64 0, !23, i64 8, !7, i64 24, !23, i64 56, !38, i64 72, !38, i64 184, !7, i64 296, !39, i64 360, !20, i64 448, !20, i64 472}
!37 = !{!"s2n_dh_params", !10, i64 0}
!38 = !{!"s2n_kem_group_params", !10, i64 0, !39, i64 8, !23, i64 96}
!39 = !{!"s2n_kem_params", !10, i64 0, !20, i64 8, !20, i64 32, !20, i64 56, !12, i64 80}
!40 = !{!"s2n_handshake_parameters", !41, i64 0, !41, i64 48, !20, i64 96, !6, i64 120, !42, 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}
!41 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!42 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!43 = !{!"s2n_psk_parameters", !6, i64 0, !44, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!44 = !{!"s2n_array", !20, i64 0, !6, i64 24, !6, i64 28}
!45 = !{!"", !6, i64 0}
!46 = !{!"s2n_handshake", !19, 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, !47, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!47 = !{!"s2n_offered_early_data", !10, i64 0}
!48 = !{!"s2n_client_hello", !20, i64 0, !49, i64 24, !20, i64 728, !20, i64 752, !20, 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}
!49 = !{!"", !7, i64 0, !20, i64 672, !17, i64 696}
!50 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !51, i64 48, !12, i64 52}
!51 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!52 = !{!"s2n_ticket_fields", !20, i64 0, !6, i64 24}
!53 = !{!"s2n_post_handshake", !19, i64 0, !7, i64 40}
!54 = !{!32, !10, i64 656}
!55 = !{!56, !10, i64 0}
!56 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!57 = !{!56, !10, i64 8}
!58 = !{!16, !10, i64 16}
!59 = !{!32, !10, i64 720}
!60 = !{!32, !10, i64 704}
!61 = !{!32, !10, i64 712}
!62 = !{!32, !6, i64 4088}
!63 = !{!32, !7, i64 220}
!64 = !{!25, !7, i64 0}
!65 = !{!34, !34, i64 0}
!66 = distinct !{!66, !67}
!67 = !{!"llvm.loop.mustprogress"}
!68 = distinct !{!68, !67}
!69 = distinct !{!69, !67}
!70 = distinct !{!70, !67}
!71 = distinct !{!71, !67}


; 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_debug_info = type { ptr, ptr }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_stuffer_reservation = type { ptr, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@_s2n_debug_info = external thread_local local_unnamed_addr global %struct.s2n_debug_info, align 8
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [94 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.4 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [84 x i8], align 1
@s2n_client_key_share_extension = external constant %struct.s2n_extension_type, align 8
@.str.16 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_ecc_curve_x25519 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.37 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [82 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@hello_retry_req_random = external global [32 x i8], align 16
@.str.42 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [139 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_extensions_client_key_share_size(ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #1

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strrchr(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_calculate_stacktrace() local_unnamed_addr #3

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

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

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

; 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 i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %struct.s2n_stuffer, align 8
  %9 = alloca i16, align 2
  %10 = alloca ptr, align 8
  %11 = alloca i16, align 2
  %12 = alloca i16, align 2
  %13 = alloca %struct.s2n_stuffer, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_stuffer, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i16, align 2
  %18 = alloca i16, align 2
  %19 = alloca i16, align 2
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %struct.s2n_stuffer, align 8
  %26 = alloca %struct.s2n_stuffer, align 8
  %27 = alloca %struct.s2n_stuffer, align 8
  %28 = alloca %struct.s2n_stuffer, align 8
  %29 = alloca ptr, align 8
  %30 = alloca [2 x i8], align 2
  %31 = alloca %struct.s2n_stuffer, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %struct.s2n_ecc_evp_params, align 8
  %34 = alloca %struct.s2n_stuffer, align 8
  %35 = alloca %struct.s2n_stuffer_reservation, align 8
  %36 = alloca ptr, align 8
  %37 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %38 = alloca %struct.s2n_stuffer, align 8
  %39 = alloca %struct.s2n_stuffer_reservation, align 8
  %40 = alloca ptr, align 8
  %41 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %42 = alloca %struct.s2n_stuffer, align 8
  %43 = alloca %struct.s2n_stuffer_reservation, align 8
  %44 = alloca ptr, align 8
  %45 = alloca %struct.s2n_ecc_evp_params, align 8
  %46 = alloca %struct.s2n_stuffer, align 8
  %47 = alloca %struct.s2n_stuffer_reservation, align 8
  %48 = alloca ptr, align 8
  %49 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %50 = alloca %struct.s2n_stuffer, align 8
  %51 = alloca %struct.s2n_stuffer_reservation, align 8
  %52 = alloca %struct.s2n_stuffer, align 8
  %53 = alloca ptr, align 8
  %54 = alloca %struct.s2n_stuffer, align 8
  %55 = alloca ptr, align 8
  %56 = alloca %struct.s2n_stuffer, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %struct.s2n_stuffer, align 8
  %59 = alloca ptr, align 8
  %60 = alloca %struct.s2n_stuffer, align 8
  %61 = alloca ptr, align 8
  %62 = alloca %struct.s2n_stuffer, align 8
  %63 = alloca ptr, align 8
  %64 = alloca %struct.s2n_stuffer, align 8
  %65 = alloca %struct.s2n_ecc_evp_params, align 8
  %66 = alloca %struct.s2n_ecc_evp_params, align 8
  %67 = alloca ptr, align 8
  %68 = alloca %struct.s2n_stuffer, align 8
  %69 = alloca ptr, align 8
  %70 = alloca %struct.s2n_stuffer, align 8
  %71 = alloca ptr, align 8
  %72 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %73 = alloca %struct.s2n_stuffer_reservation, align 8
  %74 = alloca %struct.s2n_stuffer, align 8
  %75 = alloca ptr, align 8
  %76 = alloca [2 x %struct.s2n_ecc_evp_params], align 16
  %77 = alloca %struct.s2n_stuffer_reservation, align 8
  %78 = alloca %struct.s2n_stuffer, align 8
  %79 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %80 = load ptr, ptr @stdout, align 8, !tbaa !9
  %81 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %80, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3) #12
  %82 = load ptr, ptr @stdout, align 8, !tbaa !9
  %83 = tail call i32 @fflush(ptr noundef %82)
  %84 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %85 = icmp eq i32 %84, -1
  br i1 %85, label %86, label %110

86:                                               ; preds = %2
  %87 = tail call ptr @__errno_location() #13
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = tail call i32 @s2n_print_stacktrace(ptr noundef %89) #12
  %91 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %92 = trunc nuw i8 %91 to i1
  br i1 %92, label %93, label %97

93:                                               ; preds = %86
  %94 = load ptr, ptr @stderr, align 8, !tbaa !9
  %95 = tail call i32 @fileno(ptr noundef %94) #12
  %96 = tail call i32 @isatty(i32 noundef %95) #12
  %.not1723 = icmp eq i32 %96, 0
  br i1 %.not1723, label %97, label %98

97:                                               ; preds = %93, %86
  br label %98

98:                                               ; preds = %93, %97
  %.str.7.sink = phi ptr [ @.str.7, %97 ], [ @.str.4, %93 ]
  store i32 %88, ptr %87, align 4, !tbaa !5
  %99 = load ptr, ptr @stderr, align 8, !tbaa !9
  %100 = load i32, ptr @test_count, align 4, !tbaa !5
  %101 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = tail call ptr @s2n_strerror(i32 noundef %102, ptr noundef nonnull @.str.6) #12
  %104 = load i32, ptr %101, align 4, !tbaa !5
  %105 = tail call ptr @s2n_strerror_debug(i32 noundef %104, ptr noundef nonnull @.str.6) #12
  %106 = load i32, ptr %87, align 4, !tbaa !5
  %107 = tail call ptr @strerror(i32 noundef %106) #12
  %108 = load i32, ptr %87, align 4, !tbaa !5
  %109 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %99, ptr noundef nonnull %.str.7.sink, i32 noundef %100, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.3, i32 noundef 67, ptr noundef %103, ptr noundef %105, ptr noundef %107, i32 noundef %108) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

110:                                              ; preds = %2
  %111 = load i32, ptr @test_count, align 4, !tbaa !5
  %112 = add nsw i32 %111, 1
  store i32 %112, ptr @test_count, align 4, !tbaa !5
  %113 = tail call i32 @s2n_enable_atexit() #12
  %114 = icmp eq i32 %113, -1
  br i1 %114, label %115, label %139

115:                                              ; preds = %110
  %116 = tail call ptr @__errno_location() #13
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = tail call i32 @s2n_print_stacktrace(ptr noundef %118) #12
  %120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %121 = trunc nuw i8 %120 to i1
  br i1 %121, label %122, label %126

122:                                              ; preds = %115
  %123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %124 = tail call i32 @fileno(ptr noundef %123) #12
  %125 = tail call i32 @isatty(i32 noundef %124) #12
  %.not1722 = icmp eq i32 %125, 0
  br i1 %.not1722, label %126, label %127

126:                                              ; preds = %122, %115
  br label %127

127:                                              ; preds = %122, %126
  %.str.7.sink1748 = phi ptr [ @.str.7, %126 ], [ @.str.4, %122 ]
  store i32 %117, ptr %116, align 4, !tbaa !5
  %128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %129 = load i32, ptr @test_count, align 4, !tbaa !5
  %130 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = tail call ptr @s2n_strerror(i32 noundef %131, ptr noundef nonnull @.str.6) #12
  %133 = load i32, ptr %130, align 4, !tbaa !5
  %134 = tail call ptr @s2n_strerror_debug(i32 noundef %133, ptr noundef nonnull @.str.6) #12
  %135 = load i32, ptr %116, align 4, !tbaa !5
  %136 = tail call ptr @strerror(i32 noundef %135) #12
  %137 = load i32, ptr %116, align 4, !tbaa !5
  %138 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %128, ptr noundef nonnull %.str.7.sink1748, i32 noundef %129, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.3, i32 noundef 67, ptr noundef %132, ptr noundef %134, ptr noundef %136, i32 noundef %137) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

139:                                              ; preds = %110
  %140 = tail call i32 @s2n_init() #12
  %141 = icmp eq i32 %140, -1
  br i1 %141, label %142, label %166

142:                                              ; preds = %139
  %143 = tail call ptr @__errno_location() #13
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %146 = tail call i32 @s2n_print_stacktrace(ptr noundef %145) #12
  %147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %148 = trunc nuw i8 %147 to i1
  br i1 %148, label %149, label %153

149:                                              ; preds = %142
  %150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %151 = tail call i32 @fileno(ptr noundef %150) #12
  %152 = tail call i32 @isatty(i32 noundef %151) #12
  %.not1721 = icmp eq i32 %152, 0
  br i1 %.not1721, label %153, label %154

153:                                              ; preds = %149, %142
  br label %154

154:                                              ; preds = %149, %153
  %.str.7.sink1759 = phi ptr [ @.str.7, %153 ], [ @.str.4, %149 ]
  store i32 %144, ptr %143, align 4, !tbaa !5
  %155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = tail call ptr @s2n_strerror(i32 noundef %158, ptr noundef nonnull @.str.6) #12
  %160 = load i32, ptr %157, align 4, !tbaa !5
  %161 = tail call ptr @s2n_strerror_debug(i32 noundef %160, ptr noundef nonnull @.str.6) #12
  %162 = load i32, ptr %143, align 4, !tbaa !5
  %163 = tail call ptr @strerror(i32 noundef %162) #12
  %164 = load i32, ptr %143, align 4, !tbaa !5
  %165 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull %.str.7.sink1759, i32 noundef %156, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.3, i32 noundef 67, ptr noundef %159, ptr noundef %161, ptr noundef %163, i32 noundef %164) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

166:                                              ; preds = %139
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = add nsw i32 %167, 1
  store i32 %168, ptr @test_count, align 4, !tbaa !5
  %169 = tail call i32 (...) @s2n_enable_tls13_in_test() #12
  %170 = icmp eq i32 %169, -1
  br i1 %170, label %171, label %195

171:                                              ; preds = %166
  %172 = tail call ptr @__errno_location() #13
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = tail call i32 @s2n_print_stacktrace(ptr noundef %174) #12
  %176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %177 = trunc nuw i8 %176 to i1
  br i1 %177, label %178, label %182

178:                                              ; preds = %171
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = tail call i32 @fileno(ptr noundef %179) #12
  %181 = tail call i32 @isatty(i32 noundef %180) #12
  %.not1720 = icmp eq i32 %181, 0
  br i1 %.not1720, label %182, label %183

182:                                              ; preds = %178, %171
  br label %183

183:                                              ; preds = %178, %182
  %.str.7.sink1770 = phi ptr [ @.str.7, %182 ], [ @.str.4, %178 ]
  store i32 %173, ptr %172, align 4, !tbaa !5
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = load i32, ptr @test_count, align 4, !tbaa !5
  %186 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = tail call ptr @s2n_strerror(i32 noundef %187, ptr noundef nonnull @.str.6) #12
  %189 = load i32, ptr %186, align 4, !tbaa !5
  %190 = tail call ptr @s2n_strerror_debug(i32 noundef %189, ptr noundef nonnull @.str.6) #12
  %191 = load i32, ptr %172, align 4, !tbaa !5
  %192 = tail call ptr @strerror(i32 noundef %191) #12
  %193 = load i32, ptr %172, align 4, !tbaa !5
  %194 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %184, ptr noundef nonnull %.str.7.sink1770, i32 noundef %185, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.3, i32 noundef 68, ptr noundef %188, ptr noundef %190, ptr noundef %192, i32 noundef %193) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

195:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, i8 0, i64 40, i1 false)
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = add nsw i32 %196, 1
  store i32 %197, ptr @test_count, align 4, !tbaa !5
  %198 = tail call ptr @s2n_connection_new(i32 noundef 1) #12
  %199 = icmp eq ptr %198, null
  br i1 %199, label %200, label %224

200:                                              ; preds = %195
  %201 = tail call ptr @__errno_location() #13
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = tail call i32 @s2n_print_stacktrace(ptr noundef %203) #12
  %205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %206 = trunc nuw i8 %205 to i1
  br i1 %206, label %207, label %211

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

211:                                              ; preds = %207, %200
  br label %212

212:                                              ; preds = %207, %211
  %.str.7.sink1781 = phi ptr [ @.str.7, %211 ], [ @.str.4, %207 ]
  store i32 %202, ptr %201, align 4, !tbaa !5
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = load i32, ptr @test_count, align 4, !tbaa !5
  %215 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %216 = load i32, ptr %215, align 4, !tbaa !5
  %217 = tail call ptr @s2n_strerror(i32 noundef %216, ptr noundef nonnull @.str.6) #12
  %218 = load i32, ptr %215, align 4, !tbaa !5
  %219 = tail call ptr @s2n_strerror_debug(i32 noundef %218, ptr noundef nonnull @.str.6) #12
  %220 = load i32, ptr %201, align 4, !tbaa !5
  %221 = tail call ptr @strerror(i32 noundef %220) #12
  %222 = load i32, ptr %201, align 4, !tbaa !5
  %223 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %213, ptr noundef nonnull %.str.7.sink1781, i32 noundef %214, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.3, i32 noundef 74, ptr noundef %217, ptr noundef %219, ptr noundef %221, i32 noundef %222) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

224:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #12
  store i32 0, ptr %4, align 4, !tbaa !5
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = add nsw i32 %225, 1
  store i32 %226, ptr @test_count, align 4, !tbaa !5
  %227 = call i32 @s2n_extensions_client_key_share_size(ptr noundef nonnull %198, ptr noundef nonnull %4)
  %228 = call zeroext i1 @s2n_result_is_ok(i32 %227)
  br i1 %228, label %253, label %229

229:                                              ; preds = %224
  %230 = tail call ptr @__errno_location() #13
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %233 = call i32 @s2n_print_stacktrace(ptr noundef %232) #12
  %234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %235 = trunc nuw i8 %234 to i1
  br i1 %235, label %236, label %240

236:                                              ; preds = %229
  %237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %238 = call i32 @fileno(ptr noundef %237) #12
  %239 = call i32 @isatty(i32 noundef %238) #12
  %.not = icmp eq i32 %239, 0
  br i1 %.not, label %240, label %241

240:                                              ; preds = %236, %229
  br label %241

241:                                              ; preds = %236, %240
  %.str.7.sink1792 = phi ptr [ @.str.7, %240 ], [ @.str.4, %236 ]
  store i32 %231, ptr %230, align 4, !tbaa !5
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = load i32, ptr @test_count, align 4, !tbaa !5
  %244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call ptr @s2n_strerror(i32 noundef %245, ptr noundef nonnull @.str.6) #12
  %247 = load i32, ptr %244, align 4, !tbaa !5
  %248 = call ptr @s2n_strerror_debug(i32 noundef %247, ptr noundef nonnull @.str.6) #12
  %249 = load i32, ptr %230, align 4, !tbaa !5
  %250 = call ptr @strerror(i32 noundef %249) #12
  %251 = load i32, ptr %230, align 4, !tbaa !5
  %252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %242, ptr noundef nonnull %.str.7.sink1792, i32 noundef %243, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.3, i32 noundef 77, ptr noundef %246, ptr noundef %248, ptr noundef %250, i32 noundef %251) #14
  call void @exit(i32 noundef 1) #15
  unreachable

253:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #12
  store i32 0, ptr %5, align 4, !tbaa !5
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = add nsw i32 %254, 1
  store i32 %255, ptr @test_count, align 4, !tbaa !5
  %256 = call i32 @s2n_extensions_client_key_share_size(ptr noundef nonnull %198, ptr noundef nonnull %5)
  %257 = call zeroext i1 @s2n_result_is_ok(i32 %256)
  br i1 %257, label %282, label %258

258:                                              ; preds = %253
  %259 = tail call ptr @__errno_location() #13
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = call i32 @s2n_print_stacktrace(ptr noundef %261) #12
  %263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %264 = trunc nuw i8 %263 to i1
  br i1 %264, label %265, label %269

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

269:                                              ; preds = %265, %258
  br label %270

270:                                              ; preds = %265, %269
  %.str.7.sink1803 = phi ptr [ @.str.7, %269 ], [ @.str.4, %265 ]
  store i32 %260, ptr %259, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call ptr @s2n_strerror(i32 noundef %274, ptr noundef nonnull @.str.6) #12
  %276 = load i32, ptr %273, align 4, !tbaa !5
  %277 = call ptr @s2n_strerror_debug(i32 noundef %276, ptr noundef nonnull @.str.6) #12
  %278 = load i32, ptr %259, align 4, !tbaa !5
  %279 = call ptr @strerror(i32 noundef %278) #12
  %280 = load i32, ptr %259, align 4, !tbaa !5
  %281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef nonnull %.str.7.sink1803, i32 noundef %272, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.3, i32 noundef 81, ptr noundef %275, ptr noundef %277, ptr noundef %279, i32 noundef %280) #14
  call void @exit(i32 noundef 1) #15
  unreachable

282:                                              ; preds = %253
  %283 = load i32, ptr @test_count, align 4, !tbaa !5
  %284 = add nsw i32 %283, 1
  store i32 %284, ptr @test_count, align 4, !tbaa !5
  %285 = load i32, ptr %4, align 4, !tbaa !5
  %286 = load i32, ptr %5, align 4, !tbaa !5
  %287 = icmp eq i32 %285, %286
  br i1 %287, label %312, label %288

288:                                              ; preds = %282
  %289 = tail call ptr @__errno_location() #13
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @s2n_print_stacktrace(ptr noundef %291) #12
  %293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %294 = trunc nuw i8 %293 to i1
  br i1 %294, label %295, label %299

295:                                              ; preds = %288
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = call i32 @fileno(ptr noundef %296) #12
  %298 = call i32 @isatty(i32 noundef %297) #12
  %.not1268 = icmp eq i32 %298, 0
  br i1 %.not1268, label %299, label %300

299:                                              ; preds = %295, %288
  br label %300

300:                                              ; preds = %295, %299
  %.str.7.sink1814 = phi ptr [ @.str.7, %299 ], [ @.str.4, %295 ]
  store i32 %290, ptr %289, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call ptr @s2n_strerror(i32 noundef %304, ptr noundef nonnull @.str.6) #12
  %306 = load i32, ptr %303, align 4, !tbaa !5
  %307 = call ptr @s2n_strerror_debug(i32 noundef %306, ptr noundef nonnull @.str.6) #12
  %308 = load i32, ptr %289, align 4, !tbaa !5
  %309 = call ptr @strerror(i32 noundef %308) #12
  %310 = load i32, ptr %289, align 4, !tbaa !5
  %311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef nonnull %.str.7.sink1814, i32 noundef %302, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.3, i32 noundef 82, ptr noundef %305, ptr noundef %307, ptr noundef %309, i32 noundef %310) #14
  call void @exit(i32 noundef 1) #15
  unreachable

312:                                              ; preds = %282
  %313 = add nsw i32 %283, 2
  store i32 %313, ptr @test_count, align 4, !tbaa !5
  %314 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %3, i32 noundef %285) #12
  %315 = icmp eq i32 %314, -1
  br i1 %315, label %316, label %340

316:                                              ; preds = %312
  %317 = tail call ptr @__errno_location() #13
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = call i32 @s2n_print_stacktrace(ptr noundef %319) #12
  %321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %322 = trunc nuw i8 %321 to i1
  br i1 %322, label %323, label %327

323:                                              ; preds = %316
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @fileno(ptr noundef %324) #12
  %326 = call i32 @isatty(i32 noundef %325) #12
  %.not1718 = icmp eq i32 %326, 0
  br i1 %.not1718, label %327, label %328

327:                                              ; preds = %323, %316
  br label %328

328:                                              ; preds = %323, %327
  %.str.7.sink1825 = phi ptr [ @.str.7, %327 ], [ @.str.4, %323 ]
  store i32 %318, ptr %317, align 4, !tbaa !5
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = call ptr @s2n_strerror(i32 noundef %332, ptr noundef nonnull @.str.6) #12
  %334 = load i32, ptr %331, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef nonnull @.str.6) #12
  %336 = load i32, ptr %317, align 4, !tbaa !5
  %337 = call ptr @strerror(i32 noundef %336) #12
  %338 = load i32, ptr %317, align 4, !tbaa !5
  %339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef nonnull %.str.7.sink1825, i32 noundef %330, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.3, i32 noundef 85, ptr noundef %333, ptr noundef %335, ptr noundef %337, i32 noundef %338) #14
  call void @exit(i32 noundef 1) #15
  unreachable

340:                                              ; preds = %312
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_key_share_extension, i64 8), align 8, !tbaa !15
  %344 = call i32 %343(ptr noundef nonnull %198, ptr noundef nonnull %3) #12
  %345 = icmp eq i32 %344, -1
  br i1 %345, label %346, label %370

346:                                              ; preds = %340
  %347 = tail call ptr @__errno_location() #13
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = call i32 @s2n_print_stacktrace(ptr noundef %349) #12
  %351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %352 = trunc nuw i8 %351 to i1
  br i1 %352, label %353, label %357

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

357:                                              ; preds = %353, %346
  br label %358

358:                                              ; preds = %353, %357
  %.str.7.sink1836 = phi ptr [ @.str.7, %357 ], [ @.str.4, %353 ]
  store i32 %348, ptr %347, align 4, !tbaa !5
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = load i32, ptr @test_count, align 4, !tbaa !5
  %361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror(i32 noundef %362, ptr noundef nonnull @.str.6) #12
  %364 = load i32, ptr %361, align 4, !tbaa !5
  %365 = call ptr @s2n_strerror_debug(i32 noundef %364, ptr noundef nonnull @.str.6) #12
  %366 = load i32, ptr %347, align 4, !tbaa !5
  %367 = call ptr @strerror(i32 noundef %366) #12
  %368 = load i32, ptr %347, align 4, !tbaa !5
  %369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %359, ptr noundef nonnull %.str.7.sink1836, i32 noundef %360, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.3, i32 noundef 86, ptr noundef %363, ptr noundef %365, ptr noundef %367, i32 noundef %368) #14
  call void @exit(i32 noundef 1) #15
  unreachable

370:                                              ; preds = %340
  %371 = load i32, ptr @test_count, align 4, !tbaa !5
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr @test_count, align 4, !tbaa !5
  %373 = load i32, ptr %4, align 4, !tbaa !5
  %374 = add i32 %373, -4
  %375 = getelementptr inbounds i8, ptr %3, i64 28
  %376 = load i32, ptr %375, align 4, !tbaa !18
  %377 = getelementptr inbounds i8, ptr %3, i64 24
  %378 = load i32, ptr %377, align 8, !tbaa !21
  %379 = sub i32 %376, %378
  %380 = icmp eq i32 %374, %379
  br i1 %380, label %405, label %381

381:                                              ; preds = %370
  %382 = tail call ptr @__errno_location() #13
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = call i32 @s2n_print_stacktrace(ptr noundef %384) #12
  %386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %387 = trunc nuw i8 %386 to i1
  br i1 %387, label %388, label %392

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

392:                                              ; preds = %388, %381
  br label %393

393:                                              ; preds = %388, %392
  %.str.7.sink1847 = phi ptr [ @.str.7, %392 ], [ @.str.4, %388 ]
  store i32 %383, ptr %382, align 4, !tbaa !5
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = load i32, ptr @test_count, align 4, !tbaa !5
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror(i32 noundef %397, ptr noundef nonnull @.str.6) #12
  %399 = load i32, ptr %396, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror_debug(i32 noundef %399, ptr noundef nonnull @.str.6) #12
  %401 = load i32, ptr %382, align 4, !tbaa !5
  %402 = call ptr @strerror(i32 noundef %401) #12
  %403 = load i32, ptr %382, align 4, !tbaa !5
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %394, ptr noundef nonnull %.str.7.sink1847, i32 noundef %395, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.3, i32 noundef 88, ptr noundef %398, ptr noundef %400, ptr noundef %402, i32 noundef %403) #14
  call void @exit(i32 noundef 1) #15
  unreachable

405:                                              ; preds = %370
  %406 = add nsw i32 %371, 2
  store i32 %406, ptr @test_count, align 4, !tbaa !5
  %407 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #12
  %408 = icmp eq i32 %407, -1
  br i1 %408, label %409, label %433

409:                                              ; preds = %405
  %410 = tail call ptr @__errno_location() #13
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = call i32 @s2n_print_stacktrace(ptr noundef %412) #12
  %414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %415 = trunc nuw i8 %414 to i1
  br i1 %415, label %416, label %420

416:                                              ; preds = %409
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = call i32 @fileno(ptr noundef %417) #12
  %419 = call i32 @isatty(i32 noundef %418) #12
  %.not1716 = icmp eq i32 %419, 0
  br i1 %.not1716, label %420, label %421

420:                                              ; preds = %416, %409
  br label %421

421:                                              ; preds = %416, %420
  %.str.7.sink1858 = phi ptr [ @.str.7, %420 ], [ @.str.4, %416 ]
  store i32 %411, ptr %410, align 4, !tbaa !5
  %422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @s2n_strerror(i32 noundef %425, ptr noundef nonnull @.str.6) #12
  %427 = load i32, ptr %424, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror_debug(i32 noundef %427, ptr noundef nonnull @.str.6) #12
  %429 = load i32, ptr %410, align 4, !tbaa !5
  %430 = call ptr @strerror(i32 noundef %429) #12
  %431 = load i32, ptr %410, align 4, !tbaa !5
  %432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %422, ptr noundef nonnull %.str.7.sink1858, i32 noundef %423, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 90, ptr noundef %426, ptr noundef %428, ptr noundef %430, i32 noundef %431) #14
  call void @exit(i32 noundef 1) #15
  unreachable

433:                                              ; preds = %405
  %434 = load i32, ptr @test_count, align 4, !tbaa !5
  %435 = add nsw i32 %434, 1
  store i32 %435, ptr @test_count, align 4, !tbaa !5
  %436 = call i32 @s2n_connection_free(ptr noundef nonnull %198) #12
  %437 = icmp eq i32 %436, -1
  br i1 %437, label %438, label %462

438:                                              ; preds = %433
  %439 = tail call ptr @__errno_location() #13
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = call i32 @s2n_print_stacktrace(ptr noundef %441) #12
  %443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %444 = trunc nuw i8 %443 to i1
  br i1 %444, label %445, label %449

445:                                              ; preds = %438
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = call i32 @fileno(ptr noundef %446) #12
  %448 = call i32 @isatty(i32 noundef %447) #12
  %.not1715 = icmp eq i32 %448, 0
  br i1 %.not1715, label %449, label %450

449:                                              ; preds = %445, %438
  br label %450

450:                                              ; preds = %445, %449
  %.str.7.sink1869 = phi ptr [ @.str.7, %449 ], [ @.str.4, %445 ]
  store i32 %440, ptr %439, align 4, !tbaa !5
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = load i32, ptr @test_count, align 4, !tbaa !5
  %453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %454 = load i32, ptr %453, align 4, !tbaa !5
  %455 = call ptr @s2n_strerror(i32 noundef %454, ptr noundef nonnull @.str.6) #12
  %456 = load i32, ptr %453, align 4, !tbaa !5
  %457 = call ptr @s2n_strerror_debug(i32 noundef %456, ptr noundef nonnull @.str.6) #12
  %458 = load i32, ptr %439, align 4, !tbaa !5
  %459 = call ptr @strerror(i32 noundef %458) #12
  %460 = load i32, ptr %439, align 4, !tbaa !5
  %461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %451, ptr noundef nonnull %.str.7.sink1869, i32 noundef %452, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 91, ptr noundef %455, ptr noundef %457, ptr noundef %459, i32 noundef %460) #14
  call void @exit(i32 noundef 1) #15
  unreachable

462:                                              ; preds = %433
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = add nsw i32 %463, 1
  store i32 %464, ptr @test_count, align 4, !tbaa !5
  %465 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %466 = icmp eq ptr %465, null
  br i1 %466, label %467, label %491

467:                                              ; preds = %462
  %468 = tail call ptr @__errno_location() #13
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = call i32 @s2n_print_stacktrace(ptr noundef %470) #12
  %472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %473 = trunc nuw i8 %472 to i1
  br i1 %473, label %474, label %478

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

478:                                              ; preds = %474, %467
  br label %479

479:                                              ; preds = %474, %478
  %.str.7.sink1880 = phi ptr [ @.str.7, %478 ], [ @.str.4, %474 ]
  store i32 %469, ptr %468, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %483, ptr noundef nonnull @.str.6) #12
  %485 = load i32, ptr %482, align 4, !tbaa !5
  %486 = call ptr @s2n_strerror_debug(i32 noundef %485, ptr noundef nonnull @.str.6) #12
  %487 = load i32, ptr %468, align 4, !tbaa !5
  %488 = call ptr @strerror(i32 noundef %487) #12
  %489 = load i32, ptr %468, align 4, !tbaa !5
  %490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %480, ptr noundef nonnull %.str.7.sink1880, i32 noundef %481, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.3, i32 noundef 100, ptr noundef %484, ptr noundef %486, ptr noundef %488, i32 noundef %489) #14
  call void @exit(i32 noundef 1) #15
  unreachable

491:                                              ; preds = %462
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr @test_count, align 4, !tbaa !5
  %494 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #12
  %495 = icmp eq i32 %494, -1
  br i1 %495, label %496, label %520

496:                                              ; preds = %491
  %497 = tail call ptr @__errno_location() #13
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = call i32 @s2n_print_stacktrace(ptr noundef %499) #12
  %501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %502 = trunc nuw i8 %501 to i1
  br i1 %502, label %503, label %507

503:                                              ; preds = %496
  %504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %505 = call i32 @fileno(ptr noundef %504) #12
  %506 = call i32 @isatty(i32 noundef %505) #12
  %.not1713 = icmp eq i32 %506, 0
  br i1 %.not1713, label %507, label %508

507:                                              ; preds = %503, %496
  br label %508

508:                                              ; preds = %503, %507
  %.str.7.sink1891 = phi ptr [ @.str.7, %507 ], [ @.str.4, %503 ]
  store i32 %498, ptr %497, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror(i32 noundef %512, ptr noundef nonnull @.str.6) #12
  %514 = load i32, ptr %511, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror_debug(i32 noundef %514, ptr noundef nonnull @.str.6) #12
  %516 = load i32, ptr %497, align 4, !tbaa !5
  %517 = call ptr @strerror(i32 noundef %516) #12
  %518 = load i32, ptr %497, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %509, ptr noundef nonnull %.str.7.sink1891, i32 noundef %510, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 101, ptr noundef %513, ptr noundef %515, ptr noundef %517, i32 noundef %518) #14
  call void @exit(i32 noundef 1) #15
  unreachable

520:                                              ; preds = %491
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = add nsw i32 %521, 1
  store i32 %522, ptr @test_count, align 4, !tbaa !5
  %523 = call i32 %343(ptr noundef nonnull %465, ptr noundef nonnull %6) #12
  %524 = icmp eq i32 %523, -1
  br i1 %524, label %525, label %549

525:                                              ; preds = %520
  %526 = tail call ptr @__errno_location() #13
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = call i32 @s2n_print_stacktrace(ptr noundef %528) #12
  %530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %531 = trunc nuw i8 %530 to i1
  br i1 %531, label %532, label %536

532:                                              ; preds = %525
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = call i32 @fileno(ptr noundef %533) #12
  %535 = call i32 @isatty(i32 noundef %534) #12
  %.not1712 = icmp eq i32 %535, 0
  br i1 %.not1712, label %536, label %537

536:                                              ; preds = %532, %525
  br label %537

537:                                              ; preds = %532, %536
  %.str.7.sink1902 = phi ptr [ @.str.7, %536 ], [ @.str.4, %532 ]
  store i32 %527, ptr %526, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call ptr @s2n_strerror(i32 noundef %541, ptr noundef nonnull @.str.6) #12
  %543 = load i32, ptr %540, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror_debug(i32 noundef %543, ptr noundef nonnull @.str.6) #12
  %545 = load i32, ptr %526, align 4, !tbaa !5
  %546 = call ptr @strerror(i32 noundef %545) #12
  %547 = load i32, ptr %526, align 4, !tbaa !5
  %548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %538, ptr noundef nonnull %.str.7.sink1902, i32 noundef %539, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.3, i32 noundef 103, ptr noundef %542, ptr noundef %544, ptr noundef %546, i32 noundef %547) #14
  call void @exit(i32 noundef 1) #15
  unreachable

549:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #12
  store ptr null, ptr %7, align 8, !tbaa !9
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = add nsw i32 %550, 1
  store i32 %551, ptr @test_count, align 4, !tbaa !5
  %552 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %465, ptr noundef nonnull %7) #12
  %553 = icmp eq i32 %552, -1
  br i1 %553, label %554, label %578

554:                                              ; preds = %549
  %555 = tail call ptr @__errno_location() #13
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = call i32 @s2n_print_stacktrace(ptr noundef %557) #12
  %559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %560 = trunc nuw i8 %559 to i1
  br i1 %560, label %561, label %565

561:                                              ; preds = %554
  %562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %563 = call i32 @fileno(ptr noundef %562) #12
  %564 = call i32 @isatty(i32 noundef %563) #12
  %.not1711 = icmp eq i32 %564, 0
  br i1 %.not1711, label %565, label %566

565:                                              ; preds = %561, %554
  br label %566

566:                                              ; preds = %561, %565
  %.str.7.sink1913 = phi ptr [ @.str.7, %565 ], [ @.str.4, %561 ]
  store i32 %556, ptr %555, align 4, !tbaa !5
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = load i32, ptr @test_count, align 4, !tbaa !5
  %569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %570 = load i32, ptr %569, align 4, !tbaa !5
  %571 = call ptr @s2n_strerror(i32 noundef %570, ptr noundef nonnull @.str.6) #12
  %572 = load i32, ptr %569, align 4, !tbaa !5
  %573 = call ptr @s2n_strerror_debug(i32 noundef %572, ptr noundef nonnull @.str.6) #12
  %574 = load i32, ptr %555, align 4, !tbaa !5
  %575 = call ptr @strerror(i32 noundef %574) #12
  %576 = load i32, ptr %555, align 4, !tbaa !5
  %577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %567, ptr noundef nonnull %.str.7.sink1913, i32 noundef %568, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 106, ptr noundef %571, ptr noundef %573, ptr noundef %575, i32 noundef %576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

578:                                              ; preds = %549
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = add nsw i32 %579, 1
  store i32 %580, ptr @test_count, align 4, !tbaa !5
  %581 = load ptr, ptr %7, align 8, !tbaa !9
  %582 = icmp eq ptr %581, null
  br i1 %582, label %583, label %607

583:                                              ; preds = %578
  %584 = tail call ptr @__errno_location() #13
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = call i32 @s2n_print_stacktrace(ptr noundef %586) #12
  %588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %589 = trunc nuw i8 %588 to i1
  br i1 %589, label %590, label %594

590:                                              ; preds = %583
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = call i32 @fileno(ptr noundef %591) #12
  %593 = call i32 @isatty(i32 noundef %592) #12
  %.not1710 = icmp eq i32 %593, 0
  br i1 %.not1710, label %594, label %595

594:                                              ; preds = %590, %583
  br label %595

595:                                              ; preds = %590, %594
  %.str.7.sink1924 = phi ptr [ @.str.7, %594 ], [ @.str.4, %590 ]
  store i32 %585, ptr %584, 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 nonnull @.str.6) #12
  %601 = load i32, ptr %598, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror_debug(i32 noundef %601, ptr noundef nonnull @.str.6) #12
  %603 = load i32, ptr %584, align 4, !tbaa !5
  %604 = call ptr @strerror(i32 noundef %603) #12
  %605 = load i32, ptr %584, align 4, !tbaa !5
  %606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %596, ptr noundef nonnull %.str.7.sink1924, i32 noundef %597, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 107, ptr noundef %600, ptr noundef %602, ptr noundef %604, i32 noundef %605) #14
  call void @exit(i32 noundef 1) #15
  unreachable

607:                                              ; preds = %578
  %608 = getelementptr inbounds i8, ptr %465, i64 704
  %609 = add nsw i32 %579, 2
  store i32 %609, ptr @test_count, align 4, !tbaa !5
  %610 = load ptr, ptr %608, align 8, !tbaa !22
  %611 = getelementptr inbounds i8, ptr %581, i64 8
  %612 = load ptr, ptr %611, align 8, !tbaa !24
  %613 = load ptr, ptr %612, align 8, !tbaa !9
  %614 = icmp eq ptr %610, %613
  br i1 %614, label %639, label %615

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

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

626:                                              ; preds = %622, %615
  br label %627

627:                                              ; preds = %622, %626
  %.str.7.sink1935 = phi ptr [ @.str.7, %626 ], [ @.str.4, %622 ]
  store i32 %617, ptr %616, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef nonnull @.str.6) #12
  %633 = load i32, ptr %630, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef nonnull @.str.6) #12
  %635 = load i32, ptr %616, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #12
  %637 = load i32, ptr %616, align 4, !tbaa !5
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef nonnull %.str.7.sink1935, i32 noundef %629, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.3, i32 noundef 110, ptr noundef %632, ptr noundef %634, ptr noundef %636, i32 noundef %637) #14
  call void @exit(i32 noundef 1) #15
  unreachable

639:                                              ; preds = %607
  %640 = add nsw i32 %579, 3
  store i32 %640, ptr @test_count, align 4, !tbaa !5
  %641 = getelementptr inbounds i8, ptr %465, i64 712
  %642 = load ptr, ptr %641, align 8, !tbaa !26
  %643 = icmp eq ptr %642, null
  br i1 %643, label %644, label %668

644:                                              ; preds = %639
  %645 = tail call ptr @__errno_location() #13
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @s2n_print_stacktrace(ptr noundef %647) #12
  %649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %650 = trunc nuw i8 %649 to i1
  br i1 %650, label %651, label %655

651:                                              ; preds = %644
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @fileno(ptr noundef %652) #12
  %654 = call i32 @isatty(i32 noundef %653) #12
  %.not1709 = icmp eq i32 %654, 0
  br i1 %.not1709, label %655, label %656

655:                                              ; preds = %651, %644
  br label %656

656:                                              ; preds = %651, %655
  %.str.7.sink1946 = phi ptr [ @.str.7, %655 ], [ @.str.4, %651 ]
  store i32 %646, ptr %645, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror(i32 noundef %660, ptr noundef nonnull @.str.6) #12
  %662 = load i32, ptr %659, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror_debug(i32 noundef %662, ptr noundef nonnull @.str.6) #12
  %664 = load i32, ptr %645, align 4, !tbaa !5
  %665 = call ptr @strerror(i32 noundef %664) #12
  %666 = load i32, ptr %645, align 4, !tbaa !5
  %667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.7.sink1946, i32 noundef %658, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.3, i32 noundef 111, ptr noundef %661, ptr noundef %663, ptr noundef %665, i32 noundef %666) #14
  call void @exit(i32 noundef 1) #15
  unreachable

668:                                              ; preds = %639
  %669 = add nsw i32 %579, 4
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #12
  %671 = icmp eq i32 %670, -1
  br i1 %671, label %672, label %696

672:                                              ; preds = %668
  %673 = tail call ptr @__errno_location() #13
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = call i32 @s2n_print_stacktrace(ptr noundef %675) #12
  %677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %678 = trunc nuw i8 %677 to i1
  br i1 %678, label %679, label %683

679:                                              ; preds = %672
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = call i32 @fileno(ptr noundef %680) #12
  %682 = call i32 @isatty(i32 noundef %681) #12
  %.not1708 = icmp eq i32 %682, 0
  br i1 %.not1708, label %683, label %684

683:                                              ; preds = %679, %672
  br label %684

684:                                              ; preds = %679, %683
  %.str.7.sink1957 = phi ptr [ @.str.7, %683 ], [ @.str.4, %679 ]
  store i32 %674, ptr %673, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call ptr @s2n_strerror(i32 noundef %688, ptr noundef nonnull @.str.6) #12
  %690 = load i32, ptr %687, align 4, !tbaa !5
  %691 = call ptr @s2n_strerror_debug(i32 noundef %690, ptr noundef nonnull @.str.6) #12
  %692 = load i32, ptr %673, align 4, !tbaa !5
  %693 = call ptr @strerror(i32 noundef %692) #12
  %694 = load i32, ptr %673, align 4, !tbaa !5
  %695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef nonnull %.str.7.sink1957, i32 noundef %686, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 113, ptr noundef %689, ptr noundef %691, ptr noundef %693, i32 noundef %694) #14
  call void @exit(i32 noundef 1) #15
  unreachable

696:                                              ; preds = %668
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr @test_count, align 4, !tbaa !5
  %699 = call i32 @s2n_connection_free(ptr noundef nonnull %465) #12
  %700 = icmp eq i32 %699, -1
  br i1 %700, label %701, label %725

701:                                              ; preds = %696
  %702 = tail call ptr @__errno_location() #13
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = call i32 @s2n_print_stacktrace(ptr noundef %704) #12
  %706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %707 = trunc nuw i8 %706 to i1
  br i1 %707, label %708, label %712

708:                                              ; preds = %701
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = call i32 @fileno(ptr noundef %709) #12
  %711 = call i32 @isatty(i32 noundef %710) #12
  %.not1707 = icmp eq i32 %711, 0
  br i1 %.not1707, label %712, label %713

712:                                              ; preds = %708, %701
  br label %713

713:                                              ; preds = %708, %712
  %.str.7.sink1968 = phi ptr [ @.str.7, %712 ], [ @.str.4, %708 ]
  store i32 %703, ptr %702, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %717 = load i32, ptr %716, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror(i32 noundef %717, ptr noundef nonnull @.str.6) #12
  %719 = load i32, ptr %716, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror_debug(i32 noundef %719, ptr noundef nonnull @.str.6) #12
  %721 = load i32, ptr %702, align 4, !tbaa !5
  %722 = call ptr @strerror(i32 noundef %721) #12
  %723 = load i32, ptr %702, align 4, !tbaa !5
  %724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %714, ptr noundef nonnull %.str.7.sink1968, i32 noundef %715, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 114, ptr noundef %718, ptr noundef %720, ptr noundef %722, i32 noundef %723) #14
  call void @exit(i32 noundef 1) #15
  unreachable

725:                                              ; preds = %696
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = add nsw i32 %726, 1
  store i32 %727, ptr @test_count, align 4, !tbaa !5
  %728 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %729 = icmp eq ptr %728, null
  br i1 %729, label %730, label %754

730:                                              ; preds = %725
  %731 = tail call ptr @__errno_location() #13
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = call i32 @s2n_print_stacktrace(ptr noundef %733) #12
  %735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %736 = trunc nuw i8 %735 to i1
  br i1 %736, label %737, label %741

737:                                              ; preds = %730
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = call i32 @fileno(ptr noundef %738) #12
  %740 = call i32 @isatty(i32 noundef %739) #12
  %.not1706 = icmp eq i32 %740, 0
  br i1 %.not1706, label %741, label %742

741:                                              ; preds = %737, %730
  br label %742

742:                                              ; preds = %737, %741
  %.str.7.sink1979 = phi ptr [ @.str.7, %741 ], [ @.str.4, %737 ]
  store i32 %732, ptr %731, align 4, !tbaa !5
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = load i32, ptr @test_count, align 4, !tbaa !5
  %745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call ptr @s2n_strerror(i32 noundef %746, ptr noundef nonnull @.str.6) #12
  %748 = load i32, ptr %745, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror_debug(i32 noundef %748, ptr noundef nonnull @.str.6) #12
  %750 = load i32, ptr %731, align 4, !tbaa !5
  %751 = call ptr @strerror(i32 noundef %750) #12
  %752 = load i32, ptr %731, align 4, !tbaa !5
  %753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %743, ptr noundef nonnull %.str.7.sink1979, i32 noundef %744, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.3, i32 noundef 121, ptr noundef %747, ptr noundef %749, ptr noundef %751, i32 noundef %752) #14
  call void @exit(i32 noundef 1) #15
  unreachable

754:                                              ; preds = %725
  %755 = load i32, ptr @test_count, align 4, !tbaa !5
  %756 = add nsw i32 %755, 1
  store i32 %756, ptr @test_count, align 4, !tbaa !5
  %757 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #12
  %758 = icmp eq i32 %757, -1
  br i1 %758, label %759, label %783

759:                                              ; preds = %754
  %760 = tail call ptr @__errno_location() #13
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = call i32 @s2n_print_stacktrace(ptr noundef %762) #12
  %764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %765 = trunc nuw i8 %764 to i1
  br i1 %765, label %766, label %770

766:                                              ; preds = %759
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = call i32 @fileno(ptr noundef %767) #12
  %769 = call i32 @isatty(i32 noundef %768) #12
  %.not1705 = icmp eq i32 %769, 0
  br i1 %.not1705, label %770, label %771

770:                                              ; preds = %766, %759
  br label %771

771:                                              ; preds = %766, %770
  %.str.7.sink1990 = phi ptr [ @.str.7, %770 ], [ @.str.4, %766 ]
  store i32 %761, ptr %760, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %775, ptr noundef nonnull @.str.6) #12
  %777 = load i32, ptr %774, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef nonnull @.str.6) #12
  %779 = load i32, ptr %760, align 4, !tbaa !5
  %780 = call ptr @strerror(i32 noundef %779) #12
  %781 = load i32, ptr %760, align 4, !tbaa !5
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef nonnull %.str.7.sink1990, i32 noundef %773, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 122, ptr noundef %776, ptr noundef %778, ptr noundef %780, i32 noundef %781) #14
  call void @exit(i32 noundef 1) #15
  unreachable

783:                                              ; preds = %754
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr @test_count, align 4, !tbaa !5
  %786 = call i32 %343(ptr noundef nonnull %728, ptr noundef nonnull %8) #12
  %787 = icmp eq i32 %786, -1
  br i1 %787, label %788, label %812

788:                                              ; preds = %783
  %789 = tail call ptr @__errno_location() #13
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @s2n_print_stacktrace(ptr noundef %791) #12
  %793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %794 = trunc nuw i8 %793 to i1
  br i1 %794, label %795, label %799

795:                                              ; preds = %788
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = call i32 @fileno(ptr noundef %796) #12
  %798 = call i32 @isatty(i32 noundef %797) #12
  %.not1704 = icmp eq i32 %798, 0
  br i1 %.not1704, label %799, label %800

799:                                              ; preds = %795, %788
  br label %800

800:                                              ; preds = %795, %799
  %.str.7.sink2001 = phi ptr [ @.str.7, %799 ], [ @.str.4, %795 ]
  store i32 %790, ptr %789, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef nonnull @.str.6) #12
  %806 = load i32, ptr %803, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror_debug(i32 noundef %806, ptr noundef nonnull @.str.6) #12
  %808 = load i32, ptr %789, align 4, !tbaa !5
  %809 = call ptr @strerror(i32 noundef %808) #12
  %810 = load i32, ptr %789, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef nonnull %.str.7.sink2001, i32 noundef %802, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.3, i32 noundef 123, ptr noundef %805, ptr noundef %807, ptr noundef %809, i32 noundef %810) #14
  call void @exit(i32 noundef 1) #15
  unreachable

812:                                              ; preds = %783
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #12
  store i16 0, ptr %9, align 2, !tbaa !27
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr @test_count, align 4, !tbaa !5
  %815 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %8, ptr noundef nonnull %9) #12
  %816 = icmp eq i32 %815, -1
  br i1 %816, label %817, label %841

817:                                              ; preds = %812
  %818 = tail call ptr @__errno_location() #13
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @s2n_print_stacktrace(ptr noundef %820) #12
  %822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %823 = trunc nuw i8 %822 to i1
  br i1 %823, label %824, label %828

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

828:                                              ; preds = %824, %817
  br label %829

829:                                              ; preds = %824, %828
  %.str.7.sink2012 = phi ptr [ @.str.7, %828 ], [ @.str.4, %824 ]
  store i32 %819, ptr %818, align 4, !tbaa !5
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call ptr @s2n_strerror(i32 noundef %833, ptr noundef nonnull @.str.6) #12
  %835 = load i32, ptr %832, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror_debug(i32 noundef %835, ptr noundef nonnull @.str.6) #12
  %837 = load i32, ptr %818, align 4, !tbaa !5
  %838 = call ptr @strerror(i32 noundef %837) #12
  %839 = load i32, ptr %818, align 4, !tbaa !5
  %840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %830, ptr noundef nonnull %.str.7.sink2012, i32 noundef %831, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.3, i32 noundef 127, ptr noundef %834, ptr noundef %836, ptr noundef %838, i32 noundef %839) #14
  call void @exit(i32 noundef 1) #15
  unreachable

841:                                              ; preds = %812
  %842 = getelementptr inbounds i8, ptr %8, i64 28
  %843 = load i32, ptr %842, align 4, !tbaa !18
  %844 = getelementptr inbounds i8, ptr %8, i64 24
  %845 = load i32, ptr %844, align 8, !tbaa !21
  %846 = sub i32 %843, %845
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %848 = add nsw i32 %847, 1
  store i32 %848, ptr @test_count, align 4, !tbaa !5
  %849 = load i16, ptr %9, align 2, !tbaa !27
  %850 = trunc i32 %846 to i16
  %851 = icmp eq i16 %849, %850
  br i1 %851, label %876, label %852

852:                                              ; preds = %841
  %853 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %862 = call i32 @isatty(i32 noundef %861) #12
  %.not1271 = icmp eq i32 %862, 0
  br i1 %.not1271, label %863, label %864

863:                                              ; preds = %859, %852
  br label %864

864:                                              ; preds = %859, %863
  %.str.7.sink2023 = phi ptr [ @.str.7, %863 ], [ @.str.4, %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.6) #12
  %870 = load i32, ptr %867, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror_debug(i32 noundef %870, ptr noundef nonnull @.str.6) #12
  %872 = load i32, ptr %853, align 4, !tbaa !5
  %873 = call ptr @strerror(i32 noundef %872) #12
  %874 = load i32, ptr %853, align 4, !tbaa !5
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %865, ptr noundef nonnull %.str.7.sink2023, i32 noundef %866, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.3, i32 noundef 129, ptr noundef %869, ptr noundef %871, ptr noundef %873, i32 noundef %874) #14
  call void @exit(i32 noundef 1) #15
  unreachable

876:                                              ; preds = %841
  %877 = add nsw i32 %847, 2
  store i32 %877, ptr @test_count, align 4, !tbaa !5
  %878 = zext i16 %849 to i32
  %879 = icmp eq i32 %846, %878
  br i1 %879, label %904, label %880

880:                                              ; preds = %876
  %881 = tail call ptr @__errno_location() #13
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = call i32 @s2n_print_stacktrace(ptr noundef %883) #12
  %885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %886 = trunc nuw i8 %885 to i1
  br i1 %886, label %887, label %891

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

891:                                              ; preds = %887, %880
  br label %892

892:                                              ; preds = %887, %891
  %.str.7.sink2034 = phi ptr [ @.str.7, %891 ], [ @.str.4, %887 ]
  store i32 %882, ptr %881, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef nonnull @.str.6) #12
  %898 = load i32, ptr %895, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef nonnull @.str.6) #12
  %900 = load i32, ptr %881, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #12
  %902 = load i32, ptr %881, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %893, ptr noundef nonnull %.str.7.sink2034, i32 noundef %894, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.3, i32 noundef 130, ptr noundef %897, ptr noundef %899, ptr noundef %901, i32 noundef %902) #14
  call void @exit(i32 noundef 1) #15
  unreachable

904:                                              ; preds = %876
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  store ptr null, ptr %10, align 8, !tbaa !9
  %905 = add nsw i32 %847, 3
  store i32 %905, ptr @test_count, align 4, !tbaa !5
  %906 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %728, ptr noundef nonnull %10) #12
  %907 = icmp eq i32 %906, -1
  br i1 %907, label %908, label %932

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

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

919:                                              ; preds = %915, %908
  br label %920

920:                                              ; preds = %915, %919
  %.str.7.sink2045 = phi ptr [ @.str.7, %919 ], [ @.str.4, %915 ]
  store i32 %910, ptr %909, align 4, !tbaa !5
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = load i32, ptr @test_count, align 4, !tbaa !5
  %923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call ptr @s2n_strerror(i32 noundef %924, ptr noundef nonnull @.str.6) #12
  %926 = load i32, ptr %923, align 4, !tbaa !5
  %927 = call ptr @s2n_strerror_debug(i32 noundef %926, ptr noundef nonnull @.str.6) #12
  %928 = load i32, ptr %909, align 4, !tbaa !5
  %929 = call ptr @strerror(i32 noundef %928) #12
  %930 = load i32, ptr %909, align 4, !tbaa !5
  %931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef nonnull %.str.7.sink2045, i32 noundef %922, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 133, ptr noundef %925, ptr noundef %927, ptr noundef %929, i32 noundef %930) #14
  call void @exit(i32 noundef 1) #15
  unreachable

932:                                              ; preds = %904
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = add nsw i32 %933, 1
  store i32 %934, ptr @test_count, align 4, !tbaa !5
  %935 = load ptr, ptr %10, align 8, !tbaa !9
  %936 = icmp eq ptr %935, null
  br i1 %936, label %937, label %961

937:                                              ; preds = %932
  %938 = tail call ptr @__errno_location() #13
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = call i32 @s2n_print_stacktrace(ptr noundef %940) #12
  %942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %943 = trunc nuw i8 %942 to i1
  br i1 %943, label %944, label %948

944:                                              ; preds = %937
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @fileno(ptr noundef %945) #12
  %947 = call i32 @isatty(i32 noundef %946) #12
  %.not1701 = icmp eq i32 %947, 0
  br i1 %.not1701, label %948, label %949

948:                                              ; preds = %944, %937
  br label %949

949:                                              ; preds = %944, %948
  %.str.7.sink2056 = phi ptr [ @.str.7, %948 ], [ @.str.4, %944 ]
  store i32 %939, ptr %938, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call ptr @s2n_strerror(i32 noundef %953, ptr noundef nonnull @.str.6) #12
  %955 = load i32, ptr %952, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror_debug(i32 noundef %955, ptr noundef nonnull @.str.6) #12
  %957 = load i32, ptr %938, align 4, !tbaa !5
  %958 = call ptr @strerror(i32 noundef %957) #12
  %959 = load i32, ptr %938, align 4, !tbaa !5
  %960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %950, ptr noundef nonnull %.str.7.sink2056, i32 noundef %951, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 134, ptr noundef %954, ptr noundef %956, ptr noundef %958, i32 noundef %959) #14
  call void @exit(i32 noundef 1) #15
  unreachable

961:                                              ; preds = %932
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %11) #12
  store i16 0, ptr %11, align 2, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %12) #12
  store i16 0, ptr %12, align 2, !tbaa !27
  %962 = add nsw i32 %933, 2
  store i32 %962, ptr @test_count, align 4, !tbaa !5
  %963 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %8, ptr noundef nonnull %11) #12
  %964 = icmp eq i32 %963, -1
  br i1 %964, label %965, label %989

965:                                              ; preds = %961
  %966 = tail call ptr @__errno_location() #13
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = call i32 @s2n_print_stacktrace(ptr noundef %968) #12
  %970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %971 = trunc nuw i8 %970 to i1
  br i1 %971, label %972, label %976

972:                                              ; preds = %965
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = call i32 @fileno(ptr noundef %973) #12
  %975 = call i32 @isatty(i32 noundef %974) #12
  %.not1700 = icmp eq i32 %975, 0
  br i1 %.not1700, label %976, label %977

976:                                              ; preds = %972, %965
  br label %977

977:                                              ; preds = %972, %976
  %.str.7.sink2067 = phi ptr [ @.str.7, %976 ], [ @.str.4, %972 ]
  store i32 %967, ptr %966, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = load i32, ptr @test_count, align 4, !tbaa !5
  %980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call ptr @s2n_strerror(i32 noundef %981, ptr noundef nonnull @.str.6) #12
  %983 = load i32, ptr %980, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror_debug(i32 noundef %983, ptr noundef nonnull @.str.6) #12
  %985 = load i32, ptr %966, align 4, !tbaa !5
  %986 = call ptr @strerror(i32 noundef %985) #12
  %987 = load i32, ptr %966, align 4, !tbaa !5
  %988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %978, ptr noundef nonnull %.str.7.sink2067, i32 noundef %979, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.3, i32 noundef 138, ptr noundef %982, ptr noundef %984, ptr noundef %986, i32 noundef %987) #14
  call void @exit(i32 noundef 1) #15
  unreachable

989:                                              ; preds = %961
  %990 = load i32, ptr @test_count, align 4, !tbaa !5
  %991 = add nsw i32 %990, 1
  store i32 %991, ptr @test_count, align 4, !tbaa !5
  %992 = load i16, ptr %11, align 2, !tbaa !27
  %993 = load ptr, ptr %10, align 8, !tbaa !9
  %994 = getelementptr inbounds i8, ptr %993, i64 8
  %995 = load ptr, ptr %994, align 8, !tbaa !24
  %996 = load ptr, ptr %995, align 8, !tbaa !9
  %997 = load i16, ptr %996, align 8, !tbaa !28
  %998 = icmp eq i16 %992, %997
  br i1 %998, label %1023, label %999

999:                                              ; preds = %989
  %1000 = tail call ptr @__errno_location() #13
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1003 = call i32 @s2n_print_stacktrace(ptr noundef %1002) #12
  %1004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1005 = trunc nuw i8 %1004 to i1
  br i1 %1005, label %1006, label %1010

1006:                                             ; preds = %999
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = call i32 @fileno(ptr noundef %1007) #12
  %1009 = call i32 @isatty(i32 noundef %1008) #12
  %.not1273 = icmp eq i32 %1009, 0
  br i1 %.not1273, label %1010, label %1011

1010:                                             ; preds = %1006, %999
  br label %1011

1011:                                             ; preds = %1006, %1010
  %.str.7.sink2078 = phi ptr [ @.str.7, %1010 ], [ @.str.4, %1006 ]
  store i32 %1001, ptr %1000, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = load i32, ptr @test_count, align 4, !tbaa !5
  %1014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror(i32 noundef %1015, ptr noundef nonnull @.str.6) #12
  %1017 = load i32, ptr %1014, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror_debug(i32 noundef %1017, ptr noundef nonnull @.str.6) #12
  %1019 = load i32, ptr %1000, align 4, !tbaa !5
  %1020 = call ptr @strerror(i32 noundef %1019) #12
  %1021 = load i32, ptr %1000, align 4, !tbaa !5
  %1022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1012, ptr noundef nonnull %.str.7.sink2078, i32 noundef %1013, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.3, i32 noundef 139, ptr noundef %1016, ptr noundef %1018, ptr noundef %1020, i32 noundef %1021) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1023:                                             ; preds = %989
  %1024 = add nsw i32 %990, 2
  store i32 %1024, ptr @test_count, align 4, !tbaa !5
  %1025 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %8, ptr noundef nonnull %12) #12
  %1026 = icmp eq i32 %1025, -1
  br i1 %1026, label %1027, label %1051

1027:                                             ; preds = %1023
  %1028 = tail call ptr @__errno_location() #13
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = call i32 @s2n_print_stacktrace(ptr noundef %1030) #12
  %1032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1033 = trunc nuw i8 %1032 to i1
  br i1 %1033, label %1034, label %1038

1034:                                             ; preds = %1027
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = call i32 @fileno(ptr noundef %1035) #12
  %1037 = call i32 @isatty(i32 noundef %1036) #12
  %.not1699 = icmp eq i32 %1037, 0
  br i1 %.not1699, label %1038, label %1039

1038:                                             ; preds = %1034, %1027
  br label %1039

1039:                                             ; preds = %1034, %1038
  %.str.7.sink2089 = phi ptr [ @.str.7, %1038 ], [ @.str.4, %1034 ]
  store i32 %1029, ptr %1028, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = load i32, ptr @test_count, align 4, !tbaa !5
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror(i32 noundef %1043, ptr noundef nonnull @.str.6) #12
  %1045 = load i32, ptr %1042, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror_debug(i32 noundef %1045, ptr noundef nonnull @.str.6) #12
  %1047 = load i32, ptr %1028, align 4, !tbaa !5
  %1048 = call ptr @strerror(i32 noundef %1047) #12
  %1049 = load i32, ptr %1028, align 4, !tbaa !5
  %1050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1040, ptr noundef nonnull %.str.7.sink2089, i32 noundef %1041, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.3, i32 noundef 140, ptr noundef %1044, ptr noundef %1046, ptr noundef %1048, i32 noundef %1049) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1051:                                             ; preds = %1023
  %1052 = load i32, ptr @test_count, align 4, !tbaa !5
  %1053 = add nsw i32 %1052, 1
  store i32 %1053, ptr @test_count, align 4, !tbaa !5
  %1054 = load i16, ptr %12, align 2, !tbaa !27
  %1055 = load ptr, ptr %10, align 8, !tbaa !9
  %1056 = getelementptr inbounds i8, ptr %1055, i64 8
  %1057 = load ptr, ptr %1056, align 8, !tbaa !24
  %1058 = load ptr, ptr %1057, align 8, !tbaa !9
  %1059 = getelementptr inbounds i8, ptr %1058, i64 16
  %1060 = load i8, ptr %1059, align 8, !tbaa !30
  %1061 = zext i8 %1060 to i16
  %1062 = icmp eq i16 %1054, %1061
  br i1 %1062, label %1087, label %1063

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

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

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

1075:                                             ; preds = %1070, %1074
  %.str.7.sink2100 = phi ptr [ @.str.7, %1074 ], [ @.str.4, %1070 ]
  store i32 %1065, ptr %1064, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = load i32, ptr @test_count, align 4, !tbaa !5
  %1078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror(i32 noundef %1079, ptr noundef nonnull @.str.6) #12
  %1081 = load i32, ptr %1078, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror_debug(i32 noundef %1081, ptr noundef nonnull @.str.6) #12
  %1083 = load i32, ptr %1064, align 4, !tbaa !5
  %1084 = call ptr @strerror(i32 noundef %1083) #12
  %1085 = load i32, ptr %1064, align 4, !tbaa !5
  %1086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1076, ptr noundef nonnull %.str.7.sink2100, i32 noundef %1077, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.3, i32 noundef 141, ptr noundef %1080, ptr noundef %1082, ptr noundef %1084, i32 noundef %1085) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1087:                                             ; preds = %1051
  %1088 = add nsw i32 %1052, 2
  store i32 %1088, ptr @test_count, align 4, !tbaa !5
  %1089 = zext nneg i16 %1054 to i32
  %1090 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %8, i32 noundef %1089) #12
  %1091 = icmp eq i32 %1090, -1
  br i1 %1091, label %1092, label %1116

1092:                                             ; preds = %1087
  %1093 = tail call ptr @__errno_location() #13
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @s2n_print_stacktrace(ptr noundef %1095) #12
  %1097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1098 = trunc nuw i8 %1097 to i1
  br i1 %1098, label %1099, label %1103

1099:                                             ; preds = %1092
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @fileno(ptr noundef %1100) #12
  %1102 = call i32 @isatty(i32 noundef %1101) #12
  %.not1698 = icmp eq i32 %1102, 0
  br i1 %.not1698, label %1103, label %1104

1103:                                             ; preds = %1099, %1092
  br label %1104

1104:                                             ; preds = %1099, %1103
  %.str.7.sink2111 = phi ptr [ @.str.7, %1103 ], [ @.str.4, %1099 ]
  store i32 %1094, ptr %1093, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = 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(i32 noundef %1108, ptr noundef nonnull @.str.6) #12
  %1110 = load i32, ptr %1107, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror_debug(i32 noundef %1110, ptr noundef nonnull @.str.6) #12
  %1112 = load i32, ptr %1093, align 4, !tbaa !5
  %1113 = call ptr @strerror(i32 noundef %1112) #12
  %1114 = load i32, ptr %1093, align 4, !tbaa !5
  %1115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef nonnull %.str.7.sink2111, i32 noundef %1106, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.3, i32 noundef 143, ptr noundef %1109, ptr noundef %1111, ptr noundef %1113, i32 noundef %1114) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1116:                                             ; preds = %1087
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #12
  %1120 = icmp eq i32 %1119, -1
  br i1 %1120, label %1121, label %1145

1121:                                             ; preds = %1116
  %1122 = tail call ptr @__errno_location() #13
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @s2n_print_stacktrace(ptr noundef %1124) #12
  %1126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1127 = trunc nuw i8 %1126 to i1
  br i1 %1127, label %1128, label %1132

1128:                                             ; preds = %1121
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @fileno(ptr noundef %1129) #12
  %1131 = call i32 @isatty(i32 noundef %1130) #12
  %.not1697 = icmp eq i32 %1131, 0
  br i1 %.not1697, label %1132, label %1133

1132:                                             ; preds = %1128, %1121
  br label %1133

1133:                                             ; preds = %1128, %1132
  %.str.7.sink2122 = phi ptr [ @.str.7, %1132 ], [ @.str.4, %1128 ]
  store i32 %1123, ptr %1122, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror(i32 noundef %1137, ptr noundef nonnull @.str.6) #12
  %1139 = load i32, ptr %1136, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef nonnull @.str.6) #12
  %1141 = load i32, ptr %1122, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #12
  %1143 = load i32, ptr %1122, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1134, ptr noundef nonnull %.str.7.sink2122, i32 noundef %1135, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 145, ptr noundef %1138, ptr noundef %1140, ptr noundef %1142, i32 noundef %1143) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1145:                                             ; preds = %1116
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = add nsw i32 %1146, 1
  store i32 %1147, ptr @test_count, align 4, !tbaa !5
  %1148 = call i32 @s2n_connection_free(ptr noundef nonnull %728) #12
  %1149 = icmp eq i32 %1148, -1
  br i1 %1149, label %1150, label %1174

1150:                                             ; preds = %1145
  %1151 = tail call ptr @__errno_location() #13
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = call i32 @s2n_print_stacktrace(ptr noundef %1153) #12
  %1155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1156 = trunc nuw i8 %1155 to i1
  br i1 %1156, label %1157, label %1161

1157:                                             ; preds = %1150
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @fileno(ptr noundef %1158) #12
  %1160 = call i32 @isatty(i32 noundef %1159) #12
  %.not1696 = icmp eq i32 %1160, 0
  br i1 %.not1696, label %1161, label %1162

1161:                                             ; preds = %1157, %1150
  br label %1162

1162:                                             ; preds = %1157, %1161
  %.str.7.sink2133 = phi ptr [ @.str.7, %1161 ], [ @.str.4, %1157 ]
  store i32 %1152, ptr %1151, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call ptr @s2n_strerror(i32 noundef %1166, ptr noundef nonnull @.str.6) #12
  %1168 = load i32, ptr %1165, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef nonnull @.str.6) #12
  %1170 = load i32, ptr %1151, align 4, !tbaa !5
  %1171 = call ptr @strerror(i32 noundef %1170) #12
  %1172 = load i32, ptr %1151, align 4, !tbaa !5
  %1173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1163, ptr noundef nonnull %.str.7.sink2133, i32 noundef %1164, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 146, ptr noundef %1167, ptr noundef %1169, ptr noundef %1171, i32 noundef %1172) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1174:                                             ; preds = %1145
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #12
  %1175 = call i32 (...) @s2n_is_evp_apis_supported() #12
  %.not1275 = icmp eq i32 %1175, 0
  br i1 %.not1275, label %1524, label %1176

1176:                                             ; preds = %1174
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  %1177 = load i32, ptr @test_count, align 4, !tbaa !5
  %1178 = add nsw i32 %1177, 1
  store i32 %1178, ptr @test_count, align 4, !tbaa !5
  %1179 = call ptr @s2n_config_new() #12
  %1180 = icmp eq ptr %1179, null
  br i1 %1180, label %1181, label %1205

1181:                                             ; preds = %1176
  %1182 = tail call ptr @__errno_location() #13
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @s2n_print_stacktrace(ptr noundef %1184) #12
  %1186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1187 = trunc nuw i8 %1186 to i1
  br i1 %1187, label %1188, label %1192

1188:                                             ; preds = %1181
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @fileno(ptr noundef %1189) #12
  %1191 = call i32 @isatty(i32 noundef %1190) #12
  %.not1695 = icmp eq i32 %1191, 0
  br i1 %.not1695, label %1192, label %1193

1192:                                             ; preds = %1188, %1181
  br label %1193

1193:                                             ; preds = %1188, %1192
  %.str.7.sink2144 = phi ptr [ @.str.7, %1192 ], [ @.str.4, %1188 ]
  store i32 %1183, ptr %1182, align 4, !tbaa !5
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror(i32 noundef %1197, ptr noundef nonnull @.str.6) #12
  %1199 = load i32, ptr %1196, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror_debug(i32 noundef %1199, ptr noundef nonnull @.str.6) #12
  %1201 = load i32, ptr %1182, align 4, !tbaa !5
  %1202 = call ptr @strerror(i32 noundef %1201) #12
  %1203 = load i32, ptr %1182, align 4, !tbaa !5
  %1204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1194, ptr noundef nonnull %.str.7.sink2144, i32 noundef %1195, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.3, i32 noundef 155, ptr noundef %1198, ptr noundef %1200, ptr noundef %1202, i32 noundef %1203) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1205:                                             ; preds = %1176
  %1206 = load i32, ptr @test_count, align 4, !tbaa !5
  %1207 = add nsw i32 %1206, 1
  store i32 %1207, ptr @test_count, align 4, !tbaa !5
  %1208 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %1209 = icmp eq ptr %1208, null
  br i1 %1209, label %1210, label %1234

1210:                                             ; preds = %1205
  %1211 = tail call ptr @__errno_location() #13
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @s2n_print_stacktrace(ptr noundef %1213) #12
  %1215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1216 = trunc nuw i8 %1215 to i1
  br i1 %1216, label %1217, label %1221

1217:                                             ; preds = %1210
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = call i32 @fileno(ptr noundef %1218) #12
  %1220 = call i32 @isatty(i32 noundef %1219) #12
  %.not1694 = icmp eq i32 %1220, 0
  br i1 %.not1694, label %1221, label %1222

1221:                                             ; preds = %1217, %1210
  br label %1222

1222:                                             ; preds = %1217, %1221
  %.str.7.sink2155 = phi ptr [ @.str.7, %1221 ], [ @.str.4, %1217 ]
  store i32 %1212, ptr %1211, align 4, !tbaa !5
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = load i32, ptr @test_count, align 4, !tbaa !5
  %1225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror(i32 noundef %1226, ptr noundef nonnull @.str.6) #12
  %1228 = load i32, ptr %1225, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror_debug(i32 noundef %1228, ptr noundef nonnull @.str.6) #12
  %1230 = load i32, ptr %1211, align 4, !tbaa !5
  %1231 = call ptr @strerror(i32 noundef %1230) #12
  %1232 = load i32, ptr %1211, align 4, !tbaa !5
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1223, ptr noundef nonnull %.str.7.sink2155, i32 noundef %1224, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.3, i32 noundef 156, ptr noundef %1227, ptr noundef %1229, ptr noundef %1231, i32 noundef %1232) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1234:                                             ; preds = %1205
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = add nsw i32 %1235, 1
  store i32 %1236, ptr @test_count, align 4, !tbaa !5
  %1237 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1179, ptr noundef nonnull @.str.34) #12
  %1238 = icmp eq i32 %1237, -1
  br i1 %1238, label %1239, label %1263

1239:                                             ; preds = %1234
  %1240 = tail call ptr @__errno_location() #13
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = call i32 @s2n_print_stacktrace(ptr noundef %1242) #12
  %1244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1245 = trunc nuw i8 %1244 to i1
  br i1 %1245, label %1246, label %1250

1246:                                             ; preds = %1239
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @fileno(ptr noundef %1247) #12
  %1249 = call i32 @isatty(i32 noundef %1248) #12
  %.not1693 = icmp eq i32 %1249, 0
  br i1 %.not1693, label %1250, label %1251

1250:                                             ; preds = %1246, %1239
  br label %1251

1251:                                             ; preds = %1246, %1250
  %.str.7.sink2166 = phi ptr [ @.str.7, %1250 ], [ @.str.4, %1246 ]
  store i32 %1241, ptr %1240, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror(i32 noundef %1255, ptr noundef nonnull @.str.6) #12
  %1257 = load i32, ptr %1254, align 4, !tbaa !5
  %1258 = call ptr @s2n_strerror_debug(i32 noundef %1257, ptr noundef nonnull @.str.6) #12
  %1259 = load i32, ptr %1240, align 4, !tbaa !5
  %1260 = call ptr @strerror(i32 noundef %1259) #12
  %1261 = load i32, ptr %1240, align 4, !tbaa !5
  %1262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1252, ptr noundef nonnull %.str.7.sink2166, i32 noundef %1253, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.3, i32 noundef 158, ptr noundef %1256, ptr noundef %1258, ptr noundef %1260, i32 noundef %1261) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1263:                                             ; preds = %1234
  %1264 = load i32, ptr @test_count, align 4, !tbaa !5
  %1265 = add nsw i32 %1264, 1
  store i32 %1265, ptr @test_count, align 4, !tbaa !5
  %1266 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1208, ptr noundef nonnull %1179) #12
  %1267 = icmp eq i32 %1266, -1
  br i1 %1267, label %1268, label %1292

1268:                                             ; preds = %1263
  %1269 = tail call ptr @__errno_location() #13
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = call i32 @s2n_print_stacktrace(ptr noundef %1271) #12
  %1273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1274 = trunc nuw i8 %1273 to i1
  br i1 %1274, label %1275, label %1279

1275:                                             ; preds = %1268
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 @fileno(ptr noundef %1276) #12
  %1278 = call i32 @isatty(i32 noundef %1277) #12
  %.not1692 = icmp eq i32 %1278, 0
  br i1 %.not1692, label %1279, label %1280

1279:                                             ; preds = %1275, %1268
  br label %1280

1280:                                             ; preds = %1275, %1279
  %.str.7.sink2177 = phi ptr [ @.str.7, %1279 ], [ @.str.4, %1275 ]
  store i32 %1270, ptr %1269, align 4, !tbaa !5
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = load i32, ptr @test_count, align 4, !tbaa !5
  %1283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @s2n_strerror(i32 noundef %1284, ptr noundef nonnull @.str.6) #12
  %1286 = load i32, ptr %1283, align 4, !tbaa !5
  %1287 = call ptr @s2n_strerror_debug(i32 noundef %1286, ptr noundef nonnull @.str.6) #12
  %1288 = load i32, ptr %1269, align 4, !tbaa !5
  %1289 = call ptr @strerror(i32 noundef %1288) #12
  %1290 = load i32, ptr %1269, align 4, !tbaa !5
  %1291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1281, ptr noundef nonnull %.str.7.sink2177, i32 noundef %1282, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.3, i32 noundef 159, ptr noundef %1285, ptr noundef %1287, ptr noundef %1289, i32 noundef %1290) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1292:                                             ; preds = %1263
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  store ptr null, ptr %14, align 8, !tbaa !9
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = add nsw i32 %1293, 1
  store i32 %1294, ptr @test_count, align 4, !tbaa !5
  %1295 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1208, ptr noundef nonnull %14) #12
  %1296 = icmp eq i32 %1295, -1
  br i1 %1296, label %1297, label %1321

1297:                                             ; preds = %1292
  %1298 = tail call ptr @__errno_location() #13
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = call i32 @s2n_print_stacktrace(ptr noundef %1300) #12
  %1302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1303 = trunc nuw i8 %1302 to i1
  br i1 %1303, label %1304, label %1308

1304:                                             ; preds = %1297
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = call i32 @fileno(ptr noundef %1305) #12
  %1307 = call i32 @isatty(i32 noundef %1306) #12
  %.not1691 = icmp eq i32 %1307, 0
  br i1 %.not1691, label %1308, label %1309

1308:                                             ; preds = %1304, %1297
  br label %1309

1309:                                             ; preds = %1304, %1308
  %.str.7.sink2188 = phi ptr [ @.str.7, %1308 ], [ @.str.4, %1304 ]
  store i32 %1299, ptr %1298, align 4, !tbaa !5
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = load i32, ptr @test_count, align 4, !tbaa !5
  %1312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call ptr @s2n_strerror(i32 noundef %1313, ptr noundef nonnull @.str.6) #12
  %1315 = load i32, ptr %1312, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror_debug(i32 noundef %1315, ptr noundef nonnull @.str.6) #12
  %1317 = load i32, ptr %1298, align 4, !tbaa !5
  %1318 = call ptr @strerror(i32 noundef %1317) #12
  %1319 = load i32, ptr %1298, align 4, !tbaa !5
  %1320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1310, ptr noundef nonnull %.str.7.sink2188, i32 noundef %1311, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 162, ptr noundef %1314, ptr noundef %1316, ptr noundef %1318, i32 noundef %1319) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1321:                                             ; preds = %1292
  %1322 = load i32, ptr @test_count, align 4, !tbaa !5
  %1323 = add nsw i32 %1322, 1
  store i32 %1323, ptr @test_count, align 4, !tbaa !5
  %1324 = load ptr, ptr %14, align 8, !tbaa !9
  %1325 = icmp eq ptr %1324, null
  br i1 %1325, label %1326, label %1350

1326:                                             ; preds = %1321
  %1327 = tail call ptr @__errno_location() #13
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = call i32 @s2n_print_stacktrace(ptr noundef %1329) #12
  %1331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1332 = trunc nuw i8 %1331 to i1
  br i1 %1332, label %1333, label %1337

1333:                                             ; preds = %1326
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = call i32 @fileno(ptr noundef %1334) #12
  %1336 = call i32 @isatty(i32 noundef %1335) #12
  %.not1690 = icmp eq i32 %1336, 0
  br i1 %.not1690, label %1337, label %1338

1337:                                             ; preds = %1333, %1326
  br label %1338

1338:                                             ; preds = %1333, %1337
  %.str.7.sink2199 = phi ptr [ @.str.7, %1337 ], [ @.str.4, %1333 ]
  store i32 %1328, ptr %1327, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef nonnull @.str.6) #12
  %1344 = load i32, ptr %1341, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror_debug(i32 noundef %1344, ptr noundef nonnull @.str.6) #12
  %1346 = load i32, ptr %1327, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #12
  %1348 = load i32, ptr %1327, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef nonnull %.str.7.sink2199, i32 noundef %1340, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 163, ptr noundef %1343, ptr noundef %1345, ptr noundef %1347, i32 noundef %1348) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1350:                                             ; preds = %1321
  %1351 = add nsw i32 %1322, 2
  store i32 %1351, ptr @test_count, align 4, !tbaa !5
  %1352 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %13, i32 noundef 0) #12
  %1353 = icmp eq i32 %1352, -1
  br i1 %1353, label %1354, label %1378

1354:                                             ; preds = %1350
  %1355 = tail call ptr @__errno_location() #13
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @s2n_print_stacktrace(ptr noundef %1357) #12
  %1359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1360 = trunc nuw i8 %1359 to i1
  br i1 %1360, label %1361, label %1365

1361:                                             ; preds = %1354
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = call i32 @fileno(ptr noundef %1362) #12
  %1364 = call i32 @isatty(i32 noundef %1363) #12
  %.not1689 = icmp eq i32 %1364, 0
  br i1 %.not1689, label %1365, label %1366

1365:                                             ; preds = %1361, %1354
  br label %1366

1366:                                             ; preds = %1361, %1365
  %.str.7.sink2210 = phi ptr [ @.str.7, %1365 ], [ @.str.4, %1361 ]
  store i32 %1356, ptr %1355, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror(i32 noundef %1370, ptr noundef nonnull @.str.6) #12
  %1372 = load i32, ptr %1369, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror_debug(i32 noundef %1372, ptr noundef nonnull @.str.6) #12
  %1374 = load i32, ptr %1355, align 4, !tbaa !5
  %1375 = call ptr @strerror(i32 noundef %1374) #12
  %1376 = load i32, ptr %1355, align 4, !tbaa !5
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1367, ptr noundef nonnull %.str.7.sink2210, i32 noundef %1368, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 168, ptr noundef %1371, ptr noundef %1373, ptr noundef %1375, i32 noundef %1376) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1378:                                             ; preds = %1350
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = call i32 %343(ptr noundef nonnull %1208, ptr noundef nonnull %13) #12
  %1382 = icmp eq i32 %1381, -1
  br i1 %1382, label %1383, label %1407

1383:                                             ; preds = %1378
  %1384 = tail call ptr @__errno_location() #13
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = call i32 @s2n_print_stacktrace(ptr noundef %1386) #12
  %1388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1389 = trunc nuw i8 %1388 to i1
  br i1 %1389, label %1390, label %1394

1390:                                             ; preds = %1383
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @fileno(ptr noundef %1391) #12
  %1393 = call i32 @isatty(i32 noundef %1392) #12
  %.not1688 = icmp eq i32 %1393, 0
  br i1 %.not1688, label %1394, label %1395

1394:                                             ; preds = %1390, %1383
  br label %1395

1395:                                             ; preds = %1390, %1394
  %.str.7.sink2221 = phi ptr [ @.str.7, %1394 ], [ @.str.4, %1390 ]
  store i32 %1385, ptr %1384, align 4, !tbaa !5
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = load i32, ptr @test_count, align 4, !tbaa !5
  %1398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror(i32 noundef %1399, ptr noundef nonnull @.str.6) #12
  %1401 = load i32, ptr %1398, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror_debug(i32 noundef %1401, ptr noundef nonnull @.str.6) #12
  %1403 = load i32, ptr %1384, align 4, !tbaa !5
  %1404 = call ptr @strerror(i32 noundef %1403) #12
  %1405 = load i32, ptr %1384, align 4, !tbaa !5
  %1406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1396, ptr noundef nonnull %.str.7.sink2221, i32 noundef %1397, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.3, i32 noundef 170, ptr noundef %1400, ptr noundef %1402, ptr noundef %1404, i32 noundef %1405) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1407:                                             ; preds = %1378
  %1408 = getelementptr inbounds i8, ptr %1208, i64 704
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = add nsw i32 %1409, 1
  store i32 %1410, ptr @test_count, align 4, !tbaa !5
  %1411 = load ptr, ptr %1408, align 8, !tbaa !22
  %1412 = icmp eq ptr %1411, @s2n_ecc_curve_x25519
  br i1 %1412, label %1413, label %1437

1413:                                             ; preds = %1407
  %1414 = tail call ptr @__errno_location() #13
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = call i32 @s2n_print_stacktrace(ptr noundef %1416) #12
  %1418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1419 = trunc nuw i8 %1418 to i1
  br i1 %1419, label %1420, label %1424

1420:                                             ; preds = %1413
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = call i32 @fileno(ptr noundef %1421) #12
  %1423 = call i32 @isatty(i32 noundef %1422) #12
  %.not1687 = icmp eq i32 %1423, 0
  br i1 %.not1687, label %1424, label %1425

1424:                                             ; preds = %1420, %1413
  br label %1425

1425:                                             ; preds = %1420, %1424
  %.str.7.sink2232 = phi ptr [ @.str.7, %1424 ], [ @.str.4, %1420 ]
  store i32 %1415, ptr %1414, align 4, !tbaa !5
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = load i32, ptr @test_count, align 4, !tbaa !5
  %1428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror(i32 noundef %1429, ptr noundef nonnull @.str.6) #12
  %1431 = load i32, ptr %1428, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef nonnull @.str.6) #12
  %1433 = load i32, ptr %1414, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #12
  %1435 = load i32, ptr %1414, align 4, !tbaa !5
  %1436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1426, ptr noundef nonnull %.str.7.sink2232, i32 noundef %1427, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.3, i32 noundef 173, ptr noundef %1430, ptr noundef %1432, ptr noundef %1434, i32 noundef %1435) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1437:                                             ; preds = %1407
  %1438 = add nsw i32 %1409, 2
  store i32 %1438, ptr @test_count, align 4, !tbaa !5
  %1439 = call i32 @s2n_stuffer_free(ptr noundef nonnull %13) #12
  %1440 = icmp eq i32 %1439, -1
  br i1 %1440, label %1441, label %1465

1441:                                             ; preds = %1437
  %1442 = tail call ptr @__errno_location() #13
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = call i32 @s2n_print_stacktrace(ptr noundef %1444) #12
  %1446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1447 = trunc nuw i8 %1446 to i1
  br i1 %1447, label %1448, label %1452

1448:                                             ; preds = %1441
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @fileno(ptr noundef %1449) #12
  %1451 = call i32 @isatty(i32 noundef %1450) #12
  %.not1686 = icmp eq i32 %1451, 0
  br i1 %.not1686, label %1452, label %1453

1452:                                             ; preds = %1448, %1441
  br label %1453

1453:                                             ; preds = %1448, %1452
  %.str.7.sink2243 = phi ptr [ @.str.7, %1452 ], [ @.str.4, %1448 ]
  store i32 %1443, ptr %1442, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %1456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @s2n_strerror(i32 noundef %1457, ptr noundef nonnull @.str.6) #12
  %1459 = load i32, ptr %1456, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror_debug(i32 noundef %1459, ptr noundef nonnull @.str.6) #12
  %1461 = load i32, ptr %1442, align 4, !tbaa !5
  %1462 = call ptr @strerror(i32 noundef %1461) #12
  %1463 = load i32, ptr %1442, align 4, !tbaa !5
  %1464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1454, ptr noundef nonnull %.str.7.sink2243, i32 noundef %1455, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 175, ptr noundef %1458, ptr noundef %1460, ptr noundef %1462, i32 noundef %1463) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1465:                                             ; preds = %1437
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = add nsw i32 %1466, 1
  store i32 %1467, ptr @test_count, align 4, !tbaa !5
  %1468 = call i32 @s2n_connection_free(ptr noundef nonnull %1208) #12
  %1469 = icmp eq i32 %1468, -1
  br i1 %1469, label %1470, label %1494

1470:                                             ; preds = %1465
  %1471 = tail call ptr @__errno_location() #13
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @s2n_print_stacktrace(ptr noundef %1473) #12
  %1475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1476 = trunc nuw i8 %1475 to i1
  br i1 %1476, label %1477, label %1481

1477:                                             ; preds = %1470
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @fileno(ptr noundef %1478) #12
  %1480 = call i32 @isatty(i32 noundef %1479) #12
  %.not1685 = icmp eq i32 %1480, 0
  br i1 %.not1685, label %1481, label %1482

1481:                                             ; preds = %1477, %1470
  br label %1482

1482:                                             ; preds = %1477, %1481
  %.str.7.sink2254 = phi ptr [ @.str.7, %1481 ], [ @.str.4, %1477 ]
  store i32 %1472, ptr %1471, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror(i32 noundef %1486, ptr noundef nonnull @.str.6) #12
  %1488 = load i32, ptr %1485, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror_debug(i32 noundef %1488, ptr noundef nonnull @.str.6) #12
  %1490 = load i32, ptr %1471, align 4, !tbaa !5
  %1491 = call ptr @strerror(i32 noundef %1490) #12
  %1492 = load i32, ptr %1471, align 4, !tbaa !5
  %1493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef nonnull %.str.7.sink2254, i32 noundef %1484, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 176, ptr noundef %1487, ptr noundef %1489, ptr noundef %1491, i32 noundef %1492) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1494:                                             ; preds = %1465
  %1495 = load i32, ptr @test_count, align 4, !tbaa !5
  %1496 = add nsw i32 %1495, 1
  store i32 %1496, ptr @test_count, align 4, !tbaa !5
  %1497 = call i32 @s2n_config_free(ptr noundef nonnull %1179) #12
  %1498 = icmp eq i32 %1497, -1
  br i1 %1498, label %1499, label %1523

1499:                                             ; preds = %1494
  %1500 = tail call ptr @__errno_location() #13
  %1501 = load i32, ptr %1500, align 4, !tbaa !5
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = call i32 @s2n_print_stacktrace(ptr noundef %1502) #12
  %1504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1505 = trunc nuw i8 %1504 to i1
  br i1 %1505, label %1506, label %1510

1506:                                             ; preds = %1499
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = call i32 @fileno(ptr noundef %1507) #12
  %1509 = call i32 @isatty(i32 noundef %1508) #12
  %.not1684 = icmp eq i32 %1509, 0
  br i1 %.not1684, label %1510, label %1511

1510:                                             ; preds = %1506, %1499
  br label %1511

1511:                                             ; preds = %1506, %1510
  %.str.7.sink2265 = phi ptr [ @.str.7, %1510 ], [ @.str.4, %1506 ]
  store i32 %1501, ptr %1500, align 4, !tbaa !5
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = load i32, ptr @test_count, align 4, !tbaa !5
  %1514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror(i32 noundef %1515, ptr noundef nonnull @.str.6) #12
  %1517 = load i32, ptr %1514, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef nonnull @.str.6) #12
  %1519 = load i32, ptr %1500, align 4, !tbaa !5
  %1520 = call ptr @strerror(i32 noundef %1519) #12
  %1521 = load i32, ptr %1500, align 4, !tbaa !5
  %1522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1512, ptr noundef nonnull %.str.7.sink2265, i32 noundef %1513, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.3, i32 noundef 177, ptr noundef %1516, ptr noundef %1518, ptr noundef %1520, i32 noundef %1521) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1523:                                             ; preds = %1494
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #12
  br label %1524

1524:                                             ; preds = %1523, %1174
  %1525 = call i32 (...) @s2n_is_evp_apis_supported() #12
  %.not1276 = icmp eq i32 %1525, 0
  br i1 %.not1276, label %2268, label %1526

1526:                                             ; preds = %1524
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
  %1527 = load i32, ptr @test_count, align 4, !tbaa !5
  %1528 = add nsw i32 %1527, 1
  store i32 %1528, ptr @test_count, align 4, !tbaa !5
  %1529 = call ptr @s2n_config_new() #12
  %1530 = icmp eq ptr %1529, null
  br i1 %1530, label %1531, label %1555

1531:                                             ; preds = %1526
  %1532 = tail call ptr @__errno_location() #13
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @s2n_print_stacktrace(ptr noundef %1534) #12
  %1536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1537 = trunc nuw i8 %1536 to i1
  br i1 %1537, label %1538, label %1542

1538:                                             ; preds = %1531
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @fileno(ptr noundef %1539) #12
  %1541 = call i32 @isatty(i32 noundef %1540) #12
  %.not1683 = icmp eq i32 %1541, 0
  br i1 %.not1683, label %1542, label %1543

1542:                                             ; preds = %1538, %1531
  br label %1543

1543:                                             ; preds = %1538, %1542
  %.str.7.sink2276 = phi ptr [ @.str.7, %1542 ], [ @.str.4, %1538 ]
  store i32 %1533, ptr %1532, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror(i32 noundef %1547, ptr noundef nonnull @.str.6) #12
  %1549 = load i32, ptr %1546, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror_debug(i32 noundef %1549, ptr noundef nonnull @.str.6) #12
  %1551 = load i32, ptr %1532, align 4, !tbaa !5
  %1552 = call ptr @strerror(i32 noundef %1551) #12
  %1553 = load i32, ptr %1532, align 4, !tbaa !5
  %1554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef nonnull %.str.7.sink2276, i32 noundef %1545, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.3, i32 noundef 205, ptr noundef %1548, ptr noundef %1550, ptr noundef %1552, i32 noundef %1553) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1555:                                             ; preds = %1526
  %1556 = load i32, ptr @test_count, align 4, !tbaa !5
  %1557 = add nsw i32 %1556, 1
  store i32 %1557, ptr @test_count, align 4, !tbaa !5
  %1558 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %1559 = icmp eq ptr %1558, null
  br i1 %1559, label %1560, label %1584

1560:                                             ; preds = %1555
  %1561 = tail call ptr @__errno_location() #13
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = call i32 @s2n_print_stacktrace(ptr noundef %1563) #12
  %1565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1566 = trunc nuw i8 %1565 to i1
  br i1 %1566, label %1567, label %1571

1567:                                             ; preds = %1560
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = call i32 @fileno(ptr noundef %1568) #12
  %1570 = call i32 @isatty(i32 noundef %1569) #12
  %.not1682 = icmp eq i32 %1570, 0
  br i1 %.not1682, label %1571, label %1572

1571:                                             ; preds = %1567, %1560
  br label %1572

1572:                                             ; preds = %1567, %1571
  %.str.7.sink2287 = phi ptr [ @.str.7, %1571 ], [ @.str.4, %1567 ]
  store i32 %1562, ptr %1561, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror(i32 noundef %1576, ptr noundef nonnull @.str.6) #12
  %1578 = load i32, ptr %1575, align 4, !tbaa !5
  %1579 = call ptr @s2n_strerror_debug(i32 noundef %1578, ptr noundef nonnull @.str.6) #12
  %1580 = load i32, ptr %1561, align 4, !tbaa !5
  %1581 = call ptr @strerror(i32 noundef %1580) #12
  %1582 = load i32, ptr %1561, align 4, !tbaa !5
  %1583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1573, ptr noundef nonnull %.str.7.sink2287, i32 noundef %1574, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.3, i32 noundef 206, ptr noundef %1577, ptr noundef %1579, ptr noundef %1581, i32 noundef %1582) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1584:                                             ; preds = %1555
  %1585 = load i32, ptr @test_count, align 4, !tbaa !5
  %1586 = add nsw i32 %1585, 1
  store i32 %1586, ptr @test_count, align 4, !tbaa !5
  %1587 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1529, ptr noundef nonnull @.str.39) #12
  %1588 = icmp eq i32 %1587, -1
  br i1 %1588, label %1589, label %1613

1589:                                             ; preds = %1584
  %1590 = tail call ptr @__errno_location() #13
  %1591 = load i32, ptr %1590, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @s2n_print_stacktrace(ptr noundef %1592) #12
  %1594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1595 = trunc nuw i8 %1594 to i1
  br i1 %1595, label %1596, label %1600

1596:                                             ; preds = %1589
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = call i32 @fileno(ptr noundef %1597) #12
  %1599 = call i32 @isatty(i32 noundef %1598) #12
  %.not1681 = icmp eq i32 %1599, 0
  br i1 %.not1681, label %1600, label %1601

1600:                                             ; preds = %1596, %1589
  br label %1601

1601:                                             ; preds = %1596, %1600
  %.str.7.sink2298 = phi ptr [ @.str.7, %1600 ], [ @.str.4, %1596 ]
  store i32 %1591, ptr %1590, align 4, !tbaa !5
  %1602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror(i32 noundef %1605, ptr noundef nonnull @.str.6) #12
  %1607 = load i32, ptr %1604, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror_debug(i32 noundef %1607, ptr noundef nonnull @.str.6) #12
  %1609 = load i32, ptr %1590, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #12
  %1611 = load i32, ptr %1590, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1602, ptr noundef nonnull %.str.7.sink2298, i32 noundef %1603, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.3, i32 noundef 208, ptr noundef %1606, ptr noundef %1608, ptr noundef %1610, i32 noundef %1611) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1613:                                             ; preds = %1584
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = add nsw i32 %1614, 1
  store i32 %1615, ptr @test_count, align 4, !tbaa !5
  %1616 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1558, ptr noundef nonnull %1529) #12
  %1617 = icmp eq i32 %1616, -1
  br i1 %1617, label %1618, label %1642

1618:                                             ; preds = %1613
  %1619 = tail call ptr @__errno_location() #13
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @s2n_print_stacktrace(ptr noundef %1621) #12
  %1623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1624 = trunc nuw i8 %1623 to i1
  br i1 %1624, label %1625, label %1629

1625:                                             ; preds = %1618
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = call i32 @fileno(ptr noundef %1626) #12
  %1628 = call i32 @isatty(i32 noundef %1627) #12
  %.not1680 = icmp eq i32 %1628, 0
  br i1 %.not1680, label %1629, label %1630

1629:                                             ; preds = %1625, %1618
  br label %1630

1630:                                             ; preds = %1625, %1629
  %.str.7.sink2309 = phi ptr [ @.str.7, %1629 ], [ @.str.4, %1625 ]
  store i32 %1620, ptr %1619, align 4, !tbaa !5
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror(i32 noundef %1634, ptr noundef nonnull @.str.6) #12
  %1636 = load i32, ptr %1633, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror_debug(i32 noundef %1636, ptr noundef nonnull @.str.6) #12
  %1638 = load i32, ptr %1619, align 4, !tbaa !5
  %1639 = call ptr @strerror(i32 noundef %1638) #12
  %1640 = load i32, ptr %1619, align 4, !tbaa !5
  %1641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1631, ptr noundef nonnull %.str.7.sink2309, i32 noundef %1632, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.3, i32 noundef 209, ptr noundef %1635, ptr noundef %1637, ptr noundef %1639, i32 noundef %1640) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1642:                                             ; preds = %1613
  %1643 = load i32, ptr @test_count, align 4, !tbaa !5
  %1644 = add nsw i32 %1643, 1
  store i32 %1644, ptr @test_count, align 4, !tbaa !5
  %1645 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %15, i32 noundef 0) #12
  %1646 = icmp eq i32 %1645, -1
  br i1 %1646, label %1647, label %1671

1647:                                             ; preds = %1642
  %1648 = tail call ptr @__errno_location() #13
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = call i32 @s2n_print_stacktrace(ptr noundef %1650) #12
  %1652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1653 = trunc nuw i8 %1652 to i1
  br i1 %1653, label %1654, label %1658

1654:                                             ; preds = %1647
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = call i32 @fileno(ptr noundef %1655) #12
  %1657 = call i32 @isatty(i32 noundef %1656) #12
  %.not1679 = icmp eq i32 %1657, 0
  br i1 %.not1679, label %1658, label %1659

1658:                                             ; preds = %1654, %1647
  br label %1659

1659:                                             ; preds = %1654, %1658
  %.str.7.sink2320 = phi ptr [ @.str.7, %1658 ], [ @.str.4, %1654 ]
  store i32 %1649, ptr %1648, align 4, !tbaa !5
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = call ptr @s2n_strerror(i32 noundef %1663, ptr noundef nonnull @.str.6) #12
  %1665 = load i32, ptr %1662, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror_debug(i32 noundef %1665, ptr noundef nonnull @.str.6) #12
  %1667 = load i32, ptr %1648, align 4, !tbaa !5
  %1668 = call ptr @strerror(i32 noundef %1667) #12
  %1669 = load i32, ptr %1648, align 4, !tbaa !5
  %1670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1660, ptr noundef nonnull %.str.7.sink2320, i32 noundef %1661, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 211, ptr noundef %1664, ptr noundef %1666, ptr noundef %1668, i32 noundef %1669) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1671:                                             ; preds = %1642
  %1672 = getelementptr inbounds i8, ptr %1558, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %1672, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  store ptr null, ptr %16, align 8, !tbaa !9
  %1673 = load i32, ptr @test_count, align 4, !tbaa !5
  %1674 = add nsw i32 %1673, 1
  store i32 %1674, ptr @test_count, align 4, !tbaa !5
  %1675 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1558, ptr noundef nonnull %16) #12
  %1676 = icmp eq i32 %1675, -1
  br i1 %1676, label %1677, label %1701

1677:                                             ; preds = %1671
  %1678 = tail call ptr @__errno_location() #13
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = call i32 @s2n_print_stacktrace(ptr noundef %1680) #12
  %1682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1683 = trunc nuw i8 %1682 to i1
  br i1 %1683, label %1684, label %1688

1684:                                             ; preds = %1677
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @fileno(ptr noundef %1685) #12
  %1687 = call i32 @isatty(i32 noundef %1686) #12
  %.not1678 = icmp eq i32 %1687, 0
  br i1 %.not1678, label %1688, label %1689

1688:                                             ; preds = %1684, %1677
  br label %1689

1689:                                             ; preds = %1684, %1688
  %.str.7.sink2331 = phi ptr [ @.str.7, %1688 ], [ @.str.4, %1684 ]
  store i32 %1679, ptr %1678, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef nonnull @.str.6) #12
  %1695 = load i32, ptr %1692, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef nonnull @.str.6) #12
  %1697 = load i32, ptr %1678, align 4, !tbaa !5
  %1698 = call ptr @strerror(i32 noundef %1697) #12
  %1699 = load i32, ptr %1678, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef nonnull %.str.7.sink2331, i32 noundef %1691, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 217, ptr noundef %1694, ptr noundef %1696, ptr noundef %1698, i32 noundef %1699) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1701:                                             ; preds = %1671
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = add nsw i32 %1702, 1
  store i32 %1703, ptr @test_count, align 4, !tbaa !5
  %1704 = load ptr, ptr %16, align 8, !tbaa !9
  %1705 = icmp eq ptr %1704, null
  br i1 %1705, label %1706, label %1730

1706:                                             ; preds = %1701
  %1707 = tail call ptr @__errno_location() #13
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = call i32 @s2n_print_stacktrace(ptr noundef %1709) #12
  %1711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1712 = trunc nuw i8 %1711 to i1
  br i1 %1712, label %1713, label %1717

1713:                                             ; preds = %1706
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = call i32 @fileno(ptr noundef %1714) #12
  %1716 = call i32 @isatty(i32 noundef %1715) #12
  %.not1677 = icmp eq i32 %1716, 0
  br i1 %.not1677, label %1717, label %1718

1717:                                             ; preds = %1713, %1706
  br label %1718

1718:                                             ; preds = %1713, %1717
  %.str.7.sink2342 = phi ptr [ @.str.7, %1717 ], [ @.str.4, %1713 ]
  store i32 %1708, ptr %1707, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror(i32 noundef %1722, ptr noundef nonnull @.str.6) #12
  %1724 = load i32, ptr %1721, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror_debug(i32 noundef %1724, ptr noundef nonnull @.str.6) #12
  %1726 = load i32, ptr %1707, align 4, !tbaa !5
  %1727 = call ptr @strerror(i32 noundef %1726) #12
  %1728 = load i32, ptr %1707, align 4, !tbaa !5
  %1729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1719, ptr noundef nonnull %.str.7.sink2342, i32 noundef %1720, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 218, ptr noundef %1723, ptr noundef %1725, ptr noundef %1727, i32 noundef %1728) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1730:                                             ; preds = %1701
  %1731 = add nsw i32 %1702, 2
  store i32 %1731, ptr @test_count, align 4, !tbaa !5
  %1732 = call i32 %343(ptr noundef nonnull %1558, ptr noundef nonnull %15) #12
  %1733 = icmp eq i32 %1732, -1
  br i1 %1733, label %1734, label %1758

1734:                                             ; preds = %1730
  %1735 = tail call ptr @__errno_location() #13
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @s2n_print_stacktrace(ptr noundef %1737) #12
  %1739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1740 = trunc nuw i8 %1739 to i1
  br i1 %1740, label %1741, label %1745

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

1745:                                             ; preds = %1741, %1734
  br label %1746

1746:                                             ; preds = %1741, %1745
  %.str.7.sink2353 = phi ptr [ @.str.7, %1745 ], [ @.str.4, %1741 ]
  store i32 %1736, ptr %1735, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror(i32 noundef %1750, ptr noundef nonnull @.str.6) #12
  %1752 = load i32, ptr %1749, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror_debug(i32 noundef %1752, ptr noundef nonnull @.str.6) #12
  %1754 = load i32, ptr %1735, align 4, !tbaa !5
  %1755 = call ptr @strerror(i32 noundef %1754) #12
  %1756 = load i32, ptr %1735, align 4, !tbaa !5
  %1757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1747, ptr noundef nonnull %.str.7.sink2353, i32 noundef %1748, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.3, i32 noundef 220, ptr noundef %1751, ptr noundef %1753, ptr noundef %1755, i32 noundef %1756) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1758:                                             ; preds = %1730
  %1759 = getelementptr inbounds i8, ptr %1558, i64 1650
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(32) %1759, ptr noundef nonnull align 16 dereferenceable(32) @hello_retry_req_random, i64 32, i1 false)
  %1760 = load i32, ptr @test_count, align 4, !tbaa !5
  %1761 = add nsw i32 %1760, 1
  store i32 %1761, ptr @test_count, align 4, !tbaa !5
  %1762 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %1558, i8 noundef zeroext 34) #12
  %1763 = icmp eq i32 %1762, -1
  br i1 %1763, label %1764, label %1788

1764:                                             ; preds = %1758
  %1765 = tail call ptr @__errno_location() #13
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = call i32 @s2n_print_stacktrace(ptr noundef %1767) #12
  %1769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1770 = trunc nuw i8 %1769 to i1
  br i1 %1770, label %1771, label %1775

1771:                                             ; preds = %1764
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = call i32 @fileno(ptr noundef %1772) #12
  %1774 = call i32 @isatty(i32 noundef %1773) #12
  %.not1675 = icmp eq i32 %1774, 0
  br i1 %.not1675, label %1775, label %1776

1775:                                             ; preds = %1771, %1764
  br label %1776

1776:                                             ; preds = %1771, %1775
  %.str.7.sink2364 = phi ptr [ @.str.7, %1775 ], [ @.str.4, %1771 ]
  store i32 %1766, ptr %1765, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror(i32 noundef %1780, ptr noundef nonnull @.str.6) #12
  %1782 = load i32, ptr %1779, align 4, !tbaa !5
  %1783 = call ptr @s2n_strerror_debug(i32 noundef %1782, ptr noundef nonnull @.str.6) #12
  %1784 = load i32, ptr %1765, align 4, !tbaa !5
  %1785 = call ptr @strerror(i32 noundef %1784) #12
  %1786 = load i32, ptr %1765, align 4, !tbaa !5
  %1787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1777, ptr noundef nonnull %.str.7.sink2364, i32 noundef %1778, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.3, i32 noundef 224, ptr noundef %1781, ptr noundef %1783, ptr noundef %1785, i32 noundef %1786) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1788:                                             ; preds = %1758
  %1789 = load i32, ptr @test_count, align 4, !tbaa !5
  %1790 = add nsw i32 %1789, 1
  store i32 %1790, ptr @test_count, align 4, !tbaa !5
  %1791 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %1558) #12
  %1792 = icmp eq i32 %1791, -1
  br i1 %1792, label %1793, label %1817

1793:                                             ; preds = %1788
  %1794 = tail call ptr @__errno_location() #13
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1797 = call i32 @s2n_print_stacktrace(ptr noundef %1796) #12
  %1798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1799 = trunc nuw i8 %1798 to i1
  br i1 %1799, label %1800, label %1804

1800:                                             ; preds = %1793
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = call i32 @fileno(ptr noundef %1801) #12
  %1803 = call i32 @isatty(i32 noundef %1802) #12
  %.not1674 = icmp eq i32 %1803, 0
  br i1 %.not1674, label %1804, label %1805

1804:                                             ; preds = %1800, %1793
  br label %1805

1805:                                             ; preds = %1800, %1804
  %.str.7.sink2375 = phi ptr [ @.str.7, %1804 ], [ @.str.4, %1800 ]
  store i32 %1795, ptr %1794, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror(i32 noundef %1809, ptr noundef nonnull @.str.6) #12
  %1811 = load i32, ptr %1808, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror_debug(i32 noundef %1811, ptr noundef nonnull @.str.6) #12
  %1813 = load i32, ptr %1794, align 4, !tbaa !5
  %1814 = call ptr @strerror(i32 noundef %1813) #12
  %1815 = load i32, ptr %1794, align 4, !tbaa !5
  %1816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1806, ptr noundef nonnull %.str.7.sink2375, i32 noundef %1807, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.3, i32 noundef 225, ptr noundef %1810, ptr noundef %1812, ptr noundef %1814, i32 noundef %1815) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1817:                                             ; preds = %1788
  %1818 = getelementptr inbounds i8, ptr %1558, i64 656
  store ptr @s2n_ecc_curve_x25519, ptr %1818, align 8, !tbaa !54
  %1819 = load i32, ptr @test_count, align 4, !tbaa !5
  %1820 = add nsw i32 %1819, 1
  store i32 %1820, ptr @test_count, align 4, !tbaa !5
  %1821 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #12
  %1822 = icmp eq i32 %1821, -1
  br i1 %1822, label %1823, label %1847

1823:                                             ; preds = %1817
  %1824 = tail call ptr @__errno_location() #13
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = call i32 @s2n_print_stacktrace(ptr noundef %1826) #12
  %1828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1829 = trunc nuw i8 %1828 to i1
  br i1 %1829, label %1830, label %1834

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

1834:                                             ; preds = %1830, %1823
  br label %1835

1835:                                             ; preds = %1830, %1834
  %.str.7.sink2386 = phi ptr [ @.str.7, %1834 ], [ @.str.4, %1830 ]
  store i32 %1825, ptr %1824, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = load i32, ptr @test_count, align 4, !tbaa !5
  %1838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror(i32 noundef %1839, ptr noundef nonnull @.str.6) #12
  %1841 = load i32, ptr %1838, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror_debug(i32 noundef %1841, ptr noundef nonnull @.str.6) #12
  %1843 = load i32, ptr %1824, align 4, !tbaa !5
  %1844 = call ptr @strerror(i32 noundef %1843) #12
  %1845 = load i32, ptr %1824, align 4, !tbaa !5
  %1846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1836, ptr noundef nonnull %.str.7.sink2386, i32 noundef %1837, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 228, ptr noundef %1840, ptr noundef %1842, ptr noundef %1844, i32 noundef %1845) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1847:                                             ; preds = %1817
  %1848 = load i32, ptr @test_count, align 4, !tbaa !5
  %1849 = add nsw i32 %1848, 1
  store i32 %1849, ptr @test_count, align 4, !tbaa !5
  %1850 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %15, i32 noundef 0) #12
  %1851 = icmp eq i32 %1850, -1
  br i1 %1851, label %1852, label %1876

1852:                                             ; preds = %1847
  %1853 = tail call ptr @__errno_location() #13
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = call i32 @s2n_print_stacktrace(ptr noundef %1855) #12
  %1857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1858 = trunc nuw i8 %1857 to i1
  br i1 %1858, label %1859, label %1863

1859:                                             ; preds = %1852
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = call i32 @fileno(ptr noundef %1860) #12
  %1862 = call i32 @isatty(i32 noundef %1861) #12
  %.not1672 = icmp eq i32 %1862, 0
  br i1 %.not1672, label %1863, label %1864

1863:                                             ; preds = %1859, %1852
  br label %1864

1864:                                             ; preds = %1859, %1863
  %.str.7.sink2397 = phi ptr [ @.str.7, %1863 ], [ @.str.4, %1859 ]
  store i32 %1854, ptr %1853, align 4, !tbaa !5
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = load i32, ptr @test_count, align 4, !tbaa !5
  %1867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1868 = load i32, ptr %1867, align 4, !tbaa !5
  %1869 = call ptr @s2n_strerror(i32 noundef %1868, ptr noundef nonnull @.str.6) #12
  %1870 = load i32, ptr %1867, align 4, !tbaa !5
  %1871 = call ptr @s2n_strerror_debug(i32 noundef %1870, ptr noundef nonnull @.str.6) #12
  %1872 = load i32, ptr %1853, align 4, !tbaa !5
  %1873 = call ptr @strerror(i32 noundef %1872) #12
  %1874 = load i32, ptr %1853, align 4, !tbaa !5
  %1875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1865, ptr noundef nonnull %.str.7.sink2397, i32 noundef %1866, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 229, ptr noundef %1869, ptr noundef %1871, ptr noundef %1873, i32 noundef %1874) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1876:                                             ; preds = %1847
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = add nsw i32 %1877, 1
  store i32 %1878, ptr @test_count, align 4, !tbaa !5
  %1879 = call i32 %343(ptr noundef nonnull %1558, ptr noundef nonnull %15) #12
  %1880 = icmp eq i32 %1879, -1
  br i1 %1880, label %1881, label %1905

1881:                                             ; preds = %1876
  %1882 = tail call ptr @__errno_location() #13
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = call i32 @s2n_print_stacktrace(ptr noundef %1884) #12
  %1886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1887 = trunc nuw i8 %1886 to i1
  br i1 %1887, label %1888, label %1892

1888:                                             ; preds = %1881
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = call i32 @fileno(ptr noundef %1889) #12
  %1891 = call i32 @isatty(i32 noundef %1890) #12
  %.not1671 = icmp eq i32 %1891, 0
  br i1 %.not1671, label %1892, label %1893

1892:                                             ; preds = %1888, %1881
  br label %1893

1893:                                             ; preds = %1888, %1892
  %.str.7.sink2408 = phi ptr [ @.str.7, %1892 ], [ @.str.4, %1888 ]
  store i32 %1883, ptr %1882, 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 nonnull @.str.6) #12
  %1899 = load i32, ptr %1896, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror_debug(i32 noundef %1899, ptr noundef nonnull @.str.6) #12
  %1901 = load i32, ptr %1882, align 4, !tbaa !5
  %1902 = call ptr @strerror(i32 noundef %1901) #12
  %1903 = load i32, ptr %1882, align 4, !tbaa !5
  %1904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef nonnull %.str.7.sink2408, i32 noundef %1895, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.3, i32 noundef 231, ptr noundef %1898, ptr noundef %1900, ptr noundef %1902, i32 noundef %1903) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1905:                                             ; preds = %1876
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %17) #12
  store i16 0, ptr %17, align 2, !tbaa !27
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = add nsw i32 %1906, 1
  store i32 %1907, ptr @test_count, align 4, !tbaa !5
  %1908 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %17) #12
  %1909 = icmp eq i32 %1908, -1
  br i1 %1909, label %1910, label %1934

1910:                                             ; preds = %1905
  %1911 = tail call ptr @__errno_location() #13
  %1912 = load i32, ptr %1911, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = call i32 @s2n_print_stacktrace(ptr noundef %1913) #12
  %1915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1916 = trunc nuw i8 %1915 to i1
  br i1 %1916, label %1917, label %1921

1917:                                             ; preds = %1910
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = call i32 @fileno(ptr noundef %1918) #12
  %1920 = call i32 @isatty(i32 noundef %1919) #12
  %.not1670 = icmp eq i32 %1920, 0
  br i1 %.not1670, label %1921, label %1922

1921:                                             ; preds = %1917, %1910
  br label %1922

1922:                                             ; preds = %1917, %1921
  %.str.7.sink2419 = phi ptr [ @.str.7, %1921 ], [ @.str.4, %1917 ]
  store i32 %1912, ptr %1911, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = load i32, ptr @test_count, align 4, !tbaa !5
  %1925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = call ptr @s2n_strerror(i32 noundef %1926, ptr noundef nonnull @.str.6) #12
  %1928 = load i32, ptr %1925, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror_debug(i32 noundef %1928, ptr noundef nonnull @.str.6) #12
  %1930 = load i32, ptr %1911, align 4, !tbaa !5
  %1931 = call ptr @strerror(i32 noundef %1930) #12
  %1932 = load i32, ptr %1911, align 4, !tbaa !5
  %1933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1923, ptr noundef nonnull %.str.7.sink2419, i32 noundef %1924, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.3, i32 noundef 234, ptr noundef %1927, ptr noundef %1929, ptr noundef %1931, i32 noundef %1932) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1934:                                             ; preds = %1905
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = add nsw i32 %1935, 1
  store i32 %1936, ptr @test_count, align 4, !tbaa !5
  %1937 = getelementptr inbounds i8, ptr %15, i64 28
  %1938 = load i32, ptr %1937, align 4, !tbaa !18
  %1939 = getelementptr inbounds i8, ptr %15, i64 24
  %1940 = load i32, ptr %1939, align 8, !tbaa !21
  %1941 = sub i32 %1938, %1940
  %1942 = load i16, ptr %17, align 2, !tbaa !27
  %1943 = zext i16 %1942 to i32
  %1944 = icmp eq i32 %1941, %1943
  br i1 %1944, label %1969, label %1945

1945:                                             ; preds = %1934
  %1946 = tail call ptr @__errno_location() #13
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = call i32 @s2n_print_stacktrace(ptr noundef %1948) #12
  %1950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1951 = trunc nuw i8 %1950 to i1
  br i1 %1951, label %1952, label %1956

1952:                                             ; preds = %1945
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = call i32 @fileno(ptr noundef %1953) #12
  %1955 = call i32 @isatty(i32 noundef %1954) #12
  %.not1277 = icmp eq i32 %1955, 0
  br i1 %.not1277, label %1956, label %1957

1956:                                             ; preds = %1952, %1945
  br label %1957

1957:                                             ; preds = %1952, %1956
  %.str.7.sink2430 = phi ptr [ @.str.7, %1956 ], [ @.str.4, %1952 ]
  store i32 %1947, ptr %1946, align 4, !tbaa !5
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = load i32, ptr @test_count, align 4, !tbaa !5
  %1960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @s2n_strerror(i32 noundef %1961, ptr noundef nonnull @.str.6) #12
  %1963 = load i32, ptr %1960, align 4, !tbaa !5
  %1964 = call ptr @s2n_strerror_debug(i32 noundef %1963, ptr noundef nonnull @.str.6) #12
  %1965 = load i32, ptr %1946, align 4, !tbaa !5
  %1966 = call ptr @strerror(i32 noundef %1965) #12
  %1967 = load i32, ptr %1946, align 4, !tbaa !5
  %1968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1958, ptr noundef nonnull %.str.7.sink2430, i32 noundef %1959, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.3, i32 noundef 235, ptr noundef %1962, ptr noundef %1964, ptr noundef %1966, i32 noundef %1967) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1969:                                             ; preds = %1934
  %1970 = add nsw i32 %1935, 2
  store i32 %1970, ptr @test_count, align 4, !tbaa !5
  %1971 = load ptr, ptr %1818, align 8, !tbaa !54
  %1972 = getelementptr inbounds i8, ptr %1971, i64 16
  %1973 = load i8, ptr %1972, align 8, !tbaa !30
  %1974 = zext i8 %1973 to i32
  %1975 = add nuw nsw i32 %1974, 4
  %1976 = icmp eq i32 %1975, %1941
  br i1 %1976, label %2001, label %1977

1977:                                             ; preds = %1969
  %1978 = tail call ptr @__errno_location() #13
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = call i32 @s2n_print_stacktrace(ptr noundef %1980) #12
  %1982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1983 = trunc nuw i8 %1982 to i1
  br i1 %1983, label %1984, label %1988

1984:                                             ; preds = %1977
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @fileno(ptr noundef %1985) #12
  %1987 = call i32 @isatty(i32 noundef %1986) #12
  %.not1278 = icmp eq i32 %1987, 0
  br i1 %.not1278, label %1988, label %1989

1988:                                             ; preds = %1984, %1977
  br label %1989

1989:                                             ; preds = %1984, %1988
  %.str.7.sink2441 = phi ptr [ @.str.7, %1988 ], [ @.str.4, %1984 ]
  store i32 %1979, ptr %1978, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1993 = load i32, ptr %1992, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror(i32 noundef %1993, ptr noundef nonnull @.str.6) #12
  %1995 = load i32, ptr %1992, align 4, !tbaa !5
  %1996 = call ptr @s2n_strerror_debug(i32 noundef %1995, ptr noundef nonnull @.str.6) #12
  %1997 = load i32, ptr %1978, align 4, !tbaa !5
  %1998 = call ptr @strerror(i32 noundef %1997) #12
  %1999 = load i32, ptr %1978, align 4, !tbaa !5
  %2000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1990, ptr noundef nonnull %.str.7.sink2441, i32 noundef %1991, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.3, i32 noundef 239, ptr noundef %1994, ptr noundef %1996, ptr noundef %1998, i32 noundef %1999) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2001:                                             ; preds = %1969
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %18) #12
  store i16 0, ptr %18, align 2, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %19) #12
  store i16 0, ptr %19, align 2, !tbaa !27
  %2002 = add nsw i32 %1935, 3
  store i32 %2002, ptr @test_count, align 4, !tbaa !5
  %2003 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %18) #12
  %2004 = icmp eq i32 %2003, -1
  br i1 %2004, label %2005, label %2029

2005:                                             ; preds = %2001
  %2006 = tail call ptr @__errno_location() #13
  %2007 = load i32, ptr %2006, align 4, !tbaa !5
  %2008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2009 = call i32 @s2n_print_stacktrace(ptr noundef %2008) #12
  %2010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2011 = trunc nuw i8 %2010 to i1
  br i1 %2011, label %2012, label %2016

2012:                                             ; preds = %2005
  %2013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2014 = call i32 @fileno(ptr noundef %2013) #12
  %2015 = call i32 @isatty(i32 noundef %2014) #12
  %.not1669 = icmp eq i32 %2015, 0
  br i1 %.not1669, label %2016, label %2017

2016:                                             ; preds = %2012, %2005
  br label %2017

2017:                                             ; preds = %2012, %2016
  %.str.7.sink2452 = phi ptr [ @.str.7, %2016 ], [ @.str.4, %2012 ]
  store i32 %2007, ptr %2006, align 4, !tbaa !5
  %2018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2019 = load i32, ptr @test_count, align 4, !tbaa !5
  %2020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror(i32 noundef %2021, ptr noundef nonnull @.str.6) #12
  %2023 = load i32, ptr %2020, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef nonnull @.str.6) #12
  %2025 = load i32, ptr %2006, align 4, !tbaa !5
  %2026 = call ptr @strerror(i32 noundef %2025) #12
  %2027 = load i32, ptr %2006, align 4, !tbaa !5
  %2028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2018, ptr noundef nonnull %.str.7.sink2452, i32 noundef %2019, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.3, i32 noundef 242, ptr noundef %2022, ptr noundef %2024, ptr noundef %2026, i32 noundef %2027) #14
  call void @exit(i32 noundef 1) #15
  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_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %19) #12
  %2033 = icmp eq i32 %2032, -1
  br i1 %2033, label %2034, label %2058

2034:                                             ; preds = %2029
  %2035 = tail call ptr @__errno_location() #13
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @s2n_print_stacktrace(ptr noundef %2037) #12
  %2039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2040 = trunc nuw i8 %2039 to i1
  br i1 %2040, label %2041, label %2045

2041:                                             ; preds = %2034
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = call i32 @fileno(ptr noundef %2042) #12
  %2044 = call i32 @isatty(i32 noundef %2043) #12
  %.not1668 = icmp eq i32 %2044, 0
  br i1 %.not1668, label %2045, label %2046

2045:                                             ; preds = %2041, %2034
  br label %2046

2046:                                             ; preds = %2041, %2045
  %.str.7.sink2463 = phi ptr [ @.str.7, %2045 ], [ @.str.4, %2041 ]
  store i32 %2036, ptr %2035, align 4, !tbaa !5
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %2049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @s2n_strerror(i32 noundef %2050, ptr noundef nonnull @.str.6) #12
  %2052 = load i32, ptr %2049, align 4, !tbaa !5
  %2053 = call ptr @s2n_strerror_debug(i32 noundef %2052, ptr noundef nonnull @.str.6) #12
  %2054 = load i32, ptr %2035, align 4, !tbaa !5
  %2055 = call ptr @strerror(i32 noundef %2054) #12
  %2056 = load i32, ptr %2035, align 4, !tbaa !5
  %2057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2047, ptr noundef nonnull %.str.7.sink2463, i32 noundef %2048, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.3, i32 noundef 243, ptr noundef %2051, ptr noundef %2053, ptr noundef %2055, i32 noundef %2056) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2058:                                             ; preds = %2029
  %2059 = load ptr, ptr %1818, align 8, !tbaa !54
  %2060 = getelementptr inbounds i8, ptr %2059, i64 16
  %2061 = load i8, ptr %2060, align 8, !tbaa !30
  %2062 = zext i8 %2061 to i32
  %2063 = add nuw nsw i32 %2062, 4
  %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 i16, ptr %18, align 2, !tbaa !27
  %2067 = load i16, ptr %2059, align 8, !tbaa !28
  %2068 = icmp eq i16 %2066, %2067
  br i1 %2068, label %2093, label %2069

2069:                                             ; preds = %2058
  %2070 = tail call ptr @__errno_location() #13
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = call i32 @s2n_print_stacktrace(ptr noundef %2072) #12
  %2074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2075 = trunc nuw i8 %2074 to i1
  br i1 %2075, label %2076, label %2080

2076:                                             ; preds = %2069
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @fileno(ptr noundef %2077) #12
  %2079 = call i32 @isatty(i32 noundef %2078) #12
  %.not1279 = icmp eq i32 %2079, 0
  br i1 %.not1279, label %2080, label %2081

2080:                                             ; preds = %2076, %2069
  br label %2081

2081:                                             ; preds = %2076, %2080
  %.str.7.sink2474 = phi ptr [ @.str.7, %2080 ], [ @.str.4, %2076 ]
  store i32 %2071, ptr %2070, align 4, !tbaa !5
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = load i32, ptr @test_count, align 4, !tbaa !5
  %2084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call ptr @s2n_strerror(i32 noundef %2085, ptr noundef nonnull @.str.6) #12
  %2087 = load i32, ptr %2084, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror_debug(i32 noundef %2087, ptr noundef nonnull @.str.6) #12
  %2089 = load i32, ptr %2070, align 4, !tbaa !5
  %2090 = call ptr @strerror(i32 noundef %2089) #12
  %2091 = load i32, ptr %2070, align 4, !tbaa !5
  %2092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2082, ptr noundef nonnull %.str.7.sink2474, i32 noundef %2083, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.3, i32 noundef 247, ptr noundef %2086, ptr noundef %2088, ptr noundef %2090, i32 noundef %2091) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2093:                                             ; preds = %2058
  %2094 = add nsw i32 %2064, 2
  store i32 %2094, ptr @test_count, align 4, !tbaa !5
  %2095 = load i16, ptr %19, align 2, !tbaa !27
  %2096 = zext i8 %2061 to i16
  %2097 = icmp eq i16 %2095, %2096
  br i1 %2097, label %2122, label %2098

2098:                                             ; preds = %2093
  %2099 = tail call ptr @__errno_location() #13
  %2100 = load i32, ptr %2099, align 4, !tbaa !5
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = call i32 @s2n_print_stacktrace(ptr noundef %2101) #12
  %2103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2104 = trunc nuw i8 %2103 to i1
  br i1 %2104, label %2105, label %2109

2105:                                             ; preds = %2098
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = call i32 @fileno(ptr noundef %2106) #12
  %2108 = call i32 @isatty(i32 noundef %2107) #12
  %.not1280 = icmp eq i32 %2108, 0
  br i1 %.not1280, label %2109, label %2110

2109:                                             ; preds = %2105, %2098
  br label %2110

2110:                                             ; preds = %2105, %2109
  %.str.7.sink2485 = phi ptr [ @.str.7, %2109 ], [ @.str.4, %2105 ]
  store i32 %2100, ptr %2099, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = load i32, ptr @test_count, align 4, !tbaa !5
  %2113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = call ptr @s2n_strerror(i32 noundef %2114, ptr noundef nonnull @.str.6) #12
  %2116 = load i32, ptr %2113, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror_debug(i32 noundef %2116, ptr noundef nonnull @.str.6) #12
  %2118 = load i32, ptr %2099, align 4, !tbaa !5
  %2119 = call ptr @strerror(i32 noundef %2118) #12
  %2120 = load i32, ptr %2099, align 4, !tbaa !5
  %2121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2111, ptr noundef nonnull %.str.7.sink2485, i32 noundef %2112, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.3, i32 noundef 248, ptr noundef %2115, ptr noundef %2117, ptr noundef %2119, i32 noundef %2120) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2122:                                             ; preds = %2093
  %2123 = add nsw i32 %2064, 3
  store i32 %2123, ptr @test_count, align 4, !tbaa !5
  %2124 = zext nneg i16 %2095 to i32
  %2125 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %15, i32 noundef %2124) #12
  %2126 = icmp eq i32 %2125, -1
  br i1 %2126, label %2127, label %2151

2127:                                             ; preds = %2122
  %2128 = tail call ptr @__errno_location() #13
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = call i32 @s2n_print_stacktrace(ptr noundef %2130) #12
  %2132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2133 = trunc nuw i8 %2132 to i1
  br i1 %2133, label %2134, label %2138

2134:                                             ; preds = %2127
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = call i32 @fileno(ptr noundef %2135) #12
  %2137 = call i32 @isatty(i32 noundef %2136) #12
  %.not1667 = icmp eq i32 %2137, 0
  br i1 %.not1667, label %2138, label %2139

2138:                                             ; preds = %2134, %2127
  br label %2139

2139:                                             ; preds = %2134, %2138
  %.str.7.sink2496 = phi ptr [ @.str.7, %2138 ], [ @.str.4, %2134 ]
  store i32 %2129, ptr %2128, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = load i32, ptr @test_count, align 4, !tbaa !5
  %2142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror(i32 noundef %2143, ptr noundef nonnull @.str.6) #12
  %2145 = load i32, ptr %2142, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror_debug(i32 noundef %2145, ptr noundef nonnull @.str.6) #12
  %2147 = load i32, ptr %2128, align 4, !tbaa !5
  %2148 = call ptr @strerror(i32 noundef %2147) #12
  %2149 = load i32, ptr %2128, align 4, !tbaa !5
  %2150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2140, ptr noundef nonnull %.str.7.sink2496, i32 noundef %2141, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.3, i32 noundef 249, ptr noundef %2144, ptr noundef %2146, ptr noundef %2148, i32 noundef %2149) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2151:                                             ; preds = %2122
  %2152 = load i32, ptr @test_count, align 4, !tbaa !5
  %2153 = add nsw i32 %2152, 1
  store i32 %2153, ptr @test_count, align 4, !tbaa !5
  %2154 = load i16, ptr %17, align 2, !tbaa !27
  %2155 = zext i16 %2154 to i32
  %2156 = icmp eq i32 %2063, %2155
  br i1 %2156, label %2181, label %2157

2157:                                             ; preds = %2151
  %2158 = tail call ptr @__errno_location() #13
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = call i32 @s2n_print_stacktrace(ptr noundef %2160) #12
  %2162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2163 = trunc nuw i8 %2162 to i1
  br i1 %2163, label %2164, label %2168

2164:                                             ; preds = %2157
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = call i32 @fileno(ptr noundef %2165) #12
  %2167 = call i32 @isatty(i32 noundef %2166) #12
  %.not1281 = icmp eq i32 %2167, 0
  br i1 %.not1281, label %2168, label %2169

2168:                                             ; preds = %2164, %2157
  br label %2169

2169:                                             ; preds = %2164, %2168
  %.str.7.sink2507 = phi ptr [ @.str.7, %2168 ], [ @.str.4, %2164 ]
  store i32 %2159, ptr %2158, align 4, !tbaa !5
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = call ptr @s2n_strerror(i32 noundef %2173, ptr noundef nonnull @.str.6) #12
  %2175 = load i32, ptr %2172, align 4, !tbaa !5
  %2176 = call ptr @s2n_strerror_debug(i32 noundef %2175, ptr noundef nonnull @.str.6) #12
  %2177 = load i32, ptr %2158, align 4, !tbaa !5
  %2178 = call ptr @strerror(i32 noundef %2177) #12
  %2179 = load i32, ptr %2158, align 4, !tbaa !5
  %2180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2170, ptr noundef nonnull %.str.7.sink2507, i32 noundef %2171, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.3, i32 noundef 250, ptr noundef %2174, ptr noundef %2176, ptr noundef %2178, i32 noundef %2179) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2181:                                             ; preds = %2151
  %2182 = add nsw i32 %2152, 2
  store i32 %2182, ptr @test_count, align 4, !tbaa !5
  %2183 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #12
  %2184 = icmp eq i32 %2183, -1
  br i1 %2184, label %2185, label %2209

2185:                                             ; preds = %2181
  %2186 = tail call ptr @__errno_location() #13
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  %2188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2189 = call i32 @s2n_print_stacktrace(ptr noundef %2188) #12
  %2190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2191 = trunc nuw i8 %2190 to i1
  br i1 %2191, label %2192, label %2196

2192:                                             ; preds = %2185
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = call i32 @fileno(ptr noundef %2193) #12
  %2195 = call i32 @isatty(i32 noundef %2194) #12
  %.not1666 = icmp eq i32 %2195, 0
  br i1 %.not1666, label %2196, label %2197

2196:                                             ; preds = %2192, %2185
  br label %2197

2197:                                             ; preds = %2192, %2196
  %.str.7.sink2518 = phi ptr [ @.str.7, %2196 ], [ @.str.4, %2192 ]
  store i32 %2187, ptr %2186, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror(i32 noundef %2201, ptr noundef nonnull @.str.6) #12
  %2203 = load i32, ptr %2200, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror_debug(i32 noundef %2203, ptr noundef nonnull @.str.6) #12
  %2205 = load i32, ptr %2186, align 4, !tbaa !5
  %2206 = call ptr @strerror(i32 noundef %2205) #12
  %2207 = load i32, ptr %2186, align 4, !tbaa !5
  %2208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2198, ptr noundef nonnull %.str.7.sink2518, i32 noundef %2199, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 252, ptr noundef %2202, ptr noundef %2204, ptr noundef %2206, i32 noundef %2207) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2209:                                             ; preds = %2181
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = add nsw i32 %2210, 1
  store i32 %2211, ptr @test_count, align 4, !tbaa !5
  %2212 = call i32 @s2n_config_free(ptr noundef nonnull %1529) #12
  %2213 = icmp eq i32 %2212, -1
  br i1 %2213, label %2214, label %2238

2214:                                             ; preds = %2209
  %2215 = tail call ptr @__errno_location() #13
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = call i32 @s2n_print_stacktrace(ptr noundef %2217) #12
  %2219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2220 = trunc nuw i8 %2219 to i1
  br i1 %2220, label %2221, label %2225

2221:                                             ; preds = %2214
  %2222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2223 = call i32 @fileno(ptr noundef %2222) #12
  %2224 = call i32 @isatty(i32 noundef %2223) #12
  %.not1665 = icmp eq i32 %2224, 0
  br i1 %.not1665, label %2225, label %2226

2225:                                             ; preds = %2221, %2214
  br label %2226

2226:                                             ; preds = %2221, %2225
  %.str.7.sink2529 = phi ptr [ @.str.7, %2225 ], [ @.str.4, %2221 ]
  store i32 %2216, ptr %2215, align 4, !tbaa !5
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = load i32, ptr @test_count, align 4, !tbaa !5
  %2229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call ptr @s2n_strerror(i32 noundef %2230, ptr noundef nonnull @.str.6) #12
  %2232 = load i32, ptr %2229, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror_debug(i32 noundef %2232, ptr noundef nonnull @.str.6) #12
  %2234 = load i32, ptr %2215, align 4, !tbaa !5
  %2235 = call ptr @strerror(i32 noundef %2234) #12
  %2236 = load i32, ptr %2215, align 4, !tbaa !5
  %2237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2227, ptr noundef nonnull %.str.7.sink2529, i32 noundef %2228, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.3, i32 noundef 253, ptr noundef %2231, ptr noundef %2233, ptr noundef %2235, i32 noundef %2236) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2238:                                             ; preds = %2209
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = add nsw i32 %2239, 1
  store i32 %2240, ptr @test_count, align 4, !tbaa !5
  %2241 = call i32 @s2n_connection_free(ptr noundef nonnull %1558) #12
  %2242 = icmp eq i32 %2241, -1
  br i1 %2242, label %2243, label %2267

2243:                                             ; preds = %2238
  %2244 = tail call ptr @__errno_location() #13
  %2245 = load i32, ptr %2244, align 4, !tbaa !5
  %2246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2247 = call i32 @s2n_print_stacktrace(ptr noundef %2246) #12
  %2248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2249 = trunc nuw i8 %2248 to i1
  br i1 %2249, label %2250, label %2254

2250:                                             ; preds = %2243
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = call i32 @fileno(ptr noundef %2251) #12
  %2253 = call i32 @isatty(i32 noundef %2252) #12
  %.not1664 = icmp eq i32 %2253, 0
  br i1 %.not1664, label %2254, label %2255

2254:                                             ; preds = %2250, %2243
  br label %2255

2255:                                             ; preds = %2250, %2254
  %.str.7.sink2540 = phi ptr [ @.str.7, %2254 ], [ @.str.4, %2250 ]
  store i32 %2245, ptr %2244, align 4, !tbaa !5
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = load i32, ptr @test_count, align 4, !tbaa !5
  %2258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror(i32 noundef %2259, ptr noundef nonnull @.str.6) #12
  %2261 = load i32, ptr %2258, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror_debug(i32 noundef %2261, ptr noundef nonnull @.str.6) #12
  %2263 = load i32, ptr %2244, align 4, !tbaa !5
  %2264 = call ptr @strerror(i32 noundef %2263) #12
  %2265 = load i32, ptr %2244, align 4, !tbaa !5
  %2266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2256, ptr noundef nonnull %.str.7.sink2540, i32 noundef %2257, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 254, ptr noundef %2260, ptr noundef %2262, ptr noundef %2264, i32 noundef %2265) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2267:                                             ; preds = %2238
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #12
  br label %2268

2268:                                             ; preds = %2267, %1524
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %2269 = load i32, ptr @test_count, align 4, !tbaa !5
  %2270 = add nsw i32 %2269, 1
  store i32 %2270, ptr @test_count, align 4, !tbaa !5
  %2271 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2272 = icmp eq ptr %2271, null
  br i1 %2272, label %2273, label %2297

2273:                                             ; preds = %2268
  %2274 = tail call ptr @__errno_location() #13
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @s2n_print_stacktrace(ptr noundef %2276) #12
  %2278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2279 = trunc nuw i8 %2278 to i1
  br i1 %2279, label %2280, label %2284

2280:                                             ; preds = %2273
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = call i32 @fileno(ptr noundef %2281) #12
  %2283 = call i32 @isatty(i32 noundef %2282) #12
  %.not1663 = icmp eq i32 %2283, 0
  br i1 %.not1663, label %2284, label %2285

2284:                                             ; preds = %2280, %2273
  br label %2285

2285:                                             ; preds = %2280, %2284
  %.str.7.sink2551 = phi ptr [ @.str.7, %2284 ], [ @.str.4, %2280 ]
  store i32 %2275, ptr %2274, align 4, !tbaa !5
  %2286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2287 = load i32, ptr @test_count, align 4, !tbaa !5
  %2288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror(i32 noundef %2289, ptr noundef nonnull @.str.6) #12
  %2291 = load i32, ptr %2288, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror_debug(i32 noundef %2291, ptr noundef nonnull @.str.6) #12
  %2293 = load i32, ptr %2274, align 4, !tbaa !5
  %2294 = call ptr @strerror(i32 noundef %2293) #12
  %2295 = load i32, ptr %2274, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2286, ptr noundef nonnull %.str.7.sink2551, i32 noundef %2287, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.3, i32 noundef 264, ptr noundef %2290, ptr noundef %2292, ptr noundef %2294, i32 noundef %2295) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2297:                                             ; preds = %2268
  %2298 = load i32, ptr @test_count, align 4, !tbaa !5
  %2299 = add nsw i32 %2298, 1
  store i32 %2299, ptr @test_count, align 4, !tbaa !5
  %2300 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %2301 = icmp eq ptr %2300, null
  br i1 %2301, label %2302, label %2326

2302:                                             ; preds = %2297
  %2303 = tail call ptr @__errno_location() #13
  %2304 = load i32, ptr %2303, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = call i32 @s2n_print_stacktrace(ptr noundef %2305) #12
  %2307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2308 = trunc nuw i8 %2307 to i1
  br i1 %2308, label %2309, label %2313

2309:                                             ; preds = %2302
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = call i32 @fileno(ptr noundef %2310) #12
  %2312 = call i32 @isatty(i32 noundef %2311) #12
  %.not1662 = icmp eq i32 %2312, 0
  br i1 %.not1662, label %2313, label %2314

2313:                                             ; preds = %2309, %2302
  br label %2314

2314:                                             ; preds = %2309, %2313
  %.str.7.sink2562 = phi ptr [ @.str.7, %2313 ], [ @.str.4, %2309 ]
  store i32 %2304, ptr %2303, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2318 = load i32, ptr %2317, align 4, !tbaa !5
  %2319 = call ptr @s2n_strerror(i32 noundef %2318, ptr noundef nonnull @.str.6) #12
  %2320 = load i32, ptr %2317, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror_debug(i32 noundef %2320, ptr noundef nonnull @.str.6) #12
  %2322 = load i32, ptr %2303, align 4, !tbaa !5
  %2323 = call ptr @strerror(i32 noundef %2322) #12
  %2324 = load i32, ptr %2303, align 4, !tbaa !5
  %2325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2315, ptr noundef nonnull %.str.7.sink2562, i32 noundef %2316, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.3, i32 noundef 265, ptr noundef %2319, ptr noundef %2321, ptr noundef %2323, i32 noundef %2324) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2326:                                             ; preds = %2297
  %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_set_all_mutually_supported_groups(ptr noundef nonnull %2300) #12
  %2330 = call zeroext i1 @s2n_result_is_ok(i32 %2329)
  br i1 %2330, label %2355, label %2331

2331:                                             ; preds = %2326
  %2332 = tail call ptr @__errno_location() #13
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = call i32 @s2n_print_stacktrace(ptr noundef %2334) #12
  %2336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2337 = trunc nuw i8 %2336 to i1
  br i1 %2337, label %2338, label %2342

2338:                                             ; preds = %2331
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @fileno(ptr noundef %2339) #12
  %2341 = call i32 @isatty(i32 noundef %2340) #12
  %.not1282 = icmp eq i32 %2341, 0
  br i1 %.not1282, label %2342, label %2343

2342:                                             ; preds = %2338, %2331
  br label %2343

2343:                                             ; preds = %2338, %2342
  %.str.7.sink2573 = phi ptr [ @.str.7, %2342 ], [ @.str.4, %2338 ]
  store i32 %2333, ptr %2332, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror(i32 noundef %2347, ptr noundef nonnull @.str.6) #12
  %2349 = load i32, ptr %2346, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror_debug(i32 noundef %2349, ptr noundef nonnull @.str.6) #12
  %2351 = load i32, ptr %2332, align 4, !tbaa !5
  %2352 = call ptr @strerror(i32 noundef %2351) #12
  %2353 = load i32, ptr %2332, align 4, !tbaa !5
  %2354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef nonnull %.str.7.sink2573, i32 noundef %2345, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 266, ptr noundef %2348, ptr noundef %2350, ptr noundef %2352, i32 noundef %2353) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2355:                                             ; preds = %2326
  %2356 = load i32, ptr @test_count, align 4, !tbaa !5
  %2357 = add nsw i32 %2356, 1
  store i32 %2357, ptr @test_count, align 4, !tbaa !5
  %2358 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %20, i32 noundef 0) #12
  %2359 = icmp eq i32 %2358, -1
  br i1 %2359, label %2360, label %2384

2360:                                             ; preds = %2355
  %2361 = tail call ptr @__errno_location() #13
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = call i32 @s2n_print_stacktrace(ptr noundef %2363) #12
  %2365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2366 = trunc nuw i8 %2365 to i1
  br i1 %2366, label %2367, label %2371

2367:                                             ; preds = %2360
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = call i32 @fileno(ptr noundef %2368) #12
  %2370 = call i32 @isatty(i32 noundef %2369) #12
  %.not1661 = icmp eq i32 %2370, 0
  br i1 %.not1661, label %2371, label %2372

2371:                                             ; preds = %2367, %2360
  br label %2372

2372:                                             ; preds = %2367, %2371
  %.str.7.sink2584 = phi ptr [ @.str.7, %2371 ], [ @.str.4, %2367 ]
  store i32 %2362, ptr %2361, align 4, !tbaa !5
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = load i32, ptr @test_count, align 4, !tbaa !5
  %2375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @s2n_strerror(i32 noundef %2376, ptr noundef nonnull @.str.6) #12
  %2378 = load i32, ptr %2375, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror_debug(i32 noundef %2378, ptr noundef nonnull @.str.6) #12
  %2380 = load i32, ptr %2361, align 4, !tbaa !5
  %2381 = call ptr @strerror(i32 noundef %2380) #12
  %2382 = load i32, ptr %2361, align 4, !tbaa !5
  %2383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2373, ptr noundef nonnull %.str.7.sink2584, i32 noundef %2374, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 268, ptr noundef %2377, ptr noundef %2379, ptr noundef %2381, i32 noundef %2382) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2384:                                             ; preds = %2355
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  store ptr null, ptr %21, align 8, !tbaa !9
  %2385 = load i32, ptr @test_count, align 4, !tbaa !5
  %2386 = add nsw i32 %2385, 1
  store i32 %2386, ptr @test_count, align 4, !tbaa !5
  %2387 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %2300, ptr noundef nonnull %21) #12
  %2388 = icmp eq i32 %2387, -1
  br i1 %2388, label %2389, label %2413

2389:                                             ; preds = %2384
  %2390 = tail call ptr @__errno_location() #13
  %2391 = load i32, ptr %2390, align 4, !tbaa !5
  %2392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2393 = call i32 @s2n_print_stacktrace(ptr noundef %2392) #12
  %2394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2395 = trunc nuw i8 %2394 to i1
  br i1 %2395, label %2396, label %2400

2396:                                             ; preds = %2389
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = call i32 @fileno(ptr noundef %2397) #12
  %2399 = call i32 @isatty(i32 noundef %2398) #12
  %.not1660 = icmp eq i32 %2399, 0
  br i1 %.not1660, label %2400, label %2401

2400:                                             ; preds = %2396, %2389
  br label %2401

2401:                                             ; preds = %2396, %2400
  %.str.7.sink2595 = phi ptr [ @.str.7, %2400 ], [ @.str.4, %2396 ]
  store i32 %2391, ptr %2390, align 4, !tbaa !5
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = load i32, ptr @test_count, align 4, !tbaa !5
  %2404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror(i32 noundef %2405, ptr noundef nonnull @.str.6) #12
  %2407 = load i32, ptr %2404, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror_debug(i32 noundef %2407, ptr noundef nonnull @.str.6) #12
  %2409 = load i32, ptr %2390, align 4, !tbaa !5
  %2410 = call ptr @strerror(i32 noundef %2409) #12
  %2411 = load i32, ptr %2390, align 4, !tbaa !5
  %2412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2402, ptr noundef nonnull %.str.7.sink2595, i32 noundef %2403, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.3, i32 noundef 271, ptr noundef %2406, ptr noundef %2408, ptr noundef %2410, i32 noundef %2411) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2413:                                             ; preds = %2384
  %2414 = load i32, ptr @test_count, align 4, !tbaa !5
  %2415 = add nsw i32 %2414, 1
  store i32 %2415, ptr @test_count, align 4, !tbaa !5
  %2416 = load ptr, ptr %21, align 8, !tbaa !9
  %2417 = icmp eq ptr %2416, null
  br i1 %2417, label %2418, label %2442

2418:                                             ; preds = %2413
  %2419 = tail call ptr @__errno_location() #13
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2422 = call i32 @s2n_print_stacktrace(ptr noundef %2421) #12
  %2423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2424 = trunc nuw i8 %2423 to i1
  br i1 %2424, label %2425, label %2429

2425:                                             ; preds = %2418
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = call i32 @fileno(ptr noundef %2426) #12
  %2428 = call i32 @isatty(i32 noundef %2427) #12
  %.not1659 = icmp eq i32 %2428, 0
  br i1 %.not1659, label %2429, label %2430

2429:                                             ; preds = %2425, %2418
  br label %2430

2430:                                             ; preds = %2425, %2429
  %.str.7.sink2606 = phi ptr [ @.str.7, %2429 ], [ @.str.4, %2425 ]
  store i32 %2420, ptr %2419, align 4, !tbaa !5
  %2431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2434 = load i32, ptr %2433, align 4, !tbaa !5
  %2435 = call ptr @s2n_strerror(i32 noundef %2434, ptr noundef nonnull @.str.6) #12
  %2436 = load i32, ptr %2433, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror_debug(i32 noundef %2436, ptr noundef nonnull @.str.6) #12
  %2438 = load i32, ptr %2419, align 4, !tbaa !5
  %2439 = call ptr @strerror(i32 noundef %2438) #12
  %2440 = load i32, ptr %2419, align 4, !tbaa !5
  %2441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2431, ptr noundef nonnull %.str.7.sink2606, i32 noundef %2432, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 272, ptr noundef %2435, ptr noundef %2437, ptr noundef %2439, i32 noundef %2440) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2442:                                             ; preds = %2413
  %2443 = getelementptr inbounds i8, ptr %2271, i64 1650
  %2444 = call ptr @s2n_ensure_memmove_trace(ptr noundef nonnull %2443, ptr noundef nonnull @hello_retry_req_random, i64 noundef 32) #12
  %.not1283.not.not = icmp eq ptr %2444, null
  br i1 %.not1283.not.not, label %2891, label %2445

2445:                                             ; preds = %2442
  %2446 = load i32, ptr @test_count, align 4, !tbaa !5
  %2447 = add nsw i32 %2446, 1
  store i32 %2447, ptr @test_count, align 4, !tbaa !5
  %2448 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %2271, i8 noundef zeroext 34) #12
  %2449 = icmp eq i32 %2448, -1
  br i1 %2449, label %2450, label %2474

2450:                                             ; preds = %2445
  %2451 = tail call ptr @__errno_location() #13
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  %2453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2454 = call i32 @s2n_print_stacktrace(ptr noundef %2453) #12
  %2455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2456 = trunc nuw i8 %2455 to i1
  br i1 %2456, label %2457, label %2461

2457:                                             ; preds = %2450
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = call i32 @fileno(ptr noundef %2458) #12
  %2460 = call i32 @isatty(i32 noundef %2459) #12
  %.not1658 = icmp eq i32 %2460, 0
  br i1 %.not1658, label %2461, label %2462

2461:                                             ; preds = %2457, %2450
  br label %2462

2462:                                             ; preds = %2457, %2461
  %.str.7.sink2617 = phi ptr [ @.str.7, %2461 ], [ @.str.4, %2457 ]
  store i32 %2452, ptr %2451, align 4, !tbaa !5
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = load i32, ptr @test_count, align 4, !tbaa !5
  %2465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @s2n_strerror(i32 noundef %2466, ptr noundef nonnull @.str.6) #12
  %2468 = load i32, ptr %2465, align 4, !tbaa !5
  %2469 = call ptr @s2n_strerror_debug(i32 noundef %2468, ptr noundef nonnull @.str.6) #12
  %2470 = load i32, ptr %2451, align 4, !tbaa !5
  %2471 = call ptr @strerror(i32 noundef %2470) #12
  %2472 = load i32, ptr %2451, align 4, !tbaa !5
  %2473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2463, ptr noundef nonnull %.str.7.sink2617, i32 noundef %2464, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.3, i32 noundef 276, ptr noundef %2467, ptr noundef %2469, ptr noundef %2471, i32 noundef %2472) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2474:                                             ; preds = %2445
  %2475 = load i32, ptr @test_count, align 4, !tbaa !5
  %2476 = add nsw i32 %2475, 1
  store i32 %2476, ptr @test_count, align 4, !tbaa !5
  %2477 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %2271) #12
  %2478 = icmp eq i32 %2477, -1
  br i1 %2478, label %2479, label %2503

2479:                                             ; preds = %2474
  %2480 = tail call ptr @__errno_location() #13
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = call i32 @s2n_print_stacktrace(ptr noundef %2482) #12
  %2484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2485 = trunc nuw i8 %2484 to i1
  br i1 %2485, label %2486, label %2490

2486:                                             ; preds = %2479
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = call i32 @fileno(ptr noundef %2487) #12
  %2489 = call i32 @isatty(i32 noundef %2488) #12
  %.not1657 = icmp eq i32 %2489, 0
  br i1 %.not1657, label %2490, label %2491

2490:                                             ; preds = %2486, %2479
  br label %2491

2491:                                             ; preds = %2486, %2490
  %.str.7.sink2628 = phi ptr [ @.str.7, %2490 ], [ @.str.4, %2486 ]
  store i32 %2481, ptr %2480, align 4, !tbaa !5
  %2492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2495 = load i32, ptr %2494, align 4, !tbaa !5
  %2496 = call ptr @s2n_strerror(i32 noundef %2495, ptr noundef nonnull @.str.6) #12
  %2497 = load i32, ptr %2494, align 4, !tbaa !5
  %2498 = call ptr @s2n_strerror_debug(i32 noundef %2497, ptr noundef nonnull @.str.6) #12
  %2499 = load i32, ptr %2480, align 4, !tbaa !5
  %2500 = call ptr @strerror(i32 noundef %2499) #12
  %2501 = load i32, ptr %2480, align 4, !tbaa !5
  %2502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2492, ptr noundef nonnull %.str.7.sink2628, i32 noundef %2493, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.3, i32 noundef 277, ptr noundef %2496, ptr noundef %2498, ptr noundef %2500, i32 noundef %2501) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2503:                                             ; preds = %2474
  %2504 = load ptr, ptr %21, align 8, !tbaa !9
  %2505 = getelementptr inbounds i8, ptr %2504, i64 8
  %2506 = load ptr, ptr %2505, align 8, !tbaa !24
  %2507 = load ptr, ptr %2506, align 8, !tbaa !9
  %2508 = getelementptr inbounds i8, ptr %2271, i64 656
  store ptr %2507, ptr %2508, align 8, !tbaa !54
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = add nsw i32 %2509, 1
  store i32 %2510, ptr @test_count, align 4, !tbaa !5
  %2511 = call i32 %343(ptr noundef nonnull %2271, ptr noundef nonnull %20) #12
  %2512 = icmp eq i32 %2511, -1
  br i1 %2512, label %2513, label %2537

2513:                                             ; preds = %2503
  %2514 = tail call ptr @__errno_location() #13
  %2515 = load i32, ptr %2514, align 4, !tbaa !5
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = call i32 @s2n_print_stacktrace(ptr noundef %2516) #12
  %2518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2519 = trunc nuw i8 %2518 to i1
  br i1 %2519, label %2520, label %2524

2520:                                             ; preds = %2513
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = call i32 @fileno(ptr noundef %2521) #12
  %2523 = call i32 @isatty(i32 noundef %2522) #12
  %.not1656 = icmp eq i32 %2523, 0
  br i1 %.not1656, label %2524, label %2525

2524:                                             ; preds = %2520, %2513
  br label %2525

2525:                                             ; preds = %2520, %2524
  %.str.7.sink2639 = phi ptr [ @.str.7, %2524 ], [ @.str.4, %2520 ]
  store i32 %2515, ptr %2514, align 4, !tbaa !5
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = load i32, ptr @test_count, align 4, !tbaa !5
  %2528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2529 = load i32, ptr %2528, align 4, !tbaa !5
  %2530 = call ptr @s2n_strerror(i32 noundef %2529, ptr noundef nonnull @.str.6) #12
  %2531 = load i32, ptr %2528, align 4, !tbaa !5
  %2532 = call ptr @s2n_strerror_debug(i32 noundef %2531, ptr noundef nonnull @.str.6) #12
  %2533 = load i32, ptr %2514, align 4, !tbaa !5
  %2534 = call ptr @strerror(i32 noundef %2533) #12
  %2535 = load i32, ptr %2514, align 4, !tbaa !5
  %2536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2526, ptr noundef nonnull %.str.7.sink2639, i32 noundef %2527, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.3, i32 noundef 282, ptr noundef %2530, ptr noundef %2532, ptr noundef %2534, i32 noundef %2535) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2537:                                             ; preds = %2503
  %2538 = getelementptr inbounds i8, ptr %2271, i64 704
  %2539 = load i32, ptr @test_count, align 4, !tbaa !5
  %2540 = add nsw i32 %2539, 1
  store i32 %2540, ptr @test_count, align 4, !tbaa !5
  %2541 = load ptr, ptr %2538, align 8, !tbaa !22
  %2542 = load ptr, ptr %2508, align 8, !tbaa !54
  %2543 = icmp eq ptr %2541, %2542
  br i1 %2543, label %2568, label %2544

2544:                                             ; preds = %2537
  %2545 = tail call ptr @__errno_location() #13
  %2546 = load i32, ptr %2545, align 4, !tbaa !5
  %2547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2548 = call i32 @s2n_print_stacktrace(ptr noundef %2547) #12
  %2549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2550 = trunc nuw i8 %2549 to i1
  br i1 %2550, label %2551, label %2555

2551:                                             ; preds = %2544
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = call i32 @fileno(ptr noundef %2552) #12
  %2554 = call i32 @isatty(i32 noundef %2553) #12
  %.not1285 = icmp eq i32 %2554, 0
  br i1 %.not1285, label %2555, label %2556

2555:                                             ; preds = %2551, %2544
  br label %2556

2556:                                             ; preds = %2551, %2555
  %.str.7.sink2650 = phi ptr [ @.str.7, %2555 ], [ @.str.4, %2551 ]
  store i32 %2546, ptr %2545, align 4, !tbaa !5
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = load i32, ptr @test_count, align 4, !tbaa !5
  %2559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2560 = load i32, ptr %2559, align 4, !tbaa !5
  %2561 = call ptr @s2n_strerror(i32 noundef %2560, ptr noundef nonnull @.str.6) #12
  %2562 = load i32, ptr %2559, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror_debug(i32 noundef %2562, ptr noundef nonnull @.str.6) #12
  %2564 = load i32, ptr %2545, align 4, !tbaa !5
  %2565 = call ptr @strerror(i32 noundef %2564) #12
  %2566 = load i32, ptr %2545, align 4, !tbaa !5
  %2567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2557, ptr noundef nonnull %.str.7.sink2650, i32 noundef %2558, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.3, i32 noundef 286, ptr noundef %2561, ptr noundef %2563, ptr noundef %2565, i32 noundef %2566) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2568:                                             ; preds = %2537
  %2569 = add nsw i32 %2539, 2
  store i32 %2569, ptr @test_count, align 4, !tbaa !5
  %2570 = icmp eq ptr %2541, null
  br i1 %2570, label %2571, label %2595

2571:                                             ; preds = %2568
  %2572 = tail call ptr @__errno_location() #13
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = call i32 @s2n_print_stacktrace(ptr noundef %2574) #12
  %2576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2577 = trunc nuw i8 %2576 to i1
  br i1 %2577, label %2578, label %2582

2578:                                             ; preds = %2571
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = call i32 @fileno(ptr noundef %2579) #12
  %2581 = call i32 @isatty(i32 noundef %2580) #12
  %.not1655 = icmp eq i32 %2581, 0
  br i1 %.not1655, label %2582, label %2583

2582:                                             ; preds = %2578, %2571
  br label %2583

2583:                                             ; preds = %2578, %2582
  %.str.7.sink2661 = phi ptr [ @.str.7, %2582 ], [ @.str.4, %2578 ]
  store i32 %2573, ptr %2572, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror(i32 noundef %2587, ptr noundef nonnull @.str.6) #12
  %2589 = load i32, ptr %2586, align 4, !tbaa !5
  %2590 = call ptr @s2n_strerror_debug(i32 noundef %2589, ptr noundef nonnull @.str.6) #12
  %2591 = load i32, ptr %2572, align 4, !tbaa !5
  %2592 = call ptr @strerror(i32 noundef %2591) #12
  %2593 = load i32, ptr %2572, align 4, !tbaa !5
  %2594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2584, ptr noundef nonnull %.str.7.sink2661, i32 noundef %2585, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.3, i32 noundef 287, ptr noundef %2588, ptr noundef %2590, ptr noundef %2592, i32 noundef %2593) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2595:                                             ; preds = %2568
  %2596 = add nsw i32 %2539, 3
  store i32 %2596, ptr @test_count, align 4, !tbaa !5
  %2597 = getelementptr inbounds i8, ptr %2271, i64 712
  %2598 = load ptr, ptr %2597, align 8, !tbaa !26
  %2599 = icmp eq ptr %2598, null
  br i1 %2599, label %2600, label %2624

2600:                                             ; preds = %2595
  %2601 = tail call ptr @__errno_location() #13
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603) #12
  %2605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2606 = trunc nuw i8 %2605 to i1
  br i1 %2606, label %2607, label %2611

2607:                                             ; preds = %2600
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #12
  %2610 = call i32 @isatty(i32 noundef %2609) #12
  %.not1654 = icmp eq i32 %2610, 0
  br i1 %.not1654, label %2611, label %2612

2611:                                             ; preds = %2607, %2600
  br label %2612

2612:                                             ; preds = %2607, %2611
  %.str.7.sink2672 = phi ptr [ @.str.7, %2611 ], [ @.str.4, %2607 ]
  store i32 %2602, ptr %2601, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror(i32 noundef %2616, ptr noundef nonnull @.str.6) #12
  %2618 = load i32, ptr %2615, align 4, !tbaa !5
  %2619 = call ptr @s2n_strerror_debug(i32 noundef %2618, ptr noundef nonnull @.str.6) #12
  %2620 = load i32, ptr %2601, align 4, !tbaa !5
  %2621 = call ptr @strerror(i32 noundef %2620) #12
  %2622 = load i32, ptr %2601, align 4, !tbaa !5
  %2623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef nonnull %.str.7.sink2672, i32 noundef %2614, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.3, i32 noundef 288, ptr noundef %2617, ptr noundef %2619, ptr noundef %2621, i32 noundef %2622) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2624:                                             ; preds = %2595
  %2625 = load ptr, ptr %21, align 8, !tbaa !9
  %2626 = getelementptr inbounds i8, ptr %2625, i64 8
  %2627 = load ptr, ptr %2626, align 8, !tbaa !24
  %2628 = load ptr, ptr %2627, align 8, !tbaa !9
  %2629 = getelementptr inbounds i8, ptr %2300, i64 656
  store ptr %2628, ptr %2629, align 8, !tbaa !54
  %2630 = add nsw i32 %2539, 4
  store i32 %2630, ptr @test_count, align 4, !tbaa !5
  %2631 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %2300, i8 noundef zeroext 34) #12
  %2632 = icmp eq i32 %2631, -1
  br i1 %2632, label %2633, label %2657

2633:                                             ; preds = %2624
  %2634 = tail call ptr @__errno_location() #13
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @s2n_print_stacktrace(ptr noundef %2636) #12
  %2638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2639 = trunc nuw i8 %2638 to i1
  br i1 %2639, label %2640, label %2644

2640:                                             ; preds = %2633
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @fileno(ptr noundef %2641) #12
  %2643 = call i32 @isatty(i32 noundef %2642) #12
  %.not1653 = icmp eq i32 %2643, 0
  br i1 %.not1653, label %2644, label %2645

2644:                                             ; preds = %2640, %2633
  br label %2645

2645:                                             ; preds = %2640, %2644
  %.str.7.sink2683 = phi ptr [ @.str.7, %2644 ], [ @.str.4, %2640 ]
  store i32 %2635, ptr %2634, align 4, !tbaa !5
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2647 = load i32, ptr @test_count, align 4, !tbaa !5
  %2648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call ptr @s2n_strerror(i32 noundef %2649, ptr noundef nonnull @.str.6) #12
  %2651 = load i32, ptr %2648, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror_debug(i32 noundef %2651, ptr noundef nonnull @.str.6) #12
  %2653 = load i32, ptr %2634, align 4, !tbaa !5
  %2654 = call ptr @strerror(i32 noundef %2653) #12
  %2655 = load i32, ptr %2634, align 4, !tbaa !5
  %2656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2646, ptr noundef nonnull %.str.7.sink2683, i32 noundef %2647, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.3, i32 noundef 291, ptr noundef %2650, ptr noundef %2652, ptr noundef %2654, i32 noundef %2655) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2657:                                             ; preds = %2624
  %2658 = load i32, ptr @test_count, align 4, !tbaa !5
  %2659 = add nsw i32 %2658, 1
  store i32 %2659, ptr @test_count, align 4, !tbaa !5
  %2660 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_key_share_extension, i64 16), align 8, !tbaa !55
  %2661 = call i32 %2660(ptr noundef nonnull %2300, ptr noundef nonnull %20) #12
  %2662 = icmp eq i32 %2661, -1
  br i1 %2662, label %2663, label %2687

2663:                                             ; preds = %2657
  %2664 = tail call ptr @__errno_location() #13
  %2665 = load i32, ptr %2664, align 4, !tbaa !5
  %2666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2667 = call i32 @s2n_print_stacktrace(ptr noundef %2666) #12
  %2668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2669 = trunc nuw i8 %2668 to i1
  br i1 %2669, label %2670, label %2674

2670:                                             ; preds = %2663
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = call i32 @fileno(ptr noundef %2671) #12
  %2673 = call i32 @isatty(i32 noundef %2672) #12
  %.not1652 = icmp eq i32 %2673, 0
  br i1 %.not1652, label %2674, label %2675

2674:                                             ; preds = %2670, %2663
  br label %2675

2675:                                             ; preds = %2670, %2674
  %.str.7.sink2694 = phi ptr [ @.str.7, %2674 ], [ @.str.4, %2670 ]
  store i32 %2665, ptr %2664, align 4, !tbaa !5
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = load i32, ptr @test_count, align 4, !tbaa !5
  %2678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call ptr @s2n_strerror(i32 noundef %2679, ptr noundef nonnull @.str.6) #12
  %2681 = load i32, ptr %2678, align 4, !tbaa !5
  %2682 = call ptr @s2n_strerror_debug(i32 noundef %2681, ptr noundef nonnull @.str.6) #12
  %2683 = load i32, ptr %2664, align 4, !tbaa !5
  %2684 = call ptr @strerror(i32 noundef %2683) #12
  %2685 = load i32, ptr %2664, align 4, !tbaa !5
  %2686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2676, ptr noundef nonnull %.str.7.sink2694, i32 noundef %2677, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 293, ptr noundef %2680, ptr noundef %2682, ptr noundef %2684, i32 noundef %2685) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2687:                                             ; preds = %2657
  %2688 = load i32, ptr @test_count, align 4, !tbaa !5
  %2689 = add nsw i32 %2688, 1
  store i32 %2689, ptr @test_count, align 4, !tbaa !5
  %2690 = getelementptr inbounds i8, ptr %20, i64 28
  %2691 = load i32, ptr %2690, align 4, !tbaa !18
  %2692 = getelementptr inbounds i8, ptr %20, i64 24
  %2693 = load i32, ptr %2692, align 8, !tbaa !21
  %2694 = icmp eq i32 %2691, %2693
  br i1 %2694, label %2719, label %2695

2695:                                             ; preds = %2687
  %2696 = tail call ptr @__errno_location() #13
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2699 = call i32 @s2n_print_stacktrace(ptr noundef %2698) #12
  %2700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2701 = trunc nuw i8 %2700 to i1
  br i1 %2701, label %2702, label %2706

2702:                                             ; preds = %2695
  %2703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2704 = call i32 @fileno(ptr noundef %2703) #12
  %2705 = call i32 @isatty(i32 noundef %2704) #12
  %.not1286 = icmp eq i32 %2705, 0
  br i1 %.not1286, label %2706, label %2707

2706:                                             ; preds = %2702, %2695
  br label %2707

2707:                                             ; preds = %2702, %2706
  %.str.7.sink2705 = phi ptr [ @.str.7, %2706 ], [ @.str.4, %2702 ]
  store i32 %2697, ptr %2696, align 4, !tbaa !5
  %2708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2709 = load i32, ptr @test_count, align 4, !tbaa !5
  %2710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  %2712 = call ptr @s2n_strerror(i32 noundef %2711, ptr noundef nonnull @.str.6) #12
  %2713 = load i32, ptr %2710, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror_debug(i32 noundef %2713, ptr noundef nonnull @.str.6) #12
  %2715 = load i32, ptr %2696, align 4, !tbaa !5
  %2716 = call ptr @strerror(i32 noundef %2715) #12
  %2717 = load i32, ptr %2696, align 4, !tbaa !5
  %2718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2708, ptr noundef nonnull %.str.7.sink2705, i32 noundef %2709, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 296, ptr noundef %2712, ptr noundef %2714, ptr noundef %2716, i32 noundef %2717) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2719:                                             ; preds = %2687
  %2720 = getelementptr inbounds i8, ptr %2300, i64 704
  %2721 = add nsw i32 %2688, 2
  store i32 %2721, ptr @test_count, align 4, !tbaa !5
  %2722 = load ptr, ptr %2720, align 8, !tbaa !22
  %2723 = load ptr, ptr %2629, align 8, !tbaa !54
  %2724 = icmp eq ptr %2722, %2723
  br i1 %2724, label %2749, label %2725

2725:                                             ; preds = %2719
  %2726 = tail call ptr @__errno_location() #13
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = call i32 @s2n_print_stacktrace(ptr noundef %2728) #12
  %2730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2731 = trunc nuw i8 %2730 to i1
  br i1 %2731, label %2732, label %2736

2732:                                             ; preds = %2725
  %2733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2734 = call i32 @fileno(ptr noundef %2733) #12
  %2735 = call i32 @isatty(i32 noundef %2734) #12
  %.not1287 = icmp eq i32 %2735, 0
  br i1 %.not1287, label %2736, label %2737

2736:                                             ; preds = %2732, %2725
  br label %2737

2737:                                             ; preds = %2732, %2736
  %.str.7.sink2716 = phi ptr [ @.str.7, %2736 ], [ @.str.4, %2732 ]
  store i32 %2727, ptr %2726, align 4, !tbaa !5
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef nonnull @.str.6) #12
  %2743 = load i32, ptr %2740, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror_debug(i32 noundef %2743, ptr noundef nonnull @.str.6) #12
  %2745 = load i32, ptr %2726, align 4, !tbaa !5
  %2746 = call ptr @strerror(i32 noundef %2745) #12
  %2747 = load i32, ptr %2726, align 4, !tbaa !5
  %2748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2738, ptr noundef nonnull %.str.7.sink2716, i32 noundef %2739, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.3, i32 noundef 300, ptr noundef %2742, ptr noundef %2744, ptr noundef %2746, i32 noundef %2747) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2749:                                             ; preds = %2719
  %2750 = add nsw i32 %2688, 3
  store i32 %2750, ptr @test_count, align 4, !tbaa !5
  %2751 = icmp eq ptr %2722, null
  br i1 %2751, label %2752, label %2776

2752:                                             ; preds = %2749
  %2753 = tail call ptr @__errno_location() #13
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = call i32 @s2n_print_stacktrace(ptr noundef %2755) #12
  %2757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2758 = trunc nuw i8 %2757 to i1
  br i1 %2758, label %2759, label %2763

2759:                                             ; preds = %2752
  %2760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2761 = call i32 @fileno(ptr noundef %2760) #12
  %2762 = call i32 @isatty(i32 noundef %2761) #12
  %.not1651 = icmp eq i32 %2762, 0
  br i1 %.not1651, label %2763, label %2764

2763:                                             ; preds = %2759, %2752
  br label %2764

2764:                                             ; preds = %2759, %2763
  %.str.7.sink2727 = phi ptr [ @.str.7, %2763 ], [ @.str.4, %2759 ]
  store i32 %2754, ptr %2753, align 4, !tbaa !5
  %2765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2766 = load i32, ptr @test_count, align 4, !tbaa !5
  %2767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call ptr @s2n_strerror(i32 noundef %2768, ptr noundef nonnull @.str.6) #12
  %2770 = load i32, ptr %2767, align 4, !tbaa !5
  %2771 = call ptr @s2n_strerror_debug(i32 noundef %2770, ptr noundef nonnull @.str.6) #12
  %2772 = load i32, ptr %2753, align 4, !tbaa !5
  %2773 = call ptr @strerror(i32 noundef %2772) #12
  %2774 = load i32, ptr %2753, align 4, !tbaa !5
  %2775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2765, ptr noundef nonnull %.str.7.sink2727, i32 noundef %2766, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.3, i32 noundef 301, ptr noundef %2769, ptr noundef %2771, ptr noundef %2773, i32 noundef %2774) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2776:                                             ; preds = %2749
  %2777 = add nsw i32 %2688, 4
  store i32 %2777, ptr @test_count, align 4, !tbaa !5
  %2778 = getelementptr inbounds i8, ptr %2300, i64 712
  %2779 = load ptr, ptr %2778, align 8, !tbaa !26
  %2780 = icmp eq ptr %2779, null
  br i1 %2780, label %2781, label %2805

2781:                                             ; preds = %2776
  %2782 = tail call ptr @__errno_location() #13
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = call i32 @s2n_print_stacktrace(ptr noundef %2784) #12
  %2786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2787 = trunc nuw i8 %2786 to i1
  br i1 %2787, label %2788, label %2792

2788:                                             ; preds = %2781
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = call i32 @fileno(ptr noundef %2789) #12
  %2791 = call i32 @isatty(i32 noundef %2790) #12
  %.not1650 = icmp eq i32 %2791, 0
  br i1 %.not1650, label %2792, label %2793

2792:                                             ; preds = %2788, %2781
  br label %2793

2793:                                             ; preds = %2788, %2792
  %.str.7.sink2738 = phi ptr [ @.str.7, %2792 ], [ @.str.4, %2788 ]
  store i32 %2783, ptr %2782, align 4, !tbaa !5
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = load i32, ptr @test_count, align 4, !tbaa !5
  %2796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2797 = load i32, ptr %2796, align 4, !tbaa !5
  %2798 = call ptr @s2n_strerror(i32 noundef %2797, ptr noundef nonnull @.str.6) #12
  %2799 = load i32, ptr %2796, align 4, !tbaa !5
  %2800 = call ptr @s2n_strerror_debug(i32 noundef %2799, ptr noundef nonnull @.str.6) #12
  %2801 = load i32, ptr %2782, align 4, !tbaa !5
  %2802 = call ptr @strerror(i32 noundef %2801) #12
  %2803 = load i32, ptr %2782, align 4, !tbaa !5
  %2804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2794, ptr noundef nonnull %.str.7.sink2738, i32 noundef %2795, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.3, i32 noundef 302, ptr noundef %2798, ptr noundef %2800, ptr noundef %2802, i32 noundef %2803) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2805:                                             ; preds = %2776
  %2806 = add nsw i32 %2688, 5
  store i32 %2806, ptr @test_count, align 4, !tbaa !5
  %2807 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #12
  %2808 = icmp eq i32 %2807, -1
  br i1 %2808, label %2809, label %2833

2809:                                             ; preds = %2805
  %2810 = tail call ptr @__errno_location() #13
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = call i32 @s2n_print_stacktrace(ptr noundef %2812) #12
  %2814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2815 = trunc nuw i8 %2814 to i1
  br i1 %2815, label %2816, label %2820

2816:                                             ; preds = %2809
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = call i32 @fileno(ptr noundef %2817) #12
  %2819 = call i32 @isatty(i32 noundef %2818) #12
  %.not1649 = icmp eq i32 %2819, 0
  br i1 %.not1649, label %2820, label %2821

2820:                                             ; preds = %2816, %2809
  br label %2821

2821:                                             ; preds = %2816, %2820
  %.str.7.sink2749 = phi ptr [ @.str.7, %2820 ], [ @.str.4, %2816 ]
  store i32 %2811, ptr %2810, align 4, !tbaa !5
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = load i32, ptr @test_count, align 4, !tbaa !5
  %2824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror(i32 noundef %2825, ptr noundef nonnull @.str.6) #12
  %2827 = load i32, ptr %2824, align 4, !tbaa !5
  %2828 = call ptr @s2n_strerror_debug(i32 noundef %2827, ptr noundef nonnull @.str.6) #12
  %2829 = load i32, ptr %2810, align 4, !tbaa !5
  %2830 = call ptr @strerror(i32 noundef %2829) #12
  %2831 = load i32, ptr %2810, align 4, !tbaa !5
  %2832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2822, ptr noundef nonnull %.str.7.sink2749, i32 noundef %2823, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 304, ptr noundef %2826, ptr noundef %2828, ptr noundef %2830, i32 noundef %2831) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2833:                                             ; preds = %2805
  %2834 = load i32, ptr @test_count, align 4, !tbaa !5
  %2835 = add nsw i32 %2834, 1
  store i32 %2835, ptr @test_count, align 4, !tbaa !5
  %2836 = call i32 @s2n_connection_free(ptr noundef nonnull %2271) #12
  %2837 = icmp eq i32 %2836, -1
  br i1 %2837, label %2838, label %2862

2838:                                             ; preds = %2833
  %2839 = tail call ptr @__errno_location() #13
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2842 = call i32 @s2n_print_stacktrace(ptr noundef %2841) #12
  %2843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2844 = trunc nuw i8 %2843 to i1
  br i1 %2844, label %2845, label %2849

2845:                                             ; preds = %2838
  %2846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2847 = call i32 @fileno(ptr noundef %2846) #12
  %2848 = call i32 @isatty(i32 noundef %2847) #12
  %.not1648 = icmp eq i32 %2848, 0
  br i1 %.not1648, label %2849, label %2850

2849:                                             ; preds = %2845, %2838
  br label %2850

2850:                                             ; preds = %2845, %2849
  %.str.7.sink2760 = phi ptr [ @.str.7, %2849 ], [ @.str.4, %2845 ]
  store i32 %2840, ptr %2839, align 4, !tbaa !5
  %2851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2852 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2854, ptr noundef nonnull @.str.6) #12
  %2856 = load i32, ptr %2853, align 4, !tbaa !5
  %2857 = call ptr @s2n_strerror_debug(i32 noundef %2856, ptr noundef nonnull @.str.6) #12
  %2858 = load i32, ptr %2839, align 4, !tbaa !5
  %2859 = call ptr @strerror(i32 noundef %2858) #12
  %2860 = load i32, ptr %2839, align 4, !tbaa !5
  %2861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2851, ptr noundef nonnull %.str.7.sink2760, i32 noundef %2852, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.3, i32 noundef 305, ptr noundef %2855, ptr noundef %2857, ptr noundef %2859, i32 noundef %2860) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2862:                                             ; preds = %2833
  %2863 = load i32, ptr @test_count, align 4, !tbaa !5
  %2864 = add nsw i32 %2863, 1
  store i32 %2864, ptr @test_count, align 4, !tbaa !5
  %2865 = call i32 @s2n_connection_free(ptr noundef nonnull %2300) #12
  %2866 = icmp eq i32 %2865, -1
  br i1 %2866, label %2867, label %2899

2867:                                             ; preds = %2862
  %2868 = tail call ptr @__errno_location() #13
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2871 = call i32 @s2n_print_stacktrace(ptr noundef %2870) #12
  %2872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2873 = trunc nuw i8 %2872 to i1
  br i1 %2873, label %2874, label %2878

2874:                                             ; preds = %2867
  %2875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2876 = call i32 @fileno(ptr noundef %2875) #12
  %2877 = call i32 @isatty(i32 noundef %2876) #12
  %.not1647 = icmp eq i32 %2877, 0
  br i1 %.not1647, label %2878, label %2879

2878:                                             ; preds = %2874, %2867
  br label %2879

2879:                                             ; preds = %2874, %2878
  %.str.7.sink2771 = phi ptr [ @.str.7, %2878 ], [ @.str.4, %2874 ]
  store i32 %2869, ptr %2868, align 4, !tbaa !5
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = load i32, ptr @test_count, align 4, !tbaa !5
  %2882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  %2884 = call ptr @s2n_strerror(i32 noundef %2883, ptr noundef nonnull @.str.6) #12
  %2885 = load i32, ptr %2882, align 4, !tbaa !5
  %2886 = call ptr @s2n_strerror_debug(i32 noundef %2885, ptr noundef nonnull @.str.6) #12
  %2887 = load i32, ptr %2868, align 4, !tbaa !5
  %2888 = call ptr @strerror(i32 noundef %2887) #12
  %2889 = load i32, ptr %2868, align 4, !tbaa !5
  %2890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2880, ptr noundef nonnull %.str.7.sink2771, i32 noundef %2881, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 306, ptr noundef %2884, ptr noundef %2886, ptr noundef %2888, i32 noundef %2889) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2891:                                             ; preds = %2442
  %2892 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  store ptr @.str.53, ptr %2892, align 8, !tbaa !56
  %2893 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.53, i64 21), i32 noundef 47) #16
  %.not1284 = icmp eq ptr %2893, null
  %2894 = getelementptr inbounds i8, ptr %2893, i64 1
  %2895 = select i1 %.not1284, ptr getelementptr inbounds (i8, ptr @.str.53, i64 21), ptr %2894
  %2896 = getelementptr inbounds i8, ptr %2892, i64 8
  store ptr %2895, ptr %2896, align 8, !tbaa !58
  %2897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 402653193, ptr %2897, align 4, !tbaa !5
  %2898 = call i32 @s2n_calculate_stacktrace() #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #12
  br label %12486

2899:                                             ; preds = %2862
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %22, i8 0, i64 40, i1 false)
  %2900 = load i32, ptr @test_count, align 4, !tbaa !5
  %2901 = add nsw i32 %2900, 1
  store i32 %2901, ptr @test_count, align 4, !tbaa !5
  %2902 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2903 = icmp eq ptr %2902, null
  br i1 %2903, label %2904, label %2928

2904:                                             ; preds = %2899
  %2905 = tail call ptr @__errno_location() #13
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2908 = call i32 @s2n_print_stacktrace(ptr noundef %2907) #12
  %2909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2910 = trunc nuw i8 %2909 to i1
  br i1 %2910, label %2911, label %2915

2911:                                             ; preds = %2904
  %2912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2913 = call i32 @fileno(ptr noundef %2912) #12
  %2914 = call i32 @isatty(i32 noundef %2913) #12
  %.not1646 = icmp eq i32 %2914, 0
  br i1 %.not1646, label %2915, label %2916

2915:                                             ; preds = %2911, %2904
  br label %2916

2916:                                             ; preds = %2911, %2915
  %.str.7.sink2782 = phi ptr [ @.str.7, %2915 ], [ @.str.4, %2911 ]
  store i32 %2906, ptr %2905, 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 nonnull @.str.6) #12
  %2922 = load i32, ptr %2919, align 4, !tbaa !5
  %2923 = call ptr @s2n_strerror_debug(i32 noundef %2922, ptr noundef nonnull @.str.6) #12
  %2924 = load i32, ptr %2905, align 4, !tbaa !5
  %2925 = call ptr @strerror(i32 noundef %2924) #12
  %2926 = load i32, ptr %2905, align 4, !tbaa !5
  %2927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2917, ptr noundef nonnull %.str.7.sink2782, i32 noundef %2918, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.3, i32 noundef 315, ptr noundef %2921, ptr noundef %2923, ptr noundef %2925, i32 noundef %2926) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2928:                                             ; preds = %2899
  %2929 = load i32, ptr @test_count, align 4, !tbaa !5
  %2930 = add nsw i32 %2929, 1
  store i32 %2930, ptr @test_count, align 4, !tbaa !5
  %2931 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %22, i32 noundef 0) #12
  %2932 = icmp eq i32 %2931, -1
  br i1 %2932, label %2933, label %2957

2933:                                             ; preds = %2928
  %2934 = tail call ptr @__errno_location() #13
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  %2936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2937 = call i32 @s2n_print_stacktrace(ptr noundef %2936) #12
  %2938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2939 = trunc nuw i8 %2938 to i1
  br i1 %2939, label %2940, label %2944

2940:                                             ; preds = %2933
  %2941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2942 = call i32 @fileno(ptr noundef %2941) #12
  %2943 = call i32 @isatty(i32 noundef %2942) #12
  %.not1645 = icmp eq i32 %2943, 0
  br i1 %.not1645, label %2944, label %2945

2944:                                             ; preds = %2940, %2933
  br label %2945

2945:                                             ; preds = %2940, %2944
  %.str.7.sink2793 = phi ptr [ @.str.7, %2944 ], [ @.str.4, %2940 ]
  store i32 %2935, ptr %2934, align 4, !tbaa !5
  %2946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2947 = load i32, ptr @test_count, align 4, !tbaa !5
  %2948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror(i32 noundef %2949, ptr noundef nonnull @.str.6) #12
  %2951 = load i32, ptr %2948, align 4, !tbaa !5
  %2952 = call ptr @s2n_strerror_debug(i32 noundef %2951, ptr noundef nonnull @.str.6) #12
  %2953 = load i32, ptr %2934, align 4, !tbaa !5
  %2954 = call ptr @strerror(i32 noundef %2953) #12
  %2955 = load i32, ptr %2934, align 4, !tbaa !5
  %2956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2946, ptr noundef nonnull %.str.7.sink2793, i32 noundef %2947, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 317, ptr noundef %2950, ptr noundef %2952, ptr noundef %2954, i32 noundef %2955) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2957:                                             ; preds = %2928
  %2958 = getelementptr inbounds i8, ptr %2902, i64 1650
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(32) %2958, ptr noundef nonnull align 16 dereferenceable(32) @hello_retry_req_random, i64 32, i1 false)
  %2959 = load i32, ptr @test_count, align 4, !tbaa !5
  %2960 = add nsw i32 %2959, 1
  store i32 %2960, ptr @test_count, align 4, !tbaa !5
  %2961 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %2902, i8 noundef zeroext 34) #12
  %2962 = icmp eq i32 %2961, -1
  br i1 %2962, label %2963, label %2987

2963:                                             ; preds = %2957
  %2964 = tail call ptr @__errno_location() #13
  %2965 = load i32, ptr %2964, align 4, !tbaa !5
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = call i32 @s2n_print_stacktrace(ptr noundef %2966) #12
  %2968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2969 = trunc nuw i8 %2968 to i1
  br i1 %2969, label %2970, label %2974

2970:                                             ; preds = %2963
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = call i32 @fileno(ptr noundef %2971) #12
  %2973 = call i32 @isatty(i32 noundef %2972) #12
  %.not1644 = icmp eq i32 %2973, 0
  br i1 %.not1644, label %2974, label %2975

2974:                                             ; preds = %2970, %2963
  br label %2975

2975:                                             ; preds = %2970, %2974
  %.str.7.sink2804 = phi ptr [ @.str.7, %2974 ], [ @.str.4, %2970 ]
  store i32 %2965, ptr %2964, align 4, !tbaa !5
  %2976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2977 = load i32, ptr @test_count, align 4, !tbaa !5
  %2978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror(i32 noundef %2979, ptr noundef nonnull @.str.6) #12
  %2981 = load i32, ptr %2978, align 4, !tbaa !5
  %2982 = call ptr @s2n_strerror_debug(i32 noundef %2981, ptr noundef nonnull @.str.6) #12
  %2983 = load i32, ptr %2964, align 4, !tbaa !5
  %2984 = call ptr @strerror(i32 noundef %2983) #12
  %2985 = load i32, ptr %2964, align 4, !tbaa !5
  %2986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2976, ptr noundef nonnull %.str.7.sink2804, i32 noundef %2977, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.3, i32 noundef 321, ptr noundef %2980, ptr noundef %2982, ptr noundef %2984, i32 noundef %2985) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2987:                                             ; preds = %2957
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = add nsw i32 %2988, 1
  store i32 %2989, ptr @test_count, align 4, !tbaa !5
  %2990 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %2902) #12
  %2991 = icmp eq i32 %2990, -1
  br i1 %2991, label %2992, label %3016

2992:                                             ; preds = %2987
  %2993 = tail call ptr @__errno_location() #13
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2996 = call i32 @s2n_print_stacktrace(ptr noundef %2995) #12
  %2997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2998 = trunc nuw i8 %2997 to i1
  br i1 %2998, label %2999, label %3003

2999:                                             ; preds = %2992
  %3000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3001 = call i32 @fileno(ptr noundef %3000) #12
  %3002 = call i32 @isatty(i32 noundef %3001) #12
  %.not1643 = icmp eq i32 %3002, 0
  br i1 %.not1643, label %3003, label %3004

3003:                                             ; preds = %2999, %2992
  br label %3004

3004:                                             ; preds = %2999, %3003
  %.str.7.sink2815 = phi ptr [ @.str.7, %3003 ], [ @.str.4, %2999 ]
  store i32 %2994, ptr %2993, align 4, !tbaa !5
  %3005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3006 = load i32, ptr @test_count, align 4, !tbaa !5
  %3007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror(i32 noundef %3008, ptr noundef nonnull @.str.6) #12
  %3010 = load i32, ptr %3007, align 4, !tbaa !5
  %3011 = call ptr @s2n_strerror_debug(i32 noundef %3010, ptr noundef nonnull @.str.6) #12
  %3012 = load i32, ptr %2993, align 4, !tbaa !5
  %3013 = call ptr @strerror(i32 noundef %3012) #12
  %3014 = load i32, ptr %2993, align 4, !tbaa !5
  %3015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3005, ptr noundef nonnull %.str.7.sink2815, i32 noundef %3006, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.3, i32 noundef 322, ptr noundef %3009, ptr noundef %3011, ptr noundef %3013, i32 noundef %3014) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3016:                                             ; preds = %2987
  %3017 = getelementptr inbounds i8, ptr %2902, i64 656
  store ptr null, ptr %3017, align 8, !tbaa !54
  %3018 = getelementptr inbounds i8, ptr %2902, i64 720
  store ptr null, ptr %3018, align 8, !tbaa !59
  %3019 = load i32, ptr @test_count, align 4, !tbaa !5
  %3020 = add nsw i32 %3019, 1
  store i32 %3020, ptr @test_count, align 4, !tbaa !5
  %3021 = call i32 %343(ptr noundef nonnull %2902, ptr noundef nonnull %22) #12
  %3022 = icmp eq i32 %3021, -1
  br i1 %3022, label %3047, label %3023

3023:                                             ; preds = %3016
  %3024 = tail call ptr @__errno_location() #13
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = call i32 @s2n_print_stacktrace(ptr noundef %3026) #12
  %3028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3029 = trunc nuw i8 %3028 to i1
  br i1 %3029, label %3030, label %3034

3030:                                             ; preds = %3023
  %3031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3032 = call i32 @fileno(ptr noundef %3031) #12
  %3033 = call i32 @isatty(i32 noundef %3032) #12
  %.not1288 = icmp eq i32 %3033, 0
  br i1 %.not1288, label %3034, label %3035

3034:                                             ; preds = %3030, %3023
  br label %3035

3035:                                             ; preds = %3030, %3034
  %.str.7.sink2826 = phi ptr [ @.str.7, %3034 ], [ @.str.4, %3030 ]
  store i32 %3025, ptr %3024, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = load i32, ptr @test_count, align 4, !tbaa !5
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror(i32 noundef %3039, ptr noundef nonnull @.str.6) #12
  %3041 = load i32, ptr %3038, align 4, !tbaa !5
  %3042 = call ptr @s2n_strerror_debug(i32 noundef %3041, ptr noundef nonnull @.str.6) #12
  %3043 = load i32, ptr %3024, align 4, !tbaa !5
  %3044 = call ptr @strerror(i32 noundef %3043) #12
  %3045 = load i32, ptr %3024, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3036, ptr noundef nonnull %.str.7.sink2826, i32 noundef %3037, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.3, i32 noundef 327, ptr noundef %3040, ptr noundef %3042, ptr noundef %3044, i32 noundef %3045) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3047:                                             ; preds = %3016
  %3048 = load i32, ptr @test_count, align 4, !tbaa !5
  %3049 = add nsw i32 %3048, 1
  store i32 %3049, ptr @test_count, align 4, !tbaa !5
  %3050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = icmp eq i32 %3051, 335544385
  br i1 %3052, label %3076, label %3053

3053:                                             ; preds = %3047
  %3054 = tail call ptr @__errno_location() #13
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3057 = call i32 @s2n_print_stacktrace(ptr noundef %3056) #12
  %3058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3059 = trunc nuw i8 %3058 to i1
  br i1 %3059, label %3060, label %3064

3060:                                             ; preds = %3053
  %3061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3062 = call i32 @fileno(ptr noundef %3061) #12
  %3063 = call i32 @isatty(i32 noundef %3062) #12
  %.not1289 = icmp eq i32 %3063, 0
  br i1 %.not1289, label %3064, label %3065

3064:                                             ; preds = %3060, %3053
  br label %3065

3065:                                             ; preds = %3060, %3064
  %.str.7.sink2837 = phi ptr [ @.str.7, %3064 ], [ @.str.4, %3060 ]
  store i32 %3055, ptr %3054, align 4, !tbaa !5
  %3066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3067 = load i32, ptr @test_count, align 4, !tbaa !5
  %3068 = load i32, ptr %3050, align 4, !tbaa !5
  %3069 = call ptr @s2n_strerror(i32 noundef %3068, ptr noundef nonnull @.str.6) #12
  %3070 = load i32, ptr %3050, align 4, !tbaa !5
  %3071 = call ptr @s2n_strerror_debug(i32 noundef %3070, ptr noundef nonnull @.str.6) #12
  %3072 = load i32, ptr %3054, align 4, !tbaa !5
  %3073 = call ptr @strerror(i32 noundef %3072) #12
  %3074 = load i32, ptr %3054, align 4, !tbaa !5
  %3075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3066, ptr noundef nonnull %.str.7.sink2837, i32 noundef %3067, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.3, i32 noundef 327, ptr noundef %3069, ptr noundef %3071, ptr noundef %3073, i32 noundef %3074) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3076:                                             ; preds = %3047
  %3077 = add nsw i32 %3048, 2
  store i32 %3077, ptr @test_count, align 4, !tbaa !5
  %3078 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.6) #12
  %3079 = icmp eq ptr %3078, null
  br i1 %3079, label %3080, label %3103

3080:                                             ; preds = %3076
  %3081 = tail call ptr @__errno_location() #13
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = call i32 @s2n_print_stacktrace(ptr noundef %3083) #12
  %3085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3086 = trunc nuw i8 %3085 to i1
  br i1 %3086, label %3087, label %3091

3087:                                             ; preds = %3080
  %3088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3089 = call i32 @fileno(ptr noundef %3088) #12
  %3090 = call i32 @isatty(i32 noundef %3089) #12
  %.not1642 = icmp eq i32 %3090, 0
  br i1 %.not1642, label %3091, label %3092

3091:                                             ; preds = %3087, %3080
  br label %3092

3092:                                             ; preds = %3087, %3091
  %.str.7.sink2846 = phi ptr [ @.str.7, %3091 ], [ @.str.4, %3087 ]
  store i32 %3082, ptr %3081, align 4, !tbaa !5
  %3093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3094 = load i32, ptr @test_count, align 4, !tbaa !5
  %3095 = load i32, ptr %3050, align 4, !tbaa !5
  %3096 = call ptr @s2n_strerror(i32 noundef %3095, ptr noundef nonnull @.str.6) #12
  %3097 = load i32, ptr %3050, align 4, !tbaa !5
  %3098 = call ptr @s2n_strerror_debug(i32 noundef %3097, ptr noundef nonnull @.str.6) #12
  %3099 = load i32, ptr %3081, align 4, !tbaa !5
  %3100 = call ptr @strerror(i32 noundef %3099) #12
  %3101 = load i32, ptr %3081, align 4, !tbaa !5
  %3102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3093, ptr noundef nonnull %.str.7.sink2846, i32 noundef %3094, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.3, i32 noundef 327, ptr noundef %3096, ptr noundef %3098, ptr noundef %3100, i32 noundef %3101) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3103:                                             ; preds = %3076
  store i32 0, ptr %3050, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %3104 = tail call ptr @__errno_location() #13
  store i32 0, ptr %3104, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  store ptr null, ptr %23, align 8, !tbaa !9
  %3105 = load i32, ptr @test_count, align 4, !tbaa !5
  %3106 = add nsw i32 %3105, 1
  store i32 %3106, ptr @test_count, align 4, !tbaa !5
  %3107 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %2902, ptr noundef nonnull %23) #12
  %3108 = icmp eq i32 %3107, -1
  br i1 %3108, label %3109, label %3131

3109:                                             ; preds = %3103
  %3110 = load i32, ptr %3104, align 4, !tbaa !5
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = call i32 @s2n_print_stacktrace(ptr noundef %3111) #12
  %3113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3114 = trunc nuw i8 %3113 to i1
  br i1 %3114, label %3115, label %3119

3115:                                             ; preds = %3109
  %3116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3117 = call i32 @fileno(ptr noundef %3116) #12
  %3118 = call i32 @isatty(i32 noundef %3117) #12
  %.not1641 = icmp eq i32 %3118, 0
  br i1 %.not1641, label %3119, label %3120

3119:                                             ; preds = %3115, %3109
  br label %3120

3120:                                             ; preds = %3115, %3119
  %.str.7.sink2855 = phi ptr [ @.str.7, %3119 ], [ @.str.4, %3115 ]
  store i32 %3110, ptr %3104, align 4, !tbaa !5
  %3121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3122 = load i32, ptr @test_count, align 4, !tbaa !5
  %3123 = load i32, ptr %3050, align 4, !tbaa !5
  %3124 = call ptr @s2n_strerror(i32 noundef %3123, ptr noundef nonnull @.str.6) #12
  %3125 = load i32, ptr %3050, align 4, !tbaa !5
  %3126 = call ptr @s2n_strerror_debug(i32 noundef %3125, ptr noundef nonnull @.str.6) #12
  %3127 = load i32, ptr %3104, align 4, !tbaa !5
  %3128 = call ptr @strerror(i32 noundef %3127) #12
  %3129 = load i32, ptr %3104, align 4, !tbaa !5
  %3130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3121, ptr noundef nonnull %.str.7.sink2855, i32 noundef %3122, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 330, ptr noundef %3124, ptr noundef %3126, ptr noundef %3128, i32 noundef %3129) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3131:                                             ; preds = %3103
  %3132 = load i32, ptr @test_count, align 4, !tbaa !5
  %3133 = add nsw i32 %3132, 1
  store i32 %3133, ptr @test_count, align 4, !tbaa !5
  %3134 = load ptr, ptr %23, align 8, !tbaa !9
  %3135 = icmp eq ptr %3134, null
  br i1 %3135, label %3136, label %3158

3136:                                             ; preds = %3131
  %3137 = load i32, ptr %3104, align 4, !tbaa !5
  %3138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3139 = call i32 @s2n_print_stacktrace(ptr noundef %3138) #12
  %3140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3141 = trunc nuw i8 %3140 to i1
  br i1 %3141, label %3142, label %3146

3142:                                             ; preds = %3136
  %3143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3144 = call i32 @fileno(ptr noundef %3143) #12
  %3145 = call i32 @isatty(i32 noundef %3144) #12
  %.not1640 = icmp eq i32 %3145, 0
  br i1 %.not1640, label %3146, label %3147

3146:                                             ; preds = %3142, %3136
  br label %3147

3147:                                             ; preds = %3142, %3146
  %.str.7.sink2864 = phi ptr [ @.str.7, %3146 ], [ @.str.4, %3142 ]
  store i32 %3137, ptr %3104, align 4, !tbaa !5
  %3148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3149 = load i32, ptr @test_count, align 4, !tbaa !5
  %3150 = load i32, ptr %3050, align 4, !tbaa !5
  %3151 = call ptr @s2n_strerror(i32 noundef %3150, ptr noundef nonnull @.str.6) #12
  %3152 = load i32, ptr %3050, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror_debug(i32 noundef %3152, ptr noundef nonnull @.str.6) #12
  %3154 = load i32, ptr %3104, align 4, !tbaa !5
  %3155 = call ptr @strerror(i32 noundef %3154) #12
  %3156 = load i32, ptr %3104, align 4, !tbaa !5
  %3157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3148, ptr noundef nonnull %.str.7.sink2864, i32 noundef %3149, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 331, ptr noundef %3151, ptr noundef %3153, ptr noundef %3155, i32 noundef %3156) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3158:                                             ; preds = %3131
  %3159 = getelementptr inbounds i8, ptr %2902, i64 704
  %3160 = add nsw i32 %3132, 2
  store i32 %3160, ptr @test_count, align 4, !tbaa !5
  %3161 = load ptr, ptr %3159, align 8, !tbaa !22
  %3162 = icmp eq ptr %3161, null
  br i1 %3162, label %3185, label %3163

3163:                                             ; preds = %3158
  %3164 = load i32, ptr %3104, align 4, !tbaa !5
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = call i32 @s2n_print_stacktrace(ptr noundef %3165) #12
  %3167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3168 = trunc nuw i8 %3167 to i1
  br i1 %3168, label %3169, label %3173

3169:                                             ; preds = %3163
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = call i32 @fileno(ptr noundef %3170) #12
  %3172 = call i32 @isatty(i32 noundef %3171) #12
  %.not1290 = icmp eq i32 %3172, 0
  br i1 %.not1290, label %3173, label %3174

3173:                                             ; preds = %3169, %3163
  br label %3174

3174:                                             ; preds = %3169, %3173
  %.str.7.sink2873 = phi ptr [ @.str.7, %3173 ], [ @.str.4, %3169 ]
  store i32 %3164, ptr %3104, align 4, !tbaa !5
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = load i32, ptr @test_count, align 4, !tbaa !5
  %3177 = load i32, ptr %3050, align 4, !tbaa !5
  %3178 = call ptr @s2n_strerror(i32 noundef %3177, ptr noundef nonnull @.str.6) #12
  %3179 = load i32, ptr %3050, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror_debug(i32 noundef %3179, ptr noundef nonnull @.str.6) #12
  %3181 = load i32, ptr %3104, align 4, !tbaa !5
  %3182 = call ptr @strerror(i32 noundef %3181) #12
  %3183 = load i32, ptr %3104, align 4, !tbaa !5
  %3184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3175, ptr noundef nonnull %.str.7.sink2873, i32 noundef %3176, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.3, i32 noundef 334, ptr noundef %3178, ptr noundef %3180, ptr noundef %3182, i32 noundef %3183) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3185:                                             ; preds = %3158
  %3186 = add nsw i32 %3132, 3
  store i32 %3186, ptr @test_count, align 4, !tbaa !5
  %3187 = getelementptr inbounds i8, ptr %2902, i64 712
  %3188 = load ptr, ptr %3187, align 8, !tbaa !26
  %3189 = icmp eq ptr %3188, null
  br i1 %3189, label %3212, label %3190

3190:                                             ; preds = %3185
  %3191 = load i32, ptr %3104, align 4, !tbaa !5
  %3192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3193 = call i32 @s2n_print_stacktrace(ptr noundef %3192) #12
  %3194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3195 = trunc nuw i8 %3194 to i1
  br i1 %3195, label %3196, label %3200

3196:                                             ; preds = %3190
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3198 = call i32 @fileno(ptr noundef %3197) #12
  %3199 = call i32 @isatty(i32 noundef %3198) #12
  %.not1291 = icmp eq i32 %3199, 0
  br i1 %.not1291, label %3200, label %3201

3200:                                             ; preds = %3196, %3190
  br label %3201

3201:                                             ; preds = %3196, %3200
  %.str.7.sink2882 = phi ptr [ @.str.7, %3200 ], [ @.str.4, %3196 ]
  store i32 %3191, ptr %3104, align 4, !tbaa !5
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = load i32, ptr @test_count, align 4, !tbaa !5
  %3204 = load i32, ptr %3050, align 4, !tbaa !5
  %3205 = call ptr @s2n_strerror(i32 noundef %3204, ptr noundef nonnull @.str.6) #12
  %3206 = load i32, ptr %3050, align 4, !tbaa !5
  %3207 = call ptr @s2n_strerror_debug(i32 noundef %3206, ptr noundef nonnull @.str.6) #12
  %3208 = load i32, ptr %3104, align 4, !tbaa !5
  %3209 = call ptr @strerror(i32 noundef %3208) #12
  %3210 = load i32, ptr %3104, align 4, !tbaa !5
  %3211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3202, ptr noundef nonnull %.str.7.sink2882, i32 noundef %3203, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.3, i32 noundef 335, ptr noundef %3205, ptr noundef %3207, ptr noundef %3209, i32 noundef %3210) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3212:                                             ; preds = %3185
  %3213 = add nsw i32 %3132, 4
  store i32 %3213, ptr @test_count, align 4, !tbaa !5
  %3214 = call i32 @s2n_stuffer_free(ptr noundef nonnull %22) #12
  %3215 = icmp eq i32 %3214, -1
  br i1 %3215, label %3216, label %3238

3216:                                             ; preds = %3212
  %3217 = load i32, ptr %3104, align 4, !tbaa !5
  %3218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3219 = call i32 @s2n_print_stacktrace(ptr noundef %3218) #12
  %3220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3221 = trunc nuw i8 %3220 to i1
  br i1 %3221, label %3222, label %3226

3222:                                             ; preds = %3216
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = call i32 @fileno(ptr noundef %3223) #12
  %3225 = call i32 @isatty(i32 noundef %3224) #12
  %.not1639 = icmp eq i32 %3225, 0
  br i1 %.not1639, label %3226, label %3227

3226:                                             ; preds = %3222, %3216
  br label %3227

3227:                                             ; preds = %3222, %3226
  %.str.7.sink2891 = phi ptr [ @.str.7, %3226 ], [ @.str.4, %3222 ]
  store i32 %3217, ptr %3104, align 4, !tbaa !5
  %3228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3229 = load i32, ptr @test_count, align 4, !tbaa !5
  %3230 = load i32, ptr %3050, align 4, !tbaa !5
  %3231 = call ptr @s2n_strerror(i32 noundef %3230, ptr noundef nonnull @.str.6) #12
  %3232 = load i32, ptr %3050, align 4, !tbaa !5
  %3233 = call ptr @s2n_strerror_debug(i32 noundef %3232, ptr noundef nonnull @.str.6) #12
  %3234 = load i32, ptr %3104, align 4, !tbaa !5
  %3235 = call ptr @strerror(i32 noundef %3234) #12
  %3236 = load i32, ptr %3104, align 4, !tbaa !5
  %3237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3228, ptr noundef nonnull %.str.7.sink2891, i32 noundef %3229, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 337, ptr noundef %3231, ptr noundef %3233, ptr noundef %3235, i32 noundef %3236) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3238:                                             ; preds = %3212
  %3239 = load i32, ptr @test_count, align 4, !tbaa !5
  %3240 = add nsw i32 %3239, 1
  store i32 %3240, ptr @test_count, align 4, !tbaa !5
  %3241 = call i32 @s2n_connection_free(ptr noundef nonnull %2902) #12
  %3242 = icmp eq i32 %3241, -1
  br i1 %3242, label %3243, label %3265

3243:                                             ; preds = %3238
  %3244 = load i32, ptr %3104, align 4, !tbaa !5
  %3245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3246 = call i32 @s2n_print_stacktrace(ptr noundef %3245) #12
  %3247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3248 = trunc nuw i8 %3247 to i1
  br i1 %3248, label %3249, label %3253

3249:                                             ; preds = %3243
  %3250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3251 = call i32 @fileno(ptr noundef %3250) #12
  %3252 = call i32 @isatty(i32 noundef %3251) #12
  %.not1638 = icmp eq i32 %3252, 0
  br i1 %.not1638, label %3253, label %3254

3253:                                             ; preds = %3249, %3243
  br label %3254

3254:                                             ; preds = %3249, %3253
  %.str.7.sink2900 = phi ptr [ @.str.7, %3253 ], [ @.str.4, %3249 ]
  store i32 %3244, ptr %3104, align 4, !tbaa !5
  %3255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3256 = load i32, ptr @test_count, align 4, !tbaa !5
  %3257 = load i32, ptr %3050, align 4, !tbaa !5
  %3258 = call ptr @s2n_strerror(i32 noundef %3257, ptr noundef nonnull @.str.6) #12
  %3259 = load i32, ptr %3050, align 4, !tbaa !5
  %3260 = call ptr @s2n_strerror_debug(i32 noundef %3259, ptr noundef nonnull @.str.6) #12
  %3261 = load i32, ptr %3104, align 4, !tbaa !5
  %3262 = call ptr @strerror(i32 noundef %3261) #12
  %3263 = load i32, ptr %3104, align 4, !tbaa !5
  %3264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3255, ptr noundef nonnull %.str.7.sink2900, i32 noundef %3256, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 338, ptr noundef %3258, ptr noundef %3260, ptr noundef %3262, i32 noundef %3263) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3265:                                             ; preds = %3238
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #12
  %3266 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3267 = load i32, ptr @test_count, align 4, !tbaa !5
  %3268 = add nsw i32 %3267, 1
  store i32 %3268, ptr @test_count, align 4, !tbaa !5
  %3269 = icmp eq ptr %3266, null
  br i1 %3269, label %3270, label %3292

3270:                                             ; preds = %3265
  %3271 = load i32, ptr %3104, align 4, !tbaa !5
  %3272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3273 = call i32 @s2n_print_stacktrace(ptr noundef %3272) #12
  %3274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3275 = trunc nuw i8 %3274 to i1
  br i1 %3275, label %3276, label %3280

3276:                                             ; preds = %3270
  %3277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3278 = call i32 @fileno(ptr noundef %3277) #12
  %3279 = call i32 @isatty(i32 noundef %3278) #12
  %.not1637 = icmp eq i32 %3279, 0
  br i1 %.not1637, label %3280, label %3281

3280:                                             ; preds = %3276, %3270
  br label %3281

3281:                                             ; preds = %3276, %3280
  %.str.7.sink2909 = phi ptr [ @.str.7, %3280 ], [ @.str.4, %3276 ]
  store i32 %3271, ptr %3104, align 4, !tbaa !5
  %3282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3283 = load i32, ptr @test_count, align 4, !tbaa !5
  %3284 = load i32, ptr %3050, align 4, !tbaa !5
  %3285 = call ptr @s2n_strerror(i32 noundef %3284, ptr noundef nonnull @.str.6) #12
  %3286 = load i32, ptr %3050, align 4, !tbaa !5
  %3287 = call ptr @s2n_strerror_debug(i32 noundef %3286, ptr noundef nonnull @.str.6) #12
  %3288 = load i32, ptr %3104, align 4, !tbaa !5
  %3289 = call ptr @strerror(i32 noundef %3288) #12
  %3290 = load i32, ptr %3104, align 4, !tbaa !5
  %3291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3282, ptr noundef nonnull %.str.7.sink2909, i32 noundef %3283, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.3, i32 noundef 344, ptr noundef %3285, ptr noundef %3287, ptr noundef %3289, i32 noundef %3290) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3292:                                             ; preds = %3265
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  store ptr null, ptr %24, align 8, !tbaa !9
  %3293 = add nsw i32 %3267, 2
  store i32 %3293, ptr @test_count, align 4, !tbaa !5
  %3294 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %3266, ptr noundef nonnull %24) #12
  %3295 = icmp eq i32 %3294, -1
  br i1 %3295, label %3296, label %3318

3296:                                             ; preds = %3292
  %3297 = load i32, ptr %3104, align 4, !tbaa !5
  %3298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3299 = call i32 @s2n_print_stacktrace(ptr noundef %3298) #12
  %3300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3301 = trunc nuw i8 %3300 to i1
  br i1 %3301, label %3302, label %3306

3302:                                             ; preds = %3296
  %3303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3304 = call i32 @fileno(ptr noundef %3303) #12
  %3305 = call i32 @isatty(i32 noundef %3304) #12
  %.not1636 = icmp eq i32 %3305, 0
  br i1 %.not1636, label %3306, label %3307

3306:                                             ; preds = %3302, %3296
  br label %3307

3307:                                             ; preds = %3302, %3306
  %.str.7.sink2918 = phi ptr [ @.str.7, %3306 ], [ @.str.4, %3302 ]
  store i32 %3297, ptr %3104, align 4, !tbaa !5
  %3308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3309 = load i32, ptr @test_count, align 4, !tbaa !5
  %3310 = load i32, ptr %3050, align 4, !tbaa !5
  %3311 = call ptr @s2n_strerror(i32 noundef %3310, ptr noundef nonnull @.str.6) #12
  %3312 = load i32, ptr %3050, align 4, !tbaa !5
  %3313 = call ptr @s2n_strerror_debug(i32 noundef %3312, ptr noundef nonnull @.str.6) #12
  %3314 = load i32, ptr %3104, align 4, !tbaa !5
  %3315 = call ptr @strerror(i32 noundef %3314) #12
  %3316 = load i32, ptr %3104, align 4, !tbaa !5
  %3317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3308, ptr noundef nonnull %.str.7.sink2918, i32 noundef %3309, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.3, i32 noundef 347, ptr noundef %3311, ptr noundef %3313, ptr noundef %3315, i32 noundef %3316) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3318:                                             ; preds = %3292
  %3319 = load i32, ptr @test_count, align 4, !tbaa !5
  %3320 = add nsw i32 %3319, 1
  store i32 %3320, ptr @test_count, align 4, !tbaa !5
  %3321 = load ptr, ptr %24, align 8, !tbaa !9
  %3322 = icmp eq ptr %3321, null
  br i1 %3322, label %3323, label %3345

3323:                                             ; preds = %3318
  %3324 = load i32, ptr %3104, align 4, !tbaa !5
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = call i32 @s2n_print_stacktrace(ptr noundef %3325) #12
  %3327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3328 = trunc nuw i8 %3327 to i1
  br i1 %3328, label %3329, label %3333

3329:                                             ; preds = %3323
  %3330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3331 = call i32 @fileno(ptr noundef %3330) #12
  %3332 = call i32 @isatty(i32 noundef %3331) #12
  %.not1635 = icmp eq i32 %3332, 0
  br i1 %.not1635, label %3333, label %3334

3333:                                             ; preds = %3329, %3323
  br label %3334

3334:                                             ; preds = %3329, %3333
  %.str.7.sink2927 = phi ptr [ @.str.7, %3333 ], [ @.str.4, %3329 ]
  store i32 %3324, ptr %3104, align 4, !tbaa !5
  %3335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3336 = load i32, ptr @test_count, align 4, !tbaa !5
  %3337 = load i32, ptr %3050, align 4, !tbaa !5
  %3338 = call ptr @s2n_strerror(i32 noundef %3337, ptr noundef nonnull @.str.6) #12
  %3339 = load i32, ptr %3050, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror_debug(i32 noundef %3339, ptr noundef nonnull @.str.6) #12
  %3341 = load i32, ptr %3104, align 4, !tbaa !5
  %3342 = call ptr @strerror(i32 noundef %3341) #12
  %3343 = load i32, ptr %3104, align 4, !tbaa !5
  %3344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3335, ptr noundef nonnull %.str.7.sink2927, i32 noundef %3336, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.3, i32 noundef 348, ptr noundef %3338, ptr noundef %3340, ptr noundef %3342, i32 noundef %3343) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3345:                                             ; preds = %3318
  %3346 = getelementptr inbounds i8, ptr %3321, i64 8
  %3347 = load ptr, ptr %3346, align 8, !tbaa !24
  %3348 = load ptr, ptr %3347, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %25) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %25, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %26) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %26, i8 0, i64 40, i1 false)
  %3349 = add nsw i32 %3319, 2
  store i32 %3349, ptr @test_count, align 4, !tbaa !5
  %3350 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %25, i32 noundef 0) #12
  %3351 = icmp eq i32 %3350, -1
  br i1 %3351, label %3352, label %3374

3352:                                             ; preds = %3345
  %3353 = load i32, ptr %3104, align 4, !tbaa !5
  %3354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3355 = call i32 @s2n_print_stacktrace(ptr noundef %3354) #12
  %3356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3357 = trunc nuw i8 %3356 to i1
  br i1 %3357, label %3358, label %3362

3358:                                             ; preds = %3352
  %3359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3360 = call i32 @fileno(ptr noundef %3359) #12
  %3361 = call i32 @isatty(i32 noundef %3360) #12
  %.not1634 = icmp eq i32 %3361, 0
  br i1 %.not1634, label %3362, label %3363

3362:                                             ; preds = %3358, %3352
  br label %3363

3363:                                             ; preds = %3358, %3362
  %.str.7.sink2936 = phi ptr [ @.str.7, %3362 ], [ @.str.4, %3358 ]
  store i32 %3353, ptr %3104, align 4, !tbaa !5
  %3364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3365 = load i32, ptr @test_count, align 4, !tbaa !5
  %3366 = load i32, ptr %3050, align 4, !tbaa !5
  %3367 = call ptr @s2n_strerror(i32 noundef %3366, ptr noundef nonnull @.str.6) #12
  %3368 = load i32, ptr %3050, align 4, !tbaa !5
  %3369 = call ptr @s2n_strerror_debug(i32 noundef %3368, ptr noundef nonnull @.str.6) #12
  %3370 = load i32, ptr %3104, align 4, !tbaa !5
  %3371 = call ptr @strerror(i32 noundef %3370) #12
  %3372 = load i32, ptr %3104, align 4, !tbaa !5
  %3373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3364, ptr noundef nonnull %.str.7.sink2936, i32 noundef %3365, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.3, i32 noundef 353, ptr noundef %3367, ptr noundef %3369, ptr noundef %3371, i32 noundef %3372) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3374:                                             ; preds = %3345
  %3375 = load i32, ptr @test_count, align 4, !tbaa !5
  %3376 = add nsw i32 %3375, 1
  store i32 %3376, ptr @test_count, align 4, !tbaa !5
  %3377 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %26, i32 noundef 0) #12
  %3378 = icmp eq i32 %3377, -1
  br i1 %3378, label %3379, label %3401

3379:                                             ; preds = %3374
  %3380 = load i32, ptr %3104, align 4, !tbaa !5
  %3381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3382 = call i32 @s2n_print_stacktrace(ptr noundef %3381) #12
  %3383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3384 = trunc nuw i8 %3383 to i1
  br i1 %3384, label %3385, label %3389

3385:                                             ; preds = %3379
  %3386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3387 = call i32 @fileno(ptr noundef %3386) #12
  %3388 = call i32 @isatty(i32 noundef %3387) #12
  %.not1633 = icmp eq i32 %3388, 0
  br i1 %.not1633, label %3389, label %3390

3389:                                             ; preds = %3385, %3379
  br label %3390

3390:                                             ; preds = %3385, %3389
  %.str.7.sink2945 = phi ptr [ @.str.7, %3389 ], [ @.str.4, %3385 ]
  store i32 %3380, ptr %3104, align 4, !tbaa !5
  %3391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3392 = load i32, ptr @test_count, align 4, !tbaa !5
  %3393 = load i32, ptr %3050, align 4, !tbaa !5
  %3394 = call ptr @s2n_strerror(i32 noundef %3393, ptr noundef nonnull @.str.6) #12
  %3395 = load i32, ptr %3050, align 4, !tbaa !5
  %3396 = call ptr @s2n_strerror_debug(i32 noundef %3395, ptr noundef nonnull @.str.6) #12
  %3397 = load i32, ptr %3104, align 4, !tbaa !5
  %3398 = call ptr @strerror(i32 noundef %3397) #12
  %3399 = load i32, ptr %3104, align 4, !tbaa !5
  %3400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3391, ptr noundef nonnull %.str.7.sink2945, i32 noundef %3392, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.3, i32 noundef 354, ptr noundef %3394, ptr noundef %3396, ptr noundef %3398, i32 noundef %3399) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3401:                                             ; preds = %3374
  %3402 = load i32, ptr @test_count, align 4, !tbaa !5
  %3403 = add nsw i32 %3402, 1
  store i32 %3403, ptr @test_count, align 4, !tbaa !5
  %3404 = call i32 %343(ptr noundef nonnull %3266, ptr noundef nonnull %25) #12
  %3405 = icmp eq i32 %3404, -1
  br i1 %3405, label %3406, label %3428

3406:                                             ; preds = %3401
  %3407 = load i32, ptr %3104, align 4, !tbaa !5
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = call i32 @s2n_print_stacktrace(ptr noundef %3408) #12
  %3410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3411 = trunc nuw i8 %3410 to i1
  br i1 %3411, label %3412, label %3416

3412:                                             ; preds = %3406
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = call i32 @fileno(ptr noundef %3413) #12
  %3415 = call i32 @isatty(i32 noundef %3414) #12
  %.not1632 = icmp eq i32 %3415, 0
  br i1 %.not1632, label %3416, label %3417

3416:                                             ; preds = %3412, %3406
  br label %3417

3417:                                             ; preds = %3412, %3416
  %.str.7.sink2954 = phi ptr [ @.str.7, %3416 ], [ @.str.4, %3412 ]
  store i32 %3407, ptr %3104, align 4, !tbaa !5
  %3418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3419 = load i32, ptr @test_count, align 4, !tbaa !5
  %3420 = load i32, ptr %3050, align 4, !tbaa !5
  %3421 = call ptr @s2n_strerror(i32 noundef %3420, ptr noundef nonnull @.str.6) #12
  %3422 = load i32, ptr %3050, align 4, !tbaa !5
  %3423 = call ptr @s2n_strerror_debug(i32 noundef %3422, ptr noundef nonnull @.str.6) #12
  %3424 = load i32, ptr %3104, align 4, !tbaa !5
  %3425 = call ptr @strerror(i32 noundef %3424) #12
  %3426 = load i32, ptr %3104, align 4, !tbaa !5
  %3427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3418, ptr noundef nonnull %.str.7.sink2954, i32 noundef %3419, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.3, i32 noundef 356, ptr noundef %3421, ptr noundef %3423, ptr noundef %3425, i32 noundef %3426) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3428:                                             ; preds = %3401
  %3429 = load i32, ptr @test_count, align 4, !tbaa !5
  %3430 = add nsw i32 %3429, 1
  store i32 %3430, ptr @test_count, align 4, !tbaa !5
  %3431 = getelementptr inbounds i8, ptr %3266, i64 704
  %3432 = load ptr, ptr %3431, align 8, !tbaa !60
  %3433 = icmp eq ptr %3432, %3348
  br i1 %3433, label %3456, label %3434

3434:                                             ; preds = %3428
  %3435 = load i32, ptr %3104, align 4, !tbaa !5
  %3436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3437 = call i32 @s2n_print_stacktrace(ptr noundef %3436) #12
  %3438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3439 = trunc nuw i8 %3438 to i1
  br i1 %3439, label %3440, label %3444

3440:                                             ; preds = %3434
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = call i32 @fileno(ptr noundef %3441) #12
  %3443 = call i32 @isatty(i32 noundef %3442) #12
  %.not1292 = icmp eq i32 %3443, 0
  br i1 %.not1292, label %3444, label %3445

3444:                                             ; preds = %3440, %3434
  br label %3445

3445:                                             ; preds = %3440, %3444
  %.str.7.sink2963 = phi ptr [ @.str.7, %3444 ], [ @.str.4, %3440 ]
  store i32 %3435, ptr %3104, align 4, !tbaa !5
  %3446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3447 = load i32, ptr @test_count, align 4, !tbaa !5
  %3448 = load i32, ptr %3050, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror(i32 noundef %3448, ptr noundef nonnull @.str.6) #12
  %3450 = load i32, ptr %3050, align 4, !tbaa !5
  %3451 = call ptr @s2n_strerror_debug(i32 noundef %3450, ptr noundef nonnull @.str.6) #12
  %3452 = load i32, ptr %3104, align 4, !tbaa !5
  %3453 = call ptr @strerror(i32 noundef %3452) #12
  %3454 = load i32, ptr %3104, align 4, !tbaa !5
  %3455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3446, ptr noundef nonnull %.str.7.sink2963, i32 noundef %3447, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.3, i32 noundef 357, ptr noundef %3449, ptr noundef %3451, ptr noundef %3453, i32 noundef %3454) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3456:                                             ; preds = %3428
  %3457 = add nsw i32 %3429, 2
  store i32 %3457, ptr @test_count, align 4, !tbaa !5
  %3458 = getelementptr inbounds i8, ptr %3266, i64 712
  %3459 = load ptr, ptr %3458, align 8, !tbaa !61
  %3460 = icmp eq ptr %3459, null
  br i1 %3460, label %3461, label %3483

3461:                                             ; preds = %3456
  %3462 = load i32, ptr %3104, align 4, !tbaa !5
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = call i32 @s2n_print_stacktrace(ptr noundef %3463) #12
  %3465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3466 = trunc nuw i8 %3465 to i1
  br i1 %3466, label %3467, label %3471

3467:                                             ; preds = %3461
  %3468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3469 = call i32 @fileno(ptr noundef %3468) #12
  %3470 = call i32 @isatty(i32 noundef %3469) #12
  %.not1631 = icmp eq i32 %3470, 0
  br i1 %.not1631, label %3471, label %3472

3471:                                             ; preds = %3467, %3461
  br label %3472

3472:                                             ; preds = %3467, %3471
  %.str.7.sink2972 = phi ptr [ @.str.7, %3471 ], [ @.str.4, %3467 ]
  store i32 %3462, ptr %3104, align 4, !tbaa !5
  %3473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3474 = load i32, ptr @test_count, align 4, !tbaa !5
  %3475 = load i32, ptr %3050, align 4, !tbaa !5
  %3476 = call ptr @s2n_strerror(i32 noundef %3475, ptr noundef nonnull @.str.6) #12
  %3477 = load i32, ptr %3050, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror_debug(i32 noundef %3477, ptr noundef nonnull @.str.6) #12
  %3479 = load i32, ptr %3104, align 4, !tbaa !5
  %3480 = call ptr @strerror(i32 noundef %3479) #12
  %3481 = load i32, ptr %3104, align 4, !tbaa !5
  %3482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3473, ptr noundef nonnull %.str.7.sink2972, i32 noundef %3474, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.3, i32 noundef 358, ptr noundef %3476, ptr noundef %3478, ptr noundef %3480, i32 noundef %3481) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3483:                                             ; preds = %3456
  %3484 = getelementptr inbounds i8, ptr %3266, i64 1650
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(32) %3484, ptr noundef nonnull align 16 dereferenceable(32) @hello_retry_req_random, i64 32, i1 false)
  %3485 = add nsw i32 %3429, 3
  store i32 %3485, ptr @test_count, align 4, !tbaa !5
  %3486 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %3266, i8 noundef zeroext 34) #12
  %3487 = icmp eq i32 %3486, -1
  br i1 %3487, label %3488, label %3510

3488:                                             ; preds = %3483
  %3489 = load i32, ptr %3104, align 4, !tbaa !5
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = call i32 @s2n_print_stacktrace(ptr noundef %3490) #12
  %3492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3493 = trunc nuw i8 %3492 to i1
  br i1 %3493, label %3494, label %3498

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

3498:                                             ; preds = %3494, %3488
  br label %3499

3499:                                             ; preds = %3494, %3498
  %.str.7.sink2981 = phi ptr [ @.str.7, %3498 ], [ @.str.4, %3494 ]
  store i32 %3489, ptr %3104, align 4, !tbaa !5
  %3500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3501 = load i32, ptr @test_count, align 4, !tbaa !5
  %3502 = load i32, ptr %3050, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror(i32 noundef %3502, ptr noundef nonnull @.str.6) #12
  %3504 = load i32, ptr %3050, align 4, !tbaa !5
  %3505 = call ptr @s2n_strerror_debug(i32 noundef %3504, ptr noundef nonnull @.str.6) #12
  %3506 = load i32, ptr %3104, align 4, !tbaa !5
  %3507 = call ptr @strerror(i32 noundef %3506) #12
  %3508 = load i32, ptr %3104, align 4, !tbaa !5
  %3509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3500, ptr noundef nonnull %.str.7.sink2981, i32 noundef %3501, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.3, i32 noundef 362, ptr noundef %3503, ptr noundef %3505, ptr noundef %3507, i32 noundef %3508) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3510:                                             ; preds = %3483
  %3511 = load i32, ptr @test_count, align 4, !tbaa !5
  %3512 = add nsw i32 %3511, 1
  store i32 %3512, ptr @test_count, align 4, !tbaa !5
  %3513 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %3266) #12
  %3514 = icmp eq i32 %3513, -1
  br i1 %3514, label %3515, label %3537

3515:                                             ; preds = %3510
  %3516 = load i32, ptr %3104, align 4, !tbaa !5
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = call i32 @s2n_print_stacktrace(ptr noundef %3517) #12
  %3519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3520 = trunc nuw i8 %3519 to i1
  br i1 %3520, label %3521, label %3525

3521:                                             ; preds = %3515
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = call i32 @fileno(ptr noundef %3522) #12
  %3524 = call i32 @isatty(i32 noundef %3523) #12
  %.not1629 = icmp eq i32 %3524, 0
  br i1 %.not1629, label %3525, label %3526

3525:                                             ; preds = %3521, %3515
  br label %3526

3526:                                             ; preds = %3521, %3525
  %.str.7.sink2990 = phi ptr [ @.str.7, %3525 ], [ @.str.4, %3521 ]
  store i32 %3516, ptr %3104, align 4, !tbaa !5
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = load i32, ptr @test_count, align 4, !tbaa !5
  %3529 = load i32, ptr %3050, align 4, !tbaa !5
  %3530 = call ptr @s2n_strerror(i32 noundef %3529, ptr noundef nonnull @.str.6) #12
  %3531 = load i32, ptr %3050, align 4, !tbaa !5
  %3532 = call ptr @s2n_strerror_debug(i32 noundef %3531, ptr noundef nonnull @.str.6) #12
  %3533 = load i32, ptr %3104, align 4, !tbaa !5
  %3534 = call ptr @strerror(i32 noundef %3533) #12
  %3535 = load i32, ptr %3104, align 4, !tbaa !5
  %3536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3527, ptr noundef nonnull %.str.7.sink2990, i32 noundef %3528, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.3, i32 noundef 363, ptr noundef %3530, ptr noundef %3532, ptr noundef %3534, i32 noundef %3535) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3537:                                             ; preds = %3510
  %3538 = getelementptr inbounds i8, ptr %3266, i64 4088
  store i32 4, ptr %3538, align 8, !tbaa !62
  %3539 = getelementptr inbounds i8, ptr %3266, i64 656
  store ptr %3348, ptr %3539, align 8, !tbaa !54
  %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 %343(ptr noundef nonnull %3266, ptr noundef nonnull %26) #12
  %3543 = icmp eq i32 %3542, -1
  br i1 %3543, label %3566, label %3544

3544:                                             ; preds = %3537
  %3545 = load i32, ptr %3104, align 4, !tbaa !5
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = call i32 @s2n_print_stacktrace(ptr noundef %3546) #12
  %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) #12
  %3553 = call i32 @isatty(i32 noundef %3552) #12
  %.not1293 = icmp eq i32 %3553, 0
  br i1 %.not1293, label %3554, label %3555

3554:                                             ; preds = %3550, %3544
  br label %3555

3555:                                             ; preds = %3550, %3554
  %.str.7.sink2999 = phi ptr [ @.str.7, %3554 ], [ @.str.4, %3550 ]
  store i32 %3545, ptr %3104, 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 %3050, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror(i32 noundef %3558, ptr noundef nonnull @.str.6) #12
  %3560 = load i32, ptr %3050, align 4, !tbaa !5
  %3561 = call ptr @s2n_strerror_debug(i32 noundef %3560, ptr noundef nonnull @.str.6) #12
  %3562 = load i32, ptr %3104, align 4, !tbaa !5
  %3563 = call ptr @strerror(i32 noundef %3562) #12
  %3564 = load i32, ptr %3104, align 4, !tbaa !5
  %3565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3556, ptr noundef nonnull %.str.7.sink2999, i32 noundef %3557, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.3, i32 noundef 368, ptr noundef %3559, ptr noundef %3561, ptr noundef %3563, i32 noundef %3564) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3566:                                             ; preds = %3537
  %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 = load i32, ptr %3050, align 4, !tbaa !5
  %3570 = icmp eq i32 %3569, 335544385
  br i1 %3570, label %3593, label %3571

3571:                                             ; preds = %3566
  %3572 = load i32, ptr %3104, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = call i32 @s2n_print_stacktrace(ptr noundef %3573) #12
  %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) #12
  %3580 = call i32 @isatty(i32 noundef %3579) #12
  %.not1294 = icmp eq i32 %3580, 0
  br i1 %.not1294, label %3581, label %3582

3581:                                             ; preds = %3577, %3571
  br label %3582

3582:                                             ; preds = %3577, %3581
  %.str.7.sink3008 = phi ptr [ @.str.7, %3581 ], [ @.str.4, %3577 ]
  store i32 %3572, ptr %3104, 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 %3050, align 4, !tbaa !5
  %3586 = call ptr @s2n_strerror(i32 noundef %3585, ptr noundef nonnull @.str.6) #12
  %3587 = load i32, ptr %3050, align 4, !tbaa !5
  %3588 = call ptr @s2n_strerror_debug(i32 noundef %3587, ptr noundef nonnull @.str.6) #12
  %3589 = load i32, ptr %3104, align 4, !tbaa !5
  %3590 = call ptr @strerror(i32 noundef %3589) #12
  %3591 = load i32, ptr %3104, align 4, !tbaa !5
  %3592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3583, ptr noundef nonnull %.str.7.sink3008, i32 noundef %3584, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.3, i32 noundef 368, ptr noundef %3586, ptr noundef %3588, ptr noundef %3590, i32 noundef %3591) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3593:                                             ; preds = %3566
  %3594 = add nsw i32 %3567, 2
  store i32 %3594, ptr @test_count, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror_debug(i32 noundef 335544385, ptr noundef nonnull @.str.6) #12
  %3596 = icmp eq ptr %3595, null
  br i1 %3596, label %3597, label %3619

3597:                                             ; preds = %3593
  %3598 = load i32, ptr %3104, align 4, !tbaa !5
  %3599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3600 = call i32 @s2n_print_stacktrace(ptr noundef %3599) #12
  %3601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3602 = trunc nuw i8 %3601 to i1
  br i1 %3602, label %3603, label %3607

3603:                                             ; preds = %3597
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @fileno(ptr noundef %3604) #12
  %3606 = call i32 @isatty(i32 noundef %3605) #12
  %.not1628 = icmp eq i32 %3606, 0
  br i1 %.not1628, label %3607, label %3608

3607:                                             ; preds = %3603, %3597
  br label %3608

3608:                                             ; preds = %3603, %3607
  %.str.7.sink3017 = phi ptr [ @.str.7, %3607 ], [ @.str.4, %3603 ]
  store i32 %3598, ptr %3104, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = load i32, ptr @test_count, align 4, !tbaa !5
  %3611 = load i32, ptr %3050, align 4, !tbaa !5
  %3612 = call ptr @s2n_strerror(i32 noundef %3611, ptr noundef nonnull @.str.6) #12
  %3613 = load i32, ptr %3050, align 4, !tbaa !5
  %3614 = call ptr @s2n_strerror_debug(i32 noundef %3613, ptr noundef nonnull @.str.6) #12
  %3615 = load i32, ptr %3104, align 4, !tbaa !5
  %3616 = call ptr @strerror(i32 noundef %3615) #12
  %3617 = load i32, ptr %3104, align 4, !tbaa !5
  %3618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3609, ptr noundef nonnull %.str.7.sink3017, i32 noundef %3610, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.3, i32 noundef 368, ptr noundef %3612, ptr noundef %3614, ptr noundef %3616, i32 noundef %3617) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3619:                                             ; preds = %3593
  store i32 0, ptr %3050, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %3104, align 4, !tbaa !5
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = add nsw i32 %3620, 1
  store i32 %3621, ptr @test_count, align 4, !tbaa !5
  %3622 = call i32 @s2n_stuffer_free(ptr noundef nonnull %25) #12
  %3623 = icmp eq i32 %3622, -1
  br i1 %3623, label %3624, label %3646

3624:                                             ; preds = %3619
  %3625 = load i32, ptr %3104, align 4, !tbaa !5
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = call i32 @s2n_print_stacktrace(ptr noundef %3626) #12
  %3628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3629 = trunc nuw i8 %3628 to i1
  br i1 %3629, label %3630, label %3634

3630:                                             ; preds = %3624
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = call i32 @fileno(ptr noundef %3631) #12
  %3633 = call i32 @isatty(i32 noundef %3632) #12
  %.not1627 = icmp eq i32 %3633, 0
  br i1 %.not1627, label %3634, label %3635

3634:                                             ; preds = %3630, %3624
  br label %3635

3635:                                             ; preds = %3630, %3634
  %.str.7.sink3026 = phi ptr [ @.str.7, %3634 ], [ @.str.4, %3630 ]
  store i32 %3625, ptr %3104, align 4, !tbaa !5
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = load i32, ptr @test_count, align 4, !tbaa !5
  %3638 = load i32, ptr %3050, align 4, !tbaa !5
  %3639 = call ptr @s2n_strerror(i32 noundef %3638, ptr noundef nonnull @.str.6) #12
  %3640 = load i32, ptr %3050, align 4, !tbaa !5
  %3641 = call ptr @s2n_strerror_debug(i32 noundef %3640, ptr noundef nonnull @.str.6) #12
  %3642 = load i32, ptr %3104, align 4, !tbaa !5
  %3643 = call ptr @strerror(i32 noundef %3642) #12
  %3644 = load i32, ptr %3104, align 4, !tbaa !5
  %3645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3636, ptr noundef nonnull %.str.7.sink3026, i32 noundef %3637, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.3, i32 noundef 370, ptr noundef %3639, ptr noundef %3641, ptr noundef %3643, i32 noundef %3644) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3646:                                             ; preds = %3619
  %3647 = load i32, ptr @test_count, align 4, !tbaa !5
  %3648 = add nsw i32 %3647, 1
  store i32 %3648, ptr @test_count, align 4, !tbaa !5
  %3649 = call i32 @s2n_stuffer_free(ptr noundef nonnull %26) #12
  %3650 = icmp eq i32 %3649, -1
  br i1 %3650, label %3651, label %3673

3651:                                             ; preds = %3646
  %3652 = load i32, ptr %3104, align 4, !tbaa !5
  %3653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3654 = call i32 @s2n_print_stacktrace(ptr noundef %3653) #12
  %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) #12
  %3660 = call i32 @isatty(i32 noundef %3659) #12
  %.not1626 = icmp eq i32 %3660, 0
  br i1 %.not1626, label %3661, label %3662

3661:                                             ; preds = %3657, %3651
  br label %3662

3662:                                             ; preds = %3657, %3661
  %.str.7.sink3035 = phi ptr [ @.str.7, %3661 ], [ @.str.4, %3657 ]
  store i32 %3652, ptr %3104, 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 %3050, align 4, !tbaa !5
  %3666 = call ptr @s2n_strerror(i32 noundef %3665, ptr noundef nonnull @.str.6) #12
  %3667 = load i32, ptr %3050, align 4, !tbaa !5
  %3668 = call ptr @s2n_strerror_debug(i32 noundef %3667, ptr noundef nonnull @.str.6) #12
  %3669 = load i32, ptr %3104, align 4, !tbaa !5
  %3670 = call ptr @strerror(i32 noundef %3669) #12
  %3671 = load i32, ptr %3104, align 4, !tbaa !5
  %3672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3663, ptr noundef nonnull %.str.7.sink3035, i32 noundef %3664, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.3, i32 noundef 371, ptr noundef %3666, ptr noundef %3668, ptr noundef %3670, i32 noundef %3671) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3673:                                             ; preds = %3646
  %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 = call i32 @s2n_connection_free(ptr noundef nonnull %3266) #12
  %3677 = icmp eq i32 %3676, -1
  br i1 %3677, label %3678, label %3700

3678:                                             ; preds = %3673
  %3679 = load i32, ptr %3104, align 4, !tbaa !5
  %3680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3681 = call i32 @s2n_print_stacktrace(ptr noundef %3680) #12
  %3682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3683 = trunc nuw i8 %3682 to i1
  br i1 %3683, label %3684, label %3688

3684:                                             ; preds = %3678
  %3685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3686 = call i32 @fileno(ptr noundef %3685) #12
  %3687 = call i32 @isatty(i32 noundef %3686) #12
  %.not1625 = icmp eq i32 %3687, 0
  br i1 %.not1625, label %3688, label %3689

3688:                                             ; preds = %3684, %3678
  br label %3689

3689:                                             ; preds = %3684, %3688
  %.str.7.sink3044 = phi ptr [ @.str.7, %3688 ], [ @.str.4, %3684 ]
  store i32 %3679, ptr %3104, align 4, !tbaa !5
  %3690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3691 = load i32, ptr @test_count, align 4, !tbaa !5
  %3692 = load i32, ptr %3050, align 4, !tbaa !5
  %3693 = call ptr @s2n_strerror(i32 noundef %3692, ptr noundef nonnull @.str.6) #12
  %3694 = load i32, ptr %3050, align 4, !tbaa !5
  %3695 = call ptr @s2n_strerror_debug(i32 noundef %3694, ptr noundef nonnull @.str.6) #12
  %3696 = load i32, ptr %3104, align 4, !tbaa !5
  %3697 = call ptr @strerror(i32 noundef %3696) #12
  %3698 = load i32, ptr %3104, align 4, !tbaa !5
  %3699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3690, ptr noundef nonnull %.str.7.sink3044, i32 noundef %3691, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 372, ptr noundef %3693, ptr noundef %3695, ptr noundef %3697, i32 noundef %3698) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3700:                                             ; preds = %3673
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %3701 = load i32, ptr @test_count, align 4, !tbaa !5
  %3702 = add nsw i32 %3701, 1
  store i32 %3702, ptr @test_count, align 4, !tbaa !5
  %3703 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3704 = icmp eq ptr %3703, null
  br i1 %3704, label %3705, label %3727

3705:                                             ; preds = %3700
  %3706 = load i32, ptr %3104, align 4, !tbaa !5
  %3707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3708 = call i32 @s2n_print_stacktrace(ptr noundef %3707) #12
  %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) #12
  %3714 = call i32 @isatty(i32 noundef %3713) #12
  %.not1624 = icmp eq i32 %3714, 0
  br i1 %.not1624, label %3715, label %3716

3715:                                             ; preds = %3711, %3705
  br label %3716

3716:                                             ; preds = %3711, %3715
  %.str.7.sink3053 = phi ptr [ @.str.7, %3715 ], [ @.str.4, %3711 ]
  store i32 %3706, ptr %3104, 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 %3050, align 4, !tbaa !5
  %3720 = call ptr @s2n_strerror(i32 noundef %3719, ptr noundef nonnull @.str.6) #12
  %3721 = load i32, ptr %3050, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror_debug(i32 noundef %3721, ptr noundef nonnull @.str.6) #12
  %3723 = load i32, ptr %3104, align 4, !tbaa !5
  %3724 = call ptr @strerror(i32 noundef %3723) #12
  %3725 = load i32, ptr %3104, align 4, !tbaa !5
  %3726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3717, ptr noundef nonnull %.str.7.sink3053, i32 noundef %3718, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.3, i32 noundef 382, ptr noundef %3720, ptr noundef %3722, ptr noundef %3724, i32 noundef %3725) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3727:                                             ; preds = %3700
  %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 ptr @s2n_connection_new(i32 noundef 0) #12
  %3731 = icmp eq ptr %3730, null
  br i1 %3731, label %3732, label %3754

3732:                                             ; preds = %3727
  %3733 = load i32, ptr %3104, align 4, !tbaa !5
  %3734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3735 = call i32 @s2n_print_stacktrace(ptr noundef %3734) #12
  %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) #12
  %3741 = call i32 @isatty(i32 noundef %3740) #12
  %.not1623 = icmp eq i32 %3741, 0
  br i1 %.not1623, label %3742, label %3743

3742:                                             ; preds = %3738, %3732
  br label %3743

3743:                                             ; preds = %3738, %3742
  %.str.7.sink3062 = phi ptr [ @.str.7, %3742 ], [ @.str.4, %3738 ]
  store i32 %3733, ptr %3104, 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 %3050, align 4, !tbaa !5
  %3747 = call ptr @s2n_strerror(i32 noundef %3746, ptr noundef nonnull @.str.6) #12
  %3748 = load i32, ptr %3050, align 4, !tbaa !5
  %3749 = call ptr @s2n_strerror_debug(i32 noundef %3748, ptr noundef nonnull @.str.6) #12
  %3750 = load i32, ptr %3104, align 4, !tbaa !5
  %3751 = call ptr @strerror(i32 noundef %3750) #12
  %3752 = load i32, ptr %3104, align 4, !tbaa !5
  %3753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3744, ptr noundef nonnull %.str.7.sink3062, i32 noundef %3745, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.3, i32 noundef 383, ptr noundef %3747, ptr noundef %3749, ptr noundef %3751, i32 noundef %3752) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3754:                                             ; preds = %3727
  %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 i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %3730) #12
  %3758 = call zeroext i1 @s2n_result_is_ok(i32 %3757)
  br i1 %3758, label %3781, label %3759

3759:                                             ; preds = %3754
  %3760 = load i32, ptr %3104, align 4, !tbaa !5
  %3761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3762 = call i32 @s2n_print_stacktrace(ptr noundef %3761) #12
  %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) #12
  %3768 = call i32 @isatty(i32 noundef %3767) #12
  %.not1295 = icmp eq i32 %3768, 0
  br i1 %.not1295, label %3769, label %3770

3769:                                             ; preds = %3765, %3759
  br label %3770

3770:                                             ; preds = %3765, %3769
  %.str.7.sink3071 = phi ptr [ @.str.7, %3769 ], [ @.str.4, %3765 ]
  store i32 %3760, ptr %3104, 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 %3050, align 4, !tbaa !5
  %3774 = call ptr @s2n_strerror(i32 noundef %3773, ptr noundef nonnull @.str.6) #12
  %3775 = load i32, ptr %3050, align 4, !tbaa !5
  %3776 = call ptr @s2n_strerror_debug(i32 noundef %3775, ptr noundef nonnull @.str.6) #12
  %3777 = load i32, ptr %3104, align 4, !tbaa !5
  %3778 = call ptr @strerror(i32 noundef %3777) #12
  %3779 = load i32, ptr %3104, align 4, !tbaa !5
  %3780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3771, ptr noundef nonnull %.str.7.sink3071, i32 noundef %3772, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 384, ptr noundef %3774, ptr noundef %3776, ptr noundef %3778, i32 noundef %3779) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3781:                                             ; preds = %3754
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %27) #12
  %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_stuffer_growable_alloc(ptr noundef nonnull %27, i32 noundef 0) #12
  %3785 = icmp eq i32 %3784, -1
  br i1 %3785, label %3786, label %3808

3786:                                             ; preds = %3781
  %3787 = load i32, ptr %3104, align 4, !tbaa !5
  %3788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3789 = call i32 @s2n_print_stacktrace(ptr noundef %3788) #12
  %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) #12
  %3795 = call i32 @isatty(i32 noundef %3794) #12
  %.not1622 = icmp eq i32 %3795, 0
  br i1 %.not1622, label %3796, label %3797

3796:                                             ; preds = %3792, %3786
  br label %3797

3797:                                             ; preds = %3792, %3796
  %.str.7.sink3080 = phi ptr [ @.str.7, %3796 ], [ @.str.4, %3792 ]
  store i32 %3787, ptr %3104, 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 %3050, align 4, !tbaa !5
  %3801 = call ptr @s2n_strerror(i32 noundef %3800, ptr noundef nonnull @.str.6) #12
  %3802 = load i32, ptr %3050, align 4, !tbaa !5
  %3803 = call ptr @s2n_strerror_debug(i32 noundef %3802, ptr noundef nonnull @.str.6) #12
  %3804 = load i32, ptr %3104, align 4, !tbaa !5
  %3805 = call ptr @strerror(i32 noundef %3804) #12
  %3806 = load i32, ptr %3104, align 4, !tbaa !5
  %3807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3798, ptr noundef nonnull %.str.7.sink3080, i32 noundef %3799, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 387, ptr noundef %3801, ptr noundef %3803, ptr noundef %3805, i32 noundef %3806) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3808:                                             ; preds = %3781
  %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 %343(ptr noundef nonnull %3703, ptr noundef nonnull %27) #12
  %3812 = icmp eq i32 %3811, -1
  br i1 %3812, label %3813, label %3835

3813:                                             ; preds = %3808
  %3814 = load i32, ptr %3104, align 4, !tbaa !5
  %3815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3816 = call i32 @s2n_print_stacktrace(ptr noundef %3815) #12
  %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) #12
  %3822 = call i32 @isatty(i32 noundef %3821) #12
  %.not1621 = icmp eq i32 %3822, 0
  br i1 %.not1621, label %3823, label %3824

3823:                                             ; preds = %3819, %3813
  br label %3824

3824:                                             ; preds = %3819, %3823
  %.str.7.sink3089 = phi ptr [ @.str.7, %3823 ], [ @.str.4, %3819 ]
  store i32 %3814, ptr %3104, 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 %3050, align 4, !tbaa !5
  %3828 = call ptr @s2n_strerror(i32 noundef %3827, ptr noundef nonnull @.str.6) #12
  %3829 = load i32, ptr %3050, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror_debug(i32 noundef %3829, ptr noundef nonnull @.str.6) #12
  %3831 = load i32, ptr %3104, align 4, !tbaa !5
  %3832 = call ptr @strerror(i32 noundef %3831) #12
  %3833 = load i32, ptr %3104, align 4, !tbaa !5
  %3834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3825, ptr noundef nonnull %.str.7.sink3089, i32 noundef %3826, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.3, i32 noundef 389, ptr noundef %3828, ptr noundef %3830, ptr noundef %3832, i32 noundef %3833) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3835:                                             ; preds = %3808
  %3836 = getelementptr inbounds i8, ptr %27, i64 28
  %3837 = load i32, ptr %3836, align 4, !tbaa !18
  %3838 = getelementptr inbounds i8, ptr %27, i64 24
  %3839 = load i32, ptr %3838, align 8, !tbaa !21
  %3840 = sub i32 %3837, %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 = call i32 (...) @s2n_enable_tls13_in_test() #12
  %3844 = icmp eq i32 %3843, -1
  br i1 %3844, label %3845, label %3867

3845:                                             ; preds = %3835
  %3846 = load i32, ptr %3104, align 4, !tbaa !5
  %3847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3848 = call i32 @s2n_print_stacktrace(ptr noundef %3847) #12
  %3849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3850 = trunc nuw i8 %3849 to i1
  br i1 %3850, label %3851, label %3855

3851:                                             ; preds = %3845
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = call i32 @fileno(ptr noundef %3852) #12
  %3854 = call i32 @isatty(i32 noundef %3853) #12
  %.not1620 = icmp eq i32 %3854, 0
  br i1 %.not1620, label %3855, label %3856

3855:                                             ; preds = %3851, %3845
  br label %3856

3856:                                             ; preds = %3851, %3855
  %.str.7.sink3098 = phi ptr [ @.str.7, %3855 ], [ @.str.4, %3851 ]
  store i32 %3846, ptr %3104, align 4, !tbaa !5
  %3857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3858 = load i32, ptr @test_count, align 4, !tbaa !5
  %3859 = load i32, ptr %3050, align 4, !tbaa !5
  %3860 = call ptr @s2n_strerror(i32 noundef %3859, ptr noundef nonnull @.str.6) #12
  %3861 = load i32, ptr %3050, align 4, !tbaa !5
  %3862 = call ptr @s2n_strerror_debug(i32 noundef %3861, ptr noundef nonnull @.str.6) #12
  %3863 = load i32, ptr %3104, align 4, !tbaa !5
  %3864 = call ptr @strerror(i32 noundef %3863) #12
  %3865 = load i32, ptr %3104, align 4, !tbaa !5
  %3866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3857, ptr noundef nonnull %.str.7.sink3098, i32 noundef %3858, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.3, i32 noundef 392, ptr noundef %3860, ptr noundef %3862, ptr noundef %3864, i32 noundef %3865) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3867:                                             ; preds = %3835
  %3868 = getelementptr inbounds i8, ptr %3730, i64 220
  store i8 33, ptr %3868, align 4, !tbaa !63
  %3869 = load i32, ptr @test_count, align 4, !tbaa !5
  %3870 = add nsw i32 %3869, 1
  store i32 %3870, ptr @test_count, align 4, !tbaa !5
  %3871 = call i32 @s2n_extension_recv(ptr noundef nonnull @s2n_client_key_share_extension, ptr noundef nonnull %3730, ptr noundef nonnull %27) #12
  %3872 = icmp eq i32 %3871, -1
  br i1 %3872, label %3873, label %3895

3873:                                             ; preds = %3867
  %3874 = load i32, ptr %3104, align 4, !tbaa !5
  %3875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3876 = call i32 @s2n_print_stacktrace(ptr noundef %3875) #12
  %3877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3878 = trunc nuw i8 %3877 to i1
  br i1 %3878, label %3879, label %3883

3879:                                             ; preds = %3873
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = call i32 @fileno(ptr noundef %3880) #12
  %3882 = call i32 @isatty(i32 noundef %3881) #12
  %.not1619 = icmp eq i32 %3882, 0
  br i1 %.not1619, label %3883, label %3884

3883:                                             ; preds = %3879, %3873
  br label %3884

3884:                                             ; preds = %3879, %3883
  %.str.7.sink3107 = phi ptr [ @.str.7, %3883 ], [ @.str.4, %3879 ]
  store i32 %3874, ptr %3104, align 4, !tbaa !5
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = load i32, ptr @test_count, align 4, !tbaa !5
  %3887 = load i32, ptr %3050, align 4, !tbaa !5
  %3888 = call ptr @s2n_strerror(i32 noundef %3887, ptr noundef nonnull @.str.6) #12
  %3889 = load i32, ptr %3050, align 4, !tbaa !5
  %3890 = call ptr @s2n_strerror_debug(i32 noundef %3889, ptr noundef nonnull @.str.6) #12
  %3891 = load i32, ptr %3104, align 4, !tbaa !5
  %3892 = call ptr @strerror(i32 noundef %3891) #12
  %3893 = load i32, ptr %3104, align 4, !tbaa !5
  %3894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3885, ptr noundef nonnull %.str.7.sink3107, i32 noundef %3886, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.3, i32 noundef 394, ptr noundef %3888, ptr noundef %3890, ptr noundef %3892, i32 noundef %3893) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3895:                                             ; preds = %3867
  %3896 = load i32, ptr @test_count, align 4, !tbaa !5
  %3897 = add nsw i32 %3896, 1
  store i32 %3897, ptr @test_count, align 4, !tbaa !5
  %3898 = load i32, ptr %3836, align 4, !tbaa !18
  %3899 = load i32, ptr %3838, align 8, !tbaa !21
  %3900 = sub i32 %3898, %3899
  %3901 = and i32 %3840, 65535
  %3902 = icmp eq i32 %3900, %3901
  br i1 %3902, label %3925, label %3903

3903:                                             ; preds = %3895
  %3904 = load i32, ptr %3104, align 4, !tbaa !5
  %3905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3906 = call i32 @s2n_print_stacktrace(ptr noundef %3905) #12
  %3907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3908 = trunc nuw i8 %3907 to i1
  br i1 %3908, label %3909, label %3913

3909:                                             ; preds = %3903
  %3910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3911 = call i32 @fileno(ptr noundef %3910) #12
  %3912 = call i32 @isatty(i32 noundef %3911) #12
  %.not1296 = icmp eq i32 %3912, 0
  br i1 %.not1296, label %3913, label %3914

3913:                                             ; preds = %3909, %3903
  br label %3914

3914:                                             ; preds = %3909, %3913
  %.str.7.sink3116 = phi ptr [ @.str.7, %3913 ], [ @.str.4, %3909 ]
  store i32 %3904, ptr %3104, align 4, !tbaa !5
  %3915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3916 = load i32, ptr @test_count, align 4, !tbaa !5
  %3917 = load i32, ptr %3050, align 4, !tbaa !5
  %3918 = call ptr @s2n_strerror(i32 noundef %3917, ptr noundef nonnull @.str.6) #12
  %3919 = load i32, ptr %3050, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror_debug(i32 noundef %3919, ptr noundef nonnull @.str.6) #12
  %3921 = load i32, ptr %3104, align 4, !tbaa !5
  %3922 = call ptr @strerror(i32 noundef %3921) #12
  %3923 = load i32, ptr %3104, align 4, !tbaa !5
  %3924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3915, ptr noundef nonnull %.str.7.sink3116, i32 noundef %3916, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.3, i32 noundef 395, ptr noundef %3918, ptr noundef %3920, ptr noundef %3922, i32 noundef %3923) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3925:                                             ; preds = %3895
  %3926 = add nsw i32 %3896, 2
  store i32 %3926, ptr @test_count, align 4, !tbaa !5
  %3927 = call i32 (...) @s2n_enable_tls13_in_test() #12
  %3928 = icmp eq i32 %3927, -1
  br i1 %3928, label %3929, label %3951

3929:                                             ; preds = %3925
  %3930 = load i32, ptr %3104, align 4, !tbaa !5
  %3931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3932 = call i32 @s2n_print_stacktrace(ptr noundef %3931) #12
  %3933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3934 = trunc nuw i8 %3933 to i1
  br i1 %3934, label %3935, label %3939

3935:                                             ; preds = %3929
  %3936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3937 = call i32 @fileno(ptr noundef %3936) #12
  %3938 = call i32 @isatty(i32 noundef %3937) #12
  %.not1618 = icmp eq i32 %3938, 0
  br i1 %.not1618, label %3939, label %3940

3939:                                             ; preds = %3935, %3929
  br label %3940

3940:                                             ; preds = %3935, %3939
  %.str.7.sink3125 = phi ptr [ @.str.7, %3939 ], [ @.str.4, %3935 ]
  store i32 %3930, ptr %3104, align 4, !tbaa !5
  %3941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3942 = load i32, ptr @test_count, align 4, !tbaa !5
  %3943 = load i32, ptr %3050, align 4, !tbaa !5
  %3944 = call ptr @s2n_strerror(i32 noundef %3943, ptr noundef nonnull @.str.6) #12
  %3945 = load i32, ptr %3050, align 4, !tbaa !5
  %3946 = call ptr @s2n_strerror_debug(i32 noundef %3945, ptr noundef nonnull @.str.6) #12
  %3947 = load i32, ptr %3104, align 4, !tbaa !5
  %3948 = call ptr @strerror(i32 noundef %3947) #12
  %3949 = load i32, ptr %3104, align 4, !tbaa !5
  %3950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3941, ptr noundef nonnull %.str.7.sink3125, i32 noundef %3942, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.3, i32 noundef 397, ptr noundef %3944, ptr noundef %3946, ptr noundef %3948, i32 noundef %3949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3951:                                             ; preds = %3925
  store i8 34, ptr %3868, align 4, !tbaa !63
  %3952 = load i32, ptr @test_count, align 4, !tbaa !5
  %3953 = add nsw i32 %3952, 1
  store i32 %3953, ptr @test_count, align 4, !tbaa !5
  %3954 = call i32 %2660(ptr noundef nonnull %3730, ptr noundef nonnull %27) #12
  %3955 = icmp eq i32 %3954, -1
  br i1 %3955, label %3956, label %3978

3956:                                             ; preds = %3951
  %3957 = load i32, ptr %3104, align 4, !tbaa !5
  %3958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3959 = call i32 @s2n_print_stacktrace(ptr noundef %3958) #12
  %3960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3961 = trunc nuw i8 %3960 to i1
  br i1 %3961, label %3962, label %3966

3962:                                             ; preds = %3956
  %3963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3964 = call i32 @fileno(ptr noundef %3963) #12
  %3965 = call i32 @isatty(i32 noundef %3964) #12
  %.not1617 = icmp eq i32 %3965, 0
  br i1 %.not1617, label %3966, label %3967

3966:                                             ; preds = %3962, %3956
  br label %3967

3967:                                             ; preds = %3962, %3966
  %.str.7.sink3134 = phi ptr [ @.str.7, %3966 ], [ @.str.4, %3962 ]
  store i32 %3957, ptr %3104, align 4, !tbaa !5
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = load i32, ptr @test_count, align 4, !tbaa !5
  %3970 = load i32, ptr %3050, align 4, !tbaa !5
  %3971 = call ptr @s2n_strerror(i32 noundef %3970, ptr noundef nonnull @.str.6) #12
  %3972 = load i32, ptr %3050, align 4, !tbaa !5
  %3973 = call ptr @s2n_strerror_debug(i32 noundef %3972, ptr noundef nonnull @.str.6) #12
  %3974 = load i32, ptr %3104, align 4, !tbaa !5
  %3975 = call ptr @strerror(i32 noundef %3974) #12
  %3976 = load i32, ptr %3104, align 4, !tbaa !5
  %3977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3968, ptr noundef nonnull %.str.7.sink3134, i32 noundef %3969, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 399, ptr noundef %3971, ptr noundef %3973, ptr noundef %3975, i32 noundef %3976) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3978:                                             ; preds = %3951
  %3979 = load i32, ptr @test_count, align 4, !tbaa !5
  %3980 = add nsw i32 %3979, 1
  store i32 %3980, ptr @test_count, align 4, !tbaa !5
  %3981 = load i32, ptr %3836, align 4, !tbaa !18
  %3982 = load i32, ptr %3838, align 8, !tbaa !21
  %3983 = icmp eq i32 %3981, %3982
  br i1 %3983, label %4006, label %3984

3984:                                             ; preds = %3978
  %3985 = load i32, ptr %3104, align 4, !tbaa !5
  %3986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3987 = call i32 @s2n_print_stacktrace(ptr noundef %3986) #12
  %3988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3989 = trunc nuw i8 %3988 to i1
  br i1 %3989, label %3990, label %3994

3990:                                             ; preds = %3984
  %3991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3992 = call i32 @fileno(ptr noundef %3991) #12
  %3993 = call i32 @isatty(i32 noundef %3992) #12
  %.not1297 = icmp eq i32 %3993, 0
  br i1 %.not1297, label %3994, label %3995

3994:                                             ; preds = %3990, %3984
  br label %3995

3995:                                             ; preds = %3990, %3994
  %.str.7.sink3143 = phi ptr [ @.str.7, %3994 ], [ @.str.4, %3990 ]
  store i32 %3985, ptr %3104, align 4, !tbaa !5
  %3996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3997 = load i32, ptr @test_count, align 4, !tbaa !5
  %3998 = load i32, ptr %3050, align 4, !tbaa !5
  %3999 = call ptr @s2n_strerror(i32 noundef %3998, ptr noundef nonnull @.str.6) #12
  %4000 = load i32, ptr %3050, align 4, !tbaa !5
  %4001 = call ptr @s2n_strerror_debug(i32 noundef %4000, ptr noundef nonnull @.str.6) #12
  %4002 = load i32, ptr %3104, align 4, !tbaa !5
  %4003 = call ptr @strerror(i32 noundef %4002) #12
  %4004 = load i32, ptr %3104, align 4, !tbaa !5
  %4005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3996, ptr noundef nonnull %.str.7.sink3143, i32 noundef %3997, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 400, ptr noundef %3999, ptr noundef %4001, ptr noundef %4003, i32 noundef %4004) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4006:                                             ; preds = %3978
  %4007 = add nsw i32 %3979, 2
  store i32 %4007, ptr @test_count, align 4, !tbaa !5
  %4008 = call i32 @s2n_connection_free(ptr noundef nonnull %3703) #12
  %4009 = icmp eq i32 %4008, -1
  br i1 %4009, label %4010, label %4032

4010:                                             ; preds = %4006
  %4011 = load i32, ptr %3104, align 4, !tbaa !5
  %4012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4013 = call i32 @s2n_print_stacktrace(ptr noundef %4012) #12
  %4014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4015 = trunc nuw i8 %4014 to i1
  br i1 %4015, label %4016, label %4020

4016:                                             ; preds = %4010
  %4017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4018 = call i32 @fileno(ptr noundef %4017) #12
  %4019 = call i32 @isatty(i32 noundef %4018) #12
  %.not1616 = icmp eq i32 %4019, 0
  br i1 %.not1616, label %4020, label %4021

4020:                                             ; preds = %4016, %4010
  br label %4021

4021:                                             ; preds = %4016, %4020
  %.str.7.sink3152 = phi ptr [ @.str.7, %4020 ], [ @.str.4, %4016 ]
  store i32 %4011, ptr %3104, align 4, !tbaa !5
  %4022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4023 = load i32, ptr @test_count, align 4, !tbaa !5
  %4024 = load i32, ptr %3050, align 4, !tbaa !5
  %4025 = call ptr @s2n_strerror(i32 noundef %4024, ptr noundef nonnull @.str.6) #12
  %4026 = load i32, ptr %3050, align 4, !tbaa !5
  %4027 = call ptr @s2n_strerror_debug(i32 noundef %4026, ptr noundef nonnull @.str.6) #12
  %4028 = load i32, ptr %3104, align 4, !tbaa !5
  %4029 = call ptr @strerror(i32 noundef %4028) #12
  %4030 = load i32, ptr %3104, align 4, !tbaa !5
  %4031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4022, ptr noundef nonnull %.str.7.sink3152, i32 noundef %4023, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.3, i32 noundef 402, ptr noundef %4025, ptr noundef %4027, ptr noundef %4029, i32 noundef %4030) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4032:                                             ; preds = %4006
  %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 = call i32 @s2n_connection_free(ptr noundef nonnull %3730) #12
  %4036 = icmp eq i32 %4035, -1
  br i1 %4036, label %4037, label %4059

4037:                                             ; preds = %4032
  %4038 = load i32, ptr %3104, align 4, !tbaa !5
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = call i32 @s2n_print_stacktrace(ptr noundef %4039) #12
  %4041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4042 = trunc nuw i8 %4041 to i1
  br i1 %4042, label %4043, label %4047

4043:                                             ; preds = %4037
  %4044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4045 = call i32 @fileno(ptr noundef %4044) #12
  %4046 = call i32 @isatty(i32 noundef %4045) #12
  %.not1615 = icmp eq i32 %4046, 0
  br i1 %.not1615, label %4047, label %4048

4047:                                             ; preds = %4043, %4037
  br label %4048

4048:                                             ; preds = %4043, %4047
  %.str.7.sink3161 = phi ptr [ @.str.7, %4047 ], [ @.str.4, %4043 ]
  store i32 %4038, ptr %3104, align 4, !tbaa !5
  %4049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4050 = load i32, ptr @test_count, align 4, !tbaa !5
  %4051 = load i32, ptr %3050, align 4, !tbaa !5
  %4052 = call ptr @s2n_strerror(i32 noundef %4051, ptr noundef nonnull @.str.6) #12
  %4053 = load i32, ptr %3050, align 4, !tbaa !5
  %4054 = call ptr @s2n_strerror_debug(i32 noundef %4053, ptr noundef nonnull @.str.6) #12
  %4055 = load i32, ptr %3104, align 4, !tbaa !5
  %4056 = call ptr @strerror(i32 noundef %4055) #12
  %4057 = load i32, ptr %3104, align 4, !tbaa !5
  %4058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4049, ptr noundef nonnull %.str.7.sink3161, i32 noundef %4050, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 403, ptr noundef %4052, ptr noundef %4054, ptr noundef %4056, i32 noundef %4057) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4059:                                             ; preds = %4032
  %4060 = call i32 @s2n_stuffer_free(ptr noundef nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %28) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %28, i8 0, i64 40, i1 false)
  %4061 = load i32, ptr @test_count, align 4, !tbaa !5
  %4062 = add nsw i32 %4061, 1
  store i32 %4062, ptr @test_count, align 4, !tbaa !5
  %4063 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %4064 = icmp eq ptr %4063, null
  br i1 %4064, label %4065, label %4087

4065:                                             ; preds = %4059
  %4066 = load i32, ptr %3104, align 4, !tbaa !5
  %4067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4068 = call i32 @s2n_print_stacktrace(ptr noundef %4067) #12
  %4069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4070 = trunc nuw i8 %4069 to i1
  br i1 %4070, label %4071, label %4075

4071:                                             ; preds = %4065
  %4072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4073 = call i32 @fileno(ptr noundef %4072) #12
  %4074 = call i32 @isatty(i32 noundef %4073) #12
  %.not1614 = icmp eq i32 %4074, 0
  br i1 %.not1614, label %4075, label %4076

4075:                                             ; preds = %4071, %4065
  br label %4076

4076:                                             ; preds = %4071, %4075
  %.str.7.sink3170 = phi ptr [ @.str.7, %4075 ], [ @.str.4, %4071 ]
  store i32 %4066, ptr %3104, align 4, !tbaa !5
  %4077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4078 = load i32, ptr @test_count, align 4, !tbaa !5
  %4079 = load i32, ptr %3050, align 4, !tbaa !5
  %4080 = call ptr @s2n_strerror(i32 noundef %4079, ptr noundef nonnull @.str.6) #12
  %4081 = load i32, ptr %3050, align 4, !tbaa !5
  %4082 = call ptr @s2n_strerror_debug(i32 noundef %4081, ptr noundef nonnull @.str.6) #12
  %4083 = load i32, ptr %3104, align 4, !tbaa !5
  %4084 = call ptr @strerror(i32 noundef %4083) #12
  %4085 = load i32, ptr %3104, align 4, !tbaa !5
  %4086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4077, ptr noundef nonnull %.str.7.sink3170, i32 noundef %4078, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.3, i32 noundef 412, ptr noundef %4080, ptr noundef %4082, ptr noundef %4084, i32 noundef %4085) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4087:                                             ; preds = %4059
  %4088 = load i32, ptr @test_count, align 4, !tbaa !5
  %4089 = add nsw i32 %4088, 1
  store i32 %4089, ptr @test_count, align 4, !tbaa !5
  %4090 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %4091 = icmp eq ptr %4090, null
  br i1 %4091, label %4092, label %4114

4092:                                             ; preds = %4087
  %4093 = load i32, ptr %3104, align 4, !tbaa !5
  %4094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4095 = call i32 @s2n_print_stacktrace(ptr noundef %4094) #12
  %4096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4097 = trunc nuw i8 %4096 to i1
  br i1 %4097, label %4098, label %4102

4098:                                             ; preds = %4092
  %4099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4100 = call i32 @fileno(ptr noundef %4099) #12
  %4101 = call i32 @isatty(i32 noundef %4100) #12
  %.not1613 = icmp eq i32 %4101, 0
  br i1 %.not1613, label %4102, label %4103

4102:                                             ; preds = %4098, %4092
  br label %4103

4103:                                             ; preds = %4098, %4102
  %.str.7.sink3179 = phi ptr [ @.str.7, %4102 ], [ @.str.4, %4098 ]
  store i32 %4093, ptr %3104, align 4, !tbaa !5
  %4104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4105 = load i32, ptr @test_count, align 4, !tbaa !5
  %4106 = load i32, ptr %3050, align 4, !tbaa !5
  %4107 = call ptr @s2n_strerror(i32 noundef %4106, ptr noundef nonnull @.str.6) #12
  %4108 = load i32, ptr %3050, align 4, !tbaa !5
  %4109 = call ptr @s2n_strerror_debug(i32 noundef %4108, ptr noundef nonnull @.str.6) #12
  %4110 = load i32, ptr %3104, align 4, !tbaa !5
  %4111 = call ptr @strerror(i32 noundef %4110) #12
  %4112 = load i32, ptr %3104, align 4, !tbaa !5
  %4113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4104, ptr noundef nonnull %.str.7.sink3179, i32 noundef %4105, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.3, i32 noundef 413, ptr noundef %4107, ptr noundef %4109, ptr noundef %4111, i32 noundef %4112) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4114:                                             ; preds = %4087
  %4115 = getelementptr inbounds i8, ptr %4090, i64 220
  store i8 34, ptr %4115, align 4, !tbaa !63
  %4116 = load i32, ptr @test_count, align 4, !tbaa !5
  %4117 = add nsw i32 %4116, 1
  store i32 %4117, ptr @test_count, align 4, !tbaa !5
  %4118 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %28, i32 noundef 0) #12
  %4119 = icmp eq i32 %4118, -1
  br i1 %4119, label %4120, label %4142

4120:                                             ; preds = %4114
  %4121 = load i32, ptr %3104, align 4, !tbaa !5
  %4122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4123 = call i32 @s2n_print_stacktrace(ptr noundef %4122) #12
  %4124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4125 = trunc nuw i8 %4124 to i1
  br i1 %4125, label %4126, label %4130

4126:                                             ; preds = %4120
  %4127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4128 = call i32 @fileno(ptr noundef %4127) #12
  %4129 = call i32 @isatty(i32 noundef %4128) #12
  %.not1612 = icmp eq i32 %4129, 0
  br i1 %.not1612, label %4130, label %4131

4130:                                             ; preds = %4126, %4120
  br label %4131

4131:                                             ; preds = %4126, %4130
  %.str.7.sink3188 = phi ptr [ @.str.7, %4130 ], [ @.str.4, %4126 ]
  store i32 %4121, ptr %3104, align 4, !tbaa !5
  %4132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4133 = load i32, ptr @test_count, align 4, !tbaa !5
  %4134 = load i32, ptr %3050, align 4, !tbaa !5
  %4135 = call ptr @s2n_strerror(i32 noundef %4134, ptr noundef nonnull @.str.6) #12
  %4136 = load i32, ptr %3050, align 4, !tbaa !5
  %4137 = call ptr @s2n_strerror_debug(i32 noundef %4136, ptr noundef nonnull @.str.6) #12
  %4138 = load i32, ptr %3104, align 4, !tbaa !5
  %4139 = call ptr @strerror(i32 noundef %4138) #12
  %4140 = load i32, ptr %3104, align 4, !tbaa !5
  %4141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4132, ptr noundef nonnull %.str.7.sink3188, i32 noundef %4133, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 415, ptr noundef %4135, ptr noundef %4137, ptr noundef %4139, i32 noundef %4140) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4142:                                             ; preds = %4114
  %4143 = load i32, ptr @test_count, align 4, !tbaa !5
  %4144 = add nsw i32 %4143, 1
  store i32 %4144, ptr @test_count, align 4, !tbaa !5
  %4145 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %4090) #12
  %4146 = call zeroext i1 @s2n_result_is_ok(i32 %4145)
  br i1 %4146, label %4169, label %4147

4147:                                             ; preds = %4142
  %4148 = load i32, ptr %3104, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = call i32 @s2n_print_stacktrace(ptr noundef %4149) #12
  %4151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4152 = trunc nuw i8 %4151 to i1
  br i1 %4152, label %4153, label %4157

4153:                                             ; preds = %4147
  %4154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4155 = call i32 @fileno(ptr noundef %4154) #12
  %4156 = call i32 @isatty(i32 noundef %4155) #12
  %.not1298 = icmp eq i32 %4156, 0
  br i1 %.not1298, label %4157, label %4158

4157:                                             ; preds = %4153, %4147
  br label %4158

4158:                                             ; preds = %4153, %4157
  %.str.7.sink3197 = phi ptr [ @.str.7, %4157 ], [ @.str.4, %4153 ]
  store i32 %4148, ptr %3104, align 4, !tbaa !5
  %4159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4160 = load i32, ptr @test_count, align 4, !tbaa !5
  %4161 = load i32, ptr %3050, align 4, !tbaa !5
  %4162 = call ptr @s2n_strerror(i32 noundef %4161, ptr noundef nonnull @.str.6) #12
  %4163 = load i32, ptr %3050, align 4, !tbaa !5
  %4164 = call ptr @s2n_strerror_debug(i32 noundef %4163, ptr noundef nonnull @.str.6) #12
  %4165 = load i32, ptr %3104, align 4, !tbaa !5
  %4166 = call ptr @strerror(i32 noundef %4165) #12
  %4167 = load i32, ptr %3104, align 4, !tbaa !5
  %4168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4159, ptr noundef nonnull %.str.7.sink3197, i32 noundef %4160, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 416, ptr noundef %4162, ptr noundef %4164, ptr noundef %4166, i32 noundef %4167) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4169:                                             ; preds = %4142
  %4170 = load i32, ptr @test_count, align 4, !tbaa !5
  %4171 = add nsw i32 %4170, 1
  store i32 %4171, ptr @test_count, align 4, !tbaa !5
  %4172 = call i32 %343(ptr noundef nonnull %4063, ptr noundef nonnull %28) #12
  %4173 = icmp eq i32 %4172, -1
  br i1 %4173, label %4174, label %4196

4174:                                             ; preds = %4169
  %4175 = load i32, ptr %3104, align 4, !tbaa !5
  %4176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4177 = call i32 @s2n_print_stacktrace(ptr noundef %4176) #12
  %4178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4179 = trunc nuw i8 %4178 to i1
  br i1 %4179, label %4180, label %4184

4180:                                             ; preds = %4174
  %4181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4182 = call i32 @fileno(ptr noundef %4181) #12
  %4183 = call i32 @isatty(i32 noundef %4182) #12
  %.not1611 = icmp eq i32 %4183, 0
  br i1 %.not1611, label %4184, label %4185

4184:                                             ; preds = %4180, %4174
  br label %4185

4185:                                             ; preds = %4180, %4184
  %.str.7.sink3206 = phi ptr [ @.str.7, %4184 ], [ @.str.4, %4180 ]
  store i32 %4175, ptr %3104, align 4, !tbaa !5
  %4186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4187 = load i32, ptr @test_count, align 4, !tbaa !5
  %4188 = load i32, ptr %3050, align 4, !tbaa !5
  %4189 = call ptr @s2n_strerror(i32 noundef %4188, ptr noundef nonnull @.str.6) #12
  %4190 = load i32, ptr %3050, align 4, !tbaa !5
  %4191 = call ptr @s2n_strerror_debug(i32 noundef %4190, ptr noundef nonnull @.str.6) #12
  %4192 = load i32, ptr %3104, align 4, !tbaa !5
  %4193 = call ptr @strerror(i32 noundef %4192) #12
  %4194 = load i32, ptr %3104, align 4, !tbaa !5
  %4195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4186, ptr noundef nonnull %.str.7.sink3206, i32 noundef %4187, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.3, i32 noundef 418, ptr noundef %4189, ptr noundef %4191, ptr noundef %4193, i32 noundef %4194) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4196:                                             ; preds = %4169
  %4197 = load i32, ptr @test_count, align 4, !tbaa !5
  %4198 = add nsw i32 %4197, 1
  store i32 %4198, ptr @test_count, align 4, !tbaa !5
  %4199 = call i32 %2660(ptr noundef nonnull %4090, ptr noundef nonnull %28) #12
  %4200 = icmp eq i32 %4199, -1
  br i1 %4200, label %4201, label %4223

4201:                                             ; preds = %4196
  %4202 = load i32, ptr %3104, align 4, !tbaa !5
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = call i32 @s2n_print_stacktrace(ptr noundef %4203) #12
  %4205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4206 = trunc nuw i8 %4205 to i1
  br i1 %4206, label %4207, label %4211

4207:                                             ; preds = %4201
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = call i32 @fileno(ptr noundef %4208) #12
  %4210 = call i32 @isatty(i32 noundef %4209) #12
  %.not1610 = icmp eq i32 %4210, 0
  br i1 %.not1610, label %4211, label %4212

4211:                                             ; preds = %4207, %4201
  br label %4212

4212:                                             ; preds = %4207, %4211
  %.str.7.sink3215 = phi ptr [ @.str.7, %4211 ], [ @.str.4, %4207 ]
  store i32 %4202, ptr %3104, align 4, !tbaa !5
  %4213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4214 = load i32, ptr @test_count, align 4, !tbaa !5
  %4215 = load i32, ptr %3050, align 4, !tbaa !5
  %4216 = call ptr @s2n_strerror(i32 noundef %4215, ptr noundef nonnull @.str.6) #12
  %4217 = load i32, ptr %3050, align 4, !tbaa !5
  %4218 = call ptr @s2n_strerror_debug(i32 noundef %4217, ptr noundef nonnull @.str.6) #12
  %4219 = load i32, ptr %3104, align 4, !tbaa !5
  %4220 = call ptr @strerror(i32 noundef %4219) #12
  %4221 = load i32, ptr %3104, align 4, !tbaa !5
  %4222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4213, ptr noundef nonnull %.str.7.sink3215, i32 noundef %4214, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 419, ptr noundef %4216, ptr noundef %4218, ptr noundef %4220, i32 noundef %4221) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4223:                                             ; preds = %4196
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  store ptr null, ptr %29, align 8, !tbaa !9
  %4224 = load i32, ptr @test_count, align 4, !tbaa !5
  %4225 = add nsw i32 %4224, 1
  store i32 %4225, ptr @test_count, align 4, !tbaa !5
  %4226 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %4090, ptr noundef nonnull %29) #12
  %4227 = icmp eq i32 %4226, -1
  br i1 %4227, label %4228, label %4250

4228:                                             ; preds = %4223
  %4229 = load i32, ptr %3104, align 4, !tbaa !5
  %4230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4231 = call i32 @s2n_print_stacktrace(ptr noundef %4230) #12
  %4232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4233 = trunc nuw i8 %4232 to i1
  br i1 %4233, label %4234, label %4238

4234:                                             ; preds = %4228
  %4235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4236 = call i32 @fileno(ptr noundef %4235) #12
  %4237 = call i32 @isatty(i32 noundef %4236) #12
  %.not1609 = icmp eq i32 %4237, 0
  br i1 %.not1609, label %4238, label %4239

4238:                                             ; preds = %4234, %4228
  br label %4239

4239:                                             ; preds = %4234, %4238
  %.str.7.sink3224 = phi ptr [ @.str.7, %4238 ], [ @.str.4, %4234 ]
  store i32 %4229, ptr %3104, align 4, !tbaa !5
  %4240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4241 = load i32, ptr @test_count, align 4, !tbaa !5
  %4242 = load i32, ptr %3050, align 4, !tbaa !5
  %4243 = call ptr @s2n_strerror(i32 noundef %4242, ptr noundef nonnull @.str.6) #12
  %4244 = load i32, ptr %3050, align 4, !tbaa !5
  %4245 = call ptr @s2n_strerror_debug(i32 noundef %4244, ptr noundef nonnull @.str.6) #12
  %4246 = load i32, ptr %3104, align 4, !tbaa !5
  %4247 = call ptr @strerror(i32 noundef %4246) #12
  %4248 = load i32, ptr %3104, align 4, !tbaa !5
  %4249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4240, ptr noundef nonnull %.str.7.sink3224, i32 noundef %4241, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 422, ptr noundef %4243, ptr noundef %4245, ptr noundef %4247, i32 noundef %4248) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4250:                                             ; preds = %4223
  %4251 = load i32, ptr @test_count, align 4, !tbaa !5
  %4252 = add nsw i32 %4251, 1
  store i32 %4252, ptr @test_count, align 4, !tbaa !5
  %4253 = load ptr, ptr %29, align 8, !tbaa !9
  %4254 = icmp eq ptr %4253, null
  br i1 %4254, label %4255, label %4277

4255:                                             ; preds = %4250
  %4256 = load i32, ptr %3104, align 4, !tbaa !5
  %4257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4258 = call i32 @s2n_print_stacktrace(ptr noundef %4257) #12
  %4259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4260 = trunc nuw i8 %4259 to i1
  br i1 %4260, label %4261, label %4265

4261:                                             ; preds = %4255
  %4262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4263 = call i32 @fileno(ptr noundef %4262) #12
  %4264 = call i32 @isatty(i32 noundef %4263) #12
  %.not1608 = icmp eq i32 %4264, 0
  br i1 %.not1608, label %4265, label %4266

4265:                                             ; preds = %4261, %4255
  br label %4266

4266:                                             ; preds = %4261, %4265
  %.str.7.sink3233 = phi ptr [ @.str.7, %4265 ], [ @.str.4, %4261 ]
  store i32 %4256, ptr %3104, align 4, !tbaa !5
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = load i32, ptr @test_count, align 4, !tbaa !5
  %4269 = load i32, ptr %3050, align 4, !tbaa !5
  %4270 = call ptr @s2n_strerror(i32 noundef %4269, ptr noundef nonnull @.str.6) #12
  %4271 = load i32, ptr %3050, align 4, !tbaa !5
  %4272 = call ptr @s2n_strerror_debug(i32 noundef %4271, ptr noundef nonnull @.str.6) #12
  %4273 = load i32, ptr %3104, align 4, !tbaa !5
  %4274 = call ptr @strerror(i32 noundef %4273) #12
  %4275 = load i32, ptr %3104, align 4, !tbaa !5
  %4276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4267, ptr noundef nonnull %.str.7.sink3233, i32 noundef %4268, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 423, ptr noundef %4270, ptr noundef %4272, ptr noundef %4274, i32 noundef %4275) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4277:                                             ; preds = %4250
  %4278 = add nsw i32 %4251, 2
  store i32 %4278, ptr @test_count, align 4, !tbaa !5
  %4279 = getelementptr inbounds i8, ptr %28, i64 28
  %4280 = load i32, ptr %4279, align 4, !tbaa !18
  %4281 = getelementptr inbounds i8, ptr %28, i64 24
  %4282 = load i32, ptr %4281, align 8, !tbaa !21
  %4283 = icmp eq i32 %4280, %4282
  br i1 %4283, label %4306, label %4284

4284:                                             ; preds = %4277
  %4285 = load i32, ptr %3104, align 4, !tbaa !5
  %4286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4287 = call i32 @s2n_print_stacktrace(ptr noundef %4286) #12
  %4288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4289 = trunc nuw i8 %4288 to i1
  br i1 %4289, label %4290, label %4294

4290:                                             ; preds = %4284
  %4291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4292 = call i32 @fileno(ptr noundef %4291) #12
  %4293 = call i32 @isatty(i32 noundef %4292) #12
  %.not1299 = icmp eq i32 %4293, 0
  br i1 %.not1299, label %4294, label %4295

4294:                                             ; preds = %4290, %4284
  br label %4295

4295:                                             ; preds = %4290, %4294
  %.str.7.sink3242 = phi ptr [ @.str.7, %4294 ], [ @.str.4, %4290 ]
  store i32 %4285, ptr %3104, align 4, !tbaa !5
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = load i32, ptr @test_count, align 4, !tbaa !5
  %4298 = load i32, ptr %3050, align 4, !tbaa !5
  %4299 = call ptr @s2n_strerror(i32 noundef %4298, ptr noundef nonnull @.str.6) #12
  %4300 = load i32, ptr %3050, align 4, !tbaa !5
  %4301 = call ptr @s2n_strerror_debug(i32 noundef %4300, ptr noundef nonnull @.str.6) #12
  %4302 = load i32, ptr %3104, align 4, !tbaa !5
  %4303 = call ptr @strerror(i32 noundef %4302) #12
  %4304 = load i32, ptr %3104, align 4, !tbaa !5
  %4305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4296, ptr noundef nonnull %.str.7.sink3242, i32 noundef %4297, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 426, ptr noundef %4299, ptr noundef %4301, ptr noundef %4303, i32 noundef %4304) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4306:                                             ; preds = %4277
  %4307 = getelementptr inbounds i8, ptr %4090, i64 704
  %4308 = getelementptr inbounds i8, ptr %4063, i64 704
  %4309 = add nsw i32 %4251, 3
  store i32 %4309, ptr @test_count, align 4, !tbaa !5
  %4310 = load ptr, ptr %4307, align 8, !tbaa !22
  %4311 = icmp eq ptr %4310, null
  br i1 %4311, label %4312, label %4334

4312:                                             ; preds = %4306
  %4313 = load i32, ptr %3104, align 4, !tbaa !5
  %4314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4315 = call i32 @s2n_print_stacktrace(ptr noundef %4314) #12
  %4316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4317 = trunc nuw i8 %4316 to i1
  br i1 %4317, label %4318, label %4322

4318:                                             ; preds = %4312
  %4319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4320 = call i32 @fileno(ptr noundef %4319) #12
  %4321 = call i32 @isatty(i32 noundef %4320) #12
  %.not1607 = icmp eq i32 %4321, 0
  br i1 %.not1607, label %4322, label %4323

4322:                                             ; preds = %4318, %4312
  br label %4323

4323:                                             ; preds = %4318, %4322
  %.str.7.sink3251 = phi ptr [ @.str.7, %4322 ], [ @.str.4, %4318 ]
  store i32 %4313, ptr %3104, align 4, !tbaa !5
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = load i32, ptr @test_count, align 4, !tbaa !5
  %4326 = load i32, ptr %3050, align 4, !tbaa !5
  %4327 = call ptr @s2n_strerror(i32 noundef %4326, ptr noundef nonnull @.str.6) #12
  %4328 = load i32, ptr %3050, align 4, !tbaa !5
  %4329 = call ptr @s2n_strerror_debug(i32 noundef %4328, ptr noundef nonnull @.str.6) #12
  %4330 = load i32, ptr %3104, align 4, !tbaa !5
  %4331 = call ptr @strerror(i32 noundef %4330) #12
  %4332 = load i32, ptr %3104, align 4, !tbaa !5
  %4333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4324, ptr noundef nonnull %.str.7.sink3251, i32 noundef %4325, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.3, i32 noundef 431, ptr noundef %4327, ptr noundef %4329, ptr noundef %4331, i32 noundef %4332) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4334:                                             ; preds = %4306
  %4335 = add nsw i32 %4251, 4
  store i32 %4335, ptr @test_count, align 4, !tbaa !5
  %4336 = getelementptr inbounds i8, ptr %4090, i64 712
  %4337 = load ptr, ptr %4336, align 8, !tbaa !26
  %4338 = icmp eq ptr %4337, null
  br i1 %4338, label %4339, label %4361

4339:                                             ; preds = %4334
  %4340 = load i32, ptr %3104, align 4, !tbaa !5
  %4341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4342 = call i32 @s2n_print_stacktrace(ptr noundef %4341) #12
  %4343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4344 = trunc nuw i8 %4343 to i1
  br i1 %4344, label %4345, label %4349

4345:                                             ; preds = %4339
  %4346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4347 = call i32 @fileno(ptr noundef %4346) #12
  %4348 = call i32 @isatty(i32 noundef %4347) #12
  %.not1606 = icmp eq i32 %4348, 0
  br i1 %.not1606, label %4349, label %4350

4349:                                             ; preds = %4345, %4339
  br label %4350

4350:                                             ; preds = %4345, %4349
  %.str.7.sink3260 = phi ptr [ @.str.7, %4349 ], [ @.str.4, %4345 ]
  store i32 %4340, ptr %3104, align 4, !tbaa !5
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = load i32, ptr @test_count, align 4, !tbaa !5
  %4353 = load i32, ptr %3050, align 4, !tbaa !5
  %4354 = call ptr @s2n_strerror(i32 noundef %4353, ptr noundef nonnull @.str.6) #12
  %4355 = load i32, ptr %3050, align 4, !tbaa !5
  %4356 = call ptr @s2n_strerror_debug(i32 noundef %4355, ptr noundef nonnull @.str.6) #12
  %4357 = load i32, ptr %3104, align 4, !tbaa !5
  %4358 = call ptr @strerror(i32 noundef %4357) #12
  %4359 = load i32, ptr %3104, align 4, !tbaa !5
  %4360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4351, ptr noundef nonnull %.str.7.sink3260, i32 noundef %4352, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.3, i32 noundef 432, ptr noundef %4354, ptr noundef %4356, ptr noundef %4358, i32 noundef %4359) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4361:                                             ; preds = %4334
  %4362 = add nsw i32 %4251, 5
  store i32 %4362, ptr @test_count, align 4, !tbaa !5
  %4363 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %4307, ptr noundef nonnull %4308) #12
  %.not1300 = icmp eq i32 %4363, 0
  br i1 %.not1300, label %4364, label %4386

4364:                                             ; preds = %4361
  %4365 = load i32, ptr %3104, align 4, !tbaa !5
  %4366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4367 = call i32 @s2n_print_stacktrace(ptr noundef %4366) #12
  %4368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4369 = trunc nuw i8 %4368 to i1
  br i1 %4369, label %4370, label %4374

4370:                                             ; preds = %4364
  %4371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4372 = call i32 @fileno(ptr noundef %4371) #12
  %4373 = call i32 @isatty(i32 noundef %4372) #12
  %.not1301 = icmp eq i32 %4373, 0
  br i1 %.not1301, label %4374, label %4375

4374:                                             ; preds = %4370, %4364
  br label %4375

4375:                                             ; preds = %4370, %4374
  %.str.7.sink3269 = phi ptr [ @.str.7, %4374 ], [ @.str.4, %4370 ]
  store i32 %4365, ptr %3104, align 4, !tbaa !5
  %4376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4377 = load i32, ptr @test_count, align 4, !tbaa !5
  %4378 = load i32, ptr %3050, align 4, !tbaa !5
  %4379 = call ptr @s2n_strerror(i32 noundef %4378, ptr noundef nonnull @.str.6) #12
  %4380 = load i32, ptr %3050, align 4, !tbaa !5
  %4381 = call ptr @s2n_strerror_debug(i32 noundef %4380, ptr noundef nonnull @.str.6) #12
  %4382 = load i32, ptr %3104, align 4, !tbaa !5
  %4383 = call ptr @strerror(i32 noundef %4382) #12
  %4384 = load i32, ptr %3104, align 4, !tbaa !5
  %4385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4376, ptr noundef nonnull %.str.7.sink3269, i32 noundef %4377, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.3, i32 noundef 433, ptr noundef %4379, ptr noundef %4381, ptr noundef %4383, i32 noundef %4384) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4386:                                             ; preds = %4361
  %4387 = load i32, ptr @test_count, align 4, !tbaa !5
  %4388 = add nsw i32 %4387, 1
  store i32 %4388, ptr @test_count, align 4, !tbaa !5
  %4389 = call i32 @s2n_stuffer_free(ptr noundef nonnull %28) #12
  %4390 = icmp eq i32 %4389, -1
  br i1 %4390, label %4391, label %4413

4391:                                             ; preds = %4386
  %4392 = load i32, ptr %3104, align 4, !tbaa !5
  %4393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4394 = call i32 @s2n_print_stacktrace(ptr noundef %4393) #12
  %4395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4396 = trunc nuw i8 %4395 to i1
  br i1 %4396, label %4397, label %4401

4397:                                             ; preds = %4391
  %4398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4399 = call i32 @fileno(ptr noundef %4398) #12
  %4400 = call i32 @isatty(i32 noundef %4399) #12
  %.not1605 = icmp eq i32 %4400, 0
  br i1 %.not1605, label %4401, label %4402

4401:                                             ; preds = %4397, %4391
  br label %4402

4402:                                             ; preds = %4397, %4401
  %.str.7.sink3278 = phi ptr [ @.str.7, %4401 ], [ @.str.4, %4397 ]
  store i32 %4392, ptr %3104, align 4, !tbaa !5
  %4403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4404 = load i32, ptr @test_count, align 4, !tbaa !5
  %4405 = load i32, ptr %3050, align 4, !tbaa !5
  %4406 = call ptr @s2n_strerror(i32 noundef %4405, ptr noundef nonnull @.str.6) #12
  %4407 = load i32, ptr %3050, align 4, !tbaa !5
  %4408 = call ptr @s2n_strerror_debug(i32 noundef %4407, ptr noundef nonnull @.str.6) #12
  %4409 = load i32, ptr %3104, align 4, !tbaa !5
  %4410 = call ptr @strerror(i32 noundef %4409) #12
  %4411 = load i32, ptr %3104, align 4, !tbaa !5
  %4412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4403, ptr noundef nonnull %.str.7.sink3278, i32 noundef %4404, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 435, ptr noundef %4406, ptr noundef %4408, ptr noundef %4410, i32 noundef %4411) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4413:                                             ; preds = %4386
  %4414 = load i32, ptr @test_count, align 4, !tbaa !5
  %4415 = add nsw i32 %4414, 1
  store i32 %4415, ptr @test_count, align 4, !tbaa !5
  %4416 = call i32 @s2n_connection_free(ptr noundef nonnull %4063) #12
  %4417 = icmp eq i32 %4416, -1
  br i1 %4417, label %4418, label %4440

4418:                                             ; preds = %4413
  %4419 = load i32, ptr %3104, align 4, !tbaa !5
  %4420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4421 = call i32 @s2n_print_stacktrace(ptr noundef %4420) #12
  %4422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4423 = trunc nuw i8 %4422 to i1
  br i1 %4423, label %4424, label %4428

4424:                                             ; preds = %4418
  %4425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4426 = call i32 @fileno(ptr noundef %4425) #12
  %4427 = call i32 @isatty(i32 noundef %4426) #12
  %.not1604 = icmp eq i32 %4427, 0
  br i1 %.not1604, label %4428, label %4429

4428:                                             ; preds = %4424, %4418
  br label %4429

4429:                                             ; preds = %4424, %4428
  %.str.7.sink3287 = phi ptr [ @.str.7, %4428 ], [ @.str.4, %4424 ]
  store i32 %4419, ptr %3104, align 4, !tbaa !5
  %4430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4431 = load i32, ptr @test_count, align 4, !tbaa !5
  %4432 = load i32, ptr %3050, align 4, !tbaa !5
  %4433 = call ptr @s2n_strerror(i32 noundef %4432, ptr noundef nonnull @.str.6) #12
  %4434 = load i32, ptr %3050, align 4, !tbaa !5
  %4435 = call ptr @s2n_strerror_debug(i32 noundef %4434, ptr noundef nonnull @.str.6) #12
  %4436 = load i32, ptr %3104, align 4, !tbaa !5
  %4437 = call ptr @strerror(i32 noundef %4436) #12
  %4438 = load i32, ptr %3104, align 4, !tbaa !5
  %4439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4430, ptr noundef nonnull %.str.7.sink3287, i32 noundef %4431, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.3, i32 noundef 436, ptr noundef %4433, ptr noundef %4435, ptr noundef %4437, i32 noundef %4438) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4440:                                             ; preds = %4413
  %4441 = load i32, ptr @test_count, align 4, !tbaa !5
  %4442 = add nsw i32 %4441, 1
  store i32 %4442, ptr @test_count, align 4, !tbaa !5
  %4443 = call i32 @s2n_connection_free(ptr noundef nonnull %4090) #12
  %4444 = icmp eq i32 %4443, -1
  br i1 %4444, label %4445, label %4467

4445:                                             ; preds = %4440
  %4446 = load i32, ptr %3104, align 4, !tbaa !5
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = call i32 @s2n_print_stacktrace(ptr noundef %4447) #12
  %4449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4450 = trunc nuw i8 %4449 to i1
  br i1 %4450, label %4451, label %4455

4451:                                             ; preds = %4445
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = call i32 @fileno(ptr noundef %4452) #12
  %4454 = call i32 @isatty(i32 noundef %4453) #12
  %.not1603 = icmp eq i32 %4454, 0
  br i1 %.not1603, label %4455, label %4456

4455:                                             ; preds = %4451, %4445
  br label %4456

4456:                                             ; preds = %4451, %4455
  %.str.7.sink3296 = phi ptr [ @.str.7, %4455 ], [ @.str.4, %4451 ]
  store i32 %4446, ptr %3104, align 4, !tbaa !5
  %4457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4458 = load i32, ptr @test_count, align 4, !tbaa !5
  %4459 = load i32, ptr %3050, align 4, !tbaa !5
  %4460 = call ptr @s2n_strerror(i32 noundef %4459, ptr noundef nonnull @.str.6) #12
  %4461 = load i32, ptr %3050, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror_debug(i32 noundef %4461, ptr noundef nonnull @.str.6) #12
  %4463 = load i32, ptr %3104, align 4, !tbaa !5
  %4464 = call ptr @strerror(i32 noundef %4463) #12
  %4465 = load i32, ptr %3104, align 4, !tbaa !5
  %4466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4457, ptr noundef nonnull %.str.7.sink3296, i32 noundef %4458, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 437, ptr noundef %4460, ptr noundef %4462, ptr noundef %4464, i32 noundef %4465) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4467:                                             ; preds = %4440
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #12
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %30) #12
  store i16 0, ptr %30, align 2
  %4468 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %4469 = load i32, ptr @test_count, align 4, !tbaa !5
  %4470 = add nsw i32 %4469, 1
  store i32 %4470, ptr @test_count, align 4, !tbaa !5
  %4471 = icmp eq ptr %4468, null
  br i1 %4471, label %4472, label %4494

4472:                                             ; preds = %4467
  %4473 = load i32, ptr %3104, align 4, !tbaa !5
  %4474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4475 = call i32 @s2n_print_stacktrace(ptr noundef %4474) #12
  %4476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4477 = trunc nuw i8 %4476 to i1
  br i1 %4477, label %4478, label %4482

4478:                                             ; preds = %4472
  %4479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4480 = call i32 @fileno(ptr noundef %4479) #12
  %4481 = call i32 @isatty(i32 noundef %4480) #12
  %.not1602 = icmp eq i32 %4481, 0
  br i1 %.not1602, label %4482, label %4483

4482:                                             ; preds = %4478, %4472
  br label %4483

4483:                                             ; preds = %4478, %4482
  %.str.7.sink3305 = phi ptr [ @.str.7, %4482 ], [ @.str.4, %4478 ]
  store i32 %4473, ptr %3104, align 4, !tbaa !5
  %4484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4485 = load i32, ptr @test_count, align 4, !tbaa !5
  %4486 = load i32, ptr %3050, align 4, !tbaa !5
  %4487 = call ptr @s2n_strerror(i32 noundef %4486, ptr noundef nonnull @.str.6) #12
  %4488 = load i32, ptr %3050, align 4, !tbaa !5
  %4489 = call ptr @s2n_strerror_debug(i32 noundef %4488, ptr noundef nonnull @.str.6) #12
  %4490 = load i32, ptr %3104, align 4, !tbaa !5
  %4491 = call ptr @strerror(i32 noundef %4490) #12
  %4492 = load i32, ptr %3104, align 4, !tbaa !5
  %4493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4484, ptr noundef nonnull %.str.7.sink3305, i32 noundef %4485, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.3, i32 noundef 446, ptr noundef %4487, ptr noundef %4489, ptr noundef %4491, i32 noundef %4492) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4494:                                             ; preds = %4467
  %4495 = getelementptr inbounds i8, ptr %4468, i64 220
  store i8 34, ptr %4495, align 4, !tbaa !63
  %4496 = add nsw i32 %4469, 2
  store i32 %4496, ptr @test_count, align 4, !tbaa !5
  %4497 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %4468) #12
  %4498 = call zeroext i1 @s2n_result_is_ok(i32 %4497)
  br i1 %4498, label %4521, label %4499

4499:                                             ; preds = %4494
  %4500 = load i32, ptr %3104, align 4, !tbaa !5
  %4501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4502 = call i32 @s2n_print_stacktrace(ptr noundef %4501) #12
  %4503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4504 = trunc nuw i8 %4503 to i1
  br i1 %4504, label %4505, label %4509

4505:                                             ; preds = %4499
  %4506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4507 = call i32 @fileno(ptr noundef %4506) #12
  %4508 = call i32 @isatty(i32 noundef %4507) #12
  %.not1302 = icmp eq i32 %4508, 0
  br i1 %.not1302, label %4509, label %4510

4509:                                             ; preds = %4505, %4499
  br label %4510

4510:                                             ; preds = %4505, %4509
  %.str.7.sink3314 = phi ptr [ @.str.7, %4509 ], [ @.str.4, %4505 ]
  store i32 %4500, ptr %3104, align 4, !tbaa !5
  %4511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4512 = load i32, ptr @test_count, align 4, !tbaa !5
  %4513 = load i32, ptr %3050, align 4, !tbaa !5
  %4514 = call ptr @s2n_strerror(i32 noundef %4513, ptr noundef nonnull @.str.6) #12
  %4515 = load i32, ptr %3050, align 4, !tbaa !5
  %4516 = call ptr @s2n_strerror_debug(i32 noundef %4515, ptr noundef nonnull @.str.6) #12
  %4517 = load i32, ptr %3104, align 4, !tbaa !5
  %4518 = call ptr @strerror(i32 noundef %4517) #12
  %4519 = load i32, ptr %3104, align 4, !tbaa !5
  %4520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4511, ptr noundef nonnull %.str.7.sink3314, i32 noundef %4512, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 448, ptr noundef %4514, ptr noundef %4516, ptr noundef %4518, i32 noundef %4519) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4521:                                             ; preds = %4494
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %31) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %31, i8 0, i64 40, i1 false)
  %4522 = load i32, ptr @test_count, align 4, !tbaa !5
  %4523 = add nsw i32 %4522, 1
  store i32 %4523, ptr @test_count, align 4, !tbaa !5
  %4524 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %31, i32 noundef 2) #12
  %4525 = icmp eq i32 %4524, -1
  br i1 %4525, label %4526, label %4548

4526:                                             ; preds = %4521
  %4527 = load i32, ptr %3104, align 4, !tbaa !5
  %4528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4529 = call i32 @s2n_print_stacktrace(ptr noundef %4528) #12
  %4530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4531 = trunc nuw i8 %4530 to i1
  br i1 %4531, label %4532, label %4536

4532:                                             ; preds = %4526
  %4533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4534 = call i32 @fileno(ptr noundef %4533) #12
  %4535 = call i32 @isatty(i32 noundef %4534) #12
  %.not1601 = icmp eq i32 %4535, 0
  br i1 %.not1601, label %4536, label %4537

4536:                                             ; preds = %4532, %4526
  br label %4537

4537:                                             ; preds = %4532, %4536
  %.str.7.sink3323 = phi ptr [ @.str.7, %4536 ], [ @.str.4, %4532 ]
  store i32 %4527, ptr %3104, align 4, !tbaa !5
  %4538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4539 = load i32, ptr @test_count, align 4, !tbaa !5
  %4540 = load i32, ptr %3050, align 4, !tbaa !5
  %4541 = call ptr @s2n_strerror(i32 noundef %4540, ptr noundef nonnull @.str.6) #12
  %4542 = load i32, ptr %3050, align 4, !tbaa !5
  %4543 = call ptr @s2n_strerror_debug(i32 noundef %4542, ptr noundef nonnull @.str.6) #12
  %4544 = load i32, ptr %3104, align 4, !tbaa !5
  %4545 = call ptr @strerror(i32 noundef %4544) #12
  %4546 = load i32, ptr %3104, align 4, !tbaa !5
  %4547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4538, ptr noundef nonnull %.str.7.sink3323, i32 noundef %4539, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.3, i32 noundef 451, ptr noundef %4541, ptr noundef %4543, ptr noundef %4545, i32 noundef %4546) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4548:                                             ; preds = %4521
  %4549 = load i32, ptr @test_count, align 4, !tbaa !5
  %4550 = add nsw i32 %4549, 1
  store i32 %4550, ptr @test_count, align 4, !tbaa !5
  %4551 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %31, ptr noundef nonnull %30, i32 noundef 2) #12
  %4552 = icmp eq i32 %4551, -1
  br i1 %4552, label %4553, label %4575

4553:                                             ; preds = %4548
  %4554 = load i32, ptr %3104, align 4, !tbaa !5
  %4555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4556 = call i32 @s2n_print_stacktrace(ptr noundef %4555) #12
  %4557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4558 = trunc nuw i8 %4557 to i1
  br i1 %4558, label %4559, label %4563

4559:                                             ; preds = %4553
  %4560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4561 = call i32 @fileno(ptr noundef %4560) #12
  %4562 = call i32 @isatty(i32 noundef %4561) #12
  %.not1600 = icmp eq i32 %4562, 0
  br i1 %.not1600, label %4563, label %4564

4563:                                             ; preds = %4559, %4553
  br label %4564

4564:                                             ; preds = %4559, %4563
  %.str.7.sink3332 = phi ptr [ @.str.7, %4563 ], [ @.str.4, %4559 ]
  store i32 %4554, ptr %3104, align 4, !tbaa !5
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = load i32, ptr @test_count, align 4, !tbaa !5
  %4567 = load i32, ptr %3050, align 4, !tbaa !5
  %4568 = call ptr @s2n_strerror(i32 noundef %4567, ptr noundef nonnull @.str.6) #12
  %4569 = load i32, ptr %3050, align 4, !tbaa !5
  %4570 = call ptr @s2n_strerror_debug(i32 noundef %4569, ptr noundef nonnull @.str.6) #12
  %4571 = load i32, ptr %3104, align 4, !tbaa !5
  %4572 = call ptr @strerror(i32 noundef %4571) #12
  %4573 = load i32, ptr %3104, align 4, !tbaa !5
  %4574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4565, ptr noundef nonnull %.str.7.sink3332, i32 noundef %4566, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.3, i32 noundef 452, ptr noundef %4568, ptr noundef %4570, ptr noundef %4572, i32 noundef %4573) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4575:                                             ; preds = %4548
  %4576 = load i32, ptr @test_count, align 4, !tbaa !5
  %4577 = add nsw i32 %4576, 1
  store i32 %4577, ptr @test_count, align 4, !tbaa !5
  %4578 = call i32 %2660(ptr noundef nonnull %4468, ptr noundef nonnull %31) #12
  %4579 = icmp eq i32 %4578, -1
  br i1 %4579, label %4580, label %4602

4580:                                             ; preds = %4575
  %4581 = load i32, ptr %3104, align 4, !tbaa !5
  %4582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4583 = call i32 @s2n_print_stacktrace(ptr noundef %4582) #12
  %4584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4585 = trunc nuw i8 %4584 to i1
  br i1 %4585, label %4586, label %4590

4586:                                             ; preds = %4580
  %4587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4588 = call i32 @fileno(ptr noundef %4587) #12
  %4589 = call i32 @isatty(i32 noundef %4588) #12
  %.not1599 = icmp eq i32 %4589, 0
  br i1 %.not1599, label %4590, label %4591

4590:                                             ; preds = %4586, %4580
  br label %4591

4591:                                             ; preds = %4586, %4590
  %.str.7.sink3341 = phi ptr [ @.str.7, %4590 ], [ @.str.4, %4586 ]
  store i32 %4581, ptr %3104, align 4, !tbaa !5
  %4592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4593 = load i32, ptr @test_count, align 4, !tbaa !5
  %4594 = load i32, ptr %3050, align 4, !tbaa !5
  %4595 = call ptr @s2n_strerror(i32 noundef %4594, ptr noundef nonnull @.str.6) #12
  %4596 = load i32, ptr %3050, align 4, !tbaa !5
  %4597 = call ptr @s2n_strerror_debug(i32 noundef %4596, ptr noundef nonnull @.str.6) #12
  %4598 = load i32, ptr %3104, align 4, !tbaa !5
  %4599 = call ptr @strerror(i32 noundef %4598) #12
  %4600 = load i32, ptr %3104, align 4, !tbaa !5
  %4601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4592, ptr noundef nonnull %.str.7.sink3341, i32 noundef %4593, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 454, ptr noundef %4595, ptr noundef %4597, ptr noundef %4599, i32 noundef %4600) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4602:                                             ; preds = %4575
  %4603 = load i32, ptr @test_count, align 4, !tbaa !5
  %4604 = add nsw i32 %4603, 1
  store i32 %4604, ptr @test_count, align 4, !tbaa !5
  %4605 = getelementptr inbounds i8, ptr %31, i64 28
  %4606 = load i32, ptr %4605, align 4, !tbaa !18
  %4607 = getelementptr inbounds i8, ptr %31, i64 24
  %4608 = load i32, ptr %4607, align 8, !tbaa !21
  %4609 = icmp eq i32 %4606, %4608
  br i1 %4609, label %4632, label %4610

4610:                                             ; preds = %4602
  %4611 = load i32, ptr %3104, align 4, !tbaa !5
  %4612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4613 = call i32 @s2n_print_stacktrace(ptr noundef %4612) #12
  %4614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4615 = trunc nuw i8 %4614 to i1
  br i1 %4615, label %4616, label %4620

4616:                                             ; preds = %4610
  %4617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4618 = call i32 @fileno(ptr noundef %4617) #12
  %4619 = call i32 @isatty(i32 noundef %4618) #12
  %.not1303 = icmp eq i32 %4619, 0
  br i1 %.not1303, label %4620, label %4621

4620:                                             ; preds = %4616, %4610
  br label %4621

4621:                                             ; preds = %4616, %4620
  %.str.7.sink3350 = phi ptr [ @.str.7, %4620 ], [ @.str.4, %4616 ]
  store i32 %4611, ptr %3104, align 4, !tbaa !5
  %4622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4623 = load i32, ptr @test_count, align 4, !tbaa !5
  %4624 = load i32, ptr %3050, align 4, !tbaa !5
  %4625 = call ptr @s2n_strerror(i32 noundef %4624, ptr noundef nonnull @.str.6) #12
  %4626 = load i32, ptr %3050, align 4, !tbaa !5
  %4627 = call ptr @s2n_strerror_debug(i32 noundef %4626, ptr noundef nonnull @.str.6) #12
  %4628 = load i32, ptr %3104, align 4, !tbaa !5
  %4629 = call ptr @strerror(i32 noundef %4628) #12
  %4630 = load i32, ptr %3104, align 4, !tbaa !5
  %4631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4622, ptr noundef nonnull %.str.7.sink3350, i32 noundef %4623, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 455, ptr noundef %4625, ptr noundef %4627, ptr noundef %4629, i32 noundef %4630) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4632:                                             ; preds = %4602
  %4633 = add nsw i32 %4603, 2
  store i32 %4633, ptr @test_count, align 4, !tbaa !5
  %4634 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %4468, i32 noundef 16) #12
  br i1 %4634, label %4657, label %4635

4635:                                             ; preds = %4632
  %4636 = load i32, ptr %3104, align 4, !tbaa !5
  %4637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4638 = call i32 @s2n_print_stacktrace(ptr noundef %4637) #12
  %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) #12
  %4644 = call i32 @isatty(i32 noundef %4643) #12
  %.not1304 = icmp eq i32 %4644, 0
  br i1 %.not1304, label %4645, label %4646

4645:                                             ; preds = %4641, %4635
  br label %4646

4646:                                             ; preds = %4641, %4645
  %.str.7.sink3359 = phi ptr [ @.str.7, %4645 ], [ @.str.4, %4641 ]
  store i32 %4636, ptr %3104, 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 %3050, align 4, !tbaa !5
  %4650 = call ptr @s2n_strerror(i32 noundef %4649, ptr noundef nonnull @.str.6) #12
  %4651 = load i32, ptr %3050, align 4, !tbaa !5
  %4652 = call ptr @s2n_strerror_debug(i32 noundef %4651, ptr noundef nonnull @.str.6) #12
  %4653 = load i32, ptr %3104, align 4, !tbaa !5
  %4654 = call ptr @strerror(i32 noundef %4653) #12
  %4655 = load i32, ptr %3104, align 4, !tbaa !5
  %4656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4647, ptr noundef nonnull %.str.7.sink3359, i32 noundef %4648, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.3, i32 noundef 458, ptr noundef %4650, ptr noundef %4652, ptr noundef %4654, i32 noundef %4655) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4657:                                             ; preds = %4632
  %4658 = load i32, ptr @test_count, align 4, !tbaa !5
  %4659 = add nsw i32 %4658, 1
  store i32 %4659, ptr @test_count, align 4, !tbaa !5
  %4660 = call i32 @s2n_stuffer_free(ptr noundef nonnull %31) #12
  %4661 = icmp eq i32 %4660, -1
  br i1 %4661, label %4662, label %4684

4662:                                             ; preds = %4657
  %4663 = load i32, ptr %3104, align 4, !tbaa !5
  %4664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4665 = call i32 @s2n_print_stacktrace(ptr noundef %4664) #12
  %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) #12
  %4671 = call i32 @isatty(i32 noundef %4670) #12
  %.not1598 = icmp eq i32 %4671, 0
  br i1 %.not1598, label %4672, label %4673

4672:                                             ; preds = %4668, %4662
  br label %4673

4673:                                             ; preds = %4668, %4672
  %.str.7.sink3368 = phi ptr [ @.str.7, %4672 ], [ @.str.4, %4668 ]
  store i32 %4663, ptr %3104, 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 %3050, align 4, !tbaa !5
  %4677 = call ptr @s2n_strerror(i32 noundef %4676, ptr noundef nonnull @.str.6) #12
  %4678 = load i32, ptr %3050, align 4, !tbaa !5
  %4679 = call ptr @s2n_strerror_debug(i32 noundef %4678, ptr noundef nonnull @.str.6) #12
  %4680 = load i32, ptr %3104, align 4, !tbaa !5
  %4681 = call ptr @strerror(i32 noundef %4680) #12
  %4682 = load i32, ptr %3104, align 4, !tbaa !5
  %4683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4674, ptr noundef nonnull %.str.7.sink3368, i32 noundef %4675, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 460, ptr noundef %4677, ptr noundef %4679, ptr noundef %4681, i32 noundef %4682) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4684:                                             ; preds = %4657
  %4685 = load i32, ptr @test_count, align 4, !tbaa !5
  %4686 = add nsw i32 %4685, 1
  store i32 %4686, ptr @test_count, align 4, !tbaa !5
  %4687 = call i32 @s2n_connection_free(ptr noundef nonnull %4468) #12
  %4688 = icmp eq i32 %4687, -1
  br i1 %4688, label %4689, label %4711

4689:                                             ; preds = %4684
  %4690 = load i32, ptr %3104, align 4, !tbaa !5
  %4691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4692 = call i32 @s2n_print_stacktrace(ptr noundef %4691) #12
  %4693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4694 = trunc nuw i8 %4693 to i1
  br i1 %4694, label %4695, label %4699

4695:                                             ; preds = %4689
  %4696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4697 = call i32 @fileno(ptr noundef %4696) #12
  %4698 = call i32 @isatty(i32 noundef %4697) #12
  %.not1597 = icmp eq i32 %4698, 0
  br i1 %.not1597, label %4699, label %4700

4699:                                             ; preds = %4695, %4689
  br label %4700

4700:                                             ; preds = %4695, %4699
  %.str.7.sink3377 = phi ptr [ @.str.7, %4699 ], [ @.str.4, %4695 ]
  store i32 %4690, ptr %3104, align 4, !tbaa !5
  %4701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4702 = load i32, ptr @test_count, align 4, !tbaa !5
  %4703 = load i32, ptr %3050, align 4, !tbaa !5
  %4704 = call ptr @s2n_strerror(i32 noundef %4703, ptr noundef nonnull @.str.6) #12
  %4705 = load i32, ptr %3050, align 4, !tbaa !5
  %4706 = call ptr @s2n_strerror_debug(i32 noundef %4705, ptr noundef nonnull @.str.6) #12
  %4707 = load i32, ptr %3104, align 4, !tbaa !5
  %4708 = call ptr @strerror(i32 noundef %4707) #12
  %4709 = load i32, ptr %3104, align 4, !tbaa !5
  %4710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4701, ptr noundef nonnull %.str.7.sink3377, i32 noundef %4702, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 461, ptr noundef %4704, ptr noundef %4706, ptr noundef %4708, i32 noundef %4709) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4711:                                             ; preds = %4684
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %30) #12
  %4712 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %4713 = load i32, ptr @test_count, align 4, !tbaa !5
  %4714 = add nsw i32 %4713, 1
  store i32 %4714, ptr @test_count, align 4, !tbaa !5
  %4715 = icmp eq ptr %4712, null
  br i1 %4715, label %4716, label %4738

4716:                                             ; preds = %4711
  %4717 = load i32, ptr %3104, align 4, !tbaa !5
  %4718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4719 = call i32 @s2n_print_stacktrace(ptr noundef %4718) #12
  %4720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4721 = trunc nuw i8 %4720 to i1
  br i1 %4721, label %4722, label %4726

4722:                                             ; preds = %4716
  %4723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4724 = call i32 @fileno(ptr noundef %4723) #12
  %4725 = call i32 @isatty(i32 noundef %4724) #12
  %.not1596 = icmp eq i32 %4725, 0
  br i1 %.not1596, label %4726, label %4727

4726:                                             ; preds = %4722, %4716
  br label %4727

4727:                                             ; preds = %4722, %4726
  %.str.7.sink3386 = phi ptr [ @.str.7, %4726 ], [ @.str.4, %4722 ]
  store i32 %4717, ptr %3104, align 4, !tbaa !5
  %4728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4729 = load i32, ptr @test_count, align 4, !tbaa !5
  %4730 = load i32, ptr %3050, align 4, !tbaa !5
  %4731 = call ptr @s2n_strerror(i32 noundef %4730, ptr noundef nonnull @.str.6) #12
  %4732 = load i32, ptr %3050, align 4, !tbaa !5
  %4733 = call ptr @s2n_strerror_debug(i32 noundef %4732, ptr noundef nonnull @.str.6) #12
  %4734 = load i32, ptr %3104, align 4, !tbaa !5
  %4735 = call ptr @strerror(i32 noundef %4734) #12
  %4736 = load i32, ptr %3104, align 4, !tbaa !5
  %4737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4728, ptr noundef nonnull %.str.7.sink3386, i32 noundef %4729, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.3, i32 noundef 468, ptr noundef %4731, ptr noundef %4733, ptr noundef %4735, i32 noundef %4736) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4738:                                             ; preds = %4711
  %4739 = getelementptr inbounds i8, ptr %4712, i64 220
  store i8 34, ptr %4739, align 4, !tbaa !63
  %4740 = add nsw i32 %4713, 2
  store i32 %4740, ptr @test_count, align 4, !tbaa !5
  %4741 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %4712) #12
  %4742 = call zeroext i1 @s2n_result_is_ok(i32 %4741)
  br i1 %4742, label %4765, label %4743

4743:                                             ; preds = %4738
  %4744 = load i32, ptr %3104, align 4, !tbaa !5
  %4745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4746 = call i32 @s2n_print_stacktrace(ptr noundef %4745) #12
  %4747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4748 = trunc nuw i8 %4747 to i1
  br i1 %4748, label %4749, label %4753

4749:                                             ; preds = %4743
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = call i32 @fileno(ptr noundef %4750) #12
  %4752 = call i32 @isatty(i32 noundef %4751) #12
  %.not1305 = icmp eq i32 %4752, 0
  br i1 %.not1305, label %4753, label %4754

4753:                                             ; preds = %4749, %4743
  br label %4754

4754:                                             ; preds = %4749, %4753
  %.str.7.sink3395 = phi ptr [ @.str.7, %4753 ], [ @.str.4, %4749 ]
  store i32 %4744, ptr %3104, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = load i32, ptr @test_count, align 4, !tbaa !5
  %4757 = load i32, ptr %3050, align 4, !tbaa !5
  %4758 = call ptr @s2n_strerror(i32 noundef %4757, ptr noundef nonnull @.str.6) #12
  %4759 = load i32, ptr %3050, align 4, !tbaa !5
  %4760 = call ptr @s2n_strerror_debug(i32 noundef %4759, ptr noundef nonnull @.str.6) #12
  %4761 = load i32, ptr %3104, align 4, !tbaa !5
  %4762 = call ptr @strerror(i32 noundef %4761) #12
  %4763 = load i32, ptr %3104, align 4, !tbaa !5
  %4764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4755, ptr noundef nonnull %.str.7.sink3395, i32 noundef %4756, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 470, ptr noundef %4758, ptr noundef %4760, ptr noundef %4762, i32 noundef %4763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4765:                                             ; preds = %4738
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #12
  store ptr null, ptr %32, align 8, !tbaa !9
  %4766 = load i32, ptr @test_count, align 4, !tbaa !5
  %4767 = add nsw i32 %4766, 1
  store i32 %4767, ptr @test_count, align 4, !tbaa !5
  %4768 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %4712, ptr noundef nonnull %32) #12
  %4769 = icmp eq i32 %4768, -1
  br i1 %4769, label %4770, label %4792

4770:                                             ; preds = %4765
  %4771 = load i32, ptr %3104, align 4, !tbaa !5
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = call i32 @s2n_print_stacktrace(ptr noundef %4772) #12
  %4774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4775 = trunc nuw i8 %4774 to i1
  br i1 %4775, label %4776, label %4780

4776:                                             ; preds = %4770
  %4777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4778 = call i32 @fileno(ptr noundef %4777) #12
  %4779 = call i32 @isatty(i32 noundef %4778) #12
  %.not1595 = icmp eq i32 %4779, 0
  br i1 %.not1595, label %4780, label %4781

4780:                                             ; preds = %4776, %4770
  br label %4781

4781:                                             ; preds = %4776, %4780
  %.str.7.sink3404 = phi ptr [ @.str.7, %4780 ], [ @.str.4, %4776 ]
  store i32 %4771, ptr %3104, align 4, !tbaa !5
  %4782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4783 = load i32, ptr @test_count, align 4, !tbaa !5
  %4784 = load i32, ptr %3050, align 4, !tbaa !5
  %4785 = call ptr @s2n_strerror(i32 noundef %4784, ptr noundef nonnull @.str.6) #12
  %4786 = load i32, ptr %3050, align 4, !tbaa !5
  %4787 = call ptr @s2n_strerror_debug(i32 noundef %4786, ptr noundef nonnull @.str.6) #12
  %4788 = load i32, ptr %3104, align 4, !tbaa !5
  %4789 = call ptr @strerror(i32 noundef %4788) #12
  %4790 = load i32, ptr %3104, align 4, !tbaa !5
  %4791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4782, ptr noundef nonnull %.str.7.sink3404, i32 noundef %4783, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 473, ptr noundef %4785, ptr noundef %4787, ptr noundef %4789, i32 noundef %4790) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4792:                                             ; preds = %4765
  %4793 = load i32, ptr @test_count, align 4, !tbaa !5
  %4794 = add nsw i32 %4793, 1
  store i32 %4794, ptr @test_count, align 4, !tbaa !5
  %4795 = load ptr, ptr %32, align 8, !tbaa !9
  %4796 = icmp eq ptr %4795, null
  br i1 %4796, label %4797, label %4819

4797:                                             ; preds = %4792
  %4798 = load i32, ptr %3104, align 4, !tbaa !5
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @s2n_print_stacktrace(ptr noundef %4799) #12
  %4801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4802 = trunc nuw i8 %4801 to i1
  br i1 %4802, label %4803, label %4807

4803:                                             ; preds = %4797
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = call i32 @fileno(ptr noundef %4804) #12
  %4806 = call i32 @isatty(i32 noundef %4805) #12
  %.not1594 = icmp eq i32 %4806, 0
  br i1 %.not1594, label %4807, label %4808

4807:                                             ; preds = %4803, %4797
  br label %4808

4808:                                             ; preds = %4803, %4807
  %.str.7.sink3413 = phi ptr [ @.str.7, %4807 ], [ @.str.4, %4803 ]
  store i32 %4798, ptr %3104, align 4, !tbaa !5
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = load i32, ptr @test_count, align 4, !tbaa !5
  %4811 = load i32, ptr %3050, align 4, !tbaa !5
  %4812 = call ptr @s2n_strerror(i32 noundef %4811, ptr noundef nonnull @.str.6) #12
  %4813 = load i32, ptr %3050, align 4, !tbaa !5
  %4814 = call ptr @s2n_strerror_debug(i32 noundef %4813, ptr noundef nonnull @.str.6) #12
  %4815 = load i32, ptr %3104, align 4, !tbaa !5
  %4816 = call ptr @strerror(i32 noundef %4815) #12
  %4817 = load i32, ptr %3104, align 4, !tbaa !5
  %4818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4809, ptr noundef nonnull %.str.7.sink3413, i32 noundef %4810, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 474, ptr noundef %4812, ptr noundef %4814, ptr noundef %4816, i32 noundef %4817) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4819:                                             ; preds = %4792
  %4820 = add nsw i32 %4793, 2
  store i32 %4820, ptr @test_count, align 4, !tbaa !5
  %4821 = load i8, ptr %4795, align 8, !tbaa !64
  %4822 = icmp ugt i8 %4821, 1
  br i1 %4822, label %4845, label %4823

4823:                                             ; preds = %4819
  %4824 = load i32, ptr %3104, align 4, !tbaa !5
  %4825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4826 = call i32 @s2n_print_stacktrace(ptr noundef %4825) #12
  %4827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4828 = trunc nuw i8 %4827 to i1
  br i1 %4828, label %4829, label %4833

4829:                                             ; preds = %4823
  %4830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4831 = call i32 @fileno(ptr noundef %4830) #12
  %4832 = call i32 @isatty(i32 noundef %4831) #12
  %.not1306 = icmp eq i32 %4832, 0
  br i1 %.not1306, label %4833, label %4834

4833:                                             ; preds = %4829, %4823
  br label %4834

4834:                                             ; preds = %4829, %4833
  %.str.7.sink3422 = phi ptr [ @.str.7, %4833 ], [ @.str.4, %4829 ]
  store i32 %4824, ptr %3104, align 4, !tbaa !5
  %4835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4836 = load i32, ptr @test_count, align 4, !tbaa !5
  %4837 = load i32, ptr %3050, align 4, !tbaa !5
  %4838 = call ptr @s2n_strerror(i32 noundef %4837, ptr noundef nonnull @.str.6) #12
  %4839 = load i32, ptr %3050, align 4, !tbaa !5
  %4840 = call ptr @s2n_strerror_debug(i32 noundef %4839, ptr noundef nonnull @.str.6) #12
  %4841 = load i32, ptr %3104, align 4, !tbaa !5
  %4842 = call ptr @strerror(i32 noundef %4841) #12
  %4843 = load i32, ptr %3104, align 4, !tbaa !5
  %4844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4835, ptr noundef nonnull %.str.7.sink3422, i32 noundef %4836, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.3, i32 noundef 475, ptr noundef %4838, ptr noundef %4840, ptr noundef %4842, i32 noundef %4843) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4845:                                             ; preds = %4819
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #12
  %4846 = getelementptr inbounds i8, ptr %4795, i64 8
  %4847 = load ptr, ptr %4846, align 8, !tbaa !24
  %4848 = getelementptr inbounds i8, ptr %4847, i64 8
  %4849 = load ptr, ptr %4848, align 8, !tbaa !9
  store ptr %4849, ptr %33, align 8, !tbaa !22
  %4850 = getelementptr inbounds i8, ptr %33, i64 8
  store ptr null, ptr %4850, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %34) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %34, i8 0, i64 40, i1 false)
  %4851 = add nsw i32 %4793, 3
  store i32 %4851, ptr @test_count, align 4, !tbaa !5
  %4852 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %34, i32 noundef 0) #12
  %4853 = icmp eq i32 %4852, -1
  br i1 %4853, label %4854, label %4876

4854:                                             ; preds = %4845
  %4855 = load i32, ptr %3104, align 4, !tbaa !5
  %4856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4857 = call i32 @s2n_print_stacktrace(ptr noundef %4856) #12
  %4858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4859 = trunc nuw i8 %4858 to i1
  br i1 %4859, label %4860, label %4864

4860:                                             ; preds = %4854
  %4861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4862 = call i32 @fileno(ptr noundef %4861) #12
  %4863 = call i32 @isatty(i32 noundef %4862) #12
  %.not1593 = icmp eq i32 %4863, 0
  br i1 %.not1593, label %4864, label %4865

4864:                                             ; preds = %4860, %4854
  br label %4865

4865:                                             ; preds = %4860, %4864
  %.str.7.sink3431 = phi ptr [ @.str.7, %4864 ], [ @.str.4, %4860 ]
  store i32 %4855, ptr %3104, align 4, !tbaa !5
  %4866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4867 = load i32, ptr @test_count, align 4, !tbaa !5
  %4868 = load i32, ptr %3050, align 4, !tbaa !5
  %4869 = call ptr @s2n_strerror(i32 noundef %4868, ptr noundef nonnull @.str.6) #12
  %4870 = load i32, ptr %3050, align 4, !tbaa !5
  %4871 = call ptr @s2n_strerror_debug(i32 noundef %4870, ptr noundef nonnull @.str.6) #12
  %4872 = load i32, ptr %3104, align 4, !tbaa !5
  %4873 = call ptr @strerror(i32 noundef %4872) #12
  %4874 = load i32, ptr %3104, align 4, !tbaa !5
  %4875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4866, ptr noundef nonnull %.str.7.sink3431, i32 noundef %4867, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 480, ptr noundef %4869, ptr noundef %4871, ptr noundef %4873, i32 noundef %4874) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4876:                                             ; preds = %4845
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %35, i8 0, i64 16, i1 false)
  %4877 = load i32, ptr @test_count, align 4, !tbaa !5
  %4878 = add nsw i32 %4877, 1
  store i32 %4878, ptr @test_count, align 4, !tbaa !5
  %4879 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %34, ptr noundef nonnull %35) #12
  %4880 = icmp eq i32 %4879, -1
  br i1 %4880, label %4881, label %4903

4881:                                             ; preds = %4876
  %4882 = load i32, ptr %3104, align 4, !tbaa !5
  %4883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4884 = call i32 @s2n_print_stacktrace(ptr noundef %4883) #12
  %4885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4886 = trunc nuw i8 %4885 to i1
  br i1 %4886, label %4887, label %4891

4887:                                             ; preds = %4881
  %4888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4889 = call i32 @fileno(ptr noundef %4888) #12
  %4890 = call i32 @isatty(i32 noundef %4889) #12
  %.not1592 = icmp eq i32 %4890, 0
  br i1 %.not1592, label %4891, label %4892

4891:                                             ; preds = %4887, %4881
  br label %4892

4892:                                             ; preds = %4887, %4891
  %.str.7.sink3440 = phi ptr [ @.str.7, %4891 ], [ @.str.4, %4887 ]
  store i32 %4882, ptr %3104, align 4, !tbaa !5
  %4893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4894 = load i32, ptr @test_count, align 4, !tbaa !5
  %4895 = load i32, ptr %3050, align 4, !tbaa !5
  %4896 = call ptr @s2n_strerror(i32 noundef %4895, ptr noundef nonnull @.str.6) #12
  %4897 = load i32, ptr %3050, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror_debug(i32 noundef %4897, ptr noundef nonnull @.str.6) #12
  %4899 = load i32, ptr %3104, align 4, !tbaa !5
  %4900 = call ptr @strerror(i32 noundef %4899) #12
  %4901 = load i32, ptr %3104, align 4, !tbaa !5
  %4902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4893, ptr noundef nonnull %.str.7.sink3440, i32 noundef %4894, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.3, i32 noundef 483, ptr noundef %4896, ptr noundef %4898, ptr noundef %4900, i32 noundef %4901) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4903:                                             ; preds = %4876
  %4904 = load i32, ptr @test_count, align 4, !tbaa !5
  %4905 = add nsw i32 %4904, 1
  store i32 %4905, ptr @test_count, align 4, !tbaa !5
  %4906 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %33, ptr noundef nonnull %34) #12
  %4907 = icmp eq i32 %4906, -1
  br i1 %4907, label %4908, label %4930

4908:                                             ; preds = %4903
  %4909 = load i32, ptr %3104, align 4, !tbaa !5
  %4910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4911 = call i32 @s2n_print_stacktrace(ptr noundef %4910) #12
  %4912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4913 = trunc nuw i8 %4912 to i1
  br i1 %4913, label %4914, label %4918

4914:                                             ; preds = %4908
  %4915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4916 = call i32 @fileno(ptr noundef %4915) #12
  %4917 = call i32 @isatty(i32 noundef %4916) #12
  %.not1591 = icmp eq i32 %4917, 0
  br i1 %.not1591, label %4918, label %4919

4918:                                             ; preds = %4914, %4908
  br label %4919

4919:                                             ; preds = %4914, %4918
  %.str.7.sink3449 = phi ptr [ @.str.7, %4918 ], [ @.str.4, %4914 ]
  store i32 %4909, ptr %3104, align 4, !tbaa !5
  %4920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4921 = load i32, ptr @test_count, align 4, !tbaa !5
  %4922 = load i32, ptr %3050, align 4, !tbaa !5
  %4923 = call ptr @s2n_strerror(i32 noundef %4922, ptr noundef nonnull @.str.6) #12
  %4924 = load i32, ptr %3050, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror_debug(i32 noundef %4924, ptr noundef nonnull @.str.6) #12
  %4926 = load i32, ptr %3104, align 4, !tbaa !5
  %4927 = call ptr @strerror(i32 noundef %4926) #12
  %4928 = load i32, ptr %3104, align 4, !tbaa !5
  %4929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4920, ptr noundef nonnull %.str.7.sink3449, i32 noundef %4921, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.3, i32 noundef 484, ptr noundef %4923, ptr noundef %4925, ptr noundef %4927, i32 noundef %4928) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4930:                                             ; preds = %4903
  %4931 = load i32, ptr @test_count, align 4, !tbaa !5
  %4932 = add nsw i32 %4931, 1
  store i32 %4932, ptr @test_count, align 4, !tbaa !5
  %4933 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %35) #12
  %4934 = icmp eq i32 %4933, -1
  br i1 %4934, label %4935, label %4957

4935:                                             ; preds = %4930
  %4936 = load i32, ptr %3104, align 4, !tbaa !5
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = call i32 @s2n_print_stacktrace(ptr noundef %4937) #12
  %4939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4940 = trunc nuw i8 %4939 to i1
  br i1 %4940, label %4941, label %4945

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

4945:                                             ; preds = %4941, %4935
  br label %4946

4946:                                             ; preds = %4941, %4945
  %.str.7.sink3458 = phi ptr [ @.str.7, %4945 ], [ @.str.4, %4941 ]
  store i32 %4936, ptr %3104, align 4, !tbaa !5
  %4947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4948 = load i32, ptr @test_count, align 4, !tbaa !5
  %4949 = load i32, ptr %3050, align 4, !tbaa !5
  %4950 = call ptr @s2n_strerror(i32 noundef %4949, ptr noundef nonnull @.str.6) #12
  %4951 = load i32, ptr %3050, align 4, !tbaa !5
  %4952 = call ptr @s2n_strerror_debug(i32 noundef %4951, ptr noundef nonnull @.str.6) #12
  %4953 = load i32, ptr %3104, align 4, !tbaa !5
  %4954 = call ptr @strerror(i32 noundef %4953) #12
  %4955 = load i32, ptr %3104, align 4, !tbaa !5
  %4956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4947, ptr noundef nonnull %.str.7.sink3458, i32 noundef %4948, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.3, i32 noundef 485, ptr noundef %4950, ptr noundef %4952, ptr noundef %4954, i32 noundef %4955) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4957:                                             ; preds = %4930
  %4958 = load i32, ptr @test_count, align 4, !tbaa !5
  %4959 = add nsw i32 %4958, 1
  store i32 %4959, ptr @test_count, align 4, !tbaa !5
  %4960 = call i32 %2660(ptr noundef nonnull %4712, ptr noundef nonnull %34) #12
  %4961 = icmp eq i32 %4960, -1
  br i1 %4961, label %4962, label %4984

4962:                                             ; preds = %4957
  %4963 = load i32, ptr %3104, align 4, !tbaa !5
  %4964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4965 = call i32 @s2n_print_stacktrace(ptr noundef %4964) #12
  %4966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4967 = trunc nuw i8 %4966 to i1
  br i1 %4967, label %4968, label %4972

4968:                                             ; preds = %4962
  %4969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4970 = call i32 @fileno(ptr noundef %4969) #12
  %4971 = call i32 @isatty(i32 noundef %4970) #12
  %.not1589 = icmp eq i32 %4971, 0
  br i1 %.not1589, label %4972, label %4973

4972:                                             ; preds = %4968, %4962
  br label %4973

4973:                                             ; preds = %4968, %4972
  %.str.7.sink3467 = phi ptr [ @.str.7, %4972 ], [ @.str.4, %4968 ]
  store i32 %4963, ptr %3104, align 4, !tbaa !5
  %4974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4975 = load i32, ptr @test_count, align 4, !tbaa !5
  %4976 = load i32, ptr %3050, align 4, !tbaa !5
  %4977 = call ptr @s2n_strerror(i32 noundef %4976, ptr noundef nonnull @.str.6) #12
  %4978 = load i32, ptr %3050, align 4, !tbaa !5
  %4979 = call ptr @s2n_strerror_debug(i32 noundef %4978, ptr noundef nonnull @.str.6) #12
  %4980 = load i32, ptr %3104, align 4, !tbaa !5
  %4981 = call ptr @strerror(i32 noundef %4980) #12
  %4982 = load i32, ptr %3104, align 4, !tbaa !5
  %4983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4974, ptr noundef nonnull %.str.7.sink3467, i32 noundef %4975, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 487, ptr noundef %4977, ptr noundef %4979, ptr noundef %4981, i32 noundef %4982) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4984:                                             ; preds = %4957
  %4985 = load i32, ptr @test_count, align 4, !tbaa !5
  %4986 = add nsw i32 %4985, 1
  store i32 %4986, ptr @test_count, align 4, !tbaa !5
  %4987 = getelementptr inbounds i8, ptr %34, i64 28
  %4988 = load i32, ptr %4987, align 4, !tbaa !18
  %4989 = getelementptr inbounds i8, ptr %34, i64 24
  %4990 = load i32, ptr %4989, align 8, !tbaa !21
  %4991 = icmp eq i32 %4988, %4990
  br i1 %4991, label %5014, label %4992

4992:                                             ; preds = %4984
  %4993 = load i32, ptr %3104, align 4, !tbaa !5
  %4994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4995 = call i32 @s2n_print_stacktrace(ptr noundef %4994) #12
  %4996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4997 = trunc nuw i8 %4996 to i1
  br i1 %4997, label %4998, label %5002

4998:                                             ; preds = %4992
  %4999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5000 = call i32 @fileno(ptr noundef %4999) #12
  %5001 = call i32 @isatty(i32 noundef %5000) #12
  %.not1307 = icmp eq i32 %5001, 0
  br i1 %.not1307, label %5002, label %5003

5002:                                             ; preds = %4998, %4992
  br label %5003

5003:                                             ; preds = %4998, %5002
  %.str.7.sink3476 = phi ptr [ @.str.7, %5002 ], [ @.str.4, %4998 ]
  store i32 %4993, ptr %3104, align 4, !tbaa !5
  %5004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5005 = load i32, ptr @test_count, align 4, !tbaa !5
  %5006 = load i32, ptr %3050, align 4, !tbaa !5
  %5007 = call ptr @s2n_strerror(i32 noundef %5006, ptr noundef nonnull @.str.6) #12
  %5008 = load i32, ptr %3050, align 4, !tbaa !5
  %5009 = call ptr @s2n_strerror_debug(i32 noundef %5008, ptr noundef nonnull @.str.6) #12
  %5010 = load i32, ptr %3104, align 4, !tbaa !5
  %5011 = call ptr @strerror(i32 noundef %5010) #12
  %5012 = load i32, ptr %3104, align 4, !tbaa !5
  %5013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5004, ptr noundef nonnull %.str.7.sink3476, i32 noundef %5005, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 488, ptr noundef %5007, ptr noundef %5009, ptr noundef %5011, i32 noundef %5012) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5014:                                             ; preds = %4984
  %5015 = add nsw i32 %4985, 2
  store i32 %5015, ptr @test_count, align 4, !tbaa !5
  %5016 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %4712, i32 noundef 16) #12
  br i1 %5016, label %5017, label %5039

5017:                                             ; preds = %5014
  %5018 = load i32, ptr %3104, align 4, !tbaa !5
  %5019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5020 = call i32 @s2n_print_stacktrace(ptr noundef %5019) #12
  %5021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5022 = trunc nuw i8 %5021 to i1
  br i1 %5022, label %5023, label %5027

5023:                                             ; preds = %5017
  %5024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5025 = call i32 @fileno(ptr noundef %5024) #12
  %5026 = call i32 @isatty(i32 noundef %5025) #12
  %.not1588 = icmp eq i32 %5026, 0
  br i1 %.not1588, label %5027, label %5028

5027:                                             ; preds = %5023, %5017
  br label %5028

5028:                                             ; preds = %5023, %5027
  %.str.7.sink3485 = phi ptr [ @.str.7, %5027 ], [ @.str.4, %5023 ]
  store i32 %5018, ptr %3104, align 4, !tbaa !5
  %5029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5030 = load i32, ptr @test_count, align 4, !tbaa !5
  %5031 = load i32, ptr %3050, align 4, !tbaa !5
  %5032 = call ptr @s2n_strerror(i32 noundef %5031, ptr noundef nonnull @.str.6) #12
  %5033 = load i32, ptr %3050, align 4, !tbaa !5
  %5034 = call ptr @s2n_strerror_debug(i32 noundef %5033, ptr noundef nonnull @.str.6) #12
  %5035 = load i32, ptr %3104, align 4, !tbaa !5
  %5036 = call ptr @strerror(i32 noundef %5035) #12
  %5037 = load i32, ptr %3104, align 4, !tbaa !5
  %5038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5029, ptr noundef nonnull %.str.7.sink3485, i32 noundef %5030, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.3, i32 noundef 491, ptr noundef %5032, ptr noundef %5034, ptr noundef %5036, i32 noundef %5037) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5039:                                             ; preds = %5014
  %5040 = getelementptr inbounds i8, ptr %4712, i64 704
  %5041 = load i32, ptr @test_count, align 4, !tbaa !5
  %5042 = add nsw i32 %5041, 1
  store i32 %5042, ptr @test_count, align 4, !tbaa !5
  %5043 = load ptr, ptr %5040, align 8, !tbaa !22
  %5044 = icmp eq ptr %5043, null
  br i1 %5044, label %5045, label %5067

5045:                                             ; preds = %5039
  %5046 = load i32, ptr %3104, align 4, !tbaa !5
  %5047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5048 = call i32 @s2n_print_stacktrace(ptr noundef %5047) #12
  %5049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5050 = trunc nuw i8 %5049 to i1
  br i1 %5050, label %5051, label %5055

5051:                                             ; preds = %5045
  %5052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5053 = call i32 @fileno(ptr noundef %5052) #12
  %5054 = call i32 @isatty(i32 noundef %5053) #12
  %.not1587 = icmp eq i32 %5054, 0
  br i1 %.not1587, label %5055, label %5056

5055:                                             ; preds = %5051, %5045
  br label %5056

5056:                                             ; preds = %5051, %5055
  %.str.7.sink3494 = phi ptr [ @.str.7, %5055 ], [ @.str.4, %5051 ]
  store i32 %5046, ptr %3104, align 4, !tbaa !5
  %5057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5058 = load i32, ptr @test_count, align 4, !tbaa !5
  %5059 = load i32, ptr %3050, align 4, !tbaa !5
  %5060 = call ptr @s2n_strerror(i32 noundef %5059, ptr noundef nonnull @.str.6) #12
  %5061 = load i32, ptr %3050, align 4, !tbaa !5
  %5062 = call ptr @s2n_strerror_debug(i32 noundef %5061, ptr noundef nonnull @.str.6) #12
  %5063 = load i32, ptr %3104, align 4, !tbaa !5
  %5064 = call ptr @strerror(i32 noundef %5063) #12
  %5065 = load i32, ptr %3104, align 4, !tbaa !5
  %5066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5057, ptr noundef nonnull %.str.7.sink3494, i32 noundef %5058, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.3, i32 noundef 495, ptr noundef %5060, ptr noundef %5062, ptr noundef %5064, i32 noundef %5065) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5067:                                             ; preds = %5039
  %5068 = add nsw i32 %5041, 2
  store i32 %5068, ptr @test_count, align 4, !tbaa !5
  %5069 = getelementptr inbounds i8, ptr %4712, i64 712
  %5070 = load ptr, ptr %5069, align 8, !tbaa !26
  %5071 = icmp eq ptr %5070, null
  br i1 %5071, label %5072, label %5094

5072:                                             ; preds = %5067
  %5073 = load i32, ptr %3104, align 4, !tbaa !5
  %5074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5075 = call i32 @s2n_print_stacktrace(ptr noundef %5074) #12
  %5076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5077 = trunc nuw i8 %5076 to i1
  br i1 %5077, label %5078, label %5082

5078:                                             ; preds = %5072
  %5079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5080 = call i32 @fileno(ptr noundef %5079) #12
  %5081 = call i32 @isatty(i32 noundef %5080) #12
  %.not1586 = icmp eq i32 %5081, 0
  br i1 %.not1586, label %5082, label %5083

5082:                                             ; preds = %5078, %5072
  br label %5083

5083:                                             ; preds = %5078, %5082
  %.str.7.sink3503 = phi ptr [ @.str.7, %5082 ], [ @.str.4, %5078 ]
  store i32 %5073, ptr %3104, align 4, !tbaa !5
  %5084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5085 = load i32, ptr @test_count, align 4, !tbaa !5
  %5086 = load i32, ptr %3050, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror(i32 noundef %5086, ptr noundef nonnull @.str.6) #12
  %5088 = load i32, ptr %3050, align 4, !tbaa !5
  %5089 = call ptr @s2n_strerror_debug(i32 noundef %5088, ptr noundef nonnull @.str.6) #12
  %5090 = load i32, ptr %3104, align 4, !tbaa !5
  %5091 = call ptr @strerror(i32 noundef %5090) #12
  %5092 = load i32, ptr %3104, align 4, !tbaa !5
  %5093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5084, ptr noundef nonnull %.str.7.sink3503, i32 noundef %5085, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.3, i32 noundef 496, ptr noundef %5087, ptr noundef %5089, ptr noundef %5091, i32 noundef %5092) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5094:                                             ; preds = %5067
  %5095 = add nsw i32 %5041, 3
  store i32 %5095, ptr @test_count, align 4, !tbaa !5
  %5096 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %5040, ptr noundef nonnull %33) #12
  %.not1308 = icmp eq i32 %5096, 0
  br i1 %.not1308, label %5097, label %5119

5097:                                             ; preds = %5094
  %5098 = load i32, ptr %3104, align 4, !tbaa !5
  %5099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5100 = call i32 @s2n_print_stacktrace(ptr noundef %5099) #12
  %5101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5102 = trunc nuw i8 %5101 to i1
  br i1 %5102, label %5103, label %5107

5103:                                             ; preds = %5097
  %5104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5105 = call i32 @fileno(ptr noundef %5104) #12
  %5106 = call i32 @isatty(i32 noundef %5105) #12
  %.not1309 = icmp eq i32 %5106, 0
  br i1 %.not1309, label %5107, label %5108

5107:                                             ; preds = %5103, %5097
  br label %5108

5108:                                             ; preds = %5103, %5107
  %.str.7.sink3512 = phi ptr [ @.str.7, %5107 ], [ @.str.4, %5103 ]
  store i32 %5098, ptr %3104, align 4, !tbaa !5
  %5109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5110 = load i32, ptr @test_count, align 4, !tbaa !5
  %5111 = load i32, ptr %3050, align 4, !tbaa !5
  %5112 = call ptr @s2n_strerror(i32 noundef %5111, ptr noundef nonnull @.str.6) #12
  %5113 = load i32, ptr %3050, align 4, !tbaa !5
  %5114 = call ptr @s2n_strerror_debug(i32 noundef %5113, ptr noundef nonnull @.str.6) #12
  %5115 = load i32, ptr %3104, align 4, !tbaa !5
  %5116 = call ptr @strerror(i32 noundef %5115) #12
  %5117 = load i32, ptr %3104, align 4, !tbaa !5
  %5118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5109, ptr noundef nonnull %.str.7.sink3512, i32 noundef %5110, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.3, i32 noundef 497, ptr noundef %5112, ptr noundef %5114, ptr noundef %5116, i32 noundef %5117) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5119:                                             ; preds = %5094
  %5120 = load i32, ptr @test_count, align 4, !tbaa !5
  %5121 = add nsw i32 %5120, 1
  store i32 %5121, ptr @test_count, align 4, !tbaa !5
  %5122 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %33) #12
  %5123 = icmp eq i32 %5122, -1
  br i1 %5123, label %5124, label %5146

5124:                                             ; preds = %5119
  %5125 = load i32, ptr %3104, align 4, !tbaa !5
  %5126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5127 = call i32 @s2n_print_stacktrace(ptr noundef %5126) #12
  %5128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5129 = trunc nuw i8 %5128 to i1
  br i1 %5129, label %5130, label %5134

5130:                                             ; preds = %5124
  %5131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5132 = call i32 @fileno(ptr noundef %5131) #12
  %5133 = call i32 @isatty(i32 noundef %5132) #12
  %.not1585 = icmp eq i32 %5133, 0
  br i1 %.not1585, label %5134, label %5135

5134:                                             ; preds = %5130, %5124
  br label %5135

5135:                                             ; preds = %5130, %5134
  %.str.7.sink3521 = phi ptr [ @.str.7, %5134 ], [ @.str.4, %5130 ]
  store i32 %5125, ptr %3104, align 4, !tbaa !5
  %5136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5137 = load i32, ptr @test_count, align 4, !tbaa !5
  %5138 = load i32, ptr %3050, align 4, !tbaa !5
  %5139 = call ptr @s2n_strerror(i32 noundef %5138, ptr noundef nonnull @.str.6) #12
  %5140 = load i32, ptr %3050, align 4, !tbaa !5
  %5141 = call ptr @s2n_strerror_debug(i32 noundef %5140, ptr noundef nonnull @.str.6) #12
  %5142 = load i32, ptr %3104, align 4, !tbaa !5
  %5143 = call ptr @strerror(i32 noundef %5142) #12
  %5144 = load i32, ptr %3104, align 4, !tbaa !5
  %5145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5136, ptr noundef nonnull %.str.7.sink3521, i32 noundef %5137, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.3, i32 noundef 499, ptr noundef %5139, ptr noundef %5141, ptr noundef %5143, i32 noundef %5144) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5146:                                             ; preds = %5119
  %5147 = load i32, ptr @test_count, align 4, !tbaa !5
  %5148 = add nsw i32 %5147, 1
  store i32 %5148, ptr @test_count, align 4, !tbaa !5
  %5149 = call i32 @s2n_stuffer_free(ptr noundef nonnull %34) #12
  %5150 = icmp eq i32 %5149, -1
  br i1 %5150, label %5151, label %5173

5151:                                             ; preds = %5146
  %5152 = load i32, ptr %3104, align 4, !tbaa !5
  %5153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5154 = call i32 @s2n_print_stacktrace(ptr noundef %5153) #12
  %5155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5156 = trunc nuw i8 %5155 to i1
  br i1 %5156, label %5157, label %5161

5157:                                             ; preds = %5151
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = call i32 @fileno(ptr noundef %5158) #12
  %5160 = call i32 @isatty(i32 noundef %5159) #12
  %.not1584 = icmp eq i32 %5160, 0
  br i1 %.not1584, label %5161, label %5162

5161:                                             ; preds = %5157, %5151
  br label %5162

5162:                                             ; preds = %5157, %5161
  %.str.7.sink3530 = phi ptr [ @.str.7, %5161 ], [ @.str.4, %5157 ]
  store i32 %5152, ptr %3104, align 4, !tbaa !5
  %5163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5164 = load i32, ptr @test_count, align 4, !tbaa !5
  %5165 = load i32, ptr %3050, align 4, !tbaa !5
  %5166 = call ptr @s2n_strerror(i32 noundef %5165, ptr noundef nonnull @.str.6) #12
  %5167 = load i32, ptr %3050, align 4, !tbaa !5
  %5168 = call ptr @s2n_strerror_debug(i32 noundef %5167, ptr noundef nonnull @.str.6) #12
  %5169 = load i32, ptr %3104, align 4, !tbaa !5
  %5170 = call ptr @strerror(i32 noundef %5169) #12
  %5171 = load i32, ptr %3104, align 4, !tbaa !5
  %5172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5163, ptr noundef nonnull %.str.7.sink3530, i32 noundef %5164, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 500, ptr noundef %5166, ptr noundef %5168, ptr noundef %5170, i32 noundef %5171) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5173:                                             ; preds = %5146
  %5174 = load i32, ptr @test_count, align 4, !tbaa !5
  %5175 = add nsw i32 %5174, 1
  store i32 %5175, ptr @test_count, align 4, !tbaa !5
  %5176 = call i32 @s2n_connection_free(ptr noundef nonnull %4712) #12
  %5177 = icmp eq i32 %5176, -1
  br i1 %5177, label %5178, label %5200

5178:                                             ; preds = %5173
  %5179 = load i32, ptr %3104, align 4, !tbaa !5
  %5180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5181 = call i32 @s2n_print_stacktrace(ptr noundef %5180) #12
  %5182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5183 = trunc nuw i8 %5182 to i1
  br i1 %5183, label %5184, label %5188

5184:                                             ; preds = %5178
  %5185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5186 = call i32 @fileno(ptr noundef %5185) #12
  %5187 = call i32 @isatty(i32 noundef %5186) #12
  %.not1583 = icmp eq i32 %5187, 0
  br i1 %.not1583, label %5188, label %5189

5188:                                             ; preds = %5184, %5178
  br label %5189

5189:                                             ; preds = %5184, %5188
  %.str.7.sink3539 = phi ptr [ @.str.7, %5188 ], [ @.str.4, %5184 ]
  store i32 %5179, ptr %3104, align 4, !tbaa !5
  %5190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5191 = load i32, ptr @test_count, align 4, !tbaa !5
  %5192 = load i32, ptr %3050, align 4, !tbaa !5
  %5193 = call ptr @s2n_strerror(i32 noundef %5192, ptr noundef nonnull @.str.6) #12
  %5194 = load i32, ptr %3050, align 4, !tbaa !5
  %5195 = call ptr @s2n_strerror_debug(i32 noundef %5194, ptr noundef nonnull @.str.6) #12
  %5196 = load i32, ptr %3104, align 4, !tbaa !5
  %5197 = call ptr @strerror(i32 noundef %5196) #12
  %5198 = load i32, ptr %3104, align 4, !tbaa !5
  %5199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5190, ptr noundef nonnull %.str.7.sink3539, i32 noundef %5191, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 501, ptr noundef %5193, ptr noundef %5195, ptr noundef %5197, i32 noundef %5198) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5200:                                             ; preds = %5173
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #12
  %5201 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %5202 = load i32, ptr @test_count, align 4, !tbaa !5
  %5203 = add nsw i32 %5202, 1
  store i32 %5203, ptr @test_count, align 4, !tbaa !5
  %5204 = icmp eq ptr %5201, null
  br i1 %5204, label %5205, label %5227

5205:                                             ; preds = %5200
  %5206 = load i32, ptr %3104, align 4, !tbaa !5
  %5207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5208 = call i32 @s2n_print_stacktrace(ptr noundef %5207) #12
  %5209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5210 = trunc nuw i8 %5209 to i1
  br i1 %5210, label %5211, label %5215

5211:                                             ; preds = %5205
  %5212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5213 = call i32 @fileno(ptr noundef %5212) #12
  %5214 = call i32 @isatty(i32 noundef %5213) #12
  %.not1582 = icmp eq i32 %5214, 0
  br i1 %.not1582, label %5215, label %5216

5215:                                             ; preds = %5211, %5205
  br label %5216

5216:                                             ; preds = %5211, %5215
  %.str.7.sink3548 = phi ptr [ @.str.7, %5215 ], [ @.str.4, %5211 ]
  store i32 %5206, ptr %3104, align 4, !tbaa !5
  %5217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5218 = load i32, ptr @test_count, align 4, !tbaa !5
  %5219 = load i32, ptr %3050, align 4, !tbaa !5
  %5220 = call ptr @s2n_strerror(i32 noundef %5219, ptr noundef nonnull @.str.6) #12
  %5221 = load i32, ptr %3050, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror_debug(i32 noundef %5221, ptr noundef nonnull @.str.6) #12
  %5223 = load i32, ptr %3104, align 4, !tbaa !5
  %5224 = call ptr @strerror(i32 noundef %5223) #12
  %5225 = load i32, ptr %3104, align 4, !tbaa !5
  %5226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5217, ptr noundef nonnull %.str.7.sink3548, i32 noundef %5218, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.3, i32 noundef 507, ptr noundef %5220, ptr noundef %5222, ptr noundef %5224, i32 noundef %5225) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5227:                                             ; preds = %5200
  %5228 = getelementptr inbounds i8, ptr %5201, i64 220
  store i8 34, ptr %5228, align 4, !tbaa !63
  %5229 = add nsw i32 %5202, 2
  store i32 %5229, ptr @test_count, align 4, !tbaa !5
  %5230 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %5201) #12
  %5231 = call zeroext i1 @s2n_result_is_ok(i32 %5230)
  br i1 %5231, label %5254, label %5232

5232:                                             ; preds = %5227
  %5233 = load i32, ptr %3104, align 4, !tbaa !5
  %5234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5235 = call i32 @s2n_print_stacktrace(ptr noundef %5234) #12
  %5236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5237 = trunc nuw i8 %5236 to i1
  br i1 %5237, label %5238, label %5242

5238:                                             ; preds = %5232
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = call i32 @fileno(ptr noundef %5239) #12
  %5241 = call i32 @isatty(i32 noundef %5240) #12
  %.not1310 = icmp eq i32 %5241, 0
  br i1 %.not1310, label %5242, label %5243

5242:                                             ; preds = %5238, %5232
  br label %5243

5243:                                             ; preds = %5238, %5242
  %.str.7.sink3557 = phi ptr [ @.str.7, %5242 ], [ @.str.4, %5238 ]
  store i32 %5233, ptr %3104, align 4, !tbaa !5
  %5244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5245 = load i32, ptr @test_count, align 4, !tbaa !5
  %5246 = load i32, ptr %3050, align 4, !tbaa !5
  %5247 = call ptr @s2n_strerror(i32 noundef %5246, ptr noundef nonnull @.str.6) #12
  %5248 = load i32, ptr %3050, align 4, !tbaa !5
  %5249 = call ptr @s2n_strerror_debug(i32 noundef %5248, ptr noundef nonnull @.str.6) #12
  %5250 = load i32, ptr %3104, align 4, !tbaa !5
  %5251 = call ptr @strerror(i32 noundef %5250) #12
  %5252 = load i32, ptr %3104, align 4, !tbaa !5
  %5253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5244, ptr noundef nonnull %.str.7.sink3557, i32 noundef %5245, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 509, ptr noundef %5247, ptr noundef %5249, ptr noundef %5251, i32 noundef %5252) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5254:                                             ; preds = %5227
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  store ptr null, ptr %36, align 8, !tbaa !9
  %5255 = load i32, ptr @test_count, align 4, !tbaa !5
  %5256 = add nsw i32 %5255, 1
  store i32 %5256, ptr @test_count, align 4, !tbaa !5
  %5257 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %5201, ptr noundef nonnull %36) #12
  %5258 = icmp eq i32 %5257, -1
  br i1 %5258, label %5259, label %5281

5259:                                             ; preds = %5254
  %5260 = load i32, ptr %3104, align 4, !tbaa !5
  %5261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5262 = call i32 @s2n_print_stacktrace(ptr noundef %5261) #12
  %5263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5264 = trunc nuw i8 %5263 to i1
  br i1 %5264, label %5265, label %5269

5265:                                             ; preds = %5259
  %5266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5267 = call i32 @fileno(ptr noundef %5266) #12
  %5268 = call i32 @isatty(i32 noundef %5267) #12
  %.not1581 = icmp eq i32 %5268, 0
  br i1 %.not1581, label %5269, label %5270

5269:                                             ; preds = %5265, %5259
  br label %5270

5270:                                             ; preds = %5265, %5269
  %.str.7.sink3566 = phi ptr [ @.str.7, %5269 ], [ @.str.4, %5265 ]
  store i32 %5260, ptr %3104, align 4, !tbaa !5
  %5271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5272 = load i32, ptr @test_count, align 4, !tbaa !5
  %5273 = load i32, ptr %3050, align 4, !tbaa !5
  %5274 = call ptr @s2n_strerror(i32 noundef %5273, ptr noundef nonnull @.str.6) #12
  %5275 = load i32, ptr %3050, align 4, !tbaa !5
  %5276 = call ptr @s2n_strerror_debug(i32 noundef %5275, ptr noundef nonnull @.str.6) #12
  %5277 = load i32, ptr %3104, align 4, !tbaa !5
  %5278 = call ptr @strerror(i32 noundef %5277) #12
  %5279 = load i32, ptr %3104, align 4, !tbaa !5
  %5280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5271, ptr noundef nonnull %.str.7.sink3566, i32 noundef %5272, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 512, ptr noundef %5274, ptr noundef %5276, ptr noundef %5278, i32 noundef %5279) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5281:                                             ; preds = %5254
  %5282 = load i32, ptr @test_count, align 4, !tbaa !5
  %5283 = add nsw i32 %5282, 1
  store i32 %5283, ptr @test_count, align 4, !tbaa !5
  %5284 = load ptr, ptr %36, align 8, !tbaa !9
  %5285 = icmp eq ptr %5284, null
  br i1 %5285, label %5286, label %5308

5286:                                             ; preds = %5281
  %5287 = load i32, ptr %3104, align 4, !tbaa !5
  %5288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5289 = call i32 @s2n_print_stacktrace(ptr noundef %5288) #12
  %5290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5291 = trunc nuw i8 %5290 to i1
  br i1 %5291, label %5292, label %5296

5292:                                             ; preds = %5286
  %5293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5294 = call i32 @fileno(ptr noundef %5293) #12
  %5295 = call i32 @isatty(i32 noundef %5294) #12
  %.not1580 = icmp eq i32 %5295, 0
  br i1 %.not1580, label %5296, label %5297

5296:                                             ; preds = %5292, %5286
  br label %5297

5297:                                             ; preds = %5292, %5296
  %.str.7.sink3575 = phi ptr [ @.str.7, %5296 ], [ @.str.4, %5292 ]
  store i32 %5287, ptr %3104, align 4, !tbaa !5
  %5298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5299 = load i32, ptr @test_count, align 4, !tbaa !5
  %5300 = load i32, ptr %3050, align 4, !tbaa !5
  %5301 = call ptr @s2n_strerror(i32 noundef %5300, ptr noundef nonnull @.str.6) #12
  %5302 = load i32, ptr %3050, align 4, !tbaa !5
  %5303 = call ptr @s2n_strerror_debug(i32 noundef %5302, ptr noundef nonnull @.str.6) #12
  %5304 = load i32, ptr %3104, align 4, !tbaa !5
  %5305 = call ptr @strerror(i32 noundef %5304) #12
  %5306 = load i32, ptr %3104, align 4, !tbaa !5
  %5307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5298, ptr noundef nonnull %.str.7.sink3575, i32 noundef %5299, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 513, ptr noundef %5301, ptr noundef %5303, ptr noundef %5305, i32 noundef %5306) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5308:                                             ; preds = %5281
  %5309 = add nsw i32 %5282, 2
  store i32 %5309, ptr @test_count, align 4, !tbaa !5
  %5310 = load i8, ptr %5284, align 8, !tbaa !64
  %5311 = icmp ugt i8 %5310, 1
  br i1 %5311, label %5334, label %5312

5312:                                             ; preds = %5308
  %5313 = load i32, ptr %3104, align 4, !tbaa !5
  %5314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5315 = call i32 @s2n_print_stacktrace(ptr noundef %5314) #12
  %5316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5317 = trunc nuw i8 %5316 to i1
  br i1 %5317, label %5318, label %5322

5318:                                             ; preds = %5312
  %5319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5320 = call i32 @fileno(ptr noundef %5319) #12
  %5321 = call i32 @isatty(i32 noundef %5320) #12
  %.not1311 = icmp eq i32 %5321, 0
  br i1 %.not1311, label %5322, label %5323

5322:                                             ; preds = %5318, %5312
  br label %5323

5323:                                             ; preds = %5318, %5322
  %.str.7.sink3584 = phi ptr [ @.str.7, %5322 ], [ @.str.4, %5318 ]
  store i32 %5313, ptr %3104, align 4, !tbaa !5
  %5324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5325 = load i32, ptr @test_count, align 4, !tbaa !5
  %5326 = load i32, ptr %3050, align 4, !tbaa !5
  %5327 = call ptr @s2n_strerror(i32 noundef %5326, ptr noundef nonnull @.str.6) #12
  %5328 = load i32, ptr %3050, align 4, !tbaa !5
  %5329 = call ptr @s2n_strerror_debug(i32 noundef %5328, ptr noundef nonnull @.str.6) #12
  %5330 = load i32, ptr %3104, align 4, !tbaa !5
  %5331 = call ptr @strerror(i32 noundef %5330) #12
  %5332 = load i32, ptr %3104, align 4, !tbaa !5
  %5333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5324, ptr noundef nonnull %.str.7.sink3584, i32 noundef %5325, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.3, i32 noundef 514, ptr noundef %5327, ptr noundef %5329, ptr noundef %5331, i32 noundef %5332) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5334:                                             ; preds = %5308
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #12
  %5335 = getelementptr inbounds i8, ptr %5284, i64 8
  %5336 = load ptr, ptr %5335, align 8, !tbaa !24
  %5337 = load ptr, ptr %5336, align 8, !tbaa !9
  store ptr %5337, ptr %37, align 16, !tbaa !22
  %5338 = getelementptr inbounds i8, ptr %37, i64 8
  store ptr null, ptr %5338, align 8, !tbaa !26
  %5339 = getelementptr inbounds i8, ptr %37, i64 16
  %5340 = getelementptr inbounds i8, ptr %5336, i64 8
  %5341 = load ptr, ptr %5340, align 8, !tbaa !9
  store ptr %5341, ptr %5339, align 16, !tbaa !22
  %5342 = getelementptr inbounds i8, ptr %37, i64 24
  store ptr null, ptr %5342, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %38) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %38, i8 0, i64 40, i1 false)
  %5343 = add nsw i32 %5282, 3
  store i32 %5343, ptr @test_count, align 4, !tbaa !5
  %5344 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %38, i32 noundef 0) #12
  %5345 = icmp eq i32 %5344, -1
  br i1 %5345, label %5346, label %5368

5346:                                             ; preds = %5334
  %5347 = load i32, ptr %3104, align 4, !tbaa !5
  %5348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5349 = call i32 @s2n_print_stacktrace(ptr noundef %5348) #12
  %5350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5351 = trunc nuw i8 %5350 to i1
  br i1 %5351, label %5352, label %5356

5352:                                             ; preds = %5346
  %5353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5354 = call i32 @fileno(ptr noundef %5353) #12
  %5355 = call i32 @isatty(i32 noundef %5354) #12
  %.not1579 = icmp eq i32 %5355, 0
  br i1 %.not1579, label %5356, label %5357

5356:                                             ; preds = %5352, %5346
  br label %5357

5357:                                             ; preds = %5352, %5356
  %.str.7.sink3593 = phi ptr [ @.str.7, %5356 ], [ @.str.4, %5352 ]
  store i32 %5347, ptr %3104, align 4, !tbaa !5
  %5358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5359 = load i32, ptr @test_count, align 4, !tbaa !5
  %5360 = load i32, ptr %3050, align 4, !tbaa !5
  %5361 = call ptr @s2n_strerror(i32 noundef %5360, ptr noundef nonnull @.str.6) #12
  %5362 = load i32, ptr %3050, align 4, !tbaa !5
  %5363 = call ptr @s2n_strerror_debug(i32 noundef %5362, ptr noundef nonnull @.str.6) #12
  %5364 = load i32, ptr %3104, align 4, !tbaa !5
  %5365 = call ptr @strerror(i32 noundef %5364) #12
  %5366 = load i32, ptr %3104, align 4, !tbaa !5
  %5367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5358, ptr noundef nonnull %.str.7.sink3593, i32 noundef %5359, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 522, ptr noundef %5361, ptr noundef %5363, ptr noundef %5365, i32 noundef %5366) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5368:                                             ; preds = %5334
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %39, i8 0, i64 16, i1 false)
  %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 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %38, ptr noundef nonnull %39) #12
  %5372 = icmp eq i32 %5371, -1
  br i1 %5372, label %5373, label %5395

5373:                                             ; preds = %5368
  %5374 = load i32, ptr %3104, align 4, !tbaa !5
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = call i32 @s2n_print_stacktrace(ptr noundef %5375) #12
  %5377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5378 = trunc nuw i8 %5377 to i1
  br i1 %5378, label %5379, label %5383

5379:                                             ; preds = %5373
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = call i32 @fileno(ptr noundef %5380) #12
  %5382 = call i32 @isatty(i32 noundef %5381) #12
  %.not1578 = icmp eq i32 %5382, 0
  br i1 %.not1578, label %5383, label %5384

5383:                                             ; preds = %5379, %5373
  br label %5384

5384:                                             ; preds = %5379, %5383
  %.str.7.sink3602 = phi ptr [ @.str.7, %5383 ], [ @.str.4, %5379 ]
  store i32 %5374, ptr %3104, align 4, !tbaa !5
  %5385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5386 = load i32, ptr @test_count, align 4, !tbaa !5
  %5387 = load i32, ptr %3050, align 4, !tbaa !5
  %5388 = call ptr @s2n_strerror(i32 noundef %5387, ptr noundef nonnull @.str.6) #12
  %5389 = load i32, ptr %3050, align 4, !tbaa !5
  %5390 = call ptr @s2n_strerror_debug(i32 noundef %5389, ptr noundef nonnull @.str.6) #12
  %5391 = load i32, ptr %3104, align 4, !tbaa !5
  %5392 = call ptr @strerror(i32 noundef %5391) #12
  %5393 = load i32, ptr %3104, align 4, !tbaa !5
  %5394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5385, ptr noundef nonnull %.str.7.sink3602, i32 noundef %5386, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.3, i32 noundef 525, ptr noundef %5388, ptr noundef %5390, ptr noundef %5392, i32 noundef %5393) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5395:                                             ; preds = %5368
  %5396 = load i32, ptr @test_count, align 4, !tbaa !5
  %5397 = add nsw i32 %5396, 1
  store i32 %5397, ptr @test_count, align 4, !tbaa !5
  %5398 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %37, ptr noundef nonnull %38) #12
  %5399 = icmp eq i32 %5398, -1
  br i1 %5399, label %5400, label %5422

5400:                                             ; preds = %5395
  %5401 = load i32, ptr %3104, align 4, !tbaa !5
  %5402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5403 = call i32 @s2n_print_stacktrace(ptr noundef %5402) #12
  %5404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5405 = trunc nuw i8 %5404 to i1
  br i1 %5405, label %5406, label %5410

5406:                                             ; preds = %5400
  %5407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5408 = call i32 @fileno(ptr noundef %5407) #12
  %5409 = call i32 @isatty(i32 noundef %5408) #12
  %.not1577 = icmp eq i32 %5409, 0
  br i1 %.not1577, label %5410, label %5411

5410:                                             ; preds = %5406, %5400
  br label %5411

5411:                                             ; preds = %5406, %5410
  %.str.7.sink3611 = phi ptr [ @.str.7, %5410 ], [ @.str.4, %5406 ]
  store i32 %5401, ptr %3104, align 4, !tbaa !5
  %5412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5413 = load i32, ptr @test_count, align 4, !tbaa !5
  %5414 = load i32, ptr %3050, align 4, !tbaa !5
  %5415 = call ptr @s2n_strerror(i32 noundef %5414, ptr noundef nonnull @.str.6) #12
  %5416 = load i32, ptr %3050, align 4, !tbaa !5
  %5417 = call ptr @s2n_strerror_debug(i32 noundef %5416, ptr noundef nonnull @.str.6) #12
  %5418 = load i32, ptr %3104, align 4, !tbaa !5
  %5419 = call ptr @strerror(i32 noundef %5418) #12
  %5420 = load i32, ptr %3104, align 4, !tbaa !5
  %5421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5412, ptr noundef nonnull %.str.7.sink3611, i32 noundef %5413, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.3, i32 noundef 526, ptr noundef %5415, ptr noundef %5417, ptr noundef %5419, i32 noundef %5420) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5422:                                             ; preds = %5395
  %5423 = load i32, ptr @test_count, align 4, !tbaa !5
  %5424 = add nsw i32 %5423, 1
  store i32 %5424, ptr @test_count, align 4, !tbaa !5
  %5425 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %5339, ptr noundef nonnull %38) #12
  %5426 = icmp eq i32 %5425, -1
  br i1 %5426, label %5427, label %5449

5427:                                             ; preds = %5422
  %5428 = load i32, ptr %3104, align 4, !tbaa !5
  %5429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5430 = call i32 @s2n_print_stacktrace(ptr noundef %5429) #12
  %5431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5432 = trunc nuw i8 %5431 to i1
  br i1 %5432, label %5433, label %5437

5433:                                             ; preds = %5427
  %5434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5435 = call i32 @fileno(ptr noundef %5434) #12
  %5436 = call i32 @isatty(i32 noundef %5435) #12
  %.not1576 = icmp eq i32 %5436, 0
  br i1 %.not1576, label %5437, label %5438

5437:                                             ; preds = %5433, %5427
  br label %5438

5438:                                             ; preds = %5433, %5437
  %.str.7.sink3620 = phi ptr [ @.str.7, %5437 ], [ @.str.4, %5433 ]
  store i32 %5428, ptr %3104, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = load i32, ptr @test_count, align 4, !tbaa !5
  %5441 = load i32, ptr %3050, align 4, !tbaa !5
  %5442 = call ptr @s2n_strerror(i32 noundef %5441, ptr noundef nonnull @.str.6) #12
  %5443 = load i32, ptr %3050, align 4, !tbaa !5
  %5444 = call ptr @s2n_strerror_debug(i32 noundef %5443, ptr noundef nonnull @.str.6) #12
  %5445 = load i32, ptr %3104, align 4, !tbaa !5
  %5446 = call ptr @strerror(i32 noundef %5445) #12
  %5447 = load i32, ptr %3104, align 4, !tbaa !5
  %5448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5439, ptr noundef nonnull %.str.7.sink3620, i32 noundef %5440, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.3, i32 noundef 527, ptr noundef %5442, ptr noundef %5444, ptr noundef %5446, i32 noundef %5447) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5449:                                             ; preds = %5422
  %5450 = load i32, ptr @test_count, align 4, !tbaa !5
  %5451 = add nsw i32 %5450, 1
  store i32 %5451, ptr @test_count, align 4, !tbaa !5
  %5452 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %39) #12
  %5453 = icmp eq i32 %5452, -1
  br i1 %5453, label %5454, label %5476

5454:                                             ; preds = %5449
  %5455 = load i32, ptr %3104, align 4, !tbaa !5
  %5456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5457 = call i32 @s2n_print_stacktrace(ptr noundef %5456) #12
  %5458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5459 = trunc nuw i8 %5458 to i1
  br i1 %5459, label %5460, label %5464

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

5464:                                             ; preds = %5460, %5454
  br label %5465

5465:                                             ; preds = %5460, %5464
  %.str.7.sink3629 = phi ptr [ @.str.7, %5464 ], [ @.str.4, %5460 ]
  store i32 %5455, ptr %3104, align 4, !tbaa !5
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = load i32, ptr @test_count, align 4, !tbaa !5
  %5468 = load i32, ptr %3050, align 4, !tbaa !5
  %5469 = call ptr @s2n_strerror(i32 noundef %5468, ptr noundef nonnull @.str.6) #12
  %5470 = load i32, ptr %3050, align 4, !tbaa !5
  %5471 = call ptr @s2n_strerror_debug(i32 noundef %5470, ptr noundef nonnull @.str.6) #12
  %5472 = load i32, ptr %3104, align 4, !tbaa !5
  %5473 = call ptr @strerror(i32 noundef %5472) #12
  %5474 = load i32, ptr %3104, align 4, !tbaa !5
  %5475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5466, ptr noundef nonnull %.str.7.sink3629, i32 noundef %5467, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.3, i32 noundef 528, ptr noundef %5469, ptr noundef %5471, ptr noundef %5473, i32 noundef %5474) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5476:                                             ; preds = %5449
  %5477 = load i32, ptr @test_count, align 4, !tbaa !5
  %5478 = add nsw i32 %5477, 1
  store i32 %5478, ptr @test_count, align 4, !tbaa !5
  %5479 = call i32 %2660(ptr noundef nonnull %5201, ptr noundef nonnull %38) #12
  %5480 = icmp eq i32 %5479, -1
  br i1 %5480, label %5481, label %5503

5481:                                             ; preds = %5476
  %5482 = load i32, ptr %3104, align 4, !tbaa !5
  %5483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5484 = call i32 @s2n_print_stacktrace(ptr noundef %5483) #12
  %5485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5486 = trunc nuw i8 %5485 to i1
  br i1 %5486, label %5487, label %5491

5487:                                             ; preds = %5481
  %5488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5489 = call i32 @fileno(ptr noundef %5488) #12
  %5490 = call i32 @isatty(i32 noundef %5489) #12
  %.not1574 = icmp eq i32 %5490, 0
  br i1 %.not1574, label %5491, label %5492

5491:                                             ; preds = %5487, %5481
  br label %5492

5492:                                             ; preds = %5487, %5491
  %.str.7.sink3638 = phi ptr [ @.str.7, %5491 ], [ @.str.4, %5487 ]
  store i32 %5482, ptr %3104, align 4, !tbaa !5
  %5493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5494 = load i32, ptr @test_count, align 4, !tbaa !5
  %5495 = load i32, ptr %3050, align 4, !tbaa !5
  %5496 = call ptr @s2n_strerror(i32 noundef %5495, ptr noundef nonnull @.str.6) #12
  %5497 = load i32, ptr %3050, align 4, !tbaa !5
  %5498 = call ptr @s2n_strerror_debug(i32 noundef %5497, ptr noundef nonnull @.str.6) #12
  %5499 = load i32, ptr %3104, align 4, !tbaa !5
  %5500 = call ptr @strerror(i32 noundef %5499) #12
  %5501 = load i32, ptr %3104, align 4, !tbaa !5
  %5502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5493, ptr noundef nonnull %.str.7.sink3638, i32 noundef %5494, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 530, ptr noundef %5496, ptr noundef %5498, ptr noundef %5500, i32 noundef %5501) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5503:                                             ; preds = %5476
  %5504 = load i32, ptr @test_count, align 4, !tbaa !5
  %5505 = add nsw i32 %5504, 1
  store i32 %5505, ptr @test_count, align 4, !tbaa !5
  %5506 = getelementptr inbounds i8, ptr %38, i64 28
  %5507 = load i32, ptr %5506, align 4, !tbaa !18
  %5508 = getelementptr inbounds i8, ptr %38, i64 24
  %5509 = load i32, ptr %5508, align 8, !tbaa !21
  %5510 = icmp eq i32 %5507, %5509
  br i1 %5510, label %5533, label %5511

5511:                                             ; preds = %5503
  %5512 = load i32, ptr %3104, align 4, !tbaa !5
  %5513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5514 = call i32 @s2n_print_stacktrace(ptr noundef %5513) #12
  %5515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5516 = trunc nuw i8 %5515 to i1
  br i1 %5516, label %5517, label %5521

5517:                                             ; preds = %5511
  %5518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5519 = call i32 @fileno(ptr noundef %5518) #12
  %5520 = call i32 @isatty(i32 noundef %5519) #12
  %.not1312 = icmp eq i32 %5520, 0
  br i1 %.not1312, label %5521, label %5522

5521:                                             ; preds = %5517, %5511
  br label %5522

5522:                                             ; preds = %5517, %5521
  %.str.7.sink3647 = phi ptr [ @.str.7, %5521 ], [ @.str.4, %5517 ]
  store i32 %5512, ptr %3104, align 4, !tbaa !5
  %5523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5524 = load i32, ptr @test_count, align 4, !tbaa !5
  %5525 = load i32, ptr %3050, align 4, !tbaa !5
  %5526 = call ptr @s2n_strerror(i32 noundef %5525, ptr noundef nonnull @.str.6) #12
  %5527 = load i32, ptr %3050, align 4, !tbaa !5
  %5528 = call ptr @s2n_strerror_debug(i32 noundef %5527, ptr noundef nonnull @.str.6) #12
  %5529 = load i32, ptr %3104, align 4, !tbaa !5
  %5530 = call ptr @strerror(i32 noundef %5529) #12
  %5531 = load i32, ptr %3104, align 4, !tbaa !5
  %5532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5523, ptr noundef nonnull %.str.7.sink3647, i32 noundef %5524, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 531, ptr noundef %5526, ptr noundef %5528, ptr noundef %5530, i32 noundef %5531) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5533:                                             ; preds = %5503
  %5534 = add nsw i32 %5504, 2
  store i32 %5534, ptr @test_count, align 4, !tbaa !5
  %5535 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %5201, i32 noundef 16) #12
  br i1 %5535, label %5536, label %5558

5536:                                             ; preds = %5533
  %5537 = load i32, ptr %3104, align 4, !tbaa !5
  %5538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5539 = call i32 @s2n_print_stacktrace(ptr noundef %5538) #12
  %5540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5541 = trunc nuw i8 %5540 to i1
  br i1 %5541, label %5542, label %5546

5542:                                             ; preds = %5536
  %5543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5544 = call i32 @fileno(ptr noundef %5543) #12
  %5545 = call i32 @isatty(i32 noundef %5544) #12
  %.not1573 = icmp eq i32 %5545, 0
  br i1 %.not1573, label %5546, label %5547

5546:                                             ; preds = %5542, %5536
  br label %5547

5547:                                             ; preds = %5542, %5546
  %.str.7.sink3656 = phi ptr [ @.str.7, %5546 ], [ @.str.4, %5542 ]
  store i32 %5537, ptr %3104, align 4, !tbaa !5
  %5548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5549 = load i32, ptr @test_count, align 4, !tbaa !5
  %5550 = load i32, ptr %3050, align 4, !tbaa !5
  %5551 = call ptr @s2n_strerror(i32 noundef %5550, ptr noundef nonnull @.str.6) #12
  %5552 = load i32, ptr %3050, align 4, !tbaa !5
  %5553 = call ptr @s2n_strerror_debug(i32 noundef %5552, ptr noundef nonnull @.str.6) #12
  %5554 = load i32, ptr %3104, align 4, !tbaa !5
  %5555 = call ptr @strerror(i32 noundef %5554) #12
  %5556 = load i32, ptr %3104, align 4, !tbaa !5
  %5557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5548, ptr noundef nonnull %.str.7.sink3656, i32 noundef %5549, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.3, i32 noundef 534, ptr noundef %5551, ptr noundef %5553, ptr noundef %5555, i32 noundef %5556) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5558:                                             ; preds = %5533
  %5559 = getelementptr inbounds i8, ptr %5201, i64 704
  %5560 = load i32, ptr @test_count, align 4, !tbaa !5
  %5561 = add nsw i32 %5560, 1
  store i32 %5561, ptr @test_count, align 4, !tbaa !5
  %5562 = load ptr, ptr %5559, align 8, !tbaa !22
  %5563 = icmp eq ptr %5562, null
  br i1 %5563, label %5564, label %5586

5564:                                             ; preds = %5558
  %5565 = load i32, ptr %3104, align 4, !tbaa !5
  %5566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5567 = call i32 @s2n_print_stacktrace(ptr noundef %5566) #12
  %5568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5569 = trunc nuw i8 %5568 to i1
  br i1 %5569, label %5570, label %5574

5570:                                             ; preds = %5564
  %5571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5572 = call i32 @fileno(ptr noundef %5571) #12
  %5573 = call i32 @isatty(i32 noundef %5572) #12
  %.not1572 = icmp eq i32 %5573, 0
  br i1 %.not1572, label %5574, label %5575

5574:                                             ; preds = %5570, %5564
  br label %5575

5575:                                             ; preds = %5570, %5574
  %.str.7.sink3665 = phi ptr [ @.str.7, %5574 ], [ @.str.4, %5570 ]
  store i32 %5565, ptr %3104, align 4, !tbaa !5
  %5576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5577 = load i32, ptr @test_count, align 4, !tbaa !5
  %5578 = load i32, ptr %3050, align 4, !tbaa !5
  %5579 = call ptr @s2n_strerror(i32 noundef %5578, ptr noundef nonnull @.str.6) #12
  %5580 = load i32, ptr %3050, align 4, !tbaa !5
  %5581 = call ptr @s2n_strerror_debug(i32 noundef %5580, ptr noundef nonnull @.str.6) #12
  %5582 = load i32, ptr %3104, align 4, !tbaa !5
  %5583 = call ptr @strerror(i32 noundef %5582) #12
  %5584 = load i32, ptr %3104, align 4, !tbaa !5
  %5585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5576, ptr noundef nonnull %.str.7.sink3665, i32 noundef %5577, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.3, i32 noundef 538, ptr noundef %5579, ptr noundef %5581, ptr noundef %5583, i32 noundef %5584) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5586:                                             ; preds = %5558
  %5587 = add nsw i32 %5560, 2
  store i32 %5587, ptr @test_count, align 4, !tbaa !5
  %5588 = getelementptr inbounds i8, ptr %5201, i64 712
  %5589 = load ptr, ptr %5588, align 8, !tbaa !26
  %5590 = icmp eq ptr %5589, null
  br i1 %5590, label %5591, label %5613

5591:                                             ; preds = %5586
  %5592 = load i32, ptr %3104, align 4, !tbaa !5
  %5593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5594 = call i32 @s2n_print_stacktrace(ptr noundef %5593) #12
  %5595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5596 = trunc nuw i8 %5595 to i1
  br i1 %5596, label %5597, label %5601

5597:                                             ; preds = %5591
  %5598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5599 = call i32 @fileno(ptr noundef %5598) #12
  %5600 = call i32 @isatty(i32 noundef %5599) #12
  %.not1571 = icmp eq i32 %5600, 0
  br i1 %.not1571, label %5601, label %5602

5601:                                             ; preds = %5597, %5591
  br label %5602

5602:                                             ; preds = %5597, %5601
  %.str.7.sink3674 = phi ptr [ @.str.7, %5601 ], [ @.str.4, %5597 ]
  store i32 %5592, ptr %3104, align 4, !tbaa !5
  %5603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5604 = load i32, ptr @test_count, align 4, !tbaa !5
  %5605 = load i32, ptr %3050, align 4, !tbaa !5
  %5606 = call ptr @s2n_strerror(i32 noundef %5605, ptr noundef nonnull @.str.6) #12
  %5607 = load i32, ptr %3050, align 4, !tbaa !5
  %5608 = call ptr @s2n_strerror_debug(i32 noundef %5607, ptr noundef nonnull @.str.6) #12
  %5609 = load i32, ptr %3104, align 4, !tbaa !5
  %5610 = call ptr @strerror(i32 noundef %5609) #12
  %5611 = load i32, ptr %3104, align 4, !tbaa !5
  %5612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5603, ptr noundef nonnull %.str.7.sink3674, i32 noundef %5604, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.3, i32 noundef 539, ptr noundef %5606, ptr noundef %5608, ptr noundef %5610, i32 noundef %5611) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5613:                                             ; preds = %5586
  %5614 = add nsw i32 %5560, 3
  store i32 %5614, ptr @test_count, align 4, !tbaa !5
  %5615 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %5559, ptr noundef nonnull %37) #12
  %.not1313 = icmp eq i32 %5615, 0
  br i1 %.not1313, label %5620, label %.preheader1732.preheader

.preheader1732.preheader:                         ; preds = %5613
  %5616 = load i32, ptr @test_count, align 4, !tbaa !5
  %5617 = add nsw i32 %5616, 1
  store i32 %5617, ptr @test_count, align 4, !tbaa !5
  %5618 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %37) #12
  %5619 = icmp eq i32 %5618, -1
  br i1 %5619, label %5651, label %.preheader1732.1

5620:                                             ; preds = %5613
  %5621 = load i32, ptr %3104, align 4, !tbaa !5
  %5622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5623 = call i32 @s2n_print_stacktrace(ptr noundef %5622) #12
  %5624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5625 = trunc nuw i8 %5624 to i1
  br i1 %5625, label %5626, label %5630

5626:                                             ; preds = %5620
  %5627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5628 = call i32 @fileno(ptr noundef %5627) #12
  %5629 = call i32 @isatty(i32 noundef %5628) #12
  %.not1314 = icmp eq i32 %5629, 0
  br i1 %.not1314, label %5630, label %5631

5630:                                             ; preds = %5626, %5620
  br label %5631

5631:                                             ; preds = %5626, %5630
  %.str.7.sink3683 = phi ptr [ @.str.7, %5630 ], [ @.str.4, %5626 ]
  store i32 %5621, ptr %3104, align 4, !tbaa !5
  %5632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5633 = load i32, ptr @test_count, align 4, !tbaa !5
  %5634 = load i32, ptr %3050, align 4, !tbaa !5
  %5635 = call ptr @s2n_strerror(i32 noundef %5634, ptr noundef nonnull @.str.6) #12
  %5636 = load i32, ptr %3050, align 4, !tbaa !5
  %5637 = call ptr @s2n_strerror_debug(i32 noundef %5636, ptr noundef nonnull @.str.6) #12
  %5638 = load i32, ptr %3104, align 4, !tbaa !5
  %5639 = call ptr @strerror(i32 noundef %5638) #12
  %5640 = load i32, ptr %3104, align 4, !tbaa !5
  %5641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5632, ptr noundef nonnull %.str.7.sink3683, i32 noundef %5633, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.3, i32 noundef 540, ptr noundef %5635, ptr noundef %5637, ptr noundef %5639, i32 noundef %5640) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader1732.1:                                 ; preds = %.preheader1732.preheader
  %5642 = load i32, ptr @test_count, align 4, !tbaa !5
  %5643 = add nsw i32 %5642, 1
  store i32 %5643, ptr @test_count, align 4, !tbaa !5
  %5644 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %5339) #12
  %5645 = icmp eq i32 %5644, -1
  br i1 %5645, label %5651, label %5646

5646:                                             ; preds = %.preheader1732.1
  %5647 = load i32, ptr @test_count, align 4, !tbaa !5
  %5648 = add nsw i32 %5647, 1
  store i32 %5648, ptr @test_count, align 4, !tbaa !5
  %5649 = call i32 @s2n_stuffer_free(ptr noundef nonnull %38) #12
  %5650 = icmp eq i32 %5649, -1
  br i1 %5650, label %5673, label %5695

5651:                                             ; preds = %.preheader1732.1, %.preheader1732.preheader
  %5652 = load i32, ptr %3104, align 4, !tbaa !5
  %5653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5654 = call i32 @s2n_print_stacktrace(ptr noundef %5653) #12
  %5655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5656 = trunc nuw i8 %5655 to i1
  br i1 %5656, label %5657, label %5661

5657:                                             ; preds = %5651
  %5658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5659 = call i32 @fileno(ptr noundef %5658) #12
  %5660 = call i32 @isatty(i32 noundef %5659) #12
  %.not1570 = icmp eq i32 %5660, 0
  br i1 %.not1570, label %5661, label %5662

5661:                                             ; preds = %5657, %5651
  br label %5662

5662:                                             ; preds = %5657, %5661
  %.str.7.sink3692 = phi ptr [ @.str.7, %5661 ], [ @.str.4, %5657 ]
  store i32 %5652, ptr %3104, align 4, !tbaa !5
  %5663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5664 = load i32, ptr @test_count, align 4, !tbaa !5
  %5665 = load i32, ptr %3050, align 4, !tbaa !5
  %5666 = call ptr @s2n_strerror(i32 noundef %5665, ptr noundef nonnull @.str.6) #12
  %5667 = load i32, ptr %3050, align 4, !tbaa !5
  %5668 = call ptr @s2n_strerror_debug(i32 noundef %5667, ptr noundef nonnull @.str.6) #12
  %5669 = load i32, ptr %3104, align 4, !tbaa !5
  %5670 = call ptr @strerror(i32 noundef %5669) #12
  %5671 = load i32, ptr %3104, align 4, !tbaa !5
  %5672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5663, ptr noundef nonnull %.str.7.sink3692, i32 noundef %5664, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.3, i32 noundef 543, ptr noundef %5666, ptr noundef %5668, ptr noundef %5670, i32 noundef %5671) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5673:                                             ; preds = %5646
  %5674 = load i32, ptr %3104, align 4, !tbaa !5
  %5675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5676 = call i32 @s2n_print_stacktrace(ptr noundef %5675) #12
  %5677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5678 = trunc nuw i8 %5677 to i1
  br i1 %5678, label %5679, label %5683

5679:                                             ; preds = %5673
  %5680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5681 = call i32 @fileno(ptr noundef %5680) #12
  %5682 = call i32 @isatty(i32 noundef %5681) #12
  %.not1569 = icmp eq i32 %5682, 0
  br i1 %.not1569, label %5683, label %5684

5683:                                             ; preds = %5679, %5673
  br label %5684

5684:                                             ; preds = %5679, %5683
  %.str.7.sink3701 = phi ptr [ @.str.7, %5683 ], [ @.str.4, %5679 ]
  store i32 %5674, ptr %3104, align 4, !tbaa !5
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = load i32, ptr @test_count, align 4, !tbaa !5
  %5687 = load i32, ptr %3050, align 4, !tbaa !5
  %5688 = call ptr @s2n_strerror(i32 noundef %5687, ptr noundef nonnull @.str.6) #12
  %5689 = load i32, ptr %3050, align 4, !tbaa !5
  %5690 = call ptr @s2n_strerror_debug(i32 noundef %5689, ptr noundef nonnull @.str.6) #12
  %5691 = load i32, ptr %3104, align 4, !tbaa !5
  %5692 = call ptr @strerror(i32 noundef %5691) #12
  %5693 = load i32, ptr %3104, align 4, !tbaa !5
  %5694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5685, ptr noundef nonnull %.str.7.sink3701, i32 noundef %5686, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 545, ptr noundef %5688, ptr noundef %5690, ptr noundef %5692, i32 noundef %5693) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5695:                                             ; preds = %5646
  %5696 = load i32, ptr @test_count, align 4, !tbaa !5
  %5697 = add nsw i32 %5696, 1
  store i32 %5697, ptr @test_count, align 4, !tbaa !5
  %5698 = call i32 @s2n_connection_free(ptr noundef nonnull %5201) #12
  %5699 = icmp eq i32 %5698, -1
  br i1 %5699, label %5700, label %5722

5700:                                             ; preds = %5695
  %5701 = load i32, ptr %3104, align 4, !tbaa !5
  %5702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5703 = call i32 @s2n_print_stacktrace(ptr noundef %5702) #12
  %5704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5705 = trunc nuw i8 %5704 to i1
  br i1 %5705, label %5706, label %5710

5706:                                             ; preds = %5700
  %5707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5708 = call i32 @fileno(ptr noundef %5707) #12
  %5709 = call i32 @isatty(i32 noundef %5708) #12
  %.not1568 = icmp eq i32 %5709, 0
  br i1 %.not1568, label %5710, label %5711

5710:                                             ; preds = %5706, %5700
  br label %5711

5711:                                             ; preds = %5706, %5710
  %.str.7.sink3710 = phi ptr [ @.str.7, %5710 ], [ @.str.4, %5706 ]
  store i32 %5701, ptr %3104, align 4, !tbaa !5
  %5712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5713 = load i32, ptr @test_count, align 4, !tbaa !5
  %5714 = load i32, ptr %3050, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror(i32 noundef %5714, ptr noundef nonnull @.str.6) #12
  %5716 = load i32, ptr %3050, align 4, !tbaa !5
  %5717 = call ptr @s2n_strerror_debug(i32 noundef %5716, ptr noundef nonnull @.str.6) #12
  %5718 = load i32, ptr %3104, align 4, !tbaa !5
  %5719 = call ptr @strerror(i32 noundef %5718) #12
  %5720 = load i32, ptr %3104, align 4, !tbaa !5
  %5721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5712, ptr noundef nonnull %.str.7.sink3710, i32 noundef %5713, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 546, ptr noundef %5715, ptr noundef %5717, ptr noundef %5719, i32 noundef %5720) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5722:                                             ; preds = %5695
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %38) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  %5723 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %5724 = load i32, ptr @test_count, align 4, !tbaa !5
  %5725 = add nsw i32 %5724, 1
  store i32 %5725, ptr @test_count, align 4, !tbaa !5
  %5726 = icmp eq ptr %5723, null
  br i1 %5726, label %5727, label %5749

5727:                                             ; preds = %5722
  %5728 = load i32, ptr %3104, align 4, !tbaa !5
  %5729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5730 = call i32 @s2n_print_stacktrace(ptr noundef %5729) #12
  %5731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5732 = trunc nuw i8 %5731 to i1
  br i1 %5732, label %5733, label %5737

5733:                                             ; preds = %5727
  %5734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5735 = call i32 @fileno(ptr noundef %5734) #12
  %5736 = call i32 @isatty(i32 noundef %5735) #12
  %.not1567 = icmp eq i32 %5736, 0
  br i1 %.not1567, label %5737, label %5738

5737:                                             ; preds = %5733, %5727
  br label %5738

5738:                                             ; preds = %5733, %5737
  %.str.7.sink3719 = phi ptr [ @.str.7, %5737 ], [ @.str.4, %5733 ]
  store i32 %5728, ptr %3104, align 4, !tbaa !5
  %5739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5740 = load i32, ptr @test_count, align 4, !tbaa !5
  %5741 = load i32, ptr %3050, align 4, !tbaa !5
  %5742 = call ptr @s2n_strerror(i32 noundef %5741, ptr noundef nonnull @.str.6) #12
  %5743 = load i32, ptr %3050, align 4, !tbaa !5
  %5744 = call ptr @s2n_strerror_debug(i32 noundef %5743, ptr noundef nonnull @.str.6) #12
  %5745 = load i32, ptr %3104, align 4, !tbaa !5
  %5746 = call ptr @strerror(i32 noundef %5745) #12
  %5747 = load i32, ptr %3104, align 4, !tbaa !5
  %5748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5739, ptr noundef nonnull %.str.7.sink3719, i32 noundef %5740, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.3, i32 noundef 553, ptr noundef %5742, ptr noundef %5744, ptr noundef %5746, i32 noundef %5747) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5749:                                             ; preds = %5722
  %5750 = getelementptr inbounds i8, ptr %5723, i64 220
  store i8 34, ptr %5750, align 4, !tbaa !63
  %5751 = add nsw i32 %5724, 2
  store i32 %5751, ptr @test_count, align 4, !tbaa !5
  %5752 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %5723) #12
  %5753 = call zeroext i1 @s2n_result_is_ok(i32 %5752)
  br i1 %5753, label %5776, label %5754

5754:                                             ; preds = %5749
  %5755 = load i32, ptr %3104, align 4, !tbaa !5
  %5756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5757 = call i32 @s2n_print_stacktrace(ptr noundef %5756) #12
  %5758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5759 = trunc nuw i8 %5758 to i1
  br i1 %5759, label %5760, label %5764

5760:                                             ; preds = %5754
  %5761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5762 = call i32 @fileno(ptr noundef %5761) #12
  %5763 = call i32 @isatty(i32 noundef %5762) #12
  %.not1315 = icmp eq i32 %5763, 0
  br i1 %.not1315, label %5764, label %5765

5764:                                             ; preds = %5760, %5754
  br label %5765

5765:                                             ; preds = %5760, %5764
  %.str.7.sink3728 = phi ptr [ @.str.7, %5764 ], [ @.str.4, %5760 ]
  store i32 %5755, ptr %3104, align 4, !tbaa !5
  %5766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5767 = load i32, ptr @test_count, align 4, !tbaa !5
  %5768 = load i32, ptr %3050, align 4, !tbaa !5
  %5769 = call ptr @s2n_strerror(i32 noundef %5768, ptr noundef nonnull @.str.6) #12
  %5770 = load i32, ptr %3050, align 4, !tbaa !5
  %5771 = call ptr @s2n_strerror_debug(i32 noundef %5770, ptr noundef nonnull @.str.6) #12
  %5772 = load i32, ptr %3104, align 4, !tbaa !5
  %5773 = call ptr @strerror(i32 noundef %5772) #12
  %5774 = load i32, ptr %3104, align 4, !tbaa !5
  %5775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5766, ptr noundef nonnull %.str.7.sink3728, i32 noundef %5767, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 555, ptr noundef %5769, ptr noundef %5771, ptr noundef %5773, i32 noundef %5774) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5776:                                             ; preds = %5749
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #12
  store ptr null, ptr %40, align 8, !tbaa !9
  %5777 = load i32, ptr @test_count, align 4, !tbaa !5
  %5778 = add nsw i32 %5777, 1
  store i32 %5778, ptr @test_count, align 4, !tbaa !5
  %5779 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %5723, ptr noundef nonnull %40) #12
  %5780 = icmp eq i32 %5779, -1
  br i1 %5780, label %5781, label %5803

5781:                                             ; preds = %5776
  %5782 = load i32, ptr %3104, align 4, !tbaa !5
  %5783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5784 = call i32 @s2n_print_stacktrace(ptr noundef %5783) #12
  %5785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5786 = trunc nuw i8 %5785 to i1
  br i1 %5786, label %5787, label %5791

5787:                                             ; preds = %5781
  %5788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5789 = call i32 @fileno(ptr noundef %5788) #12
  %5790 = call i32 @isatty(i32 noundef %5789) #12
  %.not1566 = icmp eq i32 %5790, 0
  br i1 %.not1566, label %5791, label %5792

5791:                                             ; preds = %5787, %5781
  br label %5792

5792:                                             ; preds = %5787, %5791
  %.str.7.sink3737 = phi ptr [ @.str.7, %5791 ], [ @.str.4, %5787 ]
  store i32 %5782, ptr %3104, align 4, !tbaa !5
  %5793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5794 = load i32, ptr @test_count, align 4, !tbaa !5
  %5795 = load i32, ptr %3050, align 4, !tbaa !5
  %5796 = call ptr @s2n_strerror(i32 noundef %5795, ptr noundef nonnull @.str.6) #12
  %5797 = load i32, ptr %3050, align 4, !tbaa !5
  %5798 = call ptr @s2n_strerror_debug(i32 noundef %5797, ptr noundef nonnull @.str.6) #12
  %5799 = load i32, ptr %3104, align 4, !tbaa !5
  %5800 = call ptr @strerror(i32 noundef %5799) #12
  %5801 = load i32, ptr %3104, align 4, !tbaa !5
  %5802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5793, ptr noundef nonnull %.str.7.sink3737, i32 noundef %5794, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 558, ptr noundef %5796, ptr noundef %5798, ptr noundef %5800, i32 noundef %5801) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5803:                                             ; preds = %5776
  %5804 = load i32, ptr @test_count, align 4, !tbaa !5
  %5805 = add nsw i32 %5804, 1
  store i32 %5805, ptr @test_count, align 4, !tbaa !5
  %5806 = load ptr, ptr %40, align 8, !tbaa !9
  %5807 = icmp eq ptr %5806, null
  br i1 %5807, label %5808, label %5830

5808:                                             ; preds = %5803
  %5809 = load i32, ptr %3104, align 4, !tbaa !5
  %5810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5811 = call i32 @s2n_print_stacktrace(ptr noundef %5810) #12
  %5812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5813 = trunc nuw i8 %5812 to i1
  br i1 %5813, label %5814, label %5818

5814:                                             ; preds = %5808
  %5815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5816 = call i32 @fileno(ptr noundef %5815) #12
  %5817 = call i32 @isatty(i32 noundef %5816) #12
  %.not1565 = icmp eq i32 %5817, 0
  br i1 %.not1565, label %5818, label %5819

5818:                                             ; preds = %5814, %5808
  br label %5819

5819:                                             ; preds = %5814, %5818
  %.str.7.sink3746 = phi ptr [ @.str.7, %5818 ], [ @.str.4, %5814 ]
  store i32 %5809, ptr %3104, align 4, !tbaa !5
  %5820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5821 = load i32, ptr @test_count, align 4, !tbaa !5
  %5822 = load i32, ptr %3050, align 4, !tbaa !5
  %5823 = call ptr @s2n_strerror(i32 noundef %5822, ptr noundef nonnull @.str.6) #12
  %5824 = load i32, ptr %3050, align 4, !tbaa !5
  %5825 = call ptr @s2n_strerror_debug(i32 noundef %5824, ptr noundef nonnull @.str.6) #12
  %5826 = load i32, ptr %3104, align 4, !tbaa !5
  %5827 = call ptr @strerror(i32 noundef %5826) #12
  %5828 = load i32, ptr %3104, align 4, !tbaa !5
  %5829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5820, ptr noundef nonnull %.str.7.sink3746, i32 noundef %5821, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 559, ptr noundef %5823, ptr noundef %5825, ptr noundef %5827, i32 noundef %5828) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5830:                                             ; preds = %5803
  %5831 = add nsw i32 %5804, 2
  store i32 %5831, ptr @test_count, align 4, !tbaa !5
  %5832 = load i8, ptr %5806, align 8, !tbaa !64
  %5833 = icmp ugt i8 %5832, 1
  br i1 %5833, label %5856, label %5834

5834:                                             ; preds = %5830
  %5835 = load i32, ptr %3104, align 4, !tbaa !5
  %5836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5837 = call i32 @s2n_print_stacktrace(ptr noundef %5836) #12
  %5838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5839 = trunc nuw i8 %5838 to i1
  br i1 %5839, label %5840, label %5844

5840:                                             ; preds = %5834
  %5841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5842 = call i32 @fileno(ptr noundef %5841) #12
  %5843 = call i32 @isatty(i32 noundef %5842) #12
  %.not1316 = icmp eq i32 %5843, 0
  br i1 %.not1316, label %5844, label %5845

5844:                                             ; preds = %5840, %5834
  br label %5845

5845:                                             ; preds = %5840, %5844
  %.str.7.sink3755 = phi ptr [ @.str.7, %5844 ], [ @.str.4, %5840 ]
  store i32 %5835, ptr %3104, align 4, !tbaa !5
  %5846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5847 = load i32, ptr @test_count, align 4, !tbaa !5
  %5848 = load i32, ptr %3050, align 4, !tbaa !5
  %5849 = call ptr @s2n_strerror(i32 noundef %5848, ptr noundef nonnull @.str.6) #12
  %5850 = load i32, ptr %3050, align 4, !tbaa !5
  %5851 = call ptr @s2n_strerror_debug(i32 noundef %5850, ptr noundef nonnull @.str.6) #12
  %5852 = load i32, ptr %3104, align 4, !tbaa !5
  %5853 = call ptr @strerror(i32 noundef %5852) #12
  %5854 = load i32, ptr %3104, align 4, !tbaa !5
  %5855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5846, ptr noundef nonnull %.str.7.sink3755, i32 noundef %5847, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.3, i32 noundef 560, ptr noundef %5849, ptr noundef %5851, ptr noundef %5853, i32 noundef %5854) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5856:                                             ; preds = %5830
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #12
  %5857 = getelementptr inbounds i8, ptr %5806, i64 8
  %5858 = load ptr, ptr %5857, align 8, !tbaa !24
  %5859 = load ptr, ptr %5858, align 8, !tbaa !9
  store ptr %5859, ptr %41, align 16, !tbaa !22
  %5860 = getelementptr inbounds i8, ptr %41, i64 8
  store ptr null, ptr %5860, align 8, !tbaa !26
  %5861 = getelementptr inbounds i8, ptr %41, i64 16
  %5862 = getelementptr inbounds i8, ptr %5858, i64 8
  %5863 = load ptr, ptr %5862, align 8, !tbaa !9
  store ptr %5863, ptr %5861, align 16, !tbaa !22
  %5864 = getelementptr inbounds i8, ptr %41, i64 24
  store ptr null, ptr %5864, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %42) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %42, i8 0, i64 40, i1 false)
  %5865 = add nsw i32 %5804, 3
  store i32 %5865, ptr @test_count, align 4, !tbaa !5
  %5866 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %42, i32 noundef 0) #12
  %5867 = icmp eq i32 %5866, -1
  br i1 %5867, label %5868, label %5890

5868:                                             ; preds = %5856
  %5869 = load i32, ptr %3104, align 4, !tbaa !5
  %5870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5871 = call i32 @s2n_print_stacktrace(ptr noundef %5870) #12
  %5872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5873 = trunc nuw i8 %5872 to i1
  br i1 %5873, label %5874, label %5878

5874:                                             ; preds = %5868
  %5875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5876 = call i32 @fileno(ptr noundef %5875) #12
  %5877 = call i32 @isatty(i32 noundef %5876) #12
  %.not1564 = icmp eq i32 %5877, 0
  br i1 %.not1564, label %5878, label %5879

5878:                                             ; preds = %5874, %5868
  br label %5879

5879:                                             ; preds = %5874, %5878
  %.str.7.sink3764 = phi ptr [ @.str.7, %5878 ], [ @.str.4, %5874 ]
  store i32 %5869, ptr %3104, align 4, !tbaa !5
  %5880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5881 = load i32, ptr @test_count, align 4, !tbaa !5
  %5882 = load i32, ptr %3050, align 4, !tbaa !5
  %5883 = call ptr @s2n_strerror(i32 noundef %5882, ptr noundef nonnull @.str.6) #12
  %5884 = load i32, ptr %3050, align 4, !tbaa !5
  %5885 = call ptr @s2n_strerror_debug(i32 noundef %5884, ptr noundef nonnull @.str.6) #12
  %5886 = load i32, ptr %3104, align 4, !tbaa !5
  %5887 = call ptr @strerror(i32 noundef %5886) #12
  %5888 = load i32, ptr %3104, align 4, !tbaa !5
  %5889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5880, ptr noundef nonnull %.str.7.sink3764, i32 noundef %5881, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 568, ptr noundef %5883, ptr noundef %5885, ptr noundef %5887, i32 noundef %5888) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5890:                                             ; preds = %5856
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %43) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %43, i8 0, i64 16, i1 false)
  %5891 = load i32, ptr @test_count, align 4, !tbaa !5
  %5892 = add nsw i32 %5891, 1
  store i32 %5892, ptr @test_count, align 4, !tbaa !5
  %5893 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %42, ptr noundef nonnull %43) #12
  %5894 = icmp eq i32 %5893, -1
  br i1 %5894, label %5895, label %5917

5895:                                             ; preds = %5890
  %5896 = load i32, ptr %3104, align 4, !tbaa !5
  %5897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5898 = call i32 @s2n_print_stacktrace(ptr noundef %5897) #12
  %5899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5900 = trunc nuw i8 %5899 to i1
  br i1 %5900, label %5901, label %5905

5901:                                             ; preds = %5895
  %5902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5903 = call i32 @fileno(ptr noundef %5902) #12
  %5904 = call i32 @isatty(i32 noundef %5903) #12
  %.not1563 = icmp eq i32 %5904, 0
  br i1 %.not1563, label %5905, label %5906

5905:                                             ; preds = %5901, %5895
  br label %5906

5906:                                             ; preds = %5901, %5905
  %.str.7.sink3773 = phi ptr [ @.str.7, %5905 ], [ @.str.4, %5901 ]
  store i32 %5896, ptr %3104, align 4, !tbaa !5
  %5907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5908 = load i32, ptr @test_count, align 4, !tbaa !5
  %5909 = load i32, ptr %3050, align 4, !tbaa !5
  %5910 = call ptr @s2n_strerror(i32 noundef %5909, ptr noundef nonnull @.str.6) #12
  %5911 = load i32, ptr %3050, align 4, !tbaa !5
  %5912 = call ptr @s2n_strerror_debug(i32 noundef %5911, ptr noundef nonnull @.str.6) #12
  %5913 = load i32, ptr %3104, align 4, !tbaa !5
  %5914 = call ptr @strerror(i32 noundef %5913) #12
  %5915 = load i32, ptr %3104, align 4, !tbaa !5
  %5916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5907, ptr noundef nonnull %.str.7.sink3773, i32 noundef %5908, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.3, i32 noundef 571, ptr noundef %5910, ptr noundef %5912, ptr noundef %5914, i32 noundef %5915) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5917:                                             ; preds = %5890
  %5918 = load i32, ptr @test_count, align 4, !tbaa !5
  %5919 = add nsw i32 %5918, 1
  store i32 %5919, ptr @test_count, align 4, !tbaa !5
  %5920 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %5861, ptr noundef nonnull %42) #12
  %5921 = icmp eq i32 %5920, -1
  br i1 %5921, label %5922, label %5944

5922:                                             ; preds = %5917
  %5923 = load i32, ptr %3104, align 4, !tbaa !5
  %5924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5925 = call i32 @s2n_print_stacktrace(ptr noundef %5924) #12
  %5926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5927 = trunc nuw i8 %5926 to i1
  br i1 %5927, label %5928, label %5932

5928:                                             ; preds = %5922
  %5929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5930 = call i32 @fileno(ptr noundef %5929) #12
  %5931 = call i32 @isatty(i32 noundef %5930) #12
  %.not1562 = icmp eq i32 %5931, 0
  br i1 %.not1562, label %5932, label %5933

5932:                                             ; preds = %5928, %5922
  br label %5933

5933:                                             ; preds = %5928, %5932
  %.str.7.sink3782 = phi ptr [ @.str.7, %5932 ], [ @.str.4, %5928 ]
  store i32 %5923, ptr %3104, align 4, !tbaa !5
  %5934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5935 = load i32, ptr @test_count, align 4, !tbaa !5
  %5936 = load i32, ptr %3050, align 4, !tbaa !5
  %5937 = call ptr @s2n_strerror(i32 noundef %5936, ptr noundef nonnull @.str.6) #12
  %5938 = load i32, ptr %3050, align 4, !tbaa !5
  %5939 = call ptr @s2n_strerror_debug(i32 noundef %5938, ptr noundef nonnull @.str.6) #12
  %5940 = load i32, ptr %3104, align 4, !tbaa !5
  %5941 = call ptr @strerror(i32 noundef %5940) #12
  %5942 = load i32, ptr %3104, align 4, !tbaa !5
  %5943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5934, ptr noundef nonnull %.str.7.sink3782, i32 noundef %5935, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.3, i32 noundef 572, ptr noundef %5937, ptr noundef %5939, ptr noundef %5941, i32 noundef %5942) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5944:                                             ; preds = %5917
  %5945 = load i32, ptr @test_count, align 4, !tbaa !5
  %5946 = add nsw i32 %5945, 1
  store i32 %5946, ptr @test_count, align 4, !tbaa !5
  %5947 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %5861, ptr noundef nonnull %42) #12
  %5948 = icmp eq i32 %5947, -1
  br i1 %5948, label %5949, label %5971

5949:                                             ; preds = %5944
  %5950 = load i32, ptr %3104, align 4, !tbaa !5
  %5951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5952 = call i32 @s2n_print_stacktrace(ptr noundef %5951) #12
  %5953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5954 = trunc nuw i8 %5953 to i1
  br i1 %5954, label %5955, label %5959

5955:                                             ; preds = %5949
  %5956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5957 = call i32 @fileno(ptr noundef %5956) #12
  %5958 = call i32 @isatty(i32 noundef %5957) #12
  %.not1561 = icmp eq i32 %5958, 0
  br i1 %.not1561, label %5959, label %5960

5959:                                             ; preds = %5955, %5949
  br label %5960

5960:                                             ; preds = %5955, %5959
  %.str.7.sink3791 = phi ptr [ @.str.7, %5959 ], [ @.str.4, %5955 ]
  store i32 %5950, ptr %3104, align 4, !tbaa !5
  %5961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5962 = load i32, ptr @test_count, align 4, !tbaa !5
  %5963 = load i32, ptr %3050, align 4, !tbaa !5
  %5964 = call ptr @s2n_strerror(i32 noundef %5963, ptr noundef nonnull @.str.6) #12
  %5965 = load i32, ptr %3050, align 4, !tbaa !5
  %5966 = call ptr @s2n_strerror_debug(i32 noundef %5965, ptr noundef nonnull @.str.6) #12
  %5967 = load i32, ptr %3104, align 4, !tbaa !5
  %5968 = call ptr @strerror(i32 noundef %5967) #12
  %5969 = load i32, ptr %3104, align 4, !tbaa !5
  %5970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5961, ptr noundef nonnull %.str.7.sink3791, i32 noundef %5962, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.3, i32 noundef 573, ptr noundef %5964, ptr noundef %5966, ptr noundef %5968, i32 noundef %5969) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5971:                                             ; preds = %5944
  %5972 = load i32, ptr @test_count, align 4, !tbaa !5
  %5973 = add nsw i32 %5972, 1
  store i32 %5973, ptr @test_count, align 4, !tbaa !5
  %5974 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %41, ptr noundef nonnull %42) #12
  %5975 = icmp eq i32 %5974, -1
  br i1 %5975, label %5976, label %5998

5976:                                             ; preds = %5971
  %5977 = load i32, ptr %3104, align 4, !tbaa !5
  %5978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5979 = call i32 @s2n_print_stacktrace(ptr noundef %5978) #12
  %5980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5981 = trunc nuw i8 %5980 to i1
  br i1 %5981, label %5982, label %5986

5982:                                             ; preds = %5976
  %5983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5984 = call i32 @fileno(ptr noundef %5983) #12
  %5985 = call i32 @isatty(i32 noundef %5984) #12
  %.not1560 = icmp eq i32 %5985, 0
  br i1 %.not1560, label %5986, label %5987

5986:                                             ; preds = %5982, %5976
  br label %5987

5987:                                             ; preds = %5982, %5986
  %.str.7.sink3800 = phi ptr [ @.str.7, %5986 ], [ @.str.4, %5982 ]
  store i32 %5977, ptr %3104, align 4, !tbaa !5
  %5988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5989 = load i32, ptr @test_count, align 4, !tbaa !5
  %5990 = load i32, ptr %3050, align 4, !tbaa !5
  %5991 = call ptr @s2n_strerror(i32 noundef %5990, ptr noundef nonnull @.str.6) #12
  %5992 = load i32, ptr %3050, align 4, !tbaa !5
  %5993 = call ptr @s2n_strerror_debug(i32 noundef %5992, ptr noundef nonnull @.str.6) #12
  %5994 = load i32, ptr %3104, align 4, !tbaa !5
  %5995 = call ptr @strerror(i32 noundef %5994) #12
  %5996 = load i32, ptr %3104, align 4, !tbaa !5
  %5997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5988, ptr noundef nonnull %.str.7.sink3800, i32 noundef %5989, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.3, i32 noundef 574, ptr noundef %5991, ptr noundef %5993, ptr noundef %5995, i32 noundef %5996) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5998:                                             ; preds = %5971
  %5999 = load i32, ptr @test_count, align 4, !tbaa !5
  %6000 = add nsw i32 %5999, 1
  store i32 %6000, ptr @test_count, align 4, !tbaa !5
  %6001 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %43) #12
  %6002 = icmp eq i32 %6001, -1
  br i1 %6002, label %6003, label %6025

6003:                                             ; preds = %5998
  %6004 = load i32, ptr %3104, align 4, !tbaa !5
  %6005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6006 = call i32 @s2n_print_stacktrace(ptr noundef %6005) #12
  %6007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6008 = trunc nuw i8 %6007 to i1
  br i1 %6008, label %6009, label %6013

6009:                                             ; preds = %6003
  %6010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6011 = call i32 @fileno(ptr noundef %6010) #12
  %6012 = call i32 @isatty(i32 noundef %6011) #12
  %.not1559 = icmp eq i32 %6012, 0
  br i1 %.not1559, label %6013, label %6014

6013:                                             ; preds = %6009, %6003
  br label %6014

6014:                                             ; preds = %6009, %6013
  %.str.7.sink3809 = phi ptr [ @.str.7, %6013 ], [ @.str.4, %6009 ]
  store i32 %6004, ptr %3104, align 4, !tbaa !5
  %6015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6016 = load i32, ptr @test_count, align 4, !tbaa !5
  %6017 = load i32, ptr %3050, align 4, !tbaa !5
  %6018 = call ptr @s2n_strerror(i32 noundef %6017, ptr noundef nonnull @.str.6) #12
  %6019 = load i32, ptr %3050, align 4, !tbaa !5
  %6020 = call ptr @s2n_strerror_debug(i32 noundef %6019, ptr noundef nonnull @.str.6) #12
  %6021 = load i32, ptr %3104, align 4, !tbaa !5
  %6022 = call ptr @strerror(i32 noundef %6021) #12
  %6023 = load i32, ptr %3104, align 4, !tbaa !5
  %6024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6015, ptr noundef nonnull %.str.7.sink3809, i32 noundef %6016, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.3, i32 noundef 575, ptr noundef %6018, ptr noundef %6020, ptr noundef %6022, i32 noundef %6023) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6025:                                             ; preds = %5998
  %6026 = load i32, ptr @test_count, align 4, !tbaa !5
  %6027 = add nsw i32 %6026, 1
  store i32 %6027, ptr @test_count, align 4, !tbaa !5
  %6028 = call i32 %2660(ptr noundef nonnull %5723, ptr noundef nonnull %42) #12
  %6029 = icmp eq i32 %6028, -1
  br i1 %6029, label %6030, label %6052

6030:                                             ; preds = %6025
  %6031 = load i32, ptr %3104, align 4, !tbaa !5
  %6032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6033 = call i32 @s2n_print_stacktrace(ptr noundef %6032) #12
  %6034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6035 = trunc nuw i8 %6034 to i1
  br i1 %6035, label %6036, label %6040

6036:                                             ; preds = %6030
  %6037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6038 = call i32 @fileno(ptr noundef %6037) #12
  %6039 = call i32 @isatty(i32 noundef %6038) #12
  %.not1558 = icmp eq i32 %6039, 0
  br i1 %.not1558, label %6040, label %6041

6040:                                             ; preds = %6036, %6030
  br label %6041

6041:                                             ; preds = %6036, %6040
  %.str.7.sink3818 = phi ptr [ @.str.7, %6040 ], [ @.str.4, %6036 ]
  store i32 %6031, ptr %3104, align 4, !tbaa !5
  %6042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6043 = load i32, ptr @test_count, align 4, !tbaa !5
  %6044 = load i32, ptr %3050, align 4, !tbaa !5
  %6045 = call ptr @s2n_strerror(i32 noundef %6044, ptr noundef nonnull @.str.6) #12
  %6046 = load i32, ptr %3050, align 4, !tbaa !5
  %6047 = call ptr @s2n_strerror_debug(i32 noundef %6046, ptr noundef nonnull @.str.6) #12
  %6048 = load i32, ptr %3104, align 4, !tbaa !5
  %6049 = call ptr @strerror(i32 noundef %6048) #12
  %6050 = load i32, ptr %3104, align 4, !tbaa !5
  %6051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6042, ptr noundef nonnull %.str.7.sink3818, i32 noundef %6043, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 577, ptr noundef %6045, ptr noundef %6047, ptr noundef %6049, i32 noundef %6050) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6052:                                             ; preds = %6025
  %6053 = load i32, ptr @test_count, align 4, !tbaa !5
  %6054 = add nsw i32 %6053, 1
  store i32 %6054, ptr @test_count, align 4, !tbaa !5
  %6055 = getelementptr inbounds i8, ptr %42, i64 28
  %6056 = load i32, ptr %6055, align 4, !tbaa !18
  %6057 = getelementptr inbounds i8, ptr %42, i64 24
  %6058 = load i32, ptr %6057, align 8, !tbaa !21
  %6059 = icmp eq i32 %6056, %6058
  br i1 %6059, label %6082, label %6060

6060:                                             ; preds = %6052
  %6061 = load i32, ptr %3104, align 4, !tbaa !5
  %6062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6063 = call i32 @s2n_print_stacktrace(ptr noundef %6062) #12
  %6064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6065 = trunc nuw i8 %6064 to i1
  br i1 %6065, label %6066, label %6070

6066:                                             ; preds = %6060
  %6067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6068 = call i32 @fileno(ptr noundef %6067) #12
  %6069 = call i32 @isatty(i32 noundef %6068) #12
  %.not1317 = icmp eq i32 %6069, 0
  br i1 %.not1317, label %6070, label %6071

6070:                                             ; preds = %6066, %6060
  br label %6071

6071:                                             ; preds = %6066, %6070
  %.str.7.sink3827 = phi ptr [ @.str.7, %6070 ], [ @.str.4, %6066 ]
  store i32 %6061, ptr %3104, align 4, !tbaa !5
  %6072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6073 = load i32, ptr @test_count, align 4, !tbaa !5
  %6074 = load i32, ptr %3050, align 4, !tbaa !5
  %6075 = call ptr @s2n_strerror(i32 noundef %6074, ptr noundef nonnull @.str.6) #12
  %6076 = load i32, ptr %3050, align 4, !tbaa !5
  %6077 = call ptr @s2n_strerror_debug(i32 noundef %6076, ptr noundef nonnull @.str.6) #12
  %6078 = load i32, ptr %3104, align 4, !tbaa !5
  %6079 = call ptr @strerror(i32 noundef %6078) #12
  %6080 = load i32, ptr %3104, align 4, !tbaa !5
  %6081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6072, ptr noundef nonnull %.str.7.sink3827, i32 noundef %6073, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 578, ptr noundef %6075, ptr noundef %6077, ptr noundef %6079, i32 noundef %6080) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6082:                                             ; preds = %6052
  %6083 = add nsw i32 %6053, 2
  store i32 %6083, ptr @test_count, align 4, !tbaa !5
  %6084 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %5723, i32 noundef 16) #12
  br i1 %6084, label %6085, label %6107

6085:                                             ; preds = %6082
  %6086 = load i32, ptr %3104, align 4, !tbaa !5
  %6087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6088 = call i32 @s2n_print_stacktrace(ptr noundef %6087) #12
  %6089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6090 = trunc nuw i8 %6089 to i1
  br i1 %6090, label %6091, label %6095

6091:                                             ; preds = %6085
  %6092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6093 = call i32 @fileno(ptr noundef %6092) #12
  %6094 = call i32 @isatty(i32 noundef %6093) #12
  %.not1557 = icmp eq i32 %6094, 0
  br i1 %.not1557, label %6095, label %6096

6095:                                             ; preds = %6091, %6085
  br label %6096

6096:                                             ; preds = %6091, %6095
  %.str.7.sink3836 = phi ptr [ @.str.7, %6095 ], [ @.str.4, %6091 ]
  store i32 %6086, ptr %3104, align 4, !tbaa !5
  %6097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6098 = load i32, ptr @test_count, align 4, !tbaa !5
  %6099 = load i32, ptr %3050, align 4, !tbaa !5
  %6100 = call ptr @s2n_strerror(i32 noundef %6099, ptr noundef nonnull @.str.6) #12
  %6101 = load i32, ptr %3050, align 4, !tbaa !5
  %6102 = call ptr @s2n_strerror_debug(i32 noundef %6101, ptr noundef nonnull @.str.6) #12
  %6103 = load i32, ptr %3104, align 4, !tbaa !5
  %6104 = call ptr @strerror(i32 noundef %6103) #12
  %6105 = load i32, ptr %3104, align 4, !tbaa !5
  %6106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6097, ptr noundef nonnull %.str.7.sink3836, i32 noundef %6098, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.3, i32 noundef 581, ptr noundef %6100, ptr noundef %6102, ptr noundef %6104, i32 noundef %6105) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6107:                                             ; preds = %6082
  %6108 = getelementptr inbounds i8, ptr %5723, i64 704
  %6109 = load i32, ptr @test_count, align 4, !tbaa !5
  %6110 = add nsw i32 %6109, 1
  store i32 %6110, ptr @test_count, align 4, !tbaa !5
  %6111 = load ptr, ptr %6108, align 8, !tbaa !22
  %6112 = load ptr, ptr %40, align 8, !tbaa !9
  %6113 = getelementptr inbounds i8, ptr %6112, i64 8
  %6114 = load ptr, ptr %6113, align 8, !tbaa !24
  %6115 = load ptr, ptr %6114, align 8, !tbaa !9
  %6116 = icmp eq ptr %6111, %6115
  br i1 %6116, label %6139, label %6117

6117:                                             ; preds = %6107
  %6118 = load i32, ptr %3104, align 4, !tbaa !5
  %6119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6120 = call i32 @s2n_print_stacktrace(ptr noundef %6119) #12
  %6121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6122 = trunc nuw i8 %6121 to i1
  br i1 %6122, label %6123, label %6127

6123:                                             ; preds = %6117
  %6124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6125 = call i32 @fileno(ptr noundef %6124) #12
  %6126 = call i32 @isatty(i32 noundef %6125) #12
  %.not1318 = icmp eq i32 %6126, 0
  br i1 %.not1318, label %6127, label %6128

6127:                                             ; preds = %6123, %6117
  br label %6128

6128:                                             ; preds = %6123, %6127
  %.str.7.sink3845 = phi ptr [ @.str.7, %6127 ], [ @.str.4, %6123 ]
  store i32 %6118, ptr %3104, align 4, !tbaa !5
  %6129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6130 = load i32, ptr @test_count, align 4, !tbaa !5
  %6131 = load i32, ptr %3050, align 4, !tbaa !5
  %6132 = call ptr @s2n_strerror(i32 noundef %6131, ptr noundef nonnull @.str.6) #12
  %6133 = load i32, ptr %3050, align 4, !tbaa !5
  %6134 = call ptr @s2n_strerror_debug(i32 noundef %6133, ptr noundef nonnull @.str.6) #12
  %6135 = load i32, ptr %3104, align 4, !tbaa !5
  %6136 = call ptr @strerror(i32 noundef %6135) #12
  %6137 = load i32, ptr %3104, align 4, !tbaa !5
  %6138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6129, ptr noundef nonnull %.str.7.sink3845, i32 noundef %6130, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.3, i32 noundef 585, ptr noundef %6132, ptr noundef %6134, ptr noundef %6136, i32 noundef %6137) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6139:                                             ; preds = %6107
  %6140 = add nsw i32 %6109, 2
  store i32 %6140, ptr @test_count, align 4, !tbaa !5
  %6141 = getelementptr inbounds i8, ptr %5723, i64 712
  %6142 = load ptr, ptr %6141, align 8, !tbaa !26
  %6143 = icmp eq ptr %6142, null
  br i1 %6143, label %6144, label %6166

6144:                                             ; preds = %6139
  %6145 = load i32, ptr %3104, align 4, !tbaa !5
  %6146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6147 = call i32 @s2n_print_stacktrace(ptr noundef %6146) #12
  %6148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6149 = trunc nuw i8 %6148 to i1
  br i1 %6149, label %6150, label %6154

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

6154:                                             ; preds = %6150, %6144
  br label %6155

6155:                                             ; preds = %6150, %6154
  %.str.7.sink3854 = phi ptr [ @.str.7, %6154 ], [ @.str.4, %6150 ]
  store i32 %6145, ptr %3104, align 4, !tbaa !5
  %6156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6157 = load i32, ptr @test_count, align 4, !tbaa !5
  %6158 = load i32, ptr %3050, align 4, !tbaa !5
  %6159 = call ptr @s2n_strerror(i32 noundef %6158, ptr noundef nonnull @.str.6) #12
  %6160 = load i32, ptr %3050, align 4, !tbaa !5
  %6161 = call ptr @s2n_strerror_debug(i32 noundef %6160, ptr noundef nonnull @.str.6) #12
  %6162 = load i32, ptr %3104, align 4, !tbaa !5
  %6163 = call ptr @strerror(i32 noundef %6162) #12
  %6164 = load i32, ptr %3104, align 4, !tbaa !5
  %6165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6156, ptr noundef nonnull %.str.7.sink3854, i32 noundef %6157, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.3, i32 noundef 586, ptr noundef %6159, ptr noundef %6161, ptr noundef %6163, i32 noundef %6164) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6166:                                             ; preds = %6139
  %6167 = add nsw i32 %6109, 3
  store i32 %6167, ptr @test_count, align 4, !tbaa !5
  %6168 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %6108, ptr noundef nonnull %41) #12
  %.not1319 = icmp eq i32 %6168, 0
  br i1 %.not1319, label %6173, label %.preheader1731.preheader

.preheader1731.preheader:                         ; preds = %6166
  %6169 = load i32, ptr @test_count, align 4, !tbaa !5
  %6170 = add nsw i32 %6169, 1
  store i32 %6170, ptr @test_count, align 4, !tbaa !5
  %6171 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %41) #12
  %6172 = icmp eq i32 %6171, -1
  br i1 %6172, label %6204, label %.preheader1731.1

6173:                                             ; preds = %6166
  %6174 = load i32, ptr %3104, align 4, !tbaa !5
  %6175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6176 = call i32 @s2n_print_stacktrace(ptr noundef %6175) #12
  %6177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6178 = trunc nuw i8 %6177 to i1
  br i1 %6178, label %6179, label %6183

6179:                                             ; preds = %6173
  %6180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6181 = call i32 @fileno(ptr noundef %6180) #12
  %6182 = call i32 @isatty(i32 noundef %6181) #12
  %.not1320 = icmp eq i32 %6182, 0
  br i1 %.not1320, label %6183, label %6184

6183:                                             ; preds = %6179, %6173
  br label %6184

6184:                                             ; preds = %6179, %6183
  %.str.7.sink3863 = phi ptr [ @.str.7, %6183 ], [ @.str.4, %6179 ]
  store i32 %6174, ptr %3104, align 4, !tbaa !5
  %6185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6186 = load i32, ptr @test_count, align 4, !tbaa !5
  %6187 = load i32, ptr %3050, align 4, !tbaa !5
  %6188 = call ptr @s2n_strerror(i32 noundef %6187, ptr noundef nonnull @.str.6) #12
  %6189 = load i32, ptr %3050, align 4, !tbaa !5
  %6190 = call ptr @s2n_strerror_debug(i32 noundef %6189, ptr noundef nonnull @.str.6) #12
  %6191 = load i32, ptr %3104, align 4, !tbaa !5
  %6192 = call ptr @strerror(i32 noundef %6191) #12
  %6193 = load i32, ptr %3104, align 4, !tbaa !5
  %6194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6185, ptr noundef nonnull %.str.7.sink3863, i32 noundef %6186, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.3, i32 noundef 587, ptr noundef %6188, ptr noundef %6190, ptr noundef %6192, i32 noundef %6193) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader1731.1:                                 ; preds = %.preheader1731.preheader
  %6195 = load i32, ptr @test_count, align 4, !tbaa !5
  %6196 = add nsw i32 %6195, 1
  store i32 %6196, ptr @test_count, align 4, !tbaa !5
  %6197 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %5861) #12
  %6198 = icmp eq i32 %6197, -1
  br i1 %6198, label %6204, label %6199

6199:                                             ; preds = %.preheader1731.1
  %6200 = load i32, ptr @test_count, align 4, !tbaa !5
  %6201 = add nsw i32 %6200, 1
  store i32 %6201, ptr @test_count, align 4, !tbaa !5
  %6202 = call i32 @s2n_stuffer_free(ptr noundef nonnull %42) #12
  %6203 = icmp eq i32 %6202, -1
  br i1 %6203, label %6226, label %6248

6204:                                             ; preds = %.preheader1731.1, %.preheader1731.preheader
  %6205 = load i32, ptr %3104, align 4, !tbaa !5
  %6206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6207 = call i32 @s2n_print_stacktrace(ptr noundef %6206) #12
  %6208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6209 = trunc nuw i8 %6208 to i1
  br i1 %6209, label %6210, label %6214

6210:                                             ; preds = %6204
  %6211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6212 = call i32 @fileno(ptr noundef %6211) #12
  %6213 = call i32 @isatty(i32 noundef %6212) #12
  %.not1555 = icmp eq i32 %6213, 0
  br i1 %.not1555, label %6214, label %6215

6214:                                             ; preds = %6210, %6204
  br label %6215

6215:                                             ; preds = %6210, %6214
  %.str.7.sink3872 = phi ptr [ @.str.7, %6214 ], [ @.str.4, %6210 ]
  store i32 %6205, ptr %3104, align 4, !tbaa !5
  %6216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6217 = load i32, ptr @test_count, align 4, !tbaa !5
  %6218 = load i32, ptr %3050, align 4, !tbaa !5
  %6219 = call ptr @s2n_strerror(i32 noundef %6218, ptr noundef nonnull @.str.6) #12
  %6220 = load i32, ptr %3050, align 4, !tbaa !5
  %6221 = call ptr @s2n_strerror_debug(i32 noundef %6220, ptr noundef nonnull @.str.6) #12
  %6222 = load i32, ptr %3104, align 4, !tbaa !5
  %6223 = call ptr @strerror(i32 noundef %6222) #12
  %6224 = load i32, ptr %3104, align 4, !tbaa !5
  %6225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6216, ptr noundef nonnull %.str.7.sink3872, i32 noundef %6217, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.3, i32 noundef 590, ptr noundef %6219, ptr noundef %6221, ptr noundef %6223, i32 noundef %6224) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6226:                                             ; preds = %6199
  %6227 = load i32, ptr %3104, align 4, !tbaa !5
  %6228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6229 = call i32 @s2n_print_stacktrace(ptr noundef %6228) #12
  %6230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6231 = trunc nuw i8 %6230 to i1
  br i1 %6231, label %6232, label %6236

6232:                                             ; preds = %6226
  %6233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6234 = call i32 @fileno(ptr noundef %6233) #12
  %6235 = call i32 @isatty(i32 noundef %6234) #12
  %.not1554 = icmp eq i32 %6235, 0
  br i1 %.not1554, label %6236, label %6237

6236:                                             ; preds = %6232, %6226
  br label %6237

6237:                                             ; preds = %6232, %6236
  %.str.7.sink3881 = phi ptr [ @.str.7, %6236 ], [ @.str.4, %6232 ]
  store i32 %6227, ptr %3104, align 4, !tbaa !5
  %6238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6239 = load i32, ptr @test_count, align 4, !tbaa !5
  %6240 = load i32, ptr %3050, align 4, !tbaa !5
  %6241 = call ptr @s2n_strerror(i32 noundef %6240, ptr noundef nonnull @.str.6) #12
  %6242 = load i32, ptr %3050, align 4, !tbaa !5
  %6243 = call ptr @s2n_strerror_debug(i32 noundef %6242, ptr noundef nonnull @.str.6) #12
  %6244 = load i32, ptr %3104, align 4, !tbaa !5
  %6245 = call ptr @strerror(i32 noundef %6244) #12
  %6246 = load i32, ptr %3104, align 4, !tbaa !5
  %6247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6238, ptr noundef nonnull %.str.7.sink3881, i32 noundef %6239, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 592, ptr noundef %6241, ptr noundef %6243, ptr noundef %6245, i32 noundef %6246) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6248:                                             ; preds = %6199
  %6249 = load i32, ptr @test_count, align 4, !tbaa !5
  %6250 = add nsw i32 %6249, 1
  store i32 %6250, ptr @test_count, align 4, !tbaa !5
  %6251 = call i32 @s2n_connection_free(ptr noundef nonnull %5723) #12
  %6252 = icmp eq i32 %6251, -1
  br i1 %6252, label %6253, label %6275

6253:                                             ; preds = %6248
  %6254 = load i32, ptr %3104, align 4, !tbaa !5
  %6255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6256 = call i32 @s2n_print_stacktrace(ptr noundef %6255) #12
  %6257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6258 = trunc nuw i8 %6257 to i1
  br i1 %6258, label %6259, label %6263

6259:                                             ; preds = %6253
  %6260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6261 = call i32 @fileno(ptr noundef %6260) #12
  %6262 = call i32 @isatty(i32 noundef %6261) #12
  %.not1553 = icmp eq i32 %6262, 0
  br i1 %.not1553, label %6263, label %6264

6263:                                             ; preds = %6259, %6253
  br label %6264

6264:                                             ; preds = %6259, %6263
  %.str.7.sink3890 = phi ptr [ @.str.7, %6263 ], [ @.str.4, %6259 ]
  store i32 %6254, ptr %3104, align 4, !tbaa !5
  %6265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6266 = load i32, ptr @test_count, align 4, !tbaa !5
  %6267 = load i32, ptr %3050, align 4, !tbaa !5
  %6268 = call ptr @s2n_strerror(i32 noundef %6267, ptr noundef nonnull @.str.6) #12
  %6269 = load i32, ptr %3050, align 4, !tbaa !5
  %6270 = call ptr @s2n_strerror_debug(i32 noundef %6269, ptr noundef nonnull @.str.6) #12
  %6271 = load i32, ptr %3104, align 4, !tbaa !5
  %6272 = call ptr @strerror(i32 noundef %6271) #12
  %6273 = load i32, ptr %3104, align 4, !tbaa !5
  %6274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6265, ptr noundef nonnull %.str.7.sink3890, i32 noundef %6266, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 593, ptr noundef %6268, ptr noundef %6270, ptr noundef %6272, i32 noundef %6273) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6275:                                             ; preds = %6248
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  %6276 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %6277 = load i32, ptr @test_count, align 4, !tbaa !5
  %6278 = add nsw i32 %6277, 1
  store i32 %6278, ptr @test_count, align 4, !tbaa !5
  %6279 = icmp eq ptr %6276, null
  br i1 %6279, label %6280, label %6302

6280:                                             ; preds = %6275
  %6281 = load i32, ptr %3104, align 4, !tbaa !5
  %6282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6283 = call i32 @s2n_print_stacktrace(ptr noundef %6282) #12
  %6284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6285 = trunc nuw i8 %6284 to i1
  br i1 %6285, label %6286, label %6290

6286:                                             ; preds = %6280
  %6287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6288 = call i32 @fileno(ptr noundef %6287) #12
  %6289 = call i32 @isatty(i32 noundef %6288) #12
  %.not1552 = icmp eq i32 %6289, 0
  br i1 %.not1552, label %6290, label %6291

6290:                                             ; preds = %6286, %6280
  br label %6291

6291:                                             ; preds = %6286, %6290
  %.str.7.sink3899 = phi ptr [ @.str.7, %6290 ], [ @.str.4, %6286 ]
  store i32 %6281, ptr %3104, align 4, !tbaa !5
  %6292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6293 = load i32, ptr @test_count, align 4, !tbaa !5
  %6294 = load i32, ptr %3050, align 4, !tbaa !5
  %6295 = call ptr @s2n_strerror(i32 noundef %6294, ptr noundef nonnull @.str.6) #12
  %6296 = load i32, ptr %3050, align 4, !tbaa !5
  %6297 = call ptr @s2n_strerror_debug(i32 noundef %6296, ptr noundef nonnull @.str.6) #12
  %6298 = load i32, ptr %3104, align 4, !tbaa !5
  %6299 = call ptr @strerror(i32 noundef %6298) #12
  %6300 = load i32, ptr %3104, align 4, !tbaa !5
  %6301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6292, ptr noundef nonnull %.str.7.sink3899, i32 noundef %6293, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.3, i32 noundef 601, ptr noundef %6295, ptr noundef %6297, ptr noundef %6299, i32 noundef %6300) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6302:                                             ; preds = %6275
  %6303 = getelementptr inbounds i8, ptr %6276, i64 220
  store i8 34, ptr %6303, align 4, !tbaa !63
  %6304 = add nsw i32 %6277, 2
  store i32 %6304, ptr @test_count, align 4, !tbaa !5
  %6305 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %6276) #12
  %6306 = call zeroext i1 @s2n_result_is_ok(i32 %6305)
  br i1 %6306, label %6329, label %6307

6307:                                             ; preds = %6302
  %6308 = load i32, ptr %3104, align 4, !tbaa !5
  %6309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6310 = call i32 @s2n_print_stacktrace(ptr noundef %6309) #12
  %6311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6312 = trunc nuw i8 %6311 to i1
  br i1 %6312, label %6313, label %6317

6313:                                             ; preds = %6307
  %6314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6315 = call i32 @fileno(ptr noundef %6314) #12
  %6316 = call i32 @isatty(i32 noundef %6315) #12
  %.not1321 = icmp eq i32 %6316, 0
  br i1 %.not1321, label %6317, label %6318

6317:                                             ; preds = %6313, %6307
  br label %6318

6318:                                             ; preds = %6313, %6317
  %.str.7.sink3908 = phi ptr [ @.str.7, %6317 ], [ @.str.4, %6313 ]
  store i32 %6308, ptr %3104, align 4, !tbaa !5
  %6319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6320 = load i32, ptr @test_count, align 4, !tbaa !5
  %6321 = load i32, ptr %3050, align 4, !tbaa !5
  %6322 = call ptr @s2n_strerror(i32 noundef %6321, ptr noundef nonnull @.str.6) #12
  %6323 = load i32, ptr %3050, align 4, !tbaa !5
  %6324 = call ptr @s2n_strerror_debug(i32 noundef %6323, ptr noundef nonnull @.str.6) #12
  %6325 = load i32, ptr %3104, align 4, !tbaa !5
  %6326 = call ptr @strerror(i32 noundef %6325) #12
  %6327 = load i32, ptr %3104, align 4, !tbaa !5
  %6328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6319, ptr noundef nonnull %.str.7.sink3908, i32 noundef %6320, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 605, ptr noundef %6322, ptr noundef %6324, ptr noundef %6326, i32 noundef %6327) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6329:                                             ; preds = %6302
  %6330 = getelementptr inbounds i8, ptr %6276, i64 672
  store ptr null, ptr %6330, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #12
  store ptr null, ptr %44, align 8, !tbaa !9
  %6331 = load i32, ptr @test_count, align 4, !tbaa !5
  %6332 = add nsw i32 %6331, 1
  store i32 %6332, ptr @test_count, align 4, !tbaa !5
  %6333 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %6276, ptr noundef nonnull %44) #12
  %6334 = icmp eq i32 %6333, -1
  br i1 %6334, label %6335, label %6357

6335:                                             ; preds = %6329
  %6336 = load i32, ptr %3104, align 4, !tbaa !5
  %6337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6338 = call i32 @s2n_print_stacktrace(ptr noundef %6337) #12
  %6339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6340 = trunc nuw i8 %6339 to i1
  br i1 %6340, label %6341, label %6345

6341:                                             ; preds = %6335
  %6342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6343 = call i32 @fileno(ptr noundef %6342) #12
  %6344 = call i32 @isatty(i32 noundef %6343) #12
  %.not1551 = icmp eq i32 %6344, 0
  br i1 %.not1551, label %6345, label %6346

6345:                                             ; preds = %6341, %6335
  br label %6346

6346:                                             ; preds = %6341, %6345
  %.str.7.sink3917 = phi ptr [ @.str.7, %6345 ], [ @.str.4, %6341 ]
  store i32 %6336, ptr %3104, align 4, !tbaa !5
  %6347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6348 = load i32, ptr @test_count, align 4, !tbaa !5
  %6349 = load i32, ptr %3050, align 4, !tbaa !5
  %6350 = call ptr @s2n_strerror(i32 noundef %6349, ptr noundef nonnull @.str.6) #12
  %6351 = load i32, ptr %3050, align 4, !tbaa !5
  %6352 = call ptr @s2n_strerror_debug(i32 noundef %6351, ptr noundef nonnull @.str.6) #12
  %6353 = load i32, ptr %3104, align 4, !tbaa !5
  %6354 = call ptr @strerror(i32 noundef %6353) #12
  %6355 = load i32, ptr %3104, align 4, !tbaa !5
  %6356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6347, ptr noundef nonnull %.str.7.sink3917, i32 noundef %6348, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 609, ptr noundef %6350, ptr noundef %6352, ptr noundef %6354, i32 noundef %6355) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6357:                                             ; preds = %6329
  %6358 = load i32, ptr @test_count, align 4, !tbaa !5
  %6359 = add nsw i32 %6358, 1
  store i32 %6359, ptr @test_count, align 4, !tbaa !5
  %6360 = load ptr, ptr %44, align 8, !tbaa !9
  %6361 = icmp eq ptr %6360, null
  br i1 %6361, label %6362, label %6384

6362:                                             ; preds = %6357
  %6363 = load i32, ptr %3104, align 4, !tbaa !5
  %6364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6365 = call i32 @s2n_print_stacktrace(ptr noundef %6364) #12
  %6366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6367 = trunc nuw i8 %6366 to i1
  br i1 %6367, label %6368, label %6372

6368:                                             ; preds = %6362
  %6369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6370 = call i32 @fileno(ptr noundef %6369) #12
  %6371 = call i32 @isatty(i32 noundef %6370) #12
  %.not1550 = icmp eq i32 %6371, 0
  br i1 %.not1550, label %6372, label %6373

6372:                                             ; preds = %6368, %6362
  br label %6373

6373:                                             ; preds = %6368, %6372
  %.str.7.sink3926 = phi ptr [ @.str.7, %6372 ], [ @.str.4, %6368 ]
  store i32 %6363, ptr %3104, align 4, !tbaa !5
  %6374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6375 = load i32, ptr @test_count, align 4, !tbaa !5
  %6376 = load i32, ptr %3050, align 4, !tbaa !5
  %6377 = call ptr @s2n_strerror(i32 noundef %6376, ptr noundef nonnull @.str.6) #12
  %6378 = load i32, ptr %3050, align 4, !tbaa !5
  %6379 = call ptr @s2n_strerror_debug(i32 noundef %6378, ptr noundef nonnull @.str.6) #12
  %6380 = load i32, ptr %3104, align 4, !tbaa !5
  %6381 = call ptr @strerror(i32 noundef %6380) #12
  %6382 = load i32, ptr %3104, align 4, !tbaa !5
  %6383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6374, ptr noundef nonnull %.str.7.sink3926, i32 noundef %6375, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 610, ptr noundef %6377, ptr noundef %6379, ptr noundef %6381, i32 noundef %6382) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6384:                                             ; preds = %6357
  %6385 = add nsw i32 %6358, 2
  store i32 %6385, ptr @test_count, align 4, !tbaa !5
  %6386 = load i8, ptr %6360, align 8, !tbaa !64
  %6387 = icmp ugt i8 %6386, 1
  br i1 %6387, label %6410, label %6388

6388:                                             ; preds = %6384
  %6389 = load i32, ptr %3104, align 4, !tbaa !5
  %6390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6391 = call i32 @s2n_print_stacktrace(ptr noundef %6390) #12
  %6392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6393 = trunc nuw i8 %6392 to i1
  br i1 %6393, label %6394, label %6398

6394:                                             ; preds = %6388
  %6395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6396 = call i32 @fileno(ptr noundef %6395) #12
  %6397 = call i32 @isatty(i32 noundef %6396) #12
  %.not1322 = icmp eq i32 %6397, 0
  br i1 %.not1322, label %6398, label %6399

6398:                                             ; preds = %6394, %6388
  br label %6399

6399:                                             ; preds = %6394, %6398
  %.str.7.sink3935 = phi ptr [ @.str.7, %6398 ], [ @.str.4, %6394 ]
  store i32 %6389, ptr %3104, align 4, !tbaa !5
  %6400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6401 = load i32, ptr @test_count, align 4, !tbaa !5
  %6402 = load i32, ptr %3050, align 4, !tbaa !5
  %6403 = call ptr @s2n_strerror(i32 noundef %6402, ptr noundef nonnull @.str.6) #12
  %6404 = load i32, ptr %3050, align 4, !tbaa !5
  %6405 = call ptr @s2n_strerror_debug(i32 noundef %6404, ptr noundef nonnull @.str.6) #12
  %6406 = load i32, ptr %3104, align 4, !tbaa !5
  %6407 = call ptr @strerror(i32 noundef %6406) #12
  %6408 = load i32, ptr %3104, align 4, !tbaa !5
  %6409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6400, ptr noundef nonnull %.str.7.sink3935, i32 noundef %6401, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.3, i32 noundef 611, ptr noundef %6403, ptr noundef %6405, ptr noundef %6407, i32 noundef %6408) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6410:                                             ; preds = %6384
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #12
  %6411 = getelementptr inbounds i8, ptr %6360, i64 8
  %6412 = load ptr, ptr %6411, align 8, !tbaa !24
  %6413 = load ptr, ptr %6412, align 8, !tbaa !9
  store ptr %6413, ptr %45, align 8, !tbaa !22
  %6414 = getelementptr inbounds i8, ptr %45, i64 8
  store ptr null, ptr %6414, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %46) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %46, i8 0, i64 40, i1 false)
  %6415 = add nsw i32 %6358, 3
  store i32 %6415, ptr @test_count, align 4, !tbaa !5
  %6416 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %46, i32 noundef 0) #12
  %6417 = icmp eq i32 %6416, -1
  br i1 %6417, label %6418, label %6440

6418:                                             ; preds = %6410
  %6419 = load i32, ptr %3104, align 4, !tbaa !5
  %6420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6421 = call i32 @s2n_print_stacktrace(ptr noundef %6420) #12
  %6422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6423 = trunc nuw i8 %6422 to i1
  br i1 %6423, label %6424, label %6428

6424:                                             ; preds = %6418
  %6425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6426 = call i32 @fileno(ptr noundef %6425) #12
  %6427 = call i32 @isatty(i32 noundef %6426) #12
  %.not1549 = icmp eq i32 %6427, 0
  br i1 %.not1549, label %6428, label %6429

6428:                                             ; preds = %6424, %6418
  br label %6429

6429:                                             ; preds = %6424, %6428
  %.str.7.sink3944 = phi ptr [ @.str.7, %6428 ], [ @.str.4, %6424 ]
  store i32 %6419, ptr %3104, align 4, !tbaa !5
  %6430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6431 = load i32, ptr @test_count, align 4, !tbaa !5
  %6432 = load i32, ptr %3050, align 4, !tbaa !5
  %6433 = call ptr @s2n_strerror(i32 noundef %6432, ptr noundef nonnull @.str.6) #12
  %6434 = load i32, ptr %3050, align 4, !tbaa !5
  %6435 = call ptr @s2n_strerror_debug(i32 noundef %6434, ptr noundef nonnull @.str.6) #12
  %6436 = load i32, ptr %3104, align 4, !tbaa !5
  %6437 = call ptr @strerror(i32 noundef %6436) #12
  %6438 = load i32, ptr %3104, align 4, !tbaa !5
  %6439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6430, ptr noundef nonnull %.str.7.sink3944, i32 noundef %6431, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 616, ptr noundef %6433, ptr noundef %6435, ptr noundef %6437, i32 noundef %6438) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6440:                                             ; preds = %6410
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %47, i8 0, i64 16, i1 false)
  %6441 = load i32, ptr @test_count, align 4, !tbaa !5
  %6442 = add nsw i32 %6441, 1
  store i32 %6442, ptr @test_count, align 4, !tbaa !5
  %6443 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %46, ptr noundef nonnull %47) #12
  %6444 = icmp eq i32 %6443, -1
  br i1 %6444, label %6445, label %6467

6445:                                             ; preds = %6440
  %6446 = load i32, ptr %3104, align 4, !tbaa !5
  %6447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6448 = call i32 @s2n_print_stacktrace(ptr noundef %6447) #12
  %6449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6450 = trunc nuw i8 %6449 to i1
  br i1 %6450, label %6451, label %6455

6451:                                             ; preds = %6445
  %6452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6453 = call i32 @fileno(ptr noundef %6452) #12
  %6454 = call i32 @isatty(i32 noundef %6453) #12
  %.not1548 = icmp eq i32 %6454, 0
  br i1 %.not1548, label %6455, label %6456

6455:                                             ; preds = %6451, %6445
  br label %6456

6456:                                             ; preds = %6451, %6455
  %.str.7.sink3953 = phi ptr [ @.str.7, %6455 ], [ @.str.4, %6451 ]
  store i32 %6446, ptr %3104, align 4, !tbaa !5
  %6457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6458 = load i32, ptr @test_count, align 4, !tbaa !5
  %6459 = load i32, ptr %3050, align 4, !tbaa !5
  %6460 = call ptr @s2n_strerror(i32 noundef %6459, ptr noundef nonnull @.str.6) #12
  %6461 = load i32, ptr %3050, align 4, !tbaa !5
  %6462 = call ptr @s2n_strerror_debug(i32 noundef %6461, ptr noundef nonnull @.str.6) #12
  %6463 = load i32, ptr %3104, align 4, !tbaa !5
  %6464 = call ptr @strerror(i32 noundef %6463) #12
  %6465 = load i32, ptr %3104, align 4, !tbaa !5
  %6466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6457, ptr noundef nonnull %.str.7.sink3953, i32 noundef %6458, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.3, i32 noundef 619, ptr noundef %6460, ptr noundef %6462, ptr noundef %6464, i32 noundef %6465) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6467:                                             ; preds = %6440
  %6468 = load i32, ptr @test_count, align 4, !tbaa !5
  %6469 = add nsw i32 %6468, 1
  store i32 %6469, ptr @test_count, align 4, !tbaa !5
  %6470 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %45, ptr noundef nonnull %46) #12
  %6471 = icmp eq i32 %6470, -1
  br i1 %6471, label %6472, label %6494

6472:                                             ; preds = %6467
  %6473 = load i32, ptr %3104, align 4, !tbaa !5
  %6474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6475 = call i32 @s2n_print_stacktrace(ptr noundef %6474) #12
  %6476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6477 = trunc nuw i8 %6476 to i1
  br i1 %6477, label %6478, label %6482

6478:                                             ; preds = %6472
  %6479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6480 = call i32 @fileno(ptr noundef %6479) #12
  %6481 = call i32 @isatty(i32 noundef %6480) #12
  %.not1547 = icmp eq i32 %6481, 0
  br i1 %.not1547, label %6482, label %6483

6482:                                             ; preds = %6478, %6472
  br label %6483

6483:                                             ; preds = %6478, %6482
  %.str.7.sink3962 = phi ptr [ @.str.7, %6482 ], [ @.str.4, %6478 ]
  store i32 %6473, ptr %3104, align 4, !tbaa !5
  %6484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6485 = load i32, ptr @test_count, align 4, !tbaa !5
  %6486 = load i32, ptr %3050, align 4, !tbaa !5
  %6487 = call ptr @s2n_strerror(i32 noundef %6486, ptr noundef nonnull @.str.6) #12
  %6488 = load i32, ptr %3050, align 4, !tbaa !5
  %6489 = call ptr @s2n_strerror_debug(i32 noundef %6488, ptr noundef nonnull @.str.6) #12
  %6490 = load i32, ptr %3104, align 4, !tbaa !5
  %6491 = call ptr @strerror(i32 noundef %6490) #12
  %6492 = load i32, ptr %3104, align 4, !tbaa !5
  %6493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6484, ptr noundef nonnull %.str.7.sink3962, i32 noundef %6485, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.3, i32 noundef 620, ptr noundef %6487, ptr noundef %6489, ptr noundef %6491, i32 noundef %6492) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6494:                                             ; preds = %6467
  %6495 = load i32, ptr @test_count, align 4, !tbaa !5
  %6496 = add nsw i32 %6495, 1
  store i32 %6496, ptr @test_count, align 4, !tbaa !5
  %6497 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %47) #12
  %6498 = icmp eq i32 %6497, -1
  br i1 %6498, label %6499, label %6521

6499:                                             ; preds = %6494
  %6500 = load i32, ptr %3104, align 4, !tbaa !5
  %6501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6502 = call i32 @s2n_print_stacktrace(ptr noundef %6501) #12
  %6503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6504 = trunc nuw i8 %6503 to i1
  br i1 %6504, label %6505, label %6509

6505:                                             ; preds = %6499
  %6506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6507 = call i32 @fileno(ptr noundef %6506) #12
  %6508 = call i32 @isatty(i32 noundef %6507) #12
  %.not1546 = icmp eq i32 %6508, 0
  br i1 %.not1546, label %6509, label %6510

6509:                                             ; preds = %6505, %6499
  br label %6510

6510:                                             ; preds = %6505, %6509
  %.str.7.sink3971 = phi ptr [ @.str.7, %6509 ], [ @.str.4, %6505 ]
  store i32 %6500, ptr %3104, align 4, !tbaa !5
  %6511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6512 = load i32, ptr @test_count, align 4, !tbaa !5
  %6513 = load i32, ptr %3050, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror(i32 noundef %6513, ptr noundef nonnull @.str.6) #12
  %6515 = load i32, ptr %3050, align 4, !tbaa !5
  %6516 = call ptr @s2n_strerror_debug(i32 noundef %6515, ptr noundef nonnull @.str.6) #12
  %6517 = load i32, ptr %3104, align 4, !tbaa !5
  %6518 = call ptr @strerror(i32 noundef %6517) #12
  %6519 = load i32, ptr %3104, align 4, !tbaa !5
  %6520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6511, ptr noundef nonnull %.str.7.sink3971, i32 noundef %6512, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.3, i32 noundef 621, ptr noundef %6514, ptr noundef %6516, ptr noundef %6518, i32 noundef %6519) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6521:                                             ; preds = %6494
  %6522 = load i32, ptr @test_count, align 4, !tbaa !5
  %6523 = add nsw i32 %6522, 1
  store i32 %6523, ptr @test_count, align 4, !tbaa !5
  %6524 = call i32 %2660(ptr noundef nonnull %6276, ptr noundef nonnull %46) #12
  %6525 = icmp eq i32 %6524, -1
  br i1 %6525, label %6526, label %6548

6526:                                             ; preds = %6521
  %6527 = load i32, ptr %3104, align 4, !tbaa !5
  %6528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6529 = call i32 @s2n_print_stacktrace(ptr noundef %6528) #12
  %6530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6531 = trunc nuw i8 %6530 to i1
  br i1 %6531, label %6532, label %6536

6532:                                             ; preds = %6526
  %6533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6534 = call i32 @fileno(ptr noundef %6533) #12
  %6535 = call i32 @isatty(i32 noundef %6534) #12
  %.not1545 = icmp eq i32 %6535, 0
  br i1 %.not1545, label %6536, label %6537

6536:                                             ; preds = %6532, %6526
  br label %6537

6537:                                             ; preds = %6532, %6536
  %.str.7.sink3980 = phi ptr [ @.str.7, %6536 ], [ @.str.4, %6532 ]
  store i32 %6527, ptr %3104, align 4, !tbaa !5
  %6538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6539 = load i32, ptr @test_count, align 4, !tbaa !5
  %6540 = load i32, ptr %3050, align 4, !tbaa !5
  %6541 = call ptr @s2n_strerror(i32 noundef %6540, ptr noundef nonnull @.str.6) #12
  %6542 = load i32, ptr %3050, align 4, !tbaa !5
  %6543 = call ptr @s2n_strerror_debug(i32 noundef %6542, ptr noundef nonnull @.str.6) #12
  %6544 = load i32, ptr %3104, align 4, !tbaa !5
  %6545 = call ptr @strerror(i32 noundef %6544) #12
  %6546 = load i32, ptr %3104, align 4, !tbaa !5
  %6547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6538, ptr noundef nonnull %.str.7.sink3980, i32 noundef %6539, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 623, ptr noundef %6541, ptr noundef %6543, ptr noundef %6545, i32 noundef %6546) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6548:                                             ; preds = %6521
  %6549 = load i32, ptr @test_count, align 4, !tbaa !5
  %6550 = add nsw i32 %6549, 1
  store i32 %6550, ptr @test_count, align 4, !tbaa !5
  %6551 = getelementptr inbounds i8, ptr %46, i64 28
  %6552 = load i32, ptr %6551, align 4, !tbaa !18
  %6553 = getelementptr inbounds i8, ptr %46, i64 24
  %6554 = load i32, ptr %6553, align 8, !tbaa !21
  %6555 = icmp eq i32 %6552, %6554
  br i1 %6555, label %6578, label %6556

6556:                                             ; preds = %6548
  %6557 = load i32, ptr %3104, align 4, !tbaa !5
  %6558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6559 = call i32 @s2n_print_stacktrace(ptr noundef %6558) #12
  %6560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6561 = trunc nuw i8 %6560 to i1
  br i1 %6561, label %6562, label %6566

6562:                                             ; preds = %6556
  %6563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6564 = call i32 @fileno(ptr noundef %6563) #12
  %6565 = call i32 @isatty(i32 noundef %6564) #12
  %.not1323 = icmp eq i32 %6565, 0
  br i1 %.not1323, label %6566, label %6567

6566:                                             ; preds = %6562, %6556
  br label %6567

6567:                                             ; preds = %6562, %6566
  %.str.7.sink3989 = phi ptr [ @.str.7, %6566 ], [ @.str.4, %6562 ]
  store i32 %6557, ptr %3104, align 4, !tbaa !5
  %6568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6569 = load i32, ptr @test_count, align 4, !tbaa !5
  %6570 = load i32, ptr %3050, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror(i32 noundef %6570, ptr noundef nonnull @.str.6) #12
  %6572 = load i32, ptr %3050, align 4, !tbaa !5
  %6573 = call ptr @s2n_strerror_debug(i32 noundef %6572, ptr noundef nonnull @.str.6) #12
  %6574 = load i32, ptr %3104, align 4, !tbaa !5
  %6575 = call ptr @strerror(i32 noundef %6574) #12
  %6576 = load i32, ptr %3104, align 4, !tbaa !5
  %6577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6568, ptr noundef nonnull %.str.7.sink3989, i32 noundef %6569, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 624, ptr noundef %6571, ptr noundef %6573, ptr noundef %6575, i32 noundef %6576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6578:                                             ; preds = %6548
  %6579 = add nsw i32 %6549, 2
  store i32 %6579, ptr @test_count, align 4, !tbaa !5
  %6580 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %6276, i32 noundef 16) #12
  br i1 %6580, label %6603, label %6581

6581:                                             ; preds = %6578
  %6582 = load i32, ptr %3104, align 4, !tbaa !5
  %6583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6584 = call i32 @s2n_print_stacktrace(ptr noundef %6583) #12
  %6585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6586 = trunc nuw i8 %6585 to i1
  br i1 %6586, label %6587, label %6591

6587:                                             ; preds = %6581
  %6588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6589 = call i32 @fileno(ptr noundef %6588) #12
  %6590 = call i32 @isatty(i32 noundef %6589) #12
  %.not1324 = icmp eq i32 %6590, 0
  br i1 %.not1324, label %6591, label %6592

6591:                                             ; preds = %6587, %6581
  br label %6592

6592:                                             ; preds = %6587, %6591
  %.str.7.sink3998 = phi ptr [ @.str.7, %6591 ], [ @.str.4, %6587 ]
  store i32 %6582, ptr %3104, align 4, !tbaa !5
  %6593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6594 = load i32, ptr @test_count, align 4, !tbaa !5
  %6595 = load i32, ptr %3050, align 4, !tbaa !5
  %6596 = call ptr @s2n_strerror(i32 noundef %6595, ptr noundef nonnull @.str.6) #12
  %6597 = load i32, ptr %3050, align 4, !tbaa !5
  %6598 = call ptr @s2n_strerror_debug(i32 noundef %6597, ptr noundef nonnull @.str.6) #12
  %6599 = load i32, ptr %3104, align 4, !tbaa !5
  %6600 = call ptr @strerror(i32 noundef %6599) #12
  %6601 = load i32, ptr %3104, align 4, !tbaa !5
  %6602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6593, ptr noundef nonnull %.str.7.sink3998, i32 noundef %6594, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.3, i32 noundef 627, ptr noundef %6596, ptr noundef %6598, ptr noundef %6600, i32 noundef %6601) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6603:                                             ; preds = %6578
  %6604 = getelementptr inbounds i8, ptr %6276, i64 704
  %6605 = load i32, ptr @test_count, align 4, !tbaa !5
  %6606 = add nsw i32 %6605, 1
  store i32 %6606, ptr @test_count, align 4, !tbaa !5
  %6607 = load ptr, ptr %6604, align 8, !tbaa !22
  %6608 = icmp eq ptr %6607, null
  br i1 %6608, label %6631, label %6609

6609:                                             ; preds = %6603
  %6610 = load i32, ptr %3104, align 4, !tbaa !5
  %6611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6612 = call i32 @s2n_print_stacktrace(ptr noundef %6611) #12
  %6613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6614 = trunc nuw i8 %6613 to i1
  br i1 %6614, label %6615, label %6619

6615:                                             ; preds = %6609
  %6616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6617 = call i32 @fileno(ptr noundef %6616) #12
  %6618 = call i32 @isatty(i32 noundef %6617) #12
  %.not1325 = icmp eq i32 %6618, 0
  br i1 %.not1325, label %6619, label %6620

6619:                                             ; preds = %6615, %6609
  br label %6620

6620:                                             ; preds = %6615, %6619
  %.str.7.sink4007 = phi ptr [ @.str.7, %6619 ], [ @.str.4, %6615 ]
  store i32 %6610, ptr %3104, align 4, !tbaa !5
  %6621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6622 = load i32, ptr @test_count, align 4, !tbaa !5
  %6623 = load i32, ptr %3050, align 4, !tbaa !5
  %6624 = call ptr @s2n_strerror(i32 noundef %6623, ptr noundef nonnull @.str.6) #12
  %6625 = load i32, ptr %3050, align 4, !tbaa !5
  %6626 = call ptr @s2n_strerror_debug(i32 noundef %6625, ptr noundef nonnull @.str.6) #12
  %6627 = load i32, ptr %3104, align 4, !tbaa !5
  %6628 = call ptr @strerror(i32 noundef %6627) #12
  %6629 = load i32, ptr %3104, align 4, !tbaa !5
  %6630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6621, ptr noundef nonnull %.str.7.sink4007, i32 noundef %6622, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.3, i32 noundef 631, ptr noundef %6624, ptr noundef %6626, ptr noundef %6628, i32 noundef %6629) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6631:                                             ; preds = %6603
  %6632 = add nsw i32 %6605, 2
  store i32 %6632, ptr @test_count, align 4, !tbaa !5
  %6633 = getelementptr inbounds i8, ptr %6276, i64 712
  %6634 = load ptr, ptr %6633, align 8, !tbaa !26
  %6635 = icmp eq ptr %6634, null
  br i1 %6635, label %6658, label %6636

6636:                                             ; preds = %6631
  %6637 = load i32, ptr %3104, align 4, !tbaa !5
  %6638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6639 = call i32 @s2n_print_stacktrace(ptr noundef %6638) #12
  %6640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6641 = trunc nuw i8 %6640 to i1
  br i1 %6641, label %6642, label %6646

6642:                                             ; preds = %6636
  %6643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6644 = call i32 @fileno(ptr noundef %6643) #12
  %6645 = call i32 @isatty(i32 noundef %6644) #12
  %.not1326 = icmp eq i32 %6645, 0
  br i1 %.not1326, label %6646, label %6647

6646:                                             ; preds = %6642, %6636
  br label %6647

6647:                                             ; preds = %6642, %6646
  %.str.7.sink4016 = phi ptr [ @.str.7, %6646 ], [ @.str.4, %6642 ]
  store i32 %6637, ptr %3104, align 4, !tbaa !5
  %6648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6649 = load i32, ptr @test_count, align 4, !tbaa !5
  %6650 = load i32, ptr %3050, align 4, !tbaa !5
  %6651 = call ptr @s2n_strerror(i32 noundef %6650, ptr noundef nonnull @.str.6) #12
  %6652 = load i32, ptr %3050, align 4, !tbaa !5
  %6653 = call ptr @s2n_strerror_debug(i32 noundef %6652, ptr noundef nonnull @.str.6) #12
  %6654 = load i32, ptr %3104, align 4, !tbaa !5
  %6655 = call ptr @strerror(i32 noundef %6654) #12
  %6656 = load i32, ptr %3104, align 4, !tbaa !5
  %6657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6648, ptr noundef nonnull %.str.7.sink4016, i32 noundef %6649, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.3, i32 noundef 632, ptr noundef %6651, ptr noundef %6653, ptr noundef %6655, i32 noundef %6656) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6658:                                             ; preds = %6631
  %6659 = add nsw i32 %6605, 3
  store i32 %6659, ptr @test_count, align 4, !tbaa !5
  %6660 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %45) #12
  %6661 = icmp eq i32 %6660, -1
  br i1 %6661, label %6662, label %6684

6662:                                             ; preds = %6658
  %6663 = load i32, ptr %3104, align 4, !tbaa !5
  %6664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6665 = call i32 @s2n_print_stacktrace(ptr noundef %6664) #12
  %6666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6667 = trunc nuw i8 %6666 to i1
  br i1 %6667, label %6668, label %6672

6668:                                             ; preds = %6662
  %6669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6670 = call i32 @fileno(ptr noundef %6669) #12
  %6671 = call i32 @isatty(i32 noundef %6670) #12
  %.not1544 = icmp eq i32 %6671, 0
  br i1 %.not1544, label %6672, label %6673

6672:                                             ; preds = %6668, %6662
  br label %6673

6673:                                             ; preds = %6668, %6672
  %.str.7.sink4025 = phi ptr [ @.str.7, %6672 ], [ @.str.4, %6668 ]
  store i32 %6663, ptr %3104, align 4, !tbaa !5
  %6674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6675 = load i32, ptr @test_count, align 4, !tbaa !5
  %6676 = load i32, ptr %3050, align 4, !tbaa !5
  %6677 = call ptr @s2n_strerror(i32 noundef %6676, ptr noundef nonnull @.str.6) #12
  %6678 = load i32, ptr %3050, align 4, !tbaa !5
  %6679 = call ptr @s2n_strerror_debug(i32 noundef %6678, ptr noundef nonnull @.str.6) #12
  %6680 = load i32, ptr %3104, align 4, !tbaa !5
  %6681 = call ptr @strerror(i32 noundef %6680) #12
  %6682 = load i32, ptr %3104, align 4, !tbaa !5
  %6683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6674, ptr noundef nonnull %.str.7.sink4025, i32 noundef %6675, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.3, i32 noundef 634, ptr noundef %6677, ptr noundef %6679, ptr noundef %6681, i32 noundef %6682) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6684:                                             ; preds = %6658
  %6685 = load i32, ptr @test_count, align 4, !tbaa !5
  %6686 = add nsw i32 %6685, 1
  store i32 %6686, ptr @test_count, align 4, !tbaa !5
  %6687 = call i32 @s2n_stuffer_free(ptr noundef nonnull %46) #12
  %6688 = icmp eq i32 %6687, -1
  br i1 %6688, label %6689, label %6711

6689:                                             ; preds = %6684
  %6690 = load i32, ptr %3104, align 4, !tbaa !5
  %6691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6692 = call i32 @s2n_print_stacktrace(ptr noundef %6691) #12
  %6693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6694 = trunc nuw i8 %6693 to i1
  br i1 %6694, label %6695, label %6699

6695:                                             ; preds = %6689
  %6696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6697 = call i32 @fileno(ptr noundef %6696) #12
  %6698 = call i32 @isatty(i32 noundef %6697) #12
  %.not1543 = icmp eq i32 %6698, 0
  br i1 %.not1543, label %6699, label %6700

6699:                                             ; preds = %6695, %6689
  br label %6700

6700:                                             ; preds = %6695, %6699
  %.str.7.sink4034 = phi ptr [ @.str.7, %6699 ], [ @.str.4, %6695 ]
  store i32 %6690, ptr %3104, align 4, !tbaa !5
  %6701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6702 = load i32, ptr @test_count, align 4, !tbaa !5
  %6703 = load i32, ptr %3050, align 4, !tbaa !5
  %6704 = call ptr @s2n_strerror(i32 noundef %6703, ptr noundef nonnull @.str.6) #12
  %6705 = load i32, ptr %3050, align 4, !tbaa !5
  %6706 = call ptr @s2n_strerror_debug(i32 noundef %6705, ptr noundef nonnull @.str.6) #12
  %6707 = load i32, ptr %3104, align 4, !tbaa !5
  %6708 = call ptr @strerror(i32 noundef %6707) #12
  %6709 = load i32, ptr %3104, align 4, !tbaa !5
  %6710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6701, ptr noundef nonnull %.str.7.sink4034, i32 noundef %6702, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 635, ptr noundef %6704, ptr noundef %6706, ptr noundef %6708, i32 noundef %6709) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6711:                                             ; preds = %6684
  %6712 = load i32, ptr @test_count, align 4, !tbaa !5
  %6713 = add nsw i32 %6712, 1
  store i32 %6713, ptr @test_count, align 4, !tbaa !5
  %6714 = call i32 @s2n_connection_free(ptr noundef nonnull %6276) #12
  %6715 = icmp eq i32 %6714, -1
  br i1 %6715, label %6716, label %6738

6716:                                             ; preds = %6711
  %6717 = load i32, ptr %3104, align 4, !tbaa !5
  %6718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6719 = call i32 @s2n_print_stacktrace(ptr noundef %6718) #12
  %6720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6721 = trunc nuw i8 %6720 to i1
  br i1 %6721, label %6722, label %6726

6722:                                             ; preds = %6716
  %6723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6724 = call i32 @fileno(ptr noundef %6723) #12
  %6725 = call i32 @isatty(i32 noundef %6724) #12
  %.not1542 = icmp eq i32 %6725, 0
  br i1 %.not1542, label %6726, label %6727

6726:                                             ; preds = %6722, %6716
  br label %6727

6727:                                             ; preds = %6722, %6726
  %.str.7.sink4043 = phi ptr [ @.str.7, %6726 ], [ @.str.4, %6722 ]
  store i32 %6717, ptr %3104, align 4, !tbaa !5
  %6728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6729 = load i32, ptr @test_count, align 4, !tbaa !5
  %6730 = load i32, ptr %3050, align 4, !tbaa !5
  %6731 = call ptr @s2n_strerror(i32 noundef %6730, ptr noundef nonnull @.str.6) #12
  %6732 = load i32, ptr %3050, align 4, !tbaa !5
  %6733 = call ptr @s2n_strerror_debug(i32 noundef %6732, ptr noundef nonnull @.str.6) #12
  %6734 = load i32, ptr %3104, align 4, !tbaa !5
  %6735 = call ptr @strerror(i32 noundef %6734) #12
  %6736 = load i32, ptr %3104, align 4, !tbaa !5
  %6737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6728, ptr noundef nonnull %.str.7.sink4043, i32 noundef %6729, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 636, ptr noundef %6731, ptr noundef %6733, ptr noundef %6735, i32 noundef %6736) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6738:                                             ; preds = %6711
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %46) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  %6739 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %6740 = load i32, ptr @test_count, align 4, !tbaa !5
  %6741 = add nsw i32 %6740, 1
  store i32 %6741, ptr @test_count, align 4, !tbaa !5
  %6742 = icmp eq ptr %6739, null
  br i1 %6742, label %6743, label %6765

6743:                                             ; preds = %6738
  %6744 = load i32, ptr %3104, align 4, !tbaa !5
  %6745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6746 = call i32 @s2n_print_stacktrace(ptr noundef %6745) #12
  %6747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6748 = trunc nuw i8 %6747 to i1
  br i1 %6748, label %6749, label %6753

6749:                                             ; preds = %6743
  %6750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6751 = call i32 @fileno(ptr noundef %6750) #12
  %6752 = call i32 @isatty(i32 noundef %6751) #12
  %.not1541 = icmp eq i32 %6752, 0
  br i1 %.not1541, label %6753, label %6754

6753:                                             ; preds = %6749, %6743
  br label %6754

6754:                                             ; preds = %6749, %6753
  %.str.7.sink4052 = phi ptr [ @.str.7, %6753 ], [ @.str.4, %6749 ]
  store i32 %6744, ptr %3104, align 4, !tbaa !5
  %6755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6756 = load i32, ptr @test_count, align 4, !tbaa !5
  %6757 = load i32, ptr %3050, align 4, !tbaa !5
  %6758 = call ptr @s2n_strerror(i32 noundef %6757, ptr noundef nonnull @.str.6) #12
  %6759 = load i32, ptr %3050, align 4, !tbaa !5
  %6760 = call ptr @s2n_strerror_debug(i32 noundef %6759, ptr noundef nonnull @.str.6) #12
  %6761 = load i32, ptr %3104, align 4, !tbaa !5
  %6762 = call ptr @strerror(i32 noundef %6761) #12
  %6763 = load i32, ptr %3104, align 4, !tbaa !5
  %6764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6755, ptr noundef nonnull %.str.7.sink4052, i32 noundef %6756, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.3, i32 noundef 644, ptr noundef %6758, ptr noundef %6760, ptr noundef %6762, i32 noundef %6763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6765:                                             ; preds = %6738
  %6766 = getelementptr inbounds i8, ptr %6739, i64 220
  store i8 34, ptr %6766, align 4, !tbaa !63
  %6767 = add nsw i32 %6740, 2
  store i32 %6767, ptr @test_count, align 4, !tbaa !5
  %6768 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %6739) #12
  %6769 = call zeroext i1 @s2n_result_is_ok(i32 %6768)
  br i1 %6769, label %6792, label %6770

6770:                                             ; preds = %6765
  %6771 = load i32, ptr %3104, align 4, !tbaa !5
  %6772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6773 = call i32 @s2n_print_stacktrace(ptr noundef %6772) #12
  %6774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6775 = trunc nuw i8 %6774 to i1
  br i1 %6775, label %6776, label %6780

6776:                                             ; preds = %6770
  %6777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6778 = call i32 @fileno(ptr noundef %6777) #12
  %6779 = call i32 @isatty(i32 noundef %6778) #12
  %.not1327 = icmp eq i32 %6779, 0
  br i1 %.not1327, label %6780, label %6781

6780:                                             ; preds = %6776, %6770
  br label %6781

6781:                                             ; preds = %6776, %6780
  %.str.7.sink4061 = phi ptr [ @.str.7, %6780 ], [ @.str.4, %6776 ]
  store i32 %6771, ptr %3104, align 4, !tbaa !5
  %6782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6783 = load i32, ptr @test_count, align 4, !tbaa !5
  %6784 = load i32, ptr %3050, align 4, !tbaa !5
  %6785 = call ptr @s2n_strerror(i32 noundef %6784, ptr noundef nonnull @.str.6) #12
  %6786 = load i32, ptr %3050, align 4, !tbaa !5
  %6787 = call ptr @s2n_strerror_debug(i32 noundef %6786, ptr noundef nonnull @.str.6) #12
  %6788 = load i32, ptr %3104, align 4, !tbaa !5
  %6789 = call ptr @strerror(i32 noundef %6788) #12
  %6790 = load i32, ptr %3104, align 4, !tbaa !5
  %6791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6782, ptr noundef nonnull %.str.7.sink4061, i32 noundef %6783, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 648, ptr noundef %6785, ptr noundef %6787, ptr noundef %6789, i32 noundef %6790) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6792:                                             ; preds = %6765
  %6793 = getelementptr inbounds i8, ptr %6739, i64 672
  store ptr null, ptr %6793, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  store ptr null, ptr %48, align 8, !tbaa !9
  %6794 = load i32, ptr @test_count, align 4, !tbaa !5
  %6795 = add nsw i32 %6794, 1
  store i32 %6795, ptr @test_count, align 4, !tbaa !5
  %6796 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %6739, ptr noundef nonnull %48) #12
  %6797 = icmp eq i32 %6796, -1
  br i1 %6797, label %6798, label %6820

6798:                                             ; preds = %6792
  %6799 = load i32, ptr %3104, align 4, !tbaa !5
  %6800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6801 = call i32 @s2n_print_stacktrace(ptr noundef %6800) #12
  %6802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6803 = trunc nuw i8 %6802 to i1
  br i1 %6803, label %6804, label %6808

6804:                                             ; preds = %6798
  %6805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6806 = call i32 @fileno(ptr noundef %6805) #12
  %6807 = call i32 @isatty(i32 noundef %6806) #12
  %.not1540 = icmp eq i32 %6807, 0
  br i1 %.not1540, label %6808, label %6809

6808:                                             ; preds = %6804, %6798
  br label %6809

6809:                                             ; preds = %6804, %6808
  %.str.7.sink4070 = phi ptr [ @.str.7, %6808 ], [ @.str.4, %6804 ]
  store i32 %6799, ptr %3104, align 4, !tbaa !5
  %6810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6811 = load i32, ptr @test_count, align 4, !tbaa !5
  %6812 = load i32, ptr %3050, align 4, !tbaa !5
  %6813 = call ptr @s2n_strerror(i32 noundef %6812, ptr noundef nonnull @.str.6) #12
  %6814 = load i32, ptr %3050, align 4, !tbaa !5
  %6815 = call ptr @s2n_strerror_debug(i32 noundef %6814, ptr noundef nonnull @.str.6) #12
  %6816 = load i32, ptr %3104, align 4, !tbaa !5
  %6817 = call ptr @strerror(i32 noundef %6816) #12
  %6818 = load i32, ptr %3104, align 4, !tbaa !5
  %6819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6810, ptr noundef nonnull %.str.7.sink4070, i32 noundef %6811, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 652, ptr noundef %6813, ptr noundef %6815, ptr noundef %6817, i32 noundef %6818) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6820:                                             ; preds = %6792
  %6821 = load i32, ptr @test_count, align 4, !tbaa !5
  %6822 = add nsw i32 %6821, 1
  store i32 %6822, ptr @test_count, align 4, !tbaa !5
  %6823 = load ptr, ptr %48, align 8, !tbaa !9
  %6824 = icmp eq ptr %6823, null
  br i1 %6824, label %6825, label %6847

6825:                                             ; preds = %6820
  %6826 = load i32, ptr %3104, align 4, !tbaa !5
  %6827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6828 = call i32 @s2n_print_stacktrace(ptr noundef %6827) #12
  %6829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6830 = trunc nuw i8 %6829 to i1
  br i1 %6830, label %6831, label %6835

6831:                                             ; preds = %6825
  %6832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6833 = call i32 @fileno(ptr noundef %6832) #12
  %6834 = call i32 @isatty(i32 noundef %6833) #12
  %.not1539 = icmp eq i32 %6834, 0
  br i1 %.not1539, label %6835, label %6836

6835:                                             ; preds = %6831, %6825
  br label %6836

6836:                                             ; preds = %6831, %6835
  %.str.7.sink4079 = phi ptr [ @.str.7, %6835 ], [ @.str.4, %6831 ]
  store i32 %6826, ptr %3104, align 4, !tbaa !5
  %6837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6838 = load i32, ptr @test_count, align 4, !tbaa !5
  %6839 = load i32, ptr %3050, align 4, !tbaa !5
  %6840 = call ptr @s2n_strerror(i32 noundef %6839, ptr noundef nonnull @.str.6) #12
  %6841 = load i32, ptr %3050, align 4, !tbaa !5
  %6842 = call ptr @s2n_strerror_debug(i32 noundef %6841, ptr noundef nonnull @.str.6) #12
  %6843 = load i32, ptr %3104, align 4, !tbaa !5
  %6844 = call ptr @strerror(i32 noundef %6843) #12
  %6845 = load i32, ptr %3104, align 4, !tbaa !5
  %6846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6837, ptr noundef nonnull %.str.7.sink4079, i32 noundef %6838, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 653, ptr noundef %6840, ptr noundef %6842, ptr noundef %6844, i32 noundef %6845) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6847:                                             ; preds = %6820
  %6848 = add nsw i32 %6821, 2
  store i32 %6848, ptr @test_count, align 4, !tbaa !5
  %6849 = load i8, ptr %6823, align 8, !tbaa !64
  %6850 = icmp ugt i8 %6849, 1
  br i1 %6850, label %6873, label %6851

6851:                                             ; preds = %6847
  %6852 = load i32, ptr %3104, align 4, !tbaa !5
  %6853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6854 = call i32 @s2n_print_stacktrace(ptr noundef %6853) #12
  %6855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6856 = trunc nuw i8 %6855 to i1
  br i1 %6856, label %6857, label %6861

6857:                                             ; preds = %6851
  %6858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6859 = call i32 @fileno(ptr noundef %6858) #12
  %6860 = call i32 @isatty(i32 noundef %6859) #12
  %.not1328 = icmp eq i32 %6860, 0
  br i1 %.not1328, label %6861, label %6862

6861:                                             ; preds = %6857, %6851
  br label %6862

6862:                                             ; preds = %6857, %6861
  %.str.7.sink4088 = phi ptr [ @.str.7, %6861 ], [ @.str.4, %6857 ]
  store i32 %6852, ptr %3104, align 4, !tbaa !5
  %6863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6864 = load i32, ptr @test_count, align 4, !tbaa !5
  %6865 = load i32, ptr %3050, align 4, !tbaa !5
  %6866 = call ptr @s2n_strerror(i32 noundef %6865, ptr noundef nonnull @.str.6) #12
  %6867 = load i32, ptr %3050, align 4, !tbaa !5
  %6868 = call ptr @s2n_strerror_debug(i32 noundef %6867, ptr noundef nonnull @.str.6) #12
  %6869 = load i32, ptr %3104, align 4, !tbaa !5
  %6870 = call ptr @strerror(i32 noundef %6869) #12
  %6871 = load i32, ptr %3104, align 4, !tbaa !5
  %6872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6863, ptr noundef nonnull %.str.7.sink4088, i32 noundef %6864, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.3, i32 noundef 654, ptr noundef %6866, ptr noundef %6868, ptr noundef %6870, i32 noundef %6871) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6873:                                             ; preds = %6847
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #12
  %6874 = getelementptr inbounds i8, ptr %6823, i64 8
  %6875 = load ptr, ptr %6874, align 8, !tbaa !24
  %6876 = load ptr, ptr %6875, align 8, !tbaa !9
  store ptr %6876, ptr %49, align 16, !tbaa !22
  %6877 = getelementptr inbounds i8, ptr %49, i64 8
  store ptr null, ptr %6877, align 8, !tbaa !26
  %6878 = getelementptr inbounds i8, ptr %49, i64 16
  %6879 = getelementptr inbounds i8, ptr %6875, i64 8
  %6880 = load ptr, ptr %6879, align 8, !tbaa !9
  store ptr %6880, ptr %6878, align 16, !tbaa !22
  %6881 = getelementptr inbounds i8, ptr %49, i64 24
  store ptr null, ptr %6881, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %50) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %50, i8 0, i64 40, i1 false)
  %6882 = add nsw i32 %6821, 3
  store i32 %6882, ptr @test_count, align 4, !tbaa !5
  %6883 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %50, i32 noundef 0) #12
  %6884 = icmp eq i32 %6883, -1
  br i1 %6884, label %6885, label %6907

6885:                                             ; preds = %6873
  %6886 = load i32, ptr %3104, align 4, !tbaa !5
  %6887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6888 = call i32 @s2n_print_stacktrace(ptr noundef %6887) #12
  %6889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6890 = trunc nuw i8 %6889 to i1
  br i1 %6890, label %6891, label %6895

6891:                                             ; preds = %6885
  %6892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6893 = call i32 @fileno(ptr noundef %6892) #12
  %6894 = call i32 @isatty(i32 noundef %6893) #12
  %.not1538 = icmp eq i32 %6894, 0
  br i1 %.not1538, label %6895, label %6896

6895:                                             ; preds = %6891, %6885
  br label %6896

6896:                                             ; preds = %6891, %6895
  %.str.7.sink4097 = phi ptr [ @.str.7, %6895 ], [ @.str.4, %6891 ]
  store i32 %6886, ptr %3104, align 4, !tbaa !5
  %6897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6898 = load i32, ptr @test_count, align 4, !tbaa !5
  %6899 = load i32, ptr %3050, align 4, !tbaa !5
  %6900 = call ptr @s2n_strerror(i32 noundef %6899, ptr noundef nonnull @.str.6) #12
  %6901 = load i32, ptr %3050, align 4, !tbaa !5
  %6902 = call ptr @s2n_strerror_debug(i32 noundef %6901, ptr noundef nonnull @.str.6) #12
  %6903 = load i32, ptr %3104, align 4, !tbaa !5
  %6904 = call ptr @strerror(i32 noundef %6903) #12
  %6905 = load i32, ptr %3104, align 4, !tbaa !5
  %6906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6897, ptr noundef nonnull %.str.7.sink4097, i32 noundef %6898, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 662, ptr noundef %6900, ptr noundef %6902, ptr noundef %6904, i32 noundef %6905) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6907:                                             ; preds = %6873
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %51, i8 0, i64 16, i1 false)
  %6908 = load i32, ptr @test_count, align 4, !tbaa !5
  %6909 = add nsw i32 %6908, 1
  store i32 %6909, ptr @test_count, align 4, !tbaa !5
  %6910 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %50, ptr noundef nonnull %51) #12
  %6911 = icmp eq i32 %6910, -1
  br i1 %6911, label %6912, label %6934

6912:                                             ; preds = %6907
  %6913 = load i32, ptr %3104, align 4, !tbaa !5
  %6914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6915 = call i32 @s2n_print_stacktrace(ptr noundef %6914) #12
  %6916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6917 = trunc nuw i8 %6916 to i1
  br i1 %6917, label %6918, label %6922

6918:                                             ; preds = %6912
  %6919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6920 = call i32 @fileno(ptr noundef %6919) #12
  %6921 = call i32 @isatty(i32 noundef %6920) #12
  %.not1537 = icmp eq i32 %6921, 0
  br i1 %.not1537, label %6922, label %6923

6922:                                             ; preds = %6918, %6912
  br label %6923

6923:                                             ; preds = %6918, %6922
  %.str.7.sink4106 = phi ptr [ @.str.7, %6922 ], [ @.str.4, %6918 ]
  store i32 %6913, ptr %3104, align 4, !tbaa !5
  %6924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6925 = load i32, ptr @test_count, align 4, !tbaa !5
  %6926 = load i32, ptr %3050, align 4, !tbaa !5
  %6927 = call ptr @s2n_strerror(i32 noundef %6926, ptr noundef nonnull @.str.6) #12
  %6928 = load i32, ptr %3050, align 4, !tbaa !5
  %6929 = call ptr @s2n_strerror_debug(i32 noundef %6928, ptr noundef nonnull @.str.6) #12
  %6930 = load i32, ptr %3104, align 4, !tbaa !5
  %6931 = call ptr @strerror(i32 noundef %6930) #12
  %6932 = load i32, ptr %3104, align 4, !tbaa !5
  %6933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6924, ptr noundef nonnull %.str.7.sink4106, i32 noundef %6925, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.3, i32 noundef 665, ptr noundef %6927, ptr noundef %6929, ptr noundef %6931, i32 noundef %6932) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6934:                                             ; preds = %6907
  %6935 = load i32, ptr @test_count, align 4, !tbaa !5
  %6936 = add nsw i32 %6935, 1
  store i32 %6936, ptr @test_count, align 4, !tbaa !5
  %6937 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %49, ptr noundef nonnull %50) #12
  %6938 = icmp eq i32 %6937, -1
  br i1 %6938, label %6939, label %6961

6939:                                             ; preds = %6934
  %6940 = load i32, ptr %3104, align 4, !tbaa !5
  %6941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6942 = call i32 @s2n_print_stacktrace(ptr noundef %6941) #12
  %6943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6944 = trunc nuw i8 %6943 to i1
  br i1 %6944, label %6945, label %6949

6945:                                             ; preds = %6939
  %6946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6947 = call i32 @fileno(ptr noundef %6946) #12
  %6948 = call i32 @isatty(i32 noundef %6947) #12
  %.not1536 = icmp eq i32 %6948, 0
  br i1 %.not1536, label %6949, label %6950

6949:                                             ; preds = %6945, %6939
  br label %6950

6950:                                             ; preds = %6945, %6949
  %.str.7.sink4115 = phi ptr [ @.str.7, %6949 ], [ @.str.4, %6945 ]
  store i32 %6940, ptr %3104, align 4, !tbaa !5
  %6951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6952 = load i32, ptr @test_count, align 4, !tbaa !5
  %6953 = load i32, ptr %3050, align 4, !tbaa !5
  %6954 = call ptr @s2n_strerror(i32 noundef %6953, ptr noundef nonnull @.str.6) #12
  %6955 = load i32, ptr %3050, align 4, !tbaa !5
  %6956 = call ptr @s2n_strerror_debug(i32 noundef %6955, ptr noundef nonnull @.str.6) #12
  %6957 = load i32, ptr %3104, align 4, !tbaa !5
  %6958 = call ptr @strerror(i32 noundef %6957) #12
  %6959 = load i32, ptr %3104, align 4, !tbaa !5
  %6960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6951, ptr noundef nonnull %.str.7.sink4115, i32 noundef %6952, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.3, i32 noundef 666, ptr noundef %6954, ptr noundef %6956, ptr noundef %6958, i32 noundef %6959) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6961:                                             ; preds = %6934
  %6962 = load i32, ptr @test_count, align 4, !tbaa !5
  %6963 = add nsw i32 %6962, 1
  store i32 %6963, ptr @test_count, align 4, !tbaa !5
  %6964 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %6878, ptr noundef nonnull %50) #12
  %6965 = icmp eq i32 %6964, -1
  br i1 %6965, label %6966, label %6988

6966:                                             ; preds = %6961
  %6967 = load i32, ptr %3104, align 4, !tbaa !5
  %6968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6969 = call i32 @s2n_print_stacktrace(ptr noundef %6968) #12
  %6970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6971 = trunc nuw i8 %6970 to i1
  br i1 %6971, label %6972, label %6976

6972:                                             ; preds = %6966
  %6973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6974 = call i32 @fileno(ptr noundef %6973) #12
  %6975 = call i32 @isatty(i32 noundef %6974) #12
  %.not1535 = icmp eq i32 %6975, 0
  br i1 %.not1535, label %6976, label %6977

6976:                                             ; preds = %6972, %6966
  br label %6977

6977:                                             ; preds = %6972, %6976
  %.str.7.sink4124 = phi ptr [ @.str.7, %6976 ], [ @.str.4, %6972 ]
  store i32 %6967, ptr %3104, align 4, !tbaa !5
  %6978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6979 = load i32, ptr @test_count, align 4, !tbaa !5
  %6980 = load i32, ptr %3050, align 4, !tbaa !5
  %6981 = call ptr @s2n_strerror(i32 noundef %6980, ptr noundef nonnull @.str.6) #12
  %6982 = load i32, ptr %3050, align 4, !tbaa !5
  %6983 = call ptr @s2n_strerror_debug(i32 noundef %6982, ptr noundef nonnull @.str.6) #12
  %6984 = load i32, ptr %3104, align 4, !tbaa !5
  %6985 = call ptr @strerror(i32 noundef %6984) #12
  %6986 = load i32, ptr %3104, align 4, !tbaa !5
  %6987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6978, ptr noundef nonnull %.str.7.sink4124, i32 noundef %6979, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.3, i32 noundef 667, ptr noundef %6981, ptr noundef %6983, ptr noundef %6985, i32 noundef %6986) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6988:                                             ; preds = %6961
  %6989 = load i32, ptr @test_count, align 4, !tbaa !5
  %6990 = add nsw i32 %6989, 1
  store i32 %6990, ptr @test_count, align 4, !tbaa !5
  %6991 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %51) #12
  %6992 = icmp eq i32 %6991, -1
  br i1 %6992, label %6993, label %7015

6993:                                             ; preds = %6988
  %6994 = load i32, ptr %3104, align 4, !tbaa !5
  %6995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6996 = call i32 @s2n_print_stacktrace(ptr noundef %6995) #12
  %6997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6998 = trunc nuw i8 %6997 to i1
  br i1 %6998, label %6999, label %7003

6999:                                             ; preds = %6993
  %7000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7001 = call i32 @fileno(ptr noundef %7000) #12
  %7002 = call i32 @isatty(i32 noundef %7001) #12
  %.not1534 = icmp eq i32 %7002, 0
  br i1 %.not1534, label %7003, label %7004

7003:                                             ; preds = %6999, %6993
  br label %7004

7004:                                             ; preds = %6999, %7003
  %.str.7.sink4133 = phi ptr [ @.str.7, %7003 ], [ @.str.4, %6999 ]
  store i32 %6994, ptr %3104, align 4, !tbaa !5
  %7005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7006 = load i32, ptr @test_count, align 4, !tbaa !5
  %7007 = load i32, ptr %3050, align 4, !tbaa !5
  %7008 = call ptr @s2n_strerror(i32 noundef %7007, ptr noundef nonnull @.str.6) #12
  %7009 = load i32, ptr %3050, align 4, !tbaa !5
  %7010 = call ptr @s2n_strerror_debug(i32 noundef %7009, ptr noundef nonnull @.str.6) #12
  %7011 = load i32, ptr %3104, align 4, !tbaa !5
  %7012 = call ptr @strerror(i32 noundef %7011) #12
  %7013 = load i32, ptr %3104, align 4, !tbaa !5
  %7014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7005, ptr noundef nonnull %.str.7.sink4133, i32 noundef %7006, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.3, i32 noundef 668, ptr noundef %7008, ptr noundef %7010, ptr noundef %7012, i32 noundef %7013) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7015:                                             ; preds = %6988
  %7016 = load i32, ptr @test_count, align 4, !tbaa !5
  %7017 = add nsw i32 %7016, 1
  store i32 %7017, ptr @test_count, align 4, !tbaa !5
  %7018 = call i32 %2660(ptr noundef nonnull %6739, ptr noundef nonnull %50) #12
  %7019 = icmp eq i32 %7018, -1
  br i1 %7019, label %7020, label %7042

7020:                                             ; preds = %7015
  %7021 = load i32, ptr %3104, align 4, !tbaa !5
  %7022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7023 = call i32 @s2n_print_stacktrace(ptr noundef %7022) #12
  %7024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7025 = trunc nuw i8 %7024 to i1
  br i1 %7025, label %7026, label %7030

7026:                                             ; preds = %7020
  %7027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7028 = call i32 @fileno(ptr noundef %7027) #12
  %7029 = call i32 @isatty(i32 noundef %7028) #12
  %.not1533 = icmp eq i32 %7029, 0
  br i1 %.not1533, label %7030, label %7031

7030:                                             ; preds = %7026, %7020
  br label %7031

7031:                                             ; preds = %7026, %7030
  %.str.7.sink4142 = phi ptr [ @.str.7, %7030 ], [ @.str.4, %7026 ]
  store i32 %7021, ptr %3104, align 4, !tbaa !5
  %7032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7033 = load i32, ptr @test_count, align 4, !tbaa !5
  %7034 = load i32, ptr %3050, align 4, !tbaa !5
  %7035 = call ptr @s2n_strerror(i32 noundef %7034, ptr noundef nonnull @.str.6) #12
  %7036 = load i32, ptr %3050, align 4, !tbaa !5
  %7037 = call ptr @s2n_strerror_debug(i32 noundef %7036, ptr noundef nonnull @.str.6) #12
  %7038 = load i32, ptr %3104, align 4, !tbaa !5
  %7039 = call ptr @strerror(i32 noundef %7038) #12
  %7040 = load i32, ptr %3104, align 4, !tbaa !5
  %7041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7032, ptr noundef nonnull %.str.7.sink4142, i32 noundef %7033, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 670, ptr noundef %7035, ptr noundef %7037, ptr noundef %7039, i32 noundef %7040) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7042:                                             ; preds = %7015
  %7043 = load i32, ptr @test_count, align 4, !tbaa !5
  %7044 = add nsw i32 %7043, 1
  store i32 %7044, ptr @test_count, align 4, !tbaa !5
  %7045 = getelementptr inbounds i8, ptr %50, i64 28
  %7046 = load i32, ptr %7045, align 4, !tbaa !18
  %7047 = getelementptr inbounds i8, ptr %50, i64 24
  %7048 = load i32, ptr %7047, align 8, !tbaa !21
  %7049 = icmp eq i32 %7046, %7048
  br i1 %7049, label %7072, label %7050

7050:                                             ; preds = %7042
  %7051 = load i32, ptr %3104, align 4, !tbaa !5
  %7052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7053 = call i32 @s2n_print_stacktrace(ptr noundef %7052) #12
  %7054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7055 = trunc nuw i8 %7054 to i1
  br i1 %7055, label %7056, label %7060

7056:                                             ; preds = %7050
  %7057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7058 = call i32 @fileno(ptr noundef %7057) #12
  %7059 = call i32 @isatty(i32 noundef %7058) #12
  %.not1329 = icmp eq i32 %7059, 0
  br i1 %.not1329, label %7060, label %7061

7060:                                             ; preds = %7056, %7050
  br label %7061

7061:                                             ; preds = %7056, %7060
  %.str.7.sink4151 = phi ptr [ @.str.7, %7060 ], [ @.str.4, %7056 ]
  store i32 %7051, ptr %3104, align 4, !tbaa !5
  %7062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7063 = load i32, ptr @test_count, align 4, !tbaa !5
  %7064 = load i32, ptr %3050, align 4, !tbaa !5
  %7065 = call ptr @s2n_strerror(i32 noundef %7064, ptr noundef nonnull @.str.6) #12
  %7066 = load i32, ptr %3050, align 4, !tbaa !5
  %7067 = call ptr @s2n_strerror_debug(i32 noundef %7066, ptr noundef nonnull @.str.6) #12
  %7068 = load i32, ptr %3104, align 4, !tbaa !5
  %7069 = call ptr @strerror(i32 noundef %7068) #12
  %7070 = load i32, ptr %3104, align 4, !tbaa !5
  %7071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7062, ptr noundef nonnull %.str.7.sink4151, i32 noundef %7063, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 671, ptr noundef %7065, ptr noundef %7067, ptr noundef %7069, i32 noundef %7070) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7072:                                             ; preds = %7042
  %7073 = add nsw i32 %7043, 2
  store i32 %7073, ptr @test_count, align 4, !tbaa !5
  %7074 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %6739, i32 noundef 16) #12
  br i1 %7074, label %7075, label %7097

7075:                                             ; preds = %7072
  %7076 = load i32, ptr %3104, align 4, !tbaa !5
  %7077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7078 = call i32 @s2n_print_stacktrace(ptr noundef %7077) #12
  %7079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7080 = trunc nuw i8 %7079 to i1
  br i1 %7080, label %7081, label %7085

7081:                                             ; preds = %7075
  %7082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7083 = call i32 @fileno(ptr noundef %7082) #12
  %7084 = call i32 @isatty(i32 noundef %7083) #12
  %.not1532 = icmp eq i32 %7084, 0
  br i1 %.not1532, label %7085, label %7086

7085:                                             ; preds = %7081, %7075
  br label %7086

7086:                                             ; preds = %7081, %7085
  %.str.7.sink4160 = phi ptr [ @.str.7, %7085 ], [ @.str.4, %7081 ]
  store i32 %7076, ptr %3104, align 4, !tbaa !5
  %7087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7088 = load i32, ptr @test_count, align 4, !tbaa !5
  %7089 = load i32, ptr %3050, align 4, !tbaa !5
  %7090 = call ptr @s2n_strerror(i32 noundef %7089, ptr noundef nonnull @.str.6) #12
  %7091 = load i32, ptr %3050, align 4, !tbaa !5
  %7092 = call ptr @s2n_strerror_debug(i32 noundef %7091, ptr noundef nonnull @.str.6) #12
  %7093 = load i32, ptr %3104, align 4, !tbaa !5
  %7094 = call ptr @strerror(i32 noundef %7093) #12
  %7095 = load i32, ptr %3104, align 4, !tbaa !5
  %7096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7087, ptr noundef nonnull %.str.7.sink4160, i32 noundef %7088, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.3, i32 noundef 674, ptr noundef %7090, ptr noundef %7092, ptr noundef %7094, i32 noundef %7095) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7097:                                             ; preds = %7072
  %7098 = getelementptr inbounds i8, ptr %6739, i64 704
  %7099 = load i32, ptr @test_count, align 4, !tbaa !5
  %7100 = add nsw i32 %7099, 1
  store i32 %7100, ptr @test_count, align 4, !tbaa !5
  %7101 = load ptr, ptr %7098, align 8, !tbaa !22
  %7102 = load ptr, ptr %48, align 8, !tbaa !9
  %7103 = getelementptr inbounds i8, ptr %7102, i64 8
  %7104 = load ptr, ptr %7103, align 8, !tbaa !24
  %7105 = getelementptr inbounds i8, ptr %7104, i64 8
  %7106 = load ptr, ptr %7105, align 8, !tbaa !9
  %7107 = icmp eq ptr %7101, %7106
  br i1 %7107, label %7130, label %7108

7108:                                             ; preds = %7097
  %7109 = load i32, ptr %3104, align 4, !tbaa !5
  %7110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7111 = call i32 @s2n_print_stacktrace(ptr noundef %7110) #12
  %7112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7113 = trunc nuw i8 %7112 to i1
  br i1 %7113, label %7114, label %7118

7114:                                             ; preds = %7108
  %7115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7116 = call i32 @fileno(ptr noundef %7115) #12
  %7117 = call i32 @isatty(i32 noundef %7116) #12
  %.not1330 = icmp eq i32 %7117, 0
  br i1 %.not1330, label %7118, label %7119

7118:                                             ; preds = %7114, %7108
  br label %7119

7119:                                             ; preds = %7114, %7118
  %.str.7.sink4169 = phi ptr [ @.str.7, %7118 ], [ @.str.4, %7114 ]
  store i32 %7109, ptr %3104, align 4, !tbaa !5
  %7120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7121 = load i32, ptr @test_count, align 4, !tbaa !5
  %7122 = load i32, ptr %3050, align 4, !tbaa !5
  %7123 = call ptr @s2n_strerror(i32 noundef %7122, ptr noundef nonnull @.str.6) #12
  %7124 = load i32, ptr %3050, align 4, !tbaa !5
  %7125 = call ptr @s2n_strerror_debug(i32 noundef %7124, ptr noundef nonnull @.str.6) #12
  %7126 = load i32, ptr %3104, align 4, !tbaa !5
  %7127 = call ptr @strerror(i32 noundef %7126) #12
  %7128 = load i32, ptr %3104, align 4, !tbaa !5
  %7129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7120, ptr noundef nonnull %.str.7.sink4169, i32 noundef %7121, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.3, i32 noundef 678, ptr noundef %7123, ptr noundef %7125, ptr noundef %7127, i32 noundef %7128) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7130:                                             ; preds = %7097
  %7131 = add nsw i32 %7099, 2
  store i32 %7131, ptr @test_count, align 4, !tbaa !5
  %7132 = getelementptr inbounds i8, ptr %6739, i64 712
  %7133 = load ptr, ptr %7132, align 8, !tbaa !26
  %7134 = icmp eq ptr %7133, null
  br i1 %7134, label %7135, label %7157

7135:                                             ; preds = %7130
  %7136 = load i32, ptr %3104, align 4, !tbaa !5
  %7137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7138 = call i32 @s2n_print_stacktrace(ptr noundef %7137) #12
  %7139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7140 = trunc nuw i8 %7139 to i1
  br i1 %7140, label %7141, label %7145

7141:                                             ; preds = %7135
  %7142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7143 = call i32 @fileno(ptr noundef %7142) #12
  %7144 = call i32 @isatty(i32 noundef %7143) #12
  %.not1531 = icmp eq i32 %7144, 0
  br i1 %.not1531, label %7145, label %7146

7145:                                             ; preds = %7141, %7135
  br label %7146

7146:                                             ; preds = %7141, %7145
  %.str.7.sink4178 = phi ptr [ @.str.7, %7145 ], [ @.str.4, %7141 ]
  store i32 %7136, ptr %3104, align 4, !tbaa !5
  %7147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7148 = load i32, ptr @test_count, align 4, !tbaa !5
  %7149 = load i32, ptr %3050, align 4, !tbaa !5
  %7150 = call ptr @s2n_strerror(i32 noundef %7149, ptr noundef nonnull @.str.6) #12
  %7151 = load i32, ptr %3050, align 4, !tbaa !5
  %7152 = call ptr @s2n_strerror_debug(i32 noundef %7151, ptr noundef nonnull @.str.6) #12
  %7153 = load i32, ptr %3104, align 4, !tbaa !5
  %7154 = call ptr @strerror(i32 noundef %7153) #12
  %7155 = load i32, ptr %3104, align 4, !tbaa !5
  %7156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7147, ptr noundef nonnull %.str.7.sink4178, i32 noundef %7148, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.3, i32 noundef 679, ptr noundef %7150, ptr noundef %7152, ptr noundef %7154, i32 noundef %7155) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7157:                                             ; preds = %7130
  %7158 = add nsw i32 %7099, 3
  store i32 %7158, ptr @test_count, align 4, !tbaa !5
  %7159 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %7098, ptr noundef nonnull %6878) #12
  %.not1331 = icmp eq i32 %7159, 0
  br i1 %.not1331, label %7164, label %.preheader1730.preheader

.preheader1730.preheader:                         ; preds = %7157
  %7160 = load i32, ptr @test_count, align 4, !tbaa !5
  %7161 = add nsw i32 %7160, 1
  store i32 %7161, ptr @test_count, align 4, !tbaa !5
  %7162 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %49) #12
  %7163 = icmp eq i32 %7162, -1
  br i1 %7163, label %7195, label %.preheader1730.1

7164:                                             ; preds = %7157
  %7165 = load i32, ptr %3104, align 4, !tbaa !5
  %7166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7167 = call i32 @s2n_print_stacktrace(ptr noundef %7166) #12
  %7168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7169 = trunc nuw i8 %7168 to i1
  br i1 %7169, label %7170, label %7174

7170:                                             ; preds = %7164
  %7171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7172 = call i32 @fileno(ptr noundef %7171) #12
  %7173 = call i32 @isatty(i32 noundef %7172) #12
  %.not1332 = icmp eq i32 %7173, 0
  br i1 %.not1332, label %7174, label %7175

7174:                                             ; preds = %7170, %7164
  br label %7175

7175:                                             ; preds = %7170, %7174
  %.str.7.sink4187 = phi ptr [ @.str.7, %7174 ], [ @.str.4, %7170 ]
  store i32 %7165, ptr %3104, align 4, !tbaa !5
  %7176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7177 = load i32, ptr @test_count, align 4, !tbaa !5
  %7178 = load i32, ptr %3050, align 4, !tbaa !5
  %7179 = call ptr @s2n_strerror(i32 noundef %7178, ptr noundef nonnull @.str.6) #12
  %7180 = load i32, ptr %3050, align 4, !tbaa !5
  %7181 = call ptr @s2n_strerror_debug(i32 noundef %7180, ptr noundef nonnull @.str.6) #12
  %7182 = load i32, ptr %3104, align 4, !tbaa !5
  %7183 = call ptr @strerror(i32 noundef %7182) #12
  %7184 = load i32, ptr %3104, align 4, !tbaa !5
  %7185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7176, ptr noundef nonnull %.str.7.sink4187, i32 noundef %7177, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.3, i32 noundef 680, ptr noundef %7179, ptr noundef %7181, ptr noundef %7183, i32 noundef %7184) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader1730.1:                                 ; preds = %.preheader1730.preheader
  %7186 = load i32, ptr @test_count, align 4, !tbaa !5
  %7187 = add nsw i32 %7186, 1
  store i32 %7187, ptr @test_count, align 4, !tbaa !5
  %7188 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %6878) #12
  %7189 = icmp eq i32 %7188, -1
  br i1 %7189, label %7195, label %7190

7190:                                             ; preds = %.preheader1730.1
  %7191 = load i32, ptr @test_count, align 4, !tbaa !5
  %7192 = add nsw i32 %7191, 1
  store i32 %7192, ptr @test_count, align 4, !tbaa !5
  %7193 = call i32 @s2n_stuffer_free(ptr noundef nonnull %50) #12
  %7194 = icmp eq i32 %7193, -1
  br i1 %7194, label %7217, label %7239

7195:                                             ; preds = %.preheader1730.1, %.preheader1730.preheader
  %7196 = load i32, ptr %3104, align 4, !tbaa !5
  %7197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7198 = call i32 @s2n_print_stacktrace(ptr noundef %7197) #12
  %7199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7200 = trunc nuw i8 %7199 to i1
  br i1 %7200, label %7201, label %7205

7201:                                             ; preds = %7195
  %7202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7203 = call i32 @fileno(ptr noundef %7202) #12
  %7204 = call i32 @isatty(i32 noundef %7203) #12
  %.not1530 = icmp eq i32 %7204, 0
  br i1 %.not1530, label %7205, label %7206

7205:                                             ; preds = %7201, %7195
  br label %7206

7206:                                             ; preds = %7201, %7205
  %.str.7.sink4196 = phi ptr [ @.str.7, %7205 ], [ @.str.4, %7201 ]
  store i32 %7196, ptr %3104, align 4, !tbaa !5
  %7207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7208 = load i32, ptr @test_count, align 4, !tbaa !5
  %7209 = load i32, ptr %3050, align 4, !tbaa !5
  %7210 = call ptr @s2n_strerror(i32 noundef %7209, ptr noundef nonnull @.str.6) #12
  %7211 = load i32, ptr %3050, align 4, !tbaa !5
  %7212 = call ptr @s2n_strerror_debug(i32 noundef %7211, ptr noundef nonnull @.str.6) #12
  %7213 = load i32, ptr %3104, align 4, !tbaa !5
  %7214 = call ptr @strerror(i32 noundef %7213) #12
  %7215 = load i32, ptr %3104, align 4, !tbaa !5
  %7216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7207, ptr noundef nonnull %.str.7.sink4196, i32 noundef %7208, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.3, i32 noundef 683, ptr noundef %7210, ptr noundef %7212, ptr noundef %7214, i32 noundef %7215) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7217:                                             ; preds = %7190
  %7218 = load i32, ptr %3104, align 4, !tbaa !5
  %7219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7220 = call i32 @s2n_print_stacktrace(ptr noundef %7219) #12
  %7221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7222 = trunc nuw i8 %7221 to i1
  br i1 %7222, label %7223, label %7227

7223:                                             ; preds = %7217
  %7224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7225 = call i32 @fileno(ptr noundef %7224) #12
  %7226 = call i32 @isatty(i32 noundef %7225) #12
  %.not1529 = icmp eq i32 %7226, 0
  br i1 %.not1529, label %7227, label %7228

7227:                                             ; preds = %7223, %7217
  br label %7228

7228:                                             ; preds = %7223, %7227
  %.str.7.sink4205 = phi ptr [ @.str.7, %7227 ], [ @.str.4, %7223 ]
  store i32 %7218, ptr %3104, align 4, !tbaa !5
  %7229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7230 = load i32, ptr @test_count, align 4, !tbaa !5
  %7231 = load i32, ptr %3050, align 4, !tbaa !5
  %7232 = call ptr @s2n_strerror(i32 noundef %7231, ptr noundef nonnull @.str.6) #12
  %7233 = load i32, ptr %3050, align 4, !tbaa !5
  %7234 = call ptr @s2n_strerror_debug(i32 noundef %7233, ptr noundef nonnull @.str.6) #12
  %7235 = load i32, ptr %3104, align 4, !tbaa !5
  %7236 = call ptr @strerror(i32 noundef %7235) #12
  %7237 = load i32, ptr %3104, align 4, !tbaa !5
  %7238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7229, ptr noundef nonnull %.str.7.sink4205, i32 noundef %7230, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 685, ptr noundef %7232, ptr noundef %7234, ptr noundef %7236, i32 noundef %7237) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7239:                                             ; preds = %7190
  %7240 = load i32, ptr @test_count, align 4, !tbaa !5
  %7241 = add nsw i32 %7240, 1
  store i32 %7241, ptr @test_count, align 4, !tbaa !5
  %7242 = call i32 @s2n_connection_free(ptr noundef nonnull %6739) #12
  %7243 = icmp eq i32 %7242, -1
  br i1 %7243, label %7244, label %7266

7244:                                             ; preds = %7239
  %7245 = load i32, ptr %3104, align 4, !tbaa !5
  %7246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7247 = call i32 @s2n_print_stacktrace(ptr noundef %7246) #12
  %7248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7249 = trunc nuw i8 %7248 to i1
  br i1 %7249, label %7250, label %7254

7250:                                             ; preds = %7244
  %7251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7252 = call i32 @fileno(ptr noundef %7251) #12
  %7253 = call i32 @isatty(i32 noundef %7252) #12
  %.not1528 = icmp eq i32 %7253, 0
  br i1 %.not1528, label %7254, label %7255

7254:                                             ; preds = %7250, %7244
  br label %7255

7255:                                             ; preds = %7250, %7254
  %.str.7.sink4214 = phi ptr [ @.str.7, %7254 ], [ @.str.4, %7250 ]
  store i32 %7245, ptr %3104, align 4, !tbaa !5
  %7256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7257 = load i32, ptr @test_count, align 4, !tbaa !5
  %7258 = load i32, ptr %3050, align 4, !tbaa !5
  %7259 = call ptr @s2n_strerror(i32 noundef %7258, ptr noundef nonnull @.str.6) #12
  %7260 = load i32, ptr %3050, align 4, !tbaa !5
  %7261 = call ptr @s2n_strerror_debug(i32 noundef %7260, ptr noundef nonnull @.str.6) #12
  %7262 = load i32, ptr %3104, align 4, !tbaa !5
  %7263 = call ptr @strerror(i32 noundef %7262) #12
  %7264 = load i32, ptr %3104, align 4, !tbaa !5
  %7265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7256, ptr noundef nonnull %.str.7.sink4214, i32 noundef %7257, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 686, ptr noundef %7259, ptr noundef %7261, ptr noundef %7263, i32 noundef %7264) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7266:                                             ; preds = %7239
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %52) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %52, i8 0, i64 40, i1 false)
  %7267 = load i32, ptr @test_count, align 4, !tbaa !5
  %7268 = add nsw i32 %7267, 1
  store i32 %7268, ptr @test_count, align 4, !tbaa !5
  %7269 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %7270 = icmp eq ptr %7269, null
  br i1 %7270, label %7271, label %7293

7271:                                             ; preds = %7266
  %7272 = load i32, ptr %3104, align 4, !tbaa !5
  %7273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7274 = call i32 @s2n_print_stacktrace(ptr noundef %7273) #12
  %7275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7276 = trunc nuw i8 %7275 to i1
  br i1 %7276, label %7277, label %7281

7277:                                             ; preds = %7271
  %7278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7279 = call i32 @fileno(ptr noundef %7278) #12
  %7280 = call i32 @isatty(i32 noundef %7279) #12
  %.not1527 = icmp eq i32 %7280, 0
  br i1 %.not1527, label %7281, label %7282

7281:                                             ; preds = %7277, %7271
  br label %7282

7282:                                             ; preds = %7277, %7281
  %.str.7.sink4223 = phi ptr [ @.str.7, %7281 ], [ @.str.4, %7277 ]
  store i32 %7272, ptr %3104, align 4, !tbaa !5
  %7283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7284 = load i32, ptr @test_count, align 4, !tbaa !5
  %7285 = load i32, ptr %3050, align 4, !tbaa !5
  %7286 = call ptr @s2n_strerror(i32 noundef %7285, ptr noundef nonnull @.str.6) #12
  %7287 = load i32, ptr %3050, align 4, !tbaa !5
  %7288 = call ptr @s2n_strerror_debug(i32 noundef %7287, ptr noundef nonnull @.str.6) #12
  %7289 = load i32, ptr %3104, align 4, !tbaa !5
  %7290 = call ptr @strerror(i32 noundef %7289) #12
  %7291 = load i32, ptr %3104, align 4, !tbaa !5
  %7292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7283, ptr noundef nonnull %.str.7.sink4223, i32 noundef %7284, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.3, i32 noundef 694, ptr noundef %7286, ptr noundef %7288, ptr noundef %7290, i32 noundef %7291) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7293:                                             ; preds = %7266
  %7294 = getelementptr inbounds i8, ptr %7269, i64 220
  store i8 34, ptr %7294, align 4, !tbaa !63
  %7295 = load i32, ptr @test_count, align 4, !tbaa !5
  %7296 = add nsw i32 %7295, 1
  store i32 %7296, ptr @test_count, align 4, !tbaa !5
  %7297 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %7269) #12
  %7298 = call zeroext i1 @s2n_result_is_ok(i32 %7297)
  br i1 %7298, label %7321, label %7299

7299:                                             ; preds = %7293
  %7300 = load i32, ptr %3104, align 4, !tbaa !5
  %7301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7302 = call i32 @s2n_print_stacktrace(ptr noundef %7301) #12
  %7303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7304 = trunc nuw i8 %7303 to i1
  br i1 %7304, label %7305, label %7309

7305:                                             ; preds = %7299
  %7306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7307 = call i32 @fileno(ptr noundef %7306) #12
  %7308 = call i32 @isatty(i32 noundef %7307) #12
  %.not1333 = icmp eq i32 %7308, 0
  br i1 %.not1333, label %7309, label %7310

7309:                                             ; preds = %7305, %7299
  br label %7310

7310:                                             ; preds = %7305, %7309
  %.str.7.sink4232 = phi ptr [ @.str.7, %7309 ], [ @.str.4, %7305 ]
  store i32 %7300, ptr %3104, align 4, !tbaa !5
  %7311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7312 = load i32, ptr @test_count, align 4, !tbaa !5
  %7313 = load i32, ptr %3050, align 4, !tbaa !5
  %7314 = call ptr @s2n_strerror(i32 noundef %7313, ptr noundef nonnull @.str.6) #12
  %7315 = load i32, ptr %3050, align 4, !tbaa !5
  %7316 = call ptr @s2n_strerror_debug(i32 noundef %7315, ptr noundef nonnull @.str.6) #12
  %7317 = load i32, ptr %3104, align 4, !tbaa !5
  %7318 = call ptr @strerror(i32 noundef %7317) #12
  %7319 = load i32, ptr %3104, align 4, !tbaa !5
  %7320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7311, ptr noundef nonnull %.str.7.sink4232, i32 noundef %7312, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.3, i32 noundef 696, ptr noundef %7314, ptr noundef %7316, ptr noundef %7318, i32 noundef %7319) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7321:                                             ; preds = %7293
  %7322 = load i32, ptr @test_count, align 4, !tbaa !5
  %7323 = add nsw i32 %7322, 1
  store i32 %7323, ptr @test_count, align 4, !tbaa !5
  %7324 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %52, i32 noundef 0) #12
  %7325 = icmp eq i32 %7324, -1
  br i1 %7325, label %7326, label %7348

7326:                                             ; preds = %7321
  %7327 = load i32, ptr %3104, align 4, !tbaa !5
  %7328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7329 = call i32 @s2n_print_stacktrace(ptr noundef %7328) #12
  %7330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7331 = trunc nuw i8 %7330 to i1
  br i1 %7331, label %7332, label %7336

7332:                                             ; preds = %7326
  %7333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7334 = call i32 @fileno(ptr noundef %7333) #12
  %7335 = call i32 @isatty(i32 noundef %7334) #12
  %.not1526 = icmp eq i32 %7335, 0
  br i1 %.not1526, label %7336, label %7337

7336:                                             ; preds = %7332, %7326
  br label %7337

7337:                                             ; preds = %7332, %7336
  %.str.7.sink4241 = phi ptr [ @.str.7, %7336 ], [ @.str.4, %7332 ]
  store i32 %7327, ptr %3104, align 4, !tbaa !5
  %7338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7339 = load i32, ptr @test_count, align 4, !tbaa !5
  %7340 = load i32, ptr %3050, align 4, !tbaa !5
  %7341 = call ptr @s2n_strerror(i32 noundef %7340, ptr noundef nonnull @.str.6) #12
  %7342 = load i32, ptr %3050, align 4, !tbaa !5
  %7343 = call ptr @s2n_strerror_debug(i32 noundef %7342, ptr noundef nonnull @.str.6) #12
  %7344 = load i32, ptr %3104, align 4, !tbaa !5
  %7345 = call ptr @strerror(i32 noundef %7344) #12
  %7346 = load i32, ptr %3104, align 4, !tbaa !5
  %7347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7338, ptr noundef nonnull %.str.7.sink4241, i32 noundef %7339, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 697, ptr noundef %7341, ptr noundef %7343, ptr noundef %7345, i32 noundef %7346) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7348:                                             ; preds = %7321
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #12
  store ptr null, ptr %53, align 8, !tbaa !9
  %7349 = load i32, ptr @test_count, align 4, !tbaa !5
  %7350 = add nsw i32 %7349, 1
  store i32 %7350, ptr @test_count, align 4, !tbaa !5
  %7351 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %7269, ptr noundef nonnull %53) #12
  %7352 = icmp eq i32 %7351, -1
  br i1 %7352, label %7353, label %7375

7353:                                             ; preds = %7348
  %7354 = load i32, ptr %3104, align 4, !tbaa !5
  %7355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7356 = call i32 @s2n_print_stacktrace(ptr noundef %7355) #12
  %7357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7358 = trunc nuw i8 %7357 to i1
  br i1 %7358, label %7359, label %7363

7359:                                             ; preds = %7353
  %7360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7361 = call i32 @fileno(ptr noundef %7360) #12
  %7362 = call i32 @isatty(i32 noundef %7361) #12
  %.not1525 = icmp eq i32 %7362, 0
  br i1 %.not1525, label %7363, label %7364

7363:                                             ; preds = %7359, %7353
  br label %7364

7364:                                             ; preds = %7359, %7363
  %.str.7.sink4250 = phi ptr [ @.str.7, %7363 ], [ @.str.4, %7359 ]
  store i32 %7354, ptr %3104, align 4, !tbaa !5
  %7365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7366 = load i32, ptr @test_count, align 4, !tbaa !5
  %7367 = load i32, ptr %3050, align 4, !tbaa !5
  %7368 = call ptr @s2n_strerror(i32 noundef %7367, ptr noundef nonnull @.str.6) #12
  %7369 = load i32, ptr %3050, align 4, !tbaa !5
  %7370 = call ptr @s2n_strerror_debug(i32 noundef %7369, ptr noundef nonnull @.str.6) #12
  %7371 = load i32, ptr %3104, align 4, !tbaa !5
  %7372 = call ptr @strerror(i32 noundef %7371) #12
  %7373 = load i32, ptr %3104, align 4, !tbaa !5
  %7374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7365, ptr noundef nonnull %.str.7.sink4250, i32 noundef %7366, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.3, i32 noundef 700, ptr noundef %7368, ptr noundef %7370, ptr noundef %7372, i32 noundef %7373) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7375:                                             ; preds = %7348
  %7376 = load i32, ptr @test_count, align 4, !tbaa !5
  %7377 = add nsw i32 %7376, 1
  store i32 %7377, ptr @test_count, align 4, !tbaa !5
  %7378 = load ptr, ptr %53, align 8, !tbaa !9
  %7379 = icmp eq ptr %7378, null
  br i1 %7379, label %7380, label %7402

7380:                                             ; preds = %7375
  %7381 = load i32, ptr %3104, align 4, !tbaa !5
  %7382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7383 = call i32 @s2n_print_stacktrace(ptr noundef %7382) #12
  %7384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7385 = trunc nuw i8 %7384 to i1
  br i1 %7385, label %7386, label %7390

7386:                                             ; preds = %7380
  %7387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7388 = call i32 @fileno(ptr noundef %7387) #12
  %7389 = call i32 @isatty(i32 noundef %7388) #12
  %.not1524 = icmp eq i32 %7389, 0
  br i1 %.not1524, label %7390, label %7391

7390:                                             ; preds = %7386, %7380
  br label %7391

7391:                                             ; preds = %7386, %7390
  %.str.7.sink4259 = phi ptr [ @.str.7, %7390 ], [ @.str.4, %7386 ]
  store i32 %7381, ptr %3104, align 4, !tbaa !5
  %7392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7393 = load i32, ptr @test_count, align 4, !tbaa !5
  %7394 = load i32, ptr %3050, align 4, !tbaa !5
  %7395 = call ptr @s2n_strerror(i32 noundef %7394, ptr noundef nonnull @.str.6) #12
  %7396 = load i32, ptr %3050, align 4, !tbaa !5
  %7397 = call ptr @s2n_strerror_debug(i32 noundef %7396, ptr noundef nonnull @.str.6) #12
  %7398 = load i32, ptr %3104, align 4, !tbaa !5
  %7399 = call ptr @strerror(i32 noundef %7398) #12
  %7400 = load i32, ptr %3104, align 4, !tbaa !5
  %7401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7392, ptr noundef nonnull %.str.7.sink4259, i32 noundef %7393, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 701, ptr noundef %7395, ptr noundef %7397, ptr noundef %7399, i32 noundef %7400) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7402:                                             ; preds = %7375
  %7403 = add nsw i32 %7376, 2
  store i32 %7403, ptr @test_count, align 4, !tbaa !5
  %7404 = getelementptr inbounds i8, ptr %7378, i64 8
  %7405 = load ptr, ptr %7404, align 8, !tbaa !24
  %7406 = load ptr, ptr %7405, align 8, !tbaa !9
  %7407 = getelementptr inbounds i8, ptr %7406, i64 16
  %7408 = load i8, ptr %7407, align 8, !tbaa !30
  %7409 = zext i8 %7408 to i16
  %7410 = mul nuw nsw i16 %7409, 10
  %7411 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %52, i16 noundef zeroext %7410) #12
  %7412 = icmp eq i32 %7411, -1
  br i1 %7412, label %7413, label %7435

7413:                                             ; preds = %7402
  %7414 = load i32, ptr %3104, align 4, !tbaa !5
  %7415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7416 = call i32 @s2n_print_stacktrace(ptr noundef %7415) #12
  %7417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7418 = trunc nuw i8 %7417 to i1
  br i1 %7418, label %7419, label %7423

7419:                                             ; preds = %7413
  %7420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7421 = call i32 @fileno(ptr noundef %7420) #12
  %7422 = call i32 @isatty(i32 noundef %7421) #12
  %.not1523 = icmp eq i32 %7422, 0
  br i1 %.not1523, label %7423, label %7424

7423:                                             ; preds = %7419, %7413
  br label %7424

7424:                                             ; preds = %7419, %7423
  %.str.7.sink4268 = phi ptr [ @.str.7, %7423 ], [ @.str.4, %7419 ]
  store i32 %7414, ptr %3104, align 4, !tbaa !5
  %7425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7426 = load i32, ptr @test_count, align 4, !tbaa !5
  %7427 = load i32, ptr %3050, align 4, !tbaa !5
  %7428 = call ptr @s2n_strerror(i32 noundef %7427, ptr noundef nonnull @.str.6) #12
  %7429 = load i32, ptr %3050, align 4, !tbaa !5
  %7430 = call ptr @s2n_strerror_debug(i32 noundef %7429, ptr noundef nonnull @.str.6) #12
  %7431 = load i32, ptr %3104, align 4, !tbaa !5
  %7432 = call ptr @strerror(i32 noundef %7431) #12
  %7433 = load i32, ptr %3104, align 4, !tbaa !5
  %7434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7425, ptr noundef nonnull %.str.7.sink4268, i32 noundef %7426, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.3, i32 noundef 703, ptr noundef %7428, ptr noundef %7430, ptr noundef %7432, i32 noundef %7433) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7435:                                             ; preds = %7402
  %7436 = load i32, ptr @test_count, align 4, !tbaa !5
  %7437 = add nsw i32 %7436, 1
  store i32 %7437, ptr @test_count, align 4, !tbaa !5
  %7438 = load ptr, ptr %53, align 8, !tbaa !9
  %7439 = getelementptr inbounds i8, ptr %7438, i64 8
  %7440 = load ptr, ptr %7439, align 8, !tbaa !24
  %7441 = load ptr, ptr %7440, align 8, !tbaa !9
  %7442 = call i32 @s2n_write_named_curve(ptr noundef nonnull %52, ptr noundef %7441)
  %7443 = icmp eq i32 %7442, -1
  br i1 %7443, label %7444, label %7466

7444:                                             ; preds = %7435
  %7445 = load i32, ptr %3104, align 4, !tbaa !5
  %7446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7447 = call i32 @s2n_print_stacktrace(ptr noundef %7446) #12
  %7448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7449 = trunc nuw i8 %7448 to i1
  br i1 %7449, label %7450, label %7454

7450:                                             ; preds = %7444
  %7451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7452 = call i32 @fileno(ptr noundef %7451) #12
  %7453 = call i32 @isatty(i32 noundef %7452) #12
  %.not1522 = icmp eq i32 %7453, 0
  br i1 %.not1522, label %7454, label %7455

7454:                                             ; preds = %7450, %7444
  br label %7455

7455:                                             ; preds = %7450, %7454
  %.str.7.sink4277 = phi ptr [ @.str.7, %7454 ], [ @.str.4, %7450 ]
  store i32 %7445, ptr %3104, align 4, !tbaa !5
  %7456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7457 = load i32, ptr @test_count, align 4, !tbaa !5
  %7458 = load i32, ptr %3050, align 4, !tbaa !5
  %7459 = call ptr @s2n_strerror(i32 noundef %7458, ptr noundef nonnull @.str.6) #12
  %7460 = load i32, ptr %3050, align 4, !tbaa !5
  %7461 = call ptr @s2n_strerror_debug(i32 noundef %7460, ptr noundef nonnull @.str.6) #12
  %7462 = load i32, ptr %3104, align 4, !tbaa !5
  %7463 = call ptr @strerror(i32 noundef %7462) #12
  %7464 = load i32, ptr %3104, align 4, !tbaa !5
  %7465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7456, ptr noundef nonnull %.str.7.sink4277, i32 noundef %7457, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.3, i32 noundef 704, ptr noundef %7459, ptr noundef %7461, ptr noundef %7463, i32 noundef %7464) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7466:                                             ; preds = %7435
  %7467 = load i32, ptr @test_count, align 4, !tbaa !5
  %7468 = add nsw i32 %7467, 1
  store i32 %7468, ptr @test_count, align 4, !tbaa !5
  %7469 = call i32 %2660(ptr noundef nonnull %7269, ptr noundef nonnull %52) #12
  %7470 = icmp eq i32 %7469, -1
  br i1 %7470, label %7493, label %7471

7471:                                             ; preds = %7466
  %7472 = load i32, ptr %3104, align 4, !tbaa !5
  %7473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7474 = call i32 @s2n_print_stacktrace(ptr noundef %7473) #12
  %7475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7476 = trunc nuw i8 %7475 to i1
  br i1 %7476, label %7477, label %7481

7477:                                             ; preds = %7471
  %7478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7479 = call i32 @fileno(ptr noundef %7478) #12
  %7480 = call i32 @isatty(i32 noundef %7479) #12
  %.not1334 = icmp eq i32 %7480, 0
  br i1 %.not1334, label %7481, label %7482

7481:                                             ; preds = %7477, %7471
  br label %7482

7482:                                             ; preds = %7477, %7481
  %.str.7.sink4286 = phi ptr [ @.str.7, %7481 ], [ @.str.4, %7477 ]
  store i32 %7472, ptr %3104, align 4, !tbaa !5
  %7483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7484 = load i32, ptr @test_count, align 4, !tbaa !5
  %7485 = load i32, ptr %3050, align 4, !tbaa !5
  %7486 = call ptr @s2n_strerror(i32 noundef %7485, ptr noundef nonnull @.str.6) #12
  %7487 = load i32, ptr %3050, align 4, !tbaa !5
  %7488 = call ptr @s2n_strerror_debug(i32 noundef %7487, ptr noundef nonnull @.str.6) #12
  %7489 = load i32, ptr %3104, align 4, !tbaa !5
  %7490 = call ptr @strerror(i32 noundef %7489) #12
  %7491 = load i32, ptr %3104, align 4, !tbaa !5
  %7492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7483, ptr noundef nonnull %.str.7.sink4286, i32 noundef %7484, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.3, i32 noundef 706, ptr noundef %7486, ptr noundef %7488, ptr noundef %7490, i32 noundef %7491) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7493:                                             ; preds = %7466
  %7494 = load i32, ptr @test_count, align 4, !tbaa !5
  %7495 = add nsw i32 %7494, 1
  store i32 %7495, ptr @test_count, align 4, !tbaa !5
  %7496 = load i32, ptr %3050, align 4, !tbaa !5
  %7497 = icmp eq i32 %7496, 0
  br i1 %7497, label %7498, label %7520

7498:                                             ; preds = %7493
  %7499 = load i32, ptr %3104, align 4, !tbaa !5
  %7500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7501 = call i32 @s2n_print_stacktrace(ptr noundef %7500) #12
  %7502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7503 = trunc nuw i8 %7502 to i1
  br i1 %7503, label %7504, label %7508

7504:                                             ; preds = %7498
  %7505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7506 = call i32 @fileno(ptr noundef %7505) #12
  %7507 = call i32 @isatty(i32 noundef %7506) #12
  %.not1521 = icmp eq i32 %7507, 0
  br i1 %.not1521, label %7508, label %7509

7508:                                             ; preds = %7504, %7498
  br label %7509

7509:                                             ; preds = %7504, %7508
  %.str.7.sink4295 = phi ptr [ @.str.7, %7508 ], [ @.str.4, %7504 ]
  store i32 %7499, ptr %3104, align 4, !tbaa !5
  %7510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7511 = load i32, ptr @test_count, align 4, !tbaa !5
  %7512 = load i32, ptr %3050, align 4, !tbaa !5
  %7513 = call ptr @s2n_strerror(i32 noundef %7512, ptr noundef nonnull @.str.6) #12
  %7514 = load i32, ptr %3050, align 4, !tbaa !5
  %7515 = call ptr @s2n_strerror_debug(i32 noundef %7514, ptr noundef nonnull @.str.6) #12
  %7516 = load i32, ptr %3104, align 4, !tbaa !5
  %7517 = call ptr @strerror(i32 noundef %7516) #12
  %7518 = load i32, ptr %3104, align 4, !tbaa !5
  %7519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7510, ptr noundef nonnull %.str.7.sink4295, i32 noundef %7511, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.3, i32 noundef 706, ptr noundef %7513, ptr noundef %7515, ptr noundef %7517, i32 noundef %7518) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7520:                                             ; preds = %7493
  %7521 = add nsw i32 %7494, 2
  store i32 %7521, ptr @test_count, align 4, !tbaa !5
  %7522 = call ptr @s2n_strerror_debug(i32 noundef %7496, ptr noundef nonnull @.str.6) #12
  %7523 = icmp eq ptr %7522, null
  br i1 %7523, label %7524, label %7546

7524:                                             ; preds = %7520
  %7525 = load i32, ptr %3104, align 4, !tbaa !5
  %7526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7527 = call i32 @s2n_print_stacktrace(ptr noundef %7526) #12
  %7528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7529 = trunc nuw i8 %7528 to i1
  br i1 %7529, label %7530, label %7534

7530:                                             ; preds = %7524
  %7531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7532 = call i32 @fileno(ptr noundef %7531) #12
  %7533 = call i32 @isatty(i32 noundef %7532) #12
  %.not1520 = icmp eq i32 %7533, 0
  br i1 %.not1520, label %7534, label %7535

7534:                                             ; preds = %7530, %7524
  br label %7535

7535:                                             ; preds = %7530, %7534
  %.str.7.sink4304 = phi ptr [ @.str.7, %7534 ], [ @.str.4, %7530 ]
  store i32 %7525, ptr %3104, align 4, !tbaa !5
  %7536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7537 = load i32, ptr @test_count, align 4, !tbaa !5
  %7538 = load i32, ptr %3050, align 4, !tbaa !5
  %7539 = call ptr @s2n_strerror(i32 noundef %7538, ptr noundef nonnull @.str.6) #12
  %7540 = load i32, ptr %3050, align 4, !tbaa !5
  %7541 = call ptr @s2n_strerror_debug(i32 noundef %7540, ptr noundef nonnull @.str.6) #12
  %7542 = load i32, ptr %3104, align 4, !tbaa !5
  %7543 = call ptr @strerror(i32 noundef %7542) #12
  %7544 = load i32, ptr %3104, align 4, !tbaa !5
  %7545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7536, ptr noundef nonnull %.str.7.sink4304, i32 noundef %7537, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.3, i32 noundef 706, ptr noundef %7539, ptr noundef %7541, ptr noundef %7543, i32 noundef %7544) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7546:                                             ; preds = %7520
  store i32 0, ptr %3050, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %3104, align 4, !tbaa !5
  %7547 = load i32, ptr @test_count, align 4, !tbaa !5
  %7548 = add nsw i32 %7547, 1
  store i32 %7548, ptr @test_count, align 4, !tbaa !5
  %7549 = call i32 @s2n_stuffer_free(ptr noundef nonnull %52) #12
  %7550 = icmp eq i32 %7549, -1
  br i1 %7550, label %7551, label %7573

7551:                                             ; preds = %7546
  %7552 = load i32, ptr %3104, align 4, !tbaa !5
  %7553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7554 = call i32 @s2n_print_stacktrace(ptr noundef %7553) #12
  %7555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7556 = trunc nuw i8 %7555 to i1
  br i1 %7556, label %7557, label %7561

7557:                                             ; preds = %7551
  %7558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7559 = call i32 @fileno(ptr noundef %7558) #12
  %7560 = call i32 @isatty(i32 noundef %7559) #12
  %.not1519 = icmp eq i32 %7560, 0
  br i1 %.not1519, label %7561, label %7562

7561:                                             ; preds = %7557, %7551
  br label %7562

7562:                                             ; preds = %7557, %7561
  %.str.7.sink4313 = phi ptr [ @.str.7, %7561 ], [ @.str.4, %7557 ]
  store i32 %7552, ptr %3104, align 4, !tbaa !5
  %7563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7564 = load i32, ptr @test_count, align 4, !tbaa !5
  %7565 = load i32, ptr %3050, align 4, !tbaa !5
  %7566 = call ptr @s2n_strerror(i32 noundef %7565, ptr noundef nonnull @.str.6) #12
  %7567 = load i32, ptr %3050, align 4, !tbaa !5
  %7568 = call ptr @s2n_strerror_debug(i32 noundef %7567, ptr noundef nonnull @.str.6) #12
  %7569 = load i32, ptr %3104, align 4, !tbaa !5
  %7570 = call ptr @strerror(i32 noundef %7569) #12
  %7571 = load i32, ptr %3104, align 4, !tbaa !5
  %7572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7563, ptr noundef nonnull %.str.7.sink4313, i32 noundef %7564, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 708, ptr noundef %7566, ptr noundef %7568, ptr noundef %7570, i32 noundef %7571) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7573:                                             ; preds = %7546
  %7574 = load i32, ptr @test_count, align 4, !tbaa !5
  %7575 = add nsw i32 %7574, 1
  store i32 %7575, ptr @test_count, align 4, !tbaa !5
  %7576 = call i32 @s2n_connection_free(ptr noundef nonnull %7269) #12
  %7577 = icmp eq i32 %7576, -1
  br i1 %7577, label %7578, label %7600

7578:                                             ; preds = %7573
  %7579 = load i32, ptr %3104, align 4, !tbaa !5
  %7580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7581 = call i32 @s2n_print_stacktrace(ptr noundef %7580) #12
  %7582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7583 = trunc nuw i8 %7582 to i1
  br i1 %7583, label %7584, label %7588

7584:                                             ; preds = %7578
  %7585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7586 = call i32 @fileno(ptr noundef %7585) #12
  %7587 = call i32 @isatty(i32 noundef %7586) #12
  %.not1518 = icmp eq i32 %7587, 0
  br i1 %.not1518, label %7588, label %7589

7588:                                             ; preds = %7584, %7578
  br label %7589

7589:                                             ; preds = %7584, %7588
  %.str.7.sink4322 = phi ptr [ @.str.7, %7588 ], [ @.str.4, %7584 ]
  store i32 %7579, ptr %3104, align 4, !tbaa !5
  %7590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7591 = load i32, ptr @test_count, align 4, !tbaa !5
  %7592 = load i32, ptr %3050, align 4, !tbaa !5
  %7593 = call ptr @s2n_strerror(i32 noundef %7592, ptr noundef nonnull @.str.6) #12
  %7594 = load i32, ptr %3050, align 4, !tbaa !5
  %7595 = call ptr @s2n_strerror_debug(i32 noundef %7594, ptr noundef nonnull @.str.6) #12
  %7596 = load i32, ptr %3104, align 4, !tbaa !5
  %7597 = call ptr @strerror(i32 noundef %7596) #12
  %7598 = load i32, ptr %3104, align 4, !tbaa !5
  %7599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7590, ptr noundef nonnull %.str.7.sink4322, i32 noundef %7591, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 709, ptr noundef %7593, ptr noundef %7595, ptr noundef %7597, i32 noundef %7598) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7600:                                             ; preds = %7573
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %52) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %54) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %54, i8 0, i64 40, i1 false)
  %7601 = load i32, ptr @test_count, align 4, !tbaa !5
  %7602 = add nsw i32 %7601, 1
  store i32 %7602, ptr @test_count, align 4, !tbaa !5
  %7603 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %7604 = icmp eq ptr %7603, null
  br i1 %7604, label %7605, label %7627

7605:                                             ; preds = %7600
  %7606 = load i32, ptr %3104, align 4, !tbaa !5
  %7607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7608 = call i32 @s2n_print_stacktrace(ptr noundef %7607) #12
  %7609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7610 = trunc nuw i8 %7609 to i1
  br i1 %7610, label %7611, label %7615

7611:                                             ; preds = %7605
  %7612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7613 = call i32 @fileno(ptr noundef %7612) #12
  %7614 = call i32 @isatty(i32 noundef %7613) #12
  %.not1517 = icmp eq i32 %7614, 0
  br i1 %.not1517, label %7615, label %7616

7615:                                             ; preds = %7611, %7605
  br label %7616

7616:                                             ; preds = %7611, %7615
  %.str.7.sink4331 = phi ptr [ @.str.7, %7615 ], [ @.str.4, %7611 ]
  store i32 %7606, ptr %3104, align 4, !tbaa !5
  %7617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7618 = load i32, ptr @test_count, align 4, !tbaa !5
  %7619 = load i32, ptr %3050, align 4, !tbaa !5
  %7620 = call ptr @s2n_strerror(i32 noundef %7619, ptr noundef nonnull @.str.6) #12
  %7621 = load i32, ptr %3050, align 4, !tbaa !5
  %7622 = call ptr @s2n_strerror_debug(i32 noundef %7621, ptr noundef nonnull @.str.6) #12
  %7623 = load i32, ptr %3104, align 4, !tbaa !5
  %7624 = call ptr @strerror(i32 noundef %7623) #12
  %7625 = load i32, ptr %3104, align 4, !tbaa !5
  %7626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7617, ptr noundef nonnull %.str.7.sink4331, i32 noundef %7618, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.3, i32 noundef 716, ptr noundef %7620, ptr noundef %7622, ptr noundef %7624, i32 noundef %7625) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7627:                                             ; preds = %7600
  %7628 = getelementptr inbounds i8, ptr %7603, i64 220
  store i8 34, ptr %7628, align 4, !tbaa !63
  %7629 = load i32, ptr @test_count, align 4, !tbaa !5
  %7630 = add nsw i32 %7629, 1
  store i32 %7630, ptr @test_count, align 4, !tbaa !5
  %7631 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %7603) #12
  %7632 = call zeroext i1 @s2n_result_is_ok(i32 %7631)
  br i1 %7632, label %7655, label %7633

7633:                                             ; preds = %7627
  %7634 = load i32, ptr %3104, align 4, !tbaa !5
  %7635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7636 = call i32 @s2n_print_stacktrace(ptr noundef %7635) #12
  %7637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7638 = trunc nuw i8 %7637 to i1
  br i1 %7638, label %7639, label %7643

7639:                                             ; preds = %7633
  %7640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7641 = call i32 @fileno(ptr noundef %7640) #12
  %7642 = call i32 @isatty(i32 noundef %7641) #12
  %.not1335 = icmp eq i32 %7642, 0
  br i1 %.not1335, label %7643, label %7644

7643:                                             ; preds = %7639, %7633
  br label %7644

7644:                                             ; preds = %7639, %7643
  %.str.7.sink4340 = phi ptr [ @.str.7, %7643 ], [ @.str.4, %7639 ]
  store i32 %7634, ptr %3104, align 4, !tbaa !5
  %7645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7646 = load i32, ptr @test_count, align 4, !tbaa !5
  %7647 = load i32, ptr %3050, align 4, !tbaa !5
  %7648 = call ptr @s2n_strerror(i32 noundef %7647, ptr noundef nonnull @.str.6) #12
  %7649 = load i32, ptr %3050, align 4, !tbaa !5
  %7650 = call ptr @s2n_strerror_debug(i32 noundef %7649, ptr noundef nonnull @.str.6) #12
  %7651 = load i32, ptr %3104, align 4, !tbaa !5
  %7652 = call ptr @strerror(i32 noundef %7651) #12
  %7653 = load i32, ptr %3104, align 4, !tbaa !5
  %7654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7645, ptr noundef nonnull %.str.7.sink4340, i32 noundef %7646, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.3, i32 noundef 718, ptr noundef %7648, ptr noundef %7650, ptr noundef %7652, i32 noundef %7653) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7655:                                             ; preds = %7627
  %7656 = load i32, ptr @test_count, align 4, !tbaa !5
  %7657 = add nsw i32 %7656, 1
  store i32 %7657, ptr @test_count, align 4, !tbaa !5
  %7658 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %54, i32 noundef 0) #12
  %7659 = icmp eq i32 %7658, -1
  br i1 %7659, label %7660, label %7682

7660:                                             ; preds = %7655
  %7661 = load i32, ptr %3104, align 4, !tbaa !5
  %7662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7663 = call i32 @s2n_print_stacktrace(ptr noundef %7662) #12
  %7664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7665 = trunc nuw i8 %7664 to i1
  br i1 %7665, label %7666, label %7670

7666:                                             ; preds = %7660
  %7667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7668 = call i32 @fileno(ptr noundef %7667) #12
  %7669 = call i32 @isatty(i32 noundef %7668) #12
  %.not1516 = icmp eq i32 %7669, 0
  br i1 %.not1516, label %7670, label %7671

7670:                                             ; preds = %7666, %7660
  br label %7671

7671:                                             ; preds = %7666, %7670
  %.str.7.sink4349 = phi ptr [ @.str.7, %7670 ], [ @.str.4, %7666 ]
  store i32 %7661, ptr %3104, align 4, !tbaa !5
  %7672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7673 = load i32, ptr @test_count, align 4, !tbaa !5
  %7674 = load i32, ptr %3050, align 4, !tbaa !5
  %7675 = call ptr @s2n_strerror(i32 noundef %7674, ptr noundef nonnull @.str.6) #12
  %7676 = load i32, ptr %3050, align 4, !tbaa !5
  %7677 = call ptr @s2n_strerror_debug(i32 noundef %7676, ptr noundef nonnull @.str.6) #12
  %7678 = load i32, ptr %3104, align 4, !tbaa !5
  %7679 = call ptr @strerror(i32 noundef %7678) #12
  %7680 = load i32, ptr %3104, align 4, !tbaa !5
  %7681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7672, ptr noundef nonnull %.str.7.sink4349, i32 noundef %7673, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 719, ptr noundef %7675, ptr noundef %7677, ptr noundef %7679, i32 noundef %7680) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7682:                                             ; preds = %7655
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #12
  store ptr null, ptr %55, align 8, !tbaa !9
  %7683 = load i32, ptr @test_count, align 4, !tbaa !5
  %7684 = add nsw i32 %7683, 1
  store i32 %7684, ptr @test_count, align 4, !tbaa !5
  %7685 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %7603, ptr noundef nonnull %55) #12
  %7686 = icmp eq i32 %7685, -1
  br i1 %7686, label %7687, label %7709

7687:                                             ; preds = %7682
  %7688 = load i32, ptr %3104, align 4, !tbaa !5
  %7689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7690 = call i32 @s2n_print_stacktrace(ptr noundef %7689) #12
  %7691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7692 = trunc nuw i8 %7691 to i1
  br i1 %7692, label %7693, label %7697

7693:                                             ; preds = %7687
  %7694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7695 = call i32 @fileno(ptr noundef %7694) #12
  %7696 = call i32 @isatty(i32 noundef %7695) #12
  %.not1515 = icmp eq i32 %7696, 0
  br i1 %.not1515, label %7697, label %7698

7697:                                             ; preds = %7693, %7687
  br label %7698

7698:                                             ; preds = %7693, %7697
  %.str.7.sink4358 = phi ptr [ @.str.7, %7697 ], [ @.str.4, %7693 ]
  store i32 %7688, ptr %3104, align 4, !tbaa !5
  %7699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7700 = load i32, ptr @test_count, align 4, !tbaa !5
  %7701 = load i32, ptr %3050, align 4, !tbaa !5
  %7702 = call ptr @s2n_strerror(i32 noundef %7701, ptr noundef nonnull @.str.6) #12
  %7703 = load i32, ptr %3050, align 4, !tbaa !5
  %7704 = call ptr @s2n_strerror_debug(i32 noundef %7703, ptr noundef nonnull @.str.6) #12
  %7705 = load i32, ptr %3104, align 4, !tbaa !5
  %7706 = call ptr @strerror(i32 noundef %7705) #12
  %7707 = load i32, ptr %3104, align 4, !tbaa !5
  %7708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7699, ptr noundef nonnull %.str.7.sink4358, i32 noundef %7700, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.3, i32 noundef 722, ptr noundef %7702, ptr noundef %7704, ptr noundef %7706, i32 noundef %7707) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7709:                                             ; preds = %7682
  %7710 = load i32, ptr @test_count, align 4, !tbaa !5
  %7711 = add nsw i32 %7710, 1
  store i32 %7711, ptr @test_count, align 4, !tbaa !5
  %7712 = load ptr, ptr %55, align 8, !tbaa !9
  %7713 = icmp eq ptr %7712, null
  br i1 %7713, label %7714, label %7736

7714:                                             ; preds = %7709
  %7715 = load i32, ptr %3104, align 4, !tbaa !5
  %7716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7717 = call i32 @s2n_print_stacktrace(ptr noundef %7716) #12
  %7718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7719 = trunc nuw i8 %7718 to i1
  br i1 %7719, label %7720, label %7724

7720:                                             ; preds = %7714
  %7721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7722 = call i32 @fileno(ptr noundef %7721) #12
  %7723 = call i32 @isatty(i32 noundef %7722) #12
  %.not1514 = icmp eq i32 %7723, 0
  br i1 %.not1514, label %7724, label %7725

7724:                                             ; preds = %7720, %7714
  br label %7725

7725:                                             ; preds = %7720, %7724
  %.str.7.sink4367 = phi ptr [ @.str.7, %7724 ], [ @.str.4, %7720 ]
  store i32 %7715, ptr %3104, align 4, !tbaa !5
  %7726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7727 = load i32, ptr @test_count, align 4, !tbaa !5
  %7728 = load i32, ptr %3050, align 4, !tbaa !5
  %7729 = call ptr @s2n_strerror(i32 noundef %7728, ptr noundef nonnull @.str.6) #12
  %7730 = load i32, ptr %3050, align 4, !tbaa !5
  %7731 = call ptr @s2n_strerror_debug(i32 noundef %7730, ptr noundef nonnull @.str.6) #12
  %7732 = load i32, ptr %3104, align 4, !tbaa !5
  %7733 = call ptr @strerror(i32 noundef %7732) #12
  %7734 = load i32, ptr %3104, align 4, !tbaa !5
  %7735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7726, ptr noundef nonnull %.str.7.sink4367, i32 noundef %7727, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 723, ptr noundef %7729, ptr noundef %7731, ptr noundef %7733, i32 noundef %7734) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7736:                                             ; preds = %7709
  %7737 = add nsw i32 %7710, 2
  store i32 %7737, ptr @test_count, align 4, !tbaa !5
  %7738 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %54, i32 noundef 2) #12
  %7739 = icmp eq i32 %7738, -1
  br i1 %7739, label %7740, label %7762

7740:                                             ; preds = %7736
  %7741 = load i32, ptr %3104, align 4, !tbaa !5
  %7742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7743 = call i32 @s2n_print_stacktrace(ptr noundef %7742) #12
  %7744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7745 = trunc nuw i8 %7744 to i1
  br i1 %7745, label %7746, label %7750

7746:                                             ; preds = %7740
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = call i32 @fileno(ptr noundef %7747) #12
  %7749 = call i32 @isatty(i32 noundef %7748) #12
  %.not1513 = icmp eq i32 %7749, 0
  br i1 %.not1513, label %7750, label %7751

7750:                                             ; preds = %7746, %7740
  br label %7751

7751:                                             ; preds = %7746, %7750
  %.str.7.sink4376 = phi ptr [ @.str.7, %7750 ], [ @.str.4, %7746 ]
  store i32 %7741, ptr %3104, align 4, !tbaa !5
  %7752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7753 = load i32, ptr @test_count, align 4, !tbaa !5
  %7754 = load i32, ptr %3050, align 4, !tbaa !5
  %7755 = call ptr @s2n_strerror(i32 noundef %7754, ptr noundef nonnull @.str.6) #12
  %7756 = load i32, ptr %3050, align 4, !tbaa !5
  %7757 = call ptr @s2n_strerror_debug(i32 noundef %7756, ptr noundef nonnull @.str.6) #12
  %7758 = load i32, ptr %3104, align 4, !tbaa !5
  %7759 = call ptr @strerror(i32 noundef %7758) #12
  %7760 = load i32, ptr %3104, align 4, !tbaa !5
  %7761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7752, ptr noundef nonnull %.str.7.sink4376, i32 noundef %7753, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.3, i32 noundef 726, ptr noundef %7755, ptr noundef %7757, ptr noundef %7759, i32 noundef %7760) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7762:                                             ; preds = %7736
  %7763 = load i32, ptr @test_count, align 4, !tbaa !5
  %7764 = add nsw i32 %7763, 1
  store i32 %7764, ptr @test_count, align 4, !tbaa !5
  %7765 = load ptr, ptr %55, align 8, !tbaa !9
  %7766 = getelementptr inbounds i8, ptr %7765, i64 8
  %7767 = load ptr, ptr %7766, align 8, !tbaa !24
  %7768 = load ptr, ptr %7767, align 8, !tbaa !9
  %7769 = load i16, ptr %7768, align 8, !tbaa !28
  %7770 = getelementptr inbounds i8, ptr %7768, i64 16
  %7771 = load i8, ptr %7770, align 8, !tbaa !30
  %7772 = zext i8 %7771 to i16
  %7773 = mul nuw nsw i16 %7772, 10
  %7774 = call i32 @s2n_write_key_share(ptr noundef nonnull %54, i16 noundef zeroext %7769, i16 noundef zeroext %7773, ptr noundef nonnull %7768)
  %7775 = icmp eq i32 %7774, -1
  br i1 %7775, label %7776, label %7798

7776:                                             ; preds = %7762
  %7777 = load i32, ptr %3104, align 4, !tbaa !5
  %7778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7779 = call i32 @s2n_print_stacktrace(ptr noundef %7778) #12
  %7780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7781 = trunc nuw i8 %7780 to i1
  br i1 %7781, label %7782, label %7786

7782:                                             ; preds = %7776
  %7783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7784 = call i32 @fileno(ptr noundef %7783) #12
  %7785 = call i32 @isatty(i32 noundef %7784) #12
  %.not1512 = icmp eq i32 %7785, 0
  br i1 %.not1512, label %7786, label %7787

7786:                                             ; preds = %7782, %7776
  br label %7787

7787:                                             ; preds = %7782, %7786
  %.str.7.sink4385 = phi ptr [ @.str.7, %7786 ], [ @.str.4, %7782 ]
  store i32 %7777, ptr %3104, align 4, !tbaa !5
  %7788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7789 = load i32, ptr @test_count, align 4, !tbaa !5
  %7790 = load i32, ptr %3050, align 4, !tbaa !5
  %7791 = call ptr @s2n_strerror(i32 noundef %7790, ptr noundef nonnull @.str.6) #12
  %7792 = load i32, ptr %3050, align 4, !tbaa !5
  %7793 = call ptr @s2n_strerror_debug(i32 noundef %7792, ptr noundef nonnull @.str.6) #12
  %7794 = load i32, ptr %3104, align 4, !tbaa !5
  %7795 = call ptr @strerror(i32 noundef %7794) #12
  %7796 = load i32, ptr %3104, align 4, !tbaa !5
  %7797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7788, ptr noundef nonnull %.str.7.sink4385, i32 noundef %7789, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.3, i32 noundef 728, ptr noundef %7791, ptr noundef %7793, ptr noundef %7795, i32 noundef %7796) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7798:                                             ; preds = %7762
  %7799 = load i32, ptr @test_count, align 4, !tbaa !5
  %7800 = add nsw i32 %7799, 1
  store i32 %7800, ptr @test_count, align 4, !tbaa !5
  %7801 = call i32 @s2n_test_rewrite_length(ptr noundef nonnull %54)
  %7802 = icmp eq i32 %7801, -1
  br i1 %7802, label %7803, label %7825

7803:                                             ; preds = %7798
  %7804 = load i32, ptr %3104, align 4, !tbaa !5
  %7805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7806 = call i32 @s2n_print_stacktrace(ptr noundef %7805) #12
  %7807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7808 = trunc nuw i8 %7807 to i1
  br i1 %7808, label %7809, label %7813

7809:                                             ; preds = %7803
  %7810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7811 = call i32 @fileno(ptr noundef %7810) #12
  %7812 = call i32 @isatty(i32 noundef %7811) #12
  %.not1511 = icmp eq i32 %7812, 0
  br i1 %.not1511, label %7813, label %7814

7813:                                             ; preds = %7809, %7803
  br label %7814

7814:                                             ; preds = %7809, %7813
  %.str.7.sink4394 = phi ptr [ @.str.7, %7813 ], [ @.str.4, %7809 ]
  store i32 %7804, ptr %3104, align 4, !tbaa !5
  %7815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7816 = load i32, ptr @test_count, align 4, !tbaa !5
  %7817 = load i32, ptr %3050, align 4, !tbaa !5
  %7818 = call ptr @s2n_strerror(i32 noundef %7817, ptr noundef nonnull @.str.6) #12
  %7819 = load i32, ptr %3050, align 4, !tbaa !5
  %7820 = call ptr @s2n_strerror_debug(i32 noundef %7819, ptr noundef nonnull @.str.6) #12
  %7821 = load i32, ptr %3104, align 4, !tbaa !5
  %7822 = call ptr @strerror(i32 noundef %7821) #12
  %7823 = load i32, ptr %3104, align 4, !tbaa !5
  %7824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7815, ptr noundef nonnull %.str.7.sink4394, i32 noundef %7816, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.3, i32 noundef 729, ptr noundef %7818, ptr noundef %7820, ptr noundef %7822, i32 noundef %7823) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7825:                                             ; preds = %7798
  %7826 = load i32, ptr @test_count, align 4, !tbaa !5
  %7827 = add nsw i32 %7826, 1
  store i32 %7827, ptr @test_count, align 4, !tbaa !5
  %7828 = call i32 %2660(ptr noundef nonnull %7603, ptr noundef nonnull %54) #12
  %7829 = icmp eq i32 %7828, -1
  br i1 %7829, label %7852, label %7830

7830:                                             ; preds = %7825
  %7831 = load i32, ptr %3104, align 4, !tbaa !5
  %7832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7833 = call i32 @s2n_print_stacktrace(ptr noundef %7832) #12
  %7834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7835 = trunc nuw i8 %7834 to i1
  br i1 %7835, label %7836, label %7840

7836:                                             ; preds = %7830
  %7837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7838 = call i32 @fileno(ptr noundef %7837) #12
  %7839 = call i32 @isatty(i32 noundef %7838) #12
  %.not1336 = icmp eq i32 %7839, 0
  br i1 %.not1336, label %7840, label %7841

7840:                                             ; preds = %7836, %7830
  br label %7841

7841:                                             ; preds = %7836, %7840
  %.str.7.sink4403 = phi ptr [ @.str.7, %7840 ], [ @.str.4, %7836 ]
  store i32 %7831, ptr %3104, align 4, !tbaa !5
  %7842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7843 = load i32, ptr @test_count, align 4, !tbaa !5
  %7844 = load i32, ptr %3050, align 4, !tbaa !5
  %7845 = call ptr @s2n_strerror(i32 noundef %7844, ptr noundef nonnull @.str.6) #12
  %7846 = load i32, ptr %3050, align 4, !tbaa !5
  %7847 = call ptr @s2n_strerror_debug(i32 noundef %7846, ptr noundef nonnull @.str.6) #12
  %7848 = load i32, ptr %3104, align 4, !tbaa !5
  %7849 = call ptr @strerror(i32 noundef %7848) #12
  %7850 = load i32, ptr %3104, align 4, !tbaa !5
  %7851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7842, ptr noundef nonnull %.str.7.sink4403, i32 noundef %7843, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.3, i32 noundef 731, ptr noundef %7845, ptr noundef %7847, ptr noundef %7849, i32 noundef %7850) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7852:                                             ; preds = %7825
  %7853 = load i32, ptr @test_count, align 4, !tbaa !5
  %7854 = add nsw i32 %7853, 1
  store i32 %7854, ptr @test_count, align 4, !tbaa !5
  %7855 = load i32, ptr %3050, align 4, !tbaa !5
  %7856 = icmp eq i32 %7855, 0
  br i1 %7856, label %7857, label %7879

7857:                                             ; preds = %7852
  %7858 = load i32, ptr %3104, align 4, !tbaa !5
  %7859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7860 = call i32 @s2n_print_stacktrace(ptr noundef %7859) #12
  %7861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7862 = trunc nuw i8 %7861 to i1
  br i1 %7862, label %7863, label %7867

7863:                                             ; preds = %7857
  %7864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7865 = call i32 @fileno(ptr noundef %7864) #12
  %7866 = call i32 @isatty(i32 noundef %7865) #12
  %.not1510 = icmp eq i32 %7866, 0
  br i1 %.not1510, label %7867, label %7868

7867:                                             ; preds = %7863, %7857
  br label %7868

7868:                                             ; preds = %7863, %7867
  %.str.7.sink4412 = phi ptr [ @.str.7, %7867 ], [ @.str.4, %7863 ]
  store i32 %7858, ptr %3104, align 4, !tbaa !5
  %7869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7870 = load i32, ptr @test_count, align 4, !tbaa !5
  %7871 = load i32, ptr %3050, align 4, !tbaa !5
  %7872 = call ptr @s2n_strerror(i32 noundef %7871, ptr noundef nonnull @.str.6) #12
  %7873 = load i32, ptr %3050, align 4, !tbaa !5
  %7874 = call ptr @s2n_strerror_debug(i32 noundef %7873, ptr noundef nonnull @.str.6) #12
  %7875 = load i32, ptr %3104, align 4, !tbaa !5
  %7876 = call ptr @strerror(i32 noundef %7875) #12
  %7877 = load i32, ptr %3104, align 4, !tbaa !5
  %7878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7869, ptr noundef nonnull %.str.7.sink4412, i32 noundef %7870, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.3, i32 noundef 731, ptr noundef %7872, ptr noundef %7874, ptr noundef %7876, i32 noundef %7877) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7879:                                             ; preds = %7852
  %7880 = add nsw i32 %7853, 2
  store i32 %7880, ptr @test_count, align 4, !tbaa !5
  %7881 = call ptr @s2n_strerror_debug(i32 noundef %7855, ptr noundef nonnull @.str.6) #12
  %7882 = icmp eq ptr %7881, null
  br i1 %7882, label %7883, label %7905

7883:                                             ; preds = %7879
  %7884 = load i32, ptr %3104, align 4, !tbaa !5
  %7885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7886 = call i32 @s2n_print_stacktrace(ptr noundef %7885) #12
  %7887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7888 = trunc nuw i8 %7887 to i1
  br i1 %7888, label %7889, label %7893

7889:                                             ; preds = %7883
  %7890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7891 = call i32 @fileno(ptr noundef %7890) #12
  %7892 = call i32 @isatty(i32 noundef %7891) #12
  %.not1509 = icmp eq i32 %7892, 0
  br i1 %.not1509, label %7893, label %7894

7893:                                             ; preds = %7889, %7883
  br label %7894

7894:                                             ; preds = %7889, %7893
  %.str.7.sink4421 = phi ptr [ @.str.7, %7893 ], [ @.str.4, %7889 ]
  store i32 %7884, ptr %3104, align 4, !tbaa !5
  %7895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7896 = load i32, ptr @test_count, align 4, !tbaa !5
  %7897 = load i32, ptr %3050, align 4, !tbaa !5
  %7898 = call ptr @s2n_strerror(i32 noundef %7897, ptr noundef nonnull @.str.6) #12
  %7899 = load i32, ptr %3050, align 4, !tbaa !5
  %7900 = call ptr @s2n_strerror_debug(i32 noundef %7899, ptr noundef nonnull @.str.6) #12
  %7901 = load i32, ptr %3104, align 4, !tbaa !5
  %7902 = call ptr @strerror(i32 noundef %7901) #12
  %7903 = load i32, ptr %3104, align 4, !tbaa !5
  %7904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7895, ptr noundef nonnull %.str.7.sink4421, i32 noundef %7896, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.3, i32 noundef 731, ptr noundef %7898, ptr noundef %7900, ptr noundef %7902, i32 noundef %7903) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7905:                                             ; preds = %7879
  store i32 0, ptr %3050, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %3104, align 4, !tbaa !5
  %7906 = load i32, ptr @test_count, align 4, !tbaa !5
  %7907 = add nsw i32 %7906, 1
  store i32 %7907, ptr @test_count, align 4, !tbaa !5
  %7908 = call i32 @s2n_stuffer_free(ptr noundef nonnull %54) #12
  %7909 = icmp eq i32 %7908, -1
  br i1 %7909, label %7910, label %7932

7910:                                             ; preds = %7905
  %7911 = load i32, ptr %3104, align 4, !tbaa !5
  %7912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7913 = call i32 @s2n_print_stacktrace(ptr noundef %7912) #12
  %7914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7915 = trunc nuw i8 %7914 to i1
  br i1 %7915, label %7916, label %7920

7916:                                             ; preds = %7910
  %7917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7918 = call i32 @fileno(ptr noundef %7917) #12
  %7919 = call i32 @isatty(i32 noundef %7918) #12
  %.not1508 = icmp eq i32 %7919, 0
  br i1 %.not1508, label %7920, label %7921

7920:                                             ; preds = %7916, %7910
  br label %7921

7921:                                             ; preds = %7916, %7920
  %.str.7.sink4430 = phi ptr [ @.str.7, %7920 ], [ @.str.4, %7916 ]
  store i32 %7911, ptr %3104, align 4, !tbaa !5
  %7922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7923 = load i32, ptr @test_count, align 4, !tbaa !5
  %7924 = load i32, ptr %3050, align 4, !tbaa !5
  %7925 = call ptr @s2n_strerror(i32 noundef %7924, ptr noundef nonnull @.str.6) #12
  %7926 = load i32, ptr %3050, align 4, !tbaa !5
  %7927 = call ptr @s2n_strerror_debug(i32 noundef %7926, ptr noundef nonnull @.str.6) #12
  %7928 = load i32, ptr %3104, align 4, !tbaa !5
  %7929 = call ptr @strerror(i32 noundef %7928) #12
  %7930 = load i32, ptr %3104, align 4, !tbaa !5
  %7931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7922, ptr noundef nonnull %.str.7.sink4430, i32 noundef %7923, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 733, ptr noundef %7925, ptr noundef %7927, ptr noundef %7929, i32 noundef %7930) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7932:                                             ; preds = %7905
  %7933 = load i32, ptr @test_count, align 4, !tbaa !5
  %7934 = add nsw i32 %7933, 1
  store i32 %7934, ptr @test_count, align 4, !tbaa !5
  %7935 = call i32 @s2n_connection_free(ptr noundef nonnull %7603) #12
  %7936 = icmp eq i32 %7935, -1
  br i1 %7936, label %7937, label %7959

7937:                                             ; preds = %7932
  %7938 = load i32, ptr %3104, align 4, !tbaa !5
  %7939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7940 = call i32 @s2n_print_stacktrace(ptr noundef %7939) #12
  %7941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7942 = trunc nuw i8 %7941 to i1
  br i1 %7942, label %7943, label %7947

7943:                                             ; preds = %7937
  %7944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7945 = call i32 @fileno(ptr noundef %7944) #12
  %7946 = call i32 @isatty(i32 noundef %7945) #12
  %.not1507 = icmp eq i32 %7946, 0
  br i1 %.not1507, label %7947, label %7948

7947:                                             ; preds = %7943, %7937
  br label %7948

7948:                                             ; preds = %7943, %7947
  %.str.7.sink4439 = phi ptr [ @.str.7, %7947 ], [ @.str.4, %7943 ]
  store i32 %7938, ptr %3104, align 4, !tbaa !5
  %7949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7950 = load i32, ptr @test_count, align 4, !tbaa !5
  %7951 = load i32, ptr %3050, align 4, !tbaa !5
  %7952 = call ptr @s2n_strerror(i32 noundef %7951, ptr noundef nonnull @.str.6) #12
  %7953 = load i32, ptr %3050, align 4, !tbaa !5
  %7954 = call ptr @s2n_strerror_debug(i32 noundef %7953, ptr noundef nonnull @.str.6) #12
  %7955 = load i32, ptr %3104, align 4, !tbaa !5
  %7956 = call ptr @strerror(i32 noundef %7955) #12
  %7957 = load i32, ptr %3104, align 4, !tbaa !5
  %7958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7949, ptr noundef nonnull %.str.7.sink4439, i32 noundef %7950, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 734, ptr noundef %7952, ptr noundef %7954, ptr noundef %7956, i32 noundef %7957) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7959:                                             ; preds = %7932
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %54) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %56) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %56, i8 0, i64 40, i1 false)
  %7960 = load i32, ptr @test_count, align 4, !tbaa !5
  %7961 = add nsw i32 %7960, 1
  store i32 %7961, ptr @test_count, align 4, !tbaa !5
  %7962 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %7963 = icmp eq ptr %7962, null
  br i1 %7963, label %7964, label %7986

7964:                                             ; preds = %7959
  %7965 = load i32, ptr %3104, align 4, !tbaa !5
  %7966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7967 = call i32 @s2n_print_stacktrace(ptr noundef %7966) #12
  %7968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7969 = trunc nuw i8 %7968 to i1
  br i1 %7969, label %7970, label %7974

7970:                                             ; preds = %7964
  %7971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7972 = call i32 @fileno(ptr noundef %7971) #12
  %7973 = call i32 @isatty(i32 noundef %7972) #12
  %.not1506 = icmp eq i32 %7973, 0
  br i1 %.not1506, label %7974, label %7975

7974:                                             ; preds = %7970, %7964
  br label %7975

7975:                                             ; preds = %7970, %7974
  %.str.7.sink4448 = phi ptr [ @.str.7, %7974 ], [ @.str.4, %7970 ]
  store i32 %7965, ptr %3104, align 4, !tbaa !5
  %7976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7977 = load i32, ptr @test_count, align 4, !tbaa !5
  %7978 = load i32, ptr %3050, align 4, !tbaa !5
  %7979 = call ptr @s2n_strerror(i32 noundef %7978, ptr noundef nonnull @.str.6) #12
  %7980 = load i32, ptr %3050, align 4, !tbaa !5
  %7981 = call ptr @s2n_strerror_debug(i32 noundef %7980, ptr noundef nonnull @.str.6) #12
  %7982 = load i32, ptr %3104, align 4, !tbaa !5
  %7983 = call ptr @strerror(i32 noundef %7982) #12
  %7984 = load i32, ptr %3104, align 4, !tbaa !5
  %7985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7976, ptr noundef nonnull %.str.7.sink4448, i32 noundef %7977, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.3, i32 noundef 741, ptr noundef %7979, ptr noundef %7981, ptr noundef %7983, i32 noundef %7984) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7986:                                             ; preds = %7959
  %7987 = getelementptr inbounds i8, ptr %7962, i64 220
  store i8 34, ptr %7987, align 4, !tbaa !63
  %7988 = load i32, ptr @test_count, align 4, !tbaa !5
  %7989 = add nsw i32 %7988, 1
  store i32 %7989, ptr @test_count, align 4, !tbaa !5
  %7990 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %7962) #12
  %7991 = call zeroext i1 @s2n_result_is_ok(i32 %7990)
  br i1 %7991, label %8014, label %7992

7992:                                             ; preds = %7986
  %7993 = load i32, ptr %3104, align 4, !tbaa !5
  %7994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7995 = call i32 @s2n_print_stacktrace(ptr noundef %7994) #12
  %7996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7997 = trunc nuw i8 %7996 to i1
  br i1 %7997, label %7998, label %8002

7998:                                             ; preds = %7992
  %7999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8000 = call i32 @fileno(ptr noundef %7999) #12
  %8001 = call i32 @isatty(i32 noundef %8000) #12
  %.not1337 = icmp eq i32 %8001, 0
  br i1 %.not1337, label %8002, label %8003

8002:                                             ; preds = %7998, %7992
  br label %8003

8003:                                             ; preds = %7998, %8002
  %.str.7.sink4457 = phi ptr [ @.str.7, %8002 ], [ @.str.4, %7998 ]
  store i32 %7993, ptr %3104, align 4, !tbaa !5
  %8004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8005 = load i32, ptr @test_count, align 4, !tbaa !5
  %8006 = load i32, ptr %3050, align 4, !tbaa !5
  %8007 = call ptr @s2n_strerror(i32 noundef %8006, ptr noundef nonnull @.str.6) #12
  %8008 = load i32, ptr %3050, align 4, !tbaa !5
  %8009 = call ptr @s2n_strerror_debug(i32 noundef %8008, ptr noundef nonnull @.str.6) #12
  %8010 = load i32, ptr %3104, align 4, !tbaa !5
  %8011 = call ptr @strerror(i32 noundef %8010) #12
  %8012 = load i32, ptr %3104, align 4, !tbaa !5
  %8013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8004, ptr noundef nonnull %.str.7.sink4457, i32 noundef %8005, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.3, i32 noundef 743, ptr noundef %8007, ptr noundef %8009, ptr noundef %8011, i32 noundef %8012) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8014:                                             ; preds = %7986
  %8015 = load i32, ptr @test_count, align 4, !tbaa !5
  %8016 = add nsw i32 %8015, 1
  store i32 %8016, ptr @test_count, align 4, !tbaa !5
  %8017 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %56, i32 noundef 0) #12
  %8018 = icmp eq i32 %8017, -1
  br i1 %8018, label %8019, label %8041

8019:                                             ; preds = %8014
  %8020 = load i32, ptr %3104, align 4, !tbaa !5
  %8021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8022 = call i32 @s2n_print_stacktrace(ptr noundef %8021) #12
  %8023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8024 = trunc nuw i8 %8023 to i1
  br i1 %8024, label %8025, label %8029

8025:                                             ; preds = %8019
  %8026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8027 = call i32 @fileno(ptr noundef %8026) #12
  %8028 = call i32 @isatty(i32 noundef %8027) #12
  %.not1505 = icmp eq i32 %8028, 0
  br i1 %.not1505, label %8029, label %8030

8029:                                             ; preds = %8025, %8019
  br label %8030

8030:                                             ; preds = %8025, %8029
  %.str.7.sink4466 = phi ptr [ @.str.7, %8029 ], [ @.str.4, %8025 ]
  store i32 %8020, ptr %3104, align 4, !tbaa !5
  %8031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8032 = load i32, ptr @test_count, align 4, !tbaa !5
  %8033 = load i32, ptr %3050, align 4, !tbaa !5
  %8034 = call ptr @s2n_strerror(i32 noundef %8033, ptr noundef nonnull @.str.6) #12
  %8035 = load i32, ptr %3050, align 4, !tbaa !5
  %8036 = call ptr @s2n_strerror_debug(i32 noundef %8035, ptr noundef nonnull @.str.6) #12
  %8037 = load i32, ptr %3104, align 4, !tbaa !5
  %8038 = call ptr @strerror(i32 noundef %8037) #12
  %8039 = load i32, ptr %3104, align 4, !tbaa !5
  %8040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8031, ptr noundef nonnull %.str.7.sink4466, i32 noundef %8032, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 744, ptr noundef %8034, ptr noundef %8036, ptr noundef %8038, i32 noundef %8039) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8041:                                             ; preds = %8014
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  store ptr null, ptr %57, align 8, !tbaa !9
  %8042 = load i32, ptr @test_count, align 4, !tbaa !5
  %8043 = add nsw i32 %8042, 1
  store i32 %8043, ptr @test_count, align 4, !tbaa !5
  %8044 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %7962, ptr noundef nonnull %57) #12
  %8045 = icmp eq i32 %8044, -1
  br i1 %8045, label %8046, label %8068

8046:                                             ; preds = %8041
  %8047 = load i32, ptr %3104, align 4, !tbaa !5
  %8048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8049 = call i32 @s2n_print_stacktrace(ptr noundef %8048) #12
  %8050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8051 = trunc nuw i8 %8050 to i1
  br i1 %8051, label %8052, label %8056

8052:                                             ; preds = %8046
  %8053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8054 = call i32 @fileno(ptr noundef %8053) #12
  %8055 = call i32 @isatty(i32 noundef %8054) #12
  %.not1504 = icmp eq i32 %8055, 0
  br i1 %.not1504, label %8056, label %8057

8056:                                             ; preds = %8052, %8046
  br label %8057

8057:                                             ; preds = %8052, %8056
  %.str.7.sink4475 = phi ptr [ @.str.7, %8056 ], [ @.str.4, %8052 ]
  store i32 %8047, ptr %3104, align 4, !tbaa !5
  %8058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8059 = load i32, ptr @test_count, align 4, !tbaa !5
  %8060 = load i32, ptr %3050, align 4, !tbaa !5
  %8061 = call ptr @s2n_strerror(i32 noundef %8060, ptr noundef nonnull @.str.6) #12
  %8062 = load i32, ptr %3050, align 4, !tbaa !5
  %8063 = call ptr @s2n_strerror_debug(i32 noundef %8062, ptr noundef nonnull @.str.6) #12
  %8064 = load i32, ptr %3104, align 4, !tbaa !5
  %8065 = call ptr @strerror(i32 noundef %8064) #12
  %8066 = load i32, ptr %3104, align 4, !tbaa !5
  %8067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8058, ptr noundef nonnull %.str.7.sink4475, i32 noundef %8059, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.3, i32 noundef 747, ptr noundef %8061, ptr noundef %8063, ptr noundef %8065, i32 noundef %8066) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8068:                                             ; preds = %8041
  %8069 = load i32, ptr @test_count, align 4, !tbaa !5
  %8070 = add nsw i32 %8069, 1
  store i32 %8070, ptr @test_count, align 4, !tbaa !5
  %8071 = load ptr, ptr %57, align 8, !tbaa !9
  %8072 = icmp eq ptr %8071, null
  br i1 %8072, label %8073, label %8095

8073:                                             ; preds = %8068
  %8074 = load i32, ptr %3104, align 4, !tbaa !5
  %8075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8076 = call i32 @s2n_print_stacktrace(ptr noundef %8075) #12
  %8077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8078 = trunc nuw i8 %8077 to i1
  br i1 %8078, label %8079, label %8083

8079:                                             ; preds = %8073
  %8080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8081 = call i32 @fileno(ptr noundef %8080) #12
  %8082 = call i32 @isatty(i32 noundef %8081) #12
  %.not1503 = icmp eq i32 %8082, 0
  br i1 %.not1503, label %8083, label %8084

8083:                                             ; preds = %8079, %8073
  br label %8084

8084:                                             ; preds = %8079, %8083
  %.str.7.sink4484 = phi ptr [ @.str.7, %8083 ], [ @.str.4, %8079 ]
  store i32 %8074, ptr %3104, align 4, !tbaa !5
  %8085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8086 = load i32, ptr @test_count, align 4, !tbaa !5
  %8087 = load i32, ptr %3050, align 4, !tbaa !5
  %8088 = call ptr @s2n_strerror(i32 noundef %8087, ptr noundef nonnull @.str.6) #12
  %8089 = load i32, ptr %3050, align 4, !tbaa !5
  %8090 = call ptr @s2n_strerror_debug(i32 noundef %8089, ptr noundef nonnull @.str.6) #12
  %8091 = load i32, ptr %3104, align 4, !tbaa !5
  %8092 = call ptr @strerror(i32 noundef %8091) #12
  %8093 = load i32, ptr %3104, align 4, !tbaa !5
  %8094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8085, ptr noundef nonnull %.str.7.sink4484, i32 noundef %8086, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 748, ptr noundef %8088, ptr noundef %8090, ptr noundef %8092, i32 noundef %8093) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8095:                                             ; preds = %8068
  %8096 = add nsw i32 %8069, 2
  store i32 %8096, ptr @test_count, align 4, !tbaa !5
  %8097 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %56, i32 noundef 2) #12
  %8098 = icmp eq i32 %8097, -1
  br i1 %8098, label %8099, label %8121

8099:                                             ; preds = %8095
  %8100 = load i32, ptr %3104, align 4, !tbaa !5
  %8101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8102 = call i32 @s2n_print_stacktrace(ptr noundef %8101) #12
  %8103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8104 = trunc nuw i8 %8103 to i1
  br i1 %8104, label %8105, label %8109

8105:                                             ; preds = %8099
  %8106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8107 = call i32 @fileno(ptr noundef %8106) #12
  %8108 = call i32 @isatty(i32 noundef %8107) #12
  %.not1502 = icmp eq i32 %8108, 0
  br i1 %.not1502, label %8109, label %8110

8109:                                             ; preds = %8105, %8099
  br label %8110

8110:                                             ; preds = %8105, %8109
  %.str.7.sink4493 = phi ptr [ @.str.7, %8109 ], [ @.str.4, %8105 ]
  store i32 %8100, ptr %3104, align 4, !tbaa !5
  %8111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8112 = load i32, ptr @test_count, align 4, !tbaa !5
  %8113 = load i32, ptr %3050, align 4, !tbaa !5
  %8114 = call ptr @s2n_strerror(i32 noundef %8113, ptr noundef nonnull @.str.6) #12
  %8115 = load i32, ptr %3050, align 4, !tbaa !5
  %8116 = call ptr @s2n_strerror_debug(i32 noundef %8115, ptr noundef nonnull @.str.6) #12
  %8117 = load i32, ptr %3104, align 4, !tbaa !5
  %8118 = call ptr @strerror(i32 noundef %8117) #12
  %8119 = load i32, ptr %3104, align 4, !tbaa !5
  %8120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8111, ptr noundef nonnull %.str.7.sink4493, i32 noundef %8112, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.3, i32 noundef 751, ptr noundef %8114, ptr noundef %8116, ptr noundef %8118, i32 noundef %8119) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8121:                                             ; preds = %8095
  %8122 = load i32, ptr @test_count, align 4, !tbaa !5
  %8123 = add nsw i32 %8122, 1
  store i32 %8123, ptr @test_count, align 4, !tbaa !5
  %8124 = load ptr, ptr %57, align 8, !tbaa !9
  %8125 = getelementptr inbounds i8, ptr %8124, i64 8
  %8126 = load ptr, ptr %8125, align 8, !tbaa !24
  %8127 = load ptr, ptr %8126, align 8, !tbaa !9
  %8128 = call i32 @s2n_write_named_curve(ptr noundef nonnull %56, ptr noundef %8127)
  %8129 = icmp eq i32 %8128, -1
  br i1 %8129, label %8130, label %8152

8130:                                             ; preds = %8121
  %8131 = load i32, ptr %3104, align 4, !tbaa !5
  %8132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8133 = call i32 @s2n_print_stacktrace(ptr noundef %8132) #12
  %8134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8135 = trunc nuw i8 %8134 to i1
  br i1 %8135, label %8136, label %8140

8136:                                             ; preds = %8130
  %8137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8138 = call i32 @fileno(ptr noundef %8137) #12
  %8139 = call i32 @isatty(i32 noundef %8138) #12
  %.not1501 = icmp eq i32 %8139, 0
  br i1 %.not1501, label %8140, label %8141

8140:                                             ; preds = %8136, %8130
  br label %8141

8141:                                             ; preds = %8136, %8140
  %.str.7.sink4502 = phi ptr [ @.str.7, %8140 ], [ @.str.4, %8136 ]
  store i32 %8131, ptr %3104, align 4, !tbaa !5
  %8142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8143 = load i32, ptr @test_count, align 4, !tbaa !5
  %8144 = load i32, ptr %3050, align 4, !tbaa !5
  %8145 = call ptr @s2n_strerror(i32 noundef %8144, ptr noundef nonnull @.str.6) #12
  %8146 = load i32, ptr %3050, align 4, !tbaa !5
  %8147 = call ptr @s2n_strerror_debug(i32 noundef %8146, ptr noundef nonnull @.str.6) #12
  %8148 = load i32, ptr %3104, align 4, !tbaa !5
  %8149 = call ptr @strerror(i32 noundef %8148) #12
  %8150 = load i32, ptr %3104, align 4, !tbaa !5
  %8151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8142, ptr noundef nonnull %.str.7.sink4502, i32 noundef %8143, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.3, i32 noundef 752, ptr noundef %8145, ptr noundef %8147, ptr noundef %8149, i32 noundef %8150) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8152:                                             ; preds = %8121
  %8153 = load i32, ptr @test_count, align 4, !tbaa !5
  %8154 = add nsw i32 %8153, 1
  store i32 %8154, ptr @test_count, align 4, !tbaa !5
  %8155 = call i32 @s2n_test_rewrite_length(ptr noundef nonnull %56)
  %8156 = icmp eq i32 %8155, -1
  br i1 %8156, label %8157, label %8179

8157:                                             ; preds = %8152
  %8158 = load i32, ptr %3104, align 4, !tbaa !5
  %8159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8160 = call i32 @s2n_print_stacktrace(ptr noundef %8159) #12
  %8161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8162 = trunc nuw i8 %8161 to i1
  br i1 %8162, label %8163, label %8167

8163:                                             ; preds = %8157
  %8164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8165 = call i32 @fileno(ptr noundef %8164) #12
  %8166 = call i32 @isatty(i32 noundef %8165) #12
  %.not1500 = icmp eq i32 %8166, 0
  br i1 %.not1500, label %8167, label %8168

8167:                                             ; preds = %8163, %8157
  br label %8168

8168:                                             ; preds = %8163, %8167
  %.str.7.sink4511 = phi ptr [ @.str.7, %8167 ], [ @.str.4, %8163 ]
  store i32 %8158, ptr %3104, align 4, !tbaa !5
  %8169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8170 = load i32, ptr @test_count, align 4, !tbaa !5
  %8171 = load i32, ptr %3050, align 4, !tbaa !5
  %8172 = call ptr @s2n_strerror(i32 noundef %8171, ptr noundef nonnull @.str.6) #12
  %8173 = load i32, ptr %3050, align 4, !tbaa !5
  %8174 = call ptr @s2n_strerror_debug(i32 noundef %8173, ptr noundef nonnull @.str.6) #12
  %8175 = load i32, ptr %3104, align 4, !tbaa !5
  %8176 = call ptr @strerror(i32 noundef %8175) #12
  %8177 = load i32, ptr %3104, align 4, !tbaa !5
  %8178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8169, ptr noundef nonnull %.str.7.sink4511, i32 noundef %8170, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.3, i32 noundef 753, ptr noundef %8172, ptr noundef %8174, ptr noundef %8176, i32 noundef %8177) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8179:                                             ; preds = %8152
  %8180 = load i32, ptr @test_count, align 4, !tbaa !5
  %8181 = add nsw i32 %8180, 1
  store i32 %8181, ptr @test_count, align 4, !tbaa !5
  %8182 = call i32 %2660(ptr noundef nonnull %7962, ptr noundef nonnull %56) #12
  %8183 = icmp eq i32 %8182, -1
  br i1 %8183, label %8184, label %8206

8184:                                             ; preds = %8179
  %8185 = load i32, ptr %3104, align 4, !tbaa !5
  %8186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8187 = call i32 @s2n_print_stacktrace(ptr noundef %8186) #12
  %8188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8189 = trunc nuw i8 %8188 to i1
  br i1 %8189, label %8190, label %8194

8190:                                             ; preds = %8184
  %8191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8192 = call i32 @fileno(ptr noundef %8191) #12
  %8193 = call i32 @isatty(i32 noundef %8192) #12
  %.not1499 = icmp eq i32 %8193, 0
  br i1 %.not1499, label %8194, label %8195

8194:                                             ; preds = %8190, %8184
  br label %8195

8195:                                             ; preds = %8190, %8194
  %.str.7.sink4520 = phi ptr [ @.str.7, %8194 ], [ @.str.4, %8190 ]
  store i32 %8185, ptr %3104, align 4, !tbaa !5
  %8196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8197 = load i32, ptr @test_count, align 4, !tbaa !5
  %8198 = load i32, ptr %3050, align 4, !tbaa !5
  %8199 = call ptr @s2n_strerror(i32 noundef %8198, ptr noundef nonnull @.str.6) #12
  %8200 = load i32, ptr %3050, align 4, !tbaa !5
  %8201 = call ptr @s2n_strerror_debug(i32 noundef %8200, ptr noundef nonnull @.str.6) #12
  %8202 = load i32, ptr %3104, align 4, !tbaa !5
  %8203 = call ptr @strerror(i32 noundef %8202) #12
  %8204 = load i32, ptr %3104, align 4, !tbaa !5
  %8205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8196, ptr noundef nonnull %.str.7.sink4520, i32 noundef %8197, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.3, i32 noundef 755, ptr noundef %8199, ptr noundef %8201, ptr noundef %8203, i32 noundef %8204) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8206:                                             ; preds = %8179
  %8207 = load i32, ptr @test_count, align 4, !tbaa !5
  %8208 = add nsw i32 %8207, 1
  store i32 %8208, ptr @test_count, align 4, !tbaa !5
  %8209 = getelementptr inbounds i8, ptr %56, i64 28
  %8210 = load i32, ptr %8209, align 4, !tbaa !18
  %8211 = getelementptr inbounds i8, ptr %56, i64 24
  %8212 = load i32, ptr %8211, align 8, !tbaa !21
  %8213 = icmp eq i32 %8210, %8212
  br i1 %8213, label %8236, label %8214

8214:                                             ; preds = %8206
  %8215 = load i32, ptr %3104, align 4, !tbaa !5
  %8216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8217 = call i32 @s2n_print_stacktrace(ptr noundef %8216) #12
  %8218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8219 = trunc nuw i8 %8218 to i1
  br i1 %8219, label %8220, label %8224

8220:                                             ; preds = %8214
  %8221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8222 = call i32 @fileno(ptr noundef %8221) #12
  %8223 = call i32 @isatty(i32 noundef %8222) #12
  %.not1338 = icmp eq i32 %8223, 0
  br i1 %.not1338, label %8224, label %8225

8224:                                             ; preds = %8220, %8214
  br label %8225

8225:                                             ; preds = %8220, %8224
  %.str.7.sink4529 = phi ptr [ @.str.7, %8224 ], [ @.str.4, %8220 ]
  store i32 %8215, ptr %3104, align 4, !tbaa !5
  %8226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8227 = load i32, ptr @test_count, align 4, !tbaa !5
  %8228 = load i32, ptr %3050, align 4, !tbaa !5
  %8229 = call ptr @s2n_strerror(i32 noundef %8228, ptr noundef nonnull @.str.6) #12
  %8230 = load i32, ptr %3050, align 4, !tbaa !5
  %8231 = call ptr @s2n_strerror_debug(i32 noundef %8230, ptr noundef nonnull @.str.6) #12
  %8232 = load i32, ptr %3104, align 4, !tbaa !5
  %8233 = call ptr @strerror(i32 noundef %8232) #12
  %8234 = load i32, ptr %3104, align 4, !tbaa !5
  %8235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8226, ptr noundef nonnull %.str.7.sink4529, i32 noundef %8227, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 758, ptr noundef %8229, ptr noundef %8231, ptr noundef %8233, i32 noundef %8234) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8236:                                             ; preds = %8206
  %8237 = getelementptr inbounds i8, ptr %7962, i64 704
  %8238 = add nsw i32 %8207, 2
  store i32 %8238, ptr @test_count, align 4, !tbaa !5
  %8239 = load ptr, ptr %8237, align 8, !tbaa !22
  %8240 = icmp eq ptr %8239, null
  br i1 %8240, label %8241, label %8263

8241:                                             ; preds = %8236
  %8242 = load i32, ptr %3104, align 4, !tbaa !5
  %8243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8244 = call i32 @s2n_print_stacktrace(ptr noundef %8243) #12
  %8245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8246 = trunc nuw i8 %8245 to i1
  br i1 %8246, label %8247, label %8251

8247:                                             ; preds = %8241
  %8248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8249 = call i32 @fileno(ptr noundef %8248) #12
  %8250 = call i32 @isatty(i32 noundef %8249) #12
  %.not1498 = icmp eq i32 %8250, 0
  br i1 %.not1498, label %8251, label %8252

8251:                                             ; preds = %8247, %8241
  br label %8252

8252:                                             ; preds = %8247, %8251
  %.str.7.sink4538 = phi ptr [ @.str.7, %8251 ], [ @.str.4, %8247 ]
  store i32 %8242, ptr %3104, align 4, !tbaa !5
  %8253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8254 = load i32, ptr @test_count, align 4, !tbaa !5
  %8255 = load i32, ptr %3050, align 4, !tbaa !5
  %8256 = call ptr @s2n_strerror(i32 noundef %8255, ptr noundef nonnull @.str.6) #12
  %8257 = load i32, ptr %3050, align 4, !tbaa !5
  %8258 = call ptr @s2n_strerror_debug(i32 noundef %8257, ptr noundef nonnull @.str.6) #12
  %8259 = load i32, ptr %3104, align 4, !tbaa !5
  %8260 = call ptr @strerror(i32 noundef %8259) #12
  %8261 = load i32, ptr %3104, align 4, !tbaa !5
  %8262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8253, ptr noundef nonnull %.str.7.sink4538, i32 noundef %8254, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.3, i32 noundef 762, ptr noundef %8256, ptr noundef %8258, ptr noundef %8260, i32 noundef %8261) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8263:                                             ; preds = %8236
  %8264 = add nsw i32 %8207, 3
  store i32 %8264, ptr @test_count, align 4, !tbaa !5
  %8265 = getelementptr inbounds i8, ptr %7962, i64 712
  %8266 = load ptr, ptr %8265, align 8, !tbaa !26
  %8267 = icmp eq ptr %8266, null
  br i1 %8267, label %8268, label %8290

8268:                                             ; preds = %8263
  %8269 = load i32, ptr %3104, align 4, !tbaa !5
  %8270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8271 = call i32 @s2n_print_stacktrace(ptr noundef %8270) #12
  %8272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8273 = trunc nuw i8 %8272 to i1
  br i1 %8273, label %8274, label %8278

8274:                                             ; preds = %8268
  %8275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8276 = call i32 @fileno(ptr noundef %8275) #12
  %8277 = call i32 @isatty(i32 noundef %8276) #12
  %.not1497 = icmp eq i32 %8277, 0
  br i1 %.not1497, label %8278, label %8279

8278:                                             ; preds = %8274, %8268
  br label %8279

8279:                                             ; preds = %8274, %8278
  %.str.7.sink4547 = phi ptr [ @.str.7, %8278 ], [ @.str.4, %8274 ]
  store i32 %8269, ptr %3104, align 4, !tbaa !5
  %8280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8281 = load i32, ptr @test_count, align 4, !tbaa !5
  %8282 = load i32, ptr %3050, align 4, !tbaa !5
  %8283 = call ptr @s2n_strerror(i32 noundef %8282, ptr noundef nonnull @.str.6) #12
  %8284 = load i32, ptr %3050, align 4, !tbaa !5
  %8285 = call ptr @s2n_strerror_debug(i32 noundef %8284, ptr noundef nonnull @.str.6) #12
  %8286 = load i32, ptr %3104, align 4, !tbaa !5
  %8287 = call ptr @strerror(i32 noundef %8286) #12
  %8288 = load i32, ptr %3104, align 4, !tbaa !5
  %8289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8280, ptr noundef nonnull %.str.7.sink4547, i32 noundef %8281, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.3, i32 noundef 763, ptr noundef %8283, ptr noundef %8285, ptr noundef %8287, i32 noundef %8288) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8290:                                             ; preds = %8263
  %8291 = add nsw i32 %8207, 4
  store i32 %8291, ptr @test_count, align 4, !tbaa !5
  %8292 = load ptr, ptr %57, align 8, !tbaa !9
  %8293 = getelementptr inbounds i8, ptr %8292, i64 8
  %8294 = load ptr, ptr %8293, align 8, !tbaa !24
  %8295 = load ptr, ptr %8294, align 8, !tbaa !9
  %8296 = icmp eq ptr %8239, %8295
  br i1 %8296, label %8319, label %8297

8297:                                             ; preds = %8290
  %8298 = load i32, ptr %3104, align 4, !tbaa !5
  %8299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8300 = call i32 @s2n_print_stacktrace(ptr noundef %8299) #12
  %8301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8302 = trunc nuw i8 %8301 to i1
  br i1 %8302, label %8303, label %8307

8303:                                             ; preds = %8297
  %8304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8305 = call i32 @fileno(ptr noundef %8304) #12
  %8306 = call i32 @isatty(i32 noundef %8305) #12
  %.not1339 = icmp eq i32 %8306, 0
  br i1 %.not1339, label %8307, label %8308

8307:                                             ; preds = %8303, %8297
  br label %8308

8308:                                             ; preds = %8303, %8307
  %.str.7.sink4556 = phi ptr [ @.str.7, %8307 ], [ @.str.4, %8303 ]
  store i32 %8298, ptr %3104, align 4, !tbaa !5
  %8309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8310 = load i32, ptr @test_count, align 4, !tbaa !5
  %8311 = load i32, ptr %3050, align 4, !tbaa !5
  %8312 = call ptr @s2n_strerror(i32 noundef %8311, ptr noundef nonnull @.str.6) #12
  %8313 = load i32, ptr %3050, align 4, !tbaa !5
  %8314 = call ptr @s2n_strerror_debug(i32 noundef %8313, ptr noundef nonnull @.str.6) #12
  %8315 = load i32, ptr %3104, align 4, !tbaa !5
  %8316 = call ptr @strerror(i32 noundef %8315) #12
  %8317 = load i32, ptr %3104, align 4, !tbaa !5
  %8318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8309, ptr noundef nonnull %.str.7.sink4556, i32 noundef %8310, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.3, i32 noundef 764, ptr noundef %8312, ptr noundef %8314, ptr noundef %8316, i32 noundef %8317) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8319:                                             ; preds = %8290
  %8320 = add nsw i32 %8207, 5
  store i32 %8320, ptr @test_count, align 4, !tbaa !5
  %8321 = call i32 @s2n_stuffer_free(ptr noundef nonnull %56) #12
  %8322 = icmp eq i32 %8321, -1
  br i1 %8322, label %8323, label %8345

8323:                                             ; preds = %8319
  %8324 = load i32, ptr %3104, align 4, !tbaa !5
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = call i32 @s2n_print_stacktrace(ptr noundef %8325) #12
  %8327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8328 = trunc nuw i8 %8327 to i1
  br i1 %8328, label %8329, label %8333

8329:                                             ; preds = %8323
  %8330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8331 = call i32 @fileno(ptr noundef %8330) #12
  %8332 = call i32 @isatty(i32 noundef %8331) #12
  %.not1496 = icmp eq i32 %8332, 0
  br i1 %.not1496, label %8333, label %8334

8333:                                             ; preds = %8329, %8323
  br label %8334

8334:                                             ; preds = %8329, %8333
  %.str.7.sink4565 = phi ptr [ @.str.7, %8333 ], [ @.str.4, %8329 ]
  store i32 %8324, ptr %3104, align 4, !tbaa !5
  %8335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8336 = load i32, ptr @test_count, align 4, !tbaa !5
  %8337 = load i32, ptr %3050, align 4, !tbaa !5
  %8338 = call ptr @s2n_strerror(i32 noundef %8337, ptr noundef nonnull @.str.6) #12
  %8339 = load i32, ptr %3050, align 4, !tbaa !5
  %8340 = call ptr @s2n_strerror_debug(i32 noundef %8339, ptr noundef nonnull @.str.6) #12
  %8341 = load i32, ptr %3104, align 4, !tbaa !5
  %8342 = call ptr @strerror(i32 noundef %8341) #12
  %8343 = load i32, ptr %3104, align 4, !tbaa !5
  %8344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8335, ptr noundef nonnull %.str.7.sink4565, i32 noundef %8336, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 766, ptr noundef %8338, ptr noundef %8340, ptr noundef %8342, i32 noundef %8343) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8345:                                             ; preds = %8319
  %8346 = load i32, ptr @test_count, align 4, !tbaa !5
  %8347 = add nsw i32 %8346, 1
  store i32 %8347, ptr @test_count, align 4, !tbaa !5
  %8348 = call i32 @s2n_connection_free(ptr noundef nonnull %7962) #12
  %8349 = icmp eq i32 %8348, -1
  br i1 %8349, label %8350, label %8372

8350:                                             ; preds = %8345
  %8351 = load i32, ptr %3104, align 4, !tbaa !5
  %8352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8353 = call i32 @s2n_print_stacktrace(ptr noundef %8352) #12
  %8354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8355 = trunc nuw i8 %8354 to i1
  br i1 %8355, label %8356, label %8360

8356:                                             ; preds = %8350
  %8357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8358 = call i32 @fileno(ptr noundef %8357) #12
  %8359 = call i32 @isatty(i32 noundef %8358) #12
  %.not1495 = icmp eq i32 %8359, 0
  br i1 %.not1495, label %8360, label %8361

8360:                                             ; preds = %8356, %8350
  br label %8361

8361:                                             ; preds = %8356, %8360
  %.str.7.sink4574 = phi ptr [ @.str.7, %8360 ], [ @.str.4, %8356 ]
  store i32 %8351, ptr %3104, align 4, !tbaa !5
  %8362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8363 = load i32, ptr @test_count, align 4, !tbaa !5
  %8364 = load i32, ptr %3050, align 4, !tbaa !5
  %8365 = call ptr @s2n_strerror(i32 noundef %8364, ptr noundef nonnull @.str.6) #12
  %8366 = load i32, ptr %3050, align 4, !tbaa !5
  %8367 = call ptr @s2n_strerror_debug(i32 noundef %8366, ptr noundef nonnull @.str.6) #12
  %8368 = load i32, ptr %3104, align 4, !tbaa !5
  %8369 = call ptr @strerror(i32 noundef %8368) #12
  %8370 = load i32, ptr %3104, align 4, !tbaa !5
  %8371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8362, ptr noundef nonnull %.str.7.sink4574, i32 noundef %8363, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 767, ptr noundef %8365, ptr noundef %8367, ptr noundef %8369, i32 noundef %8370) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8372:                                             ; preds = %8345
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %56) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %58) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %58, i8 0, i64 40, i1 false)
  %8373 = load i32, ptr @test_count, align 4, !tbaa !5
  %8374 = add nsw i32 %8373, 1
  store i32 %8374, ptr @test_count, align 4, !tbaa !5
  %8375 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %8376 = icmp eq ptr %8375, null
  br i1 %8376, label %8377, label %8399

8377:                                             ; preds = %8372
  %8378 = load i32, ptr %3104, align 4, !tbaa !5
  %8379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8380 = call i32 @s2n_print_stacktrace(ptr noundef %8379) #12
  %8381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8382 = trunc nuw i8 %8381 to i1
  br i1 %8382, label %8383, label %8387

8383:                                             ; preds = %8377
  %8384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8385 = call i32 @fileno(ptr noundef %8384) #12
  %8386 = call i32 @isatty(i32 noundef %8385) #12
  %.not1494 = icmp eq i32 %8386, 0
  br i1 %.not1494, label %8387, label %8388

8387:                                             ; preds = %8383, %8377
  br label %8388

8388:                                             ; preds = %8383, %8387
  %.str.7.sink4583 = phi ptr [ @.str.7, %8387 ], [ @.str.4, %8383 ]
  store i32 %8378, ptr %3104, align 4, !tbaa !5
  %8389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8390 = load i32, ptr @test_count, align 4, !tbaa !5
  %8391 = load i32, ptr %3050, align 4, !tbaa !5
  %8392 = call ptr @s2n_strerror(i32 noundef %8391, ptr noundef nonnull @.str.6) #12
  %8393 = load i32, ptr %3050, align 4, !tbaa !5
  %8394 = call ptr @s2n_strerror_debug(i32 noundef %8393, ptr noundef nonnull @.str.6) #12
  %8395 = load i32, ptr %3104, align 4, !tbaa !5
  %8396 = call ptr @strerror(i32 noundef %8395) #12
  %8397 = load i32, ptr %3104, align 4, !tbaa !5
  %8398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8389, ptr noundef nonnull %.str.7.sink4583, i32 noundef %8390, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.3, i32 noundef 774, ptr noundef %8392, ptr noundef %8394, ptr noundef %8396, i32 noundef %8397) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8399:                                             ; preds = %8372
  %8400 = load i32, ptr @test_count, align 4, !tbaa !5
  %8401 = add nsw i32 %8400, 1
  store i32 %8401, ptr @test_count, align 4, !tbaa !5
  %8402 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %8375, i8 noundef zeroext 34) #12
  %8403 = icmp eq i32 %8402, -1
  br i1 %8403, label %8404, label %8426

8404:                                             ; preds = %8399
  %8405 = load i32, ptr %3104, align 4, !tbaa !5
  %8406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8407 = call i32 @s2n_print_stacktrace(ptr noundef %8406) #12
  %8408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8409 = trunc nuw i8 %8408 to i1
  br i1 %8409, label %8410, label %8414

8410:                                             ; preds = %8404
  %8411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8412 = call i32 @fileno(ptr noundef %8411) #12
  %8413 = call i32 @isatty(i32 noundef %8412) #12
  %.not1493 = icmp eq i32 %8413, 0
  br i1 %.not1493, label %8414, label %8415

8414:                                             ; preds = %8410, %8404
  br label %8415

8415:                                             ; preds = %8410, %8414
  %.str.7.sink4592 = phi ptr [ @.str.7, %8414 ], [ @.str.4, %8410 ]
  store i32 %8405, ptr %3104, align 4, !tbaa !5
  %8416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8417 = load i32, ptr @test_count, align 4, !tbaa !5
  %8418 = load i32, ptr %3050, align 4, !tbaa !5
  %8419 = call ptr @s2n_strerror(i32 noundef %8418, ptr noundef nonnull @.str.6) #12
  %8420 = load i32, ptr %3050, align 4, !tbaa !5
  %8421 = call ptr @s2n_strerror_debug(i32 noundef %8420, ptr noundef nonnull @.str.6) #12
  %8422 = load i32, ptr %3104, align 4, !tbaa !5
  %8423 = call ptr @strerror(i32 noundef %8422) #12
  %8424 = load i32, ptr %3104, align 4, !tbaa !5
  %8425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8416, ptr noundef nonnull %.str.7.sink4592, i32 noundef %8417, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.3, i32 noundef 775, ptr noundef %8419, ptr noundef %8421, ptr noundef %8423, i32 noundef %8424) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8426:                                             ; preds = %8399
  %8427 = load i32, ptr @test_count, align 4, !tbaa !5
  %8428 = add nsw i32 %8427, 1
  store i32 %8428, ptr @test_count, align 4, !tbaa !5
  %8429 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %8375) #12
  %8430 = call zeroext i1 @s2n_result_is_ok(i32 %8429)
  br i1 %8430, label %8453, label %8431

8431:                                             ; preds = %8426
  %8432 = load i32, ptr %3104, align 4, !tbaa !5
  %8433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8434 = call i32 @s2n_print_stacktrace(ptr noundef %8433) #12
  %8435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8436 = trunc nuw i8 %8435 to i1
  br i1 %8436, label %8437, label %8441

8437:                                             ; preds = %8431
  %8438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8439 = call i32 @fileno(ptr noundef %8438) #12
  %8440 = call i32 @isatty(i32 noundef %8439) #12
  %.not1340 = icmp eq i32 %8440, 0
  br i1 %.not1340, label %8441, label %8442

8441:                                             ; preds = %8437, %8431
  br label %8442

8442:                                             ; preds = %8437, %8441
  %.str.7.sink4601 = phi ptr [ @.str.7, %8441 ], [ @.str.4, %8437 ]
  store i32 %8432, ptr %3104, align 4, !tbaa !5
  %8443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8444 = load i32, ptr @test_count, align 4, !tbaa !5
  %8445 = load i32, ptr %3050, align 4, !tbaa !5
  %8446 = call ptr @s2n_strerror(i32 noundef %8445, ptr noundef nonnull @.str.6) #12
  %8447 = load i32, ptr %3050, align 4, !tbaa !5
  %8448 = call ptr @s2n_strerror_debug(i32 noundef %8447, ptr noundef nonnull @.str.6) #12
  %8449 = load i32, ptr %3104, align 4, !tbaa !5
  %8450 = call ptr @strerror(i32 noundef %8449) #12
  %8451 = load i32, ptr %3104, align 4, !tbaa !5
  %8452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8443, ptr noundef nonnull %.str.7.sink4601, i32 noundef %8444, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 776, ptr noundef %8446, ptr noundef %8448, ptr noundef %8450, i32 noundef %8451) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8453:                                             ; preds = %8426
  %8454 = load i32, ptr @test_count, align 4, !tbaa !5
  %8455 = add nsw i32 %8454, 1
  store i32 %8455, ptr @test_count, align 4, !tbaa !5
  %8456 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %58, i32 noundef 0) #12
  %8457 = icmp eq i32 %8456, -1
  br i1 %8457, label %8458, label %8480

8458:                                             ; preds = %8453
  %8459 = load i32, ptr %3104, align 4, !tbaa !5
  %8460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8461 = call i32 @s2n_print_stacktrace(ptr noundef %8460) #12
  %8462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8463 = trunc nuw i8 %8462 to i1
  br i1 %8463, label %8464, label %8468

8464:                                             ; preds = %8458
  %8465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8466 = call i32 @fileno(ptr noundef %8465) #12
  %8467 = call i32 @isatty(i32 noundef %8466) #12
  %.not1492 = icmp eq i32 %8467, 0
  br i1 %.not1492, label %8468, label %8469

8468:                                             ; preds = %8464, %8458
  br label %8469

8469:                                             ; preds = %8464, %8468
  %.str.7.sink4610 = phi ptr [ @.str.7, %8468 ], [ @.str.4, %8464 ]
  store i32 %8459, ptr %3104, align 4, !tbaa !5
  %8470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8471 = load i32, ptr @test_count, align 4, !tbaa !5
  %8472 = load i32, ptr %3050, align 4, !tbaa !5
  %8473 = call ptr @s2n_strerror(i32 noundef %8472, ptr noundef nonnull @.str.6) #12
  %8474 = load i32, ptr %3050, align 4, !tbaa !5
  %8475 = call ptr @s2n_strerror_debug(i32 noundef %8474, ptr noundef nonnull @.str.6) #12
  %8476 = load i32, ptr %3104, align 4, !tbaa !5
  %8477 = call ptr @strerror(i32 noundef %8476) #12
  %8478 = load i32, ptr %3104, align 4, !tbaa !5
  %8479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8470, ptr noundef nonnull %.str.7.sink4610, i32 noundef %8471, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 777, ptr noundef %8473, ptr noundef %8475, ptr noundef %8477, i32 noundef %8478) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8480:                                             ; preds = %8453
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #12
  store ptr null, ptr %59, align 8, !tbaa !9
  %8481 = load i32, ptr @test_count, align 4, !tbaa !5
  %8482 = add nsw i32 %8481, 1
  store i32 %8482, ptr @test_count, align 4, !tbaa !5
  %8483 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %8375, ptr noundef nonnull %59) #12
  %8484 = icmp eq i32 %8483, -1
  br i1 %8484, label %8485, label %8507

8485:                                             ; preds = %8480
  %8486 = load i32, ptr %3104, align 4, !tbaa !5
  %8487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8488 = call i32 @s2n_print_stacktrace(ptr noundef %8487) #12
  %8489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8490 = trunc nuw i8 %8489 to i1
  br i1 %8490, label %8491, label %8495

8491:                                             ; preds = %8485
  %8492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8493 = call i32 @fileno(ptr noundef %8492) #12
  %8494 = call i32 @isatty(i32 noundef %8493) #12
  %.not1491 = icmp eq i32 %8494, 0
  br i1 %.not1491, label %8495, label %8496

8495:                                             ; preds = %8491, %8485
  br label %8496

8496:                                             ; preds = %8491, %8495
  %.str.7.sink4619 = phi ptr [ @.str.7, %8495 ], [ @.str.4, %8491 ]
  store i32 %8486, ptr %3104, align 4, !tbaa !5
  %8497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8498 = load i32, ptr @test_count, align 4, !tbaa !5
  %8499 = load i32, ptr %3050, align 4, !tbaa !5
  %8500 = call ptr @s2n_strerror(i32 noundef %8499, ptr noundef nonnull @.str.6) #12
  %8501 = load i32, ptr %3050, align 4, !tbaa !5
  %8502 = call ptr @s2n_strerror_debug(i32 noundef %8501, ptr noundef nonnull @.str.6) #12
  %8503 = load i32, ptr %3104, align 4, !tbaa !5
  %8504 = call ptr @strerror(i32 noundef %8503) #12
  %8505 = load i32, ptr %3104, align 4, !tbaa !5
  %8506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8497, ptr noundef nonnull %.str.7.sink4619, i32 noundef %8498, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 780, ptr noundef %8500, ptr noundef %8502, ptr noundef %8504, i32 noundef %8505) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8507:                                             ; preds = %8480
  %8508 = load i32, ptr @test_count, align 4, !tbaa !5
  %8509 = add nsw i32 %8508, 1
  store i32 %8509, ptr @test_count, align 4, !tbaa !5
  %8510 = load ptr, ptr %59, align 8, !tbaa !9
  %8511 = icmp eq ptr %8510, null
  br i1 %8511, label %8512, label %8534

8512:                                             ; preds = %8507
  %8513 = load i32, ptr %3104, align 4, !tbaa !5
  %8514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8515 = call i32 @s2n_print_stacktrace(ptr noundef %8514) #12
  %8516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8517 = trunc nuw i8 %8516 to i1
  br i1 %8517, label %8518, label %8522

8518:                                             ; preds = %8512
  %8519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8520 = call i32 @fileno(ptr noundef %8519) #12
  %8521 = call i32 @isatty(i32 noundef %8520) #12
  %.not1490 = icmp eq i32 %8521, 0
  br i1 %.not1490, label %8522, label %8523

8522:                                             ; preds = %8518, %8512
  br label %8523

8523:                                             ; preds = %8518, %8522
  %.str.7.sink4628 = phi ptr [ @.str.7, %8522 ], [ @.str.4, %8518 ]
  store i32 %8513, ptr %3104, align 4, !tbaa !5
  %8524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8525 = load i32, ptr @test_count, align 4, !tbaa !5
  %8526 = load i32, ptr %3050, align 4, !tbaa !5
  %8527 = call ptr @s2n_strerror(i32 noundef %8526, ptr noundef nonnull @.str.6) #12
  %8528 = load i32, ptr %3050, align 4, !tbaa !5
  %8529 = call ptr @s2n_strerror_debug(i32 noundef %8528, ptr noundef nonnull @.str.6) #12
  %8530 = load i32, ptr %3104, align 4, !tbaa !5
  %8531 = call ptr @strerror(i32 noundef %8530) #12
  %8532 = load i32, ptr %3104, align 4, !tbaa !5
  %8533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8524, ptr noundef nonnull %.str.7.sink4628, i32 noundef %8525, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 781, ptr noundef %8527, ptr noundef %8529, ptr noundef %8531, i32 noundef %8532) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8534:                                             ; preds = %8507
  %8535 = add nsw i32 %8508, 2
  store i32 %8535, ptr @test_count, align 4, !tbaa !5
  %8536 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %58, i16 noundef zeroext 0) #12
  %8537 = icmp eq i32 %8536, -1
  br i1 %8537, label %8538, label %8560

8538:                                             ; preds = %8534
  %8539 = load i32, ptr %3104, align 4, !tbaa !5
  %8540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8541 = call i32 @s2n_print_stacktrace(ptr noundef %8540) #12
  %8542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8543 = trunc nuw i8 %8542 to i1
  br i1 %8543, label %8544, label %8548

8544:                                             ; preds = %8538
  %8545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8546 = call i32 @fileno(ptr noundef %8545) #12
  %8547 = call i32 @isatty(i32 noundef %8546) #12
  %.not1489 = icmp eq i32 %8547, 0
  br i1 %.not1489, label %8548, label %8549

8548:                                             ; preds = %8544, %8538
  br label %8549

8549:                                             ; preds = %8544, %8548
  %.str.7.sink4637 = phi ptr [ @.str.7, %8548 ], [ @.str.4, %8544 ]
  store i32 %8539, ptr %3104, align 4, !tbaa !5
  %8550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8551 = load i32, ptr @test_count, align 4, !tbaa !5
  %8552 = load i32, ptr %3050, align 4, !tbaa !5
  %8553 = call ptr @s2n_strerror(i32 noundef %8552, ptr noundef nonnull @.str.6) #12
  %8554 = load i32, ptr %3050, align 4, !tbaa !5
  %8555 = call ptr @s2n_strerror_debug(i32 noundef %8554, ptr noundef nonnull @.str.6) #12
  %8556 = load i32, ptr %3104, align 4, !tbaa !5
  %8557 = call ptr @strerror(i32 noundef %8556) #12
  %8558 = load i32, ptr %3104, align 4, !tbaa !5
  %8559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8550, ptr noundef nonnull %.str.7.sink4637, i32 noundef %8551, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.3, i32 noundef 783, ptr noundef %8553, ptr noundef %8555, ptr noundef %8557, i32 noundef %8558) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8560:                                             ; preds = %8534
  %8561 = load i32, ptr @test_count, align 4, !tbaa !5
  %8562 = add nsw i32 %8561, 1
  store i32 %8562, ptr @test_count, align 4, !tbaa !5
  %8563 = call i32 %2660(ptr noundef nonnull %8375, ptr noundef nonnull %58) #12
  %8564 = icmp eq i32 %8563, -1
  br i1 %8564, label %8565, label %8587

8565:                                             ; preds = %8560
  %8566 = load i32, ptr %3104, align 4, !tbaa !5
  %8567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8568 = call i32 @s2n_print_stacktrace(ptr noundef %8567) #12
  %8569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8570 = trunc nuw i8 %8569 to i1
  br i1 %8570, label %8571, label %8575

8571:                                             ; preds = %8565
  %8572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8573 = call i32 @fileno(ptr noundef %8572) #12
  %8574 = call i32 @isatty(i32 noundef %8573) #12
  %.not1488 = icmp eq i32 %8574, 0
  br i1 %.not1488, label %8575, label %8576

8575:                                             ; preds = %8571, %8565
  br label %8576

8576:                                             ; preds = %8571, %8575
  %.str.7.sink4646 = phi ptr [ @.str.7, %8575 ], [ @.str.4, %8571 ]
  store i32 %8566, ptr %3104, align 4, !tbaa !5
  %8577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8578 = load i32, ptr @test_count, align 4, !tbaa !5
  %8579 = load i32, ptr %3050, align 4, !tbaa !5
  %8580 = call ptr @s2n_strerror(i32 noundef %8579, ptr noundef nonnull @.str.6) #12
  %8581 = load i32, ptr %3050, align 4, !tbaa !5
  %8582 = call ptr @s2n_strerror_debug(i32 noundef %8581, ptr noundef nonnull @.str.6) #12
  %8583 = load i32, ptr %3104, align 4, !tbaa !5
  %8584 = call ptr @strerror(i32 noundef %8583) #12
  %8585 = load i32, ptr %3104, align 4, !tbaa !5
  %8586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8577, ptr noundef nonnull %.str.7.sink4646, i32 noundef %8578, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 785, ptr noundef %8580, ptr noundef %8582, ptr noundef %8584, i32 noundef %8585) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8587:                                             ; preds = %8560
  %8588 = getelementptr inbounds i8, ptr %8375, i64 704
  %8589 = load i32, ptr @test_count, align 4, !tbaa !5
  %8590 = add nsw i32 %8589, 1
  store i32 %8590, ptr @test_count, align 4, !tbaa !5
  %8591 = load ptr, ptr %8588, align 8, !tbaa !22
  %8592 = icmp eq ptr %8591, null
  br i1 %8592, label %8615, label %8593

8593:                                             ; preds = %8587
  %8594 = load i32, ptr %3104, align 4, !tbaa !5
  %8595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8596 = call i32 @s2n_print_stacktrace(ptr noundef %8595) #12
  %8597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8598 = trunc nuw i8 %8597 to i1
  br i1 %8598, label %8599, label %8603

8599:                                             ; preds = %8593
  %8600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8601 = call i32 @fileno(ptr noundef %8600) #12
  %8602 = call i32 @isatty(i32 noundef %8601) #12
  %.not1341 = icmp eq i32 %8602, 0
  br i1 %.not1341, label %8603, label %8604

8603:                                             ; preds = %8599, %8593
  br label %8604

8604:                                             ; preds = %8599, %8603
  %.str.7.sink4655 = phi ptr [ @.str.7, %8603 ], [ @.str.4, %8599 ]
  store i32 %8594, ptr %3104, align 4, !tbaa !5
  %8605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8606 = load i32, ptr @test_count, align 4, !tbaa !5
  %8607 = load i32, ptr %3050, align 4, !tbaa !5
  %8608 = call ptr @s2n_strerror(i32 noundef %8607, ptr noundef nonnull @.str.6) #12
  %8609 = load i32, ptr %3050, align 4, !tbaa !5
  %8610 = call ptr @s2n_strerror_debug(i32 noundef %8609, ptr noundef nonnull @.str.6) #12
  %8611 = load i32, ptr %3104, align 4, !tbaa !5
  %8612 = call ptr @strerror(i32 noundef %8611) #12
  %8613 = load i32, ptr %3104, align 4, !tbaa !5
  %8614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8605, ptr noundef nonnull %.str.7.sink4655, i32 noundef %8606, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.3, i32 noundef 789, ptr noundef %8608, ptr noundef %8610, ptr noundef %8612, i32 noundef %8613) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8615:                                             ; preds = %8587
  %8616 = add nsw i32 %8589, 2
  store i32 %8616, ptr @test_count, align 4, !tbaa !5
  %8617 = getelementptr inbounds i8, ptr %8375, i64 712
  %8618 = load ptr, ptr %8617, align 8, !tbaa !26
  %8619 = icmp eq ptr %8618, null
  br i1 %8619, label %8642, label %8620

8620:                                             ; preds = %8615
  %8621 = load i32, ptr %3104, align 4, !tbaa !5
  %8622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8623 = call i32 @s2n_print_stacktrace(ptr noundef %8622) #12
  %8624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8625 = trunc nuw i8 %8624 to i1
  br i1 %8625, label %8626, label %8630

8626:                                             ; preds = %8620
  %8627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8628 = call i32 @fileno(ptr noundef %8627) #12
  %8629 = call i32 @isatty(i32 noundef %8628) #12
  %.not1342 = icmp eq i32 %8629, 0
  br i1 %.not1342, label %8630, label %8631

8630:                                             ; preds = %8626, %8620
  br label %8631

8631:                                             ; preds = %8626, %8630
  %.str.7.sink4664 = phi ptr [ @.str.7, %8630 ], [ @.str.4, %8626 ]
  store i32 %8621, ptr %3104, align 4, !tbaa !5
  %8632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8633 = load i32, ptr @test_count, align 4, !tbaa !5
  %8634 = load i32, ptr %3050, align 4, !tbaa !5
  %8635 = call ptr @s2n_strerror(i32 noundef %8634, ptr noundef nonnull @.str.6) #12
  %8636 = load i32, ptr %3050, align 4, !tbaa !5
  %8637 = call ptr @s2n_strerror_debug(i32 noundef %8636, ptr noundef nonnull @.str.6) #12
  %8638 = load i32, ptr %3104, align 4, !tbaa !5
  %8639 = call ptr @strerror(i32 noundef %8638) #12
  %8640 = load i32, ptr %3104, align 4, !tbaa !5
  %8641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8632, ptr noundef nonnull %.str.7.sink4664, i32 noundef %8633, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.3, i32 noundef 790, ptr noundef %8635, ptr noundef %8637, ptr noundef %8639, i32 noundef %8640) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8642:                                             ; preds = %8615
  %8643 = add nsw i32 %8589, 3
  store i32 %8643, ptr @test_count, align 4, !tbaa !5
  %8644 = call i32 @s2n_stuffer_free(ptr noundef nonnull %58) #12
  %8645 = icmp eq i32 %8644, -1
  br i1 %8645, label %8646, label %8668

8646:                                             ; preds = %8642
  %8647 = load i32, ptr %3104, align 4, !tbaa !5
  %8648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8649 = call i32 @s2n_print_stacktrace(ptr noundef %8648) #12
  %8650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8651 = trunc nuw i8 %8650 to i1
  br i1 %8651, label %8652, label %8656

8652:                                             ; preds = %8646
  %8653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8654 = call i32 @fileno(ptr noundef %8653) #12
  %8655 = call i32 @isatty(i32 noundef %8654) #12
  %.not1487 = icmp eq i32 %8655, 0
  br i1 %.not1487, label %8656, label %8657

8656:                                             ; preds = %8652, %8646
  br label %8657

8657:                                             ; preds = %8652, %8656
  %.str.7.sink4673 = phi ptr [ @.str.7, %8656 ], [ @.str.4, %8652 ]
  store i32 %8647, ptr %3104, align 4, !tbaa !5
  %8658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8659 = load i32, ptr @test_count, align 4, !tbaa !5
  %8660 = load i32, ptr %3050, align 4, !tbaa !5
  %8661 = call ptr @s2n_strerror(i32 noundef %8660, ptr noundef nonnull @.str.6) #12
  %8662 = load i32, ptr %3050, align 4, !tbaa !5
  %8663 = call ptr @s2n_strerror_debug(i32 noundef %8662, ptr noundef nonnull @.str.6) #12
  %8664 = load i32, ptr %3104, align 4, !tbaa !5
  %8665 = call ptr @strerror(i32 noundef %8664) #12
  %8666 = load i32, ptr %3104, align 4, !tbaa !5
  %8667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8658, ptr noundef nonnull %.str.7.sink4673, i32 noundef %8659, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 792, ptr noundef %8661, ptr noundef %8663, ptr noundef %8665, i32 noundef %8666) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8668:                                             ; preds = %8642
  %8669 = load i32, ptr @test_count, align 4, !tbaa !5
  %8670 = add nsw i32 %8669, 1
  store i32 %8670, ptr @test_count, align 4, !tbaa !5
  %8671 = call i32 @s2n_connection_free(ptr noundef nonnull %8375) #12
  %8672 = icmp eq i32 %8671, -1
  br i1 %8672, label %8673, label %8695

8673:                                             ; preds = %8668
  %8674 = load i32, ptr %3104, align 4, !tbaa !5
  %8675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8676 = call i32 @s2n_print_stacktrace(ptr noundef %8675) #12
  %8677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8678 = trunc nuw i8 %8677 to i1
  br i1 %8678, label %8679, label %8683

8679:                                             ; preds = %8673
  %8680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8681 = call i32 @fileno(ptr noundef %8680) #12
  %8682 = call i32 @isatty(i32 noundef %8681) #12
  %.not1486 = icmp eq i32 %8682, 0
  br i1 %.not1486, label %8683, label %8684

8683:                                             ; preds = %8679, %8673
  br label %8684

8684:                                             ; preds = %8679, %8683
  %.str.7.sink4682 = phi ptr [ @.str.7, %8683 ], [ @.str.4, %8679 ]
  store i32 %8674, ptr %3104, align 4, !tbaa !5
  %8685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8686 = load i32, ptr @test_count, align 4, !tbaa !5
  %8687 = load i32, ptr %3050, align 4, !tbaa !5
  %8688 = call ptr @s2n_strerror(i32 noundef %8687, ptr noundef nonnull @.str.6) #12
  %8689 = load i32, ptr %3050, align 4, !tbaa !5
  %8690 = call ptr @s2n_strerror_debug(i32 noundef %8689, ptr noundef nonnull @.str.6) #12
  %8691 = load i32, ptr %3104, align 4, !tbaa !5
  %8692 = call ptr @strerror(i32 noundef %8691) #12
  %8693 = load i32, ptr %3104, align 4, !tbaa !5
  %8694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8685, ptr noundef nonnull %.str.7.sink4682, i32 noundef %8686, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 793, ptr noundef %8688, ptr noundef %8690, ptr noundef %8692, i32 noundef %8693) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8695:                                             ; preds = %8668
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %58) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %60) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %60, i8 0, i64 40, i1 false)
  %8696 = load i32, ptr @test_count, align 4, !tbaa !5
  %8697 = add nsw i32 %8696, 1
  store i32 %8697, ptr @test_count, align 4, !tbaa !5
  %8698 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %8699 = icmp eq ptr %8698, null
  br i1 %8699, label %8700, label %8722

8700:                                             ; preds = %8695
  %8701 = load i32, ptr %3104, align 4, !tbaa !5
  %8702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8703 = call i32 @s2n_print_stacktrace(ptr noundef %8702) #12
  %8704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8705 = trunc nuw i8 %8704 to i1
  br i1 %8705, label %8706, label %8710

8706:                                             ; preds = %8700
  %8707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8708 = call i32 @fileno(ptr noundef %8707) #12
  %8709 = call i32 @isatty(i32 noundef %8708) #12
  %.not1485 = icmp eq i32 %8709, 0
  br i1 %.not1485, label %8710, label %8711

8710:                                             ; preds = %8706, %8700
  br label %8711

8711:                                             ; preds = %8706, %8710
  %.str.7.sink4691 = phi ptr [ @.str.7, %8710 ], [ @.str.4, %8706 ]
  store i32 %8701, ptr %3104, align 4, !tbaa !5
  %8712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8713 = load i32, ptr @test_count, align 4, !tbaa !5
  %8714 = load i32, ptr %3050, align 4, !tbaa !5
  %8715 = call ptr @s2n_strerror(i32 noundef %8714, ptr noundef nonnull @.str.6) #12
  %8716 = load i32, ptr %3050, align 4, !tbaa !5
  %8717 = call ptr @s2n_strerror_debug(i32 noundef %8716, ptr noundef nonnull @.str.6) #12
  %8718 = load i32, ptr %3104, align 4, !tbaa !5
  %8719 = call ptr @strerror(i32 noundef %8718) #12
  %8720 = load i32, ptr %3104, align 4, !tbaa !5
  %8721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8712, ptr noundef nonnull %.str.7.sink4691, i32 noundef %8713, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.3, i32 noundef 800, ptr noundef %8715, ptr noundef %8717, ptr noundef %8719, i32 noundef %8720) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8722:                                             ; preds = %8695
  %8723 = load i32, ptr @test_count, align 4, !tbaa !5
  %8724 = add nsw i32 %8723, 1
  store i32 %8724, ptr @test_count, align 4, !tbaa !5
  %8725 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %8698, i8 noundef zeroext 34) #12
  %8726 = icmp eq i32 %8725, -1
  br i1 %8726, label %8727, label %8749

8727:                                             ; preds = %8722
  %8728 = load i32, ptr %3104, align 4, !tbaa !5
  %8729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8730 = call i32 @s2n_print_stacktrace(ptr noundef %8729) #12
  %8731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8732 = trunc nuw i8 %8731 to i1
  br i1 %8732, label %8733, label %8737

8733:                                             ; preds = %8727
  %8734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8735 = call i32 @fileno(ptr noundef %8734) #12
  %8736 = call i32 @isatty(i32 noundef %8735) #12
  %.not1484 = icmp eq i32 %8736, 0
  br i1 %.not1484, label %8737, label %8738

8737:                                             ; preds = %8733, %8727
  br label %8738

8738:                                             ; preds = %8733, %8737
  %.str.7.sink4700 = phi ptr [ @.str.7, %8737 ], [ @.str.4, %8733 ]
  store i32 %8728, ptr %3104, align 4, !tbaa !5
  %8739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8740 = load i32, ptr @test_count, align 4, !tbaa !5
  %8741 = load i32, ptr %3050, align 4, !tbaa !5
  %8742 = call ptr @s2n_strerror(i32 noundef %8741, ptr noundef nonnull @.str.6) #12
  %8743 = load i32, ptr %3050, align 4, !tbaa !5
  %8744 = call ptr @s2n_strerror_debug(i32 noundef %8743, ptr noundef nonnull @.str.6) #12
  %8745 = load i32, ptr %3104, align 4, !tbaa !5
  %8746 = call ptr @strerror(i32 noundef %8745) #12
  %8747 = load i32, ptr %3104, align 4, !tbaa !5
  %8748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8739, ptr noundef nonnull %.str.7.sink4700, i32 noundef %8740, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.3, i32 noundef 801, ptr noundef %8742, ptr noundef %8744, ptr noundef %8746, i32 noundef %8747) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8749:                                             ; preds = %8722
  %8750 = load i32, ptr @test_count, align 4, !tbaa !5
  %8751 = add nsw i32 %8750, 1
  store i32 %8751, ptr @test_count, align 4, !tbaa !5
  %8752 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %8698) #12
  %8753 = call zeroext i1 @s2n_result_is_ok(i32 %8752)
  br i1 %8753, label %8776, label %8754

8754:                                             ; preds = %8749
  %8755 = load i32, ptr %3104, align 4, !tbaa !5
  %8756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8757 = call i32 @s2n_print_stacktrace(ptr noundef %8756) #12
  %8758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8759 = trunc nuw i8 %8758 to i1
  br i1 %8759, label %8760, label %8764

8760:                                             ; preds = %8754
  %8761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8762 = call i32 @fileno(ptr noundef %8761) #12
  %8763 = call i32 @isatty(i32 noundef %8762) #12
  %.not1343 = icmp eq i32 %8763, 0
  br i1 %.not1343, label %8764, label %8765

8764:                                             ; preds = %8760, %8754
  br label %8765

8765:                                             ; preds = %8760, %8764
  %.str.7.sink4709 = phi ptr [ @.str.7, %8764 ], [ @.str.4, %8760 ]
  store i32 %8755, ptr %3104, align 4, !tbaa !5
  %8766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8767 = load i32, ptr @test_count, align 4, !tbaa !5
  %8768 = load i32, ptr %3050, align 4, !tbaa !5
  %8769 = call ptr @s2n_strerror(i32 noundef %8768, ptr noundef nonnull @.str.6) #12
  %8770 = load i32, ptr %3050, align 4, !tbaa !5
  %8771 = call ptr @s2n_strerror_debug(i32 noundef %8770, ptr noundef nonnull @.str.6) #12
  %8772 = load i32, ptr %3104, align 4, !tbaa !5
  %8773 = call ptr @strerror(i32 noundef %8772) #12
  %8774 = load i32, ptr %3104, align 4, !tbaa !5
  %8775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8766, ptr noundef nonnull %.str.7.sink4709, i32 noundef %8767, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.3, i32 noundef 802, ptr noundef %8769, ptr noundef %8771, ptr noundef %8773, i32 noundef %8774) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8776:                                             ; preds = %8749
  %8777 = load i32, ptr @test_count, align 4, !tbaa !5
  %8778 = add nsw i32 %8777, 1
  store i32 %8778, ptr @test_count, align 4, !tbaa !5
  %8779 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %60, i32 noundef 0) #12
  %8780 = icmp eq i32 %8779, -1
  br i1 %8780, label %8781, label %8803

8781:                                             ; preds = %8776
  %8782 = load i32, ptr %3104, align 4, !tbaa !5
  %8783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8784 = call i32 @s2n_print_stacktrace(ptr noundef %8783) #12
  %8785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8786 = trunc nuw i8 %8785 to i1
  br i1 %8786, label %8787, label %8791

8787:                                             ; preds = %8781
  %8788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8789 = call i32 @fileno(ptr noundef %8788) #12
  %8790 = call i32 @isatty(i32 noundef %8789) #12
  %.not1483 = icmp eq i32 %8790, 0
  br i1 %.not1483, label %8791, label %8792

8791:                                             ; preds = %8787, %8781
  br label %8792

8792:                                             ; preds = %8787, %8791
  %.str.7.sink4718 = phi ptr [ @.str.7, %8791 ], [ @.str.4, %8787 ]
  store i32 %8782, ptr %3104, align 4, !tbaa !5
  %8793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8794 = load i32, ptr @test_count, align 4, !tbaa !5
  %8795 = load i32, ptr %3050, align 4, !tbaa !5
  %8796 = call ptr @s2n_strerror(i32 noundef %8795, ptr noundef nonnull @.str.6) #12
  %8797 = load i32, ptr %3050, align 4, !tbaa !5
  %8798 = call ptr @s2n_strerror_debug(i32 noundef %8797, ptr noundef nonnull @.str.6) #12
  %8799 = load i32, ptr %3104, align 4, !tbaa !5
  %8800 = call ptr @strerror(i32 noundef %8799) #12
  %8801 = load i32, ptr %3104, align 4, !tbaa !5
  %8802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8793, ptr noundef nonnull %.str.7.sink4718, i32 noundef %8794, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 803, ptr noundef %8796, ptr noundef %8798, ptr noundef %8800, i32 noundef %8801) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8803:                                             ; preds = %8776
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #12
  store ptr null, ptr %61, align 8, !tbaa !9
  %8804 = load i32, ptr @test_count, align 4, !tbaa !5
  %8805 = add nsw i32 %8804, 1
  store i32 %8805, ptr @test_count, align 4, !tbaa !5
  %8806 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %8698, ptr noundef nonnull %61) #12
  %8807 = icmp eq i32 %8806, -1
  br i1 %8807, label %8808, label %8830

8808:                                             ; preds = %8803
  %8809 = load i32, ptr %3104, align 4, !tbaa !5
  %8810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8811 = call i32 @s2n_print_stacktrace(ptr noundef %8810) #12
  %8812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8813 = trunc nuw i8 %8812 to i1
  br i1 %8813, label %8814, label %8818

8814:                                             ; preds = %8808
  %8815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8816 = call i32 @fileno(ptr noundef %8815) #12
  %8817 = call i32 @isatty(i32 noundef %8816) #12
  %.not1482 = icmp eq i32 %8817, 0
  br i1 %.not1482, label %8818, label %8819

8818:                                             ; preds = %8814, %8808
  br label %8819

8819:                                             ; preds = %8814, %8818
  %.str.7.sink4727 = phi ptr [ @.str.7, %8818 ], [ @.str.4, %8814 ]
  store i32 %8809, ptr %3104, align 4, !tbaa !5
  %8820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8821 = load i32, ptr @test_count, align 4, !tbaa !5
  %8822 = load i32, ptr %3050, align 4, !tbaa !5
  %8823 = call ptr @s2n_strerror(i32 noundef %8822, ptr noundef nonnull @.str.6) #12
  %8824 = load i32, ptr %3050, align 4, !tbaa !5
  %8825 = call ptr @s2n_strerror_debug(i32 noundef %8824, ptr noundef nonnull @.str.6) #12
  %8826 = load i32, ptr %3104, align 4, !tbaa !5
  %8827 = call ptr @strerror(i32 noundef %8826) #12
  %8828 = load i32, ptr %3104, align 4, !tbaa !5
  %8829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8820, ptr noundef nonnull %.str.7.sink4727, i32 noundef %8821, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.3, i32 noundef 806, ptr noundef %8823, ptr noundef %8825, ptr noundef %8827, i32 noundef %8828) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8830:                                             ; preds = %8803
  %8831 = load i32, ptr @test_count, align 4, !tbaa !5
  %8832 = add nsw i32 %8831, 1
  store i32 %8832, ptr @test_count, align 4, !tbaa !5
  %8833 = load ptr, ptr %61, align 8, !tbaa !9
  %8834 = icmp eq ptr %8833, null
  br i1 %8834, label %8835, label %8857

8835:                                             ; preds = %8830
  %8836 = load i32, ptr %3104, align 4, !tbaa !5
  %8837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8838 = call i32 @s2n_print_stacktrace(ptr noundef %8837) #12
  %8839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8840 = trunc nuw i8 %8839 to i1
  br i1 %8840, label %8841, label %8845

8841:                                             ; preds = %8835
  %8842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8843 = call i32 @fileno(ptr noundef %8842) #12
  %8844 = call i32 @isatty(i32 noundef %8843) #12
  %.not1481 = icmp eq i32 %8844, 0
  br i1 %.not1481, label %8845, label %8846

8845:                                             ; preds = %8841, %8835
  br label %8846

8846:                                             ; preds = %8841, %8845
  %.str.7.sink4736 = phi ptr [ @.str.7, %8845 ], [ @.str.4, %8841 ]
  store i32 %8836, ptr %3104, align 4, !tbaa !5
  %8847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8848 = load i32, ptr @test_count, align 4, !tbaa !5
  %8849 = load i32, ptr %3050, align 4, !tbaa !5
  %8850 = call ptr @s2n_strerror(i32 noundef %8849, ptr noundef nonnull @.str.6) #12
  %8851 = load i32, ptr %3050, align 4, !tbaa !5
  %8852 = call ptr @s2n_strerror_debug(i32 noundef %8851, ptr noundef nonnull @.str.6) #12
  %8853 = load i32, ptr %3104, align 4, !tbaa !5
  %8854 = call ptr @strerror(i32 noundef %8853) #12
  %8855 = load i32, ptr %3104, align 4, !tbaa !5
  %8856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8847, ptr noundef nonnull %.str.7.sink4736, i32 noundef %8848, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 807, ptr noundef %8850, ptr noundef %8852, ptr noundef %8854, i32 noundef %8855) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8857:                                             ; preds = %8830
  %8858 = add nsw i32 %8831, 2
  store i32 %8858, ptr @test_count, align 4, !tbaa !5
  %8859 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %60, i32 noundef 2) #12
  %8860 = icmp eq i32 %8859, -1
  br i1 %8860, label %8861, label %8883

8861:                                             ; preds = %8857
  %8862 = load i32, ptr %3104, align 4, !tbaa !5
  %8863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8864 = call i32 @s2n_print_stacktrace(ptr noundef %8863) #12
  %8865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8866 = trunc nuw i8 %8865 to i1
  br i1 %8866, label %8867, label %8871

8867:                                             ; preds = %8861
  %8868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8869 = call i32 @fileno(ptr noundef %8868) #12
  %8870 = call i32 @isatty(i32 noundef %8869) #12
  %.not1480 = icmp eq i32 %8870, 0
  br i1 %.not1480, label %8871, label %8872

8871:                                             ; preds = %8867, %8861
  br label %8872

8872:                                             ; preds = %8867, %8871
  %.str.7.sink4745 = phi ptr [ @.str.7, %8871 ], [ @.str.4, %8867 ]
  store i32 %8862, ptr %3104, align 4, !tbaa !5
  %8873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8874 = load i32, ptr @test_count, align 4, !tbaa !5
  %8875 = load i32, ptr %3050, align 4, !tbaa !5
  %8876 = call ptr @s2n_strerror(i32 noundef %8875, ptr noundef nonnull @.str.6) #12
  %8877 = load i32, ptr %3050, align 4, !tbaa !5
  %8878 = call ptr @s2n_strerror_debug(i32 noundef %8877, ptr noundef nonnull @.str.6) #12
  %8879 = load i32, ptr %3104, align 4, !tbaa !5
  %8880 = call ptr @strerror(i32 noundef %8879) #12
  %8881 = load i32, ptr %3104, align 4, !tbaa !5
  %8882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8873, ptr noundef nonnull %.str.7.sink4745, i32 noundef %8874, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.3, i32 noundef 809, ptr noundef %8876, ptr noundef %8878, ptr noundef %8880, i32 noundef %8881) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8883:                                             ; preds = %8857
  %8884 = load i32, ptr @test_count, align 4, !tbaa !5
  %8885 = add nsw i32 %8884, 1
  store i32 %8885, ptr @test_count, align 4, !tbaa !5
  %8886 = load ptr, ptr %61, align 8, !tbaa !9
  %8887 = getelementptr inbounds i8, ptr %8886, i64 8
  %8888 = load ptr, ptr %8887, align 8, !tbaa !24
  %8889 = load ptr, ptr %8888, align 8, !tbaa !9
  %8890 = getelementptr inbounds i8, ptr %8889, i64 16
  %8891 = load i8, ptr %8890, align 8, !tbaa !30
  %8892 = zext i8 %8891 to i16
  %8893 = call i32 @s2n_write_key_share(ptr noundef nonnull %60, i16 noundef zeroext 0, i16 noundef zeroext %8892, ptr noundef %8889)
  %8894 = icmp eq i32 %8893, -1
  br i1 %8894, label %8895, label %8917

8895:                                             ; preds = %8883
  %8896 = load i32, ptr %3104, align 4, !tbaa !5
  %8897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8898 = call i32 @s2n_print_stacktrace(ptr noundef %8897) #12
  %8899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8900 = trunc nuw i8 %8899 to i1
  br i1 %8900, label %8901, label %8905

8901:                                             ; preds = %8895
  %8902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8903 = call i32 @fileno(ptr noundef %8902) #12
  %8904 = call i32 @isatty(i32 noundef %8903) #12
  %.not1479 = icmp eq i32 %8904, 0
  br i1 %.not1479, label %8905, label %8906

8905:                                             ; preds = %8901, %8895
  br label %8906

8906:                                             ; preds = %8901, %8905
  %.str.7.sink4754 = phi ptr [ @.str.7, %8905 ], [ @.str.4, %8901 ]
  store i32 %8896, ptr %3104, align 4, !tbaa !5
  %8907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8908 = load i32, ptr @test_count, align 4, !tbaa !5
  %8909 = load i32, ptr %3050, align 4, !tbaa !5
  %8910 = call ptr @s2n_strerror(i32 noundef %8909, ptr noundef nonnull @.str.6) #12
  %8911 = load i32, ptr %3050, align 4, !tbaa !5
  %8912 = call ptr @s2n_strerror_debug(i32 noundef %8911, ptr noundef nonnull @.str.6) #12
  %8913 = load i32, ptr %3104, align 4, !tbaa !5
  %8914 = call ptr @strerror(i32 noundef %8913) #12
  %8915 = load i32, ptr %3104, align 4, !tbaa !5
  %8916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8907, ptr noundef nonnull %.str.7.sink4754, i32 noundef %8908, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.3, i32 noundef 814, ptr noundef %8910, ptr noundef %8912, ptr noundef %8914, i32 noundef %8915) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8917:                                             ; preds = %8883
  %8918 = load i32, ptr @test_count, align 4, !tbaa !5
  %8919 = add nsw i32 %8918, 1
  store i32 %8919, ptr @test_count, align 4, !tbaa !5
  %8920 = load ptr, ptr %61, align 8, !tbaa !9
  %8921 = getelementptr inbounds i8, ptr %8920, i64 8
  %8922 = load ptr, ptr %8921, align 8, !tbaa !24
  %8923 = load ptr, ptr %8922, align 8, !tbaa !9
  %8924 = getelementptr inbounds i8, ptr %8923, i64 16
  %8925 = load i8, ptr %8924, align 8, !tbaa !30
  %8926 = zext i8 %8925 to i16
  %8927 = call i32 @s2n_write_key_share(ptr noundef nonnull %60, i16 noundef zeroext -255, i16 noundef zeroext %8926, ptr noundef %8923)
  %8928 = icmp eq i32 %8927, -1
  br i1 %8928, label %8929, label %8951

8929:                                             ; preds = %8917
  %8930 = load i32, ptr %3104, align 4, !tbaa !5
  %8931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8932 = call i32 @s2n_print_stacktrace(ptr noundef %8931) #12
  %8933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8934 = trunc nuw i8 %8933 to i1
  br i1 %8934, label %8935, label %8939

8935:                                             ; preds = %8929
  %8936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8937 = call i32 @fileno(ptr noundef %8936) #12
  %8938 = call i32 @isatty(i32 noundef %8937) #12
  %.not1478 = icmp eq i32 %8938, 0
  br i1 %.not1478, label %8939, label %8940

8939:                                             ; preds = %8935, %8929
  br label %8940

8940:                                             ; preds = %8935, %8939
  %.str.7.sink4763 = phi ptr [ @.str.7, %8939 ], [ @.str.4, %8935 ]
  store i32 %8930, ptr %3104, align 4, !tbaa !5
  %8941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8942 = load i32, ptr @test_count, align 4, !tbaa !5
  %8943 = load i32, ptr %3050, align 4, !tbaa !5
  %8944 = call ptr @s2n_strerror(i32 noundef %8943, ptr noundef nonnull @.str.6) #12
  %8945 = load i32, ptr %3050, align 4, !tbaa !5
  %8946 = call ptr @s2n_strerror_debug(i32 noundef %8945, ptr noundef nonnull @.str.6) #12
  %8947 = load i32, ptr %3104, align 4, !tbaa !5
  %8948 = call ptr @strerror(i32 noundef %8947) #12
  %8949 = load i32, ptr %3104, align 4, !tbaa !5
  %8950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8941, ptr noundef nonnull %.str.7.sink4763, i32 noundef %8942, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.3, i32 noundef 817, ptr noundef %8944, ptr noundef %8946, ptr noundef %8948, i32 noundef %8949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8951:                                             ; preds = %8917
  %8952 = load i32, ptr @test_count, align 4, !tbaa !5
  %8953 = add nsw i32 %8952, 1
  store i32 %8953, ptr @test_count, align 4, !tbaa !5
  %8954 = call i32 @s2n_test_rewrite_length(ptr noundef nonnull %60)
  %8955 = icmp eq i32 %8954, -1
  br i1 %8955, label %8956, label %8978

8956:                                             ; preds = %8951
  %8957 = load i32, ptr %3104, align 4, !tbaa !5
  %8958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8959 = call i32 @s2n_print_stacktrace(ptr noundef %8958) #12
  %8960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8961 = trunc nuw i8 %8960 to i1
  br i1 %8961, label %8962, label %8966

8962:                                             ; preds = %8956
  %8963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8964 = call i32 @fileno(ptr noundef %8963) #12
  %8965 = call i32 @isatty(i32 noundef %8964) #12
  %.not1477 = icmp eq i32 %8965, 0
  br i1 %.not1477, label %8966, label %8967

8966:                                             ; preds = %8962, %8956
  br label %8967

8967:                                             ; preds = %8962, %8966
  %.str.7.sink4772 = phi ptr [ @.str.7, %8966 ], [ @.str.4, %8962 ]
  store i32 %8957, ptr %3104, align 4, !tbaa !5
  %8968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8969 = load i32, ptr @test_count, align 4, !tbaa !5
  %8970 = load i32, ptr %3050, align 4, !tbaa !5
  %8971 = call ptr @s2n_strerror(i32 noundef %8970, ptr noundef nonnull @.str.6) #12
  %8972 = load i32, ptr %3050, align 4, !tbaa !5
  %8973 = call ptr @s2n_strerror_debug(i32 noundef %8972, ptr noundef nonnull @.str.6) #12
  %8974 = load i32, ptr %3104, align 4, !tbaa !5
  %8975 = call ptr @strerror(i32 noundef %8974) #12
  %8976 = load i32, ptr %3104, align 4, !tbaa !5
  %8977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8968, ptr noundef nonnull %.str.7.sink4772, i32 noundef %8969, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.3, i32 noundef 819, ptr noundef %8971, ptr noundef %8973, ptr noundef %8975, i32 noundef %8976) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8978:                                             ; preds = %8951
  %8979 = load i32, ptr @test_count, align 4, !tbaa !5
  %8980 = add nsw i32 %8979, 1
  store i32 %8980, ptr @test_count, align 4, !tbaa !5
  %8981 = call i32 %2660(ptr noundef nonnull %8698, ptr noundef nonnull %60) #12
  %8982 = icmp eq i32 %8981, -1
  br i1 %8982, label %8983, label %9005

8983:                                             ; preds = %8978
  %8984 = load i32, ptr %3104, align 4, !tbaa !5
  %8985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8986 = call i32 @s2n_print_stacktrace(ptr noundef %8985) #12
  %8987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8988 = trunc nuw i8 %8987 to i1
  br i1 %8988, label %8989, label %8993

8989:                                             ; preds = %8983
  %8990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8991 = call i32 @fileno(ptr noundef %8990) #12
  %8992 = call i32 @isatty(i32 noundef %8991) #12
  %.not1476 = icmp eq i32 %8992, 0
  br i1 %.not1476, label %8993, label %8994

8993:                                             ; preds = %8989, %8983
  br label %8994

8994:                                             ; preds = %8989, %8993
  %.str.7.sink4781 = phi ptr [ @.str.7, %8993 ], [ @.str.4, %8989 ]
  store i32 %8984, ptr %3104, align 4, !tbaa !5
  %8995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8996 = load i32, ptr @test_count, align 4, !tbaa !5
  %8997 = load i32, ptr %3050, align 4, !tbaa !5
  %8998 = call ptr @s2n_strerror(i32 noundef %8997, ptr noundef nonnull @.str.6) #12
  %8999 = load i32, ptr %3050, align 4, !tbaa !5
  %9000 = call ptr @s2n_strerror_debug(i32 noundef %8999, ptr noundef nonnull @.str.6) #12
  %9001 = load i32, ptr %3104, align 4, !tbaa !5
  %9002 = call ptr @strerror(i32 noundef %9001) #12
  %9003 = load i32, ptr %3104, align 4, !tbaa !5
  %9004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8995, ptr noundef nonnull %.str.7.sink4781, i32 noundef %8996, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.3, i32 noundef 821, ptr noundef %8998, ptr noundef %9000, ptr noundef %9002, i32 noundef %9003) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9005:                                             ; preds = %8978
  %9006 = load i32, ptr @test_count, align 4, !tbaa !5
  %9007 = add nsw i32 %9006, 1
  store i32 %9007, ptr @test_count, align 4, !tbaa !5
  %9008 = getelementptr inbounds i8, ptr %60, i64 28
  %9009 = load i32, ptr %9008, align 4, !tbaa !18
  %9010 = getelementptr inbounds i8, ptr %60, i64 24
  %9011 = load i32, ptr %9010, align 8, !tbaa !21
  %9012 = icmp eq i32 %9009, %9011
  br i1 %9012, label %9035, label %9013

9013:                                             ; preds = %9005
  %9014 = load i32, ptr %3104, align 4, !tbaa !5
  %9015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9016 = call i32 @s2n_print_stacktrace(ptr noundef %9015) #12
  %9017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9018 = trunc nuw i8 %9017 to i1
  br i1 %9018, label %9019, label %9023

9019:                                             ; preds = %9013
  %9020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9021 = call i32 @fileno(ptr noundef %9020) #12
  %9022 = call i32 @isatty(i32 noundef %9021) #12
  %.not1344 = icmp eq i32 %9022, 0
  br i1 %.not1344, label %9023, label %9024

9023:                                             ; preds = %9019, %9013
  br label %9024

9024:                                             ; preds = %9019, %9023
  %.str.7.sink4790 = phi ptr [ @.str.7, %9023 ], [ @.str.4, %9019 ]
  store i32 %9014, ptr %3104, align 4, !tbaa !5
  %9025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9026 = load i32, ptr @test_count, align 4, !tbaa !5
  %9027 = load i32, ptr %3050, align 4, !tbaa !5
  %9028 = call ptr @s2n_strerror(i32 noundef %9027, ptr noundef nonnull @.str.6) #12
  %9029 = load i32, ptr %3050, align 4, !tbaa !5
  %9030 = call ptr @s2n_strerror_debug(i32 noundef %9029, ptr noundef nonnull @.str.6) #12
  %9031 = load i32, ptr %3104, align 4, !tbaa !5
  %9032 = call ptr @strerror(i32 noundef %9031) #12
  %9033 = load i32, ptr %3104, align 4, !tbaa !5
  %9034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9025, ptr noundef nonnull %.str.7.sink4790, i32 noundef %9026, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 824, ptr noundef %9028, ptr noundef %9030, ptr noundef %9032, i32 noundef %9033) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9035:                                             ; preds = %9005
  %9036 = getelementptr inbounds i8, ptr %8698, i64 704
  %9037 = add nsw i32 %9006, 2
  store i32 %9037, ptr @test_count, align 4, !tbaa !5
  %9038 = load ptr, ptr %9036, align 8, !tbaa !22
  %9039 = icmp eq ptr %9038, null
  br i1 %9039, label %9062, label %9040

9040:                                             ; preds = %9035
  %9041 = load i32, ptr %3104, align 4, !tbaa !5
  %9042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9043 = call i32 @s2n_print_stacktrace(ptr noundef %9042) #12
  %9044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9045 = trunc nuw i8 %9044 to i1
  br i1 %9045, label %9046, label %9050

9046:                                             ; preds = %9040
  %9047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9048 = call i32 @fileno(ptr noundef %9047) #12
  %9049 = call i32 @isatty(i32 noundef %9048) #12
  %.not1345 = icmp eq i32 %9049, 0
  br i1 %.not1345, label %9050, label %9051

9050:                                             ; preds = %9046, %9040
  br label %9051

9051:                                             ; preds = %9046, %9050
  %.str.7.sink4799 = phi ptr [ @.str.7, %9050 ], [ @.str.4, %9046 ]
  store i32 %9041, ptr %3104, align 4, !tbaa !5
  %9052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9053 = load i32, ptr @test_count, align 4, !tbaa !5
  %9054 = load i32, ptr %3050, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror(i32 noundef %9054, ptr noundef nonnull @.str.6) #12
  %9056 = load i32, ptr %3050, align 4, !tbaa !5
  %9057 = call ptr @s2n_strerror_debug(i32 noundef %9056, ptr noundef nonnull @.str.6) #12
  %9058 = load i32, ptr %3104, align 4, !tbaa !5
  %9059 = call ptr @strerror(i32 noundef %9058) #12
  %9060 = load i32, ptr %3104, align 4, !tbaa !5
  %9061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9052, ptr noundef nonnull %.str.7.sink4799, i32 noundef %9053, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.3, i32 noundef 828, ptr noundef %9055, ptr noundef %9057, ptr noundef %9059, i32 noundef %9060) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9062:                                             ; preds = %9035
  %9063 = add nsw i32 %9006, 3
  store i32 %9063, ptr @test_count, align 4, !tbaa !5
  %9064 = getelementptr inbounds i8, ptr %8698, i64 712
  %9065 = load ptr, ptr %9064, align 8, !tbaa !26
  %9066 = icmp eq ptr %9065, null
  br i1 %9066, label %9089, label %9067

9067:                                             ; preds = %9062
  %9068 = load i32, ptr %3104, align 4, !tbaa !5
  %9069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9070 = call i32 @s2n_print_stacktrace(ptr noundef %9069) #12
  %9071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9072 = trunc nuw i8 %9071 to i1
  br i1 %9072, label %9073, label %9077

9073:                                             ; preds = %9067
  %9074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9075 = call i32 @fileno(ptr noundef %9074) #12
  %9076 = call i32 @isatty(i32 noundef %9075) #12
  %.not1346 = icmp eq i32 %9076, 0
  br i1 %.not1346, label %9077, label %9078

9077:                                             ; preds = %9073, %9067
  br label %9078

9078:                                             ; preds = %9073, %9077
  %.str.7.sink4808 = phi ptr [ @.str.7, %9077 ], [ @.str.4, %9073 ]
  store i32 %9068, ptr %3104, align 4, !tbaa !5
  %9079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9080 = load i32, ptr @test_count, align 4, !tbaa !5
  %9081 = load i32, ptr %3050, align 4, !tbaa !5
  %9082 = call ptr @s2n_strerror(i32 noundef %9081, ptr noundef nonnull @.str.6) #12
  %9083 = load i32, ptr %3050, align 4, !tbaa !5
  %9084 = call ptr @s2n_strerror_debug(i32 noundef %9083, ptr noundef nonnull @.str.6) #12
  %9085 = load i32, ptr %3104, align 4, !tbaa !5
  %9086 = call ptr @strerror(i32 noundef %9085) #12
  %9087 = load i32, ptr %3104, align 4, !tbaa !5
  %9088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9079, ptr noundef nonnull %.str.7.sink4808, i32 noundef %9080, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.3, i32 noundef 829, ptr noundef %9082, ptr noundef %9084, ptr noundef %9086, i32 noundef %9087) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9089:                                             ; preds = %9062
  %9090 = add nsw i32 %9006, 4
  store i32 %9090, ptr @test_count, align 4, !tbaa !5
  %9091 = call i32 @s2n_stuffer_free(ptr noundef nonnull %60) #12
  %9092 = icmp eq i32 %9091, -1
  br i1 %9092, label %9093, label %9115

9093:                                             ; preds = %9089
  %9094 = load i32, ptr %3104, align 4, !tbaa !5
  %9095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9096 = call i32 @s2n_print_stacktrace(ptr noundef %9095) #12
  %9097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9098 = trunc nuw i8 %9097 to i1
  br i1 %9098, label %9099, label %9103

9099:                                             ; preds = %9093
  %9100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9101 = call i32 @fileno(ptr noundef %9100) #12
  %9102 = call i32 @isatty(i32 noundef %9101) #12
  %.not1475 = icmp eq i32 %9102, 0
  br i1 %.not1475, label %9103, label %9104

9103:                                             ; preds = %9099, %9093
  br label %9104

9104:                                             ; preds = %9099, %9103
  %.str.7.sink4817 = phi ptr [ @.str.7, %9103 ], [ @.str.4, %9099 ]
  store i32 %9094, ptr %3104, align 4, !tbaa !5
  %9105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9106 = load i32, ptr @test_count, align 4, !tbaa !5
  %9107 = load i32, ptr %3050, align 4, !tbaa !5
  %9108 = call ptr @s2n_strerror(i32 noundef %9107, ptr noundef nonnull @.str.6) #12
  %9109 = load i32, ptr %3050, align 4, !tbaa !5
  %9110 = call ptr @s2n_strerror_debug(i32 noundef %9109, ptr noundef nonnull @.str.6) #12
  %9111 = load i32, ptr %3104, align 4, !tbaa !5
  %9112 = call ptr @strerror(i32 noundef %9111) #12
  %9113 = load i32, ptr %3104, align 4, !tbaa !5
  %9114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9105, ptr noundef nonnull %.str.7.sink4817, i32 noundef %9106, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 831, ptr noundef %9108, ptr noundef %9110, ptr noundef %9112, i32 noundef %9113) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9115:                                             ; preds = %9089
  %9116 = load i32, ptr @test_count, align 4, !tbaa !5
  %9117 = add nsw i32 %9116, 1
  store i32 %9117, ptr @test_count, align 4, !tbaa !5
  %9118 = call i32 @s2n_connection_free(ptr noundef nonnull %8698) #12
  %9119 = icmp eq i32 %9118, -1
  br i1 %9119, label %9120, label %9142

9120:                                             ; preds = %9115
  %9121 = load i32, ptr %3104, align 4, !tbaa !5
  %9122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9123 = call i32 @s2n_print_stacktrace(ptr noundef %9122) #12
  %9124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9125 = trunc nuw i8 %9124 to i1
  br i1 %9125, label %9126, label %9130

9126:                                             ; preds = %9120
  %9127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9128 = call i32 @fileno(ptr noundef %9127) #12
  %9129 = call i32 @isatty(i32 noundef %9128) #12
  %.not1474 = icmp eq i32 %9129, 0
  br i1 %.not1474, label %9130, label %9131

9130:                                             ; preds = %9126, %9120
  br label %9131

9131:                                             ; preds = %9126, %9130
  %.str.7.sink4826 = phi ptr [ @.str.7, %9130 ], [ @.str.4, %9126 ]
  store i32 %9121, ptr %3104, align 4, !tbaa !5
  %9132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9133 = load i32, ptr @test_count, align 4, !tbaa !5
  %9134 = load i32, ptr %3050, align 4, !tbaa !5
  %9135 = call ptr @s2n_strerror(i32 noundef %9134, ptr noundef nonnull @.str.6) #12
  %9136 = load i32, ptr %3050, align 4, !tbaa !5
  %9137 = call ptr @s2n_strerror_debug(i32 noundef %9136, ptr noundef nonnull @.str.6) #12
  %9138 = load i32, ptr %3104, align 4, !tbaa !5
  %9139 = call ptr @strerror(i32 noundef %9138) #12
  %9140 = load i32, ptr %3104, align 4, !tbaa !5
  %9141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9132, ptr noundef nonnull %.str.7.sink4826, i32 noundef %9133, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 832, ptr noundef %9135, ptr noundef %9137, ptr noundef %9139, i32 noundef %9140) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9142:                                             ; preds = %9115
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %60) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %62) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %62, i8 0, i64 40, i1 false)
  %9143 = load i32, ptr @test_count, align 4, !tbaa !5
  %9144 = add nsw i32 %9143, 1
  store i32 %9144, ptr @test_count, align 4, !tbaa !5
  %9145 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %9146 = icmp eq ptr %9145, null
  br i1 %9146, label %9147, label %9169

9147:                                             ; preds = %9142
  %9148 = load i32, ptr %3104, align 4, !tbaa !5
  %9149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9150 = call i32 @s2n_print_stacktrace(ptr noundef %9149) #12
  %9151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9152 = trunc nuw i8 %9151 to i1
  br i1 %9152, label %9153, label %9157

9153:                                             ; preds = %9147
  %9154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9155 = call i32 @fileno(ptr noundef %9154) #12
  %9156 = call i32 @isatty(i32 noundef %9155) #12
  %.not1473 = icmp eq i32 %9156, 0
  br i1 %.not1473, label %9157, label %9158

9157:                                             ; preds = %9153, %9147
  br label %9158

9158:                                             ; preds = %9153, %9157
  %.str.7.sink4835 = phi ptr [ @.str.7, %9157 ], [ @.str.4, %9153 ]
  store i32 %9148, ptr %3104, align 4, !tbaa !5
  %9159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9160 = load i32, ptr @test_count, align 4, !tbaa !5
  %9161 = load i32, ptr %3050, align 4, !tbaa !5
  %9162 = call ptr @s2n_strerror(i32 noundef %9161, ptr noundef nonnull @.str.6) #12
  %9163 = load i32, ptr %3050, align 4, !tbaa !5
  %9164 = call ptr @s2n_strerror_debug(i32 noundef %9163, ptr noundef nonnull @.str.6) #12
  %9165 = load i32, ptr %3104, align 4, !tbaa !5
  %9166 = call ptr @strerror(i32 noundef %9165) #12
  %9167 = load i32, ptr %3104, align 4, !tbaa !5
  %9168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9159, ptr noundef nonnull %.str.7.sink4835, i32 noundef %9160, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.3, i32 noundef 839, ptr noundef %9162, ptr noundef %9164, ptr noundef %9166, i32 noundef %9167) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9169:                                             ; preds = %9142
  %9170 = load i32, ptr @test_count, align 4, !tbaa !5
  %9171 = add nsw i32 %9170, 1
  store i32 %9171, ptr @test_count, align 4, !tbaa !5
  %9172 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %9145, i8 noundef zeroext 34) #12
  %9173 = icmp eq i32 %9172, -1
  br i1 %9173, label %9174, label %9196

9174:                                             ; preds = %9169
  %9175 = load i32, ptr %3104, align 4, !tbaa !5
  %9176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9177 = call i32 @s2n_print_stacktrace(ptr noundef %9176) #12
  %9178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9179 = trunc nuw i8 %9178 to i1
  br i1 %9179, label %9180, label %9184

9180:                                             ; preds = %9174
  %9181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9182 = call i32 @fileno(ptr noundef %9181) #12
  %9183 = call i32 @isatty(i32 noundef %9182) #12
  %.not1472 = icmp eq i32 %9183, 0
  br i1 %.not1472, label %9184, label %9185

9184:                                             ; preds = %9180, %9174
  br label %9185

9185:                                             ; preds = %9180, %9184
  %.str.7.sink4844 = phi ptr [ @.str.7, %9184 ], [ @.str.4, %9180 ]
  store i32 %9175, ptr %3104, align 4, !tbaa !5
  %9186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9187 = load i32, ptr @test_count, align 4, !tbaa !5
  %9188 = load i32, ptr %3050, align 4, !tbaa !5
  %9189 = call ptr @s2n_strerror(i32 noundef %9188, ptr noundef nonnull @.str.6) #12
  %9190 = load i32, ptr %3050, align 4, !tbaa !5
  %9191 = call ptr @s2n_strerror_debug(i32 noundef %9190, ptr noundef nonnull @.str.6) #12
  %9192 = load i32, ptr %3104, align 4, !tbaa !5
  %9193 = call ptr @strerror(i32 noundef %9192) #12
  %9194 = load i32, ptr %3104, align 4, !tbaa !5
  %9195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9186, ptr noundef nonnull %.str.7.sink4844, i32 noundef %9187, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.3, i32 noundef 840, ptr noundef %9189, ptr noundef %9191, ptr noundef %9193, i32 noundef %9194) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9196:                                             ; preds = %9169
  %9197 = load i32, ptr @test_count, align 4, !tbaa !5
  %9198 = add nsw i32 %9197, 1
  store i32 %9198, ptr @test_count, align 4, !tbaa !5
  %9199 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %9145) #12
  %9200 = call zeroext i1 @s2n_result_is_ok(i32 %9199)
  br i1 %9200, label %9223, label %9201

9201:                                             ; preds = %9196
  %9202 = load i32, ptr %3104, align 4, !tbaa !5
  %9203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9204 = call i32 @s2n_print_stacktrace(ptr noundef %9203) #12
  %9205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9206 = trunc nuw i8 %9205 to i1
  br i1 %9206, label %9207, label %9211

9207:                                             ; preds = %9201
  %9208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9209 = call i32 @fileno(ptr noundef %9208) #12
  %9210 = call i32 @isatty(i32 noundef %9209) #12
  %.not1347 = icmp eq i32 %9210, 0
  br i1 %.not1347, label %9211, label %9212

9211:                                             ; preds = %9207, %9201
  br label %9212

9212:                                             ; preds = %9207, %9211
  %.str.7.sink4853 = phi ptr [ @.str.7, %9211 ], [ @.str.4, %9207 ]
  store i32 %9202, ptr %3104, align 4, !tbaa !5
  %9213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9214 = load i32, ptr @test_count, align 4, !tbaa !5
  %9215 = load i32, ptr %3050, align 4, !tbaa !5
  %9216 = call ptr @s2n_strerror(i32 noundef %9215, ptr noundef nonnull @.str.6) #12
  %9217 = load i32, ptr %3050, align 4, !tbaa !5
  %9218 = call ptr @s2n_strerror_debug(i32 noundef %9217, ptr noundef nonnull @.str.6) #12
  %9219 = load i32, ptr %3104, align 4, !tbaa !5
  %9220 = call ptr @strerror(i32 noundef %9219) #12
  %9221 = load i32, ptr %3104, align 4, !tbaa !5
  %9222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9213, ptr noundef nonnull %.str.7.sink4853, i32 noundef %9214, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.3, i32 noundef 841, ptr noundef %9216, ptr noundef %9218, ptr noundef %9220, i32 noundef %9221) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9223:                                             ; preds = %9196
  %9224 = load i32, ptr @test_count, align 4, !tbaa !5
  %9225 = add nsw i32 %9224, 1
  store i32 %9225, ptr @test_count, align 4, !tbaa !5
  %9226 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %62, i32 noundef 0) #12
  %9227 = icmp eq i32 %9226, -1
  br i1 %9227, label %9228, label %9250

9228:                                             ; preds = %9223
  %9229 = load i32, ptr %3104, align 4, !tbaa !5
  %9230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9231 = call i32 @s2n_print_stacktrace(ptr noundef %9230) #12
  %9232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9233 = trunc nuw i8 %9232 to i1
  br i1 %9233, label %9234, label %9238

9234:                                             ; preds = %9228
  %9235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9236 = call i32 @fileno(ptr noundef %9235) #12
  %9237 = call i32 @isatty(i32 noundef %9236) #12
  %.not1471 = icmp eq i32 %9237, 0
  br i1 %.not1471, label %9238, label %9239

9238:                                             ; preds = %9234, %9228
  br label %9239

9239:                                             ; preds = %9234, %9238
  %.str.7.sink4862 = phi ptr [ @.str.7, %9238 ], [ @.str.4, %9234 ]
  store i32 %9229, ptr %3104, align 4, !tbaa !5
  %9240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9241 = load i32, ptr @test_count, align 4, !tbaa !5
  %9242 = load i32, ptr %3050, align 4, !tbaa !5
  %9243 = call ptr @s2n_strerror(i32 noundef %9242, ptr noundef nonnull @.str.6) #12
  %9244 = load i32, ptr %3050, align 4, !tbaa !5
  %9245 = call ptr @s2n_strerror_debug(i32 noundef %9244, ptr noundef nonnull @.str.6) #12
  %9246 = load i32, ptr %3104, align 4, !tbaa !5
  %9247 = call ptr @strerror(i32 noundef %9246) #12
  %9248 = load i32, ptr %3104, align 4, !tbaa !5
  %9249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9240, ptr noundef nonnull %.str.7.sink4862, i32 noundef %9241, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 842, ptr noundef %9243, ptr noundef %9245, ptr noundef %9247, i32 noundef %9248) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9250:                                             ; preds = %9223
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #12
  store ptr null, ptr %63, align 8, !tbaa !9
  %9251 = load i32, ptr @test_count, align 4, !tbaa !5
  %9252 = add nsw i32 %9251, 1
  store i32 %9252, ptr @test_count, align 4, !tbaa !5
  %9253 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %9145, ptr noundef nonnull %63) #12
  %9254 = icmp eq i32 %9253, -1
  br i1 %9254, label %9255, label %9277

9255:                                             ; preds = %9250
  %9256 = load i32, ptr %3104, align 4, !tbaa !5
  %9257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9258 = call i32 @s2n_print_stacktrace(ptr noundef %9257) #12
  %9259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9260 = trunc nuw i8 %9259 to i1
  br i1 %9260, label %9261, label %9265

9261:                                             ; preds = %9255
  %9262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9263 = call i32 @fileno(ptr noundef %9262) #12
  %9264 = call i32 @isatty(i32 noundef %9263) #12
  %.not1470 = icmp eq i32 %9264, 0
  br i1 %.not1470, label %9265, label %9266

9265:                                             ; preds = %9261, %9255
  br label %9266

9266:                                             ; preds = %9261, %9265
  %.str.7.sink4871 = phi ptr [ @.str.7, %9265 ], [ @.str.4, %9261 ]
  store i32 %9256, ptr %3104, align 4, !tbaa !5
  %9267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9268 = load i32, ptr @test_count, align 4, !tbaa !5
  %9269 = load i32, ptr %3050, align 4, !tbaa !5
  %9270 = call ptr @s2n_strerror(i32 noundef %9269, ptr noundef nonnull @.str.6) #12
  %9271 = load i32, ptr %3050, align 4, !tbaa !5
  %9272 = call ptr @s2n_strerror_debug(i32 noundef %9271, ptr noundef nonnull @.str.6) #12
  %9273 = load i32, ptr %3104, align 4, !tbaa !5
  %9274 = call ptr @strerror(i32 noundef %9273) #12
  %9275 = load i32, ptr %3104, align 4, !tbaa !5
  %9276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9267, ptr noundef nonnull %.str.7.sink4871, i32 noundef %9268, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.3, i32 noundef 845, ptr noundef %9270, ptr noundef %9272, ptr noundef %9274, i32 noundef %9275) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9277:                                             ; preds = %9250
  %9278 = load i32, ptr @test_count, align 4, !tbaa !5
  %9279 = add nsw i32 %9278, 1
  store i32 %9279, ptr @test_count, align 4, !tbaa !5
  %9280 = load ptr, ptr %63, align 8, !tbaa !9
  %9281 = icmp eq ptr %9280, null
  br i1 %9281, label %9282, label %9304

9282:                                             ; preds = %9277
  %9283 = load i32, ptr %3104, align 4, !tbaa !5
  %9284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9285 = call i32 @s2n_print_stacktrace(ptr noundef %9284) #12
  %9286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9287 = trunc nuw i8 %9286 to i1
  br i1 %9287, label %9288, label %9292

9288:                                             ; preds = %9282
  %9289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9290 = call i32 @fileno(ptr noundef %9289) #12
  %9291 = call i32 @isatty(i32 noundef %9290) #12
  %.not1469 = icmp eq i32 %9291, 0
  br i1 %.not1469, label %9292, label %9293

9292:                                             ; preds = %9288, %9282
  br label %9293

9293:                                             ; preds = %9288, %9292
  %.str.7.sink4880 = phi ptr [ @.str.7, %9292 ], [ @.str.4, %9288 ]
  store i32 %9283, ptr %3104, align 4, !tbaa !5
  %9294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9295 = load i32, ptr @test_count, align 4, !tbaa !5
  %9296 = load i32, ptr %3050, align 4, !tbaa !5
  %9297 = call ptr @s2n_strerror(i32 noundef %9296, ptr noundef nonnull @.str.6) #12
  %9298 = load i32, ptr %3050, align 4, !tbaa !5
  %9299 = call ptr @s2n_strerror_debug(i32 noundef %9298, ptr noundef nonnull @.str.6) #12
  %9300 = load i32, ptr %3104, align 4, !tbaa !5
  %9301 = call ptr @strerror(i32 noundef %9300) #12
  %9302 = load i32, ptr %3104, align 4, !tbaa !5
  %9303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9294, ptr noundef nonnull %.str.7.sink4880, i32 noundef %9295, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 846, ptr noundef %9297, ptr noundef %9299, ptr noundef %9301, i32 noundef %9302) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9304:                                             ; preds = %9277
  %9305 = add nsw i32 %9278, 2
  store i32 %9305, ptr @test_count, align 4, !tbaa !5
  %9306 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %62, i32 noundef 2) #12
  %9307 = icmp eq i32 %9306, -1
  br i1 %9307, label %9308, label %9330

9308:                                             ; preds = %9304
  %9309 = load i32, ptr %3104, align 4, !tbaa !5
  %9310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9311 = call i32 @s2n_print_stacktrace(ptr noundef %9310) #12
  %9312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9313 = trunc nuw i8 %9312 to i1
  br i1 %9313, label %9314, label %9318

9314:                                             ; preds = %9308
  %9315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9316 = call i32 @fileno(ptr noundef %9315) #12
  %9317 = call i32 @isatty(i32 noundef %9316) #12
  %.not1468 = icmp eq i32 %9317, 0
  br i1 %.not1468, label %9318, label %9319

9318:                                             ; preds = %9314, %9308
  br label %9319

9319:                                             ; preds = %9314, %9318
  %.str.7.sink4889 = phi ptr [ @.str.7, %9318 ], [ @.str.4, %9314 ]
  store i32 %9309, ptr %3104, align 4, !tbaa !5
  %9320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9321 = load i32, ptr @test_count, align 4, !tbaa !5
  %9322 = load i32, ptr %3050, align 4, !tbaa !5
  %9323 = call ptr @s2n_strerror(i32 noundef %9322, ptr noundef nonnull @.str.6) #12
  %9324 = load i32, ptr %3050, align 4, !tbaa !5
  %9325 = call ptr @s2n_strerror_debug(i32 noundef %9324, ptr noundef nonnull @.str.6) #12
  %9326 = load i32, ptr %3104, align 4, !tbaa !5
  %9327 = call ptr @strerror(i32 noundef %9326) #12
  %9328 = load i32, ptr %3104, align 4, !tbaa !5
  %9329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9320, ptr noundef nonnull %.str.7.sink4889, i32 noundef %9321, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.3, i32 noundef 849, ptr noundef %9323, ptr noundef %9325, ptr noundef %9327, i32 noundef %9328) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9330:                                             ; preds = %9304
  %9331 = load i32, ptr @test_count, align 4, !tbaa !5
  %9332 = add nsw i32 %9331, 1
  store i32 %9332, ptr @test_count, align 4, !tbaa !5
  %9333 = load ptr, ptr %63, align 8, !tbaa !9
  %9334 = getelementptr inbounds i8, ptr %9333, i64 8
  %9335 = load ptr, ptr %9334, align 8, !tbaa !24
  %9336 = load ptr, ptr %9335, align 8, !tbaa !9
  %9337 = load i16, ptr %9336, align 8, !tbaa !28
  %9338 = getelementptr inbounds i8, ptr %9335, i64 8
  %9339 = load ptr, ptr %9338, align 8, !tbaa !9
  %9340 = getelementptr inbounds i8, ptr %9339, i64 16
  %9341 = load i8, ptr %9340, align 8, !tbaa !30
  %9342 = zext i8 %9341 to i16
  %9343 = call i32 @s2n_write_key_share(ptr noundef nonnull %62, i16 noundef zeroext %9337, i16 noundef zeroext %9342, ptr noundef %9339)
  %9344 = icmp eq i32 %9343, -1
  br i1 %9344, label %9345, label %9367

9345:                                             ; preds = %9330
  %9346 = load i32, ptr %3104, align 4, !tbaa !5
  %9347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9348 = call i32 @s2n_print_stacktrace(ptr noundef %9347) #12
  %9349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9350 = trunc nuw i8 %9349 to i1
  br i1 %9350, label %9351, label %9355

9351:                                             ; preds = %9345
  %9352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9353 = call i32 @fileno(ptr noundef %9352) #12
  %9354 = call i32 @isatty(i32 noundef %9353) #12
  %.not1467 = icmp eq i32 %9354, 0
  br i1 %.not1467, label %9355, label %9356

9355:                                             ; preds = %9351, %9345
  br label %9356

9356:                                             ; preds = %9351, %9355
  %.str.7.sink4898 = phi ptr [ @.str.7, %9355 ], [ @.str.4, %9351 ]
  store i32 %9346, ptr %3104, align 4, !tbaa !5
  %9357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9358 = load i32, ptr @test_count, align 4, !tbaa !5
  %9359 = load i32, ptr %3050, align 4, !tbaa !5
  %9360 = call ptr @s2n_strerror(i32 noundef %9359, ptr noundef nonnull @.str.6) #12
  %9361 = load i32, ptr %3050, align 4, !tbaa !5
  %9362 = call ptr @s2n_strerror_debug(i32 noundef %9361, ptr noundef nonnull @.str.6) #12
  %9363 = load i32, ptr %3104, align 4, !tbaa !5
  %9364 = call ptr @strerror(i32 noundef %9363) #12
  %9365 = load i32, ptr %3104, align 4, !tbaa !5
  %9366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9357, ptr noundef nonnull %.str.7.sink4898, i32 noundef %9358, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.3, i32 noundef 851, ptr noundef %9360, ptr noundef %9362, ptr noundef %9364, i32 noundef %9365) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9367:                                             ; preds = %9330
  %9368 = load i32, ptr @test_count, align 4, !tbaa !5
  %9369 = add nsw i32 %9368, 1
  store i32 %9369, ptr @test_count, align 4, !tbaa !5
  %9370 = call i32 @s2n_test_rewrite_length(ptr noundef nonnull %62)
  %9371 = icmp eq i32 %9370, -1
  br i1 %9371, label %9372, label %9394

9372:                                             ; preds = %9367
  %9373 = load i32, ptr %3104, align 4, !tbaa !5
  %9374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9375 = call i32 @s2n_print_stacktrace(ptr noundef %9374) #12
  %9376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9377 = trunc nuw i8 %9376 to i1
  br i1 %9377, label %9378, label %9382

9378:                                             ; preds = %9372
  %9379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9380 = call i32 @fileno(ptr noundef %9379) #12
  %9381 = call i32 @isatty(i32 noundef %9380) #12
  %.not1466 = icmp eq i32 %9381, 0
  br i1 %.not1466, label %9382, label %9383

9382:                                             ; preds = %9378, %9372
  br label %9383

9383:                                             ; preds = %9378, %9382
  %.str.7.sink4907 = phi ptr [ @.str.7, %9382 ], [ @.str.4, %9378 ]
  store i32 %9373, ptr %3104, align 4, !tbaa !5
  %9384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9385 = load i32, ptr @test_count, align 4, !tbaa !5
  %9386 = load i32, ptr %3050, align 4, !tbaa !5
  %9387 = call ptr @s2n_strerror(i32 noundef %9386, ptr noundef nonnull @.str.6) #12
  %9388 = load i32, ptr %3050, align 4, !tbaa !5
  %9389 = call ptr @s2n_strerror_debug(i32 noundef %9388, ptr noundef nonnull @.str.6) #12
  %9390 = load i32, ptr %3104, align 4, !tbaa !5
  %9391 = call ptr @strerror(i32 noundef %9390) #12
  %9392 = load i32, ptr %3104, align 4, !tbaa !5
  %9393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9384, ptr noundef nonnull %.str.7.sink4907, i32 noundef %9385, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.3, i32 noundef 852, ptr noundef %9387, ptr noundef %9389, ptr noundef %9391, i32 noundef %9392) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9394:                                             ; preds = %9367
  %9395 = load i32, ptr @test_count, align 4, !tbaa !5
  %9396 = add nsw i32 %9395, 1
  store i32 %9396, ptr @test_count, align 4, !tbaa !5
  %9397 = call i32 %2660(ptr noundef nonnull %9145, ptr noundef nonnull %62) #12
  %9398 = icmp eq i32 %9397, -1
  br i1 %9398, label %9399, label %9421

9399:                                             ; preds = %9394
  %9400 = load i32, ptr %3104, align 4, !tbaa !5
  %9401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9402 = call i32 @s2n_print_stacktrace(ptr noundef %9401) #12
  %9403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9404 = trunc nuw i8 %9403 to i1
  br i1 %9404, label %9405, label %9409

9405:                                             ; preds = %9399
  %9406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9407 = call i32 @fileno(ptr noundef %9406) #12
  %9408 = call i32 @isatty(i32 noundef %9407) #12
  %.not1465 = icmp eq i32 %9408, 0
  br i1 %.not1465, label %9409, label %9410

9409:                                             ; preds = %9405, %9399
  br label %9410

9410:                                             ; preds = %9405, %9409
  %.str.7.sink4916 = phi ptr [ @.str.7, %9409 ], [ @.str.4, %9405 ]
  store i32 %9400, ptr %3104, align 4, !tbaa !5
  %9411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9412 = load i32, ptr @test_count, align 4, !tbaa !5
  %9413 = load i32, ptr %3050, align 4, !tbaa !5
  %9414 = call ptr @s2n_strerror(i32 noundef %9413, ptr noundef nonnull @.str.6) #12
  %9415 = load i32, ptr %3050, align 4, !tbaa !5
  %9416 = call ptr @s2n_strerror_debug(i32 noundef %9415, ptr noundef nonnull @.str.6) #12
  %9417 = load i32, ptr %3104, align 4, !tbaa !5
  %9418 = call ptr @strerror(i32 noundef %9417) #12
  %9419 = load i32, ptr %3104, align 4, !tbaa !5
  %9420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9411, ptr noundef nonnull %.str.7.sink4916, i32 noundef %9412, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.3, i32 noundef 854, ptr noundef %9414, ptr noundef %9416, ptr noundef %9418, i32 noundef %9419) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9421:                                             ; preds = %9394
  %9422 = load i32, ptr @test_count, align 4, !tbaa !5
  %9423 = add nsw i32 %9422, 1
  store i32 %9423, ptr @test_count, align 4, !tbaa !5
  %9424 = getelementptr inbounds i8, ptr %62, i64 28
  %9425 = load i32, ptr %9424, align 4, !tbaa !18
  %9426 = getelementptr inbounds i8, ptr %62, i64 24
  %9427 = load i32, ptr %9426, align 8, !tbaa !21
  %9428 = icmp eq i32 %9425, %9427
  br i1 %9428, label %9451, label %9429

9429:                                             ; preds = %9421
  %9430 = load i32, ptr %3104, align 4, !tbaa !5
  %9431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9432 = call i32 @s2n_print_stacktrace(ptr noundef %9431) #12
  %9433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9434 = trunc nuw i8 %9433 to i1
  br i1 %9434, label %9435, label %9439

9435:                                             ; preds = %9429
  %9436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9437 = call i32 @fileno(ptr noundef %9436) #12
  %9438 = call i32 @isatty(i32 noundef %9437) #12
  %.not1348 = icmp eq i32 %9438, 0
  br i1 %.not1348, label %9439, label %9440

9439:                                             ; preds = %9435, %9429
  br label %9440

9440:                                             ; preds = %9435, %9439
  %.str.7.sink4925 = phi ptr [ @.str.7, %9439 ], [ @.str.4, %9435 ]
  store i32 %9430, ptr %3104, align 4, !tbaa !5
  %9441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9442 = load i32, ptr @test_count, align 4, !tbaa !5
  %9443 = load i32, ptr %3050, align 4, !tbaa !5
  %9444 = call ptr @s2n_strerror(i32 noundef %9443, ptr noundef nonnull @.str.6) #12
  %9445 = load i32, ptr %3050, align 4, !tbaa !5
  %9446 = call ptr @s2n_strerror_debug(i32 noundef %9445, ptr noundef nonnull @.str.6) #12
  %9447 = load i32, ptr %3104, align 4, !tbaa !5
  %9448 = call ptr @strerror(i32 noundef %9447) #12
  %9449 = load i32, ptr %3104, align 4, !tbaa !5
  %9450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9441, ptr noundef nonnull %.str.7.sink4925, i32 noundef %9442, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 857, ptr noundef %9444, ptr noundef %9446, ptr noundef %9448, i32 noundef %9449) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9451:                                             ; preds = %9421
  %9452 = getelementptr inbounds i8, ptr %9145, i64 704
  %9453 = add nsw i32 %9422, 2
  store i32 %9453, ptr @test_count, align 4, !tbaa !5
  %9454 = load ptr, ptr %9452, align 8, !tbaa !22
  %9455 = icmp eq ptr %9454, null
  br i1 %9455, label %9478, label %9456

9456:                                             ; preds = %9451
  %9457 = load i32, ptr %3104, align 4, !tbaa !5
  %9458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9459 = call i32 @s2n_print_stacktrace(ptr noundef %9458) #12
  %9460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9461 = trunc nuw i8 %9460 to i1
  br i1 %9461, label %9462, label %9466

9462:                                             ; preds = %9456
  %9463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9464 = call i32 @fileno(ptr noundef %9463) #12
  %9465 = call i32 @isatty(i32 noundef %9464) #12
  %.not1349 = icmp eq i32 %9465, 0
  br i1 %.not1349, label %9466, label %9467

9466:                                             ; preds = %9462, %9456
  br label %9467

9467:                                             ; preds = %9462, %9466
  %.str.7.sink4934 = phi ptr [ @.str.7, %9466 ], [ @.str.4, %9462 ]
  store i32 %9457, ptr %3104, align 4, !tbaa !5
  %9468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9469 = load i32, ptr @test_count, align 4, !tbaa !5
  %9470 = load i32, ptr %3050, align 4, !tbaa !5
  %9471 = call ptr @s2n_strerror(i32 noundef %9470, ptr noundef nonnull @.str.6) #12
  %9472 = load i32, ptr %3050, align 4, !tbaa !5
  %9473 = call ptr @s2n_strerror_debug(i32 noundef %9472, ptr noundef nonnull @.str.6) #12
  %9474 = load i32, ptr %3104, align 4, !tbaa !5
  %9475 = call ptr @strerror(i32 noundef %9474) #12
  %9476 = load i32, ptr %3104, align 4, !tbaa !5
  %9477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9468, ptr noundef nonnull %.str.7.sink4934, i32 noundef %9469, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.3, i32 noundef 861, ptr noundef %9471, ptr noundef %9473, ptr noundef %9475, i32 noundef %9476) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9478:                                             ; preds = %9451
  %9479 = add nsw i32 %9422, 3
  store i32 %9479, ptr @test_count, align 4, !tbaa !5
  %9480 = getelementptr inbounds i8, ptr %9145, i64 712
  %9481 = load ptr, ptr %9480, align 8, !tbaa !26
  %9482 = icmp eq ptr %9481, null
  br i1 %9482, label %9505, label %9483

9483:                                             ; preds = %9478
  %9484 = load i32, ptr %3104, align 4, !tbaa !5
  %9485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9486 = call i32 @s2n_print_stacktrace(ptr noundef %9485) #12
  %9487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9488 = trunc nuw i8 %9487 to i1
  br i1 %9488, label %9489, label %9493

9489:                                             ; preds = %9483
  %9490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9491 = call i32 @fileno(ptr noundef %9490) #12
  %9492 = call i32 @isatty(i32 noundef %9491) #12
  %.not1350 = icmp eq i32 %9492, 0
  br i1 %.not1350, label %9493, label %9494

9493:                                             ; preds = %9489, %9483
  br label %9494

9494:                                             ; preds = %9489, %9493
  %.str.7.sink4943 = phi ptr [ @.str.7, %9493 ], [ @.str.4, %9489 ]
  store i32 %9484, ptr %3104, align 4, !tbaa !5
  %9495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9496 = load i32, ptr @test_count, align 4, !tbaa !5
  %9497 = load i32, ptr %3050, align 4, !tbaa !5
  %9498 = call ptr @s2n_strerror(i32 noundef %9497, ptr noundef nonnull @.str.6) #12
  %9499 = load i32, ptr %3050, align 4, !tbaa !5
  %9500 = call ptr @s2n_strerror_debug(i32 noundef %9499, ptr noundef nonnull @.str.6) #12
  %9501 = load i32, ptr %3104, align 4, !tbaa !5
  %9502 = call ptr @strerror(i32 noundef %9501) #12
  %9503 = load i32, ptr %3104, align 4, !tbaa !5
  %9504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9495, ptr noundef nonnull %.str.7.sink4943, i32 noundef %9496, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.3, i32 noundef 862, ptr noundef %9498, ptr noundef %9500, ptr noundef %9502, i32 noundef %9503) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9505:                                             ; preds = %9478
  %9506 = add nsw i32 %9422, 4
  store i32 %9506, ptr @test_count, align 4, !tbaa !5
  %9507 = call i32 @s2n_stuffer_free(ptr noundef nonnull %62) #12
  %9508 = icmp eq i32 %9507, -1
  br i1 %9508, label %9509, label %9531

9509:                                             ; preds = %9505
  %9510 = load i32, ptr %3104, align 4, !tbaa !5
  %9511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9512 = call i32 @s2n_print_stacktrace(ptr noundef %9511) #12
  %9513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9514 = trunc nuw i8 %9513 to i1
  br i1 %9514, label %9515, label %9519

9515:                                             ; preds = %9509
  %9516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9517 = call i32 @fileno(ptr noundef %9516) #12
  %9518 = call i32 @isatty(i32 noundef %9517) #12
  %.not1464 = icmp eq i32 %9518, 0
  br i1 %.not1464, label %9519, label %9520

9519:                                             ; preds = %9515, %9509
  br label %9520

9520:                                             ; preds = %9515, %9519
  %.str.7.sink4952 = phi ptr [ @.str.7, %9519 ], [ @.str.4, %9515 ]
  store i32 %9510, ptr %3104, align 4, !tbaa !5
  %9521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9522 = load i32, ptr @test_count, align 4, !tbaa !5
  %9523 = load i32, ptr %3050, align 4, !tbaa !5
  %9524 = call ptr @s2n_strerror(i32 noundef %9523, ptr noundef nonnull @.str.6) #12
  %9525 = load i32, ptr %3050, align 4, !tbaa !5
  %9526 = call ptr @s2n_strerror_debug(i32 noundef %9525, ptr noundef nonnull @.str.6) #12
  %9527 = load i32, ptr %3104, align 4, !tbaa !5
  %9528 = call ptr @strerror(i32 noundef %9527) #12
  %9529 = load i32, ptr %3104, align 4, !tbaa !5
  %9530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9521, ptr noundef nonnull %.str.7.sink4952, i32 noundef %9522, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 864, ptr noundef %9524, ptr noundef %9526, ptr noundef %9528, i32 noundef %9529) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9531:                                             ; preds = %9505
  %9532 = load i32, ptr @test_count, align 4, !tbaa !5
  %9533 = add nsw i32 %9532, 1
  store i32 %9533, ptr @test_count, align 4, !tbaa !5
  %9534 = call i32 @s2n_connection_free(ptr noundef nonnull %9145) #12
  %9535 = icmp eq i32 %9534, -1
  br i1 %9535, label %9536, label %9558

9536:                                             ; preds = %9531
  %9537 = load i32, ptr %3104, align 4, !tbaa !5
  %9538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9539 = call i32 @s2n_print_stacktrace(ptr noundef %9538) #12
  %9540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9541 = trunc nuw i8 %9540 to i1
  br i1 %9541, label %9542, label %9546

9542:                                             ; preds = %9536
  %9543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9544 = call i32 @fileno(ptr noundef %9543) #12
  %9545 = call i32 @isatty(i32 noundef %9544) #12
  %.not1463 = icmp eq i32 %9545, 0
  br i1 %.not1463, label %9546, label %9547

9546:                                             ; preds = %9542, %9536
  br label %9547

9547:                                             ; preds = %9542, %9546
  %.str.7.sink4961 = phi ptr [ @.str.7, %9546 ], [ @.str.4, %9542 ]
  store i32 %9537, ptr %3104, align 4, !tbaa !5
  %9548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9549 = load i32, ptr @test_count, align 4, !tbaa !5
  %9550 = load i32, ptr %3050, align 4, !tbaa !5
  %9551 = call ptr @s2n_strerror(i32 noundef %9550, ptr noundef nonnull @.str.6) #12
  %9552 = load i32, ptr %3050, align 4, !tbaa !5
  %9553 = call ptr @s2n_strerror_debug(i32 noundef %9552, ptr noundef nonnull @.str.6) #12
  %9554 = load i32, ptr %3104, align 4, !tbaa !5
  %9555 = call ptr @strerror(i32 noundef %9554) #12
  %9556 = load i32, ptr %3104, align 4, !tbaa !5
  %9557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9548, ptr noundef nonnull %.str.7.sink4961, i32 noundef %9549, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 865, ptr noundef %9551, ptr noundef %9553, ptr noundef %9555, i32 noundef %9556) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9558:                                             ; preds = %9531
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %62) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %64) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %64, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %66) #12
  %9559 = load i32, ptr @test_count, align 4, !tbaa !5
  %9560 = add nsw i32 %9559, 1
  store i32 %9560, ptr @test_count, align 4, !tbaa !5
  %9561 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %9562 = icmp eq ptr %9561, null
  br i1 %9562, label %9563, label %9585

9563:                                             ; preds = %9558
  %9564 = load i32, ptr %3104, align 4, !tbaa !5
  %9565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9566 = call i32 @s2n_print_stacktrace(ptr noundef %9565) #12
  %9567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9568 = trunc nuw i8 %9567 to i1
  br i1 %9568, label %9569, label %9573

9569:                                             ; preds = %9563
  %9570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9571 = call i32 @fileno(ptr noundef %9570) #12
  %9572 = call i32 @isatty(i32 noundef %9571) #12
  %.not1462 = icmp eq i32 %9572, 0
  br i1 %.not1462, label %9573, label %9574

9573:                                             ; preds = %9569, %9563
  br label %9574

9574:                                             ; preds = %9569, %9573
  %.str.7.sink4970 = phi ptr [ @.str.7, %9573 ], [ @.str.4, %9569 ]
  store i32 %9564, ptr %3104, align 4, !tbaa !5
  %9575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9576 = load i32, ptr @test_count, align 4, !tbaa !5
  %9577 = load i32, ptr %3050, align 4, !tbaa !5
  %9578 = call ptr @s2n_strerror(i32 noundef %9577, ptr noundef nonnull @.str.6) #12
  %9579 = load i32, ptr %3050, align 4, !tbaa !5
  %9580 = call ptr @s2n_strerror_debug(i32 noundef %9579, ptr noundef nonnull @.str.6) #12
  %9581 = load i32, ptr %3104, align 4, !tbaa !5
  %9582 = call ptr @strerror(i32 noundef %9581) #12
  %9583 = load i32, ptr %3104, align 4, !tbaa !5
  %9584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9575, ptr noundef nonnull %.str.7.sink4970, i32 noundef %9576, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.3, i32 noundef 874, ptr noundef %9578, ptr noundef %9580, ptr noundef %9582, i32 noundef %9583) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9585:                                             ; preds = %9558
  %9586 = load i32, ptr @test_count, align 4, !tbaa !5
  %9587 = add nsw i32 %9586, 1
  store i32 %9587, ptr @test_count, align 4, !tbaa !5
  %9588 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %9561, i8 noundef zeroext 34) #12
  %9589 = icmp eq i32 %9588, -1
  br i1 %9589, label %9590, label %9612

9590:                                             ; preds = %9585
  %9591 = load i32, ptr %3104, align 4, !tbaa !5
  %9592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9593 = call i32 @s2n_print_stacktrace(ptr noundef %9592) #12
  %9594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9595 = trunc nuw i8 %9594 to i1
  br i1 %9595, label %9596, label %9600

9596:                                             ; preds = %9590
  %9597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9598 = call i32 @fileno(ptr noundef %9597) #12
  %9599 = call i32 @isatty(i32 noundef %9598) #12
  %.not1461 = icmp eq i32 %9599, 0
  br i1 %.not1461, label %9600, label %9601

9600:                                             ; preds = %9596, %9590
  br label %9601

9601:                                             ; preds = %9596, %9600
  %.str.7.sink4979 = phi ptr [ @.str.7, %9600 ], [ @.str.4, %9596 ]
  store i32 %9591, ptr %3104, align 4, !tbaa !5
  %9602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9603 = load i32, ptr @test_count, align 4, !tbaa !5
  %9604 = load i32, ptr %3050, align 4, !tbaa !5
  %9605 = call ptr @s2n_strerror(i32 noundef %9604, ptr noundef nonnull @.str.6) #12
  %9606 = load i32, ptr %3050, align 4, !tbaa !5
  %9607 = call ptr @s2n_strerror_debug(i32 noundef %9606, ptr noundef nonnull @.str.6) #12
  %9608 = load i32, ptr %3104, align 4, !tbaa !5
  %9609 = call ptr @strerror(i32 noundef %9608) #12
  %9610 = load i32, ptr %3104, align 4, !tbaa !5
  %9611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9602, ptr noundef nonnull %.str.7.sink4979, i32 noundef %9603, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.3, i32 noundef 875, ptr noundef %9605, ptr noundef %9607, ptr noundef %9609, i32 noundef %9610) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9612:                                             ; preds = %9585
  %9613 = load i32, ptr @test_count, align 4, !tbaa !5
  %9614 = add nsw i32 %9613, 1
  store i32 %9614, ptr @test_count, align 4, !tbaa !5
  %9615 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %9561) #12
  %9616 = call zeroext i1 @s2n_result_is_ok(i32 %9615)
  br i1 %9616, label %9639, label %9617

9617:                                             ; preds = %9612
  %9618 = load i32, ptr %3104, align 4, !tbaa !5
  %9619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9620 = call i32 @s2n_print_stacktrace(ptr noundef %9619) #12
  %9621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9622 = trunc nuw i8 %9621 to i1
  br i1 %9622, label %9623, label %9627

9623:                                             ; preds = %9617
  %9624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9625 = call i32 @fileno(ptr noundef %9624) #12
  %9626 = call i32 @isatty(i32 noundef %9625) #12
  %.not1351 = icmp eq i32 %9626, 0
  br i1 %.not1351, label %9627, label %9628

9627:                                             ; preds = %9623, %9617
  br label %9628

9628:                                             ; preds = %9623, %9627
  %.str.7.sink4988 = phi ptr [ @.str.7, %9627 ], [ @.str.4, %9623 ]
  store i32 %9618, ptr %3104, align 4, !tbaa !5
  %9629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9630 = load i32, ptr @test_count, align 4, !tbaa !5
  %9631 = load i32, ptr %3050, align 4, !tbaa !5
  %9632 = call ptr @s2n_strerror(i32 noundef %9631, ptr noundef nonnull @.str.6) #12
  %9633 = load i32, ptr %3050, align 4, !tbaa !5
  %9634 = call ptr @s2n_strerror_debug(i32 noundef %9633, ptr noundef nonnull @.str.6) #12
  %9635 = load i32, ptr %3104, align 4, !tbaa !5
  %9636 = call ptr @strerror(i32 noundef %9635) #12
  %9637 = load i32, ptr %3104, align 4, !tbaa !5
  %9638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9629, ptr noundef nonnull %.str.7.sink4988, i32 noundef %9630, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 876, ptr noundef %9632, ptr noundef %9634, ptr noundef %9636, i32 noundef %9637) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9639:                                             ; preds = %9612
  %9640 = load i32, ptr @test_count, align 4, !tbaa !5
  %9641 = add nsw i32 %9640, 1
  store i32 %9641, ptr @test_count, align 4, !tbaa !5
  %9642 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %64, i32 noundef 0) #12
  %9643 = icmp eq i32 %9642, -1
  br i1 %9643, label %9644, label %9666

9644:                                             ; preds = %9639
  %9645 = load i32, ptr %3104, align 4, !tbaa !5
  %9646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9647 = call i32 @s2n_print_stacktrace(ptr noundef %9646) #12
  %9648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9649 = trunc nuw i8 %9648 to i1
  br i1 %9649, label %9650, label %9654

9650:                                             ; preds = %9644
  %9651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9652 = call i32 @fileno(ptr noundef %9651) #12
  %9653 = call i32 @isatty(i32 noundef %9652) #12
  %.not1460 = icmp eq i32 %9653, 0
  br i1 %.not1460, label %9654, label %9655

9654:                                             ; preds = %9650, %9644
  br label %9655

9655:                                             ; preds = %9650, %9654
  %.str.7.sink4997 = phi ptr [ @.str.7, %9654 ], [ @.str.4, %9650 ]
  store i32 %9645, ptr %3104, align 4, !tbaa !5
  %9656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9657 = load i32, ptr @test_count, align 4, !tbaa !5
  %9658 = load i32, ptr %3050, align 4, !tbaa !5
  %9659 = call ptr @s2n_strerror(i32 noundef %9658, ptr noundef nonnull @.str.6) #12
  %9660 = load i32, ptr %3050, align 4, !tbaa !5
  %9661 = call ptr @s2n_strerror_debug(i32 noundef %9660, ptr noundef nonnull @.str.6) #12
  %9662 = load i32, ptr %3104, align 4, !tbaa !5
  %9663 = call ptr @strerror(i32 noundef %9662) #12
  %9664 = load i32, ptr %3104, align 4, !tbaa !5
  %9665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9656, ptr noundef nonnull %.str.7.sink4997, i32 noundef %9657, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 877, ptr noundef %9659, ptr noundef %9661, ptr noundef %9663, i32 noundef %9664) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9666:                                             ; preds = %9639
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #12
  store ptr null, ptr %67, align 8, !tbaa !9
  %9667 = load i32, ptr @test_count, align 4, !tbaa !5
  %9668 = add nsw i32 %9667, 1
  store i32 %9668, ptr @test_count, align 4, !tbaa !5
  %9669 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %9561, ptr noundef nonnull %67) #12
  %9670 = icmp eq i32 %9669, -1
  br i1 %9670, label %9671, label %9693

9671:                                             ; preds = %9666
  %9672 = load i32, ptr %3104, align 4, !tbaa !5
  %9673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9674 = call i32 @s2n_print_stacktrace(ptr noundef %9673) #12
  %9675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9676 = trunc nuw i8 %9675 to i1
  br i1 %9676, label %9677, label %9681

9677:                                             ; preds = %9671
  %9678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9679 = call i32 @fileno(ptr noundef %9678) #12
  %9680 = call i32 @isatty(i32 noundef %9679) #12
  %.not1459 = icmp eq i32 %9680, 0
  br i1 %.not1459, label %9681, label %9682

9681:                                             ; preds = %9677, %9671
  br label %9682

9682:                                             ; preds = %9677, %9681
  %.str.7.sink5006 = phi ptr [ @.str.7, %9681 ], [ @.str.4, %9677 ]
  store i32 %9672, ptr %3104, align 4, !tbaa !5
  %9683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9684 = load i32, ptr @test_count, align 4, !tbaa !5
  %9685 = load i32, ptr %3050, align 4, !tbaa !5
  %9686 = call ptr @s2n_strerror(i32 noundef %9685, ptr noundef nonnull @.str.6) #12
  %9687 = load i32, ptr %3050, align 4, !tbaa !5
  %9688 = call ptr @s2n_strerror_debug(i32 noundef %9687, ptr noundef nonnull @.str.6) #12
  %9689 = load i32, ptr %3104, align 4, !tbaa !5
  %9690 = call ptr @strerror(i32 noundef %9689) #12
  %9691 = load i32, ptr %3104, align 4, !tbaa !5
  %9692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9683, ptr noundef nonnull %.str.7.sink5006, i32 noundef %9684, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 880, ptr noundef %9686, ptr noundef %9688, ptr noundef %9690, i32 noundef %9691) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9693:                                             ; preds = %9666
  %9694 = load i32, ptr @test_count, align 4, !tbaa !5
  %9695 = add nsw i32 %9694, 1
  store i32 %9695, ptr @test_count, align 4, !tbaa !5
  %9696 = load ptr, ptr %67, align 8, !tbaa !9
  %9697 = icmp eq ptr %9696, null
  br i1 %9697, label %9698, label %9720

9698:                                             ; preds = %9693
  %9699 = load i32, ptr %3104, align 4, !tbaa !5
  %9700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9701 = call i32 @s2n_print_stacktrace(ptr noundef %9700) #12
  %9702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9703 = trunc nuw i8 %9702 to i1
  br i1 %9703, label %9704, label %9708

9704:                                             ; preds = %9698
  %9705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9706 = call i32 @fileno(ptr noundef %9705) #12
  %9707 = call i32 @isatty(i32 noundef %9706) #12
  %.not1458 = icmp eq i32 %9707, 0
  br i1 %.not1458, label %9708, label %9709

9708:                                             ; preds = %9704, %9698
  br label %9709

9709:                                             ; preds = %9704, %9708
  %.str.7.sink5015 = phi ptr [ @.str.7, %9708 ], [ @.str.4, %9704 ]
  store i32 %9699, ptr %3104, align 4, !tbaa !5
  %9710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9711 = load i32, ptr @test_count, align 4, !tbaa !5
  %9712 = load i32, ptr %3050, align 4, !tbaa !5
  %9713 = call ptr @s2n_strerror(i32 noundef %9712, ptr noundef nonnull @.str.6) #12
  %9714 = load i32, ptr %3050, align 4, !tbaa !5
  %9715 = call ptr @s2n_strerror_debug(i32 noundef %9714, ptr noundef nonnull @.str.6) #12
  %9716 = load i32, ptr %3104, align 4, !tbaa !5
  %9717 = call ptr @strerror(i32 noundef %9716) #12
  %9718 = load i32, ptr %3104, align 4, !tbaa !5
  %9719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9710, ptr noundef nonnull %.str.7.sink5015, i32 noundef %9711, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 881, ptr noundef %9713, ptr noundef %9715, ptr noundef %9717, i32 noundef %9718) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9720:                                             ; preds = %9693
  %9721 = add nsw i32 %9694, 2
  store i32 %9721, ptr @test_count, align 4, !tbaa !5
  %9722 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %64, i32 noundef 2) #12
  %9723 = icmp eq i32 %9722, -1
  br i1 %9723, label %9724, label %9746

9724:                                             ; preds = %9720
  %9725 = load i32, ptr %3104, align 4, !tbaa !5
  %9726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9727 = call i32 @s2n_print_stacktrace(ptr noundef %9726) #12
  %9728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9729 = trunc nuw i8 %9728 to i1
  br i1 %9729, label %9730, label %9734

9730:                                             ; preds = %9724
  %9731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9732 = call i32 @fileno(ptr noundef %9731) #12
  %9733 = call i32 @isatty(i32 noundef %9732) #12
  %.not1457 = icmp eq i32 %9733, 0
  br i1 %.not1457, label %9734, label %9735

9734:                                             ; preds = %9730, %9724
  br label %9735

9735:                                             ; preds = %9730, %9734
  %.str.7.sink5024 = phi ptr [ @.str.7, %9734 ], [ @.str.4, %9730 ]
  store i32 %9725, ptr %3104, align 4, !tbaa !5
  %9736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9737 = load i32, ptr @test_count, align 4, !tbaa !5
  %9738 = load i32, ptr %3050, align 4, !tbaa !5
  %9739 = call ptr @s2n_strerror(i32 noundef %9738, ptr noundef nonnull @.str.6) #12
  %9740 = load i32, ptr %3050, align 4, !tbaa !5
  %9741 = call ptr @s2n_strerror_debug(i32 noundef %9740, ptr noundef nonnull @.str.6) #12
  %9742 = load i32, ptr %3104, align 4, !tbaa !5
  %9743 = call ptr @strerror(i32 noundef %9742) #12
  %9744 = load i32, ptr %3104, align 4, !tbaa !5
  %9745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9736, ptr noundef nonnull %.str.7.sink5024, i32 noundef %9737, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.3, i32 noundef 883, ptr noundef %9739, ptr noundef %9741, ptr noundef %9743, i32 noundef %9744) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9746:                                             ; preds = %9720
  %9747 = load ptr, ptr %67, align 8, !tbaa !9
  %9748 = getelementptr inbounds i8, ptr %9747, i64 8
  %9749 = load ptr, ptr %9748, align 8, !tbaa !24
  %9750 = load ptr, ptr %9749, align 8, !tbaa !9
  store ptr %9750, ptr %65, align 8, !tbaa !22
  %9751 = getelementptr inbounds i8, ptr %65, i64 8
  store ptr null, ptr %9751, align 8, !tbaa !26
  %9752 = load i32, ptr @test_count, align 4, !tbaa !5
  %9753 = add nsw i32 %9752, 1
  store i32 %9753, ptr @test_count, align 4, !tbaa !5
  %9754 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %65, ptr noundef nonnull %64) #12
  %9755 = icmp eq i32 %9754, -1
  br i1 %9755, label %9756, label %9778

9756:                                             ; preds = %9746
  %9757 = load i32, ptr %3104, align 4, !tbaa !5
  %9758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9759 = call i32 @s2n_print_stacktrace(ptr noundef %9758) #12
  %9760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9761 = trunc nuw i8 %9760 to i1
  br i1 %9761, label %9762, label %9766

9762:                                             ; preds = %9756
  %9763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9764 = call i32 @fileno(ptr noundef %9763) #12
  %9765 = call i32 @isatty(i32 noundef %9764) #12
  %.not1456 = icmp eq i32 %9765, 0
  br i1 %.not1456, label %9766, label %9767

9766:                                             ; preds = %9762, %9756
  br label %9767

9767:                                             ; preds = %9762, %9766
  %.str.7.sink5033 = phi ptr [ @.str.7, %9766 ], [ @.str.4, %9762 ]
  store i32 %9757, ptr %3104, align 4, !tbaa !5
  %9768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9769 = load i32, ptr @test_count, align 4, !tbaa !5
  %9770 = load i32, ptr %3050, align 4, !tbaa !5
  %9771 = call ptr @s2n_strerror(i32 noundef %9770, ptr noundef nonnull @.str.6) #12
  %9772 = load i32, ptr %3050, align 4, !tbaa !5
  %9773 = call ptr @s2n_strerror_debug(i32 noundef %9772, ptr noundef nonnull @.str.6) #12
  %9774 = load i32, ptr %3104, align 4, !tbaa !5
  %9775 = call ptr @strerror(i32 noundef %9774) #12
  %9776 = load i32, ptr %3104, align 4, !tbaa !5
  %9777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9768, ptr noundef nonnull %.str.7.sink5033, i32 noundef %9769, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.3, i32 noundef 888, ptr noundef %9771, ptr noundef %9773, ptr noundef %9775, i32 noundef %9776) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9778:                                             ; preds = %9746
  %9779 = load ptr, ptr %67, align 8, !tbaa !9
  %9780 = getelementptr inbounds i8, ptr %9779, i64 8
  %9781 = load ptr, ptr %9780, align 8, !tbaa !24
  %9782 = load ptr, ptr %9781, align 8, !tbaa !9
  store ptr %9782, ptr %66, align 8, !tbaa !22
  %9783 = getelementptr inbounds i8, ptr %66, i64 8
  store ptr null, ptr %9783, align 8, !tbaa !26
  %9784 = load i32, ptr @test_count, align 4, !tbaa !5
  %9785 = add nsw i32 %9784, 1
  store i32 %9785, ptr @test_count, align 4, !tbaa !5
  %9786 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %66, ptr noundef nonnull %64) #12
  %9787 = icmp eq i32 %9786, -1
  br i1 %9787, label %9788, label %9810

9788:                                             ; preds = %9778
  %9789 = load i32, ptr %3104, align 4, !tbaa !5
  %9790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9791 = call i32 @s2n_print_stacktrace(ptr noundef %9790) #12
  %9792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9793 = trunc nuw i8 %9792 to i1
  br i1 %9793, label %9794, label %9798

9794:                                             ; preds = %9788
  %9795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9796 = call i32 @fileno(ptr noundef %9795) #12
  %9797 = call i32 @isatty(i32 noundef %9796) #12
  %.not1455 = icmp eq i32 %9797, 0
  br i1 %.not1455, label %9798, label %9799

9798:                                             ; preds = %9794, %9788
  br label %9799

9799:                                             ; preds = %9794, %9798
  %.str.7.sink5042 = phi ptr [ @.str.7, %9798 ], [ @.str.4, %9794 ]
  store i32 %9789, ptr %3104, align 4, !tbaa !5
  %9800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9801 = load i32, ptr @test_count, align 4, !tbaa !5
  %9802 = load i32, ptr %3050, align 4, !tbaa !5
  %9803 = call ptr @s2n_strerror(i32 noundef %9802, ptr noundef nonnull @.str.6) #12
  %9804 = load i32, ptr %3050, align 4, !tbaa !5
  %9805 = call ptr @s2n_strerror_debug(i32 noundef %9804, ptr noundef nonnull @.str.6) #12
  %9806 = load i32, ptr %3104, align 4, !tbaa !5
  %9807 = call ptr @strerror(i32 noundef %9806) #12
  %9808 = load i32, ptr %3104, align 4, !tbaa !5
  %9809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9800, ptr noundef nonnull %.str.7.sink5042, i32 noundef %9801, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.3, i32 noundef 893, ptr noundef %9803, ptr noundef %9805, ptr noundef %9807, i32 noundef %9808) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9810:                                             ; preds = %9778
  %9811 = load i32, ptr @test_count, align 4, !tbaa !5
  %9812 = add nsw i32 %9811, 1
  store i32 %9812, ptr @test_count, align 4, !tbaa !5
  %9813 = call i32 @s2n_test_rewrite_length(ptr noundef nonnull %64)
  %9814 = icmp eq i32 %9813, -1
  br i1 %9814, label %9815, label %9837

9815:                                             ; preds = %9810
  %9816 = load i32, ptr %3104, align 4, !tbaa !5
  %9817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9818 = call i32 @s2n_print_stacktrace(ptr noundef %9817) #12
  %9819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9820 = trunc nuw i8 %9819 to i1
  br i1 %9820, label %9821, label %9825

9821:                                             ; preds = %9815
  %9822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9823 = call i32 @fileno(ptr noundef %9822) #12
  %9824 = call i32 @isatty(i32 noundef %9823) #12
  %.not1454 = icmp eq i32 %9824, 0
  br i1 %.not1454, label %9825, label %9826

9825:                                             ; preds = %9821, %9815
  br label %9826

9826:                                             ; preds = %9821, %9825
  %.str.7.sink5051 = phi ptr [ @.str.7, %9825 ], [ @.str.4, %9821 ]
  store i32 %9816, ptr %3104, align 4, !tbaa !5
  %9827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9828 = load i32, ptr @test_count, align 4, !tbaa !5
  %9829 = load i32, ptr %3050, align 4, !tbaa !5
  %9830 = call ptr @s2n_strerror(i32 noundef %9829, ptr noundef nonnull @.str.6) #12
  %9831 = load i32, ptr %3050, align 4, !tbaa !5
  %9832 = call ptr @s2n_strerror_debug(i32 noundef %9831, ptr noundef nonnull @.str.6) #12
  %9833 = load i32, ptr %3104, align 4, !tbaa !5
  %9834 = call ptr @strerror(i32 noundef %9833) #12
  %9835 = load i32, ptr %3104, align 4, !tbaa !5
  %9836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9827, ptr noundef nonnull %.str.7.sink5051, i32 noundef %9828, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.3, i32 noundef 895, ptr noundef %9830, ptr noundef %9832, ptr noundef %9834, i32 noundef %9835) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9837:                                             ; preds = %9810
  %9838 = load i32, ptr @test_count, align 4, !tbaa !5
  %9839 = add nsw i32 %9838, 1
  store i32 %9839, ptr @test_count, align 4, !tbaa !5
  %9840 = call i32 %2660(ptr noundef nonnull %9561, ptr noundef nonnull %64) #12
  %9841 = icmp eq i32 %9840, -1
  br i1 %9841, label %9842, label %9864

9842:                                             ; preds = %9837
  %9843 = load i32, ptr %3104, align 4, !tbaa !5
  %9844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9845 = call i32 @s2n_print_stacktrace(ptr noundef %9844) #12
  %9846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9847 = trunc nuw i8 %9846 to i1
  br i1 %9847, label %9848, label %9852

9848:                                             ; preds = %9842
  %9849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9850 = call i32 @fileno(ptr noundef %9849) #12
  %9851 = call i32 @isatty(i32 noundef %9850) #12
  %.not1453 = icmp eq i32 %9851, 0
  br i1 %.not1453, label %9852, label %9853

9852:                                             ; preds = %9848, %9842
  br label %9853

9853:                                             ; preds = %9848, %9852
  %.str.7.sink5060 = phi ptr [ @.str.7, %9852 ], [ @.str.4, %9848 ]
  store i32 %9843, ptr %3104, align 4, !tbaa !5
  %9854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9855 = load i32, ptr @test_count, align 4, !tbaa !5
  %9856 = load i32, ptr %3050, align 4, !tbaa !5
  %9857 = call ptr @s2n_strerror(i32 noundef %9856, ptr noundef nonnull @.str.6) #12
  %9858 = load i32, ptr %3050, align 4, !tbaa !5
  %9859 = call ptr @s2n_strerror_debug(i32 noundef %9858, ptr noundef nonnull @.str.6) #12
  %9860 = load i32, ptr %3104, align 4, !tbaa !5
  %9861 = call ptr @strerror(i32 noundef %9860) #12
  %9862 = load i32, ptr %3104, align 4, !tbaa !5
  %9863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9854, ptr noundef nonnull %.str.7.sink5060, i32 noundef %9855, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 897, ptr noundef %9857, ptr noundef %9859, ptr noundef %9861, i32 noundef %9862) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9864:                                             ; preds = %9837
  %9865 = load i32, ptr @test_count, align 4, !tbaa !5
  %9866 = add nsw i32 %9865, 1
  store i32 %9866, ptr @test_count, align 4, !tbaa !5
  %9867 = getelementptr inbounds i8, ptr %64, i64 28
  %9868 = load i32, ptr %9867, align 4, !tbaa !18
  %9869 = getelementptr inbounds i8, ptr %64, i64 24
  %9870 = load i32, ptr %9869, align 8, !tbaa !21
  %9871 = icmp eq i32 %9868, %9870
  br i1 %9871, label %9894, label %9872

9872:                                             ; preds = %9864
  %9873 = load i32, ptr %3104, align 4, !tbaa !5
  %9874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9875 = call i32 @s2n_print_stacktrace(ptr noundef %9874) #12
  %9876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9877 = trunc nuw i8 %9876 to i1
  br i1 %9877, label %9878, label %9882

9878:                                             ; preds = %9872
  %9879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9880 = call i32 @fileno(ptr noundef %9879) #12
  %9881 = call i32 @isatty(i32 noundef %9880) #12
  %.not1352 = icmp eq i32 %9881, 0
  br i1 %.not1352, label %9882, label %9883

9882:                                             ; preds = %9878, %9872
  br label %9883

9883:                                             ; preds = %9878, %9882
  %.str.7.sink5069 = phi ptr [ @.str.7, %9882 ], [ @.str.4, %9878 ]
  store i32 %9873, ptr %3104, align 4, !tbaa !5
  %9884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9885 = load i32, ptr @test_count, align 4, !tbaa !5
  %9886 = load i32, ptr %3050, align 4, !tbaa !5
  %9887 = call ptr @s2n_strerror(i32 noundef %9886, ptr noundef nonnull @.str.6) #12
  %9888 = load i32, ptr %3050, align 4, !tbaa !5
  %9889 = call ptr @s2n_strerror_debug(i32 noundef %9888, ptr noundef nonnull @.str.6) #12
  %9890 = load i32, ptr %3104, align 4, !tbaa !5
  %9891 = call ptr @strerror(i32 noundef %9890) #12
  %9892 = load i32, ptr %3104, align 4, !tbaa !5
  %9893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9884, ptr noundef nonnull %.str.7.sink5069, i32 noundef %9885, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 900, ptr noundef %9887, ptr noundef %9889, ptr noundef %9891, i32 noundef %9892) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9894:                                             ; preds = %9864
  %9895 = add nsw i32 %9865, 2
  store i32 %9895, ptr @test_count, align 4, !tbaa !5
  %9896 = getelementptr inbounds i8, ptr %9561, i64 704
  %9897 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %9896, ptr noundef nonnull %65) #12
  %.not1353 = icmp eq i32 %9897, 0
  br i1 %.not1353, label %9898, label %9920

9898:                                             ; preds = %9894
  %9899 = load i32, ptr %3104, align 4, !tbaa !5
  %9900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9901 = call i32 @s2n_print_stacktrace(ptr noundef %9900) #12
  %9902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9903 = trunc nuw i8 %9902 to i1
  br i1 %9903, label %9904, label %9908

9904:                                             ; preds = %9898
  %9905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9906 = call i32 @fileno(ptr noundef %9905) #12
  %9907 = call i32 @isatty(i32 noundef %9906) #12
  %.not1354 = icmp eq i32 %9907, 0
  br i1 %.not1354, label %9908, label %9909

9908:                                             ; preds = %9904, %9898
  br label %9909

9909:                                             ; preds = %9904, %9908
  %.str.7.sink5078 = phi ptr [ @.str.7, %9908 ], [ @.str.4, %9904 ]
  store i32 %9899, ptr %3104, align 4, !tbaa !5
  %9910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9911 = load i32, ptr @test_count, align 4, !tbaa !5
  %9912 = load i32, ptr %3050, align 4, !tbaa !5
  %9913 = call ptr @s2n_strerror(i32 noundef %9912, ptr noundef nonnull @.str.6) #12
  %9914 = load i32, ptr %3050, align 4, !tbaa !5
  %9915 = call ptr @s2n_strerror_debug(i32 noundef %9914, ptr noundef nonnull @.str.6) #12
  %9916 = load i32, ptr %3104, align 4, !tbaa !5
  %9917 = call ptr @strerror(i32 noundef %9916) #12
  %9918 = load i32, ptr %3104, align 4, !tbaa !5
  %9919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9910, ptr noundef nonnull %.str.7.sink5078, i32 noundef %9911, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.3, i32 noundef 904, ptr noundef %9913, ptr noundef %9915, ptr noundef %9917, i32 noundef %9918) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9920:                                             ; preds = %9894
  %9921 = load i32, ptr @test_count, align 4, !tbaa !5
  %9922 = add nsw i32 %9921, 1
  store i32 %9922, ptr @test_count, align 4, !tbaa !5
  %9923 = call i32 @s2n_stuffer_free(ptr noundef nonnull %64) #12
  %9924 = icmp eq i32 %9923, -1
  br i1 %9924, label %9925, label %9947

9925:                                             ; preds = %9920
  %9926 = load i32, ptr %3104, align 4, !tbaa !5
  %9927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9928 = call i32 @s2n_print_stacktrace(ptr noundef %9927) #12
  %9929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9930 = trunc nuw i8 %9929 to i1
  br i1 %9930, label %9931, label %9935

9931:                                             ; preds = %9925
  %9932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9933 = call i32 @fileno(ptr noundef %9932) #12
  %9934 = call i32 @isatty(i32 noundef %9933) #12
  %.not1452 = icmp eq i32 %9934, 0
  br i1 %.not1452, label %9935, label %9936

9935:                                             ; preds = %9931, %9925
  br label %9936

9936:                                             ; preds = %9931, %9935
  %.str.7.sink5087 = phi ptr [ @.str.7, %9935 ], [ @.str.4, %9931 ]
  store i32 %9926, ptr %3104, align 4, !tbaa !5
  %9937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9938 = load i32, ptr @test_count, align 4, !tbaa !5
  %9939 = load i32, ptr %3050, align 4, !tbaa !5
  %9940 = call ptr @s2n_strerror(i32 noundef %9939, ptr noundef nonnull @.str.6) #12
  %9941 = load i32, ptr %3050, align 4, !tbaa !5
  %9942 = call ptr @s2n_strerror_debug(i32 noundef %9941, ptr noundef nonnull @.str.6) #12
  %9943 = load i32, ptr %3104, align 4, !tbaa !5
  %9944 = call ptr @strerror(i32 noundef %9943) #12
  %9945 = load i32, ptr %3104, align 4, !tbaa !5
  %9946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9937, ptr noundef nonnull %.str.7.sink5087, i32 noundef %9938, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 906, ptr noundef %9940, ptr noundef %9942, ptr noundef %9944, i32 noundef %9945) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9947:                                             ; preds = %9920
  %9948 = load i32, ptr @test_count, align 4, !tbaa !5
  %9949 = add nsw i32 %9948, 1
  store i32 %9949, ptr @test_count, align 4, !tbaa !5
  %9950 = call i32 @s2n_connection_free(ptr noundef nonnull %9561) #12
  %9951 = icmp eq i32 %9950, -1
  br i1 %9951, label %9952, label %9974

9952:                                             ; preds = %9947
  %9953 = load i32, ptr %3104, align 4, !tbaa !5
  %9954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9955 = call i32 @s2n_print_stacktrace(ptr noundef %9954) #12
  %9956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9957 = trunc nuw i8 %9956 to i1
  br i1 %9957, label %9958, label %9962

9958:                                             ; preds = %9952
  %9959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9960 = call i32 @fileno(ptr noundef %9959) #12
  %9961 = call i32 @isatty(i32 noundef %9960) #12
  %.not1451 = icmp eq i32 %9961, 0
  br i1 %.not1451, label %9962, label %9963

9962:                                             ; preds = %9958, %9952
  br label %9963

9963:                                             ; preds = %9958, %9962
  %.str.7.sink5096 = phi ptr [ @.str.7, %9962 ], [ @.str.4, %9958 ]
  store i32 %9953, ptr %3104, align 4, !tbaa !5
  %9964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9965 = load i32, ptr @test_count, align 4, !tbaa !5
  %9966 = load i32, ptr %3050, align 4, !tbaa !5
  %9967 = call ptr @s2n_strerror(i32 noundef %9966, ptr noundef nonnull @.str.6) #12
  %9968 = load i32, ptr %3050, align 4, !tbaa !5
  %9969 = call ptr @s2n_strerror_debug(i32 noundef %9968, ptr noundef nonnull @.str.6) #12
  %9970 = load i32, ptr %3104, align 4, !tbaa !5
  %9971 = call ptr @strerror(i32 noundef %9970) #12
  %9972 = load i32, ptr %3104, align 4, !tbaa !5
  %9973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9964, ptr noundef nonnull %.str.7.sink5096, i32 noundef %9965, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 907, ptr noundef %9967, ptr noundef %9969, ptr noundef %9971, i32 noundef %9972) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9974:                                             ; preds = %9947
  %9975 = load i32, ptr @test_count, align 4, !tbaa !5
  %9976 = add nsw i32 %9975, 1
  store i32 %9976, ptr @test_count, align 4, !tbaa !5
  %9977 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %65) #12
  %9978 = icmp eq i32 %9977, -1
  br i1 %9978, label %9979, label %10001

9979:                                             ; preds = %9974
  %9980 = load i32, ptr %3104, align 4, !tbaa !5
  %9981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9982 = call i32 @s2n_print_stacktrace(ptr noundef %9981) #12
  %9983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9984 = trunc nuw i8 %9983 to i1
  br i1 %9984, label %9985, label %9989

9985:                                             ; preds = %9979
  %9986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9987 = call i32 @fileno(ptr noundef %9986) #12
  %9988 = call i32 @isatty(i32 noundef %9987) #12
  %.not1450 = icmp eq i32 %9988, 0
  br i1 %.not1450, label %9989, label %9990

9989:                                             ; preds = %9985, %9979
  br label %9990

9990:                                             ; preds = %9985, %9989
  %.str.7.sink5105 = phi ptr [ @.str.7, %9989 ], [ @.str.4, %9985 ]
  store i32 %9980, ptr %3104, align 4, !tbaa !5
  %9991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9992 = load i32, ptr @test_count, align 4, !tbaa !5
  %9993 = load i32, ptr %3050, align 4, !tbaa !5
  %9994 = call ptr @s2n_strerror(i32 noundef %9993, ptr noundef nonnull @.str.6) #12
  %9995 = load i32, ptr %3050, align 4, !tbaa !5
  %9996 = call ptr @s2n_strerror_debug(i32 noundef %9995, ptr noundef nonnull @.str.6) #12
  %9997 = load i32, ptr %3104, align 4, !tbaa !5
  %9998 = call ptr @strerror(i32 noundef %9997) #12
  %9999 = load i32, ptr %3104, align 4, !tbaa !5
  %10000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9991, ptr noundef nonnull %.str.7.sink5105, i32 noundef %9992, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.3, i32 noundef 908, ptr noundef %9994, ptr noundef %9996, ptr noundef %9998, i32 noundef %9999) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10001:                                            ; preds = %9974
  %10002 = load i32, ptr @test_count, align 4, !tbaa !5
  %10003 = add nsw i32 %10002, 1
  store i32 %10003, ptr @test_count, align 4, !tbaa !5
  %10004 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %66) #12
  %10005 = icmp eq i32 %10004, -1
  br i1 %10005, label %10006, label %10028

10006:                                            ; preds = %10001
  %10007 = load i32, ptr %3104, align 4, !tbaa !5
  %10008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10009 = call i32 @s2n_print_stacktrace(ptr noundef %10008) #12
  %10010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10011 = trunc nuw i8 %10010 to i1
  br i1 %10011, label %10012, label %10016

10012:                                            ; preds = %10006
  %10013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10014 = call i32 @fileno(ptr noundef %10013) #12
  %10015 = call i32 @isatty(i32 noundef %10014) #12
  %.not1449 = icmp eq i32 %10015, 0
  br i1 %.not1449, label %10016, label %10017

10016:                                            ; preds = %10012, %10006
  br label %10017

10017:                                            ; preds = %10012, %10016
  %.str.7.sink5114 = phi ptr [ @.str.7, %10016 ], [ @.str.4, %10012 ]
  store i32 %10007, ptr %3104, align 4, !tbaa !5
  %10018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10019 = load i32, ptr @test_count, align 4, !tbaa !5
  %10020 = load i32, ptr %3050, align 4, !tbaa !5
  %10021 = call ptr @s2n_strerror(i32 noundef %10020, ptr noundef nonnull @.str.6) #12
  %10022 = load i32, ptr %3050, align 4, !tbaa !5
  %10023 = call ptr @s2n_strerror_debug(i32 noundef %10022, ptr noundef nonnull @.str.6) #12
  %10024 = load i32, ptr %3104, align 4, !tbaa !5
  %10025 = call ptr @strerror(i32 noundef %10024) #12
  %10026 = load i32, ptr %3104, align 4, !tbaa !5
  %10027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10018, ptr noundef nonnull %.str.7.sink5114, i32 noundef %10019, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.3, i32 noundef 909, ptr noundef %10021, ptr noundef %10023, ptr noundef %10025, i32 noundef %10026) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10028:                                            ; preds = %10001
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %66) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %64) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %68) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %68, i8 0, i64 40, i1 false)
  %10029 = load i32, ptr @test_count, align 4, !tbaa !5
  %10030 = add nsw i32 %10029, 1
  store i32 %10030, ptr @test_count, align 4, !tbaa !5
  %10031 = call ptr @s2n_config_new() #12
  %10032 = icmp eq ptr %10031, null
  br i1 %10032, label %10033, label %10055

10033:                                            ; preds = %10028
  %10034 = load i32, ptr %3104, align 4, !tbaa !5
  %10035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10036 = call i32 @s2n_print_stacktrace(ptr noundef %10035) #12
  %10037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10038 = trunc nuw i8 %10037 to i1
  br i1 %10038, label %10039, label %10043

10039:                                            ; preds = %10033
  %10040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10041 = call i32 @fileno(ptr noundef %10040) #12
  %10042 = call i32 @isatty(i32 noundef %10041) #12
  %.not1448 = icmp eq i32 %10042, 0
  br i1 %.not1448, label %10043, label %10044

10043:                                            ; preds = %10039, %10033
  br label %10044

10044:                                            ; preds = %10039, %10043
  %.str.7.sink5123 = phi ptr [ @.str.7, %10043 ], [ @.str.4, %10039 ]
  store i32 %10034, ptr %3104, align 4, !tbaa !5
  %10045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10046 = load i32, ptr @test_count, align 4, !tbaa !5
  %10047 = load i32, ptr %3050, align 4, !tbaa !5
  %10048 = call ptr @s2n_strerror(i32 noundef %10047, ptr noundef nonnull @.str.6) #12
  %10049 = load i32, ptr %3050, align 4, !tbaa !5
  %10050 = call ptr @s2n_strerror_debug(i32 noundef %10049, ptr noundef nonnull @.str.6) #12
  %10051 = load i32, ptr %3104, align 4, !tbaa !5
  %10052 = call ptr @strerror(i32 noundef %10051) #12
  %10053 = load i32, ptr %3104, align 4, !tbaa !5
  %10054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10045, ptr noundef nonnull %.str.7.sink5123, i32 noundef %10046, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.3, i32 noundef 917, ptr noundef %10048, ptr noundef %10050, ptr noundef %10052, i32 noundef %10053) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10055:                                            ; preds = %10028
  %10056 = load i32, ptr @test_count, align 4, !tbaa !5
  %10057 = add nsw i32 %10056, 1
  store i32 %10057, ptr @test_count, align 4, !tbaa !5
  %10058 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %10031, ptr noundef nonnull @.str.34) #12
  %10059 = icmp eq i32 %10058, -1
  br i1 %10059, label %10060, label %10082

10060:                                            ; preds = %10055
  %10061 = load i32, ptr %3104, align 4, !tbaa !5
  %10062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10063 = call i32 @s2n_print_stacktrace(ptr noundef %10062) #12
  %10064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10065 = trunc nuw i8 %10064 to i1
  br i1 %10065, label %10066, label %10070

10066:                                            ; preds = %10060
  %10067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10068 = call i32 @fileno(ptr noundef %10067) #12
  %10069 = call i32 @isatty(i32 noundef %10068) #12
  %.not1447 = icmp eq i32 %10069, 0
  br i1 %.not1447, label %10070, label %10071

10070:                                            ; preds = %10066, %10060
  br label %10071

10071:                                            ; preds = %10066, %10070
  %.str.7.sink5132 = phi ptr [ @.str.7, %10070 ], [ @.str.4, %10066 ]
  store i32 %10061, ptr %3104, align 4, !tbaa !5
  %10072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10073 = load i32, ptr @test_count, align 4, !tbaa !5
  %10074 = load i32, ptr %3050, align 4, !tbaa !5
  %10075 = call ptr @s2n_strerror(i32 noundef %10074, ptr noundef nonnull @.str.6) #12
  %10076 = load i32, ptr %3050, align 4, !tbaa !5
  %10077 = call ptr @s2n_strerror_debug(i32 noundef %10076, ptr noundef nonnull @.str.6) #12
  %10078 = load i32, ptr %3104, align 4, !tbaa !5
  %10079 = call ptr @strerror(i32 noundef %10078) #12
  %10080 = load i32, ptr %3104, align 4, !tbaa !5
  %10081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10072, ptr noundef nonnull %.str.7.sink5132, i32 noundef %10073, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.3, i32 noundef 919, ptr noundef %10075, ptr noundef %10077, ptr noundef %10079, i32 noundef %10080) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10082:                                            ; preds = %10055
  %10083 = load i32, ptr @test_count, align 4, !tbaa !5
  %10084 = add nsw i32 %10083, 1
  store i32 %10084, ptr @test_count, align 4, !tbaa !5
  %10085 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %10086 = icmp eq ptr %10085, null
  br i1 %10086, label %10087, label %10109

10087:                                            ; preds = %10082
  %10088 = load i32, ptr %3104, align 4, !tbaa !5
  %10089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10090 = call i32 @s2n_print_stacktrace(ptr noundef %10089) #12
  %10091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10092 = trunc nuw i8 %10091 to i1
  br i1 %10092, label %10093, label %10097

10093:                                            ; preds = %10087
  %10094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10095 = call i32 @fileno(ptr noundef %10094) #12
  %10096 = call i32 @isatty(i32 noundef %10095) #12
  %.not1446 = icmp eq i32 %10096, 0
  br i1 %.not1446, label %10097, label %10098

10097:                                            ; preds = %10093, %10087
  br label %10098

10098:                                            ; preds = %10093, %10097
  %.str.7.sink5141 = phi ptr [ @.str.7, %10097 ], [ @.str.4, %10093 ]
  store i32 %10088, ptr %3104, align 4, !tbaa !5
  %10099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10100 = load i32, ptr @test_count, align 4, !tbaa !5
  %10101 = load i32, ptr %3050, align 4, !tbaa !5
  %10102 = call ptr @s2n_strerror(i32 noundef %10101, ptr noundef nonnull @.str.6) #12
  %10103 = load i32, ptr %3050, align 4, !tbaa !5
  %10104 = call ptr @s2n_strerror_debug(i32 noundef %10103, ptr noundef nonnull @.str.6) #12
  %10105 = load i32, ptr %3104, align 4, !tbaa !5
  %10106 = call ptr @strerror(i32 noundef %10105) #12
  %10107 = load i32, ptr %3104, align 4, !tbaa !5
  %10108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10099, ptr noundef nonnull %.str.7.sink5141, i32 noundef %10100, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.3, i32 noundef 921, ptr noundef %10102, ptr noundef %10104, ptr noundef %10106, i32 noundef %10107) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10109:                                            ; preds = %10082
  %10110 = load i32, ptr @test_count, align 4, !tbaa !5
  %10111 = add nsw i32 %10110, 1
  store i32 %10111, ptr @test_count, align 4, !tbaa !5
  %10112 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %10085, i8 noundef zeroext 34) #12
  %10113 = icmp eq i32 %10112, -1
  br i1 %10113, label %10114, label %10136

10114:                                            ; preds = %10109
  %10115 = load i32, ptr %3104, align 4, !tbaa !5
  %10116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10117 = call i32 @s2n_print_stacktrace(ptr noundef %10116) #12
  %10118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10119 = trunc nuw i8 %10118 to i1
  br i1 %10119, label %10120, label %10124

10120:                                            ; preds = %10114
  %10121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10122 = call i32 @fileno(ptr noundef %10121) #12
  %10123 = call i32 @isatty(i32 noundef %10122) #12
  %.not1445 = icmp eq i32 %10123, 0
  br i1 %.not1445, label %10124, label %10125

10124:                                            ; preds = %10120, %10114
  br label %10125

10125:                                            ; preds = %10120, %10124
  %.str.7.sink5150 = phi ptr [ @.str.7, %10124 ], [ @.str.4, %10120 ]
  store i32 %10115, ptr %3104, align 4, !tbaa !5
  %10126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10127 = load i32, ptr @test_count, align 4, !tbaa !5
  %10128 = load i32, ptr %3050, align 4, !tbaa !5
  %10129 = call ptr @s2n_strerror(i32 noundef %10128, ptr noundef nonnull @.str.6) #12
  %10130 = load i32, ptr %3050, align 4, !tbaa !5
  %10131 = call ptr @s2n_strerror_debug(i32 noundef %10130, ptr noundef nonnull @.str.6) #12
  %10132 = load i32, ptr %3104, align 4, !tbaa !5
  %10133 = call ptr @strerror(i32 noundef %10132) #12
  %10134 = load i32, ptr %3104, align 4, !tbaa !5
  %10135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10126, ptr noundef nonnull %.str.7.sink5150, i32 noundef %10127, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.3, i32 noundef 922, ptr noundef %10129, ptr noundef %10131, ptr noundef %10133, i32 noundef %10134) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10136:                                            ; preds = %10109
  %10137 = load i32, ptr @test_count, align 4, !tbaa !5
  %10138 = add nsw i32 %10137, 1
  store i32 %10138, ptr @test_count, align 4, !tbaa !5
  %10139 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %10085) #12
  %10140 = call zeroext i1 @s2n_result_is_ok(i32 %10139)
  br i1 %10140, label %10163, label %10141

10141:                                            ; preds = %10136
  %10142 = load i32, ptr %3104, align 4, !tbaa !5
  %10143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10144 = call i32 @s2n_print_stacktrace(ptr noundef %10143) #12
  %10145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10146 = trunc nuw i8 %10145 to i1
  br i1 %10146, label %10147, label %10151

10147:                                            ; preds = %10141
  %10148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10149 = call i32 @fileno(ptr noundef %10148) #12
  %10150 = call i32 @isatty(i32 noundef %10149) #12
  %.not1355 = icmp eq i32 %10150, 0
  br i1 %.not1355, label %10151, label %10152

10151:                                            ; preds = %10147, %10141
  br label %10152

10152:                                            ; preds = %10147, %10151
  %.str.7.sink5159 = phi ptr [ @.str.7, %10151 ], [ @.str.4, %10147 ]
  store i32 %10142, ptr %3104, align 4, !tbaa !5
  %10153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10154 = load i32, ptr @test_count, align 4, !tbaa !5
  %10155 = load i32, ptr %3050, align 4, !tbaa !5
  %10156 = call ptr @s2n_strerror(i32 noundef %10155, ptr noundef nonnull @.str.6) #12
  %10157 = load i32, ptr %3050, align 4, !tbaa !5
  %10158 = call ptr @s2n_strerror_debug(i32 noundef %10157, ptr noundef nonnull @.str.6) #12
  %10159 = load i32, ptr %3104, align 4, !tbaa !5
  %10160 = call ptr @strerror(i32 noundef %10159) #12
  %10161 = load i32, ptr %3104, align 4, !tbaa !5
  %10162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10153, ptr noundef nonnull %.str.7.sink5159, i32 noundef %10154, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.3, i32 noundef 923, ptr noundef %10156, ptr noundef %10158, ptr noundef %10160, i32 noundef %10161) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10163:                                            ; preds = %10136
  %10164 = load i32, ptr @test_count, align 4, !tbaa !5
  %10165 = add nsw i32 %10164, 1
  store i32 %10165, ptr @test_count, align 4, !tbaa !5
  %10166 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %68, i32 noundef 0) #12
  %10167 = icmp eq i32 %10166, -1
  br i1 %10167, label %10168, label %10190

10168:                                            ; preds = %10163
  %10169 = load i32, ptr %3104, align 4, !tbaa !5
  %10170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10171 = call i32 @s2n_print_stacktrace(ptr noundef %10170) #12
  %10172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10173 = trunc nuw i8 %10172 to i1
  br i1 %10173, label %10174, label %10178

10174:                                            ; preds = %10168
  %10175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10176 = call i32 @fileno(ptr noundef %10175) #12
  %10177 = call i32 @isatty(i32 noundef %10176) #12
  %.not1444 = icmp eq i32 %10177, 0
  br i1 %.not1444, label %10178, label %10179

10178:                                            ; preds = %10174, %10168
  br label %10179

10179:                                            ; preds = %10174, %10178
  %.str.7.sink5168 = phi ptr [ @.str.7, %10178 ], [ @.str.4, %10174 ]
  store i32 %10169, ptr %3104, align 4, !tbaa !5
  %10180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10181 = load i32, ptr @test_count, align 4, !tbaa !5
  %10182 = load i32, ptr %3050, align 4, !tbaa !5
  %10183 = call ptr @s2n_strerror(i32 noundef %10182, ptr noundef nonnull @.str.6) #12
  %10184 = load i32, ptr %3050, align 4, !tbaa !5
  %10185 = call ptr @s2n_strerror_debug(i32 noundef %10184, ptr noundef nonnull @.str.6) #12
  %10186 = load i32, ptr %3104, align 4, !tbaa !5
  %10187 = call ptr @strerror(i32 noundef %10186) #12
  %10188 = load i32, ptr %3104, align 4, !tbaa !5
  %10189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10180, ptr noundef nonnull %.str.7.sink5168, i32 noundef %10181, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 924, ptr noundef %10183, ptr noundef %10185, ptr noundef %10187, i32 noundef %10188) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10190:                                            ; preds = %10163
  %10191 = load i32, ptr @test_count, align 4, !tbaa !5
  %10192 = add nsw i32 %10191, 1
  store i32 %10192, ptr @test_count, align 4, !tbaa !5
  %10193 = call i32 @s2n_connection_set_config(ptr noundef nonnull %10085, ptr noundef nonnull %10031) #12
  %10194 = icmp eq i32 %10193, -1
  br i1 %10194, label %10195, label %10217

10195:                                            ; preds = %10190
  %10196 = load i32, ptr %3104, align 4, !tbaa !5
  %10197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10198 = call i32 @s2n_print_stacktrace(ptr noundef %10197) #12
  %10199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10200 = trunc nuw i8 %10199 to i1
  br i1 %10200, label %10201, label %10205

10201:                                            ; preds = %10195
  %10202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10203 = call i32 @fileno(ptr noundef %10202) #12
  %10204 = call i32 @isatty(i32 noundef %10203) #12
  %.not1443 = icmp eq i32 %10204, 0
  br i1 %.not1443, label %10205, label %10206

10205:                                            ; preds = %10201, %10195
  br label %10206

10206:                                            ; preds = %10201, %10205
  %.str.7.sink5177 = phi ptr [ @.str.7, %10205 ], [ @.str.4, %10201 ]
  store i32 %10196, ptr %3104, align 4, !tbaa !5
  %10207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10208 = load i32, ptr @test_count, align 4, !tbaa !5
  %10209 = load i32, ptr %3050, align 4, !tbaa !5
  %10210 = call ptr @s2n_strerror(i32 noundef %10209, ptr noundef nonnull @.str.6) #12
  %10211 = load i32, ptr %3050, align 4, !tbaa !5
  %10212 = call ptr @s2n_strerror_debug(i32 noundef %10211, ptr noundef nonnull @.str.6) #12
  %10213 = load i32, ptr %3104, align 4, !tbaa !5
  %10214 = call ptr @strerror(i32 noundef %10213) #12
  %10215 = load i32, ptr %3104, align 4, !tbaa !5
  %10216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10207, ptr noundef nonnull %.str.7.sink5177, i32 noundef %10208, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.3, i32 noundef 925, ptr noundef %10210, ptr noundef %10212, ptr noundef %10214, i32 noundef %10215) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10217:                                            ; preds = %10190
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #12
  store ptr null, ptr %69, align 8, !tbaa !9
  %10218 = load i32, ptr @test_count, align 4, !tbaa !5
  %10219 = add nsw i32 %10218, 1
  store i32 %10219, ptr @test_count, align 4, !tbaa !5
  %10220 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %10085, ptr noundef nonnull %69) #12
  %10221 = icmp eq i32 %10220, -1
  br i1 %10221, label %10222, label %10244

10222:                                            ; preds = %10217
  %10223 = load i32, ptr %3104, align 4, !tbaa !5
  %10224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10225 = call i32 @s2n_print_stacktrace(ptr noundef %10224) #12
  %10226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10227 = trunc nuw i8 %10226 to i1
  br i1 %10227, label %10228, label %10232

10228:                                            ; preds = %10222
  %10229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10230 = call i32 @fileno(ptr noundef %10229) #12
  %10231 = call i32 @isatty(i32 noundef %10230) #12
  %.not1442 = icmp eq i32 %10231, 0
  br i1 %.not1442, label %10232, label %10233

10232:                                            ; preds = %10228, %10222
  br label %10233

10233:                                            ; preds = %10228, %10232
  %.str.7.sink5186 = phi ptr [ @.str.7, %10232 ], [ @.str.4, %10228 ]
  store i32 %10223, ptr %3104, align 4, !tbaa !5
  %10234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10235 = load i32, ptr @test_count, align 4, !tbaa !5
  %10236 = load i32, ptr %3050, align 4, !tbaa !5
  %10237 = call ptr @s2n_strerror(i32 noundef %10236, ptr noundef nonnull @.str.6) #12
  %10238 = load i32, ptr %3050, align 4, !tbaa !5
  %10239 = call ptr @s2n_strerror_debug(i32 noundef %10238, ptr noundef nonnull @.str.6) #12
  %10240 = load i32, ptr %3104, align 4, !tbaa !5
  %10241 = call ptr @strerror(i32 noundef %10240) #12
  %10242 = load i32, ptr %3104, align 4, !tbaa !5
  %10243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10234, ptr noundef nonnull %.str.7.sink5186, i32 noundef %10235, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.3, i32 noundef 928, ptr noundef %10237, ptr noundef %10239, ptr noundef %10241, i32 noundef %10242) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10244:                                            ; preds = %10217
  %10245 = load i32, ptr @test_count, align 4, !tbaa !5
  %10246 = add nsw i32 %10245, 1
  store i32 %10246, ptr @test_count, align 4, !tbaa !5
  %10247 = load ptr, ptr %69, align 8, !tbaa !9
  %10248 = icmp eq ptr %10247, null
  br i1 %10248, label %10249, label %10271

10249:                                            ; preds = %10244
  %10250 = load i32, ptr %3104, align 4, !tbaa !5
  %10251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10252 = call i32 @s2n_print_stacktrace(ptr noundef %10251) #12
  %10253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10254 = trunc nuw i8 %10253 to i1
  br i1 %10254, label %10255, label %10259

10255:                                            ; preds = %10249
  %10256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10257 = call i32 @fileno(ptr noundef %10256) #12
  %10258 = call i32 @isatty(i32 noundef %10257) #12
  %.not1441 = icmp eq i32 %10258, 0
  br i1 %.not1441, label %10259, label %10260

10259:                                            ; preds = %10255, %10249
  br label %10260

10260:                                            ; preds = %10255, %10259
  %.str.7.sink5195 = phi ptr [ @.str.7, %10259 ], [ @.str.4, %10255 ]
  store i32 %10250, ptr %3104, align 4, !tbaa !5
  %10261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10262 = load i32, ptr @test_count, align 4, !tbaa !5
  %10263 = load i32, ptr %3050, align 4, !tbaa !5
  %10264 = call ptr @s2n_strerror(i32 noundef %10263, ptr noundef nonnull @.str.6) #12
  %10265 = load i32, ptr %3050, align 4, !tbaa !5
  %10266 = call ptr @s2n_strerror_debug(i32 noundef %10265, ptr noundef nonnull @.str.6) #12
  %10267 = load i32, ptr %3104, align 4, !tbaa !5
  %10268 = call ptr @strerror(i32 noundef %10267) #12
  %10269 = load i32, ptr %3104, align 4, !tbaa !5
  %10270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10261, ptr noundef nonnull %.str.7.sink5195, i32 noundef %10262, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 929, ptr noundef %10264, ptr noundef %10266, ptr noundef %10268, i32 noundef %10269) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10271:                                            ; preds = %10244
  %10272 = add nsw i32 %10245, 2
  store i32 %10272, ptr @test_count, align 4, !tbaa !5
  %10273 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %68, i32 noundef 2) #12
  %10274 = icmp eq i32 %10273, -1
  br i1 %10274, label %10275, label %10297

10275:                                            ; preds = %10271
  %10276 = load i32, ptr %3104, align 4, !tbaa !5
  %10277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10278 = call i32 @s2n_print_stacktrace(ptr noundef %10277) #12
  %10279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10280 = trunc nuw i8 %10279 to i1
  br i1 %10280, label %10281, label %10285

10281:                                            ; preds = %10275
  %10282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10283 = call i32 @fileno(ptr noundef %10282) #12
  %10284 = call i32 @isatty(i32 noundef %10283) #12
  %.not1440 = icmp eq i32 %10284, 0
  br i1 %.not1440, label %10285, label %10286

10285:                                            ; preds = %10281, %10275
  br label %10286

10286:                                            ; preds = %10281, %10285
  %.str.7.sink5204 = phi ptr [ @.str.7, %10285 ], [ @.str.4, %10281 ]
  store i32 %10276, ptr %3104, align 4, !tbaa !5
  %10287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10288 = load i32, ptr @test_count, align 4, !tbaa !5
  %10289 = load i32, ptr %3050, align 4, !tbaa !5
  %10290 = call ptr @s2n_strerror(i32 noundef %10289, ptr noundef nonnull @.str.6) #12
  %10291 = load i32, ptr %3050, align 4, !tbaa !5
  %10292 = call ptr @s2n_strerror_debug(i32 noundef %10291, ptr noundef nonnull @.str.6) #12
  %10293 = load i32, ptr %3104, align 4, !tbaa !5
  %10294 = call ptr @strerror(i32 noundef %10293) #12
  %10295 = load i32, ptr %3104, align 4, !tbaa !5
  %10296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10287, ptr noundef nonnull %.str.7.sink5204, i32 noundef %10288, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.3, i32 noundef 932, ptr noundef %10290, ptr noundef %10292, ptr noundef %10294, i32 noundef %10295) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10297:                                            ; preds = %10271
  %10298 = load i32, ptr @test_count, align 4, !tbaa !5
  %10299 = add nsw i32 %10298, 1
  store i32 %10299, ptr @test_count, align 4, !tbaa !5
  %10300 = load ptr, ptr %69, align 8, !tbaa !9
  %10301 = getelementptr inbounds i8, ptr %10300, i64 8
  %10302 = load ptr, ptr %10301, align 8, !tbaa !24
  %10303 = load ptr, ptr %10302, align 8, !tbaa !9
  %10304 = call i32 @s2n_write_named_curve(ptr noundef nonnull %68, ptr noundef %10303)
  %10305 = icmp eq i32 %10304, -1
  br i1 %10305, label %10306, label %10328

10306:                                            ; preds = %10297
  %10307 = load i32, ptr %3104, align 4, !tbaa !5
  %10308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10309 = call i32 @s2n_print_stacktrace(ptr noundef %10308) #12
  %10310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10311 = trunc nuw i8 %10310 to i1
  br i1 %10311, label %10312, label %10316

10312:                                            ; preds = %10306
  %10313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10314 = call i32 @fileno(ptr noundef %10313) #12
  %10315 = call i32 @isatty(i32 noundef %10314) #12
  %.not1439 = icmp eq i32 %10315, 0
  br i1 %.not1439, label %10316, label %10317

10316:                                            ; preds = %10312, %10306
  br label %10317

10317:                                            ; preds = %10312, %10316
  %.str.7.sink5213 = phi ptr [ @.str.7, %10316 ], [ @.str.4, %10312 ]
  store i32 %10307, ptr %3104, align 4, !tbaa !5
  %10318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10319 = load i32, ptr @test_count, align 4, !tbaa !5
  %10320 = load i32, ptr %3050, align 4, !tbaa !5
  %10321 = call ptr @s2n_strerror(i32 noundef %10320, ptr noundef nonnull @.str.6) #12
  %10322 = load i32, ptr %3050, align 4, !tbaa !5
  %10323 = call ptr @s2n_strerror_debug(i32 noundef %10322, ptr noundef nonnull @.str.6) #12
  %10324 = load i32, ptr %3104, align 4, !tbaa !5
  %10325 = call ptr @strerror(i32 noundef %10324) #12
  %10326 = load i32, ptr %3104, align 4, !tbaa !5
  %10327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10318, ptr noundef nonnull %.str.7.sink5213, i32 noundef %10319, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.3, i32 noundef 933, ptr noundef %10321, ptr noundef %10323, ptr noundef %10325, i32 noundef %10326) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10328:                                            ; preds = %10297
  %10329 = load i32, ptr @test_count, align 4, !tbaa !5
  %10330 = add nsw i32 %10329, 1
  store i32 %10330, ptr @test_count, align 4, !tbaa !5
  %10331 = call i32 @s2n_test_rewrite_length(ptr noundef nonnull %68)
  %10332 = icmp eq i32 %10331, -1
  br i1 %10332, label %10333, label %10355

10333:                                            ; preds = %10328
  %10334 = load i32, ptr %3104, align 4, !tbaa !5
  %10335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10336 = call i32 @s2n_print_stacktrace(ptr noundef %10335) #12
  %10337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10338 = trunc nuw i8 %10337 to i1
  br i1 %10338, label %10339, label %10343

10339:                                            ; preds = %10333
  %10340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10341 = call i32 @fileno(ptr noundef %10340) #12
  %10342 = call i32 @isatty(i32 noundef %10341) #12
  %.not1438 = icmp eq i32 %10342, 0
  br i1 %.not1438, label %10343, label %10344

10343:                                            ; preds = %10339, %10333
  br label %10344

10344:                                            ; preds = %10339, %10343
  %.str.7.sink5222 = phi ptr [ @.str.7, %10343 ], [ @.str.4, %10339 ]
  store i32 %10334, ptr %3104, align 4, !tbaa !5
  %10345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10346 = load i32, ptr @test_count, align 4, !tbaa !5
  %10347 = load i32, ptr %3050, align 4, !tbaa !5
  %10348 = call ptr @s2n_strerror(i32 noundef %10347, ptr noundef nonnull @.str.6) #12
  %10349 = load i32, ptr %3050, align 4, !tbaa !5
  %10350 = call ptr @s2n_strerror_debug(i32 noundef %10349, ptr noundef nonnull @.str.6) #12
  %10351 = load i32, ptr %3104, align 4, !tbaa !5
  %10352 = call ptr @strerror(i32 noundef %10351) #12
  %10353 = load i32, ptr %3104, align 4, !tbaa !5
  %10354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10345, ptr noundef nonnull %.str.7.sink5222, i32 noundef %10346, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.3, i32 noundef 934, ptr noundef %10348, ptr noundef %10350, ptr noundef %10352, i32 noundef %10353) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10355:                                            ; preds = %10328
  %10356 = getelementptr inbounds i8, ptr %68, i64 28
  %10357 = load i32, ptr %10356, align 4, !tbaa !18
  %10358 = getelementptr inbounds i8, ptr %68, i64 24
  %10359 = load i32, ptr %10358, align 8, !tbaa !21
  %10360 = sub i32 %10357, %10359
  %10361 = load i32, ptr @test_count, align 4, !tbaa !5
  %10362 = add nsw i32 %10361, 1
  store i32 %10362, ptr @test_count, align 4, !tbaa !5
  %10363 = sdiv i32 %10360, 2
  %10364 = call i32 @s2n_stuffer_wipe_n(ptr noundef nonnull %68, i32 noundef %10363) #12
  %10365 = icmp eq i32 %10364, -1
  br i1 %10365, label %10366, label %10388

10366:                                            ; preds = %10355
  %10367 = load i32, ptr %3104, align 4, !tbaa !5
  %10368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10369 = call i32 @s2n_print_stacktrace(ptr noundef %10368) #12
  %10370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10371 = trunc nuw i8 %10370 to i1
  br i1 %10371, label %10372, label %10376

10372:                                            ; preds = %10366
  %10373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10374 = call i32 @fileno(ptr noundef %10373) #12
  %10375 = call i32 @isatty(i32 noundef %10374) #12
  %.not1437 = icmp eq i32 %10375, 0
  br i1 %.not1437, label %10376, label %10377

10376:                                            ; preds = %10372, %10366
  br label %10377

10377:                                            ; preds = %10372, %10376
  %.str.7.sink5231 = phi ptr [ @.str.7, %10376 ], [ @.str.4, %10372 ]
  store i32 %10367, ptr %3104, align 4, !tbaa !5
  %10378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10379 = load i32, ptr @test_count, align 4, !tbaa !5
  %10380 = load i32, ptr %3050, align 4, !tbaa !5
  %10381 = call ptr @s2n_strerror(i32 noundef %10380, ptr noundef nonnull @.str.6) #12
  %10382 = load i32, ptr %3050, align 4, !tbaa !5
  %10383 = call ptr @s2n_strerror_debug(i32 noundef %10382, ptr noundef nonnull @.str.6) #12
  %10384 = load i32, ptr %3104, align 4, !tbaa !5
  %10385 = call ptr @strerror(i32 noundef %10384) #12
  %10386 = load i32, ptr %3104, align 4, !tbaa !5
  %10387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10378, ptr noundef nonnull %.str.7.sink5231, i32 noundef %10379, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.3, i32 noundef 938, ptr noundef %10381, ptr noundef %10383, ptr noundef %10385, i32 noundef %10386) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10388:                                            ; preds = %10355
  %10389 = load i32, ptr @test_count, align 4, !tbaa !5
  %10390 = add nsw i32 %10389, 1
  store i32 %10390, ptr @test_count, align 4, !tbaa !5
  %10391 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %68, i32 noundef %10363) #12
  %10392 = icmp eq i32 %10391, -1
  br i1 %10392, label %10393, label %10415

10393:                                            ; preds = %10388
  %10394 = load i32, ptr %3104, align 4, !tbaa !5
  %10395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10396 = call i32 @s2n_print_stacktrace(ptr noundef %10395) #12
  %10397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10398 = trunc nuw i8 %10397 to i1
  br i1 %10398, label %10399, label %10403

10399:                                            ; preds = %10393
  %10400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10401 = call i32 @fileno(ptr noundef %10400) #12
  %10402 = call i32 @isatty(i32 noundef %10401) #12
  %.not1436 = icmp eq i32 %10402, 0
  br i1 %.not1436, label %10403, label %10404

10403:                                            ; preds = %10399, %10393
  br label %10404

10404:                                            ; preds = %10399, %10403
  %.str.7.sink5240 = phi ptr [ @.str.7, %10403 ], [ @.str.4, %10399 ]
  store i32 %10394, ptr %3104, align 4, !tbaa !5
  %10405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10406 = load i32, ptr @test_count, align 4, !tbaa !5
  %10407 = load i32, ptr %3050, align 4, !tbaa !5
  %10408 = call ptr @s2n_strerror(i32 noundef %10407, ptr noundef nonnull @.str.6) #12
  %10409 = load i32, ptr %3050, align 4, !tbaa !5
  %10410 = call ptr @s2n_strerror_debug(i32 noundef %10409, ptr noundef nonnull @.str.6) #12
  %10411 = load i32, ptr %3104, align 4, !tbaa !5
  %10412 = call ptr @strerror(i32 noundef %10411) #12
  %10413 = load i32, ptr %3104, align 4, !tbaa !5
  %10414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10405, ptr noundef nonnull %.str.7.sink5240, i32 noundef %10406, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.3, i32 noundef 939, ptr noundef %10408, ptr noundef %10410, ptr noundef %10412, i32 noundef %10413) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10415:                                            ; preds = %10388
  %10416 = load i32, ptr @test_count, align 4, !tbaa !5
  %10417 = add nsw i32 %10416, 1
  store i32 %10417, ptr @test_count, align 4, !tbaa !5
  %10418 = call i32 %2660(ptr noundef nonnull %10085, ptr noundef nonnull %68) #12
  %10419 = icmp eq i32 %10418, -1
  br i1 %10419, label %10420, label %10442

10420:                                            ; preds = %10415
  %10421 = load i32, ptr %3104, align 4, !tbaa !5
  %10422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10423 = call i32 @s2n_print_stacktrace(ptr noundef %10422) #12
  %10424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10425 = trunc nuw i8 %10424 to i1
  br i1 %10425, label %10426, label %10430

10426:                                            ; preds = %10420
  %10427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10428 = call i32 @fileno(ptr noundef %10427) #12
  %10429 = call i32 @isatty(i32 noundef %10428) #12
  %.not1435 = icmp eq i32 %10429, 0
  br i1 %.not1435, label %10430, label %10431

10430:                                            ; preds = %10426, %10420
  br label %10431

10431:                                            ; preds = %10426, %10430
  %.str.7.sink5249 = phi ptr [ @.str.7, %10430 ], [ @.str.4, %10426 ]
  store i32 %10421, ptr %3104, align 4, !tbaa !5
  %10432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10433 = load i32, ptr @test_count, align 4, !tbaa !5
  %10434 = load i32, ptr %3050, align 4, !tbaa !5
  %10435 = call ptr @s2n_strerror(i32 noundef %10434, ptr noundef nonnull @.str.6) #12
  %10436 = load i32, ptr %3050, align 4, !tbaa !5
  %10437 = call ptr @s2n_strerror_debug(i32 noundef %10436, ptr noundef nonnull @.str.6) #12
  %10438 = load i32, ptr %3104, align 4, !tbaa !5
  %10439 = call ptr @strerror(i32 noundef %10438) #12
  %10440 = load i32, ptr %3104, align 4, !tbaa !5
  %10441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10432, ptr noundef nonnull %.str.7.sink5249, i32 noundef %10433, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.3, i32 noundef 941, ptr noundef %10435, ptr noundef %10437, ptr noundef %10439, i32 noundef %10440) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10442:                                            ; preds = %10415
  %10443 = load i32, ptr @test_count, align 4, !tbaa !5
  %10444 = add nsw i32 %10443, 1
  store i32 %10444, ptr @test_count, align 4, !tbaa !5
  %10445 = load i32, ptr %10356, align 4, !tbaa !18
  %10446 = load i32, ptr %10358, align 8, !tbaa !21
  %10447 = icmp eq i32 %10445, %10446
  br i1 %10447, label %10470, label %10448

10448:                                            ; preds = %10442
  %10449 = load i32, ptr %3104, align 4, !tbaa !5
  %10450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10451 = call i32 @s2n_print_stacktrace(ptr noundef %10450) #12
  %10452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10453 = trunc nuw i8 %10452 to i1
  br i1 %10453, label %10454, label %10458

10454:                                            ; preds = %10448
  %10455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10456 = call i32 @fileno(ptr noundef %10455) #12
  %10457 = call i32 @isatty(i32 noundef %10456) #12
  %.not1356 = icmp eq i32 %10457, 0
  br i1 %.not1356, label %10458, label %10459

10458:                                            ; preds = %10454, %10448
  br label %10459

10459:                                            ; preds = %10454, %10458
  %.str.7.sink5258 = phi ptr [ @.str.7, %10458 ], [ @.str.4, %10454 ]
  store i32 %10449, ptr %3104, align 4, !tbaa !5
  %10460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10461 = load i32, ptr @test_count, align 4, !tbaa !5
  %10462 = load i32, ptr %3050, align 4, !tbaa !5
  %10463 = call ptr @s2n_strerror(i32 noundef %10462, ptr noundef nonnull @.str.6) #12
  %10464 = load i32, ptr %3050, align 4, !tbaa !5
  %10465 = call ptr @s2n_strerror_debug(i32 noundef %10464, ptr noundef nonnull @.str.6) #12
  %10466 = load i32, ptr %3104, align 4, !tbaa !5
  %10467 = call ptr @strerror(i32 noundef %10466) #12
  %10468 = load i32, ptr %3104, align 4, !tbaa !5
  %10469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10460, ptr noundef nonnull %.str.7.sink5258, i32 noundef %10461, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 944, ptr noundef %10463, ptr noundef %10465, ptr noundef %10467, i32 noundef %10468) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10470:                                            ; preds = %10442
  %10471 = getelementptr inbounds i8, ptr %10085, i64 704
  %10472 = add nsw i32 %10443, 2
  store i32 %10472, ptr @test_count, align 4, !tbaa !5
  %10473 = load ptr, ptr %10471, align 8, !tbaa !22
  %10474 = icmp eq ptr %10473, null
  br i1 %10474, label %10497, label %10475

10475:                                            ; preds = %10470
  %10476 = load i32, ptr %3104, align 4, !tbaa !5
  %10477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10478 = call i32 @s2n_print_stacktrace(ptr noundef %10477) #12
  %10479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10480 = trunc nuw i8 %10479 to i1
  br i1 %10480, label %10481, label %10485

10481:                                            ; preds = %10475
  %10482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10483 = call i32 @fileno(ptr noundef %10482) #12
  %10484 = call i32 @isatty(i32 noundef %10483) #12
  %.not1357 = icmp eq i32 %10484, 0
  br i1 %.not1357, label %10485, label %10486

10485:                                            ; preds = %10481, %10475
  br label %10486

10486:                                            ; preds = %10481, %10485
  %.str.7.sink5267 = phi ptr [ @.str.7, %10485 ], [ @.str.4, %10481 ]
  store i32 %10476, ptr %3104, align 4, !tbaa !5
  %10487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10488 = load i32, ptr @test_count, align 4, !tbaa !5
  %10489 = load i32, ptr %3050, align 4, !tbaa !5
  %10490 = call ptr @s2n_strerror(i32 noundef %10489, ptr noundef nonnull @.str.6) #12
  %10491 = load i32, ptr %3050, align 4, !tbaa !5
  %10492 = call ptr @s2n_strerror_debug(i32 noundef %10491, ptr noundef nonnull @.str.6) #12
  %10493 = load i32, ptr %3104, align 4, !tbaa !5
  %10494 = call ptr @strerror(i32 noundef %10493) #12
  %10495 = load i32, ptr %3104, align 4, !tbaa !5
  %10496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10487, ptr noundef nonnull %.str.7.sink5267, i32 noundef %10488, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.3, i32 noundef 948, ptr noundef %10490, ptr noundef %10492, ptr noundef %10494, i32 noundef %10495) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10497:                                            ; preds = %10470
  %10498 = add nsw i32 %10443, 3
  store i32 %10498, ptr @test_count, align 4, !tbaa !5
  %10499 = getelementptr inbounds i8, ptr %10085, i64 712
  %10500 = load ptr, ptr %10499, align 8, !tbaa !26
  %10501 = icmp eq ptr %10500, null
  br i1 %10501, label %10524, label %10502

10502:                                            ; preds = %10497
  %10503 = load i32, ptr %3104, align 4, !tbaa !5
  %10504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10505 = call i32 @s2n_print_stacktrace(ptr noundef %10504) #12
  %10506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10507 = trunc nuw i8 %10506 to i1
  br i1 %10507, label %10508, label %10512

10508:                                            ; preds = %10502
  %10509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10510 = call i32 @fileno(ptr noundef %10509) #12
  %10511 = call i32 @isatty(i32 noundef %10510) #12
  %.not1358 = icmp eq i32 %10511, 0
  br i1 %.not1358, label %10512, label %10513

10512:                                            ; preds = %10508, %10502
  br label %10513

10513:                                            ; preds = %10508, %10512
  %.str.7.sink5276 = phi ptr [ @.str.7, %10512 ], [ @.str.4, %10508 ]
  store i32 %10503, ptr %3104, align 4, !tbaa !5
  %10514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10515 = load i32, ptr @test_count, align 4, !tbaa !5
  %10516 = load i32, ptr %3050, align 4, !tbaa !5
  %10517 = call ptr @s2n_strerror(i32 noundef %10516, ptr noundef nonnull @.str.6) #12
  %10518 = load i32, ptr %3050, align 4, !tbaa !5
  %10519 = call ptr @s2n_strerror_debug(i32 noundef %10518, ptr noundef nonnull @.str.6) #12
  %10520 = load i32, ptr %3104, align 4, !tbaa !5
  %10521 = call ptr @strerror(i32 noundef %10520) #12
  %10522 = load i32, ptr %3104, align 4, !tbaa !5
  %10523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10514, ptr noundef nonnull %.str.7.sink5276, i32 noundef %10515, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.3, i32 noundef 949, ptr noundef %10517, ptr noundef %10519, ptr noundef %10521, i32 noundef %10522) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10524:                                            ; preds = %10497
  %10525 = add nsw i32 %10443, 4
  store i32 %10525, ptr @test_count, align 4, !tbaa !5
  %10526 = call i32 @s2n_stuffer_free(ptr noundef nonnull %68) #12
  %10527 = icmp eq i32 %10526, -1
  br i1 %10527, label %10528, label %10550

10528:                                            ; preds = %10524
  %10529 = load i32, ptr %3104, align 4, !tbaa !5
  %10530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10531 = call i32 @s2n_print_stacktrace(ptr noundef %10530) #12
  %10532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10533 = trunc nuw i8 %10532 to i1
  br i1 %10533, label %10534, label %10538

10534:                                            ; preds = %10528
  %10535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10536 = call i32 @fileno(ptr noundef %10535) #12
  %10537 = call i32 @isatty(i32 noundef %10536) #12
  %.not1434 = icmp eq i32 %10537, 0
  br i1 %.not1434, label %10538, label %10539

10538:                                            ; preds = %10534, %10528
  br label %10539

10539:                                            ; preds = %10534, %10538
  %.str.7.sink5285 = phi ptr [ @.str.7, %10538 ], [ @.str.4, %10534 ]
  store i32 %10529, ptr %3104, align 4, !tbaa !5
  %10540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10541 = load i32, ptr @test_count, align 4, !tbaa !5
  %10542 = load i32, ptr %3050, align 4, !tbaa !5
  %10543 = call ptr @s2n_strerror(i32 noundef %10542, ptr noundef nonnull @.str.6) #12
  %10544 = load i32, ptr %3050, align 4, !tbaa !5
  %10545 = call ptr @s2n_strerror_debug(i32 noundef %10544, ptr noundef nonnull @.str.6) #12
  %10546 = load i32, ptr %3104, align 4, !tbaa !5
  %10547 = call ptr @strerror(i32 noundef %10546) #12
  %10548 = load i32, ptr %3104, align 4, !tbaa !5
  %10549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10540, ptr noundef nonnull %.str.7.sink5285, i32 noundef %10541, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 951, ptr noundef %10543, ptr noundef %10545, ptr noundef %10547, i32 noundef %10548) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10550:                                            ; preds = %10524
  %10551 = load i32, ptr @test_count, align 4, !tbaa !5
  %10552 = add nsw i32 %10551, 1
  store i32 %10552, ptr @test_count, align 4, !tbaa !5
  %10553 = call i32 @s2n_connection_free(ptr noundef nonnull %10085) #12
  %10554 = icmp eq i32 %10553, -1
  br i1 %10554, label %10555, label %10577

10555:                                            ; preds = %10550
  %10556 = load i32, ptr %3104, align 4, !tbaa !5
  %10557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10558 = call i32 @s2n_print_stacktrace(ptr noundef %10557) #12
  %10559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10560 = trunc nuw i8 %10559 to i1
  br i1 %10560, label %10561, label %10565

10561:                                            ; preds = %10555
  %10562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10563 = call i32 @fileno(ptr noundef %10562) #12
  %10564 = call i32 @isatty(i32 noundef %10563) #12
  %.not1433 = icmp eq i32 %10564, 0
  br i1 %.not1433, label %10565, label %10566

10565:                                            ; preds = %10561, %10555
  br label %10566

10566:                                            ; preds = %10561, %10565
  %.str.7.sink5294 = phi ptr [ @.str.7, %10565 ], [ @.str.4, %10561 ]
  store i32 %10556, ptr %3104, align 4, !tbaa !5
  %10567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10568 = load i32, ptr @test_count, align 4, !tbaa !5
  %10569 = load i32, ptr %3050, align 4, !tbaa !5
  %10570 = call ptr @s2n_strerror(i32 noundef %10569, ptr noundef nonnull @.str.6) #12
  %10571 = load i32, ptr %3050, align 4, !tbaa !5
  %10572 = call ptr @s2n_strerror_debug(i32 noundef %10571, ptr noundef nonnull @.str.6) #12
  %10573 = load i32, ptr %3104, align 4, !tbaa !5
  %10574 = call ptr @strerror(i32 noundef %10573) #12
  %10575 = load i32, ptr %3104, align 4, !tbaa !5
  %10576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10567, ptr noundef nonnull %.str.7.sink5294, i32 noundef %10568, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 952, ptr noundef %10570, ptr noundef %10572, ptr noundef %10574, i32 noundef %10575) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10577:                                            ; preds = %10550
  %10578 = load i32, ptr @test_count, align 4, !tbaa !5
  %10579 = add nsw i32 %10578, 1
  store i32 %10579, ptr @test_count, align 4, !tbaa !5
  %10580 = call i32 @s2n_config_free(ptr noundef nonnull %10031) #12
  %10581 = icmp eq i32 %10580, -1
  br i1 %10581, label %10582, label %10604

10582:                                            ; preds = %10577
  %10583 = load i32, ptr %3104, align 4, !tbaa !5
  %10584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10585 = call i32 @s2n_print_stacktrace(ptr noundef %10584) #12
  %10586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10587 = trunc nuw i8 %10586 to i1
  br i1 %10587, label %10588, label %10592

10588:                                            ; preds = %10582
  %10589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10590 = call i32 @fileno(ptr noundef %10589) #12
  %10591 = call i32 @isatty(i32 noundef %10590) #12
  %.not1432 = icmp eq i32 %10591, 0
  br i1 %.not1432, label %10592, label %10593

10592:                                            ; preds = %10588, %10582
  br label %10593

10593:                                            ; preds = %10588, %10592
  %.str.7.sink5303 = phi ptr [ @.str.7, %10592 ], [ @.str.4, %10588 ]
  store i32 %10583, ptr %3104, align 4, !tbaa !5
  %10594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10595 = load i32, ptr @test_count, align 4, !tbaa !5
  %10596 = load i32, ptr %3050, align 4, !tbaa !5
  %10597 = call ptr @s2n_strerror(i32 noundef %10596, ptr noundef nonnull @.str.6) #12
  %10598 = load i32, ptr %3050, align 4, !tbaa !5
  %10599 = call ptr @s2n_strerror_debug(i32 noundef %10598, ptr noundef nonnull @.str.6) #12
  %10600 = load i32, ptr %3104, align 4, !tbaa !5
  %10601 = call ptr @strerror(i32 noundef %10600) #12
  %10602 = load i32, ptr %3104, align 4, !tbaa !5
  %10603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10594, ptr noundef nonnull %.str.7.sink5303, i32 noundef %10595, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.3, i32 noundef 953, ptr noundef %10597, ptr noundef %10599, ptr noundef %10601, i32 noundef %10602) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10604:                                            ; preds = %10577
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %68) #12
  %10605 = load i32, ptr @test_count, align 4, !tbaa !5
  %10606 = add nsw i32 %10605, 1
  store i32 %10606, ptr @test_count, align 4, !tbaa !5
  %10607 = call ptr @s2n_config_new() #12
  %10608 = icmp eq ptr %10607, null
  br i1 %10608, label %10609, label %10631

10609:                                            ; preds = %10604
  %10610 = load i32, ptr %3104, align 4, !tbaa !5
  %10611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10612 = call i32 @s2n_print_stacktrace(ptr noundef %10611) #12
  %10613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10614 = trunc nuw i8 %10613 to i1
  br i1 %10614, label %10615, label %10619

10615:                                            ; preds = %10609
  %10616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10617 = call i32 @fileno(ptr noundef %10616) #12
  %10618 = call i32 @isatty(i32 noundef %10617) #12
  %.not1431 = icmp eq i32 %10618, 0
  br i1 %.not1431, label %10619, label %10620

10619:                                            ; preds = %10615, %10609
  br label %10620

10620:                                            ; preds = %10615, %10619
  %.str.7.sink5312 = phi ptr [ @.str.7, %10619 ], [ @.str.4, %10615 ]
  store i32 %10610, ptr %3104, align 4, !tbaa !5
  %10621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10622 = load i32, ptr @test_count, align 4, !tbaa !5
  %10623 = load i32, ptr %3050, align 4, !tbaa !5
  %10624 = call ptr @s2n_strerror(i32 noundef %10623, ptr noundef nonnull @.str.6) #12
  %10625 = load i32, ptr %3050, align 4, !tbaa !5
  %10626 = call ptr @s2n_strerror_debug(i32 noundef %10625, ptr noundef nonnull @.str.6) #12
  %10627 = load i32, ptr %3104, align 4, !tbaa !5
  %10628 = call ptr @strerror(i32 noundef %10627) #12
  %10629 = load i32, ptr %3104, align 4, !tbaa !5
  %10630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10621, ptr noundef nonnull %.str.7.sink5312, i32 noundef %10622, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.3, i32 noundef 960, ptr noundef %10624, ptr noundef %10626, ptr noundef %10628, i32 noundef %10629) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10631:                                            ; preds = %10604
  %10632 = load i32, ptr @test_count, align 4, !tbaa !5
  %10633 = add nsw i32 %10632, 1
  store i32 %10633, ptr @test_count, align 4, !tbaa !5
  %10634 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %10607, ptr noundef nonnull @.str.34) #12
  %10635 = icmp eq i32 %10634, -1
  br i1 %10635, label %10636, label %10658

10636:                                            ; preds = %10631
  %10637 = load i32, ptr %3104, align 4, !tbaa !5
  %10638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10639 = call i32 @s2n_print_stacktrace(ptr noundef %10638) #12
  %10640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10641 = trunc nuw i8 %10640 to i1
  br i1 %10641, label %10642, label %10646

10642:                                            ; preds = %10636
  %10643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10644 = call i32 @fileno(ptr noundef %10643) #12
  %10645 = call i32 @isatty(i32 noundef %10644) #12
  %.not1430 = icmp eq i32 %10645, 0
  br i1 %.not1430, label %10646, label %10647

10646:                                            ; preds = %10642, %10636
  br label %10647

10647:                                            ; preds = %10642, %10646
  %.str.7.sink5321 = phi ptr [ @.str.7, %10646 ], [ @.str.4, %10642 ]
  store i32 %10637, ptr %3104, align 4, !tbaa !5
  %10648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10649 = load i32, ptr @test_count, align 4, !tbaa !5
  %10650 = load i32, ptr %3050, align 4, !tbaa !5
  %10651 = call ptr @s2n_strerror(i32 noundef %10650, ptr noundef nonnull @.str.6) #12
  %10652 = load i32, ptr %3050, align 4, !tbaa !5
  %10653 = call ptr @s2n_strerror_debug(i32 noundef %10652, ptr noundef nonnull @.str.6) #12
  %10654 = load i32, ptr %3104, align 4, !tbaa !5
  %10655 = call ptr @strerror(i32 noundef %10654) #12
  %10656 = load i32, ptr %3104, align 4, !tbaa !5
  %10657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10648, ptr noundef nonnull %.str.7.sink5321, i32 noundef %10649, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.3, i32 noundef 962, ptr noundef %10651, ptr noundef %10653, ptr noundef %10655, i32 noundef %10656) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10658:                                            ; preds = %10631
  %10659 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %10660 = load i32, ptr @test_count, align 4, !tbaa !5
  %10661 = add nsw i32 %10660, 1
  store i32 %10661, ptr @test_count, align 4, !tbaa !5
  %10662 = icmp eq ptr %10659, null
  br i1 %10662, label %10663, label %10685

10663:                                            ; preds = %10658
  %10664 = load i32, ptr %3104, align 4, !tbaa !5
  %10665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10666 = call i32 @s2n_print_stacktrace(ptr noundef %10665) #12
  %10667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10668 = trunc nuw i8 %10667 to i1
  br i1 %10668, label %10669, label %10673

10669:                                            ; preds = %10663
  %10670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10671 = call i32 @fileno(ptr noundef %10670) #12
  %10672 = call i32 @isatty(i32 noundef %10671) #12
  %.not1429 = icmp eq i32 %10672, 0
  br i1 %.not1429, label %10673, label %10674

10673:                                            ; preds = %10669, %10663
  br label %10674

10674:                                            ; preds = %10669, %10673
  %.str.7.sink5330 = phi ptr [ @.str.7, %10673 ], [ @.str.4, %10669 ]
  store i32 %10664, ptr %3104, align 4, !tbaa !5
  %10675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10676 = load i32, ptr @test_count, align 4, !tbaa !5
  %10677 = load i32, ptr %3050, align 4, !tbaa !5
  %10678 = call ptr @s2n_strerror(i32 noundef %10677, ptr noundef nonnull @.str.6) #12
  %10679 = load i32, ptr %3050, align 4, !tbaa !5
  %10680 = call ptr @s2n_strerror_debug(i32 noundef %10679, ptr noundef nonnull @.str.6) #12
  %10681 = load i32, ptr %3104, align 4, !tbaa !5
  %10682 = call ptr @strerror(i32 noundef %10681) #12
  %10683 = load i32, ptr %3104, align 4, !tbaa !5
  %10684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10675, ptr noundef nonnull %.str.7.sink5330, i32 noundef %10676, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.3, i32 noundef 965, ptr noundef %10678, ptr noundef %10680, ptr noundef %10682, i32 noundef %10683) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10685:                                            ; preds = %10658
  %10686 = add nsw i32 %10660, 2
  store i32 %10686, ptr @test_count, align 4, !tbaa !5
  %10687 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %10659, i8 noundef zeroext 34) #12
  %10688 = icmp eq i32 %10687, -1
  br i1 %10688, label %10689, label %10711

10689:                                            ; preds = %10685
  %10690 = load i32, ptr %3104, align 4, !tbaa !5
  %10691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10692 = call i32 @s2n_print_stacktrace(ptr noundef %10691) #12
  %10693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10694 = trunc nuw i8 %10693 to i1
  br i1 %10694, label %10695, label %10699

10695:                                            ; preds = %10689
  %10696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10697 = call i32 @fileno(ptr noundef %10696) #12
  %10698 = call i32 @isatty(i32 noundef %10697) #12
  %.not1428 = icmp eq i32 %10698, 0
  br i1 %.not1428, label %10699, label %10700

10699:                                            ; preds = %10695, %10689
  br label %10700

10700:                                            ; preds = %10695, %10699
  %.str.7.sink5339 = phi ptr [ @.str.7, %10699 ], [ @.str.4, %10695 ]
  store i32 %10690, ptr %3104, align 4, !tbaa !5
  %10701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10702 = load i32, ptr @test_count, align 4, !tbaa !5
  %10703 = load i32, ptr %3050, align 4, !tbaa !5
  %10704 = call ptr @s2n_strerror(i32 noundef %10703, ptr noundef nonnull @.str.6) #12
  %10705 = load i32, ptr %3050, align 4, !tbaa !5
  %10706 = call ptr @s2n_strerror_debug(i32 noundef %10705, ptr noundef nonnull @.str.6) #12
  %10707 = load i32, ptr %3104, align 4, !tbaa !5
  %10708 = call ptr @strerror(i32 noundef %10707) #12
  %10709 = load i32, ptr %3104, align 4, !tbaa !5
  %10710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10701, ptr noundef nonnull %.str.7.sink5339, i32 noundef %10702, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.3, i32 noundef 966, ptr noundef %10704, ptr noundef %10706, ptr noundef %10708, i32 noundef %10709) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10711:                                            ; preds = %10685
  %10712 = load i32, ptr @test_count, align 4, !tbaa !5
  %10713 = add nsw i32 %10712, 1
  store i32 %10713, ptr @test_count, align 4, !tbaa !5
  %10714 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %10659) #12
  %10715 = call zeroext i1 @s2n_result_is_ok(i32 %10714)
  br i1 %10715, label %10738, label %10716

10716:                                            ; preds = %10711
  %10717 = load i32, ptr %3104, align 4, !tbaa !5
  %10718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10719 = call i32 @s2n_print_stacktrace(ptr noundef %10718) #12
  %10720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10721 = trunc nuw i8 %10720 to i1
  br i1 %10721, label %10722, label %10726

10722:                                            ; preds = %10716
  %10723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10724 = call i32 @fileno(ptr noundef %10723) #12
  %10725 = call i32 @isatty(i32 noundef %10724) #12
  %.not1359 = icmp eq i32 %10725, 0
  br i1 %.not1359, label %10726, label %10727

10726:                                            ; preds = %10722, %10716
  br label %10727

10727:                                            ; preds = %10722, %10726
  %.str.7.sink5348 = phi ptr [ @.str.7, %10726 ], [ @.str.4, %10722 ]
  store i32 %10717, ptr %3104, align 4, !tbaa !5
  %10728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10729 = load i32, ptr @test_count, align 4, !tbaa !5
  %10730 = load i32, ptr %3050, align 4, !tbaa !5
  %10731 = call ptr @s2n_strerror(i32 noundef %10730, ptr noundef nonnull @.str.6) #12
  %10732 = load i32, ptr %3050, align 4, !tbaa !5
  %10733 = call ptr @s2n_strerror_debug(i32 noundef %10732, ptr noundef nonnull @.str.6) #12
  %10734 = load i32, ptr %3104, align 4, !tbaa !5
  %10735 = call ptr @strerror(i32 noundef %10734) #12
  %10736 = load i32, ptr %3104, align 4, !tbaa !5
  %10737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10728, ptr noundef nonnull %.str.7.sink5348, i32 noundef %10729, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 967, ptr noundef %10731, ptr noundef %10733, ptr noundef %10735, i32 noundef %10736) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10738:                                            ; preds = %10711
  %10739 = load i32, ptr @test_count, align 4, !tbaa !5
  %10740 = add nsw i32 %10739, 1
  store i32 %10740, ptr @test_count, align 4, !tbaa !5
  %10741 = call i32 @s2n_connection_set_config(ptr noundef nonnull %10659, ptr noundef nonnull %10607) #12
  %10742 = icmp eq i32 %10741, -1
  br i1 %10742, label %10743, label %10765

10743:                                            ; preds = %10738
  %10744 = load i32, ptr %3104, align 4, !tbaa !5
  %10745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10746 = call i32 @s2n_print_stacktrace(ptr noundef %10745) #12
  %10747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10748 = trunc nuw i8 %10747 to i1
  br i1 %10748, label %10749, label %10753

10749:                                            ; preds = %10743
  %10750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10751 = call i32 @fileno(ptr noundef %10750) #12
  %10752 = call i32 @isatty(i32 noundef %10751) #12
  %.not1427 = icmp eq i32 %10752, 0
  br i1 %.not1427, label %10753, label %10754

10753:                                            ; preds = %10749, %10743
  br label %10754

10754:                                            ; preds = %10749, %10753
  %.str.7.sink5357 = phi ptr [ @.str.7, %10753 ], [ @.str.4, %10749 ]
  store i32 %10744, ptr %3104, align 4, !tbaa !5
  %10755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10756 = load i32, ptr @test_count, align 4, !tbaa !5
  %10757 = load i32, ptr %3050, align 4, !tbaa !5
  %10758 = call ptr @s2n_strerror(i32 noundef %10757, ptr noundef nonnull @.str.6) #12
  %10759 = load i32, ptr %3050, align 4, !tbaa !5
  %10760 = call ptr @s2n_strerror_debug(i32 noundef %10759, ptr noundef nonnull @.str.6) #12
  %10761 = load i32, ptr %3104, align 4, !tbaa !5
  %10762 = call ptr @strerror(i32 noundef %10761) #12
  %10763 = load i32, ptr %3104, align 4, !tbaa !5
  %10764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10755, ptr noundef nonnull %.str.7.sink5357, i32 noundef %10756, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.3, i32 noundef 968, ptr noundef %10758, ptr noundef %10760, ptr noundef %10762, i32 noundef %10763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10765:                                            ; preds = %10738
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %70) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %70, i8 0, i64 40, i1 false)
  %10766 = load i32, ptr @test_count, align 4, !tbaa !5
  %10767 = add nsw i32 %10766, 1
  store i32 %10767, ptr @test_count, align 4, !tbaa !5
  %10768 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %70, i32 noundef 0) #12
  %10769 = icmp eq i32 %10768, -1
  br i1 %10769, label %10770, label %10792

10770:                                            ; preds = %10765
  %10771 = load i32, ptr %3104, align 4, !tbaa !5
  %10772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10773 = call i32 @s2n_print_stacktrace(ptr noundef %10772) #12
  %10774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10775 = trunc nuw i8 %10774 to i1
  br i1 %10775, label %10776, label %10780

10776:                                            ; preds = %10770
  %10777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10778 = call i32 @fileno(ptr noundef %10777) #12
  %10779 = call i32 @isatty(i32 noundef %10778) #12
  %.not1426 = icmp eq i32 %10779, 0
  br i1 %.not1426, label %10780, label %10781

10780:                                            ; preds = %10776, %10770
  br label %10781

10781:                                            ; preds = %10776, %10780
  %.str.7.sink5366 = phi ptr [ @.str.7, %10780 ], [ @.str.4, %10776 ]
  store i32 %10771, ptr %3104, align 4, !tbaa !5
  %10782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10783 = load i32, ptr @test_count, align 4, !tbaa !5
  %10784 = load i32, ptr %3050, align 4, !tbaa !5
  %10785 = call ptr @s2n_strerror(i32 noundef %10784, ptr noundef nonnull @.str.6) #12
  %10786 = load i32, ptr %3050, align 4, !tbaa !5
  %10787 = call ptr @s2n_strerror_debug(i32 noundef %10786, ptr noundef nonnull @.str.6) #12
  %10788 = load i32, ptr %3104, align 4, !tbaa !5
  %10789 = call ptr @strerror(i32 noundef %10788) #12
  %10790 = load i32, ptr %3104, align 4, !tbaa !5
  %10791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10782, ptr noundef nonnull %.str.7.sink5366, i32 noundef %10783, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 971, ptr noundef %10785, ptr noundef %10787, ptr noundef %10789, i32 noundef %10790) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10792:                                            ; preds = %10765
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #12
  store ptr null, ptr %71, align 8, !tbaa !9
  %10793 = load i32, ptr @test_count, align 4, !tbaa !5
  %10794 = add nsw i32 %10793, 1
  store i32 %10794, ptr @test_count, align 4, !tbaa !5
  %10795 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %10659, ptr noundef nonnull %71) #12
  %10796 = icmp eq i32 %10795, -1
  br i1 %10796, label %10797, label %10819

10797:                                            ; preds = %10792
  %10798 = load i32, ptr %3104, align 4, !tbaa !5
  %10799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10800 = call i32 @s2n_print_stacktrace(ptr noundef %10799) #12
  %10801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10802 = trunc nuw i8 %10801 to i1
  br i1 %10802, label %10803, label %10807

10803:                                            ; preds = %10797
  %10804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10805 = call i32 @fileno(ptr noundef %10804) #12
  %10806 = call i32 @isatty(i32 noundef %10805) #12
  %.not1425 = icmp eq i32 %10806, 0
  br i1 %.not1425, label %10807, label %10808

10807:                                            ; preds = %10803, %10797
  br label %10808

10808:                                            ; preds = %10803, %10807
  %.str.7.sink5375 = phi ptr [ @.str.7, %10807 ], [ @.str.4, %10803 ]
  store i32 %10798, ptr %3104, align 4, !tbaa !5
  %10809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10810 = load i32, ptr @test_count, align 4, !tbaa !5
  %10811 = load i32, ptr %3050, align 4, !tbaa !5
  %10812 = call ptr @s2n_strerror(i32 noundef %10811, ptr noundef nonnull @.str.6) #12
  %10813 = load i32, ptr %3050, align 4, !tbaa !5
  %10814 = call ptr @s2n_strerror_debug(i32 noundef %10813, ptr noundef nonnull @.str.6) #12
  %10815 = load i32, ptr %3104, align 4, !tbaa !5
  %10816 = call ptr @strerror(i32 noundef %10815) #12
  %10817 = load i32, ptr %3104, align 4, !tbaa !5
  %10818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10809, ptr noundef nonnull %.str.7.sink5375, i32 noundef %10810, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 974, ptr noundef %10812, ptr noundef %10814, ptr noundef %10816, i32 noundef %10817) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10819:                                            ; preds = %10792
  %10820 = load i32, ptr @test_count, align 4, !tbaa !5
  %10821 = add nsw i32 %10820, 1
  store i32 %10821, ptr @test_count, align 4, !tbaa !5
  %10822 = load ptr, ptr %71, align 8, !tbaa !9
  %10823 = icmp eq ptr %10822, null
  br i1 %10823, label %10824, label %10846

10824:                                            ; preds = %10819
  %10825 = load i32, ptr %3104, align 4, !tbaa !5
  %10826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10827 = call i32 @s2n_print_stacktrace(ptr noundef %10826) #12
  %10828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10829 = trunc nuw i8 %10828 to i1
  br i1 %10829, label %10830, label %10834

10830:                                            ; preds = %10824
  %10831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10832 = call i32 @fileno(ptr noundef %10831) #12
  %10833 = call i32 @isatty(i32 noundef %10832) #12
  %.not1424 = icmp eq i32 %10833, 0
  br i1 %.not1424, label %10834, label %10835

10834:                                            ; preds = %10830, %10824
  br label %10835

10835:                                            ; preds = %10830, %10834
  %.str.7.sink5384 = phi ptr [ @.str.7, %10834 ], [ @.str.4, %10830 ]
  store i32 %10825, ptr %3104, align 4, !tbaa !5
  %10836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10837 = load i32, ptr @test_count, align 4, !tbaa !5
  %10838 = load i32, ptr %3050, align 4, !tbaa !5
  %10839 = call ptr @s2n_strerror(i32 noundef %10838, ptr noundef nonnull @.str.6) #12
  %10840 = load i32, ptr %3050, align 4, !tbaa !5
  %10841 = call ptr @s2n_strerror_debug(i32 noundef %10840, ptr noundef nonnull @.str.6) #12
  %10842 = load i32, ptr %3104, align 4, !tbaa !5
  %10843 = call ptr @strerror(i32 noundef %10842) #12
  %10844 = load i32, ptr %3104, align 4, !tbaa !5
  %10845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10836, ptr noundef nonnull %.str.7.sink5384, i32 noundef %10837, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 975, ptr noundef %10839, ptr noundef %10841, ptr noundef %10843, i32 noundef %10844) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10846:                                            ; preds = %10819
  %10847 = add nsw i32 %10820, 2
  store i32 %10847, ptr @test_count, align 4, !tbaa !5
  %10848 = load i8, ptr %10822, align 8, !tbaa !64
  %10849 = icmp ugt i8 %10848, 1
  br i1 %10849, label %10872, label %10850

10850:                                            ; preds = %10846
  %10851 = load i32, ptr %3104, align 4, !tbaa !5
  %10852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10853 = call i32 @s2n_print_stacktrace(ptr noundef %10852) #12
  %10854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10855 = trunc nuw i8 %10854 to i1
  br i1 %10855, label %10856, label %10860

10856:                                            ; preds = %10850
  %10857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10858 = call i32 @fileno(ptr noundef %10857) #12
  %10859 = call i32 @isatty(i32 noundef %10858) #12
  %.not1360 = icmp eq i32 %10859, 0
  br i1 %.not1360, label %10860, label %10861

10860:                                            ; preds = %10856, %10850
  br label %10861

10861:                                            ; preds = %10856, %10860
  %.str.7.sink5393 = phi ptr [ @.str.7, %10860 ], [ @.str.4, %10856 ]
  store i32 %10851, ptr %3104, align 4, !tbaa !5
  %10862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10863 = load i32, ptr @test_count, align 4, !tbaa !5
  %10864 = load i32, ptr %3050, align 4, !tbaa !5
  %10865 = call ptr @s2n_strerror(i32 noundef %10864, ptr noundef nonnull @.str.6) #12
  %10866 = load i32, ptr %3050, align 4, !tbaa !5
  %10867 = call ptr @s2n_strerror_debug(i32 noundef %10866, ptr noundef nonnull @.str.6) #12
  %10868 = load i32, ptr %3104, align 4, !tbaa !5
  %10869 = call ptr @strerror(i32 noundef %10868) #12
  %10870 = load i32, ptr %3104, align 4, !tbaa !5
  %10871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10862, ptr noundef nonnull %.str.7.sink5393, i32 noundef %10863, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.3, i32 noundef 976, ptr noundef %10865, ptr noundef %10867, ptr noundef %10869, i32 noundef %10870) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10872:                                            ; preds = %10846
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #12
  %10873 = getelementptr inbounds i8, ptr %10822, i64 8
  %10874 = load ptr, ptr %10873, align 8, !tbaa !24
  %10875 = load ptr, ptr %10874, align 8, !tbaa !9
  store ptr %10875, ptr %72, align 16, !tbaa !22
  %10876 = getelementptr inbounds i8, ptr %72, i64 8
  store ptr null, ptr %10876, align 8, !tbaa !26
  %10877 = getelementptr inbounds i8, ptr %72, i64 16
  %10878 = getelementptr inbounds i8, ptr %10874, i64 8
  %10879 = load ptr, ptr %10878, align 8, !tbaa !9
  store ptr %10879, ptr %10877, align 16, !tbaa !22
  %10880 = getelementptr inbounds i8, ptr %72, i64 24
  store ptr null, ptr %10880, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %73) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %73, i8 0, i64 16, i1 false)
  %10881 = add nsw i32 %10820, 3
  store i32 %10881, ptr @test_count, align 4, !tbaa !5
  %10882 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %70, ptr noundef nonnull %73) #12
  %10883 = icmp eq i32 %10882, -1
  br i1 %10883, label %10884, label %10906

10884:                                            ; preds = %10872
  %10885 = load i32, ptr %3104, align 4, !tbaa !5
  %10886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10887 = call i32 @s2n_print_stacktrace(ptr noundef %10886) #12
  %10888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10889 = trunc nuw i8 %10888 to i1
  br i1 %10889, label %10890, label %10894

10890:                                            ; preds = %10884
  %10891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10892 = call i32 @fileno(ptr noundef %10891) #12
  %10893 = call i32 @isatty(i32 noundef %10892) #12
  %.not1423 = icmp eq i32 %10893, 0
  br i1 %.not1423, label %10894, label %10895

10894:                                            ; preds = %10890, %10884
  br label %10895

10895:                                            ; preds = %10890, %10894
  %.str.7.sink5402 = phi ptr [ @.str.7, %10894 ], [ @.str.4, %10890 ]
  store i32 %10885, ptr %3104, align 4, !tbaa !5
  %10896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10897 = load i32, ptr @test_count, align 4, !tbaa !5
  %10898 = load i32, ptr %3050, align 4, !tbaa !5
  %10899 = call ptr @s2n_strerror(i32 noundef %10898, ptr noundef nonnull @.str.6) #12
  %10900 = load i32, ptr %3050, align 4, !tbaa !5
  %10901 = call ptr @s2n_strerror_debug(i32 noundef %10900, ptr noundef nonnull @.str.6) #12
  %10902 = load i32, ptr %3104, align 4, !tbaa !5
  %10903 = call ptr @strerror(i32 noundef %10902) #12
  %10904 = load i32, ptr %3104, align 4, !tbaa !5
  %10905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10896, ptr noundef nonnull %.str.7.sink5402, i32 noundef %10897, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.3, i32 noundef 985, ptr noundef %10899, ptr noundef %10901, ptr noundef %10903, i32 noundef %10904) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10906:                                            ; preds = %10872
  %10907 = load i32, ptr @test_count, align 4, !tbaa !5
  %10908 = add nsw i32 %10907, 1
  store i32 %10908, ptr @test_count, align 4, !tbaa !5
  %10909 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %72, ptr noundef nonnull %70) #12
  %10910 = icmp eq i32 %10909, -1
  br i1 %10910, label %10911, label %10933

10911:                                            ; preds = %10906
  %10912 = load i32, ptr %3104, align 4, !tbaa !5
  %10913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10914 = call i32 @s2n_print_stacktrace(ptr noundef %10913) #12
  %10915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10916 = trunc nuw i8 %10915 to i1
  br i1 %10916, label %10917, label %10921

10917:                                            ; preds = %10911
  %10918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10919 = call i32 @fileno(ptr noundef %10918) #12
  %10920 = call i32 @isatty(i32 noundef %10919) #12
  %.not1422 = icmp eq i32 %10920, 0
  br i1 %.not1422, label %10921, label %10922

10921:                                            ; preds = %10917, %10911
  br label %10922

10922:                                            ; preds = %10917, %10921
  %.str.7.sink5411 = phi ptr [ @.str.7, %10921 ], [ @.str.4, %10917 ]
  store i32 %10912, ptr %3104, align 4, !tbaa !5
  %10923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10924 = load i32, ptr @test_count, align 4, !tbaa !5
  %10925 = load i32, ptr %3050, align 4, !tbaa !5
  %10926 = call ptr @s2n_strerror(i32 noundef %10925, ptr noundef nonnull @.str.6) #12
  %10927 = load i32, ptr %3050, align 4, !tbaa !5
  %10928 = call ptr @s2n_strerror_debug(i32 noundef %10927, ptr noundef nonnull @.str.6) #12
  %10929 = load i32, ptr %3104, align 4, !tbaa !5
  %10930 = call ptr @strerror(i32 noundef %10929) #12
  %10931 = load i32, ptr %3104, align 4, !tbaa !5
  %10932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10923, ptr noundef nonnull %.str.7.sink5411, i32 noundef %10924, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.3, i32 noundef 987, ptr noundef %10926, ptr noundef %10928, ptr noundef %10930, i32 noundef %10931) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10933:                                            ; preds = %10906
  %10934 = getelementptr inbounds i8, ptr %70, i64 28
  %10935 = load i32, ptr %10934, align 4, !tbaa !18
  %10936 = getelementptr inbounds i8, ptr %70, i64 24
  %10937 = load i32, ptr %10936, align 8, !tbaa !21
  %10938 = sub i32 %10935, %10937
  %10939 = load i32, ptr @test_count, align 4, !tbaa !5
  %10940 = add nsw i32 %10939, 1
  store i32 %10940, ptr @test_count, align 4, !tbaa !5
  %10941 = sdiv i32 %10938, 2
  %10942 = call i32 @s2n_stuffer_wipe_n(ptr noundef nonnull %70, i32 noundef %10941) #12
  %10943 = icmp eq i32 %10942, -1
  br i1 %10943, label %10944, label %10966

10944:                                            ; preds = %10933
  %10945 = load i32, ptr %3104, align 4, !tbaa !5
  %10946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10947 = call i32 @s2n_print_stacktrace(ptr noundef %10946) #12
  %10948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10949 = trunc nuw i8 %10948 to i1
  br i1 %10949, label %10950, label %10954

10950:                                            ; preds = %10944
  %10951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10952 = call i32 @fileno(ptr noundef %10951) #12
  %10953 = call i32 @isatty(i32 noundef %10952) #12
  %.not1421 = icmp eq i32 %10953, 0
  br i1 %.not1421, label %10954, label %10955

10954:                                            ; preds = %10950, %10944
  br label %10955

10955:                                            ; preds = %10950, %10954
  %.str.7.sink5420 = phi ptr [ @.str.7, %10954 ], [ @.str.4, %10950 ]
  store i32 %10945, ptr %3104, align 4, !tbaa !5
  %10956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10957 = load i32, ptr @test_count, align 4, !tbaa !5
  %10958 = load i32, ptr %3050, align 4, !tbaa !5
  %10959 = call ptr @s2n_strerror(i32 noundef %10958, ptr noundef nonnull @.str.6) #12
  %10960 = load i32, ptr %3050, align 4, !tbaa !5
  %10961 = call ptr @s2n_strerror_debug(i32 noundef %10960, ptr noundef nonnull @.str.6) #12
  %10962 = load i32, ptr %3104, align 4, !tbaa !5
  %10963 = call ptr @strerror(i32 noundef %10962) #12
  %10964 = load i32, ptr %3104, align 4, !tbaa !5
  %10965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10956, ptr noundef nonnull %.str.7.sink5420, i32 noundef %10957, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.3, i32 noundef 989, ptr noundef %10959, ptr noundef %10961, ptr noundef %10963, i32 noundef %10964) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10966:                                            ; preds = %10933
  %10967 = load i32, ptr @test_count, align 4, !tbaa !5
  %10968 = add nsw i32 %10967, 1
  store i32 %10968, ptr @test_count, align 4, !tbaa !5
  %10969 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %70, i32 noundef %10941) #12
  %10970 = icmp eq i32 %10969, -1
  br i1 %10970, label %10971, label %10993

10971:                                            ; preds = %10966
  %10972 = load i32, ptr %3104, align 4, !tbaa !5
  %10973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10974 = call i32 @s2n_print_stacktrace(ptr noundef %10973) #12
  %10975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10976 = trunc nuw i8 %10975 to i1
  br i1 %10976, label %10977, label %10981

10977:                                            ; preds = %10971
  %10978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10979 = call i32 @fileno(ptr noundef %10978) #12
  %10980 = call i32 @isatty(i32 noundef %10979) #12
  %.not1420 = icmp eq i32 %10980, 0
  br i1 %.not1420, label %10981, label %10982

10981:                                            ; preds = %10977, %10971
  br label %10982

10982:                                            ; preds = %10977, %10981
  %.str.7.sink5429 = phi ptr [ @.str.7, %10981 ], [ @.str.4, %10977 ]
  store i32 %10972, ptr %3104, align 4, !tbaa !5
  %10983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10984 = load i32, ptr @test_count, align 4, !tbaa !5
  %10985 = load i32, ptr %3050, align 4, !tbaa !5
  %10986 = call ptr @s2n_strerror(i32 noundef %10985, ptr noundef nonnull @.str.6) #12
  %10987 = load i32, ptr %3050, align 4, !tbaa !5
  %10988 = call ptr @s2n_strerror_debug(i32 noundef %10987, ptr noundef nonnull @.str.6) #12
  %10989 = load i32, ptr %3104, align 4, !tbaa !5
  %10990 = call ptr @strerror(i32 noundef %10989) #12
  %10991 = load i32, ptr %3104, align 4, !tbaa !5
  %10992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10983, ptr noundef nonnull %.str.7.sink5429, i32 noundef %10984, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.3, i32 noundef 990, ptr noundef %10986, ptr noundef %10988, ptr noundef %10990, i32 noundef %10991) #14
  call void @exit(i32 noundef 1) #15
  unreachable

10993:                                            ; preds = %10966
  %10994 = load i32, ptr @test_count, align 4, !tbaa !5
  %10995 = add nsw i32 %10994, 1
  store i32 %10995, ptr @test_count, align 4, !tbaa !5
  %10996 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %10877, ptr noundef nonnull %70) #12
  %10997 = icmp eq i32 %10996, -1
  br i1 %10997, label %10998, label %11020

10998:                                            ; preds = %10993
  %10999 = load i32, ptr %3104, align 4, !tbaa !5
  %11000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11001 = call i32 @s2n_print_stacktrace(ptr noundef %11000) #12
  %11002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11003 = trunc nuw i8 %11002 to i1
  br i1 %11003, label %11004, label %11008

11004:                                            ; preds = %10998
  %11005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11006 = call i32 @fileno(ptr noundef %11005) #12
  %11007 = call i32 @isatty(i32 noundef %11006) #12
  %.not1419 = icmp eq i32 %11007, 0
  br i1 %.not1419, label %11008, label %11009

11008:                                            ; preds = %11004, %10998
  br label %11009

11009:                                            ; preds = %11004, %11008
  %.str.7.sink5438 = phi ptr [ @.str.7, %11008 ], [ @.str.4, %11004 ]
  store i32 %10999, ptr %3104, align 4, !tbaa !5
  %11010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11011 = load i32, ptr @test_count, align 4, !tbaa !5
  %11012 = load i32, ptr %3050, align 4, !tbaa !5
  %11013 = call ptr @s2n_strerror(i32 noundef %11012, ptr noundef nonnull @.str.6) #12
  %11014 = load i32, ptr %3050, align 4, !tbaa !5
  %11015 = call ptr @s2n_strerror_debug(i32 noundef %11014, ptr noundef nonnull @.str.6) #12
  %11016 = load i32, ptr %3104, align 4, !tbaa !5
  %11017 = call ptr @strerror(i32 noundef %11016) #12
  %11018 = load i32, ptr %3104, align 4, !tbaa !5
  %11019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11010, ptr noundef nonnull %.str.7.sink5438, i32 noundef %11011, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.3, i32 noundef 992, ptr noundef %11013, ptr noundef %11015, ptr noundef %11017, i32 noundef %11018) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11020:                                            ; preds = %10993
  %11021 = load i32, ptr @test_count, align 4, !tbaa !5
  %11022 = add nsw i32 %11021, 1
  store i32 %11022, ptr @test_count, align 4, !tbaa !5
  %11023 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %73) #12
  %11024 = icmp eq i32 %11023, -1
  br i1 %11024, label %11025, label %11047

11025:                                            ; preds = %11020
  %11026 = load i32, ptr %3104, align 4, !tbaa !5
  %11027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11028 = call i32 @s2n_print_stacktrace(ptr noundef %11027) #12
  %11029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11030 = trunc nuw i8 %11029 to i1
  br i1 %11030, label %11031, label %11035

11031:                                            ; preds = %11025
  %11032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11033 = call i32 @fileno(ptr noundef %11032) #12
  %11034 = call i32 @isatty(i32 noundef %11033) #12
  %.not1418 = icmp eq i32 %11034, 0
  br i1 %.not1418, label %11035, label %11036

11035:                                            ; preds = %11031, %11025
  br label %11036

11036:                                            ; preds = %11031, %11035
  %.str.7.sink5447 = phi ptr [ @.str.7, %11035 ], [ @.str.4, %11031 ]
  store i32 %11026, ptr %3104, align 4, !tbaa !5
  %11037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11038 = load i32, ptr @test_count, align 4, !tbaa !5
  %11039 = load i32, ptr %3050, align 4, !tbaa !5
  %11040 = call ptr @s2n_strerror(i32 noundef %11039, ptr noundef nonnull @.str.6) #12
  %11041 = load i32, ptr %3050, align 4, !tbaa !5
  %11042 = call ptr @s2n_strerror_debug(i32 noundef %11041, ptr noundef nonnull @.str.6) #12
  %11043 = load i32, ptr %3104, align 4, !tbaa !5
  %11044 = call ptr @strerror(i32 noundef %11043) #12
  %11045 = load i32, ptr %3104, align 4, !tbaa !5
  %11046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11037, ptr noundef nonnull %.str.7.sink5447, i32 noundef %11038, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.3, i32 noundef 994, ptr noundef %11040, ptr noundef %11042, ptr noundef %11044, i32 noundef %11045) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11047:                                            ; preds = %11020
  %11048 = load i32, ptr @test_count, align 4, !tbaa !5
  %11049 = add nsw i32 %11048, 1
  store i32 %11049, ptr @test_count, align 4, !tbaa !5
  %11050 = call i32 %2660(ptr noundef nonnull %10659, ptr noundef nonnull %70) #12
  %11051 = icmp eq i32 %11050, -1
  br i1 %11051, label %11052, label %11074

11052:                                            ; preds = %11047
  %11053 = load i32, ptr %3104, align 4, !tbaa !5
  %11054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11055 = call i32 @s2n_print_stacktrace(ptr noundef %11054) #12
  %11056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11057 = trunc nuw i8 %11056 to i1
  br i1 %11057, label %11058, label %11062

11058:                                            ; preds = %11052
  %11059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11060 = call i32 @fileno(ptr noundef %11059) #12
  %11061 = call i32 @isatty(i32 noundef %11060) #12
  %.not1417 = icmp eq i32 %11061, 0
  br i1 %.not1417, label %11062, label %11063

11062:                                            ; preds = %11058, %11052
  br label %11063

11063:                                            ; preds = %11058, %11062
  %.str.7.sink5456 = phi ptr [ @.str.7, %11062 ], [ @.str.4, %11058 ]
  store i32 %11053, ptr %3104, align 4, !tbaa !5
  %11064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11065 = load i32, ptr @test_count, align 4, !tbaa !5
  %11066 = load i32, ptr %3050, align 4, !tbaa !5
  %11067 = call ptr @s2n_strerror(i32 noundef %11066, ptr noundef nonnull @.str.6) #12
  %11068 = load i32, ptr %3050, align 4, !tbaa !5
  %11069 = call ptr @s2n_strerror_debug(i32 noundef %11068, ptr noundef nonnull @.str.6) #12
  %11070 = load i32, ptr %3104, align 4, !tbaa !5
  %11071 = call ptr @strerror(i32 noundef %11070) #12
  %11072 = load i32, ptr %3104, align 4, !tbaa !5
  %11073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11064, ptr noundef nonnull %.str.7.sink5456, i32 noundef %11065, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 996, ptr noundef %11067, ptr noundef %11069, ptr noundef %11071, i32 noundef %11072) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11074:                                            ; preds = %11047
  %11075 = load i32, ptr @test_count, align 4, !tbaa !5
  %11076 = add nsw i32 %11075, 1
  store i32 %11076, ptr @test_count, align 4, !tbaa !5
  %11077 = load i32, ptr %10934, align 4, !tbaa !18
  %11078 = load i32, ptr %10936, align 8, !tbaa !21
  %11079 = icmp eq i32 %11077, %11078
  br i1 %11079, label %11102, label %11080

11080:                                            ; preds = %11074
  %11081 = load i32, ptr %3104, align 4, !tbaa !5
  %11082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11083 = call i32 @s2n_print_stacktrace(ptr noundef %11082) #12
  %11084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11085 = trunc nuw i8 %11084 to i1
  br i1 %11085, label %11086, label %11090

11086:                                            ; preds = %11080
  %11087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11088 = call i32 @fileno(ptr noundef %11087) #12
  %11089 = call i32 @isatty(i32 noundef %11088) #12
  %.not1361 = icmp eq i32 %11089, 0
  br i1 %.not1361, label %11090, label %11091

11090:                                            ; preds = %11086, %11080
  br label %11091

11091:                                            ; preds = %11086, %11090
  %.str.7.sink5465 = phi ptr [ @.str.7, %11090 ], [ @.str.4, %11086 ]
  store i32 %11081, ptr %3104, align 4, !tbaa !5
  %11092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11093 = load i32, ptr @test_count, align 4, !tbaa !5
  %11094 = load i32, ptr %3050, align 4, !tbaa !5
  %11095 = call ptr @s2n_strerror(i32 noundef %11094, ptr noundef nonnull @.str.6) #12
  %11096 = load i32, ptr %3050, align 4, !tbaa !5
  %11097 = call ptr @s2n_strerror_debug(i32 noundef %11096, ptr noundef nonnull @.str.6) #12
  %11098 = load i32, ptr %3104, align 4, !tbaa !5
  %11099 = call ptr @strerror(i32 noundef %11098) #12
  %11100 = load i32, ptr %3104, align 4, !tbaa !5
  %11101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11092, ptr noundef nonnull %.str.7.sink5465, i32 noundef %11093, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 997, ptr noundef %11095, ptr noundef %11097, ptr noundef %11099, i32 noundef %11100) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11102:                                            ; preds = %11074
  %11103 = getelementptr inbounds i8, ptr %10659, i64 704
  %11104 = add nsw i32 %11075, 2
  store i32 %11104, ptr @test_count, align 4, !tbaa !5
  %11105 = load ptr, ptr %11103, align 8, !tbaa !22
  %11106 = load ptr, ptr %71, align 8, !tbaa !9
  %11107 = getelementptr inbounds i8, ptr %11106, i64 8
  %11108 = load ptr, ptr %11107, align 8, !tbaa !24
  %11109 = getelementptr inbounds i8, ptr %11108, i64 8
  %11110 = load ptr, ptr %11109, align 8, !tbaa !9
  %11111 = icmp eq ptr %11105, %11110
  br i1 %11111, label %11134, label %11112

11112:                                            ; preds = %11102
  %11113 = load i32, ptr %3104, align 4, !tbaa !5
  %11114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11115 = call i32 @s2n_print_stacktrace(ptr noundef %11114) #12
  %11116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11117 = trunc nuw i8 %11116 to i1
  br i1 %11117, label %11118, label %11122

11118:                                            ; preds = %11112
  %11119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11120 = call i32 @fileno(ptr noundef %11119) #12
  %11121 = call i32 @isatty(i32 noundef %11120) #12
  %.not1362 = icmp eq i32 %11121, 0
  br i1 %.not1362, label %11122, label %11123

11122:                                            ; preds = %11118, %11112
  br label %11123

11123:                                            ; preds = %11118, %11122
  %.str.7.sink5474 = phi ptr [ @.str.7, %11122 ], [ @.str.4, %11118 ]
  store i32 %11113, ptr %3104, align 4, !tbaa !5
  %11124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11125 = load i32, ptr @test_count, align 4, !tbaa !5
  %11126 = load i32, ptr %3050, align 4, !tbaa !5
  %11127 = call ptr @s2n_strerror(i32 noundef %11126, ptr noundef nonnull @.str.6) #12
  %11128 = load i32, ptr %3050, align 4, !tbaa !5
  %11129 = call ptr @s2n_strerror_debug(i32 noundef %11128, ptr noundef nonnull @.str.6) #12
  %11130 = load i32, ptr %3104, align 4, !tbaa !5
  %11131 = call ptr @strerror(i32 noundef %11130) #12
  %11132 = load i32, ptr %3104, align 4, !tbaa !5
  %11133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11124, ptr noundef nonnull %.str.7.sink5474, i32 noundef %11125, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.3, i32 noundef 1001, ptr noundef %11127, ptr noundef %11129, ptr noundef %11131, i32 noundef %11132) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11134:                                            ; preds = %11102
  %11135 = add nsw i32 %11075, 3
  store i32 %11135, ptr @test_count, align 4, !tbaa !5
  %11136 = getelementptr inbounds i8, ptr %10659, i64 712
  %11137 = load ptr, ptr %11136, align 8, !tbaa !26
  %11138 = icmp eq ptr %11137, null
  br i1 %11138, label %11139, label %11161

11139:                                            ; preds = %11134
  %11140 = load i32, ptr %3104, align 4, !tbaa !5
  %11141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11142 = call i32 @s2n_print_stacktrace(ptr noundef %11141) #12
  %11143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11144 = trunc nuw i8 %11143 to i1
  br i1 %11144, label %11145, label %11149

11145:                                            ; preds = %11139
  %11146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11147 = call i32 @fileno(ptr noundef %11146) #12
  %11148 = call i32 @isatty(i32 noundef %11147) #12
  %.not1416 = icmp eq i32 %11148, 0
  br i1 %.not1416, label %11149, label %11150

11149:                                            ; preds = %11145, %11139
  br label %11150

11150:                                            ; preds = %11145, %11149
  %.str.7.sink5483 = phi ptr [ @.str.7, %11149 ], [ @.str.4, %11145 ]
  store i32 %11140, ptr %3104, align 4, !tbaa !5
  %11151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11152 = load i32, ptr @test_count, align 4, !tbaa !5
  %11153 = load i32, ptr %3050, align 4, !tbaa !5
  %11154 = call ptr @s2n_strerror(i32 noundef %11153, ptr noundef nonnull @.str.6) #12
  %11155 = load i32, ptr %3050, align 4, !tbaa !5
  %11156 = call ptr @s2n_strerror_debug(i32 noundef %11155, ptr noundef nonnull @.str.6) #12
  %11157 = load i32, ptr %3104, align 4, !tbaa !5
  %11158 = call ptr @strerror(i32 noundef %11157) #12
  %11159 = load i32, ptr %3104, align 4, !tbaa !5
  %11160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11151, ptr noundef nonnull %.str.7.sink5483, i32 noundef %11152, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.3, i32 noundef 1002, ptr noundef %11154, ptr noundef %11156, ptr noundef %11158, i32 noundef %11159) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11161:                                            ; preds = %11134
  %11162 = add nsw i32 %11075, 4
  store i32 %11162, ptr @test_count, align 4, !tbaa !5
  %11163 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %11103, ptr noundef nonnull %10877) #12
  %.not1363 = icmp eq i32 %11163, 0
  br i1 %.not1363, label %11168, label %.preheader1729.preheader

.preheader1729.preheader:                         ; preds = %11161
  %11164 = load i32, ptr @test_count, align 4, !tbaa !5
  %11165 = add nsw i32 %11164, 1
  store i32 %11165, ptr @test_count, align 4, !tbaa !5
  %11166 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %72) #12
  %11167 = icmp eq i32 %11166, -1
  br i1 %11167, label %11199, label %.preheader1729.1

11168:                                            ; preds = %11161
  %11169 = load i32, ptr %3104, align 4, !tbaa !5
  %11170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11171 = call i32 @s2n_print_stacktrace(ptr noundef %11170) #12
  %11172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11173 = trunc nuw i8 %11172 to i1
  br i1 %11173, label %11174, label %11178

11174:                                            ; preds = %11168
  %11175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11176 = call i32 @fileno(ptr noundef %11175) #12
  %11177 = call i32 @isatty(i32 noundef %11176) #12
  %.not1364 = icmp eq i32 %11177, 0
  br i1 %.not1364, label %11178, label %11179

11178:                                            ; preds = %11174, %11168
  br label %11179

11179:                                            ; preds = %11174, %11178
  %.str.7.sink5492 = phi ptr [ @.str.7, %11178 ], [ @.str.4, %11174 ]
  store i32 %11169, ptr %3104, align 4, !tbaa !5
  %11180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11181 = load i32, ptr @test_count, align 4, !tbaa !5
  %11182 = load i32, ptr %3050, align 4, !tbaa !5
  %11183 = call ptr @s2n_strerror(i32 noundef %11182, ptr noundef nonnull @.str.6) #12
  %11184 = load i32, ptr %3050, align 4, !tbaa !5
  %11185 = call ptr @s2n_strerror_debug(i32 noundef %11184, ptr noundef nonnull @.str.6) #12
  %11186 = load i32, ptr %3104, align 4, !tbaa !5
  %11187 = call ptr @strerror(i32 noundef %11186) #12
  %11188 = load i32, ptr %3104, align 4, !tbaa !5
  %11189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11180, ptr noundef nonnull %.str.7.sink5492, i32 noundef %11181, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.3, i32 noundef 1003, ptr noundef %11183, ptr noundef %11185, ptr noundef %11187, i32 noundef %11188) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader1729.1:                                 ; preds = %.preheader1729.preheader
  %11190 = load i32, ptr @test_count, align 4, !tbaa !5
  %11191 = add nsw i32 %11190, 1
  store i32 %11191, ptr @test_count, align 4, !tbaa !5
  %11192 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %10877) #12
  %11193 = icmp eq i32 %11192, -1
  br i1 %11193, label %11199, label %11194

11194:                                            ; preds = %.preheader1729.1
  %11195 = load i32, ptr @test_count, align 4, !tbaa !5
  %11196 = add nsw i32 %11195, 1
  store i32 %11196, ptr @test_count, align 4, !tbaa !5
  %11197 = call i32 @s2n_stuffer_free(ptr noundef nonnull %70) #12
  %11198 = icmp eq i32 %11197, -1
  br i1 %11198, label %11221, label %11243

11199:                                            ; preds = %.preheader1729.1, %.preheader1729.preheader
  %11200 = load i32, ptr %3104, align 4, !tbaa !5
  %11201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11202 = call i32 @s2n_print_stacktrace(ptr noundef %11201) #12
  %11203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11204 = trunc nuw i8 %11203 to i1
  br i1 %11204, label %11205, label %11209

11205:                                            ; preds = %11199
  %11206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11207 = call i32 @fileno(ptr noundef %11206) #12
  %11208 = call i32 @isatty(i32 noundef %11207) #12
  %.not1415 = icmp eq i32 %11208, 0
  br i1 %.not1415, label %11209, label %11210

11209:                                            ; preds = %11205, %11199
  br label %11210

11210:                                            ; preds = %11205, %11209
  %.str.7.sink5501 = phi ptr [ @.str.7, %11209 ], [ @.str.4, %11205 ]
  store i32 %11200, ptr %3104, align 4, !tbaa !5
  %11211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11212 = load i32, ptr @test_count, align 4, !tbaa !5
  %11213 = load i32, ptr %3050, align 4, !tbaa !5
  %11214 = call ptr @s2n_strerror(i32 noundef %11213, ptr noundef nonnull @.str.6) #12
  %11215 = load i32, ptr %3050, align 4, !tbaa !5
  %11216 = call ptr @s2n_strerror_debug(i32 noundef %11215, ptr noundef nonnull @.str.6) #12
  %11217 = load i32, ptr %3104, align 4, !tbaa !5
  %11218 = call ptr @strerror(i32 noundef %11217) #12
  %11219 = load i32, ptr %3104, align 4, !tbaa !5
  %11220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11211, ptr noundef nonnull %.str.7.sink5501, i32 noundef %11212, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.3, i32 noundef 1006, ptr noundef %11214, ptr noundef %11216, ptr noundef %11218, i32 noundef %11219) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11221:                                            ; preds = %11194
  %11222 = load i32, ptr %3104, align 4, !tbaa !5
  %11223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11224 = call i32 @s2n_print_stacktrace(ptr noundef %11223) #12
  %11225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11226 = trunc nuw i8 %11225 to i1
  br i1 %11226, label %11227, label %11231

11227:                                            ; preds = %11221
  %11228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11229 = call i32 @fileno(ptr noundef %11228) #12
  %11230 = call i32 @isatty(i32 noundef %11229) #12
  %.not1414 = icmp eq i32 %11230, 0
  br i1 %.not1414, label %11231, label %11232

11231:                                            ; preds = %11227, %11221
  br label %11232

11232:                                            ; preds = %11227, %11231
  %.str.7.sink5510 = phi ptr [ @.str.7, %11231 ], [ @.str.4, %11227 ]
  store i32 %11222, ptr %3104, align 4, !tbaa !5
  %11233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11234 = load i32, ptr @test_count, align 4, !tbaa !5
  %11235 = load i32, ptr %3050, align 4, !tbaa !5
  %11236 = call ptr @s2n_strerror(i32 noundef %11235, ptr noundef nonnull @.str.6) #12
  %11237 = load i32, ptr %3050, align 4, !tbaa !5
  %11238 = call ptr @s2n_strerror_debug(i32 noundef %11237, ptr noundef nonnull @.str.6) #12
  %11239 = load i32, ptr %3104, align 4, !tbaa !5
  %11240 = call ptr @strerror(i32 noundef %11239) #12
  %11241 = load i32, ptr %3104, align 4, !tbaa !5
  %11242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11233, ptr noundef nonnull %.str.7.sink5510, i32 noundef %11234, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 1008, ptr noundef %11236, ptr noundef %11238, ptr noundef %11240, i32 noundef %11241) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11243:                                            ; preds = %11194
  %11244 = load i32, ptr @test_count, align 4, !tbaa !5
  %11245 = add nsw i32 %11244, 1
  store i32 %11245, ptr @test_count, align 4, !tbaa !5
  %11246 = call i32 @s2n_connection_free(ptr noundef nonnull %10659) #12
  %11247 = icmp eq i32 %11246, -1
  br i1 %11247, label %11248, label %11270

11248:                                            ; preds = %11243
  %11249 = load i32, ptr %3104, align 4, !tbaa !5
  %11250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11251 = call i32 @s2n_print_stacktrace(ptr noundef %11250) #12
  %11252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11253 = trunc nuw i8 %11252 to i1
  br i1 %11253, label %11254, label %11258

11254:                                            ; preds = %11248
  %11255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11256 = call i32 @fileno(ptr noundef %11255) #12
  %11257 = call i32 @isatty(i32 noundef %11256) #12
  %.not1413 = icmp eq i32 %11257, 0
  br i1 %.not1413, label %11258, label %11259

11258:                                            ; preds = %11254, %11248
  br label %11259

11259:                                            ; preds = %11254, %11258
  %.str.7.sink5519 = phi ptr [ @.str.7, %11258 ], [ @.str.4, %11254 ]
  store i32 %11249, ptr %3104, align 4, !tbaa !5
  %11260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11261 = load i32, ptr @test_count, align 4, !tbaa !5
  %11262 = load i32, ptr %3050, align 4, !tbaa !5
  %11263 = call ptr @s2n_strerror(i32 noundef %11262, ptr noundef nonnull @.str.6) #12
  %11264 = load i32, ptr %3050, align 4, !tbaa !5
  %11265 = call ptr @s2n_strerror_debug(i32 noundef %11264, ptr noundef nonnull @.str.6) #12
  %11266 = load i32, ptr %3104, align 4, !tbaa !5
  %11267 = call ptr @strerror(i32 noundef %11266) #12
  %11268 = load i32, ptr %3104, align 4, !tbaa !5
  %11269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11260, ptr noundef nonnull %.str.7.sink5519, i32 noundef %11261, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 1009, ptr noundef %11263, ptr noundef %11265, ptr noundef %11267, i32 noundef %11268) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11270:                                            ; preds = %11243
  %11271 = load i32, ptr @test_count, align 4, !tbaa !5
  %11272 = add nsw i32 %11271, 1
  store i32 %11272, ptr @test_count, align 4, !tbaa !5
  %11273 = call i32 @s2n_config_free(ptr noundef nonnull %10607) #12
  %11274 = icmp eq i32 %11273, -1
  br i1 %11274, label %11275, label %11297

11275:                                            ; preds = %11270
  %11276 = load i32, ptr %3104, align 4, !tbaa !5
  %11277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11278 = call i32 @s2n_print_stacktrace(ptr noundef %11277) #12
  %11279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11280 = trunc nuw i8 %11279 to i1
  br i1 %11280, label %11281, label %11285

11281:                                            ; preds = %11275
  %11282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11283 = call i32 @fileno(ptr noundef %11282) #12
  %11284 = call i32 @isatty(i32 noundef %11283) #12
  %.not1412 = icmp eq i32 %11284, 0
  br i1 %.not1412, label %11285, label %11286

11285:                                            ; preds = %11281, %11275
  br label %11286

11286:                                            ; preds = %11281, %11285
  %.str.7.sink5528 = phi ptr [ @.str.7, %11285 ], [ @.str.4, %11281 ]
  store i32 %11276, ptr %3104, align 4, !tbaa !5
  %11287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11288 = load i32, ptr @test_count, align 4, !tbaa !5
  %11289 = load i32, ptr %3050, align 4, !tbaa !5
  %11290 = call ptr @s2n_strerror(i32 noundef %11289, ptr noundef nonnull @.str.6) #12
  %11291 = load i32, ptr %3050, align 4, !tbaa !5
  %11292 = call ptr @s2n_strerror_debug(i32 noundef %11291, ptr noundef nonnull @.str.6) #12
  %11293 = load i32, ptr %3104, align 4, !tbaa !5
  %11294 = call ptr @strerror(i32 noundef %11293) #12
  %11295 = load i32, ptr %3104, align 4, !tbaa !5
  %11296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11287, ptr noundef nonnull %.str.7.sink5528, i32 noundef %11288, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.3, i32 noundef 1010, ptr noundef %11290, ptr noundef %11292, ptr noundef %11294, i32 noundef %11295) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11297:                                            ; preds = %11270
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %73) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %70) #12
  %11298 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %11299 = load i32, ptr @test_count, align 4, !tbaa !5
  %11300 = add nsw i32 %11299, 1
  store i32 %11300, ptr @test_count, align 4, !tbaa !5
  %11301 = icmp eq ptr %11298, null
  br i1 %11301, label %11302, label %11324

11302:                                            ; preds = %11297
  %11303 = load i32, ptr %3104, align 4, !tbaa !5
  %11304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11305 = call i32 @s2n_print_stacktrace(ptr noundef %11304) #12
  %11306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11307 = trunc nuw i8 %11306 to i1
  br i1 %11307, label %11308, label %11312

11308:                                            ; preds = %11302
  %11309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11310 = call i32 @fileno(ptr noundef %11309) #12
  %11311 = call i32 @isatty(i32 noundef %11310) #12
  %.not1411 = icmp eq i32 %11311, 0
  br i1 %.not1411, label %11312, label %11313

11312:                                            ; preds = %11308, %11302
  br label %11313

11313:                                            ; preds = %11308, %11312
  %.str.7.sink5537 = phi ptr [ @.str.7, %11312 ], [ @.str.4, %11308 ]
  store i32 %11303, ptr %3104, align 4, !tbaa !5
  %11314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11315 = load i32, ptr @test_count, align 4, !tbaa !5
  %11316 = load i32, ptr %3050, align 4, !tbaa !5
  %11317 = call ptr @s2n_strerror(i32 noundef %11316, ptr noundef nonnull @.str.6) #12
  %11318 = load i32, ptr %3050, align 4, !tbaa !5
  %11319 = call ptr @s2n_strerror_debug(i32 noundef %11318, ptr noundef nonnull @.str.6) #12
  %11320 = load i32, ptr %3104, align 4, !tbaa !5
  %11321 = call ptr @strerror(i32 noundef %11320) #12
  %11322 = load i32, ptr %3104, align 4, !tbaa !5
  %11323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11314, ptr noundef nonnull %.str.7.sink5537, i32 noundef %11315, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.3, i32 noundef 1017, ptr noundef %11317, ptr noundef %11319, ptr noundef %11321, i32 noundef %11322) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11324:                                            ; preds = %11297
  %11325 = add nsw i32 %11299, 2
  store i32 %11325, ptr @test_count, align 4, !tbaa !5
  %11326 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %11298, i8 noundef zeroext 34) #12
  %11327 = icmp eq i32 %11326, -1
  br i1 %11327, label %11328, label %11350

11328:                                            ; preds = %11324
  %11329 = load i32, ptr %3104, align 4, !tbaa !5
  %11330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11331 = call i32 @s2n_print_stacktrace(ptr noundef %11330) #12
  %11332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11333 = trunc nuw i8 %11332 to i1
  br i1 %11333, label %11334, label %11338

11334:                                            ; preds = %11328
  %11335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11336 = call i32 @fileno(ptr noundef %11335) #12
  %11337 = call i32 @isatty(i32 noundef %11336) #12
  %.not1410 = icmp eq i32 %11337, 0
  br i1 %.not1410, label %11338, label %11339

11338:                                            ; preds = %11334, %11328
  br label %11339

11339:                                            ; preds = %11334, %11338
  %.str.7.sink5546 = phi ptr [ @.str.7, %11338 ], [ @.str.4, %11334 ]
  store i32 %11329, ptr %3104, align 4, !tbaa !5
  %11340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11341 = load i32, ptr @test_count, align 4, !tbaa !5
  %11342 = load i32, ptr %3050, align 4, !tbaa !5
  %11343 = call ptr @s2n_strerror(i32 noundef %11342, ptr noundef nonnull @.str.6) #12
  %11344 = load i32, ptr %3050, align 4, !tbaa !5
  %11345 = call ptr @s2n_strerror_debug(i32 noundef %11344, ptr noundef nonnull @.str.6) #12
  %11346 = load i32, ptr %3104, align 4, !tbaa !5
  %11347 = call ptr @strerror(i32 noundef %11346) #12
  %11348 = load i32, ptr %3104, align 4, !tbaa !5
  %11349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11340, ptr noundef nonnull %.str.7.sink5546, i32 noundef %11341, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.3, i32 noundef 1018, ptr noundef %11343, ptr noundef %11345, ptr noundef %11347, i32 noundef %11348) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11350:                                            ; preds = %11324
  %11351 = load i32, ptr @test_count, align 4, !tbaa !5
  %11352 = add nsw i32 %11351, 1
  store i32 %11352, ptr @test_count, align 4, !tbaa !5
  %11353 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %11298) #12
  %11354 = call zeroext i1 @s2n_result_is_ok(i32 %11353)
  br i1 %11354, label %11377, label %11355

11355:                                            ; preds = %11350
  %11356 = load i32, ptr %3104, align 4, !tbaa !5
  %11357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11358 = call i32 @s2n_print_stacktrace(ptr noundef %11357) #12
  %11359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11360 = trunc nuw i8 %11359 to i1
  br i1 %11360, label %11361, label %11365

11361:                                            ; preds = %11355
  %11362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11363 = call i32 @fileno(ptr noundef %11362) #12
  %11364 = call i32 @isatty(i32 noundef %11363) #12
  %.not1365 = icmp eq i32 %11364, 0
  br i1 %.not1365, label %11365, label %11366

11365:                                            ; preds = %11361, %11355
  br label %11366

11366:                                            ; preds = %11361, %11365
  %.str.7.sink5555 = phi ptr [ @.str.7, %11365 ], [ @.str.4, %11361 ]
  store i32 %11356, ptr %3104, align 4, !tbaa !5
  %11367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11368 = load i32, ptr @test_count, align 4, !tbaa !5
  %11369 = load i32, ptr %3050, align 4, !tbaa !5
  %11370 = call ptr @s2n_strerror(i32 noundef %11369, ptr noundef nonnull @.str.6) #12
  %11371 = load i32, ptr %3050, align 4, !tbaa !5
  %11372 = call ptr @s2n_strerror_debug(i32 noundef %11371, ptr noundef nonnull @.str.6) #12
  %11373 = load i32, ptr %3104, align 4, !tbaa !5
  %11374 = call ptr @strerror(i32 noundef %11373) #12
  %11375 = load i32, ptr %3104, align 4, !tbaa !5
  %11376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11367, ptr noundef nonnull %.str.7.sink5555, i32 noundef %11368, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.3, i32 noundef 1019, ptr noundef %11370, ptr noundef %11372, ptr noundef %11374, i32 noundef %11375) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11377:                                            ; preds = %11350
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %74) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %74, i8 0, i64 40, i1 false)
  %11378 = load i32, ptr @test_count, align 4, !tbaa !5
  %11379 = add nsw i32 %11378, 1
  store i32 %11379, ptr @test_count, align 4, !tbaa !5
  %11380 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %74, i32 noundef 0) #12
  %11381 = icmp eq i32 %11380, -1
  br i1 %11381, label %11382, label %11404

11382:                                            ; preds = %11377
  %11383 = load i32, ptr %3104, align 4, !tbaa !5
  %11384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11385 = call i32 @s2n_print_stacktrace(ptr noundef %11384) #12
  %11386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11387 = trunc nuw i8 %11386 to i1
  br i1 %11387, label %11388, label %11392

11388:                                            ; preds = %11382
  %11389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11390 = call i32 @fileno(ptr noundef %11389) #12
  %11391 = call i32 @isatty(i32 noundef %11390) #12
  %.not1409 = icmp eq i32 %11391, 0
  br i1 %.not1409, label %11392, label %11393

11392:                                            ; preds = %11388, %11382
  br label %11393

11393:                                            ; preds = %11388, %11392
  %.str.7.sink5564 = phi ptr [ @.str.7, %11392 ], [ @.str.4, %11388 ]
  store i32 %11383, ptr %3104, align 4, !tbaa !5
  %11394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11395 = load i32, ptr @test_count, align 4, !tbaa !5
  %11396 = load i32, ptr %3050, align 4, !tbaa !5
  %11397 = call ptr @s2n_strerror(i32 noundef %11396, ptr noundef nonnull @.str.6) #12
  %11398 = load i32, ptr %3050, align 4, !tbaa !5
  %11399 = call ptr @s2n_strerror_debug(i32 noundef %11398, ptr noundef nonnull @.str.6) #12
  %11400 = load i32, ptr %3104, align 4, !tbaa !5
  %11401 = call ptr @strerror(i32 noundef %11400) #12
  %11402 = load i32, ptr %3104, align 4, !tbaa !5
  %11403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11394, ptr noundef nonnull %.str.7.sink5564, i32 noundef %11395, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 1022, ptr noundef %11397, ptr noundef %11399, ptr noundef %11401, i32 noundef %11402) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11404:                                            ; preds = %11377
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #12
  store ptr null, ptr %75, align 8, !tbaa !9
  %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 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %11298, ptr noundef nonnull %75) #12
  %11408 = icmp eq i32 %11407, -1
  br i1 %11408, label %11409, label %11431

11409:                                            ; preds = %11404
  %11410 = load i32, ptr %3104, align 4, !tbaa !5
  %11411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11412 = call i32 @s2n_print_stacktrace(ptr noundef %11411) #12
  %11413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11414 = trunc nuw i8 %11413 to i1
  br i1 %11414, label %11415, label %11419

11415:                                            ; preds = %11409
  %11416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11417 = call i32 @fileno(ptr noundef %11416) #12
  %11418 = call i32 @isatty(i32 noundef %11417) #12
  %.not1408 = icmp eq i32 %11418, 0
  br i1 %.not1408, label %11419, label %11420

11419:                                            ; preds = %11415, %11409
  br label %11420

11420:                                            ; preds = %11415, %11419
  %.str.7.sink5573 = phi ptr [ @.str.7, %11419 ], [ @.str.4, %11415 ]
  store i32 %11410, ptr %3104, align 4, !tbaa !5
  %11421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11422 = load i32, ptr @test_count, align 4, !tbaa !5
  %11423 = load i32, ptr %3050, align 4, !tbaa !5
  %11424 = call ptr @s2n_strerror(i32 noundef %11423, ptr noundef nonnull @.str.6) #12
  %11425 = load i32, ptr %3050, align 4, !tbaa !5
  %11426 = call ptr @s2n_strerror_debug(i32 noundef %11425, ptr noundef nonnull @.str.6) #12
  %11427 = load i32, ptr %3104, align 4, !tbaa !5
  %11428 = call ptr @strerror(i32 noundef %11427) #12
  %11429 = load i32, ptr %3104, align 4, !tbaa !5
  %11430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11421, ptr noundef nonnull %.str.7.sink5573, i32 noundef %11422, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.3, i32 noundef 1025, ptr noundef %11424, ptr noundef %11426, ptr noundef %11428, i32 noundef %11429) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11431:                                            ; preds = %11404
  %11432 = load i32, ptr @test_count, align 4, !tbaa !5
  %11433 = add nsw i32 %11432, 1
  store i32 %11433, ptr @test_count, align 4, !tbaa !5
  %11434 = load ptr, ptr %75, align 8, !tbaa !9
  %11435 = icmp eq ptr %11434, null
  br i1 %11435, label %11436, label %11458

11436:                                            ; preds = %11431
  %11437 = load i32, ptr %3104, align 4, !tbaa !5
  %11438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11439 = call i32 @s2n_print_stacktrace(ptr noundef %11438) #12
  %11440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11441 = trunc nuw i8 %11440 to i1
  br i1 %11441, label %11442, label %11446

11442:                                            ; preds = %11436
  %11443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11444 = call i32 @fileno(ptr noundef %11443) #12
  %11445 = call i32 @isatty(i32 noundef %11444) #12
  %.not1407 = icmp eq i32 %11445, 0
  br i1 %.not1407, label %11446, label %11447

11446:                                            ; preds = %11442, %11436
  br label %11447

11447:                                            ; preds = %11442, %11446
  %.str.7.sink5582 = phi ptr [ @.str.7, %11446 ], [ @.str.4, %11442 ]
  store i32 %11437, ptr %3104, align 4, !tbaa !5
  %11448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11449 = load i32, ptr @test_count, align 4, !tbaa !5
  %11450 = load i32, ptr %3050, align 4, !tbaa !5
  %11451 = call ptr @s2n_strerror(i32 noundef %11450, ptr noundef nonnull @.str.6) #12
  %11452 = load i32, ptr %3050, align 4, !tbaa !5
  %11453 = call ptr @s2n_strerror_debug(i32 noundef %11452, ptr noundef nonnull @.str.6) #12
  %11454 = load i32, ptr %3104, align 4, !tbaa !5
  %11455 = call ptr @strerror(i32 noundef %11454) #12
  %11456 = load i32, ptr %3104, align 4, !tbaa !5
  %11457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11448, ptr noundef nonnull %.str.7.sink5582, i32 noundef %11449, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 1026, ptr noundef %11451, ptr noundef %11453, ptr noundef %11455, i32 noundef %11456) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11458:                                            ; preds = %11431
  %11459 = add nsw i32 %11432, 2
  store i32 %11459, ptr @test_count, align 4, !tbaa !5
  %11460 = load i8, ptr %11434, align 8, !tbaa !64
  %11461 = icmp ugt i8 %11460, 1
  br i1 %11461, label %11484, label %11462

11462:                                            ; preds = %11458
  %11463 = load i32, ptr %3104, align 4, !tbaa !5
  %11464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11465 = call i32 @s2n_print_stacktrace(ptr noundef %11464) #12
  %11466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11467 = trunc nuw i8 %11466 to i1
  br i1 %11467, label %11468, label %11472

11468:                                            ; preds = %11462
  %11469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11470 = call i32 @fileno(ptr noundef %11469) #12
  %11471 = call i32 @isatty(i32 noundef %11470) #12
  %.not1366 = icmp eq i32 %11471, 0
  br i1 %.not1366, label %11472, label %11473

11472:                                            ; preds = %11468, %11462
  br label %11473

11473:                                            ; preds = %11468, %11472
  %.str.7.sink5591 = phi ptr [ @.str.7, %11472 ], [ @.str.4, %11468 ]
  store i32 %11463, ptr %3104, align 4, !tbaa !5
  %11474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11475 = load i32, ptr @test_count, align 4, !tbaa !5
  %11476 = load i32, ptr %3050, align 4, !tbaa !5
  %11477 = call ptr @s2n_strerror(i32 noundef %11476, ptr noundef nonnull @.str.6) #12
  %11478 = load i32, ptr %3050, align 4, !tbaa !5
  %11479 = call ptr @s2n_strerror_debug(i32 noundef %11478, ptr noundef nonnull @.str.6) #12
  %11480 = load i32, ptr %3104, align 4, !tbaa !5
  %11481 = call ptr @strerror(i32 noundef %11480) #12
  %11482 = load i32, ptr %3104, align 4, !tbaa !5
  %11483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11474, ptr noundef nonnull %.str.7.sink5591, i32 noundef %11475, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.3, i32 noundef 1027, ptr noundef %11477, ptr noundef %11479, ptr noundef %11481, i32 noundef %11482) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11484:                                            ; preds = %11458
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #12
  %11485 = getelementptr inbounds i8, ptr %11434, i64 8
  %11486 = load ptr, ptr %11485, align 8, !tbaa !24
  %11487 = load ptr, ptr %11486, align 8, !tbaa !9
  store ptr %11487, ptr %76, align 16, !tbaa !22
  %11488 = getelementptr inbounds i8, ptr %76, i64 8
  store ptr null, ptr %11488, align 8, !tbaa !26
  %11489 = getelementptr inbounds i8, ptr %76, i64 16
  %11490 = getelementptr inbounds i8, ptr %11486, i64 8
  %11491 = load ptr, ptr %11490, align 8, !tbaa !9
  store ptr %11491, ptr %11489, align 16, !tbaa !22
  %11492 = getelementptr inbounds i8, ptr %76, i64 24
  store ptr null, ptr %11492, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %77) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %77, i8 0, i64 16, i1 false)
  %11493 = add nsw i32 %11432, 3
  store i32 %11493, ptr @test_count, align 4, !tbaa !5
  %11494 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %74, ptr noundef nonnull %77) #12
  %11495 = icmp eq i32 %11494, -1
  br i1 %11495, label %11496, label %11518

11496:                                            ; preds = %11484
  %11497 = load i32, ptr %3104, align 4, !tbaa !5
  %11498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11499 = call i32 @s2n_print_stacktrace(ptr noundef %11498) #12
  %11500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11501 = trunc nuw i8 %11500 to i1
  br i1 %11501, label %11502, label %11506

11502:                                            ; preds = %11496
  %11503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11504 = call i32 @fileno(ptr noundef %11503) #12
  %11505 = call i32 @isatty(i32 noundef %11504) #12
  %.not1406 = icmp eq i32 %11505, 0
  br i1 %.not1406, label %11506, label %11507

11506:                                            ; preds = %11502, %11496
  br label %11507

11507:                                            ; preds = %11502, %11506
  %.str.7.sink5600 = phi ptr [ @.str.7, %11506 ], [ @.str.4, %11502 ]
  store i32 %11497, ptr %3104, align 4, !tbaa !5
  %11508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11509 = load i32, ptr @test_count, align 4, !tbaa !5
  %11510 = load i32, ptr %3050, align 4, !tbaa !5
  %11511 = call ptr @s2n_strerror(i32 noundef %11510, ptr noundef nonnull @.str.6) #12
  %11512 = load i32, ptr %3050, align 4, !tbaa !5
  %11513 = call ptr @s2n_strerror_debug(i32 noundef %11512, ptr noundef nonnull @.str.6) #12
  %11514 = load i32, ptr %3104, align 4, !tbaa !5
  %11515 = call ptr @strerror(i32 noundef %11514) #12
  %11516 = load i32, ptr %3104, align 4, !tbaa !5
  %11517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11508, ptr noundef nonnull %.str.7.sink5600, i32 noundef %11509, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.3, i32 noundef 1036, ptr noundef %11511, ptr noundef %11513, ptr noundef %11515, i32 noundef %11516) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11518:                                            ; preds = %11484
  %11519 = load i32, ptr @test_count, align 4, !tbaa !5
  %11520 = add nsw i32 %11519, 1
  store i32 %11520, ptr @test_count, align 4, !tbaa !5
  %11521 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %76, ptr noundef nonnull %74) #12
  %11522 = icmp eq i32 %11521, -1
  br i1 %11522, label %11523, label %11545

11523:                                            ; preds = %11518
  %11524 = load i32, ptr %3104, align 4, !tbaa !5
  %11525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11526 = call i32 @s2n_print_stacktrace(ptr noundef %11525) #12
  %11527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11528 = trunc nuw i8 %11527 to i1
  br i1 %11528, label %11529, label %11533

11529:                                            ; preds = %11523
  %11530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11531 = call i32 @fileno(ptr noundef %11530) #12
  %11532 = call i32 @isatty(i32 noundef %11531) #12
  %.not1405 = icmp eq i32 %11532, 0
  br i1 %.not1405, label %11533, label %11534

11533:                                            ; preds = %11529, %11523
  br label %11534

11534:                                            ; preds = %11529, %11533
  %.str.7.sink5609 = phi ptr [ @.str.7, %11533 ], [ @.str.4, %11529 ]
  store i32 %11524, ptr %3104, align 4, !tbaa !5
  %11535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11536 = load i32, ptr @test_count, align 4, !tbaa !5
  %11537 = load i32, ptr %3050, align 4, !tbaa !5
  %11538 = call ptr @s2n_strerror(i32 noundef %11537, ptr noundef nonnull @.str.6) #12
  %11539 = load i32, ptr %3050, align 4, !tbaa !5
  %11540 = call ptr @s2n_strerror_debug(i32 noundef %11539, ptr noundef nonnull @.str.6) #12
  %11541 = load i32, ptr %3104, align 4, !tbaa !5
  %11542 = call ptr @strerror(i32 noundef %11541) #12
  %11543 = load i32, ptr %3104, align 4, !tbaa !5
  %11544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11535, ptr noundef nonnull %.str.7.sink5609, i32 noundef %11536, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.3, i32 noundef 1038, ptr noundef %11538, ptr noundef %11540, ptr noundef %11542, i32 noundef %11543) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11545:                                            ; preds = %11518
  %11546 = load i32, ptr @test_count, align 4, !tbaa !5
  %11547 = add nsw i32 %11546, 1
  store i32 %11547, ptr @test_count, align 4, !tbaa !5
  %11548 = call i32 @s2n_ecdhe_parameters_send(ptr noundef nonnull %11489, ptr noundef nonnull %74) #12
  %11549 = icmp eq i32 %11548, -1
  br i1 %11549, label %11550, label %11572

11550:                                            ; preds = %11545
  %11551 = load i32, ptr %3104, align 4, !tbaa !5
  %11552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11553 = call i32 @s2n_print_stacktrace(ptr noundef %11552) #12
  %11554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11555 = trunc nuw i8 %11554 to i1
  br i1 %11555, label %11556, label %11560

11556:                                            ; preds = %11550
  %11557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11558 = call i32 @fileno(ptr noundef %11557) #12
  %11559 = call i32 @isatty(i32 noundef %11558) #12
  %.not1404 = icmp eq i32 %11559, 0
  br i1 %.not1404, label %11560, label %11561

11560:                                            ; preds = %11556, %11550
  br label %11561

11561:                                            ; preds = %11556, %11560
  %.str.7.sink5618 = phi ptr [ @.str.7, %11560 ], [ @.str.4, %11556 ]
  store i32 %11551, ptr %3104, align 4, !tbaa !5
  %11562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11563 = load i32, ptr @test_count, align 4, !tbaa !5
  %11564 = load i32, ptr %3050, align 4, !tbaa !5
  %11565 = call ptr @s2n_strerror(i32 noundef %11564, ptr noundef nonnull @.str.6) #12
  %11566 = load i32, ptr %3050, align 4, !tbaa !5
  %11567 = call ptr @s2n_strerror_debug(i32 noundef %11566, ptr noundef nonnull @.str.6) #12
  %11568 = load i32, ptr %3104, align 4, !tbaa !5
  %11569 = call ptr @strerror(i32 noundef %11568) #12
  %11570 = load i32, ptr %3104, align 4, !tbaa !5
  %11571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11562, ptr noundef nonnull %.str.7.sink5618, i32 noundef %11563, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.3, i32 noundef 1040, ptr noundef %11565, ptr noundef %11567, ptr noundef %11569, i32 noundef %11570) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11572:                                            ; preds = %11545
  %11573 = load i32, ptr @test_count, align 4, !tbaa !5
  %11574 = add nsw i32 %11573, 1
  store i32 %11574, ptr @test_count, align 4, !tbaa !5
  %11575 = load ptr, ptr %75, align 8, !tbaa !9
  %11576 = getelementptr inbounds i8, ptr %11575, i64 8
  %11577 = load ptr, ptr %11576, align 8, !tbaa !24
  %11578 = getelementptr inbounds i8, ptr %11577, i64 8
  %11579 = load ptr, ptr %11578, align 8, !tbaa !9
  %11580 = getelementptr inbounds i8, ptr %11579, i64 16
  %11581 = load i8, ptr %11580, align 8, !tbaa !30
  %11582 = lshr i8 %11581, 1
  %11583 = zext nneg i8 %11582 to i32
  %11584 = call i32 @s2n_stuffer_wipe_n(ptr noundef nonnull %74, i32 noundef %11583) #12
  %11585 = icmp eq i32 %11584, -1
  br i1 %11585, label %11586, label %11608

11586:                                            ; preds = %11572
  %11587 = load i32, ptr %3104, align 4, !tbaa !5
  %11588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11589 = call i32 @s2n_print_stacktrace(ptr noundef %11588) #12
  %11590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11591 = trunc nuw i8 %11590 to i1
  br i1 %11591, label %11592, label %11596

11592:                                            ; preds = %11586
  %11593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11594 = call i32 @fileno(ptr noundef %11593) #12
  %11595 = call i32 @isatty(i32 noundef %11594) #12
  %.not1403 = icmp eq i32 %11595, 0
  br i1 %.not1403, label %11596, label %11597

11596:                                            ; preds = %11592, %11586
  br label %11597

11597:                                            ; preds = %11592, %11596
  %.str.7.sink5627 = phi ptr [ @.str.7, %11596 ], [ @.str.4, %11592 ]
  store i32 %11587, ptr %3104, align 4, !tbaa !5
  %11598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11599 = load i32, ptr @test_count, align 4, !tbaa !5
  %11600 = load i32, ptr %3050, align 4, !tbaa !5
  %11601 = call ptr @s2n_strerror(i32 noundef %11600, ptr noundef nonnull @.str.6) #12
  %11602 = load i32, ptr %3050, align 4, !tbaa !5
  %11603 = call ptr @s2n_strerror_debug(i32 noundef %11602, ptr noundef nonnull @.str.6) #12
  %11604 = load i32, ptr %3104, align 4, !tbaa !5
  %11605 = call ptr @strerror(i32 noundef %11604) #12
  %11606 = load i32, ptr %3104, align 4, !tbaa !5
  %11607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11598, ptr noundef nonnull %.str.7.sink5627, i32 noundef %11599, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.3, i32 noundef 1041, ptr noundef %11601, ptr noundef %11603, ptr noundef %11605, i32 noundef %11606) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11608:                                            ; preds = %11572
  %11609 = load i32, ptr @test_count, align 4, !tbaa !5
  %11610 = add nsw i32 %11609, 1
  store i32 %11610, ptr @test_count, align 4, !tbaa !5
  %11611 = load ptr, ptr %75, align 8, !tbaa !9
  %11612 = getelementptr inbounds i8, ptr %11611, i64 8
  %11613 = load ptr, ptr %11612, align 8, !tbaa !24
  %11614 = getelementptr inbounds i8, ptr %11613, i64 8
  %11615 = load ptr, ptr %11614, align 8, !tbaa !9
  %11616 = getelementptr inbounds i8, ptr %11615, i64 16
  %11617 = load i8, ptr %11616, align 8, !tbaa !30
  %11618 = lshr i8 %11617, 1
  %11619 = zext nneg i8 %11618 to i32
  %11620 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %74, i32 noundef %11619) #12
  %11621 = icmp eq i32 %11620, -1
  br i1 %11621, label %11622, label %11644

11622:                                            ; preds = %11608
  %11623 = load i32, ptr %3104, align 4, !tbaa !5
  %11624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11625 = call i32 @s2n_print_stacktrace(ptr noundef %11624) #12
  %11626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11627 = trunc nuw i8 %11626 to i1
  br i1 %11627, label %11628, label %11632

11628:                                            ; preds = %11622
  %11629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11630 = call i32 @fileno(ptr noundef %11629) #12
  %11631 = call i32 @isatty(i32 noundef %11630) #12
  %.not1402 = icmp eq i32 %11631, 0
  br i1 %.not1402, label %11632, label %11633

11632:                                            ; preds = %11628, %11622
  br label %11633

11633:                                            ; preds = %11628, %11632
  %.str.7.sink5636 = phi ptr [ @.str.7, %11632 ], [ @.str.4, %11628 ]
  store i32 %11623, ptr %3104, align 4, !tbaa !5
  %11634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11635 = load i32, ptr @test_count, align 4, !tbaa !5
  %11636 = load i32, ptr %3050, align 4, !tbaa !5
  %11637 = call ptr @s2n_strerror(i32 noundef %11636, ptr noundef nonnull @.str.6) #12
  %11638 = load i32, ptr %3050, align 4, !tbaa !5
  %11639 = call ptr @s2n_strerror_debug(i32 noundef %11638, ptr noundef nonnull @.str.6) #12
  %11640 = load i32, ptr %3104, align 4, !tbaa !5
  %11641 = call ptr @strerror(i32 noundef %11640) #12
  %11642 = load i32, ptr %3104, align 4, !tbaa !5
  %11643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11634, ptr noundef nonnull %.str.7.sink5636, i32 noundef %11635, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.3, i32 noundef 1042, ptr noundef %11637, ptr noundef %11639, ptr noundef %11641, i32 noundef %11642) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11644:                                            ; preds = %11608
  %11645 = load i32, ptr @test_count, align 4, !tbaa !5
  %11646 = add nsw i32 %11645, 1
  store i32 %11646, ptr @test_count, align 4, !tbaa !5
  %11647 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %77) #12
  %11648 = icmp eq i32 %11647, -1
  br i1 %11648, label %11649, label %11671

11649:                                            ; preds = %11644
  %11650 = load i32, ptr %3104, align 4, !tbaa !5
  %11651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11652 = call i32 @s2n_print_stacktrace(ptr noundef %11651) #12
  %11653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11654 = trunc nuw i8 %11653 to i1
  br i1 %11654, label %11655, label %11659

11655:                                            ; preds = %11649
  %11656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11657 = call i32 @fileno(ptr noundef %11656) #12
  %11658 = call i32 @isatty(i32 noundef %11657) #12
  %.not1401 = icmp eq i32 %11658, 0
  br i1 %.not1401, label %11659, label %11660

11659:                                            ; preds = %11655, %11649
  br label %11660

11660:                                            ; preds = %11655, %11659
  %.str.7.sink5645 = phi ptr [ @.str.7, %11659 ], [ @.str.4, %11655 ]
  store i32 %11650, ptr %3104, align 4, !tbaa !5
  %11661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11662 = load i32, ptr @test_count, align 4, !tbaa !5
  %11663 = load i32, ptr %3050, align 4, !tbaa !5
  %11664 = call ptr @s2n_strerror(i32 noundef %11663, ptr noundef nonnull @.str.6) #12
  %11665 = load i32, ptr %3050, align 4, !tbaa !5
  %11666 = call ptr @s2n_strerror_debug(i32 noundef %11665, ptr noundef nonnull @.str.6) #12
  %11667 = load i32, ptr %3104, align 4, !tbaa !5
  %11668 = call ptr @strerror(i32 noundef %11667) #12
  %11669 = load i32, ptr %3104, align 4, !tbaa !5
  %11670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11661, ptr noundef nonnull %.str.7.sink5645, i32 noundef %11662, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.3, i32 noundef 1044, ptr noundef %11664, ptr noundef %11666, ptr noundef %11668, i32 noundef %11669) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11671:                                            ; preds = %11644
  %11672 = load i32, ptr @test_count, align 4, !tbaa !5
  %11673 = add nsw i32 %11672, 1
  store i32 %11673, ptr @test_count, align 4, !tbaa !5
  %11674 = call i32 %2660(ptr noundef nonnull %11298, ptr noundef nonnull %74) #12
  %11675 = icmp eq i32 %11674, -1
  br i1 %11675, label %11676, label %11698

11676:                                            ; preds = %11671
  %11677 = load i32, ptr %3104, align 4, !tbaa !5
  %11678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11679 = call i32 @s2n_print_stacktrace(ptr noundef %11678) #12
  %11680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11681 = trunc nuw i8 %11680 to i1
  br i1 %11681, label %11682, label %11686

11682:                                            ; preds = %11676
  %11683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11684 = call i32 @fileno(ptr noundef %11683) #12
  %11685 = call i32 @isatty(i32 noundef %11684) #12
  %.not1400 = icmp eq i32 %11685, 0
  br i1 %.not1400, label %11686, label %11687

11686:                                            ; preds = %11682, %11676
  br label %11687

11687:                                            ; preds = %11682, %11686
  %.str.7.sink5654 = phi ptr [ @.str.7, %11686 ], [ @.str.4, %11682 ]
  store i32 %11677, ptr %3104, align 4, !tbaa !5
  %11688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11689 = load i32, ptr @test_count, align 4, !tbaa !5
  %11690 = load i32, ptr %3050, align 4, !tbaa !5
  %11691 = call ptr @s2n_strerror(i32 noundef %11690, ptr noundef nonnull @.str.6) #12
  %11692 = load i32, ptr %3050, align 4, !tbaa !5
  %11693 = call ptr @s2n_strerror_debug(i32 noundef %11692, ptr noundef nonnull @.str.6) #12
  %11694 = load i32, ptr %3104, align 4, !tbaa !5
  %11695 = call ptr @strerror(i32 noundef %11694) #12
  %11696 = load i32, ptr %3104, align 4, !tbaa !5
  %11697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11688, ptr noundef nonnull %.str.7.sink5654, i32 noundef %11689, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.3, i32 noundef 1046, ptr noundef %11691, ptr noundef %11693, ptr noundef %11695, i32 noundef %11696) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11698:                                            ; preds = %11671
  %11699 = load i32, ptr @test_count, align 4, !tbaa !5
  %11700 = add nsw i32 %11699, 1
  store i32 %11700, ptr @test_count, align 4, !tbaa !5
  %11701 = getelementptr inbounds i8, ptr %74, i64 28
  %11702 = load i32, ptr %11701, align 4, !tbaa !18
  %11703 = getelementptr inbounds i8, ptr %74, i64 24
  %11704 = load i32, ptr %11703, align 8, !tbaa !21
  %11705 = icmp eq i32 %11702, %11704
  br i1 %11705, label %11728, label %11706

11706:                                            ; preds = %11698
  %11707 = load i32, ptr %3104, align 4, !tbaa !5
  %11708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11709 = call i32 @s2n_print_stacktrace(ptr noundef %11708) #12
  %11710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11711 = trunc nuw i8 %11710 to i1
  br i1 %11711, label %11712, label %11716

11712:                                            ; preds = %11706
  %11713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11714 = call i32 @fileno(ptr noundef %11713) #12
  %11715 = call i32 @isatty(i32 noundef %11714) #12
  %.not1367 = icmp eq i32 %11715, 0
  br i1 %.not1367, label %11716, label %11717

11716:                                            ; preds = %11712, %11706
  br label %11717

11717:                                            ; preds = %11712, %11716
  %.str.7.sink5663 = phi ptr [ @.str.7, %11716 ], [ @.str.4, %11712 ]
  store i32 %11707, ptr %3104, align 4, !tbaa !5
  %11718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11719 = load i32, ptr @test_count, align 4, !tbaa !5
  %11720 = load i32, ptr %3050, align 4, !tbaa !5
  %11721 = call ptr @s2n_strerror(i32 noundef %11720, ptr noundef nonnull @.str.6) #12
  %11722 = load i32, ptr %3050, align 4, !tbaa !5
  %11723 = call ptr @s2n_strerror_debug(i32 noundef %11722, ptr noundef nonnull @.str.6) #12
  %11724 = load i32, ptr %3104, align 4, !tbaa !5
  %11725 = call ptr @strerror(i32 noundef %11724) #12
  %11726 = load i32, ptr %3104, align 4, !tbaa !5
  %11727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11718, ptr noundef nonnull %.str.7.sink5663, i32 noundef %11719, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 1047, ptr noundef %11721, ptr noundef %11723, ptr noundef %11725, i32 noundef %11726) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11728:                                            ; preds = %11698
  %11729 = getelementptr inbounds i8, ptr %11298, i64 704
  %11730 = add nsw i32 %11699, 2
  store i32 %11730, ptr @test_count, align 4, !tbaa !5
  %11731 = load ptr, ptr %11729, align 8, !tbaa !22
  %11732 = load ptr, ptr %75, align 8, !tbaa !9
  %11733 = getelementptr inbounds i8, ptr %11732, i64 8
  %11734 = load ptr, ptr %11733, align 8, !tbaa !24
  %11735 = load ptr, ptr %11734, align 8, !tbaa !9
  %11736 = icmp eq ptr %11731, %11735
  br i1 %11736, label %11759, label %11737

11737:                                            ; preds = %11728
  %11738 = load i32, ptr %3104, align 4, !tbaa !5
  %11739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11740 = call i32 @s2n_print_stacktrace(ptr noundef %11739) #12
  %11741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11742 = trunc nuw i8 %11741 to i1
  br i1 %11742, label %11743, label %11747

11743:                                            ; preds = %11737
  %11744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11745 = call i32 @fileno(ptr noundef %11744) #12
  %11746 = call i32 @isatty(i32 noundef %11745) #12
  %.not1368 = icmp eq i32 %11746, 0
  br i1 %.not1368, label %11747, label %11748

11747:                                            ; preds = %11743, %11737
  br label %11748

11748:                                            ; preds = %11743, %11747
  %.str.7.sink5672 = phi ptr [ @.str.7, %11747 ], [ @.str.4, %11743 ]
  store i32 %11738, ptr %3104, align 4, !tbaa !5
  %11749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11750 = load i32, ptr @test_count, align 4, !tbaa !5
  %11751 = load i32, ptr %3050, align 4, !tbaa !5
  %11752 = call ptr @s2n_strerror(i32 noundef %11751, ptr noundef nonnull @.str.6) #12
  %11753 = load i32, ptr %3050, align 4, !tbaa !5
  %11754 = call ptr @s2n_strerror_debug(i32 noundef %11753, ptr noundef nonnull @.str.6) #12
  %11755 = load i32, ptr %3104, align 4, !tbaa !5
  %11756 = call ptr @strerror(i32 noundef %11755) #12
  %11757 = load i32, ptr %3104, align 4, !tbaa !5
  %11758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11749, ptr noundef nonnull %.str.7.sink5672, i32 noundef %11750, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.3, i32 noundef 1051, ptr noundef %11752, ptr noundef %11754, ptr noundef %11756, i32 noundef %11757) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11759:                                            ; preds = %11728
  %11760 = add nsw i32 %11699, 3
  store i32 %11760, ptr @test_count, align 4, !tbaa !5
  %11761 = getelementptr inbounds i8, ptr %11298, i64 712
  %11762 = load ptr, ptr %11761, align 8, !tbaa !26
  %11763 = icmp eq ptr %11762, null
  br i1 %11763, label %11764, label %11786

11764:                                            ; preds = %11759
  %11765 = load i32, ptr %3104, align 4, !tbaa !5
  %11766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11767 = call i32 @s2n_print_stacktrace(ptr noundef %11766) #12
  %11768 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11769 = trunc nuw i8 %11768 to i1
  br i1 %11769, label %11770, label %11774

11770:                                            ; preds = %11764
  %11771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11772 = call i32 @fileno(ptr noundef %11771) #12
  %11773 = call i32 @isatty(i32 noundef %11772) #12
  %.not1399 = icmp eq i32 %11773, 0
  br i1 %.not1399, label %11774, label %11775

11774:                                            ; preds = %11770, %11764
  br label %11775

11775:                                            ; preds = %11770, %11774
  %.str.7.sink5681 = phi ptr [ @.str.7, %11774 ], [ @.str.4, %11770 ]
  store i32 %11765, ptr %3104, align 4, !tbaa !5
  %11776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11777 = load i32, ptr @test_count, align 4, !tbaa !5
  %11778 = load i32, ptr %3050, align 4, !tbaa !5
  %11779 = call ptr @s2n_strerror(i32 noundef %11778, ptr noundef nonnull @.str.6) #12
  %11780 = load i32, ptr %3050, align 4, !tbaa !5
  %11781 = call ptr @s2n_strerror_debug(i32 noundef %11780, ptr noundef nonnull @.str.6) #12
  %11782 = load i32, ptr %3104, align 4, !tbaa !5
  %11783 = call ptr @strerror(i32 noundef %11782) #12
  %11784 = load i32, ptr %3104, align 4, !tbaa !5
  %11785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11776, ptr noundef nonnull %.str.7.sink5681, i32 noundef %11777, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.3, i32 noundef 1052, ptr noundef %11779, ptr noundef %11781, ptr noundef %11783, i32 noundef %11784) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11786:                                            ; preds = %11759
  %11787 = add nsw i32 %11699, 4
  store i32 %11787, ptr @test_count, align 4, !tbaa !5
  %11788 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %11729, ptr noundef nonnull %76) #12
  %.not1369 = icmp eq i32 %11788, 0
  br i1 %.not1369, label %11793, label %.preheader.preheader

.preheader.preheader:                             ; preds = %11786
  %11789 = load i32, ptr @test_count, align 4, !tbaa !5
  %11790 = add nsw i32 %11789, 1
  store i32 %11790, ptr @test_count, align 4, !tbaa !5
  %11791 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %76) #12
  %11792 = icmp eq i32 %11791, -1
  br i1 %11792, label %11824, label %.preheader.1

11793:                                            ; preds = %11786
  %11794 = load i32, ptr %3104, align 4, !tbaa !5
  %11795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11796 = call i32 @s2n_print_stacktrace(ptr noundef %11795) #12
  %11797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11798 = trunc nuw i8 %11797 to i1
  br i1 %11798, label %11799, label %11803

11799:                                            ; preds = %11793
  %11800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11801 = call i32 @fileno(ptr noundef %11800) #12
  %11802 = call i32 @isatty(i32 noundef %11801) #12
  %.not1370 = icmp eq i32 %11802, 0
  br i1 %.not1370, label %11803, label %11804

11803:                                            ; preds = %11799, %11793
  br label %11804

11804:                                            ; preds = %11799, %11803
  %.str.7.sink5690 = phi ptr [ @.str.7, %11803 ], [ @.str.4, %11799 ]
  store i32 %11794, ptr %3104, align 4, !tbaa !5
  %11805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11806 = load i32, ptr @test_count, align 4, !tbaa !5
  %11807 = load i32, ptr %3050, align 4, !tbaa !5
  %11808 = call ptr @s2n_strerror(i32 noundef %11807, ptr noundef nonnull @.str.6) #12
  %11809 = load i32, ptr %3050, align 4, !tbaa !5
  %11810 = call ptr @s2n_strerror_debug(i32 noundef %11809, ptr noundef nonnull @.str.6) #12
  %11811 = load i32, ptr %3104, align 4, !tbaa !5
  %11812 = call ptr @strerror(i32 noundef %11811) #12
  %11813 = load i32, ptr %3104, align 4, !tbaa !5
  %11814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11805, ptr noundef nonnull %.str.7.sink5690, i32 noundef %11806, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.3, i32 noundef 1053, ptr noundef %11808, ptr noundef %11810, ptr noundef %11812, i32 noundef %11813) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader.1:                                     ; preds = %.preheader.preheader
  %11815 = load i32, ptr @test_count, align 4, !tbaa !5
  %11816 = add nsw i32 %11815, 1
  store i32 %11816, ptr @test_count, align 4, !tbaa !5
  %11817 = call i32 @s2n_ecc_evp_params_free(ptr noundef nonnull %11489) #12
  %11818 = icmp eq i32 %11817, -1
  br i1 %11818, label %11824, label %11819

11819:                                            ; preds = %.preheader.1
  %11820 = load i32, ptr @test_count, align 4, !tbaa !5
  %11821 = add nsw i32 %11820, 1
  store i32 %11821, ptr @test_count, align 4, !tbaa !5
  %11822 = call i32 @s2n_stuffer_free(ptr noundef nonnull %74) #12
  %11823 = icmp eq i32 %11822, -1
  br i1 %11823, label %11846, label %11868

11824:                                            ; preds = %.preheader.1, %.preheader.preheader
  %11825 = load i32, ptr %3104, align 4, !tbaa !5
  %11826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11827 = call i32 @s2n_print_stacktrace(ptr noundef %11826) #12
  %11828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11829 = trunc nuw i8 %11828 to i1
  br i1 %11829, label %11830, label %11834

11830:                                            ; preds = %11824
  %11831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11832 = call i32 @fileno(ptr noundef %11831) #12
  %11833 = call i32 @isatty(i32 noundef %11832) #12
  %.not1398 = icmp eq i32 %11833, 0
  br i1 %.not1398, label %11834, label %11835

11834:                                            ; preds = %11830, %11824
  br label %11835

11835:                                            ; preds = %11830, %11834
  %.str.7.sink5699 = phi ptr [ @.str.7, %11834 ], [ @.str.4, %11830 ]
  store i32 %11825, ptr %3104, align 4, !tbaa !5
  %11836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11837 = load i32, ptr @test_count, align 4, !tbaa !5
  %11838 = load i32, ptr %3050, align 4, !tbaa !5
  %11839 = call ptr @s2n_strerror(i32 noundef %11838, ptr noundef nonnull @.str.6) #12
  %11840 = load i32, ptr %3050, align 4, !tbaa !5
  %11841 = call ptr @s2n_strerror_debug(i32 noundef %11840, ptr noundef nonnull @.str.6) #12
  %11842 = load i32, ptr %3104, align 4, !tbaa !5
  %11843 = call ptr @strerror(i32 noundef %11842) #12
  %11844 = load i32, ptr %3104, align 4, !tbaa !5
  %11845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11836, ptr noundef nonnull %.str.7.sink5699, i32 noundef %11837, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.3, i32 noundef 1056, ptr noundef %11839, ptr noundef %11841, ptr noundef %11843, i32 noundef %11844) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11846:                                            ; preds = %11819
  %11847 = load i32, ptr %3104, align 4, !tbaa !5
  %11848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11849 = call i32 @s2n_print_stacktrace(ptr noundef %11848) #12
  %11850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11851 = trunc nuw i8 %11850 to i1
  br i1 %11851, label %11852, label %11856

11852:                                            ; preds = %11846
  %11853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11854 = call i32 @fileno(ptr noundef %11853) #12
  %11855 = call i32 @isatty(i32 noundef %11854) #12
  %.not1397 = icmp eq i32 %11855, 0
  br i1 %.not1397, label %11856, label %11857

11856:                                            ; preds = %11852, %11846
  br label %11857

11857:                                            ; preds = %11852, %11856
  %.str.7.sink5708 = phi ptr [ @.str.7, %11856 ], [ @.str.4, %11852 ]
  store i32 %11847, ptr %3104, align 4, !tbaa !5
  %11858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11859 = load i32, ptr @test_count, align 4, !tbaa !5
  %11860 = load i32, ptr %3050, align 4, !tbaa !5
  %11861 = call ptr @s2n_strerror(i32 noundef %11860, ptr noundef nonnull @.str.6) #12
  %11862 = load i32, ptr %3050, align 4, !tbaa !5
  %11863 = call ptr @s2n_strerror_debug(i32 noundef %11862, ptr noundef nonnull @.str.6) #12
  %11864 = load i32, ptr %3104, align 4, !tbaa !5
  %11865 = call ptr @strerror(i32 noundef %11864) #12
  %11866 = load i32, ptr %3104, align 4, !tbaa !5
  %11867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11858, ptr noundef nonnull %.str.7.sink5708, i32 noundef %11859, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 1058, ptr noundef %11861, ptr noundef %11863, ptr noundef %11865, i32 noundef %11866) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11868:                                            ; preds = %11819
  %11869 = load i32, ptr @test_count, align 4, !tbaa !5
  %11870 = add nsw i32 %11869, 1
  store i32 %11870, ptr @test_count, align 4, !tbaa !5
  %11871 = call i32 @s2n_connection_free(ptr noundef nonnull %11298) #12
  %11872 = icmp eq i32 %11871, -1
  br i1 %11872, label %11873, label %11895

11873:                                            ; preds = %11868
  %11874 = load i32, ptr %3104, align 4, !tbaa !5
  %11875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11876 = call i32 @s2n_print_stacktrace(ptr noundef %11875) #12
  %11877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11878 = trunc nuw i8 %11877 to i1
  br i1 %11878, label %11879, label %11883

11879:                                            ; preds = %11873
  %11880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11881 = call i32 @fileno(ptr noundef %11880) #12
  %11882 = call i32 @isatty(i32 noundef %11881) #12
  %.not1396 = icmp eq i32 %11882, 0
  br i1 %.not1396, label %11883, label %11884

11883:                                            ; preds = %11879, %11873
  br label %11884

11884:                                            ; preds = %11879, %11883
  %.str.7.sink5717 = phi ptr [ @.str.7, %11883 ], [ @.str.4, %11879 ]
  store i32 %11874, ptr %3104, align 4, !tbaa !5
  %11885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11886 = load i32, ptr @test_count, align 4, !tbaa !5
  %11887 = load i32, ptr %3050, align 4, !tbaa !5
  %11888 = call ptr @s2n_strerror(i32 noundef %11887, ptr noundef nonnull @.str.6) #12
  %11889 = load i32, ptr %3050, align 4, !tbaa !5
  %11890 = call ptr @s2n_strerror_debug(i32 noundef %11889, ptr noundef nonnull @.str.6) #12
  %11891 = load i32, ptr %3104, align 4, !tbaa !5
  %11892 = call ptr @strerror(i32 noundef %11891) #12
  %11893 = load i32, ptr %3104, align 4, !tbaa !5
  %11894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11885, ptr noundef nonnull %.str.7.sink5717, i32 noundef %11886, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.3, i32 noundef 1059, ptr noundef %11888, ptr noundef %11890, ptr noundef %11892, i32 noundef %11893) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11895:                                            ; preds = %11868
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %74) #12
  %11896 = call i32 (...) @s2n_is_evp_apis_supported() #12
  %.not1371 = icmp eq i32 %11896, 0
  br i1 %.not1371, label %12415, label %11897

11897:                                            ; preds = %11895
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %78) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %78, i8 0, i64 40, i1 false)
  %11898 = load i32, ptr @test_count, align 4, !tbaa !5
  %11899 = add nsw i32 %11898, 1
  store i32 %11899, ptr @test_count, align 4, !tbaa !5
  %11900 = call ptr @s2n_config_new() #12
  %11901 = icmp eq ptr %11900, null
  br i1 %11901, label %11902, label %11924

11902:                                            ; preds = %11897
  %11903 = load i32, ptr %3104, align 4, !tbaa !5
  %11904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11905 = call i32 @s2n_print_stacktrace(ptr noundef %11904) #12
  %11906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11907 = trunc nuw i8 %11906 to i1
  br i1 %11907, label %11908, label %11912

11908:                                            ; preds = %11902
  %11909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11910 = call i32 @fileno(ptr noundef %11909) #12
  %11911 = call i32 @isatty(i32 noundef %11910) #12
  %.not1395 = icmp eq i32 %11911, 0
  br i1 %.not1395, label %11912, label %11913

11912:                                            ; preds = %11908, %11902
  br label %11913

11913:                                            ; preds = %11908, %11912
  %.str.7.sink5726 = phi ptr [ @.str.7, %11912 ], [ @.str.4, %11908 ]
  store i32 %11903, ptr %3104, align 4, !tbaa !5
  %11914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11915 = load i32, ptr @test_count, align 4, !tbaa !5
  %11916 = load i32, ptr %3050, align 4, !tbaa !5
  %11917 = call ptr @s2n_strerror(i32 noundef %11916, ptr noundef nonnull @.str.6) #12
  %11918 = load i32, ptr %3050, align 4, !tbaa !5
  %11919 = call ptr @s2n_strerror_debug(i32 noundef %11918, ptr noundef nonnull @.str.6) #12
  %11920 = load i32, ptr %3104, align 4, !tbaa !5
  %11921 = call ptr @strerror(i32 noundef %11920) #12
  %11922 = load i32, ptr %3104, align 4, !tbaa !5
  %11923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11914, ptr noundef nonnull %.str.7.sink5726, i32 noundef %11915, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.3, i32 noundef 1070, ptr noundef %11917, ptr noundef %11919, ptr noundef %11921, i32 noundef %11922) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11924:                                            ; preds = %11897
  %11925 = load i32, ptr @test_count, align 4, !tbaa !5
  %11926 = add nsw i32 %11925, 1
  store i32 %11926, ptr @test_count, align 4, !tbaa !5
  %11927 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %11928 = icmp eq ptr %11927, null
  br i1 %11928, label %11929, label %11951

11929:                                            ; preds = %11924
  %11930 = load i32, ptr %3104, align 4, !tbaa !5
  %11931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11932 = call i32 @s2n_print_stacktrace(ptr noundef %11931) #12
  %11933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11934 = trunc nuw i8 %11933 to i1
  br i1 %11934, label %11935, label %11939

11935:                                            ; preds = %11929
  %11936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11937 = call i32 @fileno(ptr noundef %11936) #12
  %11938 = call i32 @isatty(i32 noundef %11937) #12
  %.not1394 = icmp eq i32 %11938, 0
  br i1 %.not1394, label %11939, label %11940

11939:                                            ; preds = %11935, %11929
  br label %11940

11940:                                            ; preds = %11935, %11939
  %.str.7.sink5735 = phi ptr [ @.str.7, %11939 ], [ @.str.4, %11935 ]
  store i32 %11930, ptr %3104, align 4, !tbaa !5
  %11941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11942 = load i32, ptr @test_count, align 4, !tbaa !5
  %11943 = load i32, ptr %3050, align 4, !tbaa !5
  %11944 = call ptr @s2n_strerror(i32 noundef %11943, ptr noundef nonnull @.str.6) #12
  %11945 = load i32, ptr %3050, align 4, !tbaa !5
  %11946 = call ptr @s2n_strerror_debug(i32 noundef %11945, ptr noundef nonnull @.str.6) #12
  %11947 = load i32, ptr %3104, align 4, !tbaa !5
  %11948 = call ptr @strerror(i32 noundef %11947) #12
  %11949 = load i32, ptr %3104, align 4, !tbaa !5
  %11950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11941, ptr noundef nonnull %.str.7.sink5735, i32 noundef %11942, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.3, i32 noundef 1071, ptr noundef %11944, ptr noundef %11946, ptr noundef %11948, i32 noundef %11949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11951:                                            ; preds = %11924
  %11952 = load i32, ptr @test_count, align 4, !tbaa !5
  %11953 = add nsw i32 %11952, 1
  store i32 %11953, ptr @test_count, align 4, !tbaa !5
  %11954 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %11927, i8 noundef zeroext 34) #12
  %11955 = icmp eq i32 %11954, -1
  br i1 %11955, label %11956, label %11978

11956:                                            ; preds = %11951
  %11957 = load i32, ptr %3104, align 4, !tbaa !5
  %11958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11959 = call i32 @s2n_print_stacktrace(ptr noundef %11958) #12
  %11960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11961 = trunc nuw i8 %11960 to i1
  br i1 %11961, label %11962, label %11966

11962:                                            ; preds = %11956
  %11963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11964 = call i32 @fileno(ptr noundef %11963) #12
  %11965 = call i32 @isatty(i32 noundef %11964) #12
  %.not1393 = icmp eq i32 %11965, 0
  br i1 %.not1393, label %11966, label %11967

11966:                                            ; preds = %11962, %11956
  br label %11967

11967:                                            ; preds = %11962, %11966
  %.str.7.sink5744 = phi ptr [ @.str.7, %11966 ], [ @.str.4, %11962 ]
  store i32 %11957, ptr %3104, align 4, !tbaa !5
  %11968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11969 = load i32, ptr @test_count, align 4, !tbaa !5
  %11970 = load i32, ptr %3050, align 4, !tbaa !5
  %11971 = call ptr @s2n_strerror(i32 noundef %11970, ptr noundef nonnull @.str.6) #12
  %11972 = load i32, ptr %3050, align 4, !tbaa !5
  %11973 = call ptr @s2n_strerror_debug(i32 noundef %11972, ptr noundef nonnull @.str.6) #12
  %11974 = load i32, ptr %3104, align 4, !tbaa !5
  %11975 = call ptr @strerror(i32 noundef %11974) #12
  %11976 = load i32, ptr %3104, align 4, !tbaa !5
  %11977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11968, ptr noundef nonnull %.str.7.sink5744, i32 noundef %11969, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.3, i32 noundef 1072, ptr noundef %11971, ptr noundef %11973, ptr noundef %11975, i32 noundef %11976) #14
  call void @exit(i32 noundef 1) #15
  unreachable

11978:                                            ; preds = %11951
  %11979 = load i32, ptr @test_count, align 4, !tbaa !5
  %11980 = add nsw i32 %11979, 1
  store i32 %11980, ptr @test_count, align 4, !tbaa !5
  %11981 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %11927) #12
  %11982 = call zeroext i1 @s2n_result_is_ok(i32 %11981)
  br i1 %11982, label %12005, label %11983

11983:                                            ; preds = %11978
  %11984 = load i32, ptr %3104, align 4, !tbaa !5
  %11985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11986 = call i32 @s2n_print_stacktrace(ptr noundef %11985) #12
  %11987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11988 = trunc nuw i8 %11987 to i1
  br i1 %11988, label %11989, label %11993

11989:                                            ; preds = %11983
  %11990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11991 = call i32 @fileno(ptr noundef %11990) #12
  %11992 = call i32 @isatty(i32 noundef %11991) #12
  %.not1372 = icmp eq i32 %11992, 0
  br i1 %.not1372, label %11993, label %11994

11993:                                            ; preds = %11989, %11983
  br label %11994

11994:                                            ; preds = %11989, %11993
  %.str.7.sink5753 = phi ptr [ @.str.7, %11993 ], [ @.str.4, %11989 ]
  store i32 %11984, ptr %3104, align 4, !tbaa !5
  %11995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11996 = load i32, ptr @test_count, align 4, !tbaa !5
  %11997 = load i32, ptr %3050, align 4, !tbaa !5
  %11998 = call ptr @s2n_strerror(i32 noundef %11997, ptr noundef nonnull @.str.6) #12
  %11999 = load i32, ptr %3050, align 4, !tbaa !5
  %12000 = call ptr @s2n_strerror_debug(i32 noundef %11999, ptr noundef nonnull @.str.6) #12
  %12001 = load i32, ptr %3104, align 4, !tbaa !5
  %12002 = call ptr @strerror(i32 noundef %12001) #12
  %12003 = load i32, ptr %3104, align 4, !tbaa !5
  %12004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11995, ptr noundef nonnull %.str.7.sink5753, i32 noundef %11996, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.3, i32 noundef 1073, ptr noundef %11998, ptr noundef %12000, ptr noundef %12002, i32 noundef %12003) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12005:                                            ; preds = %11978
  %12006 = load i32, ptr @test_count, align 4, !tbaa !5
  %12007 = add nsw i32 %12006, 1
  store i32 %12007, ptr @test_count, align 4, !tbaa !5
  %12008 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %78, i32 noundef 0) #12
  %12009 = icmp eq i32 %12008, -1
  br i1 %12009, label %12010, label %12032

12010:                                            ; preds = %12005
  %12011 = load i32, ptr %3104, align 4, !tbaa !5
  %12012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12013 = call i32 @s2n_print_stacktrace(ptr noundef %12012) #12
  %12014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12015 = trunc nuw i8 %12014 to i1
  br i1 %12015, label %12016, label %12020

12016:                                            ; preds = %12010
  %12017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12018 = call i32 @fileno(ptr noundef %12017) #12
  %12019 = call i32 @isatty(i32 noundef %12018) #12
  %.not1392 = icmp eq i32 %12019, 0
  br i1 %.not1392, label %12020, label %12021

12020:                                            ; preds = %12016, %12010
  br label %12021

12021:                                            ; preds = %12016, %12020
  %.str.7.sink5762 = phi ptr [ @.str.7, %12020 ], [ @.str.4, %12016 ]
  store i32 %12011, ptr %3104, align 4, !tbaa !5
  %12022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12023 = load i32, ptr @test_count, align 4, !tbaa !5
  %12024 = load i32, ptr %3050, align 4, !tbaa !5
  %12025 = call ptr @s2n_strerror(i32 noundef %12024, ptr noundef nonnull @.str.6) #12
  %12026 = load i32, ptr %3050, align 4, !tbaa !5
  %12027 = call ptr @s2n_strerror_debug(i32 noundef %12026, ptr noundef nonnull @.str.6) #12
  %12028 = load i32, ptr %3104, align 4, !tbaa !5
  %12029 = call ptr @strerror(i32 noundef %12028) #12
  %12030 = load i32, ptr %3104, align 4, !tbaa !5
  %12031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12022, ptr noundef nonnull %.str.7.sink5762, i32 noundef %12023, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.3, i32 noundef 1074, ptr noundef %12025, ptr noundef %12027, ptr noundef %12029, i32 noundef %12030) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12032:                                            ; preds = %12005
  %12033 = load i32, ptr @test_count, align 4, !tbaa !5
  %12034 = add nsw i32 %12033, 1
  store i32 %12034, ptr @test_count, align 4, !tbaa !5
  %12035 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %11900, ptr noundef nonnull @.str.34) #12
  %12036 = icmp eq i32 %12035, -1
  br i1 %12036, label %12037, label %12059

12037:                                            ; preds = %12032
  %12038 = load i32, ptr %3104, align 4, !tbaa !5
  %12039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12040 = call i32 @s2n_print_stacktrace(ptr noundef %12039) #12
  %12041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12042 = trunc nuw i8 %12041 to i1
  br i1 %12042, label %12043, label %12047

12043:                                            ; preds = %12037
  %12044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12045 = call i32 @fileno(ptr noundef %12044) #12
  %12046 = call i32 @isatty(i32 noundef %12045) #12
  %.not1391 = icmp eq i32 %12046, 0
  br i1 %.not1391, label %12047, label %12048

12047:                                            ; preds = %12043, %12037
  br label %12048

12048:                                            ; preds = %12043, %12047
  %.str.7.sink5771 = phi ptr [ @.str.7, %12047 ], [ @.str.4, %12043 ]
  store i32 %12038, ptr %3104, align 4, !tbaa !5
  %12049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12050 = load i32, ptr @test_count, align 4, !tbaa !5
  %12051 = load i32, ptr %3050, align 4, !tbaa !5
  %12052 = call ptr @s2n_strerror(i32 noundef %12051, ptr noundef nonnull @.str.6) #12
  %12053 = load i32, ptr %3050, align 4, !tbaa !5
  %12054 = call ptr @s2n_strerror_debug(i32 noundef %12053, ptr noundef nonnull @.str.6) #12
  %12055 = load i32, ptr %3104, align 4, !tbaa !5
  %12056 = call ptr @strerror(i32 noundef %12055) #12
  %12057 = load i32, ptr %3104, align 4, !tbaa !5
  %12058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12049, ptr noundef nonnull %.str.7.sink5771, i32 noundef %12050, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.3, i32 noundef 1077, ptr noundef %12052, ptr noundef %12054, ptr noundef %12056, i32 noundef %12057) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12059:                                            ; preds = %12032
  %12060 = load i32, ptr @test_count, align 4, !tbaa !5
  %12061 = add nsw i32 %12060, 1
  store i32 %12061, ptr @test_count, align 4, !tbaa !5
  %12062 = call i32 @s2n_connection_set_config(ptr noundef nonnull %11927, ptr noundef nonnull %11900) #12
  %12063 = icmp eq i32 %12062, -1
  br i1 %12063, label %12064, label %12086

12064:                                            ; preds = %12059
  %12065 = load i32, ptr %3104, align 4, !tbaa !5
  %12066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12067 = call i32 @s2n_print_stacktrace(ptr noundef %12066) #12
  %12068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12069 = trunc nuw i8 %12068 to i1
  br i1 %12069, label %12070, label %12074

12070:                                            ; preds = %12064
  %12071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12072 = call i32 @fileno(ptr noundef %12071) #12
  %12073 = call i32 @isatty(i32 noundef %12072) #12
  %.not1390 = icmp eq i32 %12073, 0
  br i1 %.not1390, label %12074, label %12075

12074:                                            ; preds = %12070, %12064
  br label %12075

12075:                                            ; preds = %12070, %12074
  %.str.7.sink5780 = phi ptr [ @.str.7, %12074 ], [ @.str.4, %12070 ]
  store i32 %12065, ptr %3104, align 4, !tbaa !5
  %12076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12077 = load i32, ptr @test_count, align 4, !tbaa !5
  %12078 = load i32, ptr %3050, align 4, !tbaa !5
  %12079 = call ptr @s2n_strerror(i32 noundef %12078, ptr noundef nonnull @.str.6) #12
  %12080 = load i32, ptr %3050, align 4, !tbaa !5
  %12081 = call ptr @s2n_strerror_debug(i32 noundef %12080, ptr noundef nonnull @.str.6) #12
  %12082 = load i32, ptr %3104, align 4, !tbaa !5
  %12083 = call ptr @strerror(i32 noundef %12082) #12
  %12084 = load i32, ptr %3104, align 4, !tbaa !5
  %12085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12076, ptr noundef nonnull %.str.7.sink5780, i32 noundef %12077, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.3, i32 noundef 1078, ptr noundef %12079, ptr noundef %12081, ptr noundef %12083, i32 noundef %12084) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12086:                                            ; preds = %12059
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #12
  store ptr null, ptr %79, align 8, !tbaa !9
  %12087 = load i32, ptr @test_count, align 4, !tbaa !5
  %12088 = add nsw i32 %12087, 1
  store i32 %12088, ptr @test_count, align 4, !tbaa !5
  %12089 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %11927, ptr noundef nonnull %79) #12
  %12090 = icmp eq i32 %12089, -1
  br i1 %12090, label %12091, label %12113

12091:                                            ; preds = %12086
  %12092 = load i32, ptr %3104, align 4, !tbaa !5
  %12093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12094 = call i32 @s2n_print_stacktrace(ptr noundef %12093) #12
  %12095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12096 = trunc nuw i8 %12095 to i1
  br i1 %12096, label %12097, label %12101

12097:                                            ; preds = %12091
  %12098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12099 = call i32 @fileno(ptr noundef %12098) #12
  %12100 = call i32 @isatty(i32 noundef %12099) #12
  %.not1389 = icmp eq i32 %12100, 0
  br i1 %.not1389, label %12101, label %12102

12101:                                            ; preds = %12097, %12091
  br label %12102

12102:                                            ; preds = %12097, %12101
  %.str.7.sink5789 = phi ptr [ @.str.7, %12101 ], [ @.str.4, %12097 ]
  store i32 %12092, ptr %3104, align 4, !tbaa !5
  %12103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12104 = load i32, ptr @test_count, align 4, !tbaa !5
  %12105 = load i32, ptr %3050, align 4, !tbaa !5
  %12106 = call ptr @s2n_strerror(i32 noundef %12105, ptr noundef nonnull @.str.6) #12
  %12107 = load i32, ptr %3050, align 4, !tbaa !5
  %12108 = call ptr @s2n_strerror_debug(i32 noundef %12107, ptr noundef nonnull @.str.6) #12
  %12109 = load i32, ptr %3104, align 4, !tbaa !5
  %12110 = call ptr @strerror(i32 noundef %12109) #12
  %12111 = load i32, ptr %3104, align 4, !tbaa !5
  %12112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12103, ptr noundef nonnull %.str.7.sink5789, i32 noundef %12104, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.3, i32 noundef 1081, ptr noundef %12106, ptr noundef %12108, ptr noundef %12110, i32 noundef %12111) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12113:                                            ; preds = %12086
  %12114 = load i32, ptr @test_count, align 4, !tbaa !5
  %12115 = add nsw i32 %12114, 1
  store i32 %12115, ptr @test_count, align 4, !tbaa !5
  %12116 = load ptr, ptr %79, align 8, !tbaa !9
  %12117 = icmp eq ptr %12116, null
  br i1 %12117, label %12118, label %12140

12118:                                            ; preds = %12113
  %12119 = load i32, ptr %3104, align 4, !tbaa !5
  %12120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12121 = call i32 @s2n_print_stacktrace(ptr noundef %12120) #12
  %12122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12123 = trunc nuw i8 %12122 to i1
  br i1 %12123, label %12124, label %12128

12124:                                            ; preds = %12118
  %12125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12126 = call i32 @fileno(ptr noundef %12125) #12
  %12127 = call i32 @isatty(i32 noundef %12126) #12
  %.not1388 = icmp eq i32 %12127, 0
  br i1 %.not1388, label %12128, label %12129

12128:                                            ; preds = %12124, %12118
  br label %12129

12129:                                            ; preds = %12124, %12128
  %.str.7.sink5798 = phi ptr [ @.str.7, %12128 ], [ @.str.4, %12124 ]
  store i32 %12119, ptr %3104, align 4, !tbaa !5
  %12130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12131 = load i32, ptr @test_count, align 4, !tbaa !5
  %12132 = load i32, ptr %3050, align 4, !tbaa !5
  %12133 = call ptr @s2n_strerror(i32 noundef %12132, ptr noundef nonnull @.str.6) #12
  %12134 = load i32, ptr %3050, align 4, !tbaa !5
  %12135 = call ptr @s2n_strerror_debug(i32 noundef %12134, ptr noundef nonnull @.str.6) #12
  %12136 = load i32, ptr %3104, align 4, !tbaa !5
  %12137 = call ptr @strerror(i32 noundef %12136) #12
  %12138 = load i32, ptr %3104, align 4, !tbaa !5
  %12139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12130, ptr noundef nonnull %.str.7.sink5798, i32 noundef %12131, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.3, i32 noundef 1082, ptr noundef %12133, ptr noundef %12135, ptr noundef %12137, i32 noundef %12138) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12140:                                            ; preds = %12113
  %12141 = add nsw i32 %12114, 2
  store i32 %12141, ptr @test_count, align 4, !tbaa !5
  %12142 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %78, i32 noundef 2) #12
  %12143 = icmp eq i32 %12142, -1
  br i1 %12143, label %12144, label %12166

12144:                                            ; preds = %12140
  %12145 = load i32, ptr %3104, align 4, !tbaa !5
  %12146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12147 = call i32 @s2n_print_stacktrace(ptr noundef %12146) #12
  %12148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12149 = trunc nuw i8 %12148 to i1
  br i1 %12149, label %12150, label %12154

12150:                                            ; preds = %12144
  %12151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12152 = call i32 @fileno(ptr noundef %12151) #12
  %12153 = call i32 @isatty(i32 noundef %12152) #12
  %.not1387 = icmp eq i32 %12153, 0
  br i1 %.not1387, label %12154, label %12155

12154:                                            ; preds = %12150, %12144
  br label %12155

12155:                                            ; preds = %12150, %12154
  %.str.7.sink5807 = phi ptr [ @.str.7, %12154 ], [ @.str.4, %12150 ]
  store i32 %12145, ptr %3104, align 4, !tbaa !5
  %12156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12157 = load i32, ptr @test_count, align 4, !tbaa !5
  %12158 = load i32, ptr %3050, align 4, !tbaa !5
  %12159 = call ptr @s2n_strerror(i32 noundef %12158, ptr noundef nonnull @.str.6) #12
  %12160 = load i32, ptr %3050, align 4, !tbaa !5
  %12161 = call ptr @s2n_strerror_debug(i32 noundef %12160, ptr noundef nonnull @.str.6) #12
  %12162 = load i32, ptr %3104, align 4, !tbaa !5
  %12163 = call ptr @strerror(i32 noundef %12162) #12
  %12164 = load i32, ptr %3104, align 4, !tbaa !5
  %12165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12156, ptr noundef nonnull %.str.7.sink5807, i32 noundef %12157, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.3, i32 noundef 1087, ptr noundef %12159, ptr noundef %12161, ptr noundef %12163, i32 noundef %12164) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12166:                                            ; preds = %12140
  %12167 = load i32, ptr @test_count, align 4, !tbaa !5
  %12168 = add nsw i32 %12167, 1
  store i32 %12168, ptr @test_count, align 4, !tbaa !5
  %12169 = load i16, ptr @s2n_ecc_curve_x25519, align 8, !tbaa !28
  %12170 = load i8, ptr getelementptr inbounds (i8, ptr @s2n_ecc_curve_x25519, i64 16), align 8, !tbaa !30
  %12171 = zext i8 %12170 to i16
  %12172 = call i32 @s2n_write_key_share(ptr noundef nonnull %78, i16 noundef zeroext %12169, i16 noundef zeroext %12171, ptr noundef nonnull @s2n_ecc_curve_x25519)
  %12173 = icmp eq i32 %12172, -1
  br i1 %12173, label %12174, label %12196

12174:                                            ; preds = %12166
  %12175 = load i32, ptr %3104, align 4, !tbaa !5
  %12176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12177 = call i32 @s2n_print_stacktrace(ptr noundef %12176) #12
  %12178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12179 = trunc nuw i8 %12178 to i1
  br i1 %12179, label %12180, label %12184

12180:                                            ; preds = %12174
  %12181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12182 = call i32 @fileno(ptr noundef %12181) #12
  %12183 = call i32 @isatty(i32 noundef %12182) #12
  %.not1386 = icmp eq i32 %12183, 0
  br i1 %.not1386, label %12184, label %12185

12184:                                            ; preds = %12180, %12174
  br label %12185

12185:                                            ; preds = %12180, %12184
  %.str.7.sink5816 = phi ptr [ @.str.7, %12184 ], [ @.str.4, %12180 ]
  store i32 %12175, ptr %3104, align 4, !tbaa !5
  %12186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12187 = load i32, ptr @test_count, align 4, !tbaa !5
  %12188 = load i32, ptr %3050, align 4, !tbaa !5
  %12189 = call ptr @s2n_strerror(i32 noundef %12188, ptr noundef nonnull @.str.6) #12
  %12190 = load i32, ptr %3050, align 4, !tbaa !5
  %12191 = call ptr @s2n_strerror_debug(i32 noundef %12190, ptr noundef nonnull @.str.6) #12
  %12192 = load i32, ptr %3104, align 4, !tbaa !5
  %12193 = call ptr @strerror(i32 noundef %12192) #12
  %12194 = load i32, ptr %3104, align 4, !tbaa !5
  %12195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12186, ptr noundef nonnull %.str.7.sink5816, i32 noundef %12187, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.3, i32 noundef 1090, ptr noundef %12189, ptr noundef %12191, ptr noundef %12193, i32 noundef %12194) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12196:                                            ; preds = %12166
  %12197 = load i32, ptr @test_count, align 4, !tbaa !5
  %12198 = add nsw i32 %12197, 1
  store i32 %12198, ptr @test_count, align 4, !tbaa !5
  %12199 = call i32 @s2n_test_rewrite_length(ptr noundef nonnull %78)
  %12200 = icmp eq i32 %12199, -1
  br i1 %12200, label %12201, label %12223

12201:                                            ; preds = %12196
  %12202 = load i32, ptr %3104, align 4, !tbaa !5
  %12203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12204 = call i32 @s2n_print_stacktrace(ptr noundef %12203) #12
  %12205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12206 = trunc nuw i8 %12205 to i1
  br i1 %12206, label %12207, label %12211

12207:                                            ; preds = %12201
  %12208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12209 = call i32 @fileno(ptr noundef %12208) #12
  %12210 = call i32 @isatty(i32 noundef %12209) #12
  %.not1385 = icmp eq i32 %12210, 0
  br i1 %.not1385, label %12211, label %12212

12211:                                            ; preds = %12207, %12201
  br label %12212

12212:                                            ; preds = %12207, %12211
  %.str.7.sink5825 = phi ptr [ @.str.7, %12211 ], [ @.str.4, %12207 ]
  store i32 %12202, ptr %3104, align 4, !tbaa !5
  %12213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12214 = load i32, ptr @test_count, align 4, !tbaa !5
  %12215 = load i32, ptr %3050, align 4, !tbaa !5
  %12216 = call ptr @s2n_strerror(i32 noundef %12215, ptr noundef nonnull @.str.6) #12
  %12217 = load i32, ptr %3050, align 4, !tbaa !5
  %12218 = call ptr @s2n_strerror_debug(i32 noundef %12217, ptr noundef nonnull @.str.6) #12
  %12219 = load i32, ptr %3104, align 4, !tbaa !5
  %12220 = call ptr @strerror(i32 noundef %12219) #12
  %12221 = load i32, ptr %3104, align 4, !tbaa !5
  %12222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12213, ptr noundef nonnull %.str.7.sink5825, i32 noundef %12214, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.3, i32 noundef 1092, ptr noundef %12216, ptr noundef %12218, ptr noundef %12220, i32 noundef %12221) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12223:                                            ; preds = %12196
  %12224 = load i32, ptr @test_count, align 4, !tbaa !5
  %12225 = add nsw i32 %12224, 1
  store i32 %12225, ptr @test_count, align 4, !tbaa !5
  %12226 = call i32 %2660(ptr noundef nonnull %11927, ptr noundef nonnull %78) #12
  %12227 = icmp eq i32 %12226, -1
  br i1 %12227, label %12228, label %12250

12228:                                            ; preds = %12223
  %12229 = load i32, ptr %3104, align 4, !tbaa !5
  %12230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12231 = call i32 @s2n_print_stacktrace(ptr noundef %12230) #12
  %12232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12233 = trunc nuw i8 %12232 to i1
  br i1 %12233, label %12234, label %12238

12234:                                            ; preds = %12228
  %12235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12236 = call i32 @fileno(ptr noundef %12235) #12
  %12237 = call i32 @isatty(i32 noundef %12236) #12
  %.not1384 = icmp eq i32 %12237, 0
  br i1 %.not1384, label %12238, label %12239

12238:                                            ; preds = %12234, %12228
  br label %12239

12239:                                            ; preds = %12234, %12238
  %.str.7.sink5834 = phi ptr [ @.str.7, %12238 ], [ @.str.4, %12234 ]
  store i32 %12229, ptr %3104, align 4, !tbaa !5
  %12240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12241 = load i32, ptr @test_count, align 4, !tbaa !5
  %12242 = load i32, ptr %3050, align 4, !tbaa !5
  %12243 = call ptr @s2n_strerror(i32 noundef %12242, ptr noundef nonnull @.str.6) #12
  %12244 = load i32, ptr %3050, align 4, !tbaa !5
  %12245 = call ptr @s2n_strerror_debug(i32 noundef %12244, ptr noundef nonnull @.str.6) #12
  %12246 = load i32, ptr %3104, align 4, !tbaa !5
  %12247 = call ptr @strerror(i32 noundef %12246) #12
  %12248 = load i32, ptr %3104, align 4, !tbaa !5
  %12249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12240, ptr noundef nonnull %.str.7.sink5834, i32 noundef %12241, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.3, i32 noundef 1094, ptr noundef %12243, ptr noundef %12245, ptr noundef %12247, i32 noundef %12248) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12250:                                            ; preds = %12223
  %12251 = load i32, ptr @test_count, align 4, !tbaa !5
  %12252 = add nsw i32 %12251, 1
  store i32 %12252, ptr @test_count, align 4, !tbaa !5
  %12253 = getelementptr inbounds i8, ptr %78, i64 28
  %12254 = load i32, ptr %12253, align 4, !tbaa !18
  %12255 = getelementptr inbounds i8, ptr %78, i64 24
  %12256 = load i32, ptr %12255, align 8, !tbaa !21
  %12257 = icmp eq i32 %12254, %12256
  br i1 %12257, label %12280, label %12258

12258:                                            ; preds = %12250
  %12259 = load i32, ptr %3104, align 4, !tbaa !5
  %12260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12261 = call i32 @s2n_print_stacktrace(ptr noundef %12260) #12
  %12262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12263 = trunc nuw i8 %12262 to i1
  br i1 %12263, label %12264, label %12268

12264:                                            ; preds = %12258
  %12265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12266 = call i32 @fileno(ptr noundef %12265) #12
  %12267 = call i32 @isatty(i32 noundef %12266) #12
  %.not1373 = icmp eq i32 %12267, 0
  br i1 %.not1373, label %12268, label %12269

12268:                                            ; preds = %12264, %12258
  br label %12269

12269:                                            ; preds = %12264, %12268
  %.str.7.sink5843 = phi ptr [ @.str.7, %12268 ], [ @.str.4, %12264 ]
  store i32 %12259, ptr %3104, align 4, !tbaa !5
  %12270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12271 = load i32, ptr @test_count, align 4, !tbaa !5
  %12272 = load i32, ptr %3050, align 4, !tbaa !5
  %12273 = call ptr @s2n_strerror(i32 noundef %12272, ptr noundef nonnull @.str.6) #12
  %12274 = load i32, ptr %3050, align 4, !tbaa !5
  %12275 = call ptr @s2n_strerror_debug(i32 noundef %12274, ptr noundef nonnull @.str.6) #12
  %12276 = load i32, ptr %3104, align 4, !tbaa !5
  %12277 = call ptr @strerror(i32 noundef %12276) #12
  %12278 = load i32, ptr %3104, align 4, !tbaa !5
  %12279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12270, ptr noundef nonnull %.str.7.sink5843, i32 noundef %12271, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.3, i32 noundef 1097, ptr noundef %12273, ptr noundef %12275, ptr noundef %12277, i32 noundef %12278) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12280:                                            ; preds = %12250
  %12281 = getelementptr inbounds i8, ptr %11927, i64 704
  %12282 = add nsw i32 %12251, 2
  store i32 %12282, ptr @test_count, align 4, !tbaa !5
  %12283 = load ptr, ptr %12281, align 8, !tbaa !22
  %12284 = icmp eq ptr %12283, null
  br i1 %12284, label %12307, label %12285

12285:                                            ; preds = %12280
  %12286 = load i32, ptr %3104, align 4, !tbaa !5
  %12287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12288 = call i32 @s2n_print_stacktrace(ptr noundef %12287) #12
  %12289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12290 = trunc nuw i8 %12289 to i1
  br i1 %12290, label %12291, label %12295

12291:                                            ; preds = %12285
  %12292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12293 = call i32 @fileno(ptr noundef %12292) #12
  %12294 = call i32 @isatty(i32 noundef %12293) #12
  %.not1374 = icmp eq i32 %12294, 0
  br i1 %.not1374, label %12295, label %12296

12295:                                            ; preds = %12291, %12285
  br label %12296

12296:                                            ; preds = %12291, %12295
  %.str.7.sink5852 = phi ptr [ @.str.7, %12295 ], [ @.str.4, %12291 ]
  store i32 %12286, ptr %3104, align 4, !tbaa !5
  %12297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12298 = load i32, ptr @test_count, align 4, !tbaa !5
  %12299 = load i32, ptr %3050, align 4, !tbaa !5
  %12300 = call ptr @s2n_strerror(i32 noundef %12299, ptr noundef nonnull @.str.6) #12
  %12301 = load i32, ptr %3050, align 4, !tbaa !5
  %12302 = call ptr @s2n_strerror_debug(i32 noundef %12301, ptr noundef nonnull @.str.6) #12
  %12303 = load i32, ptr %3104, align 4, !tbaa !5
  %12304 = call ptr @strerror(i32 noundef %12303) #12
  %12305 = load i32, ptr %3104, align 4, !tbaa !5
  %12306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12297, ptr noundef nonnull %.str.7.sink5852, i32 noundef %12298, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.3, i32 noundef 1101, ptr noundef %12300, ptr noundef %12302, ptr noundef %12304, i32 noundef %12305) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12307:                                            ; preds = %12280
  %12308 = add nsw i32 %12251, 3
  store i32 %12308, ptr @test_count, align 4, !tbaa !5
  %12309 = getelementptr inbounds i8, ptr %11927, i64 712
  %12310 = load ptr, ptr %12309, align 8, !tbaa !26
  %12311 = icmp eq ptr %12310, null
  br i1 %12311, label %12334, label %12312

12312:                                            ; preds = %12307
  %12313 = load i32, ptr %3104, align 4, !tbaa !5
  %12314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12315 = call i32 @s2n_print_stacktrace(ptr noundef %12314) #12
  %12316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12317 = trunc nuw i8 %12316 to i1
  br i1 %12317, label %12318, label %12322

12318:                                            ; preds = %12312
  %12319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12320 = call i32 @fileno(ptr noundef %12319) #12
  %12321 = call i32 @isatty(i32 noundef %12320) #12
  %.not1375 = icmp eq i32 %12321, 0
  br i1 %.not1375, label %12322, label %12323

12322:                                            ; preds = %12318, %12312
  br label %12323

12323:                                            ; preds = %12318, %12322
  %.str.7.sink5861 = phi ptr [ @.str.7, %12322 ], [ @.str.4, %12318 ]
  store i32 %12313, ptr %3104, align 4, !tbaa !5
  %12324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12325 = load i32, ptr @test_count, align 4, !tbaa !5
  %12326 = load i32, ptr %3050, align 4, !tbaa !5
  %12327 = call ptr @s2n_strerror(i32 noundef %12326, ptr noundef nonnull @.str.6) #12
  %12328 = load i32, ptr %3050, align 4, !tbaa !5
  %12329 = call ptr @s2n_strerror_debug(i32 noundef %12328, ptr noundef nonnull @.str.6) #12
  %12330 = load i32, ptr %3104, align 4, !tbaa !5
  %12331 = call ptr @strerror(i32 noundef %12330) #12
  %12332 = load i32, ptr %3104, align 4, !tbaa !5
  %12333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12324, ptr noundef nonnull %.str.7.sink5861, i32 noundef %12325, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.3, i32 noundef 1102, ptr noundef %12327, ptr noundef %12329, ptr noundef %12331, i32 noundef %12332) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12334:                                            ; preds = %12307
  %12335 = add nsw i32 %12251, 4
  store i32 %12335, ptr @test_count, align 4, !tbaa !5
  %12336 = call i32 @s2n_stuffer_free(ptr noundef nonnull %78) #12
  %12337 = icmp eq i32 %12336, -1
  br i1 %12337, label %12338, label %12360

12338:                                            ; preds = %12334
  %12339 = load i32, ptr %3104, align 4, !tbaa !5
  %12340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12341 = call i32 @s2n_print_stacktrace(ptr noundef %12340) #12
  %12342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12343 = trunc nuw i8 %12342 to i1
  br i1 %12343, label %12344, label %12348

12344:                                            ; preds = %12338
  %12345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12346 = call i32 @fileno(ptr noundef %12345) #12
  %12347 = call i32 @isatty(i32 noundef %12346) #12
  %.not1383 = icmp eq i32 %12347, 0
  br i1 %.not1383, label %12348, label %12349

12348:                                            ; preds = %12344, %12338
  br label %12349

12349:                                            ; preds = %12344, %12348
  %.str.7.sink5870 = phi ptr [ @.str.7, %12348 ], [ @.str.4, %12344 ]
  store i32 %12339, ptr %3104, align 4, !tbaa !5
  %12350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12351 = load i32, ptr @test_count, align 4, !tbaa !5
  %12352 = load i32, ptr %3050, align 4, !tbaa !5
  %12353 = call ptr @s2n_strerror(i32 noundef %12352, ptr noundef nonnull @.str.6) #12
  %12354 = load i32, ptr %3050, align 4, !tbaa !5
  %12355 = call ptr @s2n_strerror_debug(i32 noundef %12354, ptr noundef nonnull @.str.6) #12
  %12356 = load i32, ptr %3104, align 4, !tbaa !5
  %12357 = call ptr @strerror(i32 noundef %12356) #12
  %12358 = load i32, ptr %3104, align 4, !tbaa !5
  %12359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12350, ptr noundef nonnull %.str.7.sink5870, i32 noundef %12351, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.3, i32 noundef 1104, ptr noundef %12353, ptr noundef %12355, ptr noundef %12357, i32 noundef %12358) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12360:                                            ; preds = %12334
  %12361 = load i32, ptr @test_count, align 4, !tbaa !5
  %12362 = add nsw i32 %12361, 1
  store i32 %12362, ptr @test_count, align 4, !tbaa !5
  %12363 = call i32 @s2n_connection_free(ptr noundef nonnull %11927) #12
  %12364 = icmp eq i32 %12363, -1
  br i1 %12364, label %12365, label %12387

12365:                                            ; preds = %12360
  %12366 = load i32, ptr %3104, align 4, !tbaa !5
  %12367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12368 = call i32 @s2n_print_stacktrace(ptr noundef %12367) #12
  %12369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12370 = trunc nuw i8 %12369 to i1
  br i1 %12370, label %12371, label %12375

12371:                                            ; preds = %12365
  %12372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12373 = call i32 @fileno(ptr noundef %12372) #12
  %12374 = call i32 @isatty(i32 noundef %12373) #12
  %.not1382 = icmp eq i32 %12374, 0
  br i1 %.not1382, label %12375, label %12376

12375:                                            ; preds = %12371, %12365
  br label %12376

12376:                                            ; preds = %12371, %12375
  %.str.7.sink5879 = phi ptr [ @.str.7, %12375 ], [ @.str.4, %12371 ]
  store i32 %12366, ptr %3104, align 4, !tbaa !5
  %12377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12378 = load i32, ptr @test_count, align 4, !tbaa !5
  %12379 = load i32, ptr %3050, align 4, !tbaa !5
  %12380 = call ptr @s2n_strerror(i32 noundef %12379, ptr noundef nonnull @.str.6) #12
  %12381 = load i32, ptr %3050, align 4, !tbaa !5
  %12382 = call ptr @s2n_strerror_debug(i32 noundef %12381, ptr noundef nonnull @.str.6) #12
  %12383 = load i32, ptr %3104, align 4, !tbaa !5
  %12384 = call ptr @strerror(i32 noundef %12383) #12
  %12385 = load i32, ptr %3104, align 4, !tbaa !5
  %12386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12377, ptr noundef nonnull %.str.7.sink5879, i32 noundef %12378, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.3, i32 noundef 1105, ptr noundef %12380, ptr noundef %12382, ptr noundef %12384, i32 noundef %12385) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12387:                                            ; preds = %12360
  %12388 = load i32, ptr @test_count, align 4, !tbaa !5
  %12389 = add nsw i32 %12388, 1
  store i32 %12389, ptr @test_count, align 4, !tbaa !5
  %12390 = call i32 @s2n_config_free(ptr noundef nonnull %11900) #12
  %12391 = icmp eq i32 %12390, -1
  br i1 %12391, label %12392, label %12414

12392:                                            ; preds = %12387
  %12393 = load i32, ptr %3104, align 4, !tbaa !5
  %12394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12395 = call i32 @s2n_print_stacktrace(ptr noundef %12394) #12
  %12396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12397 = trunc nuw i8 %12396 to i1
  br i1 %12397, label %12398, label %12402

12398:                                            ; preds = %12392
  %12399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12400 = call i32 @fileno(ptr noundef %12399) #12
  %12401 = call i32 @isatty(i32 noundef %12400) #12
  %.not1381 = icmp eq i32 %12401, 0
  br i1 %.not1381, label %12402, label %12403

12402:                                            ; preds = %12398, %12392
  br label %12403

12403:                                            ; preds = %12398, %12402
  %.str.7.sink5888 = phi ptr [ @.str.7, %12402 ], [ @.str.4, %12398 ]
  store i32 %12393, ptr %3104, align 4, !tbaa !5
  %12404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12405 = load i32, ptr @test_count, align 4, !tbaa !5
  %12406 = load i32, ptr %3050, align 4, !tbaa !5
  %12407 = call ptr @s2n_strerror(i32 noundef %12406, ptr noundef nonnull @.str.6) #12
  %12408 = load i32, ptr %3050, align 4, !tbaa !5
  %12409 = call ptr @s2n_strerror_debug(i32 noundef %12408, ptr noundef nonnull @.str.6) #12
  %12410 = load i32, ptr %3104, align 4, !tbaa !5
  %12411 = call ptr @strerror(i32 noundef %12410) #12
  %12412 = load i32, ptr %3104, align 4, !tbaa !5
  %12413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12404, ptr noundef nonnull %.str.7.sink5888, i32 noundef %12405, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.3, i32 noundef 1106, ptr noundef %12407, ptr noundef %12409, ptr noundef %12411, i32 noundef %12412) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12414:                                            ; preds = %12387
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %78) #12
  br label %12415

12415:                                            ; preds = %12414, %11895
  %12416 = call i32 @s2n_cleanup() #12
  %12417 = icmp eq i32 %12416, -1
  br i1 %12417, label %12418, label %12440

12418:                                            ; preds = %12415
  %12419 = load i32, ptr %3104, align 4, !tbaa !5
  %12420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12421 = call i32 @s2n_print_stacktrace(ptr noundef %12420) #12
  %12422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12423 = trunc nuw i8 %12422 to i1
  br i1 %12423, label %12424, label %12428

12424:                                            ; preds = %12418
  %12425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12426 = call i32 @fileno(ptr noundef %12425) #12
  %12427 = call i32 @isatty(i32 noundef %12426) #12
  %.not1380 = icmp eq i32 %12427, 0
  br i1 %.not1380, label %12428, label %12429

12428:                                            ; preds = %12424, %12418
  br label %12429

12429:                                            ; preds = %12424, %12428
  %.str.7.sink5897 = phi ptr [ @.str.7, %12428 ], [ @.str.4, %12424 ]
  store i32 %12419, ptr %3104, align 4, !tbaa !5
  %12430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12431 = load i32, ptr @test_count, align 4, !tbaa !5
  %12432 = load i32, ptr %3050, align 4, !tbaa !5
  %12433 = call ptr @s2n_strerror(i32 noundef %12432, ptr noundef nonnull @.str.6) #12
  %12434 = load i32, ptr %3050, align 4, !tbaa !5
  %12435 = call ptr @s2n_strerror_debug(i32 noundef %12434, ptr noundef nonnull @.str.6) #12
  %12436 = load i32, ptr %3104, align 4, !tbaa !5
  %12437 = call ptr @strerror(i32 noundef %12436) #12
  %12438 = load i32, ptr %3104, align 4, !tbaa !5
  %12439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12430, ptr noundef nonnull %.str.7.sink5897, i32 noundef %12431, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.3, i32 noundef 1111, ptr noundef %12433, ptr noundef %12435, ptr noundef %12437, i32 noundef %12438) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12440:                                            ; preds = %12415
  %12441 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %12442 = icmp eq i32 %12441, -1
  br i1 %12442, label %12443, label %12465

12443:                                            ; preds = %12440
  %12444 = load i32, ptr %3104, align 4, !tbaa !5
  %12445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12446 = call i32 @s2n_print_stacktrace(ptr noundef %12445) #12
  %12447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12448 = trunc nuw i8 %12447 to i1
  br i1 %12448, label %12449, label %12453

12449:                                            ; preds = %12443
  %12450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12451 = call i32 @fileno(ptr noundef %12450) #12
  %12452 = call i32 @isatty(i32 noundef %12451) #12
  %.not1379 = icmp eq i32 %12452, 0
  br i1 %.not1379, label %12453, label %12454

12453:                                            ; preds = %12449, %12443
  br label %12454

12454:                                            ; preds = %12449, %12453
  %.str.7.sink5906 = phi ptr [ @.str.7, %12453 ], [ @.str.4, %12449 ]
  store i32 %12444, ptr %3104, align 4, !tbaa !5
  %12455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12456 = load i32, ptr @test_count, align 4, !tbaa !5
  %12457 = load i32, ptr %3050, align 4, !tbaa !5
  %12458 = call ptr @s2n_strerror(i32 noundef %12457, ptr noundef nonnull @.str.6) #12
  %12459 = load i32, ptr %3050, align 4, !tbaa !5
  %12460 = call ptr @s2n_strerror_debug(i32 noundef %12459, ptr noundef nonnull @.str.6) #12
  %12461 = load i32, ptr %3104, align 4, !tbaa !5
  %12462 = call ptr @strerror(i32 noundef %12461) #12
  %12463 = load i32, ptr %3104, align 4, !tbaa !5
  %12464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12455, ptr noundef nonnull %.str.7.sink5906, i32 noundef %12456, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.3, i32 noundef 1111, ptr noundef %12458, ptr noundef %12460, ptr noundef %12462, i32 noundef %12463) #14
  call void @exit(i32 noundef 1) #15
  unreachable

12465:                                            ; preds = %12440
  %12466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12467 = trunc nuw i8 %12466 to i1
  br i1 %12467, label %12468, label %12479

12468:                                            ; preds = %12465
  %12469 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12470 = call i32 @fileno(ptr noundef %12469) #12
  %12471 = call i32 @isatty(i32 noundef %12470) #12
  %.not1376 = icmp eq i32 %12471, 0
  br i1 %.not1376, label %12479, label %12472

12472:                                            ; preds = %12468
  %12473 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1378 = icmp eq i32 %12473, 0
  %12474 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1378, label %12477, label %12475

12475:                                            ; preds = %12472
  %12476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12474, ptr noundef nonnull @.str.137, i32 noundef %12473) #12
  br label %12486

12477:                                            ; preds = %12472
  %12478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12474, ptr noundef nonnull @.str.138) #12
  br label %12486

12479:                                            ; preds = %12468, %12465
  %12480 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not1377 = icmp eq i32 %12480, 0
  %12481 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not1377, label %12484, label %12482

12482:                                            ; preds = %12479
  %12483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12481, ptr noundef nonnull @.str.139, i32 noundef %12480) #12
  br label %12486

12484:                                            ; preds = %12479
  %12485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12481, ptr noundef nonnull @.str.140) #12
  br label %12486

12486:                                            ; preds = %2891, %12477, %12475, %12484, %12482
  %.3 = phi i32 [ -1, %2891 ], [ 0, %12482 ], [ 0, %12484 ], [ 0, %12475 ], [ 0, %12477 ]
  ret i32 %.3
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #5

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #6

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #7

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #5

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #3

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #7

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #8

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #3

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #3

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

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_is_evp_apis_supported(...) local_unnamed_addr #3

declare ptr @s2n_config_new() local_unnamed_addr #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) local_unnamed_addr #3

declare i32 @s2n_set_connection_hello_retry_flags(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_set_all_mutually_supported_groups(ptr noundef) local_unnamed_addr #3

declare ptr @s2n_ensure_memmove_trace(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

declare void @s2n_debug_info_reset() local_unnamed_addr #3

declare i32 @s2n_extension_recv(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_public_ecc_keys_are_equal(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_reserve_uint16(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_ecdhe_parameters_send(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_ecc_evp_params_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_write_named_curve(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_write_key_share(ptr noundef, i16 noundef zeroext, i16 noundef zeroext, ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_rewrite_length(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_stuffer_wipe_n(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_cleanup() local_unnamed_addr #3

; 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) #11

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 8}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!19, !6, i64 28}
!19 = !{!"s2n_stuffer", !20, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!20 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!21 = !{!19, !6, i64 24}
!22 = !{!23, !10, i64 0}
!23 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!24 = !{!25, !10, i64 8}
!25 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!26 = !{!23, !10, i64 8}
!27 = !{!17, !17, i64 0}
!28 = !{!29, !17, i64 0}
!29 = !{!"s2n_ecc_named_curve", !17, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!30 = !{!29, !7, i64 16}
!31 = !{!32, !10, i64 16}
!32 = !{!"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, !33, i64 160, !34, i64 168, !34, 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, !35, i64 240, !10, i64 632, !10, i64 640, !36, i64 648, !40, i64 1144, !43, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !19, i64 1776, !19, i64 1816, !19, i64 1856, !19, i64 1896, !6, i64 1936, !34, i64 1944, !7, i64 1952, !19, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !45, i64 2004, !45, i64 2008, !46, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !34, i64 2224, !7, i64 2232, !34, i64 2240, !34, i64 2248, !34, i64 2256, !45, i64 2264, !45, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !20, i64 2792, !6, i64 2816, !20, i64 2824, !20, i64 2848, !20, i64 2872, !48, i64 2896, !50, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !20, i64 3784, !6, i64 3808, !52, i64 3816, !7, i64 3848, !19, i64 3992, !20, i64 4032, !20, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !20, i64 4096, !6, i64 4120, !53, i64 4128, !45, i64 4176, !7, i64 4180, !7, i64 4181}
!33 = !{!"s2n_timer", !34, i64 0}
!34 = !{!"long", !7, i64 0}
!35 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!36 = !{!"s2n_kex_parameters", !37, i64 0, !23, i64 8, !7, i64 24, !23, i64 56, !38, i64 72, !38, i64 184, !7, i64 296, !39, i64 360, !20, i64 448, !20, i64 472}
!37 = !{!"s2n_dh_params", !10, i64 0}
!38 = !{!"s2n_kem_group_params", !10, i64 0, !39, i64 8, !23, i64 96}
!39 = !{!"s2n_kem_params", !10, i64 0, !20, i64 8, !20, i64 32, !20, i64 56, !12, i64 80}
!40 = !{!"s2n_handshake_parameters", !41, i64 0, !41, i64 48, !20, i64 96, !6, i64 120, !42, 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}
!41 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!42 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!43 = !{!"s2n_psk_parameters", !6, i64 0, !44, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!44 = !{!"s2n_array", !20, i64 0, !6, i64 24, !6, i64 28}
!45 = !{!"", !6, i64 0}
!46 = !{!"s2n_handshake", !19, 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, !47, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!47 = !{!"s2n_offered_early_data", !10, i64 0}
!48 = !{!"s2n_client_hello", !20, i64 0, !49, i64 24, !20, i64 728, !20, i64 752, !20, 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}
!49 = !{!"", !7, i64 0, !20, i64 672, !17, i64 696}
!50 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !51, i64 48, !12, i64 52}
!51 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!52 = !{!"s2n_ticket_fields", !20, i64 0, !6, i64 24}
!53 = !{!"s2n_post_handshake", !19, i64 0, !7, i64 40}
!54 = !{!32, !10, i64 656}
!55 = !{!16, !10, i64 16}
!56 = !{!57, !10, i64 0}
!57 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!58 = !{!57, !10, i64 8}
!59 = !{!32, !10, i64 720}
!60 = !{!32, !10, i64 704}
!61 = !{!32, !10, i64 712}
!62 = !{!32, !6, i64 4088}
!63 = !{!32, !7, i64 220}
!64 = !{!25, !7, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LowerExpectIntrinsicPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass